复习题三答案及详细分析.doc
文本预览下载声明
第五章
以下合法的字符常量是
A 0xDE B \101 C \ D 答案:D
分析:表示转义字符中的单引号字符
以下不合法的字符常量是
A a B \179 C \xee D \n
答案:B
分析:B)’\179’中的9中超出了八进制数值的范畴
已定义ch为字符型变量,以下赋值语句中错误的是
A ch=\; B ch=62+3; C ch=\0; D ch=\xaa;
答案:A
分析:
A)字符变量要保存字符常量,字符常量要用单引号引起来,同时,这应是一个转义字符,正确的应为:ch=’\\’
B)等价于ch=’A’
C)’\0’为转义字符,赋值正确
D)十六进制表示的转义字符
以下程序的输出结果是
main()
{ char x=C;
x=(x=Ax=Z)?(x+32):x;
printf(%c,x);
}
A C B c C 67 D 99
答案:B
分析:条件表达式x=(x=’A’x=’Z’)?(x+32):x的第一个式子(x=’A’x=’Z’)为真,因此执行x+32这个操作,所以x=’C’+32,因此打印输出的是c。
以下程序的输出结果是
main()
{ char x,y;
x=B-A+a;
y=x+2;
printf(%d,%c,x,y);
}
A 98,d B b,d C B,D D 98,100
答案:A
分析:
x=’B’-’A’+’a’=66-65+97=98
y=x+2=98+2=100,ASCII值为100的是字符’d’
所以最后输出的98,d
若变量均正确定义,要求用scanf(%d%c%d%c,a,x,b,y);进行数据输入,使得a的值为40,b的值为50,为x赋*,为y赋#,以下正确的输入形式是
A 40*50# B 40 * 50 # C 40 *50# D 40*50 #
分析:整型数据和字符型数据交替输入的时候输入形式只有两种:
(1)40*50#回车
(2)40* 50#回车
其他情况下,都会降空格符号作为字符读入,导致结果错误,所以选A)
要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,则正确的程序段是
A while((ch=getchar())!=N)printf(%c,ch);
B while(ch=getchar()!=N)printf(%c,ch);
C while(ch=getchar()==N)printf(%c,ch);
D while((ch=getchar())==N)printf(%c,ch);
以下程序:
main()
{ char c1,c2,c3,c4,c5,c6;
scanf(%c%c%c%c,c1,c2,c3,c4);
c5=getchar(); c6=getchar();
putchar(c1); putchar(c2);
printf(%c%c\n,c5,c6);
}
程序运行后,若从键盘输入
123回车
45678回车
则输出结果是
A 1267 B 1256 C 1278 D 1245
答案:D
分析:1,2,3依次赋给了c1,c2,c3,回车符也作为字符赋给了c4,所以c5,c6依次读入的是4,5。
在C程序中
A main函数必须出现在所有函数之前 B main函数可以在任何地方出现
C main函数必须出现在所有函数之后 D main函数必须出现在固定位置
答案:B
分析:在C语言中,函数可以在任何地方出现,而main函数作为函数中的一类,没有特殊的限制和要求,故也可以在任何地方出现。
C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A void B int C float D double
答案:B
分析:C语言默认规定
设函数fun的定义形式是
void fun(char ch,float x){......}
则以下对函数fun的调用语句中,正确的是
A fun(abc,3.0); B t=fun(D,16.5); C fun(65,2.8); D fun(32,32);
答案:D
分析:对应每个形参的类型结构。
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A 调用可以作为独立的语句存在 B 调用可以作为一个函数的实参
C 调用可以出现在表达式中
显示全部