1.A
if (a=0)-->不成立. 因为a=0是赋值,相当于if(0)
if(a>0)-->不成立;所以执行y+=y
-->结果:y=20
***********************************************
2.有两个选择
D:有语法错误,因为while(!x)后缺分号.
若不是上面情况则选B.原因是:
x=-1*x--->x=-1
!x-->!(-1)-->!(true)-->false
结果:退出循环.仅循环一次.
***********************************************
3.A
该题关键是判断语句"i=10&&x>0".
i=10&&x>0-->i=(10&&x>0)-->i=(true && ture)-->i=true-->true
因此永远循环.
***********************************************
4.C
第1次:i=0-->判断成立(0<3)-->i=1(i++<3,指先比较i<3,再i加1)
第2次:判断成立(1<3)-->i=2
第3次:判断成立(2<3)-->i=3
第4次:判断不成立(3<3)-->i=4
退出
结果:i=4
***********************************************
5.没有合适答案.
执行后,y=1.原因如下:
第1次:y=1-->判断成立(1<=50)
-->if(x>=0)-->条件成立-->break-->退出循环(并不进行y++操作)
结果:y=1
***********************************************
6.C
a(a(i))-->a(a(10))-->a(9)-->6
数组第1个元素为a(0)=1,a(1)=4,...
***********************************************
7.D
i-->1字节
c-->2字节
a-->4字节
1+2+4=7
结果:字节总数为7字节.
***********************************************
8.B
应该:stu是用户定义的结构类型,而不是struc stu.
***********************************************
9.C
C语言中规定不能进行指针"加"操作.
***********************************************
10.D
第1次循环:
s指向"ABCD"中"A"位置,p指向"ABCD"中"B"位置.
printf输出"B"开始的字符串.
第2次循环:
p加1-->指向"ABCD"中"C"位置,判断成立(s指向"A"位置).
printf输出"C"开始的字符串.
第3次循环:
p加1-->指向"ABCD"中"D"位置,判断成立.
printf输出"D"开始的字符串.
第4次循环:
p加1-->指向"ABCD"中"D"后面,与s相关4个地址位,条件不成立.
退出.
输出结果:
BCD
CD
D
1:C,x=0执行第一个if,y--;程序完后y=9
2:B,先执行do,完后x=-1,为假,while条件不成立,停止循环,只执行一次
3:A,循环条件i=10结果为10,是真,x>0,是真,因此死循环
4:C,i=3时循环条件不成立,但++还要执行一次,所以完了i=4
5:没答案,运行完行y=1;因为break后,y++不执行
6:C,a[a[10]]=a[9]=6
7:没答案,答案是8,内存对齐,int和char的size和为4,float为4,共8
8:B,名字加成员合起来才是完整的自定义结构
9:C,指针不能加
10:D,p从s+1开始,即B开始,每次往后移一格,输出之后的字符串
1.A
if (a=0)-->不成立. 因为a=0是赋值,相当于if(0)
if(a>0)-->不成立;所以执行y+=y
-->结果:y=20
2.B
若不是上面情况则选B.原因是:
x=-1*x-->x=-1
!x-->!(-1)-->!(true)-->false
结果:退出循环.仅循环一次.
3.A
该题关键是判断语句"i=10&&x>0".
i=10&&x>0 i=10恒为真 判断条件只要看x>0,x=1,x>0也恒为真
因此永远循环.
4.C
第1次:i=0-->判断成立(0<3)-->i=1(i++<3,指先比较i<3,再i加1)
第2次:判断成立(1<3)-->i=2
第3次:判断成立(2<3)-->i=3
第4次:判断不成立(3<3)-->i=4
退出
结果:i=4
5.没有答案.
执行后,y=1.原因如下:
第1次:y=1-->判断成立(1<=50)
-->if(x>=0)-->条件成立-->break-->退出循环(并不进行y++操作)
结果:y=1
6.C
a(a(i))-->a(a(10))-->a(9)-->6
数组第1个元素为a(0]=1,a(1)=4,...
7.D
i-->1字节
c-->2字节
a-->4字节
1+2+4=7
结果:字节总数为7字节.
8.B
应该:stu是用户定义的结构类型,而不是struc stu.
9. C
指针相减可得偏移量 可以进行赋值和比较 相加无意义
10。D p=s+1即p存储s第1个元素开始的字符串 bcd 每++一次 指针位置向后移动一次
又复习了一下c语言 题目很有迷惑性
考试嘛,最好的方法还是背题库 考试的时候秒杀
A a=0 赋值运算 值为a a==0 执行 y+=y
B x=-1 非0即为真 !x为假 执行一次
A i=10&&x>0 还是赋值运算符 i=10 为真 x永为1
C i等于3的时候不满足跳出循环 还要执行一次 ++
1 if(x>=0) break; 直接跳出了 y没变
C 从a0开始找 a10=9 a9=6
8 假设内存从0开始 i占用 0 1 c占用 2 a应从3号开始存 但float是最大元素 struct对齐方式应以float为准 即申请内存方式 每次申请4字节
i+a 占了前3字节 需要跳过3号内存 令申请4字节给 a 所以一共占8字节
D stutype 是结构名 他不是变量
C 指针相减可得偏移量 可以进行赋值和比较 相加无意义
D p=s+1即p存储s第1个元素开始的字符串 bcd 每++一次 指针位置向后移动一次
1.C
2.B
3.A
4.C
5.正确答案为1,没选项
6.C
7.答案为12
8.B
9.B
10.D