C语言基本选择题与参考答案.docx
《C语言基本选择题与参考答案.docx》由会员分享,可在线阅读,更多相关《C语言基本选择题与参考答案.docx(32页珍藏版)》请在冰点文库上搜索。
C语言基本选择题与参考答案
计算机程序设计基础(C语言)
单项选择练习题
一、基本概念
1.C语言程序是由C构成的。
A)一些可执行语言B)main函数C)函数D)包含文件中的第一个函数
2.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程
3.C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数
C)程序中的main函数D)包含文件中的第一个
函数
4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。
A)程序文件的开始B)程序文件的最后
C)它所调用的函数的前面D)程序文件的任何位置
5、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
6.下列方法中错误的是(D)。
A.主函数可以分为两个部分:
主函数说明部分和主函数体。
B.主函数可以调用任何非主函数的其它函数。
C.任何非主函数可以调用其它任何非主函数。
D.程序可以从任何非主函数开始执行。
7.下列说法错误的是:
(B)
1/26
A.C程序运行步骤是编辑、编译、连接、执行。
B.C语言的变量名必须用小写,常量用大写。
C.C语言的三种基本结构是顺序、选择、循环。
D.C程序一定由函数构成的。
8.下列关于C语言的说法错误的是(B)。
A)C程序的工作过程是编辑、编译、连接、运行
B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环
D)C程序从main函数开始执行
9.系统默认的C语言源程序扩展名为.C,需经过C之后,生
成.exe文件,才能运行?
A)编辑?
编译B)编辑?
连接C)编译?
连接D)编
辑?
改错
9.下列说法中正确的是(B)。
A.由于C源程序是高级语言程序,因此一定要在TC软件中输入。
B.由于C源程序是由字符流组成的,因此可以作为文本文件在任何
文本编辑的软件中输入。
C.由于C程序是高级语言程序,因此输入后即可执行。
D.由于C程序是高级语言程序,因此它是由命令组成的。
二、数据类型、运算符与表达式
1.不是C语言提供的合法关键字是(B)。
A.switchB.cherC.case
D.default
2.C语言提供的合法关键字是(D)。
A.nextB.stringC.docaseD.default
3.下列不属于C语言中关键字的是B
2/26
A)longB)printC)defaultD)typedef
4.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt
5.下列C语言用户标识符中合法的是(B)。
A、*yB、sumC、intD、%5f
6.下面四个选项中,合法的标识符是:
(D)
A.autoB.defineC.6aD.c
7.下列C语言用户标识符中合法的是(B)。
A)3axB)xC)caseD)-e2E)union
8.以下选项中合法的用户标识符是B
A)longB)_2TestC)3DmaxD)A.dat
9.下列四组选项中,正确的C语言标识符是(C)。
A)%xB)a+bC)a123D)123
10.请选出可用作C语言用户标识符的一组标识符(B)
A)voidB)a3_b3C)ForD)2a
define_123-abc
DO
WORDsumCase
sizeof
11、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\amone_halfstart$it
3pai
C、str_1CpppowwhileD、PxqMy->bookline#
His.age
12.下列C语言标识符中合法的变量名是B。
A)2e3B)youC)*yD)float
13.C语言中的简单数据类型包括(D)。
3/26
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型D、整型、实型、字符型
14、下列可以正确表示字符型常量的是(A)。
A、’\t’B、”a”C、”\n”D、297
15.下列表达式中,D是正确的C语言字符常量。
A)”x”B)e3C)”COMPUTER”D)’#’
16.在下列表达式中,属于字符型常量的是B。
A)AB)'a'C)"A"D)b
17.以下选项中合法的字符常量是(B)
A)“B”B)‘\n’C)‘68’D)E
18.下面字符常量表示错误的是(D)
A)’a’B)’?
’C)’\n’D)”\n”
19.已定义c为字符型变量,则下列语句中正确的是(C)
A)c='97'B)c="97"C)c=‘a’D)c="a"
20.已知ch是字符型变量,不正确的赋值语句是(A)
A)ch='a+b';B)ch='\0';
C)ch='7';D)ch=’;’;
21.C语言中字符型(char)数据在内存中的存储的是(D)
A)原码B)补码C)反码D)ASCII码
22.在C语言中,字符型数据所占的内存空间是(C)
A)2个字节B)4字节C)1字节D)由用户自定义
*23.若int类型数据占2个字节,则unsignedint类型数据的取值范
围是(B)
A)0~255B)0~65535C)-32768~32767D)-256~255
*24.若有以下类型说明语句:
chara;intb;floatc;doubled;则
表达式a*b+d-c的结果类型为(D)
A)floatB)charC)intD)double
4/26
*25.若有以下类型说明语句:
charw;intx;floaty;doublez;则表达式
w-x*y/z的结果为(D)类型,表达式(int)(x+y-z*w)的结果为(C)
类型。
A)floatB)charC)intD)double
26.C语言中运算对象必须是整型的运算符是(A)
A)%=B)/C)=D)
〈=
27.在C语言程序中,表达式8/5的结果是(B)
A)1.6B)1C)3D)0
28.设x为int型变量,则执行以下语句后,x的值为B
x=10;x+=x;
A)10B)20C)40D)30
29.在C语言程序中,表达式5%2的结果是C。
A)2.5B)2C)1D)3
30.如果inta=3,b=4;则条件表达式"a
a:
b"的值是__A__。
A)3B)4C)0D)1
31.若intx=2,y=3,z=4则表达式xy:
z的结果是(B).
A)4B)3C)2D)0E)1
32.C语言中,关系表达式和逻辑表达式的值是(B)。
A)0B)0或1C)1D)‘T’或’F’
33.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,
值为0的表达式是(D)
A、’a’&&’b’B、a<=b
C、a||b+c&&b-cD、!
((a
c||1)
34.下面(D)表达式的值为4.
A)11/3B)11.0/3
C)(float)11/3D)(int)(11.0/3+0.5)
5/26
*35.已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是(C)
A.0B.1C.5D.6
36.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语
句c2='A'+'6'-'3';后,c2中的值为(B)
A)68B)‘D’C)错误D)‘d’
37.下列关于C语言的叙述错误的是(A)
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同
类型
D)同一个运算符号在不同的场合可以有不同的含义
38.有:
intw=11,x=12,y=3,m;执行下面语句后m的结果是(C)
m=(ww:
x;
m=(mm:
y;
A.1B.2C.3D.以上结果都不对
39.有:
intw=7,x=12,y=3,m;执行下面语句后m的值是(A)
m=(w>x)?
w:
x;
m=(m>y)?
m:
y;
A.12B.0C.3D.1
40.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5
的是(B)
A.b=1.0/aB.b=(float)(1/a)
C.b=1/(float)aD.b=1/(a*1.0)
41.以下运算符中优先级最高的运算符是(B)
A)&&B)++C)+=D)!
=
42.若“intn;floatf=13.8;”,则执行“n=(int)f%3”后,n的值是(A)
6/26
A.1B.4C.4.333333
D.4.6
43.
设x为int型变量,则执行以下语句后,x的值为(
C)
x=10;x*=x;
A)10B)20C)100D)0
44.
若有语句inta=1,b;doubley=2.3;b=(int)y;
则b的值为(B)
?
A)3B)2C)1D)2.3
45.已知intx;chary;则下面错误的scanf函数调用语句为(B)
A)scanf(“%d,%d”,&x,&y);B)
scanf(“%d,%c”,x,y)
C)scanf(“%d%d”,&x,&y)D)
scanf(“%d,%c”,&x,&y)
46.在C语言的库函数中,可以输出char型变量x值的语句是C。
A)getchar(x);B)fputc(x)C)putchar(x)
D)puts(x)
47.以下说法正确的是(C)
A)'x'+5是一个错误的表达式
B)C语言不允许类型的混合运算
C)强制类型转换时,类型说明符必须加括号
D)(int)x+y和(int)(x+y)是完全等价的表达式
48.设intx=0,y=1;表达式(x||y)的值是(B)
A)0B)1C)2D)-1
三、选择结构
1.在C语言中,认为(D)为逻辑"真"
A)trueB)大于0的数C)非0整数D)非0的数
7/26
2.表示关系x<=y<=z的c语言表达式为A
A)(x<=y)&&(y<=z)B)(x<=y)AND(y<=z)
C)(x<=y<=z)D)(x<=y)&(y<=z)
3.能正确表示逻辑关系:
“a≥=10或a≤0”的C语言表达式是
(D)
A)a>=10ora<=0B)a>=0|a<=10
C)a>=10&&a<=0D)a>=10‖a<=0
4、判断char型变量c1是否为大写字母的表达式为(D)。
A、’A’<=c1<=’Z’B、(c1>=’A’)&
(c1<=’Z’)
C、(’A’<=c1)AND(‘Z’>=c1)D、c1>=’A’&&c1<=’Z’
5.为表示逻辑表达式79A)(X>79)&&(X<90)B)(X>79)!
=(X<90)
C)7979)||(X<90)
6.设有语句“inta=2,b=3,c=-2,d=2;”,则逻辑表达式
“a>0&&b&&c<0&&d>0”的值是(A)
A.1
B.0
C.-1
D.
出错
7.
设a为整型变量,则不能正确表达数学关系
10<a<15的C语言表
达式是(
A)。
A.10B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!
(a<=10)&&!
(a>=15)
8.
设x,t均为int
型变量,则执行语句“
x=10;t=x&&x>10;
”后,t的
值为(D
)
A.不定值
B.10
C.1
D.0
9.
若inti=10;
执行下列程序后,变量
i的正确结果是(
A)。
switch(i)
{case9:
i+=1;
8/26
case10:
i+=1;
case11:
i+=1;
default:
i+=1;}
A、13B、12C、11D、10
10.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有
一个在功能上与其它三个语句不等价,它是(D)。
A、if(a)s1;elses2;B、if(a==0)s2;else
s1;
C、if(a!
=0)s1;elses2;D、if(a==0)s1;else
s2;
11.假定所有变量均已正确定义,则下列程序段运行后y的值是(A)
inta=0,y=10;
if(a=0)y--;
elseif(a>0)y++;
elsey+=y;
A.20B.11C.9D.0
12.假定所有变量均已正确定义,则下列程序段运行后x的值是(B)。
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A.34B.4C.35D.3
13.C语言对嵌套if语句的规定是:
else语句总是与(D)配对。
A)其之前最近的ifB)第一个if
C)缩进位置相同的ifD)其之前最近的且尚未配对的
if
9/26
14.在C语言语句中,用来决定分支流程的表达式是(A)。
A.可用任意表达式B.只能用逻辑表达式或关系表达
式
C.只能用逻辑表达式D.只能用关系表达式
15.C语言中用(B)表示逻辑“真”。
A.trueB.整数值1
C.非零整数值D.false
16、若k是int型变量,且有下面的程序段:
intk;
k=-3;
if(k<=0)printf(“####”);
elseprintf(“&&&&”);
上面程序段的输出结果是(A)
A、####B、&&&&
C、####&&&&D、有语法错误,无输出结果
17.main()
{intx=0,a=0,b=0;switch(x){
case0:
b++;
case1:
a++;
case2:
a++;b++;}
printf(“a=%d,b=%dn”,a,b);}
该程序的输出结果是D
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)
a=2,b=2
18.以下程序的输出结果是:
(C)
10/26
main()
{intx=-10,y=1,z=1;if(xif(y<0)z=0;elsez=z+1;
printf(“%d\n”,z);
}
A.0B.1C.2D.3
19.以下程序段的输出结果是(B)
inta=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%2db=%2dc=%2d\n",a,b,c);
A)a=10b=50c=10B)a=10b=30c=10
C)a=50b=30c=10D)a=50b=30c=50
四、循环结构
*1.在C语言中,下列说法中正确的是(D)。
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)do-while语句构成的循环在while后的表达式非零时结束循环。
D)do-while语句构成的循环,在while后的表达式为零时结束循环。
2.break语句不能出现在(D)语句中
11/26
A.switchB.forC.whileD.if⋯else
*3.对于break语句和continue语句的说法错误的是(B)
A)break语句不能用于循环语句和switch语句之外的任何其他语句中。
B)break和continue也可以用于if语句中
C)continue语句只结束本次循环,而不是终止整个循环的执行。
D)break语句是结束整个循环过程,不再判断执行循环的条件是否成立。
4.
语句while(!
y);中的表达式!
y等价于A
A)y==0B)y
!
=1C)y
=!
0D)y==1
5.
若有“inta=1,x=1;
”,则循环语句“while(a<10)x++;a++;”的
循环执行(A)
A.无限次B.不确定次C.10次D.9
次
6.有以下程序段
intk=0
while(k)k++;
则while循环体执行的次数是C
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
7.下列循环语句中有语法错误的是(D)
Awhile(x=y)5;Bwhile(0);
Cdo2;while(x==b);Ddox++while(x==10);
*8.当运行时输入:
abcd$abcde,下面程序的运行结果是B
#include
main()
12/26
{while(putchar(getchar())!
='$');printf("end");
}
A)abcd$abcdeB)abcd$endC)abcdendD)
abcd$abcdeend
9.以下程序段(A)
x=-1;
do{x=x*x;}
while(x>0);
A.是死循环B.循环执行一次C.循环执行二次D.有语法
错误
10.下面程序段执行后的结果为:
(B)
intsum=0,n=10;
do{sum=sum+n;
n++;}
while(n<10)
printf(“%d,%d”,sum,n)
A.0,10B.10,11C.0,11D.以上结果都不对
11.对以下程序段的叙述正确的是___A____.intx=1;
do
{x=-1*x;}
while(!
x)
A)是死循环B)循环执行一次C)循环执行二次D)有语法错
误
12.循环“for(i=0,x=1;i=10&&x>0;i++);”的循环执行(A)。
A.无限次B.不确定次C.10次D.9
13/26
次
13.执行语句{for(j=0;j<=3;j++)a=1;}后变量j的值是C.
A)0B)3C)4D)1
14.有如下程序
main()
{inti,sum=2;
for(i=1;i<=3;i+=2)sum+=i;
printf(“%dn”,sum);}
该程序的执行结果是A
A)6B)3C)死循环
D)4
*15、执行语句”for(i=0;i++<3;);”后,变量i的值为
(C)。
A、2B、3C、4D、5
16.设x和y均为int型变量,则执行以下的循环后,y的值为(D)。
for(y=1,x=1;y<=50;y++)
{
if(x>=0)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A.2B.4C.6D.1
五数组
1.以下对一维数组a的正确说明是:
D
A)chara(10);B)inta[];
14/26
C)intk
=5,a[k];
D
)chara[3]={
‘a’,’b’,’c’};
2.
以下能对一维数组
a进行初始化的语句是:
(
C
)
A.inta[5]=(0,1,2,3,4,)
B.inta(5)={}
C.inta[3]={0,1,2}
D.inta{5}={10*1}
3.
在C语言中对一维整型数组的正确定义为
D。
A)inta(10);
B)intn=10,a[n];
C)int
n;a[n];
D)#defineN10
inta[N];
4、已知:
inta[10];
则对a数组元素的正确引用是(
D)。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
5.
执行下面的程序段后
变量k中的值为
C
A)
不定值
B)33
C)3