c语言单选301题包括答案.docx
《c语言单选301题包括答案.docx》由会员分享,可在线阅读,更多相关《c语言单选301题包括答案.docx(124页珍藏版)》请在冰点文库上搜索。
c语言单选301题包括答案
编号
试题内容
可选答案A
可选答案B
可选答案C
可选答案D
1
下列能正确定义且赋初值的语句是(B)。
intnl=n2=10;
charc=32;
floatf=f+1.1;
doublex=12.3E2.5;
2
设有定义:
intk=1,m=2;floatf=7;则下列选项中错误的表达式是(C)。
k=k>=k
-k++
k%int(f)
k>=f>=m
3
下列程序的功能是:
给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
main()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=π*r*r;
printf("s=%f\n",s);
}
出错的原因是()。
注释语句书写位置错误
存放圆半径的变量r不应该定义为整型
输出语句中格式描述符非法
计算圆面积的赋值语句中使用了非法变量
4
下列定义变量的语句中错误的是(B)。
int_int;
doubleint_;
charFor;
floatUS$;
5
若变量x、y已正确定义并赋值,下列符合C语言语法的表达式是(A)。
++x,y=x--
x+1=y
x=x+10=x+y
double(x)/10
6
有下列程序,其中%u表示按无符号整数输出。
main()
{unsignedintx=0xFFFF;
printf("%u\n",x);
}
程序运行后的输出结果是()。
-1
65535
32767
0xFFFF
7
若变量均已正确定义并赋值,下列合法的C语言赋值语句是(A)。
x=y==5;
x=n%2.5;
x+n=i;
x=5=4+1;
8
设变量已正确定义并赋值,以下正确的表达式是(C)。
x=y*5=x+z
int(15.8%5)
x=y+z+5,++y
x=25%5.0
9
以下定义语句中正确的是(D)。
inta=b=0;
charA=65+1,b='b';
floata=1,"b=&a,"c=&b;
doublea=0.0;b=1.1;
10
已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中
的值为大写字母的表达式是()。
kk>='A'&&kk<='Z'
!
(kk>='A'‖kk<='Z')
(kk+32)>='a'&&(kk+32)<='z'
isalpha(kk)&&(kk<91)
11
以下选项中正确的定义语句是(A)。
doublea;b;
doublea=b=7;
doublea=7,b=7;
double,a,b;
12
下列算术运算符中,只能用于整型数据的是(D)。
-
+
*
%
13
有以下程序
main()
{intx=12,y=012;
printf(“%2d,%2d\n”,x,y);}
执行后输出结果是(B)。
10,01
12,12
12,10
10,12
14
下列程序的输出结果是()。
main()
{intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
12353514
12353513
12343514
12343513
15
数字字符0的ASCII值为48,运行下列程序的输出结果是()。
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a)
}
3,2
50,2
2,2
2,50
16
下列程序的输出结果是()。
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
6,1
2,1
6,0
2,0
17
下列程序的输出结果是(A)。
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);
}
123
234
223
233
18
设有定义:
inta=2,b=3,c=4;,则下列选项中值为0的表达式是(B)。
(!
a==1)&&(!
b==0)
(a<b)&&!
c‖1
a&&b
a‖(b+b)&&(c-a)
19
表达式3.6-5/2+1.2+5%2的值是(A)。
4.3
4.8
3.3
3.8
20
下列关于逻辑运算符两侧运算对象的叙述中正确的是(D)。
只能是整数0或1
只能是整数0或非0整数
可以是结构体类型的数据
可以是任意合法的表达式
21
有下列程序:
main(B)
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是()。
2,3,3
2,3,2
2,3,1
2,2,1
22
设有定义:
intk=0;,下列选项的4个表达式中与其他3个表达式的值不相同的是
(A)。
k++
k+=1
++k
k+1
23
下列选项中,当x为大于l的奇数时,值为0的表达式是(B)。
x%2==1
x/2
x%2!
=0
x%2==0
24
当整型变量c的值不为2、4、6时,值也为“真”的表达式是()。
(c==2)‖(c==4)‖(c==6)
(c>=2&&c<=6)‖(c!
=3)‖(c!
=5)
(c>=2&&c<-6)&&!
(c%2)
(c>=2&&c<=6)&&(c%2!
=1)
25
以下不能正确表示代数式2ab/cd的C语言表达式是(B)。
2*a*b/c/d
a*b/c/d*2
a/c/d*b*2
2*a*b/c*d
26
若t为double类型,表达式t=1,t+5,t++的值是(B)。
1
6.0
2.0
1.0
27
下列不能定义的用户标识符是(B)。
Main
_0
_int
sizeof
28
下列叙述中错误的是(A)。
用户所定义的标识符允许使用关键字
用户所定义的标识符应尽量做到“见名知意”
用户所定义的标识符必须以字母或下划线开头
用户定义的标识符中、大、小写字母代表不同标识
29
下列不合法的用户标识符是(B)。
j2_KEY
Double
4d
_8_
30
可在C程序中用作用户标识符的一组标识符是(C)。
and,_2007
Date,y-m-d
Hi,Dr.Tom
case,Bigl
31
下列选项中可作为C语言合法常量的是(A)。
-80
-080
-8e1.0
-80.0e
32
下列选项中,不能作为合法常量的是(B)。
1.234e04
1.234e0.4
1.234e+4
1.234e0
33
下列不合法的数值常量是(C)。
011
1e1
8.0E0.5
0xabcd
34
下列不合法的字符常量是(B)。
'\018'
\"'
'\\'
'\xcc'
35
以下选项中不属于字符常量的是(B)。
'C'
"C"
\xCC'
'\072'
36
以下选项中,能用作数据常量的是(D)。
0115
0118
1.5e1.5
115E
37
以下叙述中正确的是(C)。
C程序的基本组成单位是语句
C程序中的每一行只能写一条语句
简单C语句必须以分号结束
C语句必须在一行内写完
38
下列关于函数的叙述中正确的是(A)。
每个函数都可以被其他函数调用(包括main函数)
每个函数都可以被单独编译
每个函数都可以单独运行
在一个函数内部可以定义另一个函数
39
下列叙述中正确的是(C)。
每个C程序文件中都必须要有一个main()函数
在C程序中main()函数的位置是固定的
C程序中所有函数之间都可以相互调用,与函数所处位置无关
在C程序的函数中不能定义另一个函数
40
下列叙述中错误的是(C)。
C语言是一种结构化程序设计语言
结构化程序由顺序、分支、循环3种基本结构组成
使用3种基本结构构成的程序只能解决简单问题
结构化程序设计提倡模块化的设计方法
41
对于一个正常运行的C程序,下列叙述中正确的是(A)。
程序的执行总是从main函数开始,在main函数结束
程序的执行总是从程序的第一个函数开始,在main函数结束
程序的执行总是从main函数开始,在程序的最后一个函数中结束
程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
42
下列叙述中正确的是(C)。
C语言程序将从源程序中第一个函数开始执行
可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
main可作为用户标识符,用以命名任意一个函数作为主函数
43
算法具有5个特性,下列选项中不属于算法特性的是(A)。
有穷性
简洁性
可行性
确定性
44
计算机能直接执行的程序是(D)。
源程序
目标程序
汇编程序
可执行程序
45
以下叙述中正确的是(A)。
C程序中的注释只能出现在程序的开始位置和语句的后面
C程序书写格式严格,要求一行内只能写一个语句
C程序书写格式自由,一个语句可以写在多行上
用C语言编写的程序只能放在一个程序文件中
46
设有以下定义
#defined2
inta=0;doubleb=1.25;charc=’A’;
则下面语句中错误的是(C)。
a++;
b++;
c++;
d++;
47
下列叙述中错误的是(B)。
C语句必须以分号结束
复合语句在语法上被看作一条语句
空语句出现在任何位置都不会影响程序运行
赋值表达式末尾加分号就构成赋值语句
48
有定义语句:
intb;charc[10];,则正确的输入语句是(A)。
scanf("%d%s",&b,&c);
scanf("%d%s",&b,c);
scanf("%d%s",b,c);
scanf("%d%s",b,&c);
49
19)有下列程序:
main()
{intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,
则正确的输入是(D)。
m=123n=456p=789
m=123n=456p=789
m=123,n=456,p=789
123456789
50
下列叙述中正确的是(D)。
调用printf()函数时,必须要有输出项
使用putchar()函数时,必须在之前包含头文件stdio.h
在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
调节getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码
51
设有定义:
inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入
876543.0,a和b的值分别是(C)。
876和543.000000
87和6543.000000
87和543.000000
76和543.000000
52
有下列程序:
main()
{inta=0,b=0;
a=10;b=20;
printf("a+b=%d\n",a+b);
}
程序运行后的输出结果是(C)。
a+b=10
a+b=30
30
出错
53
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量
a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
下列所示的输入形式中正
确的是(注:
口代表空格字符)()。
10□X□20□Y
10□X20□Y
10□X20Y
10X20Y
54
若在定义语句:
inta,b,c,*p=&c;之后,接着执行下列选项中的语句,则能正确执行的
语句是(B)。
scanf("%d",a,b,c);
scanf("%d%d%d",a,b,c);
scanf("%d",p);
scanf("%d",&p);
55
有下列程序段:
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为(C)。
55566.0
566.0
7777.0
566777.0
56
已知字符'A'的ASCII代码值是65,字符变量cl的值是'A',c2的值是'D'。
执行语句
printf("%d,%d",c1,c2-2);后,输出结果是()。
A,B
A,68
65,66
65,68
57
有以下程序段
charch;intk;
ch='a';k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);
已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是()。
因变量类型与格式描述符的类型不匹配输出无定值
输出项与格式描述符个数不符,输出为零值或不定值
a,97,12k=12
a,97,k=12
58
若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值
1、给b赋值2、给c赋值3,以下输入形式中错误的是(ò代表一个空格符)(A)。
òòò1,2,3<回车>
1ò2ò3<回车>
1,òòò2,òòò3<回车>
1,2,3<回车>
59
程序段:
intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的输出结果是(C)。
123.142
123.141593
12,3.141593
123.1415930
60
若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(A)。
10<回车>22<回车>33<回车>
10.0,22.0,33.0<回车>
10.0<回车>22.033.0<回车>
1022<回车>33<回车>
61
已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是(B)。
if(x>y)
z=x;x=y;y=z;
x=10,y=20,z=30
x=20,y=30,z=30
x=20,y=30,z=10
x=20,y=30,z=20
62
inta,b,c;
a=10;b=50;c=30;
if(a>b){a=b;b=c;c=a;}
printf("a=%db=%dc=%d\n”,a,b,c);
程序的输出结果是(A)。
a=10b=50c=30
a=10b=30c=30
a=10b=30c=10
a=50b=30c=50
63
若变量已正确定义,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!
=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是(C)。
程序段有语法错
3,5,3
3,5,5
3,5,7
64
若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是()。
(exp==0)
(exp!
=0)
(exp==1)
(exp!
=1)
65
以下是if语句的基本形式:
if(表达式)语句
其中“表达式”D
必须是逻辑表达式
必须是关系表达式
必须是逻辑表达式或关系表达式
可以是任意合法的表达式
66
在嵌套使用if语句时,C语言规定else总是(C)。
和之前与其具有相同缩进位置的if配对
和之前与其最近的if配对
和之前与其最近的且不带else的if配对
和之前的第一个if配对
67
有以下程序
main()
{inti=1,j=1,k=2;
if((j++‖k++)&&i++)
printf("%d,%d,%d\n",i,j,k);}
执行后输出结果是()。
1,1,2
2,2,1
2,2,2
2,2,3
68
以下不正确的if语句形式是(A)。
if(x>y&&x!
=y);
if(x==y)x+=y;
if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
if(x69
请阅读以下程序:
main()
{
inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
else
printf("$$$\n");
}
以上程序
有语法错不能通过编译
可以通过编译但不能通过连接
输出***
输出$$$
70
若执行以下程序时从键盘上输入9,则输出结果是(D)。
main()
{intn;
scanf("%d",&n);
if(n++<10)
printf("%d\n",n);
else
printf("%d\n",n--);
}
11
10
9
8
71
设变量x和y均已正确定义并赋值。
下列if语句中,在编译时将产生错误信息的是(D)。
if(x++);
if(x>y&&y!
=0);
if(x>0)x--
elsey++;
if(y<0){;}
elsex++;
72
下列程序的输出结果是(D)。
main()
{inti=0,j=2,k=3;
if(i++==1&&(++j==3‖k++==3))
printf("%d%d%d\n",i,j,k);
}
123
234
123
023
73
若有定义:
floatw;inta,b;则合法的switch语句是(DA)。
switch(w)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");
}
switch(a);
{case1printf("*\n");
case2printf("**\n");
}
switch(b)
{case1:
printf("*\n");
default:
printf("\n");
casea:
printf("**\n");
}
switch(a+b);
{case1:
printf("*\n");
case2:
printf("**\n");
default:
printf("\n");
}
74
有下列程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:
n+=1;k--;break;
default:
n=0;k--;
case2:
case4;n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是()。
235
0235
02356
2356
75
有如下程序
main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是()。
a=2,b=1
a=1,b=1
a=1,b=0
a=2,b=2
76
下列叙述中正确的是(B)。
break语句只能用于switch语句
在switch语句中必须使用default
break语句必须与switch语句中的case配对使用
在switch语句中,不一定使用break语句
77
有以下程序
#include
main()
{
intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是()。
a=1,b=0
a=2,b=2
a=1,b=1
a=2,b=1
78
有如下程序
main()
{intx=10,y=5;
switch(x)
{case1:
x++;
default:
x+=y;
case2:
y--;
case3:
x--;
}
printf("x=%d,y=%d\n",x,y);
}
该程序的输出结果是()。
x=15,y=5
x=10,y=5
x=14,y=4
x=15,y=4
79
有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);
}
该程序的输出结果是(D)。
0
0.25
0.5
1
80
有如下程序
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是(C)。
0
1
2
3
81
有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)