c语言上机选择题题及标准答案.docx
《c语言上机选择题题及标准答案.docx》由会员分享,可在线阅读,更多相关《c语言上机选择题题及标准答案.docx(68页珍藏版)》请在冰点文库上搜索。
c语言上机选择题题及标准答案
c语言上机选择题题及答案
————————————————————————————————作者:
————————————————————————————————日期:
1、下列字符序列中,不可用作C语言标识符的是(c)
A.abc123B.no_1C.a!
bD._ok_0
2、正确的C语言标识符是(a)
A._buy_2B.2_buyC.?
_buyD.buy?
3、不属于C语言关键字的是(D)
A.intB.breakC.whileD.character
4、以下选项中,合法的C语言标识符是(A)
A.monB.2_abcC.3dmaxD.A.dat
5、以下选项中,合法的实型常数是(C)
A.5E2.0B.E-3C.2E02D.1.3E
6、以下选项中,正确的字符常量是(C)
A."F"B.'\\''C.'W'D.'''
7、已知字母A的ASCII码为十进制数65,且S为字符型,
则执行语句S='A'+'6'-'3';后,S中的值为(A)
A.'D'B.68C.不确定的值D.'C'
8、在C语言中,要求运算数必须是整型的运算符是(D)
A./B.++C.*=D.%
9、若有定义:
intm=7;floatx=2.5,y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是(A)
A.2.500000B.2.750000C.3.500000D.0.000000
10、设变量x为float类型,m为int类型,则以下能实现将x中的数值
保留小数点后两位,第三位进行四舍五入运算的表达式是(B)
A.x=(x*100+0.05)/100.0B.m=x*100+0.5,x=m/100.0
C.x=x*100+0.5/100.0D.x=(x/100+0.5)*100.0
11、假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是(B)
A.7B.8C.6D.2
12、已知s是字符型变量,下面不正确的赋值语句是(B)
A.s='\012';B.s='u+v';
C.s='1'+'2';D.s=1+2;
13、设x、y均为float型变量,则不正确的赋值语句是(C)
A.++x;B.x*=y-2;
C.y=(x%3)/10;D.x=y=0;
14、putchar函数可以向终端输出一个(D)
A.整型变量表达式值。
B.字符串
C.实型变量值。
D.字符
15、以下程序段的输出结果是(C)
inta=12345;printf(”%2d\n”,a);
A.12B.34C.12345D.提示出错、无结果
16、有如下程序段,从键盘输入数据的正确形式应是(B)
(注:
└┘代表空格)
floatx,y,z;
scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);
A.123B.x=1,y=2,z=3
C.1,2,3D.x=1└┘y=2└┘z=3
17、有如下程序段,对应正确的数据输入是(A)
floatx,y;
scanf(”%f%f”,&x,&y);
printf(”a=%f,b=%f”,x,y);
A.2.04<回车>B.2.04,5.67<回车>
5.67<回车>
C.A=2.04,B=5.67<回车>D.2.055.67<回车>
18、已有定义inta=-2;和输出语句:
printf(”%8d”,a);以下正确的叙述是(D)
A.整型变量的输出格式符只有%d一种
B.%d是格式符的一种,它可以适用于任何一种类型的数据
C.%8d是格式符,其中8不应该有
D.%8d不是错误的格式符,其中数字8规定了输出字段的宽度
19、若变量已正确说明为float类型,要通过语句scanf(”%f%f%f”,&a,&b,&c);
给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式为(B)
A.10<回车>B.10.0,22.0,33.0<回车>
22<回车>
33<回车>
C.10.0<回车>D.1022<回车>
22.033.0<回车>33<回车>
20、以下说法正确的是(D)
A.输入项可以为一个实型常量,如scanf(”%f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f);
D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f);
21、根据定义和数据的输入方式,输入语句的正确形式为:
(B)(注:
└┘代表空格)
已有定义:
floatx,y;
数据的输入方式:
1.23<回车>
4.5<回车>
A.scan(”%f,%f”,&x,&y);B.scanf(”%f%f”,&x,&y);
C.scanf(”%3.2f└┘%2.1f”,&x,&y);D.scanf(”%3.2f%2.1f”,&x,&y);
22、根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是(A)
#include”stdio.h”
main()
{inta;
floatb;
输入语句
输出语句
}
输入形式:
1└┘2.3<回车>(注:
└┘代表空格)
输出形式:
a+b=3.300
A.scanf(”%d%f”,&a,&b);B.scanf(”%d%3.1f”,&a,&b);
printf(”\na+b=%5.3f”,a+b);printf(”\na+b=%f”,a+b);
C.scanf(”%d,%f”,&a,&b);D.scanf(”%d%f”,&a,&b);
printf(”\na+b=%5.3f”,a+b)printf(”\na+b=%f”,a+b);
23、阅读以下程序,当输入数据的形式为:
12,34,正确的输出结果为(D)
#include”stdio.h”
main()
{inta,b;
scanf(”%d%d”,&a,&b);
printf(”a+b=%d\n”,a+b);
}
A.a+b=46B.有语法错误
C.a+b=12D.不确定值
24、该源程序执行后,屏幕上显示什么?
(C)
#include
voidmain()
{
inta;
floatb;
a=4;
b=9.5;
printf("a=%d,b=%4.2f\n",a,b);
}
A.a=%d,b=%f\nB.a=%d,b=%f
C.a=4,b=9.50D.a=4,b=9.5
25、若有以下说明语句:
(B)
chars='\\\092';
则下面哪一项是正确的.
A.使s的值包含2个字符B.说明语句不合法
C.使s的值包含6个字符D.使s的值包含4个字符
26、如这程序所示,如果运行时,输入18,18,那么b的值为多少?
(C)
#include
voidmain()
{inta,b;
scanf("%d,%o",&a,&b);
b+=a;
printf("%d",b);
}
A.36B.34
C.输入错误,b的值不确定D.18
27、执行x=(a=5,b=a++)后,x,a,b的值依次为(D)
A.6,6,5B.6,5,5
C.6,5,6D.5,6,5
28、设以下变量均为int类型,则值不等于7的表达式是(C)
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)
29、有以下程序
voidmain()
{
chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是(A)
A.b,bB.b,c
C.a,bD.a,c
30、有以下程序
#include
voidmain()
{inta=5;
printf("%d,",a);
printf("%d,",++a);
printf("%d\n",++a);
}
程序运行后的输出结果是(A)
A.5,6,7B.6,7,8
C.7,6,5D.8,7,6
31、对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,
则应按下列哪种方式输入数据(D)
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↙
32、已知字母A的ASCⅡ码为十进制数65,c2为整型,则执行语句
c2=’A’+’6’-‘3’;后,c2中的值为(B)
A)DB)68C)不确定的值D)'C'
33、若变量a是int型,并执行了语句:
a=’A’+1.6;则正确的叙述是(D)
A)a的值是字符c
B)a的值是浮点型
C)不允许字符和浮点型相加
D)a的值是字符A的ASCⅡ码值加上1
34、以下选项中,与k=n++完全等价的表达式是(A)
A)k=n,n=n+1B)n=n+1,k=n
C)k=++nD)k+=n+1
35、若有以下程序:
#include
voidmain()
{intk=2,i=2,m;m=k+=i*=k;printf("%d,%d\n",m,i);}
执行后的输出结果是(C)
A)8,6B)8,3
C)6,4D)7,4
36、若re、a、b和c都是int型变量,则执行:
re=(a=4,b=6,c=12)后,re的值是(C)
A)4B)6
C)12D)22
37、在ASCⅡ码字符集中,数字0的序号为48,下面程序输出结果为(D)
#include
voidmain()
{chara=’0’,b=’9’;printf(“%d,%c\n”,a,b);}
A)输出格式不合格B)48,57
C)0,9D)48,9
38、若有定义:
inta=10,b=9,c=8;顺序执行下列语句后,
c=(a-=(b-5));
c=(a%11)+(b=3);
b的值是(A)
A)3B)9
C)8D)5
39、有以下程序:
#include
voidmain()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-‘0’;n2=n1*10+(ch2-‘0’);
printf(“%d”,n2);
}
程序运行时输入12<回车>,执行后输出结果是(A)
A)12B)2C)10D)11
40、若有以下语句:
inta=5;printf(“%d\n”,a++);则输出结果是(B)
A)6B)5C)7D)4
41、设x为int型变量,执行语句:
x=10;x+=x-=x*x;x的值为(C)
A)10B)180C)-180D)90
42、若变量已正确定义并赋值,下列表达式中,哪个不符合C语言语法(B)
A、a*b/cB、a*3.14%2
C、2*(int)bD、a/b/c
43、
下述不正确的字符常量是:
(C)
A、'n'B、'1'
C、"a"D、'\101'
44、在C程序中,用哪个选项表示逻辑值“真”。
(B)
A、0B、非0的数
C、非1的数D、大于等于1的数
45、下列哪个选项是把x、y定义成float类型变量,并赋同一初值3.14(C)
A、floatx,y=3.14;B、floatx,y=2*3.14;
C、floatx=3.14,y=3.14;D、floatx=y=3.14;
46、若变量已正确定义,哪个表达式的值不是2(C)
A、2%3B、10/4C、a==2D、18%4
47、若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和下面哪个选项等价(C)
A、k=(a>b)?
1:
0;B、k=a>b;
C、k=a<=b;D、a<=b?
0:
1;
48、设变量定义为“inta,b;”,执行下列语句时,输入下列哪个选项,a和b的值都是10。
scanf("a=%d,b=%d",&a,&b);(D)
A、1010B、10,10
C、a=10b=10D、a=10,b=10
49、假定x和y为double型,且x=5,则表达式y=x+3/2的值是:
(A)
A)6B)6.5C)2D)3
50、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为:
(C)
A)7B)8C)9D)10
51、定义:
intm=5,n=3;则表达式m/=n+4的值是:
(A)
A)0B)1
C)2D)3
52、定义:
intm=3,n=5;表达式m=(m=1,n=2,n-m)的值是:
(B)
A)0B)1
C)2D)3
53、若a是int变量,则执行表达式a=25/3%3后,a的值是:
(C)
A)3B)5
C)2D)4
54、下面A、B、C、D四种描述,正确的是:
(A)
A)自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
B)自增运算符(++)或自减运算符(--)能用于常量或表达式,也可用于变量。
C)自增运算符(++)或自减运算符(--)能用于变量、常量和表达式。
D)自增运算符(++)或自减运算符(--)只能用于常量,不能用于变量或表达式。
55、执行下列程序片段时输出结果是:
(C)
floatx=1023.012
printf(“\n%5.3f,”,x);
printf(“%8.3f”,x);
A)23.012,1023.012B)10.012,1023.012
C)1023.012,1023.012D)不能正确输出
56、根据公式|(a+b)(a-b)+2|,写出下面C语言表达式。
请选择哪个是正确的:
(C)
A)|(a+b)(a-b)+2|B)abs((a+b)(a-b)+2)
C)abs((a+b)*(a-b)+2)D)abs((a+b)*(a-b))+2
57、有输入语句:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量
a的值为1,b的值为3,c的值为2,则正确的数据输入方式是:
(D)
A)132↙B)1,3,2↙
C)a=1b=3c=2↙D)a=1,b=3,c=2↙
58、已知i,j,k为int型变量,若从键盘输入:
1,2,3<回车>,
使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是:
(C)
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);
59、若运行时输入:
123456↙,则下列程序运行结果为:
(B)
#include
voidmain()
{
inta,b,c;
scanf("%2d%2d%2d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)1,2,3B)12,34,56
C)4,5,6D)不能正确输入数据
60、执行下列程序时输出结果是:
(A)
#include
voidmain()
{
intx=3;
printf("%d",--x);
}
A)2B)3
C)4D)1
61、执行下列程序时输出结果是:
(C)
#include
voidmain()
{
intx=13,y=5;
printf("%d",x%=(y/=2));
}
A)3B)2
C)1D)0
62、下面程序段的运行结果是:
(D)
charc[5]={'a','b','\0','c','\0'};
printf("%s",c);}
A)‘a’’b’B)ab\0
C)abcD)ab
63、已知:
chara='a’,b='b’,c='c’;
执行printf("%d,%d,%d",a,b,c);输出为:
(A)
A)97,98,99B)a,b,c
C)类型不匹配D)‘a’,’b’,’c’
64、若有定义:
inta=8,b=5;doublec;
执行语句c=a/b+0.4;后,c的值为:
(A)
A)1.4B)1.0
C)2.0D)1.8
65、.以下程序段的输出结果是:
(C)
inta=1234;
printf("%2d\n",a);
A)2B)34C)1234D)提示出错、无结果
66、设x、y均为float型变量,则不正确的赋值语句是(C)
A.++x;B.x*=y-2;
C.y=(x%3)/10;D.x=y=0;
67、执行表达式x=(a=1,b=++a)后,x,a,b的值依次为(D)
A.1,1,1B.1,2,1
C.2,1,1D.2,2,2
68、有以下程序
#include"stdio.h"
voidmain()
{inta,b;
printf("%d",(a=2,b=5,++a,++b,a+b));
}
程序运行后的输出结果是(D)
A.6B.7
C.8D.9
69、有以下程序
voidmain()
{
chara='a',b;
printf("%c,",++a);
printf("%c\n",b=++a);
}
程序运行后的输出结果是(B)
A.c,cB.b,c
C.c,bD.b,b
70、设以下变量均为int类型,则值等于7的表达式是。
(D)
A)(x=y=6,x+y,x++)B)(x=y=6,x+y,y++)
C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)
71、以下选项中,与k=++n完全等价的表达式是(B)
A)k=n,n=n+1B)n=n+1,k=nC)k=n++D)k+=n+1
72、有以下程序
#include
voidmain()
{inta=5;
printf("%d,",a);
printf("%d,",a++);
printf("%d\n",a++);
}
程序运行后的输出结果是(D)
A.5,6,7B.6,7,8C.5,6,5D.5,5,6
73、若有以下程序:
#include
voidmain()
{intk=2,i=2,m;m=(i++,k+i);printf("%d,%d\n",m,i);}
执行后的输出结果是(A)
A)5,3B)6,3C)6,4D)5,4
74、有以下程序
#include
voidmain()
{inta=5;
printf("%d,",a);
printf("%d,",a++);
printf("%d\n",a++);
}
程序运行后的输出结果是。
(D)
A.5,6,7B.6,7,8C.5,6,5D.5,5,6
75、若定义inti=5;则表达式i++的值是:
(B)
A)4B)5
C)6D)不确定
76、若定义inti=5;则表达式i--的值是:
(B)
A)4B)5
C)6D)不确定
77、若定义inti=5,k;则表达式(k=i++,k++)的值是:
(B)
A)4B)5
C)6D)不确定
78、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(C)
A(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)
B(x>=1)||(x<=100)||(x>=200)||(x<=300)
C(x>=1)&&(x<=100)||(x>=200)&&(x<=300)
D(x>=1)||(x<=100)&&(x>=200)||(x<=300)
79、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值为(B)
A1B2C3D4
80、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是
if(x>y)z=x;x=y;y=z;(B)
Ax=10,y=20,z=30Bx=20,y=30,z=30
Cx=20,y=30,z=10Dx=30,y=30,z=20
81、以下程序的输出结果是(C)
main()
{inta=5,b=4,c=6,d;
printf(“%d\n”,d=a>b?
(a>c?
a:
c):
b);
}
A5B4C6D不确定
82、以下程序的输出结果是(A)
main()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf(“%d\n”,d);
}
A1B0C非0的数D-1
83、若变量c为char类型,能正确判断c为小写字母的表达式是(D)
A‘a’<=c<=’z’B(c>=’a’)||(c<=’z’)
C(c>=’a’)and(c<=’z’)D(c>=’a’)&&(c<=’z’)
84、以下程序的输出结果是(A)
main()
{intx=1,a=0,b=0;
switch(x);
{
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
Aa=2,b=1Ba=1,b=1Ca=1,b=2Da=2,b=2
85、以下程序输出结果是(D)
main()
{intx=-1,a=1;
if(x+=a)printf(“YES!
\n”);
elseprintf(“NO!
\n”);
}
A有语法错误,不能通过编译
B通过编译,但运行程序造成死机
C输出YES!
D输出NO!
86、设变量x和y均已