c语言期末考试 选择题.docx
《c语言期末考试 选择题.docx》由会员分享,可在线阅读,更多相关《c语言期末考试 选择题.docx(38页珍藏版)》请在冰点文库上搜索。
c语言期末考试选择题
1.对于以上函数程序,编译时系统会提示出错信息;提示对f函数重复说明
2.printf("%d\n",strlen(p[0]));5634
3.3*pow(x,n)*(1/(2*x-1))
4.x/y*zx*(1/(y*z))
5.structs
{intx,y;}data[2]={10,100,20,200}20112010
6.intk=0;
while(k=1)k++;
while循环执行的次数是______。
无限次
7.main()
{……x=fun(2,10);……}
floatfun(inta,intb){……}
8.有以下程序
main()
{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
执行后的结果是__3
__
2
10.┏-1(x<0)┏1(x<0)
①y=┫0(x=0)②y=┫-1(x=0)
┗1(x>0)┗0(x>0)
┏0(x<0)┏-1(x<0)
③y=┫-1(x=0)④y=┫1(x=0)
┗1(x>0)┗0(x>0)
11.以下叙述中错误的是______。
当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
12.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,少逗号当执行p++;后,下列说法错误的是______。
p向高地址移了一个字节
13.以下程序的输出结果是___6___。
#include
#include
main(){
charstr[12]={'s','t','r','i','n','g'};
printf("%d\n",strlen(str));
}
14.当变量c的值不为2、4、6时,值也为"真"的表达式是______。
(c>=2&&c<=6)||(c!
=3)||(c!
=5)
15.下面程序的功能是输出以下形式的金字塔图案:
*
***
*****
*******
main()
{inti,j;
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++)printf("");
for(j=1;j<=______;j++)printf("*");
printf("\n");
}
}
在下划线处应填入的是______。
2*i-1
16.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是___-12___。
17.以下程序的输出结果是______。
#include
#include
main(){
inta=1,b=4,c=2;
floatx=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
13.700000
18.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4
m=(ww:
x;m=(mm:
y;m=(mm:
z;
则该程序段执行后,m的值是___1___。
19设有定义:
intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是__*p=5;____。
20.下面程序的输出是______。
main()
{char*s="12134211";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{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);
}
v1=5,v2=8,v3=6,v4=1
21对于一个正常运行的C程序,以下叙述中正确的是。
程序的执行总是从main函数开始,在main函数结束22
23以下程序的输出结果是______。
#definef(x)x*x
main()
{inta=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
36有以下程序
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
24设有说明语句:
chara='\72';则变量a______。
包含1个字符
25以下选项中不属于字符常量的是______。
"C"
26以下程序的输出结果是______。
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;m=i+a+b;
return(m);
}
8,17
27以下程序的结果是______。
inta,b;
voidfun()
{a=100;b=200;}
main()
{inta=5,b=7;
fun();
printf("%d%d\n",a,b);
}
57
28有以下函数
char*fun(char*p)
{returnp;}
该函数的返回值是______。
形参p中存放的地址值
29若程序中定义了以下函数,
doublemyadd(doublea,doubleb)
{return(a+b);}
并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是______。
doublemyadd(doublea,b);
30有以下程序段
intn=0,p;
do{scanf("%d",&p);n++;}while(p!
=12345&&n<3);
此处do-while循环的结束条件是______。
p的值等于12345或者n的值大于等于3
31有以下程序
#include
main()
{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++)c[s[i]]++;
for(i=1;i<5;i++)printf("%d",c[i]);
printf("\n");
}
程序的运行结果是______。
4332
32已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是______。
1
34下列叙述中正确的是______。
C语言中既没有逻辑类型也没有集合类型
35有以下程序
structSTU
{charname[10];intnum;floatTotalScore;};
voidf(structSTU*p)
{structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;
++p;++q;*p=*q;
}
main()
{structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};
f(s);
printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);
}
程序运行后的输出结果是______。
Penghua20045537
36以下不构成无限循环的语句或语句组是______。
n=0;
do{++n;}while(n<=0);
37以下程序的输出结果是______。
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
}
main()
{printf("%ld\n",fun(3));}
1
38有以下程序
#include
#include
voidfun(char*s[],intn)
{char*t;inti,j;
for(i=0;ifor(j=i+1;jif(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是______。
xy,aaaacc
39有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出的结果是______。
3
40有以下程序
main()
{
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);
}
程序运行后的输出结果是______。
345
41设有定义语句int(*f)(int);,则以下叙述正确的是______。
f是指向函数的指针变量,该函数具有一个int类型的形参
42有以下程序
main()
{
chara[7]="a0\0a0\0";
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是______。
72
43以下程序的输出结果是______。
#include
main()
{
inti=10,j=10;
printf("%d,%d\n",++i,j--);
}
11,10
44有以下程序
#include
#include
voidfun(chars[][10],intn)
{chart;inti,j;
for(i=0;ifor(j=i+1;j/*比较字符串的首字符大小,并交换字符串的首字符*/
if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}
}
main()
{charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是______。
有以下程序
#include
#include
voidfun(chars[][10],intn)
{chart;inti,j;
for(i=0;ifor(j=i+1;j/*比较字符串的首字符大小,并交换字符串的首字符*/
if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}
}
main()
{charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是______。
acc,xabcc
45若变量已正确定义并赋值,下面符合C语言语法的表达式是______。
a=b=c+2
a:
=b+1
46下面程序
#include
#include
main()
{char*p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);
}
的输出是______。
xyabcABC
47假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4
m=(ww:
x;m=(mm:
y;m=(mm:
z;
则该程序段执行后,m的值是______。
1
48有以下程序
floatf1(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;p2=f2;
y1=p2(p1(2.0));
t=p1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
8,16
49若a、b、c1、c2、x、y均是整型变量,正确的switch语句是______。
①
switch(a+b);
{case1:
y=a+b;break;
case0:
y=a-b;break;
}
②
switch(a*a+b*b)
{case3:
case1:
y=a+b;break;
case3:
y=b-a;break;
}
③
switcha
{casec1:
y=a-b;break;
casec2:
x=a*b;break;
default:
x=a+b;
}
④
switch(a-b)
{default:
y=a*b;break;
case3:
case4:
x=a+b;break;
case10:
case11:
y=a-b;break;
}
④
50下列叙述中正确的是______。
C语言的函数可以嵌套调用
51程序中头文件type1.h的内容是:
#defineN5
#defineM1N*3
程序如下:
#include"type1.h"
#defineM2N*2
main()
{inti;
i=M1+M2;printf("%d\n",i);
}
程序编译后运行的输出结果是______。
52有如下程序
main()
{
inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j]];
printf("%d\n",s);
}
该程序的输出结果是______。
18
53以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:
#include
findmax(int*s,intt,int*k)
{intp;
for(p=0,*k=p;pif(s[p]>s[*k])______;
}
main()
{inta[10],i,k;
for(i=0;i<10;i++)scanf("%d",&a[i]);
findmax(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
*k=p
54有以下程序
#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=2,b=1
55有如下程序段
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B');
执行该程序段后,x的值为______。
1
56以下选项中不合法的标识符是______。
&a_00print
57若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。
函数的形参和实参分别占用不同的存储单元dui
同名的实参和形参占同一存储单元cuo
58设有定义:
longx=-123456L;,则以下能够正确输出变量x值的语句是______。
printf("x=%ld\n",x);
59有以下程序
voidchange(intk[]){k[0]=k[5];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while(n<=4)
{change(&x[n]);n++;}
for(n=0;n<5;n++)printf("%d",x[n]);
printf("\n");
}
程序运行后输出的结果是______。
678910
60以下所列的各函数声明中,正确的是______。
voidplay(inta,intb)
61有以下程序
#include
main()
{char*p="abcde\0fghjik\0";
printf("%d\n",strlen(p));
}
程序运行后的输出结果是______。
5
62以下程序的输出结果是______。
main()
{inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
852
63
64下列定义变量的语句中错误的是______。
floatUS$;
65
66下面的程序
main()
{intx=3;
do{
printf("%d\n",x-=2);
}while(!
(--x));
}
______。
输出的是1和-2
67请选出以下程序的输出结果______。
#include
sub(x,y,z)
intx,y,*z;
{*z=y-x;}
main(){
inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
-5,-12,-7对
-5,-12,-17
68有以下程序
main()
{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
执行后的结果是______。
2
69有如下程序
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);
}
该程序输出结果是______。
0.500000
70若有定义语句:
inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是______。
a[1][3]
若有定义语句:
inta[2][3],*
;,则以下语句正确的是______。
p[0]=&a[1][2];
71设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为______。
5
72设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
'a'&&'b'
!
((a
c||1)对
73下面程序
main()
{intx=100,a=10,b=20,ok1=5,ok2=0;
if(a
if(b!
=15)
if(!
ok1)x=1;
elseif(ok2)x=10;
x=-1;
printf("%d\n",x);
}
的输出是______。
-1
74设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为______。
5
75以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等价的是______。
if((a>b)&&(b>c))k=1;
elsek=0;
76若有代数式
(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。
sqrt(fabs(pow(n,x)+exp(x)))
77有以下程序
main()
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是______。
102,10
78.有以下程序
floatf1(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;