C语言—每日选择题—Day55
2023-12-21 03:14:59
指针相关博客
第一题
1. 若有如下定义,则?p1=&m;p2=p1;?是正确赋值语句.说法是否正确?
int *p1;
int *p2;
int m = 5;
int n;
A:正确
B:错误
答案及解析 A
本题考查的是对类型的认识,p1是指针类型,赋值的右操作数就必须是地址;
第二题
2. 在64位下,下面代码运行的结果为()
#include <stdio.h>
int main()
{
char str[] = "abcde";
const char *p = "abcde";
printf("%lu %lu\n", sizeof(str), sizeof(p));
return 0;
}
A:8 8?
B:4 4
C:5 8
D:6 8
答案及解析 D
这里想给大家说的就是,只有size(数组名)才是表示的整个数组的大小,注意字符串末尾有隐藏的\0,所以是6,但是对于第二个是一个指针类型执指向了一个字符串,我们知道sizeof是求数据类型的字节数,那64位下,指针类型就是8;
第三题
3. 已知int i=0,x=0;,在下面while语句执行时循环次数为()
while (!x && i< 3)
{
x++;
i++;
}
A:4
B:3
C:2
D:1
答案及解析 D
本题想考查大家对操作符优先级和运算顺序
&&优先级最低,而结合性是从左往右,也就是先算左,左边为真继续算,为假就不需要算了
0为假,非0为真
C语言操作符优先级表格(建议收藏,每次看一下)-CSDN博客
所以第一次循环,x = 0,!x 就是真,i = 0 ,确实小于3,条件成立
第二次循环,x = 1 ,!x 就是假,&&一假就是假,所以条件不成立,退出循环
第四题
4. 预处理阶段进行了哪些()
A:宏替换
B:头文件展开
C:去注释
D:进行条件编译判断
E:都对
答案及解析 E
预处理阶段就是处理上面选项中的内容
第五题
5. func(1)的值是多少?
int func(int a)
{
int b;
switch(a)
{
case 1:b = 100;
case 2:b = 200;
case 3:b = 250;
default:b = 0;
}
return b;
}
A:100
B:200
C:250
D:0
答案及解析 D
本题就很好的验证了switch语句中case或者default后面没有break语句就会一直执行下去,所以当a = 1的时候,是满足case1的,由于下面的每一个语句都没有break,就会依次执行
我们的b 就被依次赋值为100,200,250,0;最后赋值的是0,结果就为0;
文章来源:https://blog.csdn.net/2302_76941579/article/details/135094577
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!