错题笔记
1.以下程序的输出结果是( )
main()
{
int x=0,y=0,z=0;
if(x=y+z)
printf("***");
else
printf("###");
}
A: 有语法错误,不能通过编译
B: 输出:***
C: 可以编译,但不能通过连接,所以不能运行
D: 输出:###
标准答案:D 您的答案:A
2.若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是( )。
A: (exp0)
B: (exp!=0)
C: (exp1)
D: (exp!=1)
标准答案:B 您的答案:C
解析:当exp不低于0,即等于1,为正确。
3.已有定义int k=2,*ptrl,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )
A: k=*ptr1+*ptr2
B: ptr2=k
C: ptr1=ptr2
D: k=ptr1(*ptr2)
标准答案:B 您的答案:D
解析:B选项为将整形变量k赋予指针变量pyr2.
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 您的答案:B
解析:C答案第一个式子将p1指向2,然后先*p再++。
5.若有以下定义,则赋值正确的是( )。
int a ,b , *p;
float