看几道关于C语言的题 谢谢帮助

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:34:56
1.设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值()
A 552 B 144 C 264 D -264
2.下列标识符中,不能作为合法的C用户定义标识符的是()
A a3-b3 B void C -123 D IF
3.下列整数值中,不正确的八进制或十六进制数值常量是()
A Oxcd B -017 C -ox123 D Oxfdc
4.若给定条件表达式(M)?(a++):(a--),则表达式M和()等价
A M==0 B M=1 C M!=1 D M!=0
5.在语言中,语句后的一对圆括号中,用以决定分支流程的表达式为()
A 只能是逻辑表达式 B 只能是关系表达式 C 只能是逻辑表达式或关系表达式 D 可以是任意表达式
6.以下程序的输出结果为()
main()
{ char c;
int i;
for(i=65;i<68;i++)
{c=i+32:
switch(c)
{case'a':printf("%c,",c);break;
case'b': case'e': printf("ok,");
default: printf("end");
}
} }
A a,ok,end B a,ok,endend C a,ok,end,end Da,ok,ok
7.数组名作为实参数传递给函数时,数组名被处理为()
A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D该数组中个元素的值
8.关于return语句中,下列正确的说法是()
A 可在同一函数中出现多次 B在主函数中不能出现 C 必须在每个函数中出现 D 只能在除主函数之外的函数中出现一次
9.以下程序的输出结果为()
#defineA3
#defineB(a)(A+1)*a
main()
{intx;

1.B
2.B
3.AD要是你没写错,我选A
4.条件表达式的第一部分是一个逻辑表达式,ACD都可
5.D,这个表达式将被求值,非零代表真
6.B printf("ok,"); 后面没break;
7.C 参数传递时,数组总是被转化成相应的指针
8.A 可以在任意函数中出现任意多个,但只能(会)有一个被执行
9.B
10.A

1.D
原因:先算a * a = 144;再算a -= 144,即a = a - 144,这是a还是12,计算后等号右边的值时-132,此时a = -132;最后计算a += -132,也就是
a = a + (-132),结果时-264。
PS:可以在编译器里试试
2.B
原因:A中的标识符如果是a3_b3就是合法的,而如果是你写的a3-b3就是非法的,以为标识符只允许有下划线、英文、数字,而且必须以英文或下划线开头!
B里void是关键字,不能作为标识符
C里的_123与A同理
D里IF不是关键字,if才是关键字,C里区分大小写
3.……
4.……
5.D
原因:0为false,非0为true,C中会自动转换
6.B
7.C
8.A
9.B
10.A

楼上几位第2,3,4题有点问题

2.ABC

a3-b3 标识符不能有-号
void 标识符不能为关键字
-123 标识符不能有-号,且职能有下划线或字母开头

3.C

-o(这是字母o)x123 -0(是零,不是字母o)x123是可以的

4.D

M!=0 表示M不为假

4题是D