C语言精选——选择题Day42

第一题

1. 下面程序输出的结果是()

#include <stdio.h>
int main () 
{int x;x = printf("I See, Sea in C");printf("x=%d" , x); 
}

A:2

B:随机值

C:都不是

D:15

答案及解析 D

printf函数的返回值是int类型,返回的是打印出的字符的个数,并且printf遇到\0结束打印,所以题中共有15个字符,x就为15;

详情可以看这里:printf返回值的定义与举例-CSDN博客

第二题

2. 求函数返回值,输入x=9999

int func(int x)
{int count = 0;while (x){count++;x = x&(x - 1);}return count;
}

A:8

B:9

C:10

D:12

答案及解析 A

本题有一个位运算的公式,x & (x - 1)可以消除最右侧的1,使其变为0;所以这个while循环的作用就是看x有多少个1的;

9999的二进制位:10011100001111

一共有8个1,所以返回的就是8

第三题

3. 下面程序的1,2,3处表达式的值为()

int main()
{int n = 1;++n;n++; // 1--n; // 2++n; // 3return 0;
}

A:2 2 3

B:2 2 2

C:2 3 2

D:2 1 1

答案及解析 A

本题考查的是前置++和后置++ 的区别;

前置++,返回的是++之后的值,后置++返回的是++之前的值;--也是;

别忘了1处上面有个++n;

所以1处:表达式的值为2,但是n = 3;

2处:表达式的值为2,n = 2;

3处:表达式的值为3,n = 3;

在C++中的运算符重载就很好地可以看出,前置++和后置++的区别;前置++返回的就是++之后的值,而后置++,是将这个数拷贝了一份返回去,但是这个数自身已经增加1了;

    A& operator++(){*this += 1;return *this;}A operator++(int){A copy = *this;*this += 1;return copy;}

第四题

4. 有如下代码段:

char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为()

A:数组 x 和数组 y 等价

B:strlen(x) > strlen(y)

C:strlen(y) >= strlen(x)

D:sizeof(y) > sizeof(x)

答案及解析 C

A:错误,x是一个字符串,而y是一个字符数组,字符串和字符数组的区别就是末尾有没有隐藏的\0,字符串末尾一定是有一个隐藏的\0,但是字符数组的\0的具体位置是随机的;

B错C对:因为strlen函数是求字符串长度的,其中只有遇到\0才会停止计算,然后返回\0之前的字符个数,上面也说了,y这个字符数组的\0的位置是不确定的,所以可能在末尾,也可能在更之后,所以strlen(y) >= strlen(x)的;

D:错误,x的大,这个是计算占用多少内存的,x有个隐藏的\0也是申请空间了的;

第五题

5. 有以下定义和语句,则 *( p[0] + 1) 所代表的数组元素是()

int a[3][2] = {1, 2, 3, 4, 5, 6}, *p[3];
p[0] = a[1];

A:a[ 0 ][ 1 ]

B:a[ 1 ][ 0 ]

C:a[ 1 ][ 1 ]

D:a[ 1 ][ 2 ]

答案及解析

首先,int *p[ 3 ]是一个指针数组,因为[ ]的优先级高,所以会先形成数组,然后每个元素的类型是int*;其次p [ 0 ]存的是a[ 1 ]的地址,a[ 1 ]代表的是这个二维数组第二行的首元素地址;因为a[ 1 ][ 2 ]相当于的就是第二行这个一维数组,a[ 1 ]就是这个一维数组的数组名,数组名代表首元素地址,也就是a[ 1 ][ 0 ]的地址;

p[ 0 ] <==> a[ 1 ] <==> &a[ 1 ][ 0 ]

p[ 0 ] + 1 <==> &a [ 1 ][ 0 ] + 1 <==> &a[ 1 ][ 1 ]

*(p[ 0 ] + 1)  <== > a[ 1 ][ 1 ]

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python/Java/C++三种语言】20天拿下华为OD笔试之【位运算】2023B-出错的或电路【欧弟算法】全网注释最详细分类最全的华为OD真题

文章目录 题目描述与示例题目描述输入描述输出描述示例一输入输出说明 示例二输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 某生产门电路的厂商发现某一批次的或门电路不稳定&#xff0c;具体现象为计…

基于SpringBoot+Vue的学校在线学习系统

开发环境 IDEA JDK1.8 MySQL8.0Node 系统简介 本系统拥有管理员&#xff0c;教师&#xff0c;学生三种身份登录&#xff0c;管理员登录可以查看所有信息&#xff0c;教师登录可以发布作业&#xff0c;查看试卷&#xff0c;回答问题等&#xff0c;学校登录可以查看作业&…

【矩阵论】Chapter 6—矩阵分解知识点总结复习(附Python实现)

文章目录 1 满秩分解&#xff08;Full-Rank Factorization&#xff09;2 三角分解&#xff08;Triangular Factorization&#xff09;3 正交三角分解&#xff08;QR Factorization&#xff09;4 奇异值分解&#xff08;SVD&#xff09; 1 满秩分解&#xff08;Full-Rank Factor…

react.js源码二

三、调度Scheduler scheduling(调度)是fiber reconciliation的一个过程&#xff0c;主要决定应该在何时做什么?在stack reconciler中&#xff0c;reconciliation是“一气呵成”&#xff0c;对于函数来说&#xff0c;这没什么问题&#xff0c;因为我们只想要函数的运行结果&…

什么是CDN?用了CDN一定会更快吗?

文章目录 前言CDN是什么?CDN的工作原理为什么要加个CNAME那么麻烦&#xff1f;怎么知道哪个服务器IP里调用方最近&#xff1f; 回源是什么回源是什么&#xff1f;那还有哪些情况会发生回源呢&#xff1f; 怎么判断是否发生回源用了CDN一定比不用的更快吗&#xff1f;什么情况下…

光伏电站全貌

光伏电站 简介 每一篇文章开篇我都会写一个内容简介&#xff0c;一来梳理自己的写作思路&#xff0c;二来方便读者整体了解文章写作意图和脉络。本篇是新能源方面的开篇之作&#xff0c;我选取了介绍光伏电站基础知识&#xff0c;首先我们要了解光伏电站基础分类&#xff0c;然…

PHP基础 - 运算符

算术运算符 运算符描述实例+加法$x = 2 + 2; echo $x;-减法$x = 5 - 3; echo $x;*乘法$x = 4 * 3; echo $x;/除法$x = 10 / 2; echo $x;%取余$x = 15 % 4; echo $x;++自增$x = 5; $x++; echo $x;--自减$x = 5; $x--; echo $x;算术运算符的使用场景: 1)加法运算符 +:用于将两…

Copilot的11个新功能,你不能错过!

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 1. PowerPoint2. Excel3. One Note4. Word5. 必应聊天现在变为Copilot6. GPT-4为Copilot聊天提供动力7. Microsoft Teams8. Outlook9. Copilot Studio10.…

磁盘存储器

目录 1.1 磁盘存储器1.2 磁盘的性能指标1.3 磁盘存储器(续)1.4 磁盘阵列 \quad \quad \quad 左南右北为0 左北右南为1 \quad \quad 1.1 磁盘存储器 \quad 磁盘的驱动器 \quad 磁盘的控制器 \quad 主机每次对磁盘进行读和写操作都是以扇区为单位的 现在比较流行的是SATA标准 \…

【kafka实践】12|如何实现exactly once

前面的章节中我们聊到如何避免保证消息丢失&#xff0c;没有印象的同学可以再看看&#xff0c;本节我们将展开如何实现kafka的一次精确。 首先我们需要明白两个概念“幂等”和“事物” 幂等 “幂等”这个词原是数学领域中的概念&#xff0c;指的是某些操作或函数能够被执行多…

基于SpringBoot 2+Layui实现的管理后台系统源码+数据库+安装使用说明

springboot-plus 一个基于SpringBoot 2 的管理后台系统,包含了用户管理&#xff0c;组织机构管理&#xff0c;角色管理&#xff0c;功能点管理&#xff0c;菜单管理&#xff0c;权限分配&#xff0c;数据权限分配&#xff0c;代码生成等功能 相比其他开源的后台系统&#xff0…

vue 实现返回顶部功能-指定盒子滚动区域

vue 实现返回顶部功能-指定盒子滚动区域 html代码css代码返回顶部显示/隐藏返回标志 html代码 <a-icontype"vertical-align-top"class"top"name"back-top"click"backTop"v-if"btnFlag"/>css代码 .top {height: 35px;…

令牌桶算法理解学习(限流算法)

令牌桶算法是网络流量整形&#xff08;Traffic Shaping&#xff09;和速率限制&#xff08;Rate Limiting&#xff09;中最常使用的一种算法。典型情况下&#xff0c;令牌桶算法用来控制发送到网络上的数据的数目&#xff0c;并允许突发数据的发送。 用简单的话语来说就是限制…

Vscode中配置SSH

方法&#xff1a; 本地生成秘钥&#xff0c;并将生成的秘钥保存在服务器上 步骤&#xff1a; 一、用户端生成秘钥 1、在cmd中输入ssh-keygen -t rsa&#xff0c;一直点回车即可 2、打开生成的秘钥文件&#xff08;位置&#xff1a;C:\Users\用户名\.ssh\id_rsa.pub&#x…

【Java】BigInteger用法

前言 在Java中&#xff0c;由于没有long long类型。如果需要使用比long类型更大的整数数据时&#xff0c;就可以使用BigInteger类&#xff0c;它支持任意精度的整数。 创建BigInteger类型数据 Test public void test1() {Scanner scan new Scanner(System.in);//1.控制台读…

leetcode做题笔记2048. 下一个更大的数值平衡数

如果整数 x 满足&#xff1a;对于每个数位 d &#xff0c;这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n &#xff0c;请你返回 严格大于 n 的 最小数值平衡数 。 示例 1&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;22 解释&a…

Linux中的SNAT与DNAT实践

Linux中的SNAT与DNAT实践 1、SNAT的介绍1.1&#xff0c;SNAT概述1.2&#xff0c;SNAT源地址转换过程1.3&#xff0c;SNAT转换 2、DNAT的介绍2.1&#xff0c;DNAT概述2.2&#xff0c;DNAT转换前提条件2.3&#xff0c;DNAT的转换 3、防火墙规则的备份和还原4、tcpdump抓包工具的运…

腾讯再推互动微短剧,游戏的风吹向了短剧

当你看剧时不再拥有上帝视角&#xff0c;处在女主的位置上&#xff0c;你又会做出什么样的选择&#xff1f; 腾讯最新上线的短剧《摩玉玄奇2》在原版之外还推出了互动版&#xff0c;就给出了这样一个新玩法。 《摩玉玄奇2》原版是普通的后宫职场微短剧&#xff0c;互动版则是…

虚拟机VMware安装centos以及配置网络

目录 1、CentOS7的下载2、CentOS7的配置3、CentOS7的安装4、CentOS7的网络配置 4.1、自动获取IP4.2、固定获取IP 5、XShell连接CentO 准备工作&#xff1a;提前下载和安装好VMware。VMware的安装可以参考这一篇文章&#xff1a;VMware15的下载及安装教程。 1、CentOS7的下载 …

qt 字符串操作

在 QT 中&#xff0c;你可以使用QString类来操作字符串。QString是一个模板类&#xff0c;它可以存储不同字符集的字符串&#xff0c;并且提供了许多用于操作字符串的方法。 以下是一些常见的操作字符串的方法&#xff1a; append()方法&#xff1a;将一个字符串附加到QString的…