计算机等级考试vc++秋附答案.docx
《计算机等级考试vc++秋附答案.docx》由会员分享,可在线阅读,更多相关《计算机等级考试vc++秋附答案.docx(20页珍藏版)》请在冰豆网上搜索。
计算机等级考试vc++秋附答案
2010秋江苏省二级C++考试真题
绝密★启用前
2010年秋
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试
二级试卷
试卷语种:
C++语言
说明:
1.本试卷包括计算机基础知识部分和程序设计部分,考试时间共120分钟;
2.本试卷满分为60分,分选择题和填空题,试卷不分A、B类型;
3.计算机基础知识部分全部是选择题(20分),程序设计部分分为选择题(10
分)和填空题(30分)两种;
4.选择题用答题卡答题。
每一项有A、B、C、D四个可供选择的答案,请选
择其中一个你认为正确的答案,用HB铅笔涂写在答题卡的相应答题号内。
每选对一项得1分,不选或选错不得分;
5.填空题用答题纸答题。
请将答案用蓝、黑色钢笔或圆珠笔填写在答题纸的
相应答题号内,每个答案只占一行,不得换行。
每填对一个答案得1分,
不填或填错不得分;
6.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是
否填写正确。
7.考试结束时将试卷、答题卡和答题纸放在桌上,不得带走。
待监考人员收
毕清点后,方可离场。
第一部分计算机基础知识
1.微电子技术是信息技术领域中的关键技术,它以集成电路为核心.下列有关集成电路的叙述中,错误的是___
(1)___
A.现代集成电路使用的半导体材料只能是硅(Si),不能使用其它任何半导体材料
B.集成度是指集成电路包含的电子元件数目,可分为SSI、MSI、VLSI等
C.Moore定律指出,单块集成电路的集成度平均18--24个月翻一番
D.我国第二代身份证中嵌入了集成电路芯片,可以实现电子防伪和数字管理功能
2.数据传输速率是数据通信中重要的性能指标。
Gb/s是数据传输速率的计量单位之一,其正确含义是___
(2)___。
A.每秒兆位
B.每秒千兆位
C.每秒百兆位
D.每秒百万位
3.所谓"变号操作"是指将一个整数变成绝对值相同但符号相反的另一个整数。
假设使用补码表示的8位整数x=10010101,则经过变号操作后结果为___(3)___.
A.01101010
B.00010101
C.11101010
D.01101011
4.下列有关PC机主板的叙述中,错误的是___(4)___。
A.主板的物理尺寸没有标准,各厂家均可自行定义
B.主板上包含芯片组,它是PC机各组成部分相互连接和通信的枢纽
C.主板上包含BIOS和CMOS芯片
D.主板上包含CPU插座、内存条插槽及其它类型的插槽
5.下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,正确的是__(5)____.
A.PC机所采用的CPU都是Intel公司生产的Pentium系列芯片,其它厂商生产的
CPU都与之不兼容
B.目前已有双核的微处理器(例如Core2Duo),但还没有四核的微处理器
c.通常来说,DRAM的速度比SRAM的存取速度慢
D.一般来说,一个内存条上仅有一个DRAM或SRAM芯片
6.下列有关PC机I/O总线与I/O接口的叙述中,错误的是__(6)____.
A.目前PC机中协调与管理总线操作的总线控制器包含在主板上的芯片组中
B.总线最重要的性能是数据传输速率,其单位通常为MB/s或GB/s
C.SATA接口的数据传输速率通常低于USB2.0的数据传输速率
D.USB连接器有4个引脚,其中一个引脚连接+5V电源
7.下列有关PC机常用I/O设备的叙述中,错误的是__(7)____。
A.目前台式机键盘通常有一百零几个按键,笔记本电脑的键盘有八十几个按键
B.目前流行的鼠标是光电鼠标,其与主机的接口有PS/2与USB两种
C.宽屏LCD显示器的宽高比为16:
9或16:
10
D.打印速度是打印机的重要性能指标,速度单位通常为dpi
8.下列有关PC机外存储器的叙述中,错误的是___(8)___。
A.目前硬盘的盘片大多为3.5、2.5或1.8英寸,一个硬盘中可有一个或多个盘片
B.目前有些u盘可以模拟硬盘和光盘存储器启动操作系统
C.目前光盘存储器主要分为CD、DVD和BD三种,它们均采用红外激光进行读写
D.目前光驱的速率通常用多少倍速表示
9.下列有关计算机软件的叙述中,错误的是___(9)___.
A.软件一般是指程序及其相关的数据和文档资料
B.从软件的用途考虑,软件可以分为系统软件和应用软件,主要的系统软件有操作系统、语言处理系统和数据库管理系统等。
C.从软件的权益来考虑,软件可以分为商品软件、共享软件和自由软件,共享软件和自由软件均为无版权的免费软件
D.Linux是一种系统软件、自由软件
10.到目前以止,Windows系列操作系统已推出多个版本。
在下列版本中,最新的Windows
版本是___(10)___
A.Windows7B.WindowsMeC.WindowsXPD.WindowsVista
11.下列有关WindowsXP操作系统功能的叙述中,错误的是___(11)___.
A.系统通过"时间片”轮转策略支持多任务处理
B.系统利用SPOOLing技术进行存储管理
C.在设备管理中引入了缓冲技术,以减少I/O操作的等待时间
D.系统支持PnP功能,并按ACPI标准进行电源管理
12.在因特网中某台主机的IP地址为20.25.30.8,子网掩码为255.255.255.0,那么该主机
的主机号为___(12)___。
A.20B.25C.30D.8
13.局域网中需要传输的数据必须预先组织成若干数据帧,每一数据帧的格式如下图所示:
上图中最末部分"?
”表示的是___(13)___。
发送计算机地址
目的计算机地址
编号
有效载荷
?
A.协议信息
B.校验信息
C.冗余信息
D.结束标志
14.目前网络用户接入因特网有多种方式,例如ADSL、HFC等。
通过HFC接入因特网时采用的网络是___(14)____。
A.有线电话网B.有线电视网C.无线局域网D.移动电话网
15.下列网络协议中,直接与电子邮件传输相关的网络协议是___(15)___。
A.FTPB.SMTPC.TELNETD.NNTP
16.下列有关计算机中文本与文本处理的叙述中,错误的是___(16)____
A.西文字符主要是采用ASCII字符集,基本ASCII字符集共有256个字符
B.我国最早采用的汉字字符集是GB2312,包含6000多个汉字和若干个非汉字字符
C.无论采用何种方式输入汉字,在计算机中保存时均采用统一的汉字内码
D.简单文本和丰富格式文本中字符信息的表示相同,区别在于格式信息的表示
17.彩色图像所使用的颜色描述方法称为颜色模型(即颜色空间)。
下列四种颜色模型中,
彩色喷墨打印机使用的是___(17)___.
A.RGBB.HSBC.YUVD.CMYK
18.文件的扩展名用于标记文件的类型,用户应该尽可能多地知晓各类文件的扩展名,下
列文件中,属于数字声音的文件是______
A.ABC.RM
B.ABC.WMA
C.ABC.MKV
D.ABC.SWF
19.信息系统软件开发瀑布模型包括系统规划、系统分析、系统设计、系统实施和系统维
护等几个阶段。
下面各项工作中,属于系统实施阶段的是___(19)___
A.问题定义
B.可行性研究
C.系统测试
D.绘制E-R图
20.下列有关MicmsoftWord2003和MicrosoftExcel2003软件的叙述中,错误的是___(20)___
A.利用Word软件编辑文档,可以将其保存为TXT、DOC、RTF和HTM格式文件
B.利用Word软件编辑文档时,可以统计选定文本的字符数
C.在Excel软件中,可以打开(导入)TXT、DBF、HTML格式的文件(数据)
D.Excel文件可以设置打开权限密码,但不可以单独设置修改权限密码
第二部分C++语言程序设计
一、选择题(用答题卡答题,答案依次填在21--30答题号内)
21.对于for和do…while循环语句,以下描述正确的是___(21)___。
A.for语句中的循环体至少执行一次B.两个语句中的循环体可能都不执行
C.do...while语句中的循环体至少执行一次D.两个语句中的循环体至少执行一次
22.设有说明语句;inthh[4]={2,3,4},*p=hh;则以下选项中存在语法错误的是___(22)___
A.p++;B.hh++;C.(*p)++;D.(*hh)++
23.以下说明语句中,不存在语法错误的是___(23)___。
A.ints=26,this=30;B.int_s1=25,-s2=100;
C.intn;cin>>n;intarr[n];D.charstr[]={"Iamastudent"};
24.设有语句;inta=10,b=20,c=30;则执行语句;cout<<(a,b,c);其输出结果是___(24)___
A.10B.20C.30D.10,20,30
25.以下关于运算符重载的叙述中,正确的是___(25)___。
A.c++已有的任何运算符都可以重载B.可以重载C++中没有的运算符
C.运算符重载时可改变其优先级D.运算符重载时可改变其实现的功能
26.设有函数原型说明;float*f(int,float);,则函数f的返回值为___(26)___.
A.一个实数B.指向一个实数的指针C.该函数的地址D.指向一个函数的指针
27.下列有关构造函数的叙述中,不正确的是___(27)___.
A.可以定义没有构造函数的类B.任何一个类必定有构造函数
C.类的构造函数可以重载D.构造函数没有返回值
28.下列有关类成员的叙述中,不正确的是___(28)___。
A.当不指定类成员的访问权限时则为私有成员B.友元函数可访问类中的任一成员
C.指定为public的成员不允许在类外访问D.成员函数可访问类中的任一成员
29.以下关于类和对象的叙述中,不正确的是___(29)___.
A.不同的类可以产生相同类型的对象B.类是一种类型,它定义了数据和操作
C.对象是类的实例D.任一对象必属于某一个类
30.以下关于指针运算的叙述中,不正确的是___(30)___
A.可以将NULL赋给任一指针变量
B.两个同类型的指针变量可进行相等或不等的比较运算
C.指针变量的值加上整常数n,可使该指针指向当前元素后的第n个元素
D-指向同一数组的两个指针变量,在任何情况下,两指针变量相减都是无意义的
二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)
●基本概念题,共5分
1.每一个类均有构造函数和析构函数,这两个函数中不可以定义为虚函数的是___
(1)___
2.定义了宏;#defineF(x,y,z)x/y*z
执行语句;b=F(3+4,2+2,4+4);后变量b的值为___
(2)___
3.函数重载和运算符重载实现的多态性属于___(3)___多态性.
4.为使函数不返回任何值,定义函数时应在函数名前加保留字(关键字)___(4)___.
5.C++存储类型的四种说明符分别是;auto,static,extern和___(5)___。
●阅读程序题,共13分
6.[程序](2分)
#include
voidmain(void)
{
intc2,c3,c5,m=20;
c2=c3=c5=0;
for(inti=1;i<=m;i++){
if(i==15||i==14)continue;
if(i%2==0)c2++;
if(i%3==0)c3++;
if(i%7==0)c5++;
}
cout<}
执行程序后输出的第一行是___(6)___,第三行是___(7)___
7.[程序](2分)
#include
intf(inta,int&b,int*c)
{
a+=b;b+=*c;*c+=a;
return(a+b+*c);
}
voidmain(void)
{
intx=5,y=5,z=6,sum;
for(inti=0;i<2;i++){
sum=f(x,y,&z);
cout<}
}
执行程序后输出的第一行是___(8)___,第二行是___(9)___。
8.[程序](2分)
#include
voidf(ints[],int*y)
{
staticintt=3;
*y=s[t];
s[t]*=2;
t--;
}
voidmain(void)
{
inta[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++){
f(a,&x);
cout<}
for(i=0;i<4;i++)cout<cout<<'\n';
}
执行程序后输出的第二行为___(10)___,最后一行为___(11)___。
9.[程序](3分)
#include
voidf(intx,inty)
{
charres[10]={0};
inti=0,rem;
do{
rem=x%y;
x=x/y;
if(rem<10)res[i]='0'+rem;elseres[i]='A'+rem-10;
i++;
}while(x!
=0);
i--;
for(;i>=0;i--)cout<cout<}
voidmain(void)
{
f(23,10);
f(45,8);
f(50,16);
}
执行程序后输出的第一行是___(12)___,第二行是___(13)___,第三行是___(14)___.
10.[程序](2分)
#include
charst[]="Yourfriend!
";
voidf2(int);
voidf1(inti)
{
cout<<(st+i)<if(i<3){
i+=2;
f2(i);
}
}
voidf2(inti)
{
cout<if(i<3){
i+=2;
f1(i);
}
}
voidmain(void)
{
inti=0;
f1(i);
}
执行程序后输出的第一行是___(15)___,第二行是___(16)___.
11.[程序](2分)
#include
classA{
public:
A(char*s){cout<
A(){};
};
classB:
publicA{//L1
public:
B(char*s1,char*s2):
A(s1)
{cout<};
classC:
publicA{//L2
public:
C(char*s1,char*s2):
A(s1)
{cout<};
classD:
publicB,publicC{
public:
D(char*s1,char*s2,char*s3,char*s4):
B(s1,s2),C(s1,s3)
{cout<};
voidmain(void)
{
D*ptr=newD("students","study","C++","hard");
deleteptr;
}
执行程序后共输出___(17)___行.
若分别将L1行改为;classB:
virtualpublicA{//L1
L2行改为:
classC:
virtualpublicA{//L2
则执行程序后共输出___(18)___行。
●完善程序题,共12分
12.以下程序的功能是;从键盘上输入一个大于等于3的整数,将其分解为质因子的乘积并输
出.例如,输入50时,则输出;50;2*5*5;输入45时,则输出;45=3*3*5;输入37时.则出;37=37.
[程序](4分)
#include
intprime(intx)//求大于x的最小质数(素数)
{
intflag=1;
x++;
while(___(19)___){
inti=2;
while(iif(___(20)___)break;
i++;
}
if(i}
returnx;
}
voidf(intn)//将n分解为若干个质数之积
{
intflag=1;
inti=2;//保证i为质数
do{
while(___(21)___){
if(flag==1){
cout<
flag=0;
}
elsecout<<'*'<
n=n/i;
}
___(22)___
}while(iif(n!
=1)
if(flag==1)cout<}
voidmain(void)
{
intx;
do{
cout<<"请输入一个整数,若小于3则重输;";
cin>>x;
}while(x<3);
cout<f(x);
cout<}
13.以下程序的功能是:
实现两个字符串拼接,函数strcat(char*s1,char*s2)先将s1所指向的字符串拷贝到s所指向的动态申请的存储空间,接着将s2所指向的字符串拼接s所指向的字符串后面,函数返回拼接后的字符串。
[程序](4分)
#include
char*strcat(char*s1,char*s2)
{
char*s,*p,*q;
intlen1=0,len2=0;
p=s1;
while(*p!
='\0'){
len1++;
p++;
}
p=s2;
while(*p!
='\0'){
len2++;
p++;
}
s=q=___(23)___;
p=s1;
for(inti=0;ip=s2;
while(___(24)___);
___(25)___;
}
voidmain(void)
{
chars1[]="visual";
chars2[]="isesay";
char*s;
s=___(26)___;
cout<
delete[]s;
}
14.下面程序的功能是;将两个有序链表(降序排序)合并为一个有序链表,函数merge(node*h1,node*h2)将由h1和h2分别指向的己排序的两个链表,合并为一个依然有序的链表。
注意;对于数据大小相同的结点,都要保留在合并后的链表上。
主函数产生两条已降序排序的链表,并输出合并后链表上的数据值。
.
例如,原链表上各结点的数据依次为;
h1:
15,9,8,7,3
h2:
15,12,10,7,3,2
合并后得到的新链表为;15,15,12,10,9,8,7,7,3,3,2
【程序](4分)
#include
structnode{
intdata;
node*next;
};
node*merge(node*h1,node*h2)
{
if(h1==NULL)returnh2;
if(h2==NULL)returnh1;
node*h=NULL;
if(___(27)___){
h=h1;
h1=h1->next;
}
else{
h=h2;
h2=h2->next;
}
node*p=h;
while(___(28)___){
if(h1->data>=h2->data){
p->next=h1;
p=h1;
h1=h1->next;
}
else{
p->next=h2;
p=h2;
h2=h2->next;
}
}
if(h1!
=NULL)___(29)___;
else
if(h2!
=NULL)p->next=h2;
returnh;
}
voidmain(void)
{
nodea[5]={{15},{9},{8},{7},{3}};
nodeb[6]={{15},{12},{10),{7},{3},{2}};
node*h,*h1,*h2,*p;
inti;
h1=a;
h2=b;
for(i=0;i<4;i++)a[i].next=&a[i+1];//形成a链表
a[4].next=NULL;
for(i=0;i<5;i++)b[i].next=&b[i+1];//形成b链表
b[5].next=NULL;
___(30)___;
p=h;
while(p){
cout<data<<'\t';
p=p->next;
}
cout<}
答案:
1.A2.B3.D4.A5.C6.C7.D8.C9.C10.A
11.B12.D13.B14.B15.B16.A17.D18.B19.C20.D
(21)C(22)B(23)D(24)C(25)D(26)B(27)A(28)C(29)A(30)D
二:
填空
(1)构造
(2)17(3)编译(4)void(5)register
(6)9(7)1(8)5111637(9)5273275
(10)3(11)2468(12)23(13)55(14)32(15)Yourfriend!
(1