一
1.以下程序的输出结果是( )
main()
{
int x=0,y=0,z=0;
if(x=y+z)
printf("***");
else
printf("###");
}
A: 有语法错误,不能通过编译
B: 输出:***
C: 可以编译,但不能通过连接,所以不能运行
D: 输出:###
标准答案:D 我的答案:B
赋值语句中赋值表达式的值与最左值一致,所以x=0,输出###
2.有如下程序段
int a=14,b=15,x;
char c=‘A’;
x=(a&&b)&&(c<‘B’);
执行该程序段后,x的值为(D )。
A: true
B: false
C: 0
D: 1
标准答案:D 我的答案:B
a=14,b=15,为真,a&&b=真,A的ASCII码小于B的,c<B为真,真&&真为非零值,所以选D
3.若int i=10;执行下列程序后,变量i的正确结果是(D)
switch(i){
case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;
}
A: 10
B: 11
C: 12
D: 13
标准答案:D 我的答案:B
没有break语句来停止则程序将一直运行,直到运行到default,所以最后i的值为13
4.若有以下定义,则数值不为3的表达式是__________。
int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;
A: x[3]
B: p1=x+3,*p1++
C: p1=x+2,*(p1++)
D: p1=x+2,*++p1
标准答案:C 我的答案&#x