50212以下叙述中正确的是(A)。
A.字符常量用一对单撇号''作为单个字符的定界符
B.字符常量和字符串常量一样,都是用双引号括起来
C.字符常量存储时,自动在字符后加一个字符结束符号'\0'
D.字符常量和字符串常量所分配的内存空间大小是一样的
50300已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是(A)。
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.C,DC.C,68D.67,68
50301若有定义intm=6;则正确的赋值表达式是(C)。
A.m*7B.m*5=8C.m-=m*6D.double(-m)
50302语句k=(m=5,n=++m);运行之后,变量k、m、n的值依次为(D)。
A.5,5,6B.5,6,5C.6,6,5D.6,6,6
50303语句x=5%4+(4/5);运行之后,整型变量x的值为(A)。
A.1B.2C.3D.0
50304(B)语句符合C语言语法。
A.floatz=28,intx,y=18;B.intx=25,y=25,z=25;
C.intx=25:
y=25:
z=25;D.intx+y=z;
50305若有定义inta,x;则语句a=(x=8,x+8);运行后,变量a、x的值依次为(A)。
A.16,8B.8,8C.16,16D.8,16
50306若变量m,n,t已定义且赋予初值,则正确的表达式是(B)。
A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4)
50307若有定义:
inta,b;floatx,则以下不符合C语言语法的表达式是(A)。
A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b
50308若有定义:
intm=4,n=5;floatk;,则以下符合C语言语法的表达式是(B)。
A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.n%2.5
50309若有定义:
inta=6;则语句a*=a-=a/=3;运行后,a的值是(B)。
A.10B.0C.34D.24
50310下面关于C语言变量的叙述中,错误的是(A)。
A.可以用define关键字定义变量
B.变量名用大小写字母是有区别的
C.C语言允许不同基本类型的变量之间进行混合运算
D.C语言中要求对变量作强制定义的主要理由是:
便于确定类型和分配空间
50311若有定义:
inta=5,b=2;则表达式b=(a!
=5)的值为(B)。
A.5B.0C.3D.2
50312逗号表达式(a=15,a*4),a+15的值为(B)。
A.15B.30C.75D.60
50400下列语句中,符合C语言语法的赋值语句是(C)。
A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=7+b,b++,a+7;D.a=7=b,c=a+7;
50401(A)是正确的叙述。
A.(int)5.0/6与5/6等价B.'G'与"G"等价C.5/6与5.0/6.0等价D.++3与4等价
50402下面叙述中,错误的是(D)。
A.C语言中的表达式求值,是按其运算符的优先级先高后低的次序进行
B.自增与自减运算符的结合方向为“自右至左”
C.关系运算符的优先级低于算术运算符
D.C语言算术运算符不包含模运算符“%”
50403(C)是正确的叙述。
A.表达式"m"+"M"是合法的B.若变量x,y为整型,则(a+b)++是合法的
C.强制类型转换运算的优先级高于算术运算D.表达式'm'*'n'是不合法的
50404若有定义inti=1,j=9;则表达式(++j)*(i--)的值为(B)。
A.0B.10C.9D.8
50405设整型变量x为7,使整型变量y不为2的表达式是(A)。
A.y=x%3B.y=x/3C.y=(++x)/3D.y=8-(--x)
50406若已定义inta=3,b=2,c=1;则语句++a||++b&&++c;运行后b的值为(D)。
A.0B.3C.1D.2
50407若有定义:
inti=5,j=4;则语句i/=++j;运行后i的值为(B)。
A.10B.1C.1.25D.0
50408若已定义:
inta=2,b=2;则表达式(a+(b++),b)的值是(B)。
A.2B.3C.4D.6
50409若有定义:
intr,x=245;则语句r=x/100%9;运行后r的值为(A)。
A.2B.5C.0D.27
50410若已定义:
inti=6,t;则语句t=3+(--i);运行后t的值为(C)。
A.9B.7C.8D.5
50411C语言的%运算符按运算对象的个数属(C)。
A.单目运算符B.四目运算符C.双目运算符D.三目运算符
50412若已定义:
inta=5,b=9,c=6;则语句b++;++c;a=b-c;运行后a的值为(B)。
A.5B.3C.2D.4
50500以下程序运行时,若从键盘输入5,则输出结果是(D)。
main()
{inta;
scanf("%d",&a);
if(a++>5)printf("%d\n",a);
elseprintf("%d\n",a--);}
A.7B.4C.5D.6
50501若已定义floatx;要从键盘输入数据36.582给变量x,则应选用(B)语句。
A.scanf("%2.3f",&x);B.scanf("%6f",&x);
C.scanf("%6.3f",&x);D.scanf("%5.3f",&x);
50502若已定义doubley;拟从键盘输入一个值赋给变量y,则正确的函数调用是(C)。
A.scanf("%d",&y);B.scanf("%7.2f",&y);C.scanf("%lf",&y);D.scanf("%ld",&y);
50503已有定义chars;使用scanf()函数输入一个字符给变量s,不正确的函数调用是(D)。
A.scanf("%c",&s);B.scanf("%d",&s);C.scanf("%u",&s);D.scanf("%lf",&s);
50504函数putchar()的功能是向终端输出(A)。
A.一个字符B.多个字符C.一个关系表达式D.一个实型变量值
50505若已定义inta=11;执行以下语句后的输出结果是(B)。
printf("a=%d,a=%o,a=%x\n",a,a,a);
A.a=11,a=11,a=bB.a=11,a=13,a=bC.a=11,a=13,a=cD.a=11,a=12,a=13
50506若有定义intm=4321,n=123,k=21;语句printf("%4d+%3d+%2d",m,n,k);执行后的输出结果是(C)。
A.4321432143211231231232121B.432112321C.4321+123+21D.432+123+021
50507已有如下定义和输入语句,charc1,c2;intx;scanf("%c%d%c",&c1,&x,&c2);若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是(A)。
A.K9HB.K9HC.K9HD.9KH
50508以下程序段的运行结果是(A)。
inta=1;printf("%d,%d,%d\n",a,++a,a++);
A.3,3,1B.1,2,2C.1,2,3D.3,2,1
50509以下程序的运行结果是(D)。
voidmain()
{inta=65;
charc='A';
printf("%d+%c=%d\n",a,c,a+c);}
A.A+A=AAB.65+A=65AC.65+65=130D.65+A=130
50510若已定义:
intx=7;floaty=7.0;以下语句中能输出正确值的是(B)。
A.printf("%d%d",x,y);B.printf("%d%.3f",x,y);
C.printf("%.3f%.3f",x,y);D.printf("%.3f%d",x,y);
50511putchar函数可以向终端输出一个(A)。
A.字符或字符型变量值B.整型变量表达式值C.实型变量值D.字符串
50512若已定义:
inta=6;floatb=1.5;要求输出形式为:
6*1.50=9.00,应选用的正确输出语句是(B)。
A.printf("%d*%f=%f",a,b,a*b);B.printf("%d*%.2f=%.2f",a,b,a*b);
C.printf("%d*%d=%.2f",a,b,a*b);D.printf("%.2f*%.2f=%.2f",a,b,a*b);
50600有以下程序:
main()
{intc;
while((c=getchar())!
='\n')
{switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
}
printf("\n");
}
当输入:
247<回车>,程序的输出结果是(B)。
A.689B.6689C.66778D.66887
50601若已定义intx=5,y=9,z;语句z=x>=y;运行后z的值为(C)。
A.1B..t.C.0D..f.
50602判定逻辑值为“真”的最准确叙述是(D)。
A.1B.大于0的数C.非0的整数D.非0的数
50603若已定义intx=-16,y=-12,z;语句z=x<=y;运行后z的值为(B)。
A..t.B.1C..f.D.0
50604能正确表示数学关系式100≤s<300的表达式为(C)。
A.(s>=100)&(s<300)B.100<=s<300C.(s>=100)&&(s<300)D.(s>=100)and(s<300)
50605若定义inta=2,b=3;则表达式!
a||b的值为(B)。
A.0B.1C.2D.3
50606若定义inta=-5,b=-8,c=-12;则表达式a>=b||bA.变量i的值B.变量j的值C.0D.1
50607下列表达式(C)不能用来判断整型变量x中的值是否为奇数。
A.x%2==1B.!
(x%2==0)C.!
(x%2)D.x%2
50608若有定义:
inta=3,b=2,c=3;则值为0的表达式是(D)。
A.(a-b)==(c/b)B.a>=cC.c-b||a+b&&(b*c-a-c)D.(b*c-a-c)&&(b*c-a-b)
50609若已定义:
intx=4,y=2,z=0;则表达式(x-y<=y)||(y=z)的值是(A)。
A.1B.0C.2D.4
50610若有定义:
inta=3,b=2,c=1,k;则表达式k=a>b>c的值是(A)。
A.0B.1C.2D.3
50611以下运算符中优先级最高的是(D)。
A.<=B.&&C.||D.!
50612执行以下语句后,b的值是(A)。
inta=5,b=6,c=1,x=2,y=3,z=4;(a=c>x)||(b=y>z);
A.0B.1C.-1D.6
50700以下程序运行后,a的值是(C)。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;
}
}
A.101B.100C.8D.7
50701已定义doublek=3.6;则正确的赋值表达式是(D)。
A.k=double(-3.6)B.k%3C.k=k*(-1.0)=-3.6D.k+=k-=(k=1.2)*(k=3)
50702已定义charc='A';则正确的赋值表达式是(B)。
A.c=\028B.c=(c++)%4C.c+1=66D.c+=127--
50703已定义intm='A';则正确的表达式是(C)。
A.2*m=m++B.m=int(-3.2)C.m%3D.m=m-m=m-5
50704设已定义floata=2.0,b=3.0;使a值为5.0的表达式是(A)。
A.a+=bB.a*=b+2.0C.a/=b+2.0D.a-=b+2.0
50705若已定义intm=7;floatk=5.5;则表达式k+m%2/4的值为(D)。
A.6.375B.6.75C.5.75D.5.5
50706若已定义inta=3,b=3,x=1,y=2;表达式(a=y>x)&&(x=b>a)的值是(D)。
A.6B.1C.9D.0
50707若有定义:
inta=2,b=3;floatx=5;则表达式x*b/a的值是(A)。
A.7.5B.7C.6D.5
50708若有定义:
intx=8;floaty=130;charz='A';则表达式x+z%(int)y的值是(C)。
A.运行时产生错误信息B.8C.73D.8.5
50709若已定义:
intm=7,n=4;floatx=3.0,y=8.0,k;则执行语句k=m/2+n*x/y;后,变量k的值是(C)。
A.3B.4C.4.5D.5
50710若有定义:
floatx=2,y=4,h=3;下列表达式中与(x+y)*h/2.0计算结果不相符的是(C)。
A.(x+y)*h/2B.(x+y)*h*1/2C.(1/2)*(x+y)*hD.h/2*(x+y)
50711表达式2+sqrt(16.0)/4结果的数据类型是(A)。
A.doubleB.intC.charD.void
50712若有定义:
inta=4,b=5,c=6;则表达式(1.0*a+b)/c的值是(A)。
A.1.5B.1C.4D.4.5
50800以下程序段的运行结果是(D)。
intx=3;
do{printf("%3d,",x-=2);
}while(!
(--x));
A.1B.30C.死循环D.1,-2
50801以下程序运行时,若从键盘输入6,则输出结果是(A)。
voidmain()
{intx;
scanf("%d",&x);
if(x-->6)printf("%d\n",x);
elseprintf("%d\n",--x);
}
A.4B.5C.6D.3
50802以下程序的运行结果是(C)。
voidmain()
{intm,n=1,t=1;
if(t==0)t=-t;
elsem=n>=0?
7:
3;
printf("%d\n",m);
}
A.3B.-1C.7D.1
50803对于整型变量a,赋值语句a=(a%3==0?
1:
0);与(D)语句不等价。
A.if(a%3==0)a=1;elsea=0;B.if(a%3!
=0)a=0;elsea=1;
C.if(a%3)a=0;elsea=1;D.if(a%3)a=1;elsea=0;
50804以下程序运行的结果是(B)。
voidmain()
{intx,y,z,a;
x=y=z=1;a=15;
if(!
x)a--;elseif(y);
if(z)a=3;elsea+=4;
printf("%d\n",a);
}
A.15B.3C.19D.14
50805若已定义inta=1,b=2,t=3;则执行以下程序段后变量a,b,t的值分别为(A)。
if(a
A.a=2,b=1,t=2B.a=2,b=1,t=1C.a=2,b=1,t=3D.a=3,b=1,t=2
50806以下程序段运行后变量k的值为(C)。
inta=3,b=2;
intk;
k=(--a==b++)?
a:
b+1;
A.0B.1C.2D.3
50807以下程序的运行结果是(C)。
voidmain()
{intn=9;
switch(n--)
{default:
printf("%d",n++);
case8:
case7:
printf("%d",n);break;
case6:
printf("%d",n++);
case5:
printf("%d",n);
}
}
A.8B.7C.89D.87
50808以下程序的运行结果是(C)。
voidmain()
{intn=8;
switch(n--)
{default:
printf("%d",n++);
case8:
case6:
printf("%d",n);break;
case4:
printf("%d",n++);
case2:
printf("%d",n);
}
}
A.8B.86C.7D.87
50809以下程序的运行结果是(D)。
voidmain()
{inta;
if(a=6)pri