2007春-2010年-江苏省计算机二级C++ - 历年真题及答案(笔试)

更新时间:2024-01-17 18:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2007年春

江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试 二级试卷

试卷语种: Visual 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.比特是组成数字信息的最小单位 B.比特只有“O”和“1”两个符号

C.比特既可以表示数值和文字,也可以表示图像和声音 D. 比特”1”总是大于比特“0”

2. 在下列有关集成电路的叙述中,错误的是 ( 2 ) A.现代集成电路使用的半导体材料主要是硅

B.大觑模集成电路一般以功能部件、子系统为集成对象 C.我国第2代居民身份证中包含有IC芯片

D? 目前超大规模集成电路中晶体管的基本线条已小到l纳米左右 3. 在下列有关通信技术的叙述中,错误的是 ( 3 )

A.通信的基本任务是传递信息,因而至少需由信源、信宿和信道组成 B.通信可分为模拟通信和数字通信,计算机网络属于模拟通信

c.在通信系统中,采用多路复用技术的目的主要是提高传输线路龟利用率 ’D?学校的计算机机房一般采甩5类无屏蔽双绞线作为局域网的传输介质 4.下面是关于PC机主存储器的一些叙述,其中正确的是( 4 ) A.主存储器是一种动态随机存取存储器(RAM) B.主存储器的基本编址单位是字(即32个二进位) C.目前市场上销售的PC机,其内存容量可达数十GB D.所有PC机的内存条都是通用的:可以互换

5. 现行PC机中,IDE(或SATA)接口标准主要用于( 5 ) A.打印机与主机的连接 c.声卡与主机的连接 B.显示器与主机的连接 D.硬盘与主机的连接

6. 下列有关PC机的CPU、内存和主板的叙述中,正确的是( 6 ) 。 A.大多数Pc机只存一块CPu芯片,即使是“双核”CPU也是一块芯片 B.所有Pentium系列微机的内存条相同,仅有速度和容量大小之分

江苏省计算机二级复习资料第1页 共69页

C.主板上芯片组的作用是提供存储器控制功能,I/O控制与芯片组无关 D.主板上CMOS芯片用于存储CMOS设置程序和一些软硬件设置信息 7.下列有关目前Pc机辅助存储器的叙述中,错误的是 ( 7 ) A.硬盘的容量越来越大,这是因为硬盘中磁盘碟片的数目越来越多 B.硬盘的内部传输速率一般小于外部传输速率 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. 算法必须产生正确的结果 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? 总线式以太网采用带冲突检测载波侦听多路访问(CSMA/CD)方法进行通信 B. FDDI网和以太网可以直接进行互连

C? 交换式集线器比总线式集线器具有更高的性能,它能提高整个网络的带宽. D? FDDI网采用光纤双环结构,具有高可靠性和数据传输的保密性

12.某用户在WWW浏览器地址栏内键入一个URL“http://www.zdxy.cn/index.htm”,其中 的“/ndex.htm”代表( 12 ) A.协议类型 C.路径及文件名 B.主机域名 D.用户名

13.交换式以太网与总线式以太网在技术上有许多相同之处,下面叙述中错误的是( 13 )

A.使用的传输介质相同 C.传输的信息帧格式相同 B.网络拓扑结构相同 D.使用的网卡相同

14.下面是关于我国汉字编码标准的叙述,其中正确的是 ( 14 ) A.Unicode是我国最新发布的也是收字最多的汉字编码国家标准 B.不同字型(如宋体、楷体等)的同一个汉字在计算机中的内码不同 C.在GBl8030汉字编码标准中,共有2万多个汉字 D.GBl8030与GB2312、GBK汉字编码标准不能兼容

15.数字图像的文件格式有多种,下列哪一种图像文件能够在网页上发布且可具有动画效 果( 15 )

A.BMP B.GIF C.JPEG D.TIF 16.声卡是获取数字声音的重要设备,.在下列有关声卡的叙述中,错误的是 A.声卡既负责声音的数字化(输入),也负责声音的重建(输出) B.声卡既处理波形声音,也负责MIDI音乐的合成 。

江苏省计算机二级复习资料第2页 共69页

C.声卡中的数字信号处理器(DSP)在完成数字声音编码、解码及编辑操作中起着重 要的作用

D.因为声卡非常复杂,所以它们都被做成独立的PCI插卡形式

17.彩色图像所使用的颜色描述方法称为颜色模型。显示器使用的颜色模型为RGB三基色模

型,PAL制式的电视系统在传输图像时所使用的颜色模型为 A.YUV B.HSB C.CMYK

18.在信息系统的结构化生命周期开发方法中,绘制E-R图属于( 18 )阶段的工作 A.系统规划 B. 系统分析 C.系统设计 D. 系统实施

19.在下列有关Microsoft Word 2000/2003(中文版)功能的叙述中,( 19 ) A.起始页的页码可以不为1

B.利用菜单命令,可更改所选英文文本的大小写 C.利用菜单命令“字数统计”,可以统计出当前文档的行数和段落数 D.表格中的数据不可排序,也不能利用公式进行统计计算 20.在下列有关Microsoft PowerPoint 200012003(中文版)功能的叙述中,错误的是( 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++; 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.float 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.参数缺省值要设置在函数定义语句中,不能设置在函数说明语句中 D. 一个函数具有缺省值的参数只能有一个 。|

江苏省计算机二级复习资料第3页 共69页

) 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是该类的友元函数 B.ff是某个类的数据成员,Set是该类的成员函数 C.Set不是该类的静态成员函数 D.ff不是该类的常成员数据

30.以下对派生类的描述中,不正确的是30 。 A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类

C.派生类的成员除了它自己的成员以外,还包含它的基类的成员 D.派生类中,从基类继承来的成员的访问权限在派生类中保持不变 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题(共5分)

1.重载函数必须有不同的参数个数或(1 ) 。

2.在派生类中如果没有重载基类中的纯虚函数,则该派生类是(2 ) 类 3.设有以下程序: 、 #include #define S(X) X*X void main(void) {

int k=2;

cout<<++S(k+k)<<'\\n'; }

执行该程序后,输出的结果为( 3n ) ,k的值为( 4 ) 。

4.在多重派生中,若要使公共基类在派生类中只有一个拷贝,则必须将该基类说明 为 ( 5 ) 。

●阅读程序题(共13分) 5.[程序](2分)

#include void main(void) {

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<

江苏省计算机二级复习资料第4页 共69页

}

程序输出第三行是__6_____,第四行是_____7_______ 6.[程序](3分)

#include void main(void) {

char s[]=\.You 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')<<\:\ } 、

程序的第一行输出为 ( 8 ) ,第三行输出为 ( 9 ) 7.[程序](2分)

#include int f(int n) {

int s=1; if(n==1)

s=1; else{

if(n==3) cout<

return s; }

void main(void) {

int s; s=f(5);

cout<<\; }

程序的第一行输出为( 10 ),第二行输出为( 11 )

8.[程序](2分)

#include char *f( char *s) {

for(char *p=s, *q=s; *q=*p;p++) if(*q>='0' && *q<='9') q++; return s;

江苏省计算机二级复习资料第5页 共69页

}

void main(void) {

char s1[]=\米=3000毫米\ cout<

程序输出的第一行是( 12 ),第二行是( 13 ) 9.[程序](3分)

#include void main(void) {

int a[10]={73,86,89,28,87,69,88,84,64,90}; int b[4]={60,70,90,101}; int c[4]={0};

for(int i=0;i<10;i++){ int j=0;

while(a[i]>=b[j]) j++; c[j]++; }

for(i=0;i<4;i++) cout<

程序输出的第一行是__________,第三行是_____________,最后一行是_________ 10.[程序](2分)

#include class A{

int a; . public:

void seta(int aa){a=aa;}

virtual void print() //第六行 {cout<

class B:public A{ int b; public:

void setb(int bb){b=bb;} void print()

{cout<

江苏省计算机二级复习资料第6页 共69页

void main(void) {

A a,*P; B b;

a.seta(5); b.seta(10); b.setb(20); P=&a: P->print(); P=&b: P->print(); }

程序输出的是( 17 )。如果在第六行中去掉Virtual,则程序输出的是( 18 )。

11. 一个数的各位数字倒过来所得到的新数叫原数的反序数.如果一个数等于它的反序数,则称它为对称数或回文数。求10000—11000之间的二进制对称数

算法说明:先将正整数n的二进制字符形式放在字符数组s2中,二进制字符形式的反序放在字符数组s1中,然后,比较这两个字符串,若相等,则是二进制对称数 #include #include int func(int n, char *s1) {

char ch, s2[33], *p,*q; p=s1; q=s2+32; *q- -=( 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=10000; n<11000; n++) {

江苏省计算机二级复习资料第7页 共69页

if( 22 ){

cout<<”n=”<

cout<<”对称数的个数为:”<

12.以下程序中的函数fun(int *a, int n)的功能是:把形参a所指向的数组中的最小值放在a[0]中,接着把形参a所指数组中的最大值放在a[1]中;把a所指数组中的次小值放在a[2]中,把a所指数组中的次大值放在a[3]中,其余依次类推,直至将数组中数据依次处理完为止 例如:把a所指向数组中的数据最初排列为:5,1,3,2,9,7,6,8,4.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5 #include #define N 9

void fun(int *a, int n) {

int max, min, px, pn, t;

for( int i=0; i

for(int j=i+1; 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)

江苏省计算机二级复习资料第8页 共69页

{

int b[N]={5,1,3,2,9,7,6,8,4};

cout<<”数组中的数据依次为:”<

cout<<”处理后数组中的数据依次为:”<

13.下列程序中的函数change(node *pa,int x)的功能是:调整pa指向的链表中结点的 位置。根据参数X的值,使链表中各结点数据域小于X的结点放在链表的前半部,大于等于x

的结点放在链表的后半部,并将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 struct node{ int data; node *next; };

node *change(node *pa,int x) {

node *pl,*p2,*P,*q; pl=p2=pa;

p=new node; //生成新结点 p->data=x:

while(p2一>datanext!=0){ //找到x应插入的位置 pl=p2;

( 27 ) ; }

if(p2一>next!=0)

p一>next=p2: //插入以X为数据域的结点 pl一>next=p: q=pl;

while( 28 ){ //通过循环,将插入结点之后所有数据域小于x的结点前移 if(p2一>datanext=( 29 ); p2一>next=p; q一>next=p2;

江苏省计算机二级复习资料第9页 共69页

q=p2;

p2=pl一>next; } else {

pl= p2;

p2=p2一>next: } } }

else{ //如果链表中所有结点数据域均小于x,则在链尾插入以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的值:\; cin>>x;

head=change(head,x); p=head; . while(p){

cout<data<<'\\t'; p=p一>next; }

cout<

30.D 一、选择题

21.C 二、填空题 22.B (1)不同的参数类型或者参数类型 23.D (2)抽象 24.D (3)15,3 25.C (4)3 26.B (5)虚基类 27.A (6)15 28.C (7)20 29.A (8)a:4

江苏省计算机二级复习资料第10页 共69页

(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一>next=NULL或P一>next=0或P一>next='\\0

江苏省计算机二级复习资料第11页 共69页

2007年秋

第一部分计算机基础知识

1. 下面关于比特的叙述中,错误的是( 1 ) A.比特是组成数字信息的最小单位 B.比特只有“O”和“1”两个符号

C.比特既可以表示数值和文字,也可以表示图像和声音 D. 比特”1”总是大于比特“0”

2. 在下列有关集成电路的叙述中,错误的是 ( 2 ) A.现代集成电路使用的半导体材料主要是硅

B.大觑模集成电路一般以功能部件、子系统为集成对象 C.我国第2代居民身份证中包含有IC芯片

D? 目前超大规模集成电路中晶体管的基本线条已小到l纳米左右 3. 在下列有关通信技术的叙述中,错误的是 ( 3 )

A.通信的基本任务是传递信息,因而至少需由信源、信宿和信道组成 B.通信可分为模拟通信和数字通信,计算机网络属于模拟通信

c.在通信系统中,采用多路复用技术的目的主要是提高传输线路龟利用率 ’D?学校的计算机机房一般采甩5类无屏蔽双绞线作为局域网的传输介质 4.下面是关于PC机主存储器的一些叙述,其中正确的是( 4 ) A.主存储器是一种动态随机存取存储器(RAM) B.主存储器的基本编址单位是字(即32个二进位) C.目前市场上销售的PC机,其内存容量可达数十GB D.所有PC机的内存条都是通用的:可以互换

5. 现行PC机中,IDE(或SATA)接口标准主要用于( 5 ) A.打印机与主机的连接 c.声卡与主机的连接 B.显示器与主机的连接 D.硬盘与主机的连接

6. 下列有关PC机的CPU、内存和主板的叙述中,正确的是( 6 ) 。 A.大多数Pc机只存一块CPu芯片,即使是“双核”CPU也是一块芯片 B.所有Pentium系列微机的内存条相同,仅有速度和容量大小之分

C.主板上芯片组的作用是提供存储器控制功能,I/O控制与芯片组无关 D.主板上CMOS芯片用于存储CMOS设置程序和一些软硬件设置信息 7.下列有关目前Pc机辅助存储器的叙述中,错误的是 ( 7 ) A.硬盘的容量越来越大,这是因为硬盘中磁盘碟片的数目越来越多 B.硬盘的内部传输速率一般小于外部传输速率 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. 算法必须产生正确的结果 C. 算法可以没有输出

B. 算法必须具有确定性 D.算法的表示必须使计算机能理解

10.因特网使用TCP/IP协议实现全球范围的计算机网络互连,连接在因特网上的每一台主

江苏省计算机二级复习资料第12页 共69页

都有一个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? 总线式以太网采用带冲突检测载波侦听多路访问(CSMA/CD)方法进行通信 B. FDDI网和以太网可以直接进行互连

C? 交换式集线器比总线式集线器具有更高的性能,它能提高整个网络的带宽. D? FDDI网采用光纤双环结构,具有高可靠性和数据传输的保密性

12.某用户在WWW浏览器地址栏内键入一个URL“http://www.zdxy.cn/index.htm”,其中 的“/ndex.htm”代表( 12 ) A.协议类型 C.路径及文件名 B.主机域名 D.用户名

13.交换式以太网与总线式以太网在技术上有许多相同之处,下面叙述中错误的是( 13 )

A.使用的传输介质相同 C.传输的信息帧格式相同 B.网络拓扑结构相同 D.使用的网卡相同

14.下面是关于我国汉字编码标准的叙述,其中正确的是 ( 14 ) A.Unicode是我国最新发布的也是收字最多的汉字编码国家标准 B.不同字型(如宋体、楷体等)的同一个汉字在计算机中的内码不同 C.在GBl8030汉字编码标准中,共有2万多个汉字 D.GBl8030与GB2312、GBK汉字编码标准不能兼容

15.数字图像的文件格式有多种,下列哪一种图像文件能够在网页上发布且可具有动画效 果( 15 )

A.BMP B.GIF C.JPEG D.TIF 16.声卡是获取数字声音的重要设备,.在下列有关声卡的叙述中,错误的是 A.声卡既负责声音的数字化(输入),也负责声音的重建(输出) B.声卡既处理波形声音,也负责MIDI音乐的合成 。

C.声卡中的数字信号处理器(DSP)在完成数字声音编码、解码及编辑操作中起着重 要的作用

D.因为声卡非常复杂,所以它们都被做成独立的PCI插卡形式

17.彩色图像所使用的颜色描述方法称为颜色模型。显示器使用的颜色模型为RGB三基色模

型,PAL制式的电视系统在传输图像时所使用的颜色模型为 A.YUV B.HSB C.CMYK

18.在信息系统的结构化生命周期开发方法中,绘制E-R图属于( 18 )阶段的工作 A.系统规划 B. 系统分析 C.系统设计 D. 系统实施

19.在下列有关Microsoft Word 2000/2003(中文版)功能的叙述中,( 19 ) A.起始页的页码可以不为1

B.利用菜单命令,可更改所选英文文本的大小写 C.利用菜单命令“字数统计”,可以统计出当前文档的行数和段落数 D.表格中的数据不可排序,也不能利用公式进行统计计算 20.在下列有关Microsoft PowerPoint 200012003(中文版)功能的叙述中,错误的是( )

江苏省计算机二级复习资料第13页 共69页

A.可通过“另存为”操作,将每张幻灯片保存为一个图片文件 B.幻灯片的大小是固定的,用户不可以对其进行设置 C.在排练计时的基础上,可以将幻灯片设置为循环放映

D.可以对字体进行替换,例如将幻灯片中的“宋体”替换为“楷体” Visual C-I-+笔试试卷

第二部分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++; 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.float 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.参数缺省值要设置在函数定义语句中,不能设置在函数说明语句中 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是该类的友元函数 B.ff是某个类的数据成员,Set是该类的成员函数 C.Set不是该类的静态成员函数 D.ff不是该类的常成员数据

30.以下对派生类的描述中,不正确的是30 。 A.一个派生类可以作为另一个派生类的基类

江苏省计算机二级复习资料第14页 共69页

B.派生类至少有一个基类

C.派生类的成员除了它自己的成员以外,还包含它的基类的成员 D.派生类中,从基类继承来的成员的访问权限在派生类中保持不变 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题(共5分)

1.重载函数必须有不同的参数个数或(1 ) 。

2.在派生类中如果没有重载基类中的纯虚函数,则该派生类是(2 ) 类 3.设有以下程序: 、 #include #define S(X) X*X void main(void) {

int k=2;

cout<<++S(k+k)<<'\\n'; }

执行该程序后,输出的结果为( 3n ) ,k的值为( 4 ) 。

4.在多重派生中,若要使公共基类在派生类中只有一个拷贝,则必须将该基类说明 为 ( 5 ) 。

●阅读程序题(共13分) 5.[程序](2分)

#include void main(void) {

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<

程序输出第三行是__6_____,第四行是_____7_______ 6.[程序](3分)

#include void main(void) {

char s[]=\.You 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')<<\:\ } 、

江苏省计算机二级复习资料第15页 共69页

程序的第一行输出为 ( 8 ) ,第三行输出为 ( 9 ) 7.[程序](2分)

#include int f(int n) {

int s=1; if(n==1) s=1; else{

if(n==3) cout<

void main(void) {

int s; s=f(5);

cout<<\; }

程序的第一行输出为( 10 ),第二行输出为( 11 )

8.[程序](2分)

#include char *f( char *s) {

for(char *p=s, *q=s; *q=*p;p++) if(*q>='0' && *q<='9') q++; return s; }

void main(void) {

char s1[]=\米=3000毫米\ cout<

程序输出的第一行是( 12 ),第二行是( 13 ) 9.[程序](3分)

#include void main(void) {

int a[10]={73,86,89,28,87,69,88,84,64,90};

江苏省计算机二级复习资料第16页 共69页

int b[4]={60,70,90,101}; int c[4]={0};

for(int i=0;i<10;i++){ int j=0;

while(a[i]>=b[j]) j++; c[j]++; }

for(i=0;i<4;i++) cout<

程序输出的第一行是__________,第三行是_____________,最后一行是_________ 10.[程序](2分)

#include class A{

int a; . public:

void seta(int aa){a=aa;}

virtual void print() //第六行 {cout<

class B:public A{ int b; public:

void setb(int bb){b=bb;} void print()

{cout<

void main(void) {

A a,*P; B b;

a.seta(5); b.seta(10); b.setb(20); P=&a: P->print(); P=&b: P->print(); }

程序输出的是( 17 )。如果在第六行中去掉Virtual,则程序输出的是( 18 )。

江苏省计算机二级复习资料第17页 共69页

11. 一个数的各位数字倒过来所得到的新数叫原数的反序数.如果一个数等于它的反序数,则称它为对称数或回文数。求10000—11000之间的二进制对称数

算法说明:先将正整数n的二进制字符形式放在字符数组s2中,二进制字符形式的反序放在字符数组s1中,然后,比较这两个字符串,若相等,则是二进制对称数 #include #include int func(int n, char *s1) {

char ch, s2[33], *p,*q; p=s1; q=s2+32; *q- -=( 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=10000; n<11000; n++) {

if( 22 ){

cout<<”n=”<

cout<<”对称数的个数为:”<

12.以下程序中的函数fun(int *a, int n)的功能是:把形参a所指向的数组中的最小值放在a[0]中,接着把形参a所指数组中的最大值放在a[1]中;把a所指数组中的次小值放在a[2]中,把a所指数组中的次大值放在a[3]中,其余依次类推,直至将数组中数据依次处理完为止 例如:把a所指向数组中的数据最初排列为:5,1,3,2,9,7,6,8,4.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5 #include #define N 9

void fun(int *a, int n)

江苏省计算机二级复习资料第18页 共69页

{

int max, min, px, pn, t;

for( int i=0; i

for(int j=i+1; 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};

cout<<”数组中的数据依次为:”<

cout<<”处理后数组中的数据依次为:”<

13.下列程序中的函数change(node *pa,int x)的功能是:调整pa指向的链表中结点的 位置。根据参数X的值,使链表中各结点数据域小于X的结点放在链表的前半部,大于

江苏省计算机二级复习资料第19页 共69页

等于x

的结点放在链表的后半部,并将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 struct node{ int data; node *next; };

node *change(node *pa,int x) {

node *pl,*p2,*P,*q; pl=p2=pa;

p=new node; //生成新结点 p->data=x:

while(p2一>datanext!=0){ //找到x应插入的位置 pl=p2;

( 27 ) ; }

if(p2一>next!=0)

p一>next=p2: //插入以X为数据域的结点 pl一>next=p: q=pl;

while( 28 ){ //通过循环,将插入结点之后所有数据域小于x的结点前移 if(p2一>datanext=( 29 ); p2一>next=p; q一>next=p2; q=p2;

p2=pl一>next; } else {

pl= p2;

p2=p2一>next: } } }

else{ //如果链表中所有结点数据域均小于x,则在链尾插入以x为数据域的新结点 p2一>next=p; ( 30 ) ; }

江苏省计算机二级复习资料第20页 共69页

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的值:\; cin>>x;

head=change(head,x); p=head; . while(p){

cout<data<<'\\t'; p=p一>next; }

cout<

参考答案 、选择题 21.C 22.B 23.D 24.D 25.C 26.B 27.A 28.C 29.A 30.D

二、填空题

(1)不同的参数类型或者参数类型 (2)抽象 (3)15,3 (4)3

(5)虚基类 (6)15 (7)20 (8)a:4 (9)e:3 (10)1

江苏省计算机二级复习资料第21页 共69页

(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一>next=NULL或P一>next=0或P一>next='\\0'

江苏省计算机二级复习资料第22页 共69页

2008春

—、选择题(用答题卡答题,答案依次填在21~30答题号内) 21. 下述关于switch语句的描述中,正确的是________ A. switch语句中的default子句可以没有,也可以有多个 B. switch 语句中的每个子句中必须有break语句 C. switch语句中的default子句只能放在最后

D. switch语句中的子句后面的表达式只能是整型表达式 22. 下列函数原型说明中,错误的是________ A. int &f1( ) 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+=”Hello” ; int a*20+=,1,2- 下列选项中,存在语法错误的是________。

A. cin>>s; B.cout<>a; D. cout<

D. 使用new运算符创建的对象可以使用运算符delete撤销

26.若有说明语句: int s[4][6], t[6][4], (*p)[6]; 则以下选项中,正确的是________ 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.下列关于构造函数的描述中,不正确的是______ A.构造函数可以设置缺省函数

B.构造函数在定义类的对象是自动执行,但不能显式调用 C.构造函数可以对静态成员进行初始化 D.构造函数可以重载 30.设有类定义 class B{ public:

void G(float x=0){cout<

江苏省计算机二级复习资料第23页 共69页

void G(double x){cout<

则在以下选项中,存在语法错误的是_________ A .r.G(); B.r.G(10) C.r.G(3.14)

D.r.G(-1.0f);

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题(共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的值类型不能是 (5) 。 ●阅读程序题 5.[程序]

#include int fun(int); void main(void) {

int a=2;

for(int i=0;i<3;i++) cout<

int fun(int a) {

int b=0;

static int c=3;

return (b++,c++,a+b+c); }

程序输出的第二行是__(6)____,第三行是__(7)___。 6. [程序] (2 分) #include 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<

程序输出的第二行是__(8)___,第四行是 __(9)______。

江苏省计算机二级复习资料第24页 共69页

7. [程序] (2 分) #include void f1(int n,int &i,chars[]) {

S*i+=’0’+n; n=n/10; i++;

if(n==0) s[i]=0; else f1(n,i,s); }

void f2(int n,int i,char s[]) { if(n) { int k; k=n;

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=”<

cout<<”s1=”<

程序输出的第一行是__(10)____,第二行是___(11)____。 8. [程序] (2 分) #include char *f(char *s1,char *s2) {

char *p,*p1; int n=0;

while(*(s1+n)) n++; char *buf=new char[n+1]; p=buf; p1=s1; while(*p++=*p1++); p=s1; p1=s2;

while(*p++=*p1++); cout<

while(*p++=*p1++);

江苏省计算机二级复习资料第25页 共69页

2008秋

—、选择题(用答题卡答题,答案依次填在21~30答题号内 21. 以下关于逻辑运算的描述中,正确的是________。 A. 所有的逻辑运算都是双目运算,其优先级相同

B. 逻辑运算中存在双目运算和单目运算,其优先级相同 C. 所有的逻辑运算都是双目运算,其优先级各不相同

D. 逻辑运算中存在双目运算和单目运算,其优先级各不相同

22. 对于while和do…while循环语句,以下描述正确的是________。

A. do…while语句中的循环体至少执行一次 B. 两个语句中循环体可能都不执行 C. while语句中的循环体至少执行一次 D. 两个语句中的循环体至少执行一次 23. 以下说明语句中,不存在语法错误的是 ________。 A. char s1*4+=,“a”,”b”,”c”-; B. char s2*4+=,‘a’,’b’-;

C. char s3*+=,‘I am a student’-; D. char s4*14+=,“I am a student”-; 24. 设变量a,b,c为整型变量,以下选项中存在语法错误的是________。 A. c=a+++b; B. c=a+b++; C. c=b++=c++; D. c=++a=b++; 25. 设有程序段: x=-1;

if(a!=0) {if(a>0) x=1;} else x=0; 该程序段表示的数学函数关系是________。

-1 (a<0) 1 (a<0)

A. x= 0 (a=0) B x= -1 ( a=0) 1 (a>0) 0 (a>0)

0 (a<0) -1 (a<0)

C. x= -1 (a=0) D x= 1 ( a=0) 1 (a>0) 0 (a>0)

26. 以下关于两个同类型指针变量的叙述中,在一定条件下,运算结果没有实际意义的是________。

A. 两个指针变量可以互相赋值 B. 两个指针变量进行比较运算 C. 两个指针变量进行减法运算 D. 两个指针变量进行加法运算 27. 下列有关构造函数的叙述中,正确的是________。

A. 类的构造函数不能重载 B. 任何一个类必定有构造函数

C. 可以定义没有构造函数的类 D. 任何一个类必定有一个缺省的构造函数 28. C++中运算符重载可以改变________。

A. 运算符的优先级 B. 运算符的结合性

C. 运算符实现的功能 D. 运算符的操作数的个数

29. 以下关于基类指针和派生类指针的叙述中,不正确的是________。 A. 基类指针可以指向它的公有派生类的对象

B. 基类指针可以指向它的多次派生后的派生类的对象 C. 派生类的指针不能指向基类的对象

D 若基类指针指向派生类的对象,通过该基类指针可以访问派生类对象的所有成员 30. 以下关于友元函数的叙述中,正确的是________。 A. 友元函数不能访问类的私有成员

江苏省计算机二级复习资料第31页 共69页

B. 友元函数破坏了类的封装性和隐藏性 C. 友元函数的使用与类的成员函数相同 D. 友元函数的实现必须在类的说明中定义

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题,共5分

1. 设有语句:int a=5,b=6,c;c=!a&&b++;执行以上语句后,变量b的值为_ (1 ) 。

2. 在定义派生类时,如果没有指定基类的派生(继承)方式,则缺省(默认)的继承方式是_ _(2)

3. C++中编译预处理包括:文件包含、宏和_ _(3) 。

4. 要将一个函数定义为内联函数时,通常在定义函数时使用关键字_ _(4) 5. C++中表达式:”I am a student”的值为该字符串的_ _(5) 。 ●阅读程序题,共13分 6. [程序] (2 分) #include void f(int a[]) {

int t=a[0];

a[0]=a[1]; a[1]=t;

cout<

void main(void) {

int b[2]={300,500}; f(b);

cout<

程序输出的第一行为 _(6) ,第三行为 _(7) 7. [程序] (2分) #include int fa(int a) {

static int m=1; m=a*m; return m; }

void main(void) {

for(int i=2;i<=4;i++) cout<

程序输出的第一行为 _(8) ,第三行为 _(9) 。 8. [程序] (2 分) #include int f1(int a[3][3])

江苏省计算机二级复习资料第32页 共69页

。 {

int sum=0;

for(int i=0;i<3;i++) for(int j=0;j<3;j++) { if(a[i][j]>0) continue; sum+=a[i][j]; }

return sum; }

int f2(int a[3][3]) {

int sum=0;

for(int i=0;i<3;i++) for(int j=0;j<3;j++) { if(a[i][j]<0) break; sum+=a[i][j]; }

return sum; }

void main(void) {

int b[3][3]={{1,2,3},{7,-12,-13},{-20,9,-5}}; int s1,s2;

s1=f1(b); s2= f2(b); cout<

程序输出的第一行为 _(10) ,第二行为 _(11) _。 9. [程序] (3 分) #include int f(int x[],int n) {

if(n==1) x[n]=3; else x[n]=n+f(x,n-1); cout<

void main(void) {

int b[5]={3,4,5,6,0}; f(b,3);

for(int i=0;i<5;i++) cout<

江苏省计算机二级复习资料第33页 共69页

}

程序输出的第一行是 _(12) ,第二行是 _(13) ,第三行是 _(14) 。 10. [程序](2 分) #include class A{ int x; public:

A(int a) { x=++a;}

~A(),cout<

class B:public A{ int y; public:

B(int b):A(b ){y=get( )+b;} B( ):A(5){ y=6; } ~B(){cout<

void main(void) {

B b( 5 ); }

程序输出的第一行是 (15) ,输出的第二行是 (16) 11. [程序] (2 分) #include class A{ int x; public: A(int x=0) { this->x=x;}

virtual void f(){cout<

class B:public A{ int y; public:

B(int x,int y=1):A(x) {

this->y=y; }

void f(int a) {cout<

void main(void) {

A a1(10),*pa;

江苏省计算机二级复习资料第34页 共69页

B b1(20,30); a1.f(); pa=&a1; pa->f(); pa=&b1; pa->f(); }

程序输出的第二行是 (17) ,输出的第三行是 (18) 。 ●完善程序题,共12分

12. 以下程序的功能是:将两个字符串分别输入到s1 和s2 中,并使s2中的字符按升序排列(用函数sort()实现排序)。然后,依次从s1中取一个字符插入到s2中,并使s2中的字符保持升序。函数insert(char *p,char c)的功能是将字符c插入到p所指向的字符串中,使p所指向的字符串保持升序。函数merge(char *p1,char *p2)依次从p2所指向的字符串中取出一个字符,并插入到p1所指向的字符串中。 [程序] (4分) #include #include char *sort(char s[]) {

int len=strlen(s);

for(int i=0;i

return s; }

void insert(char *p,char c) {

char *p1=p; int len=strlen(p);

while(*p1=p1) { (20) ; p2--; }

(21) ; }

char *merge(char *p1,char *p2) {

while(*p2) {

江苏省计算机二级复习资料第35页 共69页

(22) ; p2++; }

return p1; }

void main(void) {

char s1[100],s2[200],c; cout<<”输入第一行字符串:”; cin.getline(s1,100);

cout<<”输入第二行字符串:”; cin.getline(s2,100);

cout<

merge(s2,s1);

cout<

13. 以下程序中的功能是:通过重载运算符+、—、何=,分别实现一维数组(向量)的加法(对应元素相加)、减法(对应元素相减)和向量对象之间的赋值。例如,设a,b,c是类Arr的对象,a的成员x[]={1,1,1,1,1,1},b的成员x[]={2,2,2,2,2,2},执行:c=a+b后,c的成员x[]={3,3,3,3,3,3}. [程序] (4分) #include class Arr{ float x[20]; int size; public:

Arr(float a[],int n) {

for(int i=0;i

for(int i=0;i<20;i++) x[i]=0; size=0; }

Arr operator+(Arr); Arr operator-(Arr); Arr &operator=(Arr&); int GetArr(float y[]) {

for(int i=0;i

江苏省计算机二级复习资料第36页 共69页

}

void print() {

for(int i=0;i

Arr Arr::operator +(Arr a) {

Arr tem;

for(int i=0;i

Arr Arr::operator –(Arr a) {

Arr tem;

for(int i=0;i

Arr &Arr::operator=( (25) ) {

for(int i=0;i

return (26) ; }

void main(void) {

float b1[6]={10,20,30,40,50,60};

float b2[6]={100,200,300,400,500,600},b3[6],b4[6]; Arr a1(b1,6),a2(b2,6),a3,a4; a3=a1+a2; a4=a2-a1; a3.print(); a4.print(); int n=a1.GetArr(b3);

for(int i=0;i

14、下面程序的功能是:首先建立一条链表,顺序从链表中找到data为最大值的结点,从链表中删除该结点,并将其值返回,最终删除整个链表,同时得到按降序排序的数组x。其中,函数Insert(int a,node *head)的功能是:用参数a产生一个新结点,将其插入链首,并返

江苏省计算机二级复习资料第37页 共69页

回链首指针。DeleteMax(node*&head)的功能是:从head所指向的链表中找到data值为最大的结点,从链表中删除该结点并将其结点值返回。

算法提示:当链表为空时,返回-1。在查找的过程中,始终让pmax指向当前data值为最大的结点,并让pmax1指向pmax的前一个结点。找到data值为最大的结点后,将其从链表中删除,并返回其data值。 [程序] (4 分) #include struct node{ int data; node *next; };

node *Insert(int x,node *head) {

node *p=new node; p->data=x; (27) Head=p; return head; }

int DeleteMax(node *&head) {

node *p1,*p2,*pmax,*pmax1; int max;

p1=p2=head;

if(!head) return -1; max=p1->data; pmax=p1; while(p1) {

if(maxdata) { max=p1->data;

pmax=p1; pmax1=p2; }

p2=p1;

(28) ; }

if(pmax==head) head=head->next; else (29) ; delete pmax; return max; }

void main(void) { int a;

int x[200],count=0;

江苏省计算机二级复习资料第38页 共69页

node *head=0; cin>>a;

while(a!=-1){

head=Insert(a,head); cin>>a; } while(head){

x[count]= (30) _; count++; }

for(int i=0;i

2008秋参考答案 一、选择题 21 题号 答案 题号 答案 二、填空题 题号 (1) (2) (3) (4) (5) (6) (7) (8) (9) 答案 6 私有 条件编译 inline 首地址 500 300 500 300 2 24 题号 答案 (11) 13 (12) 3 (13) 5 (14) 8 (15) 11 (16) 6 (17) 10 (18) 20 (19) s[i]>s[j] (20) *(p2+1)=*p2 题号 答案 (21) *p1=c (22) insert(p1,*p2) (23) tem.a[i]=x[i]+a.x[i] (24) tem.a[i]=x[i]-a.x[i] (25) Arr &a (26) (27) this p->next=head D 26 D 22 A 27 C 23 B 28 C 24 C 29 D 25 A 30 B (28) p1=p1->next (29) pmax1->next=pmax->next (30) DeleteMax(head) (10) -50 江苏省计算机二级复习资料第39页 共69页

2009年春试

卷语种: Visual C++ 第一部分计算机基础知识

1. 在下列有关现代信息技术的一些叙述中,正确的是 1 。

A.集成电路是20世纪90年代初出现的,它的出现直接导致了微型计算机的诞生 B.集成电路的集成度越来越高,目前集成度最高的已包含几百个电子元件 C.目前所有数字通信均不再需要使用调制解调技术和载波技术

D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘ . 2. 最大的10位无符号二进制整数转换成八进制数是 2 .。 A.1023 B.1777 C.1000 D.1024

3. 在下列有关目前PC机CPU的叙述中,错误的是 3 。 A.CPU芯片主要是由Intel公司和AMD公司提供的 B.\双核\是指PC机主板上含有两个独立的CPU芯片 C.Pentium 4微处理器的指令系统由数百条指令组成 D.Pentium 4微处理器中包含一定容量的Cache存储器

4. 在下列有关当前PC机主板和内存的叙述中,正确的是 4 。 A.主板上的BIOS芯片是一种只读存储器,其内容不可在线改写

B.绝大多数主板上仅有一个内存插座,因此PC机只能安装一根内存条 C.内存条上的存储器芯片属于SRAM(静态随机存取存储器) D.目前内存的存取时间大多在几个到十几个ns(纳秒)之间

5. 在下列有关PC机辅助存储器的叙述中,正确的是 5 。 A.硬盘的内部传输速率远远大于外部传输速率

B.对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度 C.使用USB 2.0接口的移动硬盘,其数据传输速率大约为每秒数百兆字节 D.CD-ROM的数据传输速率一般比USB 2.0还快

6. 在下列PC机I/O接口中,数据传输速率最快的是 6 。 A.USB 2.0 B.IEEE-1394 C.IrDA (红外) D.SATA

7. 计算机软件可以分为商品软件、共享软件和自由软件等类型。在下列相关叙述中,错误的是 7 。

A.通常用户需要付费才能得到商品软件的使用权,但这类软件的升级总是免费的 B.共享软件通常是一种\买前免费试用\的具有版权的软件 C.自由软件的原则是用户可共享,并允许拷贝和自由传播

D.软件许可证是一种法律合同,它确定了用户对软件的使用权限

8. 人们通常将计算机软件划分为系统软件和应用软件。下列软件中,不属于应用软件类型的是 8

A.AutoCAD B.MSN C.Oracle D.Windows Media Player

9. 在下列有关Windows 98/2000/XP操作系统的叙述中,错误的是 9 。 A.系统采用并发多任务方式支持多个任务在计算机中同时执行 B.系统总是将一定的硬盘空间作为虚拟内存来使用 C.文件(夹)名的长度可达200多个字符

D.硬盘、光盘、优盘等均使用FAT文件系统

江苏省计算机二级复习资料第40页 共69页

10. 在下列有关算法和数据结构的叙述中,错误的是 10 。

A.算法通常是用于解决某一个特定问题,且算法必须有输入和输出

B.算法的表示可以有多种形式,流程图和伪代码都是常用的算法表示方法 C.常用的数据结构有集合结构、线性结构、树形结构和网状结构等 D.数组的存储结构是一种顺序结构

11?因特网的IP地址由三个部分构成,从左到右分别代表 11 。 A.网络号、主机号和类型号 B.类型号、网络号和主机号 C.网络号、类型号和主机号 D.主机号、网络号和类型号

12?在下列有关ADSL技术及利用该技术接入因特网的叙述中,错误的是 12 。 A.从理论上看,其上传速度与下载速度相同

B.一条电话线上可同时接听/拨打电话和进行数据传输

C.利用ADSL技术进行数据传输时,有效传输距离可达几公里 D.目前利用ADSL技术上网的计算机一般需要使用以太网网卡

13.人们往往会用\我用的是10M宽带上网\来说明白己计算机连网的性能,这里的\ 指的是数据通信中的 13 指标。 A.最高数据传输速率 B.平均数据传输速率 C.每分钟数据流量

D.每分钟IP数据包的数目

14?计算机局域网按拓扑结构进行分类,可分为环型、星型和 14 型等。 A.电路交换 B.以太 C.总线 D.对等

15.网络信息安全主要涉及数据的完整性、可用性、机密性等问题。保证数据的完整性就是 A.保证传送的数据信息不被第三方监视和窃取 B.保证发送方的真实身份

C.保证传送的数据信息不被篡改

D.保证发送方不能抵赖曾经发送过某数据信息

16.某计算机系统中,西文使用标准ASCII码、汉字采用GB2312编码。设有一段纯文本,其机内码为CB F5 DO B4 50 43 CA C7 D6 B8,则在这段文本中含有: 16 。 A.2个汉字和1个西文字符 B.4个汉字和2个西文字符 C.8个汉字和2个西文字符 D.4个汉字和1个西文字符

17.以下关于汉字编码标准的叙述中,错误的是 17 。

A.GB 2312标准中所有汉字的机内码均用双字节表示 B.我国台湾地区使用的汉字编码标准BIG 5收录的是繁体汉字

C.GB 18030汉字编码标准收录的汉字在GB 2312标准中一定能找到

D.GB 18030汉字编码标准既能与UCS(Unicode)接轨,又能保护已有中文信息资源

18.若波形声音未进行压缩时的码率为64kb/s,已知取样频率为8kHz,量化位数为8,那么它的声道数是 18 。

江苏省计算机二级复习资料第41页 共69页

A.1 B.2 C.4 D.8

19.从信息处理的深度来区分信息系统,可分为业务处理系统、信息检索系统和信息分析系统等。在下列几种信息系统中,不属于业务处理系统的是 19 。 A.DSS B.CAI C.CAM D.OA

20.在下列有关信息系统开发、管理及其数据库设计的叙述中,错误的是 20 。 A.常用的信息系统开发方法可分为结构化生命周期方法、原型法、面向对象方法和CASE方法等

B.在系统分析中常常使用结构化分析方法,并用数据流程图和数据字典来表达数据和处理过程的关系

C.系统设计分为概念结构设计、逻辑结构设计和物理结构设计,通常用E-R模型作为描述逻辑结构的工具

D.从信息系统开发过程来看,程序 第二部分Visual C++语言程序设计

21.下列关于\的描述中不正确的是______

A.存在\的情况 B.表达式e1和e3可为空,但e2不能为空 C.表达式e2的值可增可减 D.循环体s1可以为空,但分号(;)必须有 22.下列函数定义中存在语法错误的是______

A.void f5();f6(){f5;cout<<200;} void f5(){cout<<100;} B.void f3(){cout<<100;} void f4(){tout<<200;} C.void f7(int a){if(a)f7(--a);cout<””;} D.void f1(){cout<<100;void f2(){tout<<200;}} 23.设有说明语句; int a=7,b=12,e;

以下表达式选项中,e值为2的是_______ A.e=b%=(a-a%5) B.e=b%=(a%=5) C.e=b%=b+1-a%5 D.e=(b%=a)-(a%=5) 24.以下叙述中不正确的是_____

A.一个函数中可以有多个return语句 B.一个函数中可以没有return语句 C.一个return语句可返回多个值 D.一个return语句可不返回值 25.以下双目运算符中要求两个操作数均为整型的运算符是______。 A.|| B.&& C./ D %

26.以下对break语句的描述中,不正确的是______

A.break语句可用在循环语句中,其作用是结束本层循环的执行

B.break语句可用在switch语句中,其作用是结束该switch语句的执行 C.break语句可用在if语句中,其作用是结束该if语句的执行 D.break语句在同一循环体中可以多处使用

27.以下对类的析构函数的叙述中,正确的是______ A.析构函数完成类的初始化 B.析构函数完成对象的初始化

C.析构函数完成撤销对象的相关处理

D.析构函数和成员函数一样可以显式地调用 28.以下有关多态性的叙述中不正确的是________ 。

A.C++语言的多态性分为编译时的多态性和运行时的多态性 B.编译时的多态性通过重载函数来实现

江苏省计算机二级复习资料第42页 共69页

C.运行时的多态性通过虚函数来实现

D.函数重载和虚函数均可实现编译时的多态性和运行时的多态性 29.设已定义了一个类名为MyClass的类: MyClass sl,*s2,**s3,*s4 E2];

当该语句执行后,调用该类的构造函数的次数是 _______ A.1 B.2 C.3 D.5

30.在公有派生的情况下,派生类中定义的成员函数能访问其基类的_________。 A.公有成员和保护成员 B.公有成员和私有成员

C.保护成员和私有成员 D.公有成员、保护成员和私有成员 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题(共5分)

1.以下循环语句的循环体的执行次数为 ( ) 。 for(int s=0,j=1;j<=10;s+=j);j++;

2void类型的指针是其指向变量的数据类型是不固定的,对该类型指针进行操作时,通常应进行________

3.C++变量的存储类型有自动类型、静态类型、 _______和__________。

4.c++函数的参数传递方式有三种: (_________) 、指针传递和引用传递。 ●阅读程序题(共13分) 5.[程序](2分) #include

void fa(int&a,int&b) {int t=a;a=b;b=t;} void fb(int a,int b)

{ int t=a;a=b;b=t;} void main(void)

{int c[2]={100,200},d[2]={300,400};

fa(c[0],c[1]); cout<

程序输出的第一行是( ) ,第二行是( )。 6.[程序](2分) #include void main(void) { int n=0,m=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) if(j>=i)n++;m++; cout<

程序输出的第一行是( ) ,第二行是( ) 。 7.[程序](2分) #include int a=10;

void main(void)

江苏省计算机二级复习资料第43页 共69页

{ int a=20,b=30; { int a=0,b=0;

for(int i=1;i<4;i++){ a=a+b;b=::a+b; }

cout<

void f2(int x[],int n);

void fl(int x[],int n) { cout<

if(n<3){n=n+2;f2(x,n);} }

void f2(int x[],int n) {cout<

if(n<3){n=n+3;fl(x,n); } }

void main(void)

{int y[7]={3,4,5,6,7,8,9}; f1(y,0);

for(int i=0;i<5;i++)cout<

cout<: ’ }

程序输出的第一行是( ) ,第二行是( ) ,第三行是( ) 9.[程序](2分) #include class A{ int n; public:

static int s; A(int a){n=a;} void add(){s+=n;}

void print(){cout<

int A::s=0;

class B:public A{ int y; public:

B(int b,int c):A(c){y=b;}

void p(){cout<

江苏省计算机二级复习资料第44页 共69页

};

void main(void) { A a1(10),a2(20);

B b1(5,15),b2(10,15);

a1.add();a2.add();b1.add();b2.add(); a1.print();a2.print(); b1.p();b2.p(); }

程序输出的第一行是( ) ,第三行是( )。 10.[程序](2分) #include class A{ int x; public:

A(int a){x=a;}

virtual void print(){cout<<\ void fun(){print();} };

class B:public A{ int y: public:

B(int a,int b):A(a){y=b;}

void print(){cout<<\ } void fun(){print();} };

class C:public B{ int z; public:

C(int a,int b,int C):B(a,b){z=c;}

void print(){cout<<\ } void fun(){print();} };

void main(void) { A a1(5),*p1; B bl(10,15); C c1(20,30,40);

a1.fun();b1.fun();c1.fun();

pl=&b1; pl->fun();p1=&c1;pl->fun(); }

程序输出的第四行是() ,第五行是( ) ●完善程序题(共12分)

11.以下程序的功能是:采用插入排序的方法将数组s1中的元素升序排序,并删除重复的元 素(值相同的元素只保存一个)。函数insert(int p[],int c,int x)将整数x插入到已排序 的数组P中(并仍保持升序),参数c为数组P的元素个数。函数sort(int s[],int n)将数

江苏省计算机二级复习资料第45页 共69页

组s中的数据按升序排序。先将s[0]放到临时数组tern[0]中,然后,依次从s中取一个 元素,若该元素不在数组tem中,则调用函数insert()将该元素插入到数组tern中。最后 将数组tem拷贝到数组s中。 [程序](4分) #include

void insert(int p[],int c,int x) { for(int i=0;ix)break;

if(i==c)_____________;

else{for(int J=c;j>i;j--)p[j]=P[j-1];________;} }

int sort(int s[],int n) {int tem[200]; int len,j,k; tem[O]=s[O];

len=1: //len记录数组tern中的元素个数 for(j=1;j

if(s[j]==tem[k])_____________; }

if(k>=len){

insert(_________);len=len+1; } }

for(j=0;j

retum len; //返回数组的大小 - ’

void main(void)

{int s1[200]={34,22,11,55,66,30,22,100,66}; int n;n=sort(s1,9);

for(int i=0;i

12.以下程序通过重载运算符+、*实现集合(用数组表示)的并(u),交(n)运算。集

的元素不能相同。两个集合的并包含了两个集合的所有元素。两个集合的交仅包含 集合中共同存在的元素。设sl={1,2,3,4,5,6},s2={3,5,7,9,11}。s1 u s2={1, 4,5,6,7,9,11},s1 n s2={3,5}。 [程序](4分) #include class Set{

float x[20]; int size; public:

int In(float e,int n) //元素e已在集合x中,则返回1,否则返回0

江苏省计算机二级复习资料第46页 共69页

{ int flag=0; for(int i=o;i return flag; }

Set(float a*+,int n) ‘ { x[0]=a[0];size=1; for(int i=1;i

Set(){size=0;}

Set operator +(Set); Set operator *(Set); Set &operator =(Set&); int GetSet(float y[]) { for(int i=0;i return size; }

void print()

{ for(int i=0;i<

cout<<'\\n'<<\\\N'; }; }

Set Set::operator +(Set a) { Set tem;

for(int i=0;i

for(i=0;i

if(tem.In(a.x[i]i,tern.size)==0)tem.x[tem.size++]=a.x[i]; return tem; }

Set Set::operator *(Set a) { Set tem; tem.size=0;

for(int i=0;i

} Set &Set::operator =(Set &a) {for(int i=0;i (__________) ; return *this;

江苏省计算机二级复习资料第47页 共69页

}

void main(void)

{float b1[6]={1,2,3,4,5,6}; float b2[6]={3,5,7,9,11},b3[6];

Set a1(b1,6),a2(b2,5),a3,a4,a5; a3=a1+a2;a3.print(); a5=a1*a2;a5.print(); int n=a1.GetSet(b3);

for(int i=0;i

13,以下程序的功能是:先产生一条带头结点(链表的第一个结点不存储数据,而是存储链表的 表长,即结点个数)的无序链表,每一个结点包含一个整数。然后将该链表分成两条带头结 点的链表:_条链表上的数据均为偶数,另一条链表上的数据均为奇数。函数Cleate()创建 了一条带有头结点的单链表。函数Print()输出链表上各结点的值。函数Split()把链表 分割成两条链表,值为奇数的结点保留在原链表上,值为偶数的结点移到另一个链表中, 并将指向偶数链表的头指针返回。 [程序](4分) #include struct Node{ int data;

struct Node *next; };

Node *Create(void) //创建一条带有头结点的单向链表 { Node *p1,*head;

int a; //创建头结点,头结点的数据域储存链表的结点个数 head=new Node;

head->data=0;head->next=0:

cout<<\创建一条无序链表,请输人数据,以-l结束,\\n\ cin>>a;

while(a!=-1){ p1=new Node;

pl->data=a;pl->next=head->next; _________; head->data++;

cin>>a: }

(___________) ; }

void Print(Node *h) { h=h->next;

while(h){eout

江苏省计算机二级复习资料第48页 共69页

Node *Split(Node *&link) //link是-个带头结点的单链表 {Node *pl=link,*p2=link->next,*head; head=new Node;

head->data=0;head->next=0; while(p2){

if(p2->data%2==O){

p1->next=p2->next;link->data--; p2->next=head->next; __________ ;

head->data++; p2=p1->next; }

else{pl=p2; ___________;} }

return(head); }

void main(void) { Node *h1,*h2;

hl=Create(); cout<<\输入的链表为:\ Print(h1);

h2=Split(h1); cout<<\分割后的奇数链表为:\ Print(h1); cout<<\分割后的偶数链表为:\ Print(h2); }

一、选择题

21.B 22.D 23.A 24.C 25.D 26.C 27.C 28.D 29.A 30.A (1)无数次 (2)强制类型转换 (3)外部类型 (4)寄存器类型 (5)值传递 (6)200 100 (7)300 400 (8)6 (9)1

(10)30 30 (11)20 30 (12)3 (13)5 (14)8 (15)10 60 (16)15 60 5 (17)15 (18)40

(19)p[c]=x或p[i]=x (20)p[j]=x或p[i]=x (21)break (22) tem,len,s[j] (23)x[i]==e (24)x[size]=a[i]

(25)tem.x[i]=x[i] (26) size=a.size (27) head->next=p1 (28)retum head (29)head->next=p2 (30)p2=p2->next

江苏省计算机二级复习资料第49页 共69页

2009年秋

江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试 二级 Visual C++

(基础知识分为 I 和 II 两类,考生选做其中的一类,且不需要在答题卡上标注类别) 第一部分 计算机基础知识

1.下列关于个人移动通信的叙述中,错误的是____

A.第1代个人移动通信(简称1G)采用的通信技术是数字通信技术

B.目前广泛使用的GSM手机采用的通信技术属于第2代移动通信技术(简称2G) C.第3代移动通信技术(简称3G)将无线通信与互联网、多媒体通信相结合 D.3G有多个国际技术标准,其中也有我国自主制定的3G技术标准。 2.在下列有关集成电路的叙述中,正确的是2。 A.现代集成电路所使用的半导体材料都是硅 B.所有的集成电路都是数字集成电路

C.Moore定律认为单块集成电路的集成度平均每年翻一番

D.Intel公司微处理器产品Core 2 Duo,其集成度已高达数千万个电子元件 3.与十六进制数AB等值的八进制数是3 。 A. 253 B.254 C.171 D.172

4.在下列有关PC机CPU的叙述中,错误的是4。

A.CPU中包含几十个甚至上百个寄存器,用来临时存放数据、指令和控制信息 B.所有PC机的CPU都具有相同的指令系统,因而PC机可使用相同的软件

C.一台计算机至少包含1个CPU,也可以包含2个、4个、8个甚至更多个CPU D.Intel公司是国际上研制和生产CPU的主要公司,我国也能生产CPU 5.在下列有关PC机主板上部件的叙述中,错误的是5 。

A.BIOS保存在主板上的一个闪存中,其内容在关机后通常不会改变

B.CMOS中保存有用户设置的开机口令,关机后主板上的电池继续给CMOS供电 C.启动CMOS设置程序可以重新设置CMOS中的数据,该程序是BIOS的组成部分 D.网卡通常集成在主板上,由主板上独立的IC实现其功能,与芯片组无关 6.从PC机存储器的层次结构来看,下列存储器中存取速度最快的是6 。 A.Cache存储器 B.RAM和ROM C.寄存器 D.硬盘和优盘 7.在下列4种PC机常用I/O接口中,数据传输速率最高的是7。 A.PS/2 B.SATA C.IEEE-1394b D.USB 2.0

8.在下列有关I/O操作、I/O总线和I/O接口的叙述中,错误的是8。 A.I/O操作的任务是在I/O设备与内存的指定区域之间传送信息 B.I/O总线传送的只能是数据信号,它不能传送控制信号和地址信号

C.不同类型的I/O接口,其插头/插座以及相应的通信规程和电气特性通常各不相同 D.并行总线的数据传输速率不一定比串行总线高 9.在下列有关PC机I/0设备的叙述中,错误的是9。

A.数码相机的成像芯片可以为CCD器件或CMOS芯片,目前大多数用CCD器件 B.平板式扫描仪的分辨率通常远远高于胶片扫描仪和滚筒式扫描仪 C.常见的宽屏液晶显示器的宽度与高度之比为16:9(或16:10)

D.目前在银行、超市等商业部门一般采用针式打印机来打印存折和票据 10.在下列有关计算机软件的叙述中,错误的是10 。

江苏省计算机二级复习资料第50页 共69页

本文来源:https://www.bwwdw.com/article/mfvo.html

Top