c语言题库及答案182.docx
《c语言题库及答案182.docx》由会员分享,可在线阅读,更多相关《c语言题库及答案182.docx(195页珍藏版)》请在冰豆网上搜索。
c语言题库及答案182
计算机基础网络教学平台--章节自测
选择题(共45题),成绩(0分)
1、以下能正确定义变量a、b和c并为其赋值的语句是:
A)inta=5;b=5;c=5;B)inta,b,c=5;
C)a=5,b=5,c=5;D)inta=5,b=5,c=5;
正确答案是:
D
2、若有定义:
inty=7,x=12,则能使值为3的表达式是;
A)x%=(y%=5)B)x%=(y-y%5)
C)x%=y-y%5D)(x%=y)-(y%=5)
正确答案是:
D
3、设有如下变量定义:
inti=8,k,a,b;
unsignedw=5;doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是:
A)a+=a-=(b=4)*(a=3)B)x%(-3)
C)a=a*3=2D)y=float(i)
正确答案是:
A
4、以下程序的输出结果是:
#include
voidmain()
{
inta=12,b=12;
printf("%d,%d\n",--a,++b);
}
A)10,10B)1
C)11,10D)11,13
正确答案是:
D
5、若有定义inta=12,则表达式a+=a-=a*=a的值是:
A)0B)-264
C)-144D)132
正确答案是:
B
6、阅读下面的程序
#include
voidmain()
{
inti,j,m,n;
i=8;j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
程序的运行结果是:
A)8,10,8,10B)9,11,8,10
C)9,11,9,10D)9,10,9,11
正确答案是:
C
7、阅读下面的程序
#include
voidmain()
{
inti,j;
i=010;
j=9;
printf("%d,%d",i-j,i+j);
}
则程序的运行结果是:
A)1,19B)-1,19
C)1,17D)-1,17
正确答案是:
D
8、请读程序:
#include
voidmain()
{inta;floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
若运行时从键盘上输入9876543210(表示回车),则上面程序的
输出结果
A)a=98,b=765,c=4321B)a=10,b=432,c=
C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0
正确答案是:
C
9、有如下说明和语句
inta=5;
a++;
此处表达式a++的值是
A)7B)6C)5D)4
正确答案是:
C
10、能正确表示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
11、下面程序的输出结
#includevoidmain()
{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
12、以下程序的执行结果是()。
#include"stdio.h
voidmain()
{inta=8,b=-7,c=5;
switch(a>0)
{case1:
switch(b<0)
{case1:
printf("@");break;
case2:
printf("!
");break;
}
case0:
switch(c!
=0)
{case0:
printf("*");break;
case1:
printf("#");break;
default:
printf("$");break;
}
default:
printf("&");
}
printf("\n"
}
A)*#$B)&
C)@#&D)@*&
正确答案是:
C
13、下面的程序,当j的取值分别为3,2,1时的输出结果分别是(
#include
voidmain()
{intj,p=10;
scanf("%d",&j);
switch(j)
{case1:
case2:
printf("%d",p++);break;
case3:
printf("%d",--p);}
}
A)91010B)98
C)10109D)999
正确答案是:
A
14、指出下列程序段所表示的逻辑关系是()。
if(a
{if(c==d)
x=1;
}
elsex=2;
┌1a
A)x=┤
└2a≥b且c≠d
┌1a
B)x=┤
└2a≥b
┌1a
C)x=┤
└2a
┌1a
D)x=┤
└2c≠d
正确答案是:
B
15、以下程序的执行结果是()。
#include
voidmain()
{inta,b,c;
a=2;b=3;c=1;
if(a>b)
if(a>c)printf("%d\n",a);
elseprintf("%d\n",b);
printf("end\n");
}
A)2B)2
end
C)endD)3
end
正确答案是:
C 你选择的答案是:
未选 ×
16、下列程序执行后的输出结果是()。
#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
17、运行下面程序时,若从键盘输入数据为"6,5,7",
则输出结果是()。
#include
voidmain()
{inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
if(a>c)
printf("%d\n",a);
else
printf("%d\n",c);
else
if(b>c)
printf("%d\n",b);
else
printf("%d\n",c);
}
A)5B)6
C)7D)不定值
正确答案是:
C
18、运行下面程序时,若从键盘输入"456",
则程序的输出结果是()。
#include
voidmain()
{intmagic=123;
intguess;
scanf("%d",&guess);
if(guess==magic)
printf("**Right**");
else
{printf("**Wrong**");
if(guess>magic)
printf("Toohigh**");
else
printf("Toolow**");
}
}
A)**Right**B)**Wrong**Toohigh**
C)Toohigh**D)Toolow**
正确答案是:
B
19、以下程序的输出结果是()。
#include
voidmain()
{
inti;
for(i=1;i<=5;i++)
if(i%2)
printf("*");
elsecontinue;
printf("#");
printf("$\n");
}
A)***#$B)#*#*#*$
C)*#*#*#$D)**#*$
正确答案是:
A
20、下面程序的输出结果是()。
#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
21、在执行以下程序时,如果从键盘上输入:
ABCdef<回车>,
则输出为
#include
voidmain()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<'z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A)ABCdefB)abcDEF
C)abcD)DEF
正确答案是:
B
22、有如下程序
#include
voidmain()
{inti,sum=0;
for(i=1;i<=3;sum++)sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是
A)6B)3
C)死循环D)0
正确答案是:
C
23、下面程序段的运行结果是()。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
A)20,7B)6,12
C)20,8D)8,20
正确答案是:
D
24、以下不是无限循环的语句是()。
A)for(y=0,x=1;x>++y;x=i++)i=x;
B)for(;;x++=i);
C)while
(1){x++;}
D)for(i=10;;i--)sum+=i;
正确答案是:
A
25、有以下程序
#include
voidmain()
{intc;
while((c=getchar())!
='\n')
{switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}}printf("\n");
}
从第一列开始输入以下数据,代表一个回车符。
2473程序的输出结果是()。
A)668977B)668966
C)66778777D)6688766
正确答案是:
A
26、请读程序:
#include
#include
voidmain()
{floatx,y,z;
scanf("%f%f",&x,&y);
z=x/y;
while
(1)
{if(fabs(z)>1.0)
{x=y;y=z;z=x/y;}
elsebreak;
}
printf("%f\n",y);
}
若运行时从键盘上输入3.62.4(表示回车),
则输出结果是()。
A)1.500000B)1.600000
C)2.000000D)2.400000
正确答案是:
B
27、有以下程序
#include
voidmain()
{inti,j;
for(j=10;j<11;j++)
{for(i=9;iif(!
(j%i))break;
if(i>=j-1)printf("%d",j);
}
}
输出结果是()。
A)11B)10
C)9D)1011
正确答案是:
B
28、设已定义:
charst[]="howareyou";下列程序段中正确的是________。
A)chara[11];strcpy(a,st);
B)chara[12];strcpy(a,st[10]);
C)chara[12];strcpy(a,st);
D)chara[];strcpy(a,st);
正确答案是:
C
29、以下程序的输出结果是________。
#include
voidmain()
{inti,x[9]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d",x[i]);
}
A)52B)51
C)53D)97
正确答案是:
D
30、以下程序的输出结果是_________。
#include
voidmain()
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n",w[k]);
}
A)ABCDB)ABCE
FGHEFG
KLIJ
M
C)EFGD)EFGH
JKIJKL
O
正确答案是:
D
31、当执行下面的程序时,如果输入ABC,则输出结果是_________。
#include"stdio.h"
#include"string.h"
voidmain()
{charss[10]="12345";
gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);
}
A)ABC6789B)ABC67
C)12345ABC6D)ABC45678
正确答案是:
A
32、假定int类型变量占用两个字节,若有定义:
intx[10]={0,2,4};,
则数组x在内存中所占字节数是________。
A)3B)6
C)10D)20
正确答案是:
D
33、以下程序执行后的输出结果是________。
#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("%d\n",a[i][j]);
}
A)-8B)-10
C)9D)11
正确答案是:
A
才;、设staticcharstr[5][4];所说明的数组在静态存储区的十进制
起始地址为100,则数组元素str[4][3]在静态存储区中的十进制地址
为________。
A)114B)138
C)128D)119
正确答案是:
D
35、下面程序运行时,从键盘输入
Wouldyou
likethis
bird?
若要使程序输出Wouldyoulikethisbird?
,则空白处应选择________。
#include
voidmain()
{chars1[10],s2[10],s3[10],s4[10];
scanf("%s%s\n",s1,s2);
__________;
printf("%s%s%s%s\n",s1,s2,s3,s4);
}
A)scanf("%s\n",s3);scanf("%s\n",s4);
B)gets(s3);gets(s4);
C)scanf("%s%s\n",s3,s4);
D)gets(s3,s4);
正确答案是:
B
36、以下程序的功能是:
从键盘上输入一行字符,存入一个字符数组中,然后
输出该字符串,划线处应填入________。
#include"ctype.h"
#include"stdio.h"
voidmain()
{charstr[81];inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;}
________;
i=0;
while(str[i])putchar(str[i++]);
}
A)str[i]='0'B)str[i-1]='0'
C)str[i]=0D)str[i-1]=0
正确答案是:
C
37、下面程序运行后,输出的结果是_________。
#include
#defineN5
intfun(chars[],chara,intn)
{intj=n-1;
while(a
returnj;}
voidmain()
{chars[N];
intk,p;
for(k=0;ks[k]='A'+k+1;
printf("%d\n",fun(s,'E',N));}
A)2B)3
C)4D)5
正确答案是:
B
38、有如下程序
#include
intfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn
(1);}
voidmain()
{printf("%d\n",fib(3));}
该程序的输出结果是________。
A)2B)4
C)6D)8
正确答案是:
A
39、以下函数返回a数组中最小值所在的下标,在划线处应
填入的是________。
intfun(inta[],intn)
{inti,j=0,p;
p=j;
for(i=j;iif(a[i]return(p);}
A)i=pB)a[p]=a[i]
C)p=jD)p=i
正确答案是:
D
40、以下程序的输出结果是________。
#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
41、以下程序运行的结果是________。
#include
intfun(intn)
{ints;
if(n==0||n==1)s=1;
elses=n*fun(n-1);
returns;}
voidmain()
{printf("%d\n",fun(3));}
A)1B)2
C)3D)6
正确答案是:
D
42、请读程序:
#include
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);}
voidmain()
{intk,a[10]={2,3,4,5,6};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);}
上面程序的输出结果是_________。
A)56956B)34556
C)57956D)1211456
正确答案是:
C
43、下面函数的功能是________。
voidsss(s)
chars[];
{inti=0;
while(s[i])i++;
returni;}
A)求字符串的长