湖南科技大学c语言期末试题库.docx
《湖南科技大学c语言期末试题库.docx》由会员分享,可在线阅读,更多相关《湖南科技大学c语言期末试题库.docx(95页珍藏版)》请在冰豆网上搜索。
![湖南科技大学c语言期末试题库.docx](https://file1.bdocx.com/fileroot1/2023-7/12/dd68c608-c05e-4f7b-950f-2fb4a79e5485/dd68c608-c05e-4f7b-950f-2fb4a79e54851.gif)
湖南科技大学c语言期末试题库
选择题(共题),成绩()
一、C语言所提供的根本数据类型包括字符型、整型、双精度型、单精度型和____:
A)指针型B)构造型
C)数组型D)列举类型
正确答案是:
D
二、下面四个选项中,均是合法浮点数的选项是:
A)1e+15e-9.403e2
B)-.6012e-4-8e5
C)123e1.2e-.4e-4
D)-e3e-45.e-0
正确答案是:
B
3、以下符合C语言语法的表达式:
A)d=9+e+f=d+9B)d=9+e,f=d+9
C)d=9+e=e++,d+9D)d=9+e++=d+7
正确答案是:
B
4、假设有定义inta=12,那么表达式a+=a-=a*=a的值是:
A)0B)-264
C)-144D)132
正确答案是:
A
五、下面程序的输出结果是:
#include
voidmain()
{
inta,b,c;
intd;
b=(a=32767,a++);
c=d=0xffff;
printf("%x,%d,%d,%d\n",a,b,c,d);
}
A)8000,32767,65535,65535B)-1,-1,32767,8000
C)-1,-1,-1,-1D)32767,-1,-1,-1
正确答案是:
A
六、有double型变量x=2.5,y=4.7,整型变量a=7,那么表达式x+a%3*(int)(x+y)%2/4的值是:
C)2.75D)0
正确答案是:
B
7、设inta=12,那么执行完语句a+=a-=a*a后,a的值是
A)552B)264C)144D)-264
正确答案是:
D
八、表达式:
10!
=9的值是
A)trueB)非零值C)0D)1
正确答案是:
D
九、在以下选项中,不正确的赋值语句是
A)++t;B)n1=(n2=(n3=0));
C)k=i=j;D)a=b+c=1;
正确答案是:
D
10、设a,b和c都是int型变量,且a=3,b=4,c=5,那么下面的表达式中,
值为0的表达式是
A)'a'&&'b'B)a<=b
C)a||b+c&&b-cD)!
((a
c||1)
正确答案是:
D
1一、能正确表示a和b同时为正或同时为负的逻辑表达式是
A)(a>=0||b>=0)&&(a<0||b<0)
B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0&&a+b<=0)
D)a*b>0
正确答案是:
D
1二、运行下面程序后,输出是()。
#include
voidmain()
{intk=-3;
if(k<=0)printf("****\n");
elseprintf("####\n")
}
A)####B)****
C)####****D)有语法错误不能通过编译
正确答案是:
D
13、下面程序的输出结果是
#include
voidmain()
{inta=2,b=7,c=5;
switch(a>0)
{case1:
switch(b<0)
{case1:
printf("@");break;
case0:
printf("!
");break;
}
case0:
switch(c==5)
{case0:
printf("*");break;
case1:
printf("#");break;
default:
printf("%%");break;
}
default:
printf("&");
}printf("\n");
}
A)&B)!
#&
C)%%D)@*&
正确答案是:
B
14、运行下面程序时,假设从键盘输入数据为"123",
那么输出结果是()。
#include"stdio.h"
voidmain()
{intnum,i,j,k,place;
scanf("%d",&num);
if(num>99)
place=3;
elseif(num>9)
place=2;
else
place=1;
i=num/100;
j=(num-i*100)/10;
k=(num-i*100-j*10);
switch(place)
{case3:
printf("%d%d%d\n",k,j,i);
break;
case2:
printf("%d%d\n",k,j);
break;
case1:
printf("%d\n",k);
}
}
A)123B)1,2,3
C)321D)3,2,1
正确答案是:
C
1五、以下程序的输出结果是
#include
voidmain()
{inta=-1,b=4,k;
k=(++a<0)&&!
(b--<=0);
printf("%d,%d,%d\n",k,a,b);
}
A)1,0,4B)1,0,3
C)0,0,3D)0,0,4
正确答案是:
D
1六、执行以下程序,分别输入-10和5,运行的结果分别是()。
#include
voidmain()
{intx,c,m;
floaty;
scanf("%d",&x);
if(x<0)c=-1;
elsec=x/10;
switch(c)
{case-1:
y=0;break;
case0:
y=x;break;
case1:
y=10;break;
case2:
case3:
y=-0.5*x+20;break;
default:
y=-2;
}
if(y!
=-2)printf("y=%d\n",y);
elseprintf("error\n");
}
A)y=0B)y=0
y=5y=-2
C)y=-10D)y=0
y=5y=10
正确答案是:
A
17、执行下面程序时,假设从键盘输入"2",那么程序的
运行结果是()。
#include
voidmain()
{intk;charcp;
cp=getchar();
if(cp>='0'&&cp<='9')
k=cp-'0';
elseif(cp>='a'&&cp<='f')
k=cp-'a'+10;
elsek=cp-'A'+10;
printf("%d\n",k);
}
A)2B)4
C)1D)10
正确答案是:
A
1八、以下程序执行后的输出结果是()。
#include
voidmain()
{inta=358;
if(a>=100)
{if(a>=1000)
printf("%disgreaterthan10000\n",a);
elseprintf("%dis100to999\n",a);
}
else
{if(a<10)
printf("%dislessthan10\n",a);
elseprintf("%dis10to99\n",a);
}
}
A)aislessthan10B)ais10to99
C)aisgreaterthan10000D)358is100to999
正确答案是:
D
1九、以下表达正确的选项是
A)do-while语句组成的循环不能用其它语句组成的循环来代替
B)do-while语句组成的循环只能用break语句退出
C)用do-while语句组成的循环,在while后的表达式为非零时终止循环
D)用do-while语句组成的循环,在while后的表达式为零时终止循环
正确答案是:
D
20、设i,j,k均为int型变量,那么执行完下面的for循环后,k的值为
for(i=0,j=10;i<=j;i++,j--)k=i+j;
A)12B)10
C)11D)9
正确答案是:
B
2一、假设i为整型变量,那么以下循环语句的循环次数是()。
for(i=2;i==0;)
printf("%d",i--);
A)无穷次B)0次
C)1次D)2次
正确答案是:
B
2二、下面程序的输出结果是()。
#include
voidmain()
{unsignedintnum,k;
num=26;k=1;
do{
k*=num%10;
num/=10;
}while(num);
printf("%d\n",k);
}
A)2B)12
C)60D)18
正确答案是:
B
23、下面程序的输出结果是()。
#include
voidmain()
{intx,i;
for(i=1;i<=50;i++)
{x=i;
if(++x%2==0)
if(x%3==0)
if(x%7==0)
printf("%d",i);
}
}
A)28B)27
C)42D)41
正确答案是:
D
24、下面程序的输出结果是()。
#include
voidmain()
{intx=3,y=6,a=0;
while(x++!
=(y-=1))
{a+=1;
if(y}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A)x=4,y=4,a=1B)x=5,y=5,a=1
C)x=5,y=4,a=3D)x=5,y=4,a=1
正确答案是:
D
2五、当从键盘上输入字符“12134211〞下面程序的
输出结果是()。
#include
voidmain()
{chars;
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{scanf("%c",&s);
switch(s)
{default:
v4++;
case'1':
v1++;
case'3':
v3++;
case'2':
v2++;}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1
C)v1=5,v2=8,v3=6,v4=1D)v1=8,v2=8,v3=8,v4=8
正确答案是:
C
2六、下面程序的功能是:
计算1到10之间奇数之和及偶数之和,请填空。
#include
voidmain()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
______;
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
A)i+=2B)i++
C)b=b+1D)b=i+1
正确答案是:
D
27、运行以下程序后,如果从键盘上输入12,8<回车>,
那么输出结果为()。
#include
voidmain()
{inta,b,n1,n2,t;
scanf("%d,%d",&n1,&n2);
if(n1>n2)
{t=n1;n1=n2;n2=t;}
a=n1;b=n2;
while(b!
=0)
{t=a%b;
a=b;
b=t;}
printf("%d,%d\n",a,n1*n2/a);
}
A)2,6B)4,24
C)4,12D)8,96
正确答案是:
B
2八、有如下程序
#include
voidmain()
{charch[80];
intj;longs=0;
printf("Enteranumeralstring\n");gets(ch);
for(j=0;ch[j]>'\0';j++)
s=10*s+ch[j]-'0';
printf("%ld\n",s);
}
假设是运行时,从键盘上输入由数字组成的字符串,
该程序的功能是________。
A)测字符数组ch的长度
B)将数字字符串ch转换成十进制数
C)将字符数组中的小写字母转换成大写
D)将字符数组中的大写字母转换成小写
正确答案是:
B
2九、有如下程序
#include
voidmain()
{charch[80]="123abcdEFG*&";
intj;longs=0;
for(j=0;ch[j]>'\0';j++);
printf("%d\n",j);
}
该程序的功能是________。
A)测字符数组ch的长度
B)将数字字符串ch转换成十进制数
C)将字符数组ch中的小写字母转换成大写
D)将字符数组ch中的大写字母转换成小写
正确答案是:
A
30、以下程序的输出结果是________。
#include
voidmain()
{inta[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};
inti,j,s=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i==0||j==0||i==3||j==3)s+=a[i][j];
printf("%d\n",s);
}
A)88B)66
C)60D)50
正确答案是:
B
3一、设有以下定义语句
charstr1[]="string",str2[8],str3[6],str4[]="string";
那么下面对函数strcpy的挪用中,错误的挪用是________。
(此函数用来复制字符串)
A)strcpy(str1,"HELLO1");B)strcpy(str2,"HELLO2");
C)strcpy(str3,"HELLO3");D)strcpy(str4,"HELLO4");
正确答案是:
C
3二、阅读程序:
#include
voidmain()
{charstr1[]="howdoyoudo",str2[10];
scanf("%s",str2);
printf("%s",str2);
printf("%s\n",str1);
}
运行该程序,输入字符串HOWDOYOUDO,那么程序的输出结果是______。
A)HOWDOYOUDOB)HOWhowdoyoudo
C)HowhowdoyoudoD)howdoyoudo
正确答案是:
B
33、下面程序的输出是________。
#include
voidmain()
{chars[]="23245322";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{default:
v4++;
case'2':
v1++;
case'4':
v3++;
case'3':
v2++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1
C)v1=5,v2=8,v3=6,v4=1D)v1=8,v2=8,v3=8,v4=8
正确答案是:
C
34、以下程序执行后的输出结果是________。
〔设a[0][0]是数组a中的第1个元素〕
#include
voidmain()
{inta[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11};
inti,j,n=9;
i=n/5;j=n-i*5-1;
printf("NO.%d:
%d,%dis%d\n",n,i,j,a[i][j]);
}
A)第n个元素所在的行和列及其该元素的值
B)第n行的最大元素所在的行和列及其最大值
C)第i行的最大元素所在的行和列及其最大值
D)以上都不对
正确答案是:
A
3五、以下一组初始化语句中,正确的选项是________。
A)inta[8]={};B)inta[9]={0,7,0,4,8};
C)inta[5]={9,5,7,4,0,2};D)inta[7]=7*6;
正确答案是:
B
3六、假设有定义和语句:
chars[10];s="abcd";printf("%s\n",s);
那么程序运行后________(以下u代表空格)。
A)输出abcdB)输出a
C)输出abcduuuuuD)编译不通过
正确答案是:
D
37、函数fun的功能是:
根据以下公式计算S,n通过形参传入,n的值大
于等于0。
划线处应填________。
1111
S=1-─+─-─+…───
3572n-1
floatfun(intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{________;
w=f/(2*i+1);
s+=w;}
returns;}
A)f=1B)f=-1
C)f=-1*fD)f=0
正确答案是:
C
3八、函数fun的功能是:
根据以下公式计算并返回S,n通过形参传入,n的值
大于等于0。
划线处应填________。
1111
S=1-─+─-─+…───
3572n-1
floatfun(intn)
{floats=0.0,w,t,f=-1.0;
inti;
for(i=0;i{f=-f;
w=f/(2*i+1);
s+=w;}
____________;}
A)return(f)B)return(i)
C)return(s)D)return(w)
正确答案是:
C
3九、以下程序的输出结果是________。
#include
voidfun()
{staticinta=0;
a+=2;
printf("%d",a);}
voidmain()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");}
A)2222B)2468
C)222D)246
正确答案是:
D
40、以下程序的输出结果是
#include
voidfun(chars[])
{intx,y;charc;
for(x=0,y=strlen(s)-1;x{c=s[y];s[y]=s[x];s[x]=c;}}
voidmain()
{chara[]="123456789";intk;
fun(a);puts(a);}
A)987654321B)123456789
C)123454321D)987656789
正确答案是:
A
4一、以下程序执行后输出的结果是________。
#include
intf(inta)
{intb=0,c=3;
a=c++,b++;
return(a);}
voidmain()
{inta=2,i,k;
for(i=0;i<3;i++)
k=f(a++);
printf("%d\n",k);}
A)3B)0
C)5D)4
正确答案是:
A
4二、以下程序的输出结果是________。
#include"ctype.h"
voidspace(charstr[])
{inti,t;charts[81];
for(i=0,t=0;str[i]!
='\0';i+=2)
if(!
isspace(str[i])&&str[i]!
='a')
ts[t++]=toupper(str[i]);
ts[t]='\0';
strcpy(str,ts);}
voidmain()
{chars[81]={"abcdefg"};
space(s);
puts(s);}
A)ABCDEFGB)CEG
C)ABCDED)BDF
正确答案是:
B
43、下面程序的功能是,将字符数组a中的字符逆序存放,划线处应
填入________。
#include
voidmain()
{chara[80]="abcdefgh";
fun(a);puts(a);}
fun(chars[10])
{intx=0,y;charc;
for(________;x{c=s[x];s[x]=s[y];s[y]=c;}}
A)y=0B)y=strlen(s)
C)y=strlen(s)-1D)y=x
正确答案是:
C
44、以下程序的输出结果是________。
#include
inta,b;
voidfun()
{a=100;b=200;}
voidmain()
{int