C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
(17)设f是实型变量,下列表达式中不是逗号表达式的是D。
A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)
(18)设ch是char型变量,其值为'A',则下面表达式的值是B。
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch
A.AB.aC.ZD.Z
(19)以下运算符中,结合性与其他运算符不同的是A。
A.++B.%C./D.+
(20)以下用户标识符中,合法的是B。
A.intB.nitC.123D.a+b
(21)C语言中,要求运算对象只能为整数的运算符是%。
A.%B./C.>D.*
(22)PC机中,'\n'在内存占用的字节数是A。
A.1B.2C.3D.4
(23)字符串"ABC"在内存占用的字节数是B。
A.3B.4C.6D.8
(24)要为字符型变量a赋初值,下列语句中哪一个是正确的B。
A.chara="3";B.chara=’3’;C.chara=%;D.chara=*;
(25)下列不正确的转义字符是C。
A.\\B.\'C.074D.\0
2.填空题
(1)C语言中的逻辑值“真”是用非0表示的,逻辑值“假”是用0表示的。
(2)符号常量的定义方法是#defineN10。
(3)无符号基本整型的数据类型符为unsignedint,双精度实型数据类型符为double,字符型数据类型符为char。
(4)设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!
=c+2,-a-5*b<=d+1,b==a=2的值分别为1、0、1、表达式错误。
(5)设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。
(6)判断变量a、b的值均不为0的逻辑表达式为(a!
=0)&&(b!
=0)。
(7)求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为4,4,10,6。
(8)求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3。
(9)数学式a/(b*c)的C语言表达式a/(b*c)。
第3章顺序结构程序设计习题
1.选择题
(1)printf("f=%3.2f%%",3.478);的输出结果是A。
A.f=3.48%B.f=3.5%C.f=3.48%%D.f=347.8%
(2)printf("%c,%d",'a','a');的输出结果是A。
A.a,97B.a97C.97,aD.97a
(3)scanf("%c",&a);若要给变量输入大写字母A,则以下正确的输入是B。
A.'A'B.A\C."A"D.以上都不对
(4)若一个int类型的数据占2字节,则程序段:
intx=-1;printf("%u,%d",x,x);的输出结果是A。
A.65535,-1B.-1,65535C.32767,32768D.32768,32767
(5)在TC中,getchar、putchar、printf、scanf四个函数,均包含在头文件B
中。
A.math.hB.stdio.hC.stbio.hD.stdlib.h
(6)复合语句是用C括起来的语句组。
A.()B.[]C.{}D.<>
(7)下列格式符中,哪一个可以用于以八进制形式输出整数C。
A.%dB.%8dC.%oD.%ld
(8)下列格式符中,哪一个可以用于以十六进制形式输出整数B。
A.%16dB.%8xC.%d16D.%d
(9)a是int类型变量,c是字符变量,下列输入语句中哪一个是错误的B。
A.scanf("%d,%c",&a,&c);B.scanf("%d%c",a,c);
C.scanf("%d%c",&a,&c);D.scanf("d=%d,c=%c",&a,&c);
(10)要使doublex;longa;的数据能正确的输出,输出语句应是D。
A.printf("%d,%f",a,x);B.printf("%d,%1f",a,x);
C.scanf("%1d,%1f",&a,&x);D.printf("%1d,%lf",a,x);
2.程序改错题(以下各个程序段均有5个错误,请先找出错误的位置,然后再改正)
(1)以下程序的功能是,从键盘输入一个字符并鸣笛输出。
#include"stdio.h"
mian()//main()
{charc//charc;
getchar(c);//c=getchar();
putchar('\007');/*鸣笛*/
c=putchar();//putchar(c);
//}
(2)以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。
main//main()
{
inta,b,s,l;//doublea,b,s,l;
scanf("%d,%d",&a,&b);//scanf("%lf,%lf",&a,&b);
s=a*b;
l=a+b;//l=(a+b)*2;
printf("l=%f,s=%f\n",l);//printf("l=%lf,s=%lf\n",l,s);
}
3.写出程序运行结果
(1)
main()
{
inta,b;