14、若有定义:
inta=2;则正确的赋值表达式是()
A.a-=(a*3)B.double(-1)C.a*3D.a*4=3
15、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()
A.3,3,4B.4,4,3C.4,4,4D.3,4,3
16、语句a=(3/4)+3%2;运行后,a的值为()
A.0B.1C.2D.3
17、以下四项中,符合C语言语法的语句是()
A.inta+b=c;B.inta=12:
b=12:
c=12;
C.inta=12,b=12,c=12;D.inta,b=12,floatc=21
18、若有定义:
intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()
A.3,3B.4,4C.4,3D.3,4
19、若变量已正确定义并赋值,符合C语言语法的表达式是()
A.a=8+b+c,a++B.a=3aC.int(12.3%4)D.a=a+1=c+b
20、若有定义:
inta,b;doublex;则以下不符合C语言语法的表达式是()
A.x%(-3)B.a+=-1C.a=b=2D.x=a+b
21、若有定义:
intx=2,y=3;floati;则以下符合C语言语法的表达式是()
A.x=x*3=2B.x=(y==1)C.i=float(x)D.i%(-3)
22、若有定义:
intx;则语句x=(2*3)+6%5;运行后,x的值是()
A.8B.7C.6D.5
23、下面关于C语言变量的叙述中,错误的是()
A.可以用const关键字定义变量B.在C程序中,SUM和sum是不同的变量
C.变量名必须由字母或下划线组成D.变量的类型确定了变量的取值范围
24、若有定义:
intx=5,y=6;则表达式x=(y==6)的值为()
A.5B.1C.6D.0
25、下面叙述正确的是()
A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价
C.++5与6等价D.‘A’与”A”等价
26、下面叙述中,错误的是()
A.C语言基本的算术运算符不包含模运算符”%”
B.算术运算符的优先级高于关系运算符
C.自加和自减运算符的结合方向是”自右向左”
D.C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行
27、下面叙述正确的是()
A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)++是合法的
C.‘A’*’B’是不合法的D.“A”+”B”是合法的
28、若有定义:
inti=1,j=5;则表达式(++j)*(i--)的值为()
A.1B.0C.6D.7
29、设整型变量a为5,使b不为2的表达式是()
A.b=(++a)/3B.b=6-(--a)C.b=a%2D.b=a/2
30、若有定义:
inta=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为()
A.1B.0C.2D.3
31、若有定义:
inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()
A.7B.8C.9D.10
32、若有定义:
inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()
A.7B.8C.9D.10
33、若有定义:
inti=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为()
A.8B.6C.7D.5
34、若已定义:
inti=3,k;则语句k=(i--)+(i--);运行后k的值为()
A.4B.5C.6D.7
35、若已定义:
longinti;charc;doublex;则表达式i*c+(int)x结果的类型是()。
A.intB.charC.doubleD.longint
36、若已定义:
floatm;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()
A.scanf(“%5.2f”,&m);B.scanf(“%3.2f”,&m);C.scanf(“%6.2f”,&m);D.scanf(“%6f”,&m);
37、已知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()
A.scanf(“%ld”,&a);B.scanf(“%lf”,&a);C.scanf(“%c”,&a);D.scanf(“%u”,&a);
338、已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()
A.scanf(“%d”,&a);B.scanf(“%lf”,&a);C.scanf(“%c”,&a);D.scanf(“%u”,&a);
39、putchar()函数的功能是向终端输出()
A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式
40、以下程序段运行后的输出结果是()
intk=11;
printf(“k=%d,k=%o,k=%x\n”,k,k,k);
A.k=11,k=13,k=cB.k=11,k=12,k=13C.k=11,k=13,k=bD.k=11,k=13,k=a
41、若有定义:
intx=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为()
A.123412312B.12341234123412341231231231212
C.1234+1234+1234D.1234+123+12
42、已有如下定义和输入语句,
inta;charc1,c2;
scanf("%d%c%c",&a,&c1,&c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()
A.10ABB.10ABC.10ABD.10AB
43、以下程序段的运行结果是()
inta=0,b=0,c=0;
if(a&&++b)
c++;
printf(“%d,%d\n”,b,c);
A.0,0B.1,2C.2,2D.1,0
44、以下程序的运行结果是()
voidmain()
{
inta=65;
charc=’A’;
printf(“%x,%d”,a,c);
}
A.65,aB.41,aC.65,65D.41,65
45、下列叙述正确的是()
A.表达式"3"+"4"的结果是"34"
B.若已定义:
inta,b;,则表达式(a+b)++是进行a+b之和的自增1运算
C.强制类型转换运算的优先级高于算术运算D.表达式'3'+'4'的结果是'7'
46、要使用以下程序段给三个整变量x1,x2,x2分别赋值1,2,3,正确的数据输入格式是()intx1,x2,x3;scanf("%d,%d,%d",&x1,&x2,&x3);
A.123B.1,2,3C.123D.123
47、若有下列语句段:
charchr;inta;scanf("%c%d",&chr,&a);拟从键盘将'B'和6分别赋予变量chr和a,正确的数据输入是()。
A.B6B.B,6C.6BD.6,B
48、在C语言中,判定逻辑值为“真“的最正确的叙述是()
A.1B.非0的数C.大于0的数D.非0的整数
49、下列程序段的运行结果是()。
inta=66;charc='A';printf("%c+%c=%d\n",c,a,c+a);(注:
字母'A'的ASCII值为65)
A.65+B=131B.A+66=131C.65+66=131D.A+B=131
50、能正确表示数学关系式800>=y>=500的C语言表达式为()
A.(y<=800)&&(y>=500)B.(y<=800)AND(y>=500)
C.800>=y>=500D.(y<=800)&(y>=500)
51、若有定义:
intx=3,y=4;则表达式!
x||y的值为()
A.1B.0C.3D.4
52、若有定义:
inti=7,j=8;则表达式i>=j||iA.1B.变量i的值C.0D.变量j的值
53、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。
则不能满足要求的表达式是()
A.a%2==1B.!
(a%2==0)C.!
(a%2)D.a%2
54、若有定义:
intx=3,y=4,z=5;则值为0的表达式是()
A.‘x’&&yB.x<=y
C.x||y+z&&y-zD.!
((xz||1)
55、若已定义:
inta=1,b=2,c=2;则表达式(a+b)/1.0/c的值是()。
A.1.5B.1C.0.0D.1.0
56、C语言中,能正确表示条件10A.1010||x<20C.x>10&&<20D.(x>10)&&(x<20)
57、以下运算符中优先级最低的是()
A.<>D.|
58、已知doublea=5.2;则正确的赋值表达式是()
A.a+=a-=(a=4)*(a=3)B.a=a*3=2
C.a%3D.a=double(-2)
59、已知chara='R';则正确的赋值表达式是()
A.a=(a++)%4B.a+2=3C.a+=256--D.a=’\078’
60、已知inta=’R’;则正确的表达式是()
A.a%10B.a=int(3e2)C.2*a=a++D.a=a+a=a+3
61、设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是()
A.x*=y-4B.x*=yC.x=y+4D.x+=y
62、若有定义:
floatx=3.5,intz=8;则表达式x+z%3/4的值为()
A.3。
75B.3.5C.3D.4
63、若已定义:
intx,y;则下列不能正确表示数学关系式|x-y|>5的表达式是()
A.(x-y)>5||(x-y)<-5B.abs(x-y)>5C.(x-y)<-5&&(x-y)>5D.(x-y)*(x-y)>25
64、若有定义:
inta=2,b=3;floatx=3.5,y=2.5;
则表达式(float)(a+b)/2+(int)x%(int)y的值是()
A.3.5B.3.0C.2.5D.2.0
65、若有定义:
intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是()
A.2.5B.3.5C.4.5D.5.5
66、以下程序的运行结果是()
#defineM(a,b)a*b
main()
{
intx=3,y=2,s1,s2;
s1=M(x+y,x-y);
s2=M(x-y,x+y);
printf("%d,%d\n",s1,s2);
}
A.-1,7B.5,5C.7,-1D.5,-5
67、以下叙述中,正确的是()
A.“#definePRICE=30”定义了与30等价的符号常量PRICE
B.预编译处理命令行都必须以“#”开头
C.程序中使用带参的宏时,参数类型要与宏定义时一致
D.宏名只能包含大写字母和数字字符
68、以下叙述中,正确的是()
A.宏展开不占用运行空间,只占用编译时间
B.预编译处理命令行必须以分号结束
C.一个源程序只能有一个预编译处理命令行
D.使用带参数的宏定义时,应该说明每个参数的数据类型
69、以下的叙述中不正确的是()
A.宏展开不占用运行时间,只占用编译时间B.宏名无类型
C.宏名必须用大写字母表示D.预处理命令行都必须以#号开始
70、以下程序运行后,屏幕输出为()
#defineMIN(a,b)((a)<(b)?
(a):
(b))
main()
{
intx=2,y=3,z;
z=2*MIN(x,y);
printf("%d",z);
}
A.2B.3C.4D.6
71、下列#include命令中,正确的是()
A.#inclue[string.h]B.#include{string.h}
C.#include(string.h)D.#include
72、下面程序的输出结果是()
#include
#defineONE1
#defineTWOONE+1
#defineTHREETWO+1
voidmain()
{
printf("%d\n",THREE-ONE);
}
A.产生错误B.1C.2D.3
73、下列叙述错误的是()。
A.预处理命令行都必须以#号开始
B.#definePER1.5的作用是用标识符PER代表1.5
C.C语言源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
D.宏定义可出现在源程序中任意合适的位置,且必须在行末加分号
74、以下程序的运行结果是()
#defineADD(x)x+x
main()
{
intm=1,n=2,k;
k=ADD(m+n)*3;
printf("%d",k);
}
A.9B.10C.12D.18
75、下面程序的运行结果是()
#defineM10
#defineS(x)x*x
#defineF(x)(x*x)
main()
{
intn1,n2;
n1=1000/S(M);
n2=1000/F(M);
printf("%d,%d\n",n1,n2);
}
A.10,10B.1000,10C.10,1000D.1000,1000
76.在对无符号数的位运算中,操作数左移一位相当于()。
A.操作数除以2B.操作数乘以2C.操作数除以4D.操作数乘以4
77.若有定义:
inta=20,b=28,c;则执行语句c=(a^b)<<2;后c的值为()。
A.2B.5C.32D.92
78.若有定义:
inta=5,b=7,c;则执行语句c=a&b;后c的值为()。
A.12B.2C.6D.5
79.下面程序段的运行结果是()。
inta=5,b=6;
printf("%d",a|b);
A.5B.6C.7D.8
80、以下程序段运行后,c的二进制值是()。
inta=2,b=3,c=10;c>>=a|b;
A.00000001B.00000010C.00101000D.01010000
第四章程序控制结构
1、下列程序段的运行结果是()。
inta=6,b=5;
if(a>b++)printf("True:
%d\n",++a);
elseprintf("False:
%d\n",b++);
A.True:
7B.False:
6C.False:
5D.True:
6
2、若已定义inta,b,c,k;下列程序段与语句k=(a>b?
(a>c?
1:
0):
0);功能等价的是()。
A.if((a>b)&&(a>c))k=1;elsek=0;
B.if((a>b)||(a>c))k=1;elsek=0;
C.if(a>b)k=0;elseif(a>c)k=1;elsek=0;
D.if(a>c)k=1;elseif(a>b)k=0;elsek=0;
3、下列程序段的运行结果是()。
intx;if(x=3)printf("%d\n",x++);
elseif(x>3)printf("%d\n",x+2);
elseprintf("%d\n",x+3);
A.4B.5C.6D.3
4、下列()不能当作一条语句。
A.if(k>0)m=1;elsen=2;B.m=1,n=2,k=3;C.if(k>0);D.if(k==0)m=1;n=2;
5、以下程序段运行时,若从键盘输入10,则输出结果是()
inta;
scanf(“%d”,&a);
if(a++>10)
printf(“%d\n”,a);
else
printf(“%d\n”,++a);
A.2B.11C.3D.12
6、以下程序的运行结果是()
voidmain()
{
intx,y=1,z;
z=-1;
if(z==0)
z=-z;
else
x=y>0?
3:
5;
printf(“%d\n”,x);
}
A.-1B.3C.1D.5
7、对于整型变量x,下属if语句()与赋值语句:
x=x%2==0?
1:
0;不等价。
A.if(x%2!
=0)x=0;elsex=1;B.if(x%2)x=1;elsex=0;
C.if(x%2==0)x=1;elsex=0;D.if(x%2==1)x=0;elsex=1;
8、以下程序段运行的结果是()
inta,b,c,x;
a=b=c=0;x=15;
if(!
a)x--;
elseif(b);
if(c)x=3;