二级C语言笔试试题及参考解答Word文件下载.docx
《二级C语言笔试试题及参考解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《二级C语言笔试试题及参考解答Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
B)b++C)c++;
D)d++;
17、设有定义:
floata=2,b=4,h=3;
以下C语言表达式与代数式计算结果不相
符的是()
A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)
18、有以下程序
main()
{
intx=102,y=012;
printf("
%2d,%2d\n"
x,y);
}执行后输出结果是()
A)10,01B)002,12C)102,10D)02,10
19、以下4个选项中,不能看作一条语句的是()
A){;
}B)a=0,b=0,c=0;
C)if(a>
0);
D)if(b==0)m=1;
n=2;
20、设有定义:
inta,*pa=&
a;
以下scanf语句中能正确为变量a读入数据的是()
A)scanf("
%d"
pa);
B)scanf("
a);
C)scanf("
&
pa);
D)scanf("
*pa);
21、以下程序段中与语句k=a>
b?
(b>
c?
1:
0):
0;
功能等价的是()
A)if((a>
b)&
&
c))k=1;
B)if((a>
b)||(b>
c))k=1
elsek=0;
C)if(a<
=b)k=0;
D)if(a>
b)k=1;
elseif(b<
=c)k=1;
elseif(b>
c)k=1;
22、有以下程序
{chark;
intI;
for(i=1;
i<
3;
i++)
{scanf("
%c"
k);
switch(k)
{case'
0'
:
another\n"
);
case'
1'
number\n"
}
}
程序运行时,从键盘输入:
01<
回车>
,程序执行后的输出结果是()
A)anotherB)anotherC)anotherD)number
numbernumbernumbernumber
anothernumber
23、有以下程序
{intx=0,y=5,z=3;
while(z-->
0&
++x<
5)y=y-1;
%d,%d,%d\n"
x,y,z);
}
程序执行后的输出结果是()
A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5
24、有以下程序
{inti,s=0;
10;
i+=2)s+=i+1;
%d\n"
s);
A)自然数1~9的累加和B)自然数1~10的累加和
C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
25、有以下程序
{inti,n=0;
for(i=2;
5;
{do
{if(i%3)continue;
n++;
}while(!
i);
n=%d\n"
n);
A)n=5B)n=2C)n=3D)n=4
26、若程序中定义了以下函数
doublemyadd(doublea,doubleb)
{return(a+b);
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
A)doublemyadd(doublea,b);
B)doublemyadd(double,double);
C)doublemyadd(doubleb,doublea);
D)doublemyadd(doublex,doubley);
27、有以下程序
charfun(charx,chary)
{if(x<
y)returnx;
returny;
main()
{inta='
9'
b='
8'
c='
7'
;
%c\n"
fun(fun(a,b),fun(b,c)));
}
程序的执行结果是()
A)函数调用出错B)8C)9D)7
28、设有定义:
intn=0,*p=&
n,**q=&
p;
则以下选项中,正确的赋值语句是()
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;
29、有以下程序
voidf(intv,intw)
{intt;
t=v;
v=w;
w=t;
{intx=1,y=3,z=2;
if(x>
y)f(x,y);
elseif(y>
z)f(y,z);
elsef(x,z);
执行后输出结果是()
A)1,2,3B)3,1,2C)1,3,2D)2,3,1
30、有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[3],b;
b=p[5];
b中的值是()
A)5B)6C)8D)9
31、有以下程序
{chara[]="
abcdefg"
b[10]="
%d%d\n"
sizeof(a),sizeof(b));
A)77B)88C)810D)1010
32、有以下程序
voidswap1(intc[])
t=c[0];
c[0]=c[1];
c[1]=t;
voidswap2(intc0,intc1)
t=c0;
c0=c1;
c1=t;
{inta[2]={3,5},b[2]={3,5};
swap1(a);
swap2(b[0],b[1]);
%d%d%d%d\n"
a[0],a[1],b[0],b[1]);
其输出结果是()
A)5353B)5335C)3535D)3553
33、有以下程序
voidsum(int*a)
{a[0]=a[1];
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
i>
=0;
i--)sum(&
aa[i]);
aa[0]);
执行后的输出结果是()
A)4B)3C)2D)1
34、有以下程序
intf(intb[][4])
{inti,j,s=0;
for(j=0;
j<
4;
j++)
{i=j;
if(i>
2)i=3-j;
s+=b[i][j];
returns;
{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
f(a));
A)12B)11C)18D)16
35、有以下定义
#include<
stdio.h>
chara[10],*b=a;
不能给数组a输入字符串的语句是()
A)gets(a)B)gets(a[0])C)gets(&
a[0]);
D)gets(b);
36、有以下程序
{char*p[10]={"
abc"
"
aabdfg"
dcdbe"
abbd"
cd"
};
strlen(p[4]));
A)2B)3C)4D)5
37、有以下程序
inta=2;
intf(int*a)
{return(*a)++;
{ints=0;
{inta=5;
s+=f(&
a);
A)10B)9C)7D)8
38、有以下程序
#definef(x)x*x
{inti;
i=f(4+4)/f(2+2);
i);
A)28B)22C)16D)4
39、设有以下语句
typedefstructS
{intg;
charh;
}T;
则下面叙述中正确的是()
A)可用S定义结构体变量B)可以用T定义结构体变量
C)S是struct类型的变量D)T是structS类型的变量
40、有以下程序
strucSTU{
charname[10];
intnum;
};
voidf1(structSTUc)
{structSTUb={"
LiSiGuo"
2042};
c=b;
voidf2(structSTU*c)
SunDan"
2044};
*c=b;
{structSTUa={"
YangSan"
2041},b={"
WangYin"
2043};
f1(a);
f2(&
b);
a.num,b.num);
A)20412044B)20412043C)20422044D)20422043
41、有以下程序
{unsignedchara,b;
a=4|3;
b=4&
a,b(;
A)70B)07C)11D)430
42、下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
{inti,j;
=4;
{for(j=1;
=4-i;
j++)printf("
"
for(j=1;
=_______;
*"
\n"
在下划线处应填入的是()
A)iB)2*i-1C)2*i+1D)i+2
43、有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;
n-1;
i+=2)
for(j=i+2;
n;
j+=2)
if(a[i]<
a[j]){t=a[i];
a[i]=a[j];
a[j]=t;
main()
sort(aa,10);
i++)printf("
aa[i]);
A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,
C)9,2,7,4,5,6,3,8,1,10,D)1,10,3,8,5,6,7,4,9,2,
44、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()
A)chars[10]="
B)chart[]="
*s=t;
C)chars[10];
s="
D)chars[10];
strcpy(s,"
45、有以下程序
string.h>
main(intargc,char*argv[])
{inti,len=0;
argc;
i+=2)len+=strlen(argv[i]);
5d\n"
len);
}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
exabcdefgh3k44
A)14B)12C)8D)6
46、有以下程序
voidf(inta[],inti,intj)
if(i<
j)
{t=a[i];
a[i]=a[j];
f(a,i+1,j-1);
{inti,aa[5]={1,2,3,4,5};
f(aa,0,4);
%d,"
A)5,4,3,2,1,B)5,2,3,4,1,C)1,2,3,4,5,D)1,2,3,4,5,
47、有以下程序
structSTU
{charname[10];
intScore;
{structSTUs[5]={{"
20041,703},{"
20042,580},
{"
wangYin"
20043,680},{"
20044,550},
Penghua"
20045,537}},*p[5],*t;
inti,j;
i++)p[i]=&
s[i];
for(j=i+1;
if(p[i]->
Score>
p[j]->
Score)
{t=p[i];
p[i]=p[j];
p[j]=t;
5d%d\n"
s[1].Score,p[1]->
Score);
A)550550B)680680C)580550D)580680
48、有以下程序
stdlib.h>
structNODE{
structNODE*next;
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->
num=1;
q->
num=2;
r->
num=3;
next=q;
next=r;
next=NULL;
sum+=q->
next->
num;
sum+=p->
printf("
sum);
执行后的输出结果是
A)3B)4C)5D)6
49、有以下程序
{FILE*fp;
inti,k=0,n=0;
fp=fopen("
d1.dat"
w"
i++)fprintf(fp,"
fclose(fp);
r"
fscanf(fp,"
%d%d"
k,&
n);
k,n);
A)12B)1230C)123D)00
50、有以下程序(提示:
程序中fseek(fp,-2L*sizeof(int),SEEK_END);
语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
inti,a[4]={1,2,3,4},b;
data.dat"
wb"
i++)fwrite(&
a[i],sizeof(int),1,fp);
rb"
);
fseek(fp,-2L*sizeof(int).SEEK_END);
fread(&
b,sizeof(int),1,fp);
/*从文件中读取sizeof(int)字节的数据到变量b中*/
b);
A)2B)1C)4D)3
二、填空题(每空2分,共40分)
1、E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】。
2、计算机网络分为广域网和局域网,因特网属于【2】。
3、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】。
4、在Windows环境下,只要在"
开始"
菜单中单击【4】选项,就可以查阅最近打开过的文档清单。
5、计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5】条指令。
6、已知字符A的ACSII码值为65,以下语句的输出结果是【6】
charch=’B’;
%c%d\n"
ch,ch);
7、有以下语句段
intn1=10,n2=20;
【7】"
n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
8、有以下程序
{intt=1,i=5;
for(;
i--)t*=i;
t);
}执行后输出结果是【8】。
9、有以下程序
{intn=0,m=1,x=2;
if(!
n)x-=1;
if(m)x-=2;
if(x)x-=3;
x);
}执行后输出结果是【9】。
10、有以下程序
{charch1,ch2;
intn1,n2;
ch1=getchar();
ch2=getchar();
n1=ch1-‘0’;
n2=n1*10+(ch2-‘0’);
n2);
}程序运行时输入:
12<
,执行后输出结果是【10】。
11、有以下程序
voidf(inty,int*x)
{y=y+*x;
*x=*x+y;
{intx=2,y=4;
f(y,&
x);
}执行后输出的结果是【11】。
12、函数fun的功能是计算xn
doublefun(doublex,intn)
{inti;
doubley=1;
=n;
i++)y=y*x;
}主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:
m=a4+b4-(a+b)3。
实现这一计算的函数调用语句为【12】。
13、下面rotate函数的功能是:
将n行n列的矩阵A转置为A’,例如:
123415913
5678261014
当A=9101112则A’=371115
13141516481216
请填空
#defineN4
voidrotate(inta[][N])
N;
【13】;
{t=a[i][j];
【14】;
a[j][i]=t;
14、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。
请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【15】);
{charstr1[100],str2