C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
32.下列表达式中符合C语言语法的赋值表达式是()。
A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+7
33.设x,t均为int型变量,则执行以下语句后,t的值为()
x=10;t=x&&x>10;。
A.不定值B.10C.1D.0
34.设ch是char型变量,其值为’A’,则下面表达式的值是()。
ch=(ch>=’A’&&ch<=’Z’)?
(ch+32):
ch
A.AB.aC.ZD.Z
35.下列格式符中,哪一个可以用于以8进制形式输出整数()。
A、%dB、%8dC、%oD、%ld
36.下列格式符中,哪一个可以用于以16进制形式输出整数()。
A、%16dB、%8xC、%d16D、%d
37.a是int类型变量,c是字符变量。
下列输入语句中哪一个是错误的()。
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);
38.字符变量ch=’A’,int类型变量k=25,语句printf(”%3d,%d3\n”,ch,k);输出()。
A、65,253B、65253C、65,25D、A25
39.使用scanf(“x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是()。
A.1.25,1.25B.1.251.25C.x=1.25,y=1.25D.x=1.25y=1.25
40.设有inta=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是()。
A.255,8B.ff,10C.0xff,010D.输出格式错
41.设有inti=010,j=10;则printf(“%d,%d\n”,++i,j--);的输出的是()。
A.11,10B.9,10C.010,9D.10,9
42.设a、b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b);
后使a为’A’,b为’B’,从键盘上的正确输入是()。
A.‘A’’B’B.‘A’,’B’C.A=A,B=BD.a=A,b=B
二、填空题
1.在内存中存储“A”要占用个字节,存储‘A’要占用个字节。
2.C语言中的逻辑值“真”是用表示的,逻辑值“假”是用表示。
逻辑表达式值为“真”是用表示的,逻辑表达式值为“假”是用表示的。
3.符号常量的定义方法是。
4.说明变量时,若省略存储类型符,系统默认其为存储类别,该存储类别的类型符为:
。
5.无符号基本整型的数据类型符为,双精度实型数据类型符,字符型数据类型符为。
6.定义变量的完整语句格式是。
7.设下列运算符:
<<、+、++、&&、<=,其中优先级最高的是,优先级最低的
是。
8.设a=3,b=2,c=1,则a>b的值为,a>b>c的值为(真1假为0)。
9.若已知a=10,b=20,则表达式!
a
先求!
a为00
10.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为(提示:
x/y为0整除)。
11.ch是字符变量,判断ch是英文字母的逻辑表达式为.
12.判断int类型变量n是否为两位整数的逻辑表达式为。
13.判断变量a、b的值均不为0的逻辑表达式为。
14.变量a、b中必有且只有一个为0的逻辑表达式为。
15.m是值为两位数的整型变量,判断其个位数是奇数而十位数是偶数的逻辑表达式为
。
16.求解逗号表达式(a=15,a*4),a+5,表达式值、a的值依次为。
17.求变量a、b中最大值的条件表达式为。
18.若a=13、b=25、c=-17,条件表达式((y=(a
a:
b)y:
c的值为。
19.若s=’d’,执行语句s=(s>=’a’&&s<=’z’)?
s-32:
s;字符变量s的值为。
20.数学式
的C语言表达式。
三.判断题
1.在C程序中对用到的所有数据都必须指定其数据类型。
2.一个变量在内存中占据一定的存储单元。
3.一个实型变量的值肯定是精确的。
4.对几个变量在定义时赋初值可以写成:
inta=b=c=3;
5.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。
7.%运算符要求运算数必须是整数。
8.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
9.在C程序中,逗号运算符的优先级最低。
四.简答题
1.简述‘a’和“a”的区别。
2.程序:
intm=12;m=15;为什么整型变量m的值在运算后不是当初的12,而是15?
3.华氏温度F与摄氏温度c的转换公式为:
则floatc,F;c=5/9*(F-32)是其对应的C语言表达式吗?
如果不是,为什么?
五.程序阅读题
1.写出以下程序运行的结果。
main()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c%c”,c4,c5);
}
2.写出以下程序运行的结果。
main()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
六.编程题
1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:
123反序为321)的C语言表达式。
2.已知intx=10,y=12;写出将x和y的值互相交换的表达式。
第4章语句
顺序程序设计
一.单选题
1.C语言的程序一行写不下时,可以( )。
A)用逗号换行B)用分号换行C)在任意一空格处换行D)用回车符换行
2.putchar函数可以向终端输出一个( )。
A)整型变量表达式值B)实型变量值
C)字符串D)字符或字符型变量值
3.执行下列程序片段时输出结果是( )。
unsignedinta=65535;
printf(“%d”,a);
A)65535B)-1C)-32767D)1
4.执行下列程序片段时输出结果是( )。
floatx=-1023.012
printf(“\n%8.3f,”,x);
printf(“%10.3f”,x);
A)1023.012,-1023.012B)-1023.012,-1023.012
C)1023.012,-1023.012D)-1023.012,-1023.012
5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( )。
inta1,a2;charc1,c2;
scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);
A)10A20B↙B)10A20B↙
C)10A20B↙C)10A20B↙
6.对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按( )方式输入数据。
intk1,k2,k3,k4;
scanf(“%d%d”,&k1,&k2);
scanf(“%d,%d”,&k3,&k4);
A)1020↙B)1020↙C)10,20↙D)1020↙
1020↙1020↙10,20↙10,20↙
7.执行下列程序片段时输出结果是( )。
intx=13,y=5;
printf(“%d”,x%=(y/=2));
A)3B)2C)1D)0
8.下列程序的输出结果是( )。
main()
{intx=023;
printf(“%d”,--x);
}
A)17B)18C)23D)24
9.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是( )。
inta1,a2;charc1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
A)1020AB↙B)1020↙ AB↙
C)1020AB↙D)1020AB↙
10.执行下列程序片段时输出结果是( )。
intx=5,y;
y=2+(x+=x++,x+8,++x);
printf(“%d”,y);
A)13B)14C)15D)16
11.若定义x为double型变量,则能正确输入x值的语句是( )。
A)scanf(“%f”,x);B)scanf(“%f”,&x);
C)scanf(“%lf”,&x);D)scanf(“%5.1f”,&x);
*12.若运行时输入:
12345678↙,则下列程序运行结果为( )。
main()
{inta,b;
scanf(“%2d%2d%3d”,&a,&b);
printf(“%d\n”,a+b);
}
A)46B)579C)5690D)出错
13.已知i,j,k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是( )。
A)scanf(“%2d%2d%2d”,&i,&j,&k);B)scanf(“%d_%d_%d”,&i,&j,&k);
C)scanf(“%d,%d,%d”,&i,&j,&k);D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
14.有输入语句:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( )。
A)132↙B)1,3,2↙
C)a=1b=3c=2↙D)a=1,b=3,c=2↙
二.填空题
1.C语言的简单语句主要分为____________语句、___________语句、_____________语句,又称为___________语句;C语言的复杂语句主要分为____________语句、_____________语句、_____________语句,又称为___________语句;C语言的其他语句主要分为_____________语句、_____________语句和_____________语句。
2.C控制语句有_____种。
4.一个表达式要构成一个C语句,必须。
5.复合语句是用一对________界定的语句块。
6.printf函数和scanf函数的格式说明都使用__________字符开始。
7.已有inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是。
8.C语言本身不提供输入输出语句,其输入输出操作是由来实现的。
9.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:
。
三.程序阅读题
1.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入?
main()
{inta,b;
floatx,y;
charc1,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“%f%e”,&x,&y);
scanf(“%c%c”,&c1,&c2);
}
2.写出以下程序的输出结果。
main()
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
3.写出以下程序的输出结果。
main()
{inta=12345;
floatb=-198.345,c=6.5;
printf(“a=%4d,b=%-10.2e,c=%6.2f\n”,a,b,c);
}
4.写出以下程序的输出结果。
main()
{intx=-2345;
floaty=-12.3;
printf(“%6D,%06.2F”,x,y);
}
四.程序填空题
1.下列程序的输出结果是16.00,请填
(1)空使程序完整。
main()
{inta=9,b=2;
floatx=1,y=1.1,z