计算机二级C++上机考试试题及答案.docx
《计算机二级C++上机考试试题及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级C++上机考试试题及答案.docx(16页珍藏版)》请在冰豆网上搜索。
![计算机二级C++上机考试试题及答案.docx](https://file1.bdocx.com/fileroot1/2022-10/28/31e3a9b3-9cc3-468b-a21f-37d1c14582fb/31e3a9b3-9cc3-468b-a21f-37d1c14582fb1.gif)
计算机二级C++上机考试试题及答案
计算机二级C++上机考试试题及答案
2017计算机二级C++上机考试试题及答案
一、选择题(每小题1分,共40小题,共40分)
1.算法的空间复杂度是指()。
A.算法程序的长度
B.算法程序中=的指令条数
C.算法程序所占的存储空间
D.算法执行过程中所需要的存储空间
2.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
3.简单的交换排序方法是()。
A.快速排序
B.选择排序
C.堆排序
D.冒泡排序
4.关于结构化程序设计原则和方法的描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOT0语句
D.语言中若没有控制结构,应该采用前后一致的方法来模拟
5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差
B.安全性差
C.非持久性
D.冗余性
6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.不强调模拟现实世界中的算法而强调概念
7.对如下二叉树进行后序遍历的结果为()。
A.ABCDEF
B.DBEAFC
C.ABDECF
D.DEBFCA
8.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()。
A.模块间的关系
B.系统结构部件转换成软件的过程描述
C.软件层次结构
D.软件开发过程
9.两个或两个以上模块之间关联的紧密程度称为()。
A.耦合度
B.内聚度
C.复杂度
D.数据传输特性
10.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之间的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMS
B.DBMS包含DB和DBS
C.DBS包含DB和DBMS
D.没有任何关系
12.下列合法的声明语句是()。
A.int_abc=50;
B.doubleint=3+5e2.5;
C.longdo=1L:
D.float3_asd=3e-3;
13.设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.x&&Y
B.x<=Y
C.x‖y+z&&y-z
D.!
((x14.若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为()。
ch=’b’;
k=10:
printf("%X,%o,",ch,ch,k);
printf("k=%%d\n",k);
A.因变量类型与与格式描述符的类型不匹配,输出无定值
B.输出项与格式描述符个数不符,输出为0值或不定值
C.62,142,k一%d
D.62,142,k一%l0
15.有下列程序:
、
fun(intX,inty){return(x+y);)
main()
{inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是()。
A.6
B.7
C.8
D.9
16.假定x和Y为double型,则表达式x=2,y—x+3/2的值是()。
A.3.500000
B.3
C.2.000000
D.3.000000
17.有如下程序:
main()
{intx=1,a=0,b=0;
switch(x)
{
case0:
b++;
casel:
a++;
case2:
a++;b++;
)
printf("a=%d,b=%d\n",a,b);
)
该程序的输出结果是()。
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
18.下列程序的输出结果是()。
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3==‖k++==3))
printf("%d%d%d\n",i,J,k);
)
A.123
B.234
C.223
D.233
19.下列程序的输出结果是()。
#include
main()
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:
a+=1;
casel:
case2:
a+=2;
default:
a+=3;
)
printf("%d",i);
)
A.19B.1C.6D.8
20.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0).
printf("%d,i)";
)
)
输出结果是()。
A.28
B.27
C.42
D.41
21.以下程序的输出结果是()。
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);
}
A.18
B.19
C.20
D.21
22.有下列程序:
main()
{intk=5;
while(--k)printf("%d",k=1);
printf("/n");
)
执行后的输出结果是()。
A.1
B.2
C.4
D.死循环
23.若有定义:
“inta[2][3];”,则对a数组的第i行第J列元素的正确引用为()。
A.*(*(a+i)+j)
B.(a+i)[j]
C.*(a+i+j)
D.*(a+i)+j
24.下列能正确进行字符串赋值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={’A’,’B’,’C’,’D’,’E’};、
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
25.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。
structnode
{hardata;
structnode*next;)*P,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。
A.q-:
>next=r->next;p--:
>next=r;rm:
>next=q;
B.q-:
>next=r;q->next=r->next;r->next=q;
C.q-:
>next=r->next;r->next=q;p->next=r;
D.q-:
>next=q;p->next=r;q->next=r->next;
26.有下列程序:
main()
{inti,j,x=0;
for(i=0,i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++:
)
x++:
}
printf("x=%d\n"x);
}
程序执行后的输出结果是()。
A.x=4
B.x=8
C.x=6
D.x=12
27.有下列程序:
intfunl(doublea){returna*=a;}、
intfun2(doublex,doubley)
{doublea=0,b=0;
a=funl(x);b=funl(y);return(int)(a+b);
)
main()
{doublew;w=fun2(1.1,2.0),……}
程序执行后变量w中的值是()。
、
A.5.21B.5C.5.0D.0.0
28.有下列程序:
main()
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。
A.45
B.20
C.25
D.36
29.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入l0,程序的输出结果是()。
A.55
B.54
C.65
D.45
30.有下列程序:
intfun(intx[],intn)
{staticintsum=0,i;
for(i=0;ireturnsum;
}
main()
{inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
程序执行后的输出结果是()。
、
A.45
B.50
C.60
D.55
31.有下列程序:
main()
fchar*P[]={"3697","2584");
inti,j;longnum=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!
=’\0’)
{if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;
j+=2;
)
)
printf("%d\n",num);
)
程序执行后的输出结果是()。
A.35B.37C.39D.3975
32.以下程序的输出结果是()。
main()
{charst[20]="hell0\O\t\\\”;
printf("%d%d\n",strlen(st),sizeof(st));
}
A.99
B.520
C.1320
D.2020
33.若有下的定义:
"intt[3][2];",能正确表示t数组元素地址的表达式是()。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
34.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是()。
A.文件开始
B.文件末尾
C.文件当前位置
D.以上都不对
35.下述程序的输出结果是()。
#include
main()
{inti;
for(i=1;i<=10;i++)
{if(i*i>=20)&&(i*i<=lOO))
break;
}
printf("%d\n",i*i);
)
A.49
B.36
C.25
D.64
36.若有定义“intb[8],*p=b;”,则p+6表示()。
A.数组元素b[6]的值
B.数组元素b[6]的地址
C.数组元素b[7]的地址
D.数组元素b[0]的值加上6
37.设变量已正确定义,则以下能正确计算f=n!
的程序是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;iC.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)