-
43 c44 b
54 b55 d
56 d57 b
58 c59 c
如果 a 的类型为 int,其值为 3,则在执行表达式 a+=a-=a*a 后,a 的值为 -12 或 -3
这种放屁话题建议直接忽略)
16 fp=fopen("","rb");
32 按行为顺序存储。
33 如果自定义函数需要返回一个值,则函数体中应该有一个返回语句,如果自定义函数不需要返回值,则应该在函数描述中添加一个类型说明符 void
34 当函数中的参数和调用时的参数都是数组名时,pass 方法是 address,当它们是变量时,pass 模式是 pass 值。
35.C语言从编写源程序到计算机运行输出结果要经过四个步骤:预处理、编译、链接、运行(调试)。
36 在C语言中,表达式和语句的区别在于,语句是C程序执行的最小单位,而语句是由表达式加分号构造的。
37 不。
38 序列、条件、循环。
39 表达式 10 3*9%10 2 的值为 3
-
是的,找到长度 hello 是 5 个字节,所以长度是 5,hello world 是 10 个字节,加法中间的空格是 11 个字节,长度是 11
注意 sizeof() sizeof 之间的差异,sizeof 是空间的大小,如果是 sizeof(y),则为 8
-
1.错误。 输出应为 0。 原因是 int 和 float 的存储格式不同,int 占用 2 个字节,总共 16 位; 浮点数占 4 个字节,占 32 位,其中第 32 位为符号位,31-23 位为数字位,22-1 位为指数位。
您可以使用以下语句来了解浮点数的存储格式。
printf("%x",;
printf("%x",;
printf("%x",;
#include
main()
-
这个问题的正确答案不应该是 C,而是 D。 因为 y 的最大长度是 8,所以 sizeof(y) 自然是 8,并且在 8 个字符后复制到 y 中'\0'覆盖时,字符串将没有终止符'\0',因此 strlen(y) 大于或等于 8 的任何数字都是可能的。
在 16 位机器中,int 是 2 个字节,如果编译器所谓的“对齐”也是 4(我真的不知道 16 位机器的可变存储对齐是不是 4),那就是; 这可以通过将 f 函数更改为 int f(short a, short b) 来验证,因为 32 位机器的短短是 2 个字节,对齐方式是 4。
-
在第一个问题中,t 是一个数组,pt 是一个指针数组,循环后,指针数组指向数组 t。 也就是说,pt 和 t 应该是相同的内容,但 t 是 const。 *(pt+1) 是 t[1],*pt+l)+2) 是 t[1][2]。
对于第二个问题,sum 未初始化,因此答案为 C。 请记住,永远不要使用未初始化的变量!
第三个问题,选择C,关键是静态
intd,这个地址赋值后,其中的内容直到程序执行结束才会被释放,这是变量生存期的问题。
最后,最好自己把这些问题输入到编译器中,然后用调试功能观察每个变量的变化,这样会更容易理解。
-
首先你要明白,电脑里的所有数据都是以二进制形式存储的,所以那么-8就是一个负整数,从选项答案中可以看出,这台电脑是一台16位的电脑(因为答案都是16位的二进制数),其中第一位是符号位, 正数为 0,负数为 1,其余数字为特定表示。
而数值是以补码的形式存储在电脑里的,补码是什么,可以上网了解电脑号的真实值、原始代码、补码相关内容。 正整数的原始代码等于补码,负整数的补码等于原始代码,除符号位外的所有数字都倒置,然后加 1
那么题中原码 -8 = 1000 0000 0000 1000 除了符号位外,取否定 = 1111 1111 1111 0111,然后加上 1 = 1111 1111 1111 1000,所以选择
-
这是 32 位二进制,顶部位是符号位,0 是正数,1 是负数,其余 31 位表示范围:(2 31-1)。 也就是说,这里的最高数字 1 表示它是负数,后面的 1000 表示 8,所以结果是 -8。
如果没有前面的 1,则表示 8,这不符合主题。
-
你没上过学,是吗? 这是补码格式,每个选项加 8 的答案是 1000 和 0(最高进位被丢弃)。