完整word版湖南工业大学C语言期末考试复习题机房题库.docx
《完整word版湖南工业大学C语言期末考试复习题机房题库.docx》由会员分享,可在线阅读,更多相关《完整word版湖南工业大学C语言期末考试复习题机房题库.docx(30页珍藏版)》请在冰豆网上搜索。
完整word版湖南工业大学C语言期末考试复习题机房题库
C语言期末考试复习题(机房题库)
2、下列各选项中,合法的c语言关键字是()。
A.integexB.sinC.stringD.void参考答案:
D
3、C语言的程序一行写不下时,应该()。
A.用回车符换行B.在任意一个空格处换行C.用分号换行D.用逗号换行答案:
B
4、以下选项中正确的整型常量是()。
A.34.1B.-80C.2,000D.123参考答案:
B
5、在C程序中,可以作为用户标识符的一组标识符是()。
A.voiddefineWORDB.as_b3_224ElseC.switch_weleaseD.4bDOSIG答案:
B
8、以下叙述不正确的是()
A.一个c源程序可由一个或多个函数组成B.一个C源程序必须包含一个main()函数
C.c程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面答案:
D
9、C语言规定:
在一个源程序中,main()函数的位置()
A.必须在最开始B.必须在系统调用的库函数的后面
C.可以任意D.必须在最后参考答案:
C
10、在C语言中,数字029是一个()
A.八进制数B.十六进制数C.十进制数D.非法数参考答案:
D
12、C语言可执行程序的开始执行点是()
A.程序中的一条可执行语句B.程序中第一个函数
C.程序中的main函数D.包含文件中的第一个函数参考答案:
C
13、C程序是()
A.顺序执行B.从Main函数开始
C.从函数体开始D.任意语句参考答案:
B
16、以下说法中正确的是()。
A.C语言程序中是从第一定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分参考答案:
C
17、一个C程序的执行是从()
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束参考答案:
A
18、以下叙述正确的是()
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误答案:
C
1、C源程序的基本单位是___函数__
2、一个C源程序中至少应包括一个_________答案:
main函数
3、在一个C源程序中,注释部分两侧的分界符分别为________和_______参考答案:
/*,*/
4、函数体用_______开始,用______结束。
参考答案:
{,}
6、C语言中的标识符只能由3种字符组成,它们是_____、_____和_____
参考答案:
字母数字下划线
7、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是_______.
A.'a'&&'b'B.a<=bC.a||b+c&&b-cD.!
((a
c||1)参考答案:
D
10、判断字符型变量x是否是大写字母的正确的表达式______.
A.'A'<=x<='Z'B.(x>=A)&&(x<=Z)C.('A'<=x)&&('Z'=>x)D.(x>='A')&&(x<='Z')答案:
D
1、已知charch;则判断ch是英文字符的逻辑表达式是_______________
参考答案:
(ch<='z'&&ch>='a')||(ch<='Z'&&ch>='A')
2、表示条件:
10参考答案:
(X>10&&X<100)||X<0
3、写出下面各个逻辑表达式的值,设a=3,b=4,c=5
1)!
(x=a)&&(y=b)&&0
2)a||b+c&&b-c
3)!
(a>b)&&!
c||1参考答案:
0,1,1
4、当a=3,b=2,c=1时,表达式f=a>b>c的值是_________参考答案:
0
6、设y是int型变量,请写出判断y为奇数的关系表达___________.
参考答案:
(Y%2)==1
8、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是——。
参考答案:
x>5||x<-5
9、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A
C>B的值是——。
参考答案:
0
1、以下选项中属于C语言的数据类型是
A.复数型B.逻辑型C.双精度型D.集合型参考答案:
C
2、在C语言中,不正确的int类型的常数是
A.32768B.0C.037D.0xAF参考答案:
A
4、在C语言中,合法的长整型常数是
A.OLB.4962710C.324562&D.216D参考答案:
A
7、以下所列的C语言常量中,错误的是
A.0xFFB.1.2e0.5C.2LD.'\72'参考答案:
B
9、下列变量名合法的是()
A.#1B.$567C.a-bD.m_number参考答案:
D
14、C语言提供的合法的数据类型关键字是:
A.Double
B.short
C.integer
D.Char参考答案:
B
15、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为
A.charB.char=intC.charD.char=int=longint<=floatA
16、下列四组选项中,均不是C语言关键字的选项是
A.defineIFtype
B.getccharprintf
C.includescanfcase
D.whilegopow参考答案:
A
17、下面四个选项中,均是合法整型常量的选项是
A.160-0xffff011
B.-0xcdf01a0xe
C.-0x46a2e50x
D.-0x48a2e50x参考答案:
A
18、下面四个选项中,均是合法的浮点数的选项是
A.+1e+15e-9.403e2
B.-.6012e-4-8e5
C.123e1.2e-.4+2e-1
D.-e3.8e-45.e-0参考答案:
B
20、下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A.0160x8f018
B.0abc0170xa
C.010-0x110x16
D.0a127ff-123参考答案:
D
21、已知各变量的类型说明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
则以下不符合C语言语法的表达式是
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)答案:
A
25、设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围
A.0--255B.0--32767C.0--65535D.0—2147483647参考答案:
C
2、设有以下变量定义,并已赋确定的值charw;intx;floaty;doublez;
则表达式:
w*x+z-y所求得的数据类型为_:
double
5、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为___参考答案:
int
6、表达式pow(2.8,sqrt(double(x)))值的数据类型为___:
double______
7、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为_______
参考答案:
-32768至32767
1、算法的表示方法有_答案:
自然语言,传统流程图,N-S流程图,伪代码,计算机语言
1、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系
的表达式为________。
A.a<>0B.!
aC.a=0D.a!
=0参考答案:
D
2、以下程序输出结果是
main()
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);}
A.7B.6C.5D.4参考答案:
B
4、若变量都已经说明,则以下程序段输出为()
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=10B.a=10b=30c=10
C.a=50b=30c=10D.a=50b=30c=50参考答案:
B
5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。
A.其上面距它最近的,并且没有其他else与其配对的if相配对
B.在同一行上的if
C.缩排位置相同的ifD.在其之前未配对的if参考答案:
A
8、请读程序:
main()
{floatx,y;
scanf("%f",&x);
if(x<0.0)y=0.0
elseif((x<5.0)&&(x!
=2.0))
y=1.0/(x+2.0);
elseif(x<10.0)y=1.0/x;
elsey=10.0;
printf("%f\n",y);}
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是
A.0.000000B.0.250000C.0.500000D.1.000000参考答案:
C
9、在执行以下程序时,为了使输出结果为t=4,
则给a和b输入的值应满足的条件是D
main()
{ints,t,a,b;
scanf("%d,%d",&a,&b);
s=1;
t=1;
if(a<0)s=s+1;
if(a>b)t=s+1;
elseif(a==b)t=5;
elset=2*s;
printf("t=%d\n",t);
}
A.0>a>b
B.a=0
C.a=b<0
D.a
10、若有定义:
floatw;inta,b;则合法的switch语句是()
A.switch(w){case1.0:
printf("*\n");case2.0:
printf("**\n");}
B.switch(a);{case1printf("*\n");case2printf("*\n");}
C.switch(b){case1:
printf("*\n");case2:
printf("*\n");}
D.switch(a+b);{case1:
printf("*\n");default:
printf("\n");case2}参考答案:
C
11、判断两个字符串S1和S2相等的正确语句是____
A.if(S1=S2)
B.if(S1==S2)
C.if(strcpy(S1,S2))
D.if(strcmp(S1,S2)==0)参考答案:
D
15、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A.1B.2C.3D.6参考答案:
B
16、读下列程序:
#include
main()
{
intx,y;
scanf(”%d”,&x);
y=0;
if(x>=0)
{if(x>0)y=1;}
elsey=-1;
prinff(”%d”,y);}
当从键盘输入32时,程序输出结果为()。
A.0B.1C.-1D.不确定参考答案:
B
18、如下程序的输出结果是()。
#include
main()
{
inta=12,b=5,c=-3;
if(a>b)
if(b<0)c=0;
elsec++;
printf(”%d\n”,c);
}
A.0B.1C.-2D.-3参考答案:
C
19、#include
main()
{intx:
scanf(”%d”,&x);
if(x--<5)prinff(”%d”,x);
elseprintf(”%d”,x++);
}
程序运行后,如果从键盘输入5,则输出结果是()。
A.3B.4C.5D.6参考答案:
B
21、以下程序的运行结果是()。
#include
main()
{
intk=2;
switch(k)
{
case1:
printf(”%d\n”,k++);
break;
case2:
printf(”%d”,k++);
case3:
printf(”%d\n”,k++);
break;。
case4:
printf(”%d\n”,k++);
A.缩排位置相同的ifB.其之前最近的if
C.其之后最近的ifD.同一行上的if参考答案:
B
24、下列语句正确的是()
A.if(a>b>c)temp=a
B.if((a=b)>0)temp=a
C.inta=b=c=4
D.inta;scanf(%d,a)参考答案:
B
26、有如下程序
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++
printf("%d\n",c);
}
该程序的输出结果是
A.0B.1C.2D.3参考答案:
C
27、与y=(x>0?
1:
x<0?
-1:
0);的功能相同的if语句是
A.if(x>0)y=1;elseif(x<0)y=-1;elsey=0;
B.if(x)if(x>0)y=1;elseif(x<0)y=-1;elsey=0;
C.y=-1if(x)y=1;elseif(x==0)y=0;elsey=-1;
D.y=0if(x>-0)if(x>0)y=1;elsey=-1;参考答案:
A
填空题:
2、以下程序运行后的输出结果是——。
#include
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(”%d,%d\n”,x,y);
}参考答案:
0
3、若inti=10;,则执行下列程序后,变量i的正确结果是——。
switch(i)
{case9:
i+=1;
case10:
i+=1;.
case11:
i+=1:
default:
i+=1;
}答案:
((20
4、下列程序段的输出结果是_____________。
intn='c';
switch(n++)
{default:
printf("error");break;
case'a':
case'A':
case'b':
case'B':
printf("good");break;
case'c':
case'C':
printf("pass");
case'd':
case'D':
printf("warm");
}
参考答案:
passwarm
已知inta[][3]={1,2,3,4,5,6,7};,则数组a的第一维的大小是()。
A.2B.3C.4D.无确定值参考答案:
B
2、有如下程序:
#include
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i
printf(”%d\n”,n[k]);
}
该程序的输出结果是()。
A.不定值B.2C.1D.0答案:
D
3、以下程序的输出结果是()。
#include
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i
returns;
}
main()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf(”%d\n”,x);
}
A.10B.18C.8D.15答案:
A
4、以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置。
#include
voidreverse(inta[],intn)
{inti,t;
for(i=0;i
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
A.22B.10C.34D.30
参考答案:
A
5、在c语言中,一维数组的定义方式为:
类型说明符数组名()。
A.[常量表达式]B.[整型表达式]
C.[整型常量]或[整型表达式]D.[整型常量]
参考答案:
A
6、若有说明:
inta[3][4];,则对a数组元素的非法引用是()。
A.a[O][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]答案:
D
7、下面程序中有错误的行是()。
(1)main()
(2){
(3)inta[3]={1};
(4)inti;
(5)scanf(”%d”,&a);
(6)for(i=1;i<3;i++)a[0]=a[0]+a[i];
(7)prinff(”%f\n”,a[0]);
(8)}
A.3B.6C.7D.5答案:
D
11、下面程序________(每行程序前面的数字表示行号)
1main()
2{
3floata[3]={0,0};
4inti;
5for(i=0;i<3;i++)scanf("%d",&a[i]);
6for(i=1;i<10;i++)a[0]=a[0]+a[i];
7printf("%f\n",a[0]);
8}
A.没有错误B.第3行有错误,虽然编译能够通过
C.第5行有错误,虽然编译能够通过D.第7行有错误,虽然编译能够通过
参考答案:
C
12、以下不正确的定义语句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'}参考答案:
B
13、执行下面的程序段后,变量k中的值为
s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10答案:
A
15、定义如下变题和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
for(i=0;i<3;i++)printf("%d",x[i][2-1]);
A.159B.147
C.258D.369
参考答案:
C
16、下列程序的输出结果是
main()
{staticints[][3]={{1,2,3},{4,5,6}};
intt;
t=(s[0][0],s[1][1],s[0][1]+s[1][2]);
printf("%d\n",t);
}
A.5B.6C.7D.8
参考答案:
D
17、下列对数组赋值的语句正确的是()
A.statica[4]={0,0,0,0}
B.inta[4]={0*4}
C.statica[4]=0
D.statica[4];a=0;答案:
A
19、若有说明inta[3][4];则对a数组元素的正确引用是
A.a[2][4]B.a[1,3]
C.a[1+1][0]D.a
(2)
(1)答案:
C
20、若有说明inta[3][4];则a数组元素的非法引用是
A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]答案:
D
1、用来引用特定数组元素的数字称为:
下标
2、把数组元素按顺序存放的过程称为_:
排序
4、在C语言中,二维数组元素在内存中的存放顺序是:
按行顺序存放
5、下面程序的运行结果是——。
#include
main()
{inti,f[10];
f[0]=f[l]=1;
for(i=2;i
f[i]=f[i-2]+f[i一1];
for(i=0;i
{if(i%4==0)printf(”\n”);