一起做网站,全网整合营销平台,wordpress网站主题插件,摄影网站网络促销方式前言 我们的刷题专栏又又又开始了#xff0c;本专栏总结了作者做题过程中的好题和易错题。每道题都会有相应解析和配图#xff0c;一方面可以使作者加深理解#xff0c;一方面可以给大家提供思路#xff0c;希望大家多多支持哦#xff5e; 第一题 1、如下代码输出的是什么…前言 我们的刷题专栏又又又开始了本专栏总结了作者做题过程中的好题和易错题。每道题都会有相应解析和配图一方面可以使作者加深理解一方面可以给大家提供思路希望大家多多支持哦 第一题 1、如下代码输出的是什么 char a 101;
int sum 200;
a 27;sum a;
printf(%d\n,sum); A: 327 B: 99 C: 328 D: 72 答案与解析 D 本题考察的是类型不同时的运算会发生整型提升或截断且二进制计算都是用补码 负数补码 源码取反 1 在a 27 时a为char类型char类型为1字节 8bit 而 a 27 a a 27 在右侧一个char类型与int类型相加会发生char整型提升 1字节- 4字节 a 128而在赋值表达式中左侧为char类型右侧为int类型会发生整型截断 128 00000000 00000000 00000000 10000000 所以截断之后为 10000000 而a为char类型有符号的类型那最高位就代表符号位 最高位为1是负数 在sum a中sum sum a a 1000 0000 ,因为是负数需要转换为补码1000 0000 在右侧sum a为int和char的相加char会发生整型提升负数高位补1 sum : 0000 0000 0000 0000 0000 0000 1100 1000 a : 1111 1111 1111 1111 1111 1111 1000 0000 sum a : 1 0000 0000 0000 0000 0000 0000 0100 1000 由于超出的32位会舍去最高位0000 0000 0000 0000 0000 0000 0100 1000 72 第二题 2、对于下面代码执行后输出的是什么 int value 1024;
char condition *((char*)(value));
if(condition) value 1;
condition *((char*)(value)
if(condition) value 1;
condition *((char*)(value)
printf(%d %d, value, condition); A: 1026 1 B: 1025 0 C: 1025 1 D: 1024 0 答案与解析 D 这里考察的就是大家对指针类型的解引用具体可以访问多少字节的理解还涉及了大小端 相关博客详谈【指针解引用】与【指针加整数】_指针解引用之后-CSDN博客 无论是大端字节序还是小端取出来的都是0结果都一样 第三题易错 3. 假设在32位机器上读代码选结果 void func(char para[100])
{void *p malloc(100);printf(%d, %d\n, sizeof(para), sizeof(p));
} A: 4,4 B: 100,4 C: 4,100 D: 100,100 答案与解析 A 记住sizeof就是对括号里面变量的类型求大小 而数组在函数传参的时候会降低为指针类型char* para所以sizeof(para) 4; 因为p的类型为void*所以sizeof(p) 4 第四题 4、以下程序执行后的输出结果为 #include stdio.h
void func(char *p)
{ p p 1;
}int main()
{char s[] {1, 2, 3, 4};func(s);printf(%c, *s);return 0;
} A: 2 B: 编译错误 C: 1 D: 无法确定 答案与解析 C 形参的改变不会影响实参所以s依旧是代表的首元素地址*s 1 最重要的一点 数组名的类型是char* const 数组名代表首元素地址不可被改变是const pointer 第五题 5、已知数组D的定义是 int D[4][8]; 现在需要把这个数组作为实参传递给一个函数进行处理。下列可以作为对应的形参变量说明的是【多选】 A: int D[4][ ] B: int *s[8] C: int(*s)[8] D: int D[ ][8] 答案与解析 CD A、D他们是想通过二维数组来传参但是作为二维数组传参必须把列的数字标出来否则错误所以A错误D正确 在数组D的传参传的是数组名D而数组名为首元素地址二维数组的数组名是整个第一行的地址所以类型为int (*)[8]B与C只有C的类型匹配所以C正确 相关博客C语言指针详解【图解 练习】-CSDN博客