C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
41.inta=0;if(a=1)a+=10;结果的值是(B)。
A.0B.11C.10D.出错
42.下列表达式中符合C语言语法的赋值表达式是(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
43.设f是实型变量,下列表达式中不是逗号表达式的是(D)。
A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)---赋值表达式
44.下列表达式中,不正确的表达式是(B)。
A.a=1,b=1B.y=int(x)C.a=b=5D.i++
45.intn;floatf=13.8;执行n=((int)f)%3后,n的值是(A)。
A.1B.4C.4.333333D.4.6
46.用十进制数表示表达式“12|012”的运算结果是(C)。
A.1B.0C.14D.12
47.设有整型变量a=35,表达式(a&15)&&(a|15)的值是(B)。
A.0B.1C.15D.35
48.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是(D)。
A.00011100B.00000111C.00000001D.00010100
49.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是(D)。
A.’a’&&’b’B.a<=bC.a||b+c&&b-cD.!
((a
c||1)
50.设x,t均为int型变量,则执行以下语句后,t的值为(D)
x=10;t=x&&x>10;。
A.不定值B.10C.1D.0
51.设x,y,z,t均为int型变量,则执行以下语句后,t的值为(C)。
x=y=z=1;t=++x||++y&&++z;
A.不定值B.2C.1D.0
52.设a是char型变量,其值字符为’1’,则把其值变成整数1的表达式是(C)。
A.(int)aB.int(a)C.a=a-48D.a/(int)a
53.设a是int型变量,其值为3,则把其值变成字符’3’的表达式是(D)。
A.(char)aB.a=3C.a=a-48D.a=a+48
54.设ch是char型变量,其值为’A’,则下面表达式的值是(B)。
ch=(ch>=’A’&&ch<=’Z’)?
(ch+32):
ch
A.AB.aC.ZD.Z
55.设有整型变量i,j,k,i值为3,j值为6。
计算表达式k=i^j<<3;后,k的值是(B)。
A.56B.51C.40D.27
56.设有无符号短整型变量i,j,k,i值为013,j值为0x13。
计算表达式k=~i|j>>3;后,
k的值是(D)。
A.06B.0177776C.066D.0177766
57.设有无符号整型变量a值为331,计算表达式a=(a>>4)&~(~0<<4)后,a的值是(A)。
A.4B.15C.015D.017
58.下列格式符中,哪一个可以用于以8进制形式输出整数(C)。
A、%dB、%8dC、%oD、%ld
59.下列格式符中,哪一个可以用于以16进制形式输出整数(B)。
A、%16dB、%8xC、%d16D、%d
60.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);
61.字符变量ch=’A’,int类型变量k=25,语句printf(”%3d,%d3\n”,ch,k);输出(A)。
A、65,253B、65253C、65,25D、A25
62.设a=1234,b=12,c=34执行printf(“|%3d%3d%-3d|\n”,a,b,c);的输出是(A)。
A.|12341234|B.|1231234|C.|123412-34|D.|2341234|
63.使用scanf(“x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是(C)。
A.1.25,1.25B.1.251.25C.x=1.25,y=1.25D.x=1.25y=1.25
64.要使doublex;longa;获得数据,正确的输入语句是(C)。
A.scanf(“%d,%f”,&a,&x);B.scanf(“%f,%1d”,&x,&a);
C.scanf(“%ld,%1f”,&a,&x);D.scanf(“%1d,%1f”,a,x);
65.要使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);
66.设有inta=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是(B)。
A.255,8B.ff,10C.0xff,010D.输出格式错
67.设有inti=010,j=10;则printf(“%d,%d\n”,++i,j--);的输出的是(B)。
A.11,10B.9,10C.010,9D.10,9
68.设a、b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b);
后使a为’A’,b为’B’,从键盘上的正确输入是(D)。
A.‘A’’B’B.‘A’,’B’C.A=A,B=BD.a=A,b=B
二、填充题
1.在内存中存储“A”要占用个字节,存储‘A’要占用个字节。
2.C语言中的逻辑值“真”是用表示的,逻辑值“假”是用表示。
逻辑
表达式值为“真”是用表示的,逻辑表达式值为“假”是用表示的。
3.符号常量的定义方法是。
4.无符号基本整型的数据类型符为unsigned,双精度实型数据类型符为double,
字符型数据类型符为char。
6.定义变量的完整语句格式是存储类型符数据类型符变量名1=初值1……变量名n=初
值n。
7.设下列运算符:
<<、+、++、&&、<=,其中优先级最高的是++,优先级最低的
是&&。
8.设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,
则二进制数B应是11110000。
10.设a=3,b=2,c=1,则a>b的值为1,a>b>c的值为0(a>b>ca>b为11>c假为0)。
11.若已知a=10,b=20,则表达式!
a
a为00
12.设c=’w’,a=1,b=2,d=-5,则表达式‘x’+1>c,‘y’!
=c+2,-a-5*b<=d+1,b==a=2的值为
1,0,0,1。
13.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0(x/y为0整除)。
14.若已知shortints=10;inti=25;longintk=1000000L;floatf=0.5;doubled=1.5;则表达式
f+s*i-k,i/f+s*d,(double)i/s*f,k/i+(int)d/f的值为–999749L,65.000000,
1.2500000,40002L。
14.设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。
15.intx=17,y=5;执行语句x+=--x%--y后x的值为16。
16.intx=17,y=5;执行语句x%=x++/--y后x的值为2。
17.ch是字符变量,判断ch是英文字母的逻辑表达式为ch>=’a’&&ch<=’z’||
ch>=’A’&ch<=’Z’.
18.判断int类型变量n是否为两位整数的逻辑表达式为abs(n)>9&&abs(n)<100。
19.判断变量a、b的值均不为0的逻辑表达式为a!
=0&&b!
=0。
20.判断变量a、b是否绝对值相等而符号相反的逻辑表达式为a==-b。
21.变量a、b中必有且只有一个为0的逻辑表达式为a==0&&b!
=0||a!
=0&&b==0。
22.m是值为两位数的整型变量,判断其个位数是奇数而十位数是偶数的逻辑表达式为
m/10%2==0&&m%2==1。
23.求解赋值表达式a=5+(c=6)后表达式值、a、c的值依次为11,11,6。
24.求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为4,4,10,6。
25.求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3。
26.求解逗号表达式(a=15,a*4),a+5,表达式值、a的值依次为20,15。
27.求变量a、b中最大值的条件表达式为a>b?
a:
b。
28.若a=13、b=25、c=-17,条件表达式((y=(a
a:
b)y:
c的值为-17。
29.若s=’d’,执行语句s=(s>=’a’&&s<=’z’)?
s-32:
s;字符变量s的值为‘D’。
30.3&5、3|5、3||5的值分别为1、7、1。
31.intx=707,表达式x^x、x|x、~x^x的值分别为0、707、707。
32.intx=0707,表达式~x&&x、!
x&&x、x>>3&~0的值分别为0、0、070
33.inta=7,b=6,c=5;,表达式(a+b)>(c*c)&&b==c||c>b的值为0。
34.inta=3,b=5,c=7;,表达式a>c||c>b!
=0&&c==b+a的值为0。
35.设整型变量x,y,z均为5:
①执行x-=y–z;后x=5,
③执行x%=y+z;后x=5,
③执行x=(y>z)?
x+2:
x-2,3,2后x=3。
36.2037.数学式
的C语言表达式a/(b*c)。
38.中运算结果可以当成逻辑值使用的表达式有:
关系表达式、算术表达式、
条件表达式、赋值表达式和逗号表达式。
第三章
顺序结构、选择结构和循环结构
一、单项选择题
1.假定所有变量均已正确定义,下列程序段运行后y的值是(A)。
inta=0,y=10;
if(a=0)y--;elseif(a>0)y++;elsey+=y;
A.20B.11C.9D.0
2.假定所有变量均已正确定义,下列程序段运行后x的值是(B)。
a=b=c=0,x=35;
if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
3.下面的程序片段所表示的数学函数关系是(C)。
y=-1;
if(x!
=0)if(x>0)y=1;elsey=0;
A.
B.
C.
D.
4.下列各语句序列中,能够且仅输出整型变量a、b中最大值的是(C)。
A、if(a>b)printf(”%d\n”,a);printf(”%d\n”,b);
B、printf(”%d\n”,b);if(a>b)printf(”%d\n”,a);
C、if(a>b)printf(”%d\n”,a);elseprintf(”%d\n”,b);
D、if(a
5.下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是(B)。
A、if(u>s)t=u;t=s;B、t=s;if(u>s)t=u;
C、if(u>s)t=s;elset=u;D、t=u;if(u