江苏省计算机二级考试真题C++秋.docx
《江苏省计算机二级考试真题C++秋.docx》由会员分享,可在线阅读,更多相关《江苏省计算机二级考试真题C++秋.docx(15页珍藏版)》请在冰豆网上搜索。
江苏省计算机二级考试真题C++秋
第一部分:
计算机基础知识
1.下列关于个人移动通信的叙述中,错误的是__A__
A.第1代个人移动通信(简称1G)采用的通信技术是数字通信技术
B.目前广泛使用的GSM手机采用的通信技术属于第2代移动通信技术(简称2G)
c.第3代移动通信技术(简称3G)将无线通信与互联网、多媒体通信相结合
D.3G有多个国际技术标准,其中也有我国自主制定的3G技术标准。
2.在下列有关集成电路的叙述中,正确的是2。
D
A.现代集成电路所使用的半导体材料都是硅
B.所有的集成电路都是数字集成电路
C.Moore定律认为单块集成电路的集成度平均每年翻一番
D.Intel公司微处理器产品Core2Duo,其集成度已高达数千万个电子元件
3.与十六进制数AB等值的八进制数是3。
A
A.253B.254C.171D.172
4.在下列有关PC机CPU的叙述中,错误的是4B。
A.CPU中包含几十个甚至上百个寄存器,用来临时存放数据、指令和控制信息
B.所有PC机的CPU都具有相同的指令系统,因而PC机可使用相同的软件
C.一台计算机至少包含1个CPU,也可以包含2个、4个、8个甚至更多个CPU
D.Intel公司是国际上研制和生产CPU的主要公司,我国也能生产CPU
5.在下列有关PC机主板上部件的叙述中,错误的是5D。
A.BIOS保存在主板上的一个闪存中,其内容在关机后通常不会改变
B.CMOS中保存有用户设置的开机口令,关机后主板上的电池继续给CMOS供电
C.启动CMOS设置程序可以重新设置CMOS中的数据,该程序是BIOS的组成部分
D.网卡通常集成在主板上,由主板上独立的IC实现其功能,与芯片组无关
6.从PC机存储器的层次结构来看,下列存储器中存取速度最快的是6A。
C
A.Cache存储器B.RAM和ROMC.寄存器D.硬盘和优盘
7.在下列4种PC机常用I/O接口中,数据传输速率最高的是7。
B
A.PS/2B.SATAC.IEEE-1394bD.USB2.0
8.在下列有关I/O操作、I/O总线和I/O接口的叙述中,错误的是8B。
A.I/O操作的任务是在I/O设备与内存的指定区域之间传送信息
B.I/O总线传送的只能是数据信号,它不能传送控制信号和地址信号
C.不同类型的I/O接口,其插头/插座以及相应的通信规程和电气特性通常各不相同
D.并行总线的数据传输速率不一定比串行总线高
9.在下列有关PC机I/0设备的叙述中,错误的是9。
B
A.数码相机的成像芯片可以为CCD器件或CMOS芯片,目前大多数用CCD器件
B.平板式扫描仪的分辨率通常远远高于胶片扫描仪和滚筒式扫描仪
C.常见的宽屏液晶显示器的宽度与高度之比为16:
9(或16:
10)
D.目前在银行、超市等商业部门一般采用针式打印机来打印存折和票据
10.在下列有关计算机软件的叙述中,错误的是10。
D
A.程序设计语言处理系统和数据库管理系统被归类为系统软件
B.共享软件是一种具有版权的软件,它允许用户买前免费试用
C.机器语言和汇编语言与特定的计算机类型有关,取决于CPU
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。
D
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。
C
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。
C
A.内联函数就是定义在另一个函数体内部的函数
B.函数体的最后一条语句必须是return语句
C.c++要求在调用一个函数之前,该函数已定义或已有该函数的原型说明
D.编译器会根据函数的返回值类型区分函数的不同重载形式
22.以下关于c++运算符重载的描述中,正确的是22。
D
A.任何运算符均可重载B.运算符重载可以改变运算符的优先级
C.运算符重载可创造新的运算符D.运算符重载可以改变运算符的功能
23.以下说明语句中,不存在语法错误的是23。
B
A.int10long;B.int_2int;
C.floatX3-Dmax;D.charX.txt[20];
24.以下关于C++函数重载的描述中,正确的是。
C
A.重载函数必须具有不同类型的返回值
B.重载函数的形参个数必须不同
C.重载函数的形参个数不同或形参类型不同
D.重载函数名可以不同
25.以下if语句的表达不正确的是25。
A
A.if(a
C.if(a
=b)a=b;
26.以下关于指针变量的叙述中,不正确的是26。
D
A.指针变量可赋值为0B.指针变量中存放的是地址值
C.指针可以进行加、减等算术运算D.指针变量不占用存储空间
27.以下说明语句中,没有语法错误的是27。
B
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。
C
A.一个类的友元函数要用"friend"说明。
B.友元函数在类体中说明时,不受类中访问权限的限制
C.友元函数的作用域与类中成员函数的作用域相同
D.友元函数体的定义通常放在类定义之外
29.以下关于派生类的叙述中,不正确的是29。
B
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
intx,y;
intf2(inta,intb)
{x=a+b;y=a-b;
cout<<"x="<returnx+y;
}
voidf1(intm,intn)
{intx,y;
x=m+n;y=m-n;
m=f2(x,y);
n=n+m:
cout<<"m="<}
voidmain(void)
{inta=3,b=5;
f1(a,b);
cout<<"a="<cout<<"x="<}
运行程序后输出的第二行是(6),第三行是(7),第四行是(8)。
6.[程序](3分)
#include
intf(int&n,int&m)
{staticintk=10;
n+=m;k+=n;m+=k;
cout<<"k="<return(n+m);
}
voidmain(void)
{inta=3,b=4,k;
k=f(a,b)+f(a,b);
cout<<"k="<}’
运行程序后输出的第一行是(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);
cout<}
voidmain(void)
{f(-234);
cout<<'\n';
f(123);
cout<<'\n';
}
运行程序后输出的第一行是(12),第二行是(13)。
8.[程序](3分)
#include
voidfun(intx[],intn)
{inti,max,min,k,p,t;
for(k=p=0,max=min=x[0],i=1;iif(maxif(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;kvoidmain(void)
{inta[5]={12,16,19,15,11};
fun(a,5);
print(a,5);
}
运行程序后输出的第一行是(14),第三行是(15),第五行是(16)。
9.[程序](2分)
#include
classB{
public:
voidf1(){cout<<"B类中的函数f1\n";}
virtualvoidf2(){cout<<"B类中的函数f2\n";}
};
classD:
publicB{
voidf1(){cout<<"D类中的函数f1\n";}
voidf2(){cout<<"D类中的函数f2\n";}
};
voidmain(void)
{Ba,*p;
Db1;
p=&a;p->f2();
p=&b1;
p->f1();p->f2();
}
运行程序后输出的第二行是(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分)
#include
#defineN20//只要检查数列的前20项,其后各项值均大于720
intsum(imnum[],int&n,int&m)
{ints,i,idx,flag=0;
for(i=0;is=0;n=i;
idx=i;
while(s<720&&idx(19);
if(s==720){//找到符合条件的项,记录位置
(20);
flag=1;
break;
}
}
returnflag;
}
voidmain(void)
{intnum[N],q,a;
inti,m,n;
a=3;q=2;
num[0]=a;
for(i=0;num[i]<720;i++){//初始化等比数列
(21);
num[i+1]=a;
}
if((22)){
cout<<"第"<"<for(;n<=m;n++)cout<cout<<"\n";
elsecout<<"没有满足条件的项!
\n";
}11.以下程序的功能是:
按每一个学生的成绩总分(数学、物理和英语成绩之和)进行排序(降序排序),若总分相同时,再按数学成绩进行降序排序;若总分和数学成绩相同,再按英语成绩进行降序排序。
程序中先输入学生的人数,再依次输入每一个学生的成绩,然后按降序排列后输出结果。
试完善程序。
[程序](4分)
#include
#include
#defineN50
structstu{
charname[10];//学生姓名
intmath;//存放数学成绩
intphy,eng;//物理和英语成绩
intsum;
};
voidinput(stus[],intn)
{
for(inti=O;icout<<"依次输入姓名,数学,物理和英语成绩:
";
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;
for(i=0;ik=i;
for(j=i+1;jif(s[k].sum
elseif((23))k=j;
elseif((24))k=j;
if((25)){
t=s[i];
s[i]=s[k];
s[k]=t;
}
}
}
voidmain(void)
{intn;
stus[N];
cout<<"输入学生的人数:
";
cin>>n;
input(s,n);
(26);
for(inti=0;icout<
<
}
12.下面程序的功能是:
首先,成员函数build()建立一条无序链表,由成员函数Print()输出无序链表中各结点的值;再由成员函数sort()对已建的链表根据链表结点值的大小按升序进行排序,由成员函数print()输出有序链表中各结点的值。
试完善程序。
[程序](4分)
#include
structNode{
doublenum;
Node*next;
};
classChain{
private:
Node*h;
public:
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){
cout<nun<<'\t';
p=p->next;
}
cout<<'\n':
}
};
voidChain:
:
build(void)
{
Node*p,*p1;
doublex;
cout<<"输入一个实数,以0结束:
";
cin>>x;
while(x!
=0){
p=newNode;
P->num=x;
if(h==0)h=p1=p;
else{
p1->next=p;
p1=p;
}
cout<<"输入一个实数,以O结束:
";
cin>>x;
}
p->next=0:
}
voidChain:
:
sort(void)
{
if(h==0)return;
Node*h1,*p;
h1=0;
while(h){
p=h;
(27);
Node*p1,*p2;
if(h1==0){
h1=p;
(28);
}
elseif(h1->num>=p->num){
(29);
h1=p;
}
else{
p2=p1=h1;
while(p2->next&&p2->numnum){
p1=p2;p2=p2->next;
}
if(p2->numnum){
(30);
p->next=0;
}
else{
p->next=p2;p1->next=p;
}
}
}
h=hl;
}
voidmain(void)
{Chainx;
x.build();’
cout<<"排序前的链表为:
";
x.print();
x.sort();
cout<<"\n排序后的链表为:
";
x.print();
}参考答案
一、选择题
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
(24)s[k].sum==s[j].sum&&s[k].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