你好,希望以下的答案对你有一定帮助:
19.C 解析:A显然是正确的,字符串就是用字符型数组存放的,B答案是正确的,因为字符串可以整体输入(仅在说明语句中可以)、输出(在执行语句中可以),D答案正确,只能在说明语句中进行此操作。C错,可以在执行语句整体输入,但不能整体输出,一般用For循环控制输出。
21.BC 解析:理解赋值运算符是将=右边的值赋给左边的变量,且结合性为右结合。即A的意思是将a的值赋给b,再将b的值赋给c,错。B,C先执行括号内的语句,均将c赋给了a,b,正确。D错,它的意思是将b的值赋给c,再将c(此时c的值为b的值)赋给a。
22.D(?) 解析:第一次:x=10,y=10进入循环体,x--由于自减运算符为后缀形式,故表达式的值仍为10,x=9,因此输出10,10.第二次:x=9,y=0进入循环体,x--表达式的值为9,x=8,y=0因此输出9,0.我想楼主是不是把“y=i”打错了,如果是“y=i++”那么第二次就输出9,1了,答案就是D了
23.D(?) 解析:首先题目有点问题,x是数组不能这么写,应写成x[ ]才行;第3行“i=2”错误,这样程序陷入死循环,应该是“i+=2”吧,“p”应该是“p[i]”吧。。。如果是这样,由于p指向数组x的首地址,第一次输出的是9,第二次输出的是7.
楼主,不好意思啊,做不下去了,你先把题目改一下吧,我按答案猜题目肯定会有错误的。等你改好题目后再回答吧~~
24.题目如果如下,输出结果是:6789
void main( )
{ char a[]={'1','2','3','4','5','6','7','8','9',0},*p;
int i;
i=8;
p=a+i;
printf("%s ",p-3);
}