2014年秋江苏省等级考试C++试卷(附答案)

更新时间:2023-10-17 07:08:01 阅读量: 综合文库 文档下载

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

2014年秋江苏省等级考试C++试卷

(笔试题,共60分)

第一部分部分 计算机信息基础 (20道选择题,共20分,略) 第二部分 C++语言程序设计(共40分)

一、 选择题(用答题卡答题,答案依次填在21~30答题号内)

21. 以下不符合C++语法规则的数值常量是 21 。

A.034 B.2.1E3 C.0Xab23 D.2E1.4 22. 表达式:3.6-5/2+1.2+5%2的值是 22 。

A.4.3 B.4.8 C.3.8 D.3.3 23. 下列关于虚函数的叙述中,正确的是 23 。

A. 虚函数可以是一个static类型的成员函数

B. 基类中用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明 C. 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型 D. 虚函数可以是非成员函数

24. 下列关于缺省构造函数的叙述中,不正确的是 24 。 A.每个类至少有一个缺省构造函数

B.缺省构造函数没有参数或每一个参数都有缺省值 C.缺省构造函数是唯一的 D.每个类至少有两个构造函数

25. 在循环体中,使用break和continue语句的作用分别是 25 。

A.两语句都结束该层循环 B.前者结束该层的本次循环,后者结束该层循环 C.两语句都结束该层的本次循环 D.前者结束该层循环,后者结束该层的本次循环 26. 以下叙述中,不正确的是 26 。

A.派生类可以继承多个基类 B.可以有多个派生类继承同一个基类 C.派生类可以有多个虚基类 D.抽象类必须是虚基类

27. 设由类的成员函数和友元函数分别实现相同的运算符重载功能,以下叙述中正确的是 27 。

A.两种函数的参数个数相同 B.友元函数比成员函数多一个参数 C.成员函数比友元函数多一个参数 D.两种函数都带有this指针 28. 以下对函数重载的叙述中,正确的是 28 。

A.函数名不同,但函数实现的功能相同

B.函数名相同,函数的参数个数相同但参数的类型不同 C.函数名相同,但函数的参数个数不同或参数的类型不同

D.函数名相同,但函数的参数类型不同或函数的返回值的类型不同 29. 以下关于类成员的叙述中, 不正确的是 29 。

A.类的析构函数可以重载 B.类的构造函数可以重载 C.类中的成员都有明确的访问权限 D.可将成员函数定义为静态的 30. 以下的叙述中, 不正确的是 30 。

A.在不同函数中可以使用相同名字的变量 B.函数的形式参数是局部变量

第4页 VC++

C.在函数内的复合语句中定义的变量在本函数范围内有效 D.在函数内定义的变量只在本函数范围内有效

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题,共5分 1. 在C++中,函数的参数传递方式有三种:第一种是值传递,第二种是 (1) ,第三种是 (2) 。 2. 符号“&”作为单目运算符时的功能是取地址;作为双目运算符时,其功能是 (3) 。 3. 设有以下语句:

#define S(x) x*x int k=3,y; y= S(k+k); 执行赋值语句:“y= S(k+k);”,则y的值为 (4) 。

4. 如果派生类没有重载基类的纯虚函数时,则该派生类也是 (5) 类。 ●阅读程序题,共13分 5. [程序] (2分)

#include void f1(void) { int x=10; static int y=10; x+=y; y+=x; cout<

void main(void)

{ f1( ); f1 ( ); f1 ( ); }

执行程序,输出的第二行是 (6) ,第三行是 (7) 。 6. [程序] (2分)

#include int x=100;

void main(void) { int x=30; x+=::x++; { int x=60; ::x+=x; } cout<<++x<<'\\n'; cout<<::x<<'\\n'; }

执行程序,输出的第一行是 (8) ,第二行是 (9) 。 7. [程序] (3分)

#include int fact(int n) { if (n>1)

return n*fact(n-1); return 1;

第5页 VC++

}

int f (int a[ ], int n)

{ if (n>=2) return f(a,n-1) + a[n-1] ; return a[0] ; }

void exchange(int a[], int n) { int i, temp ; for (i=0; i

temp=a[i]; a[i]=a[n-i-1]; a[n-i-1]=temp; } }

void main(void)

{ int aa[5] = {1, 2, 3, 4}; cout<< f(aa,4) <

cout<

cout<

执行程序,输出的第一行是 (10) ,第二行是 (11) ,第三行是 (12) 。 8. [程序] (3分)

#include class A{ int x; public: A(int i) { x=i; cout<<\ void print( ) { cout<<\ \};

class B: public A{ int y; A a; public: B(int i, int j): A(i+j), a(j+10)

{ y=i*j; cout<<\ } void print( ) { A::print( ); a.print( ); cout<<\ };

void main(void) { B b(5,10); b.print( );

第6页 VC++

}

}

执行程序,输出的第一行是 (13) ,第三行是 (14) ,第四行是 (15) 。 9. [程序] (3分)

#include const int SIZE=100; class Stack{ char stck[SIZE]; int top; public: Stack( ) { top=0; } virtual void push(char ch) { if (top== SIZE) return; if('a'<=ch && ch<='z') {

stck[top]=ch; top++; }

} virtual char pop( ) { if(top<0) return NULL;

top--; return stck[top]; }

void print( )

{ for (int i=top-1; i>=0;i--)

cout<

} };

class Stack2: public Stack { char stck[SIZE]; int top; public: Stack2( ) { top=0; } void push(char ch) { if (top== SIZE) return; if('0'<=ch && ch<='9') { stck[top]=ch; top++; } }

char pop( ) { if(top<0) return NULL;

top--; return stck[top]; }

void print( )

{ for (int i=0; i

第7页 VC++

}

};

void main(void ) { char ch,*ptr; Stack s1,*p; Stack2 s2; char *str1 = \ ptr=str1; p=&s1; while(*ptr) p->push(*ptr++); ptr=str2; p=&s2; while(*ptr) p->push(*ptr++); s1.print( ); s2.print( ); while(ch=p->pop( )) cout<

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

10. 以下函数sortdel(char *s)的功能是:首先将s所指向的字符串中的字符按照字符ASII码值的大小按升序排序,然后在排序后的字符串中删除重复的字符。在主函数中输入一个字符串,调用函数sortdel( ),输出排序后的字符串。 [程序] (4分)

#include void sortdel(char *s) { char *p,*q,*r,c; for(p=s; *p; p++) { // 选择法排序

for(r=p,q=p+1; *q; q++) if(*r>*q) (19) ; if(r!=p) { c=*r; *r=*p; (20) ; } } for(p=s; *p; p++){ // 删除重复的字符

r=p+1;

while( (21) ) r++; if(p != r )

for(q=p+1; *r; q++) { (22) ; r++; }

*q='\\0';

} }

void main(void) { char str[200]; cin.getline(str,199); cout<

11. 以下程序实现一个由数组构成的线性表类,动态产生线性表,表中存放若干实数。为了简化,本程

第8页 VC++

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

Top