全国计算机等级考试二级C++笔试试题Word格式文档下载.docx
《全国计算机等级考试二级C++笔试试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C++笔试试题Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。
![全国计算机等级考试二级C++笔试试题Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/2f15ea6e-6b92-4593-836f-edb862bfae79/2f15ea6e-6b92-4593-836f-edb862bfae791.gif)
11.一个算法应该具有"
确定性"
等5个特性,下面对另外4个特性的描述中错误的是
A)有零个或多个输入
B)有零个或多个输出
C)有穷性
D)可行性
12.以下叙述中正确的是
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
13.以下符合C语言语法的实型常量是
A)1.2E0.5
B)3.14.159E
C)5E-3
D)E15
14.以下4组用户定义标识符中,全部合法的一组是
A)_mainencludesin
B)If-maxturbo
C)txtREAL3COM
D)intk_2_001
15.若以下选项中的变量已正确定义,则正确的赋值语句是
A)x1=26.8%3
B)1+2=x2
C)x3=0x12
D)x4=1+2=3;
16.设有以下定义
inta=0;
doubleb=1.25;
charc=’A’;
#defined2
则下面语句中错误的是
A)a++;
B)b++;
C)c++;
D)d++;
17.设有定义:
floata=2,b=4,h=3;
以下C语言表达式与代数式计算结果不相符的是
A)(a+B)*h/2
B)(1/2)*(a+B)*h
C)(a+B)*h*1/2
D)h/2*(a+B)
18.有以下程序
main(){
intx=102,y=012;
printf("
-,-\n"
x,y);
}
执行后输出结果是
A)10,01
B)02,12
C)102,10
D)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=1elsek=0;
C)if(a<
=B)k=0;
D)if(a>
B)k=1;
elseif(b<
=C)k=1;
elseif(b>
C)k=1;
elsek=0;
22.有以下程序
chark;
intI;
for(i=1;
i<
3;
i++){
scanf("
%c"
k);
switch(k){
case’0’:
printf("
another\n"
);
case’1’:
number\n"
} }
程序运行时,从键盘输入:
01<
回车>
,程序执行后的输出结果是
A)anothernumber
B)anothernumber
C)anothernumberanother
D)numbernumbernumber
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,0
B)3,2,-1
C)4,3,-1
D)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++;
}
n=%d\n"
n);
A)n=5
B)n=2
C)n=3
D)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)
RETURN
X;
returny;
inta=’9’,b=’8’,c=’7’;
%c\n"
fun(fun(a,B),fun(b,C)));
程序的执行结果是
A)函数调用出错
B)8
C)9
D)7<
/Y)
>
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);
elseif(x,z);
A)1,2,3
B)3,1,2
C)1,3,2
D)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)5
B)6
C)8
D)9
31.有以下程序
chara[]="
abcdefg"
b[10]="
;
%d%d\n"
sizeof(A),sizeof(B));
A)77
B)88
C)810
D)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)5353
B)5335
C)3535
D)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)4
B)3
C)2
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)12
B)11
C)18
D)16
35.有以下定义
#include
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)2
B)3
C)4
D)5
37.有以下程序
inta=2;
intf(int*A){return(*A)++;
ints=0;
{
inta=5;
s+=f(&
A);
printf("
A)10
B)9
C)7
D)8
38.有以下程序
#definef(x)x*x
inti;
i=f(4+4)/f(2+2);
i);
A)28
B)22
C)16
D)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)20412044
B)20412043
C)20422044
D)20422043
41.有以下程序
unsignedchara,b;
a=4|3;
b=4&
a,b);
A)70
B)07
C)11
D)430
42.下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
inti,j;
=4;
for(j=1;
=4-i;
j++)printf("
"
=_______;
*"
printf("
\n"
在下划线处应填入的是
A)i
B)2*i-1
C)2*i+1
D)i+2
43.有以下程序
voidsort(inta[],intn){
inti,j,t;
for(i=0;
i
for(j=i+2;
j
if(a[i]<
A[J]){
T=A[I];
A[I]=A[J];
A[J]=T;
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,<
/A[J]){
}>
44.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A)chars[10]="
B)chart[]="
*s=t;
C)chars[10];
s="
D)chars[10];
strcpy(s,"
45.有以下程序
main(intargc,char*argv[]){
inti,len=0;
5d\n"
len);
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
exabcdefgh3k44
A)14
B)12
C)8
D)6
46.有以下程序
voidf(inta[],inti,intj){
if(i
t=a[i];
a[i]=a[j];
a[j]=t;
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{
intScore;
structSTUs[5]={{"
20041,703},{"
20042,580},{"
wangYin"
20043,680},{"
20044,550},
{"
Penghua"
20045,537}},*p[5],*t;
i++)p[i]=&
s[i];
i++)
for(j=i+1;
j++)
if(p[i]->
Score>
p[j]->
Score){t=p[i];
p[i]=p[j];
p[j]=t;
printf("
5d%d\n"
s[1].Score,p[1]->
Score);
A)550550
B)680680
C)580550
D)580680
48.有以下程序
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->
sum);
A)3
B)4
C)5
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)12
B)1230
C)123
D)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)2
B)1
D)3
二、填空题(每空2分,共40分)
请将每一个空的正确答案写在括号中。
1.E-mail地址由用户名和域名两部分组成,这两部分的分隔符为。
2.计算机网络分为广域网和局域网,因特网属于。
3.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为。
4.在Windows环境下,只要在"
开始"
菜单中单击选项,就可以查阅最近打开过的文档清单。
5.计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行条指令。
6.已知字符A的ACSII码值为65,以下语句的输出结果是
charch=’B’;
%c%d\n"
ch,ch);
7.有以下语句段
intn1=10,n2=20;
"
n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
8.有以下程序
intt=1,i=5;
for(;
i--)t*=i;
t);
执行后输出结果是。
9.有以下程序
intn=0,m=1,x=2;
if(!
n)x-=1;
if(m)x-=2;
if(x)x-=3;
x);
10.有以下程序