1、2007年春江苏省二级VC++考试试题与答案 绝密★启用前 2007年春 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试 二级试卷 试卷语种: Visual C++ 说 明: 1.本试卷包括计算机基础知识部分和程序设计部分,考试时间共120分钟 2.本试卷满分为60分,分选择题和填空题,试卷不分A、B类型; 3.计算机基础知识部分全部是选择题(20分),程序设计部分分为选择题(10分)和填空题(30分)两种; 4.选择题用答题卡答题。每一项有A、B、C、D四个可供选择的答案,请选择其中一个你认为正确的答案,用HB铅笔涂写在答题卡的相应答题号内
2、每选对一项得1分,不选或选错不得分; 5.填空题用答题纸答题。请将答案用蓝、黑色钢笔或圆珠笔填写在答题纸的相应答题号内,每个答案只占一行,不得换行。每填对一个答案得1分,不填或填错不得分; 6.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是否填写正确。 7.考试结束时将试卷、答题卡和答题纸放在桌上,不得带走。待监考人员收点 第一部分计算机基础知识 1. 下面关于比特的叙述中,错误的是( 1 ) A.比特是组成数字信息的最小单位 B.比特只有“O”和“1”两个符号 C.比特既可以表示数值和文字,也可以表示图像和声音
3、 D. 比特”1”总是大于比特“0” 2. 在下列有关集成电路的叙述中,错误的是 ( 2 ) A.现代集成电路使用的半导体材料主要是硅 B.大觑模集成电路一般以功能部件、子系统为集成对象 C.我国第2代居民身份证中包含有IC芯片 D• 目前超大规模集成电路中晶体管的基本线条已小到l纳米左右 3. 在下列有关通信技术的叙述中,错误的是 ( 3 ) A.通信的基本任务是传递信息,因而至少需由信源、信宿和信道组成 B.通信可分为模拟通信和数字通信,计算机网络属于模拟通信 c.在通信系统中,采用多路复用技术
4、的目的主要是提高传输线路龟利用率 ’D•学校的计算机机房一般采甩5类无屏蔽双绞线作为局域网的传输介质 4.下面是关于PC机主存储器的一些叙述,其中正确的是( 4 ) A.主存储器是一种动态随机存取存储器(RAM) B.主存储器的基本编址单位是字(即32个二进位) C.目前市场上销售的PC机,其内存容量可达数十GB D.所有PC机的内存条都是通用的:可以互换 5. 现行PC机中,IDE(或SATA)接口标准主要用于( 5 ) A.打印机与主机的连接 c.声卡与主机的连接 B.显示器与主机的连接 D.硬盘与主机的连接
5、 6. 下列有关PC机的CPU、内存和主板的叙述中,正确的是( 6 ) 。 A.大多数Pc机只存一块CPu芯片,即使是“双核”CPU也是一块芯片 B.所有Pentium系列微机的内存条相同,仅有速度和容量大小之分 C.主板上芯片组的作用是提供存储器控制功能,I/O控制与芯片组无关 D.主板上CMOS芯片用于存储CMOS设置程序和一些软硬件设置信息 7.下列有关目前Pc机辅助存储器的叙述中,错误的是 ( 7 ) A.硬盘的容量越来越大,这是因为硬盘中磁盘碟片的数目越来越多 B.硬盘的内部传输速率一般小于外部传输速率
6、 c.优盘采用Flash存储器技术,属于半导体存储器 D.目前常见COMBO光驱是一种将CD-RW和DVD-ROM组合在一起的光驱 8.下面有关Windows操作系统,(95以后版本)的叙述中,错误的是 ( 8 ) 。 A.Windows操作系统支持系统中多个任务的并发执行 B.利用Whldows附件“系统工具”中的“系统信息”可以查看内存的工作情况 C.系统规定文件名最多由128个字符组成 D.Vista是Microsoft公司推出的Windows XP操作系统的后继版本 9.算法设计是编写程序的基础。下列关于算法的叙述中,正确的是 ( 9 ) 。 A.
7、 算法必须产生正确的结果 C. 算法可以没有输出 B. 算法必须具有确定性 D.算法的表示必须使计算机能理解 10.因特网使用TCP/IP协议实现全球范围的计算机网络互连,连接在因特网上的每一台主机 都有一个IP地址。下面不能作为IP地址的是( 10 ) A. 120.34.0.18 C. 21.18.33.48 B. 201.256.39.68 D. 37.250.68.0 11.常用局域网有以太网、FDDI网等,下面的叙述中错误的是 ( 11 ) A• 总线式以太网采用带冲突检测载波侦听多路访问(C
8、SMA/CD)方法进行通信 B. FDDI网和以太网可以直接进行互连 C• 交换式集线器比总线式集线器具有更高的性能,它能提高整个网络的带宽. D• FDDI网采用光纤双环结构,具有高可靠性和数据传输的保密性 12.某用户在WWW浏览器地址栏内键入一个URL“ 的“/ndex.htm”代表( 12 ) A.协议类型 C.路径及文件名 B.主机域名 D.用户名 13.交换式以太网与总线式以太网在技术上有许多相同之处,下面叙述中错误的是( 13 ) A.使用的传输介质相同 C.传输的信息帧格式相同 B.网络拓
9、扑结构相同 D.使用的网卡相同 14.下面是关于我国汉字编码标准的叙述,其中正确的是 ( 14 ) A.Unicode是我国最新发布的也是收字最多的汉字编码国家标准 B.不同字型(如宋体、楷体等)的同一个汉字在计算机中的内码不同 C.在GBl8030汉字编码标准中,共有2万多个汉字 D.GBl8030与GB2312、GBK汉字编码标准不能兼容 15.数字图像的文件格式有多种,下列哪一种图像文件能够在网页上发布且可具有动画效 果( 15 ) A.BMP B.GIF C.JPEG D.
10、TIF 16.声卡是获取数字声音的重要设备,.在下列有关声卡的叙述中,错误的是 A.声卡既负责声音的数字化(输入),也负责声音的重建(输出) B.声卡既处理波形声音,也负责MIDI音乐的合成 。 C.声卡中的数字信号处理器(DSP)在完成数字声音编码、解码及编辑操作中起着重 要的作用 D.因为声卡非常复杂,所以它们都被做成独立的PCI插卡形式 17.彩色图像所使用的颜色描述方法称为颜色模型。显示器使用的颜色模型为RGB三基色模 型,PAL制式的电视系统在传输图像时所使用的颜色模型为 A.YUV B.HSB C.C
11、MYK 18.在信息系统的结构化生命周期开发方法中,绘制E-R图属于( 18 )阶段的工作 A.系统规划 B. 系统分析 C.系统设计 D. 系统实施 19.在下列有关Microsoft Word 2000/2003(中文版)功能的叙述中,( 19 ) A.起始页的页码可以不为1 B.利用菜单命令,可更改所选英文文本的大小写 C.利用菜单命令“字数统计”,可以统计出当前文档的行数和段落数 D.表格中的数据不可排序,也不能利用公式进行统计计算 20.在下列有关Microsoft PowerPoint 200012003(中
12、文版)功能的叙述中,错误的是( ) A.可通过“另存为”操作,将每张幻灯片保存为一个图片文件 B.幻灯片的大小是固定的,用户不可以对其进行设置 C.在排练计时的基础上,可以将幻灯片设置为循环放映 D.可以对字体进行替换,例如将幻灯片中的“宋体”替换为“楷体” 第二部分Visual C++语言程序设计 一、选择题(用答题卡答题,答案依次填在21~30答题号内) 21.设有说明语句:int d,e; 以下选项中,存在语法错误的是21 。 A.d=9+e==d+2; B.d=e+=2; C.f=g+f=j*k++
13、 D.(++d)++; 22.设有函数调用语句:fun((x1,x2),x3,(x4,x5,x6)); 该函数调用中实参的个数是22 A.2 B.3 C. 5 D.6 23.以下对二维数组的说明中,存在语法错误的是23 A.int a[][3]={3,2,1,1,2,3}; B.int a[][3]={{3,2,1},{1,2,3}}; C.im a[2][3]={1} D.int a[2][]={{3,2,l},{1,2,3}}; 24.以下选项中,存在语法错误的是24。 A.f
14、loat x,&j=x; B.int c,&d=c,&e=d; C.char b, &k=b; D.int f,&g;g=f; 25.下述关于抽象类的描述中,错误的是25 。 A.可以通过在类中定义纯虚函数的方式定义抽象类 B 不可以创建抽象类的对象 C 不可以创建抽象类的引用 D.可以创建抽象类的指针 26.下列有关函数缺省参数的描述中,正确的是26。 A:设置了缺省值的参数左边不允许出现没有指定缺省值的参数 B.同一个函数在同一个文件中可以提供不同缺省参数值 C.参数缺省值要设置在函数定义语句中,不能设
15、置在函数说明语句中 D. 一个函数具有缺省值的参数只能有一个 。| 27.在以下选项中,C++语言不能重载的运算符是27 A.?: B.+ C.[] D.<= 28.假设a是类E的对象,执行语句: E b=a; 则要调用类E中的28 。 A.缺省构造函数 B.operator=()函数 c.拷贝构造函数 D.对象之间的赋值 29.已知在函数set中,语句this一>ff=5;与语句ff=5;的效果完全相同。根据这一结 论,以下叙述中不正确的是29。 A.ff是某个类的数据成员,Set是该类的友
16、元函数 B.ff是某个类的数据成员,Set是该类的成员函数 C.Set不是该类的静态成员函数 D.ff不是该类的常成员数据 30.以下对派生类的描述中,不正确的是30 。 A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类 C.派生类的成员除了它自己的成员以外,还包含它的基类的成员 D.派生类中,从基类继承来的成员的访问权限在派生类中保持不变 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题(共5分) 1.重载函数必须有不同的参数个数或(1 ) 。 2.在派生类中如果没有重载基类中的纯虚函数,则该派生类是(2 ) 类
17、3.设有以下程序: 、
#include
18、 static int a[7]={1},i,j; for(i=1;i<=6;i++) for(j=i;j>0;j--) a[j]+=a[j-1]; for(j=0;j<7;j++)。 cout< void main(void) { char s[]="I am a student.Y
19、ou are a student too.";
int a[26]={0};
char *P=s:
while(*P++!='A' && *P<='Z') a[*p-'A']++;
else if(*P>='a' && *P<='z') a[*p-'a']++;
}
for(int i=0;i<26;i++)
if(a[i]!=0) cout<<(char)(i+'a')<<":"< 20、.[程序](2分)
#include 21、ndl;
}
程序的第一行输出为( 10 ),第二行输出为( 11 )
8.[程序](2分)
#include 22、 23、
c[j]++;
}
for(i=0;i<4;i++)
cout< 24、}
};
class B:public A{
int b;
public:
void setb(int bb){b=bb;}
void print()
{cout<print();
P=&b:
P->print();
}
程序输出的是( 17 )。如果在第六行中去掉Virtu 25、al,则程序输出的是( 18 )。
11. 一个数的各位数字倒过来所得到的新数叫原数的反序数.如果一个数等于它的反序数,则称它为对称数或回文数。求10000—11000之间的二进制对称数
算法说明:先将正整数n的二进制字符形式放在字符数组s2中,二进制字符形式的反序放在字符数组s1中,然后,比较这两个字符串,若相等,则是二进制对称数
#include 26、 19 )
while(n){
ch=( 20 ) //求n的最低二进制位的字符表示形式
n/=2;
*p++=ch;
*q- -=ch;
}
*p=0;
q++;
if( 21 ) return true;
else return false;
}
void main(void)
{
char s[33]={0};
int count=0;
cout<<”二进制对称数如下:\n”;
for(int n 27、10000; n<11000; n++)
{
if( 22 ){
cout<<”n=”< 28、排列为:5,1,3,2,9,7,6,8,4.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5
#include 29、 px=j;
}
if(min>a[j]){
min=a[j];
pn=j;
}
}
if(pn!=i){
t=a[i];
a[i]=min;
____24_____
if(px==i) px=pn;
}
if( 25 ){
t=a[i+1];
a[i+1]=max;
( 26 )
}
}
}
void main(void)
{
int b[N]={5,1,3,2,9,7,6,8,4};
co 30、ut<<”数组中的数据依次为:”< 31、 的结点放在链表的后半部,并将X插人这两部分结点之间。
例如,原链表上各结点的数据依次为:3,4,2,1,9,6,5,0,10,6
输入:X=7
经插入新结点后,新链表的各结点数据依次为:3,4,2,1,6,5,0,6,7,9,10
[程序](4分)
#include 32、new node; //生成新结点
p->data=x:
while(p2一>data 33、p2一>data 34、x为数据域的新结点
p2一>next=p;
( 30 ) ;
}
return pa;
}
void main(void)
{
node a[10]={{3},{4},{2},{1},{9},{6},{5},{0},{10},{6}},*head=a, *p;
int i,x;
for(i=0;i<9;i++)
a[i].next=&a[i+1];
a[9].next=NULL;
cout<<"输入x的值:";
35、 cin>>x;
head=change(head,x);
p=head; .
while(p){
cout< data<<'\t';
p=p一>next;
}
cout< 36、a:4
(9)e:3
(10)1
(11)s=120
(12)4
(13)33000
(14)1
(15)6
(16)1
(17)5 20
(18)5 10
(19)'\0'或0
(20)n%2+'0';或n%2+48
(21)strcmp(sl,q)==0或者!strcmp(sl,q)
(22)func(n,s)
(23)i+=2或i=i+2
(24)a[pn]=t
(25)px!=i+1或者px—i一1
(26)a[px]=t
(27)p2=p2一>next或p2=pl一>next
(28)p2或p2!=0
(29)p2一>next
(30)p一 37、>next=NULL或P一>next=0或P一>next='\0'
[2008春]
—、选择题(用答题卡答题,答案依次填在21~30答题号内)
21. 下述关于switch语句的描述中,正确的是________
A. switch语句中的default子句可以没有,也可以有多个
B. switch 语句中的每个子句中必须有break语句
C. switch语句中的default子句只能放在最后
D. switch语句中的子句后面的表达式只能是整型表达式
22. 下列函数原型说明中,错误的是________
A. int &f 38、1( ) B.int f2(double=5);
C. void f3(void (*p)( )) D.int f4(int a=0,int b)
23.设有说明语句: float y=5.16347 ;int x; 则以下表达式中,可以实现将中的数值保留小数点后2位,第三位四舍五入的表达式是________。
A. y=(y*100+0.5)/100.0 B.x=y*100+0.5,y=x/100.0
C.y=y*100+0.5/100.0 D.y=(y/100+0.5)*100.0
24.设有说明语句: char s[80]=”He 39、llo” ; int a[20]={1,2} 下列选项中,存在语法错误的是________。
A. cin>>s; B.cout< 40、则以下选项中,正确的是________
A. p=t B. p=s C. p=s[0] D. p=t[0]
27.以下叙述中不正确的是_________
A. 在函数内的复合语句中定义的变量在本函数范围内有效
B.形式参数是局部变量
C在函数内定义的变量只在本函数范围内有效
D.在不同函数中可以使用相同名字的变量
28.以下有关抽象类的叙述中,不正确的是______
A.抽象类至少含有一个纯虚函数
B.抽象类至少含有一个没有函数体的虚函数
C.在抽象类的派生中可以提供纯虚函数的实现代码
D.可以说明抽象类的对象
29.下列关于构造函数的描述中 41、不正确的是______
A.构造函数可以设置缺省函数
B.构造函数在定义类的对象是自动执行,但不能显式调用
C.构造函数可以对静态成员进行初始化
D.构造函数可以重载
30.设有类定义
class B{
public:
void G(float x=0){cout< 42、每个答案只占一行)
●基本概念题(共5分)
1.在构造函数和析构函数中,可以定义为虚函数的是 (1)
2.若有语句说明:float a[]={1,2,3,4,5,};int b=&a[3]-&a[0];则执行以上语句后,b的值为 (2)
3.在C++中,重载运算符“=”只能用在 (3) 函数中实现,而重载插入运算符“《”和提取运算符“》”只能用在 (4) 函数中实现。
4.设e是表达式,其类型可以是:float,double,int,char、enum。C++中规定,在开关语句中switch(e)中,e的值类型不能是 43、 (5) 。
●阅读程序题
5.[程序]
#include 44、>
void ff(int &m,int &n)
{
int t=m+n;
m=n; n=t;
}
void main(void)
{
int a,b,i;
for(a=b=i=1;i<=5;i++){
ff(a,b);
cout<
void f1(int n,int &i,chars[])
{
S[i]=’0’+n%10;
n=n/10; i++;
if(n 45、0) s[i]=0; else f1(n,i,s);
}
void f2(int n,int i,char s[])
{
if(n) {
int k;
k=n%10;
f2(n/10,i+1,s);
s[i]=’0’+k;
}
}
void main(void)
{
char s[20];
int i=0;
f1(24675,i,s);
s[i]=0;
cout<<”s=”< 46、第二行是___(11)____。
8. [程序] (2 分)
#include 47、return s1;
}
void main(void)
{
char s1[30]=”about”,s2[]=”time”;
cout< 48、b,k));
cout<<”m=”< 49、t<<”A::f()”<>a; D. cout<






