江苏省计算机二级考试真题C++秋文档格式.docx
《江苏省计算机二级考试真题C++秋文档格式.docx》由会员分享,可在线阅读,更多相关《江苏省计算机二级考试真题C++秋文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
D.目前PC机只能使用Windows系列操作系统,均不能使用UNIX和Linux操作系统
11.在下列常用的PC机软件中,编辑的文档(内容)能直接保存为图片类型(例如JPEG文件类型)的是11。
DC
A.MicrosoftWordB.MicrosoftExcel
C.MicrosoftPowerPointD.MicrosoftFrontPage
12.在下列关于以太网(局域网)的叙述中,错误的是12。
AB
A.在共享式以太网中,任何时间只允许一对计算机进行通信
B.在交换式以太网中,每台计算机均独享相同的带宽,其带宽仅由交换机决定
c.无论是共享式以太网还是交换式以太网,网络中的所有计算机都要安装以太网网卡
D.无论是共享式以太网还是交换式以太网,它们的数据帧和MAC地址格式均相同
13.连接在因特网上的每一台主机都有一个IP地址。
下面不能作为IP地址的是13A。
A.211.256.49.68B.21.18.33.48C.120.34.0.18D.37.251.68.0
14.为了将异构的计算机网络互相连接起来,必须使用的网络设备是14。
A.调制解调器B.以太网集线器c.以太网交换机D.路由器
15.下列网络协议中,与发送电子邮件有关的是15。
BC
A.HttpB.FTPC.SMTPD.TELNET
16.在下列有关字符集及其编码的叙述中,错误的是16D。
A.基本的ASCII字符集共有128个字符,每个字符使用7个二进位进行编码
B.GB2312字符集中收录了6千多个汉字,每个字符在机内通常使用双字节编码
C.GBK字符集中的字符也采用双字节编码,且该字符集收录了部分繁体汉字
D.GB18030字符集中所有的字符均采用4字节编码,因此该字符集的代码空间很大
17.目前数码相机拍摄的照片在保存时通常采用的文件类型是17。
A.BMPB.GIFC.JPEGD.TIF
18.MP3是数字波形声音的一种压缩编码文件格式,它采用的压缩编码标准属于18CA。
A.MPEG-1B.MPEG-2C.MPEG-4D.DolbvAC-3
19.使用Macromedia公司的Flash软件制作的动画是一种矢量图形,在保存为动画文件
时其文件扩展名通常为19。
DB
A.GIFB.SWFC.AVID.MPG。
20.在计算机应用中,CAD和CAM是典型的信息系统。
它们属于20B。
A.管理业务系统B.辅助技术系统
c.信息检索系统D.信息分析系统
第二部分VisualC++程序设计
一、选择题(用答题卡答题,答案依次填在21--30答题号内)
21.以下关于C++函数的描述中,正确的是21。
A.内联函数就是定义在另一个函数体内部的函数
B.函数体的最后一条语句必须是return语句
C.c++要求在调用一个函数之前,该函数已定义或已有该函数的原型说明
D.编译器会根据函数的返回值类型区分函数的不同重载形式
22.以下关于c++运算符重载的描述中,正确的是22。
A.任何运算符均可重载B.运算符重载可以改变运算符的优先级
C.运算符重载可创造新的运算符D.运算符重载可以改变运算符的功能
23.以下说明语句中,不存在语法错误的是23。
A.int10long;
B.int_2int;
C.floatX3-Dmax;
D.charX.txt[20];
24.以下关于C++函数重载的描述中,正确的是。
A.重载函数必须具有不同类型的返回值
B.重载函数的形参个数必须不同
C.重载函数的形参个数不同或形参类型不同
D.重载函数名可以不同
25.以下if语句的表达不正确的是25。
A.if(a<
b)a=0,elseb=0;
B.if(a==b)a=0,b++;
C.if(a<
b);
D.if(a!
=b)a=b;
26.以下关于指针变量的叙述中,不正确的是26。
A.指针变量可赋值为0B.指针变量中存放的是地址值
C.指针可以进行加、减等算术运算D.指针变量不占用存储空间
27.以下说明语句中,没有语法错误的是27。
A.inta,*pa=&
a,*pb=*pa;
B.intaa,&
b=aa,*pc=&
b;
C.intc[10],&
pc=c;
D.intdd,&
u=&
dd,*v=u;
28.以下关于类的友元函数的描述中,不正确的是28。
A.一个类的友元函数要用"
friend"
说明。
B.友元函数在类体中说明时,不受类中访问权限的限制
C.友元函数的作用域与类中成员函数的作用域相同
D.友元函数体的定义通常放在类定义之外
29.以下关于派生类的叙述中,不正确的是29。
A.公有派生时基类中的public成员在派生类中仍是public成员
B.私有派生时基类中的protected成员在派生类中仍是protected成员
C.私有派生时基类中的public成员在派生类中改变成private成员
D.保护派生时基类中的public成员在派生类中改变成protected成员
30.以下关于纯虚函数的叙述中,不正确的是30。
DA
A.纯虚函数定义时要定义函数体
B.纯虚函数的说明以"
=0;
"
结束
C.派生类中最终要定义纯虚函数的函数体
D.含纯虚函数的类不能定义其对象
二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)
●基本概念题,共5分
1.在定义一个类时,如果仅定义了数据成员,而没有定义成员函数,则由系统自动生成的
缺省成员函数包括:
(1)、
(2)、重载赋值运算符和拷贝构造函数。
2.如果使用数组名作为函数的实参,则形参与实参结合时,传递的是(3)。
3.C++中,编译时的多态性是通过程序设计中使用(4)来实现的。
4.程序中使用new运算符动态分配的内存空间,必须用(5)来释放。
●阅读程序题,共13分
5.[程序](3分)
#include<
iostream.h>
intx,y;
intf2(inta,intb)
{x=a+b;
y=a-b;
cout<
<
x="
x<
\t"
y="
y<
endl;
returnx+y;
}
voidf1(intm,intn)
{intx,y;
x=m+n;
y=m-n;
m=f2(x,y);
n=n+m:
m="
m<
n="
n<
}
voidmain(void)
{inta=3,b=5;
f1(a,b);
a="
a<
b="
b<
运行程序后输出的第二行是(6),第三行是(7),第四行是(8)。
6.[程序](3分)
intf(int&
n,int&
m)
{staticintk=10;
n+=m;
k+=n;
m+=k;
k="
k<
endl:
return(n+m);
{inta=3,b=4,k;
k=f(a,b)+f(a,b);
'
\t’<
\t'
}’
运行程序后输出的第一行是(9),第二行是(10),第三行是(11)
7.[程序](2分)
#include<
voidf(intx)
{intt;
if(x<
0){cout<
-"
;
x=-x;
t=x%10;
X=x/lO;
if(x!
=0)f(x);
t;
{f(-234);
\n'
f(123);
运行程序后输出的第一行是(12),第二行是(13)。
8.[程序](3分)
voidfun(intx[],intn)
{inti,max,min,k,p,t;
for(k=p=0,max=min=x[0],i=1;
i<
n;
i++){
if(max<
x[i])max=x[i],k=i;
if(min>
x[i])min=x[i],p=i;
t=x[0];
x[0]=x[p];
x[p]=t;
if(k==0)k=p;
t=x[n-1];
x[n-1]=x[k];
x[k]=t;
voidprint(int*x,intn)
{for(intk=0;
k++)cout<
x[k]<
{inta[5]={12,16,19,15,11};
fun(a,5);
print(a,5);
运行程序后输出的第一行是(14),第三行是(15),第五行是(16)。
9.[程序](2分)
classB{
public:
voidf1(){cout<
B类中的函数f1\n"
virtualvoidf2(){cout<
B类中的函数f2\n"
};
classD:
publicB{
D类中的函数f1\n"
voidf2(){cout<
D类中的函数f2\n"
{Ba,*p;
Db1;
p=&
a;
p->
f2();
b1;
p->
f1();
运行程序后输出的第二行是(17),第三行是(18)。
完善程序题,共12分
10以下程序的功能是:
首先初始化一个等比数列,改数列的首项为3,公比为2,直到某以下程序的功能是:
首先初始化一个等比数列,该数列的再坝力j,公比刀z,且到禾一项的数值大于720为止;
然后基于此等比数列计算满足条件的n值和m值,使得从第n项
到第m项的和为720(和值包含第n项及第m项)。
试完善程序等比数列的定义:
数列的第0项为一个初值,从数列的第1项起,每一项与它的前一项的比等于一个常数,这种数列称为等比数列。
该常数称为等比数列的公比。
等比数列表
示为:
A0=a,A1=A0*q,......,An=An-1-1*q;
其中a,q均为常数,且q!
=0。
[程序](4分)
#defineN20//只要检查数列的前20项,其后各项值均大于720
intsum(imnum[],int&
{ints,i,idx,flag=0;
for(i=0;
N;
s=0;
n=i;
idx=i;
while(s<
720&
&
idx<
N)
(19);
if(s==720){//找到符合条件的项,记录位置
(20);
flag=1;
break;
returnflag;
{intnum[N],q,a;
inti,m,n;
a=3;
q=2;
num[0]=a;
num[i]<
720;
i++){//初始化等比数列
(21);
num[i+1]=a;
if((22)){
第"
项--第"
项的和是720:
for(;
=m;
n++)cout<
nun[n]<
\n"
elsecout<
没有满足条件的项!
}11.以下程序的功能是:
按每一个学生的成绩总分(数学、物理和英语成绩之和)进行排序(降序排序),若总分相同时,再按数学成绩进行降序排序;
若总分和数学成绩相同,再按英语成绩进行降序排序。
程序中先输入学生的人数,再依次输入每一个学生的成绩,然后按降序排列后输出结果。
试完善程序。
string.h>
#defineN50
structstu{
charname[10];
//学生姓名
intmath;
//存放数学成绩
intphy,eng;
//物理和英语成绩
intsum;
voidinput(stus[],intn)
{
for(inti=O;
依次输入姓名,数学,物理和英语成绩:
cin>
>
s[i].name>
s[i].math>
s[i].phy>
s[i].eng;
s[i].sum=s[i].math+s[i].phy+s[i].eng;
voidsort(stus[],intn)
inti,j,k;
stut;
n-1;
i++){//降序排序
k=i;
for(j=i+1;
j<
j++)
if(s[k].sum<
s[j].sum)k=j;
elseif((23))k=j;
elseif((24))k=j;
if((25)){
t=s[i];
s[i]=s[k];
s[k]=t;
{intn;
stus[N];
输入学生的人数:
input(s,n);
(26);
for(inti=0;
i++)
s[i].name<
s[i].sum<
s[i].math<
s[i].phy<
s[i].eng<
12.下面程序的功能是:
首先,成员函数build()建立一条无序链表,由成员函数Print()输出无序链表中各结点的值;
再由成员函数sort()对已建的链表根据链表结点值的大小按升序进行排序,由成员函数print()输出有序链表中各结点的值。
structNode{
doublenum;
Node*next;
classChain{
private:
Node*h;
voidsort(void);
Chain(){h=0;
~Chain()
Node*p;
while(h){
p=h;
h=h->
next;
deletep;
voidbuild(void);
voidprint(void)
Node*p=h;
while(p){
nun<
p=p->
:
voidChain:
:
build(void)
Node*p,*p1;
doublex;
输入一个实数,以0结束:
x;
while(x!
=0){
p=newNode;
P->
num=x;
if(h==0)h=p1=p;
else{
p1->
next=p;
p1=p;
输入一个实数,以O结束:
next=0:
sort(void)
if(h==0)return;
Node*h1,*p;
h1=0;
(27);
Node*p1,*p2;
if(h1==0){
h1=p;
(28);
elseif(h1->
num>
=p->
num){
(29);
p2=p1=h1;
while(p2->
next&
p2->
num<
p1=p2;
p2=p2->
if(p2->
(30);
next=0;
else{
next=p2;
h=hl;
{Chainx;
x.build();
’
排序前的链表为:
x.print();
x.sort();
\n排序后的链表为:
}参考答案
一、选择题
1.A2.D3.A4.B5.D6.C7.B8.B9.B10.D11.C12.B13.A14.D
15.C16.D17.C18.A19.B20.B
21.C22.D23.B24.C25.A26.D27.B28.C29.B30.A
二、填空题
(1)构造函数(或析构函数)
(2)析构函数(或构造函数)
(3)数组所代表的地址或地址或数组名
(4)函数重载或运算符重载(5)delete或delete运算符(6)m=16n=21
(7)a=3b=5(8)x=6y=10(9)k=17
(10)k=45(11)k=122a=28b=66(12)-234
(13)123(14)11(15)12
(16)19(17)B类中的函数f1(18)D类中的函数f2
(19)s+=num[idx++](20)m=idx-1或m=--idx(21)a=a*q或a=a*2
(22)sum(num,n,m)或sum(num,n,m)==1
(23)s[k].sum==s[j].sum&
s[k].math<
s[j].math
(24)s[k].sum==s[j].sum&
s[k].eng<
s[j].eng
(25)i!
=k
(26)sort(s,n)
(27)h=h->
next或h=p->
next
(28)p->
next=0或h1->
next=O或p->
next=NULL或hl->
next=NULL
(29)p->
next=h1
(30)p2->
next=p