(笔试题,共60分)
一、 选择题(用答题卡答题,答案依次填在21~30答题号内)
21. 以下不符合c++语法规则的数值常量是 d 。
a.034b.2.1e3c.0xab23d.2e1.4
22. 表达式:3.6-5/2+1.2+5%2的值是 c 。
a.4.3b.4.8c.3.8d.3.3
23. 下列关于虚函数的叙述中,正确的是 c 。
a. 虚函数可以是一个static类型的成员函数。
b. 基类中用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明。
c. 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型。
d. 虚函数可以是非成员函数。
24. 下列关于缺省构造函数的叙述中,不正确的是 a 。
a.每个类至少有一个缺省构造函数
b.缺省构造函数没有参数或每一个参数都有缺省值。
c.缺省构造函数是唯一的。
d.每个类至少有两个构造函数。
25. 在循环体中,使用break和continue语句的作用分别是 d 。
a.两语句都结束该层循环b.前者结束该层的本次循环,后者结束该层循环。
c.两语句都结束该层的本次循环 d.前者结束该层循环,后者结束该层的本次循环。
26. 以下叙述中,不正确的是 d 。
a.派生类可以继承多个基类b.可以有多个派生类继承同一个基类。
c.派生类可以有多个虚基类d.抽象类必须是虚基类。
27. 设由类的成员函数和友元函数分别实现相同的运算符重载功能,以下叙述中正确的是 b 。
a.两种函数的参数个数相同b.友元函数比成员函数多一个参数。
c.成员函数比友元函数多一个参数 d.两种函数都带有this指针。
28. 以下对函数重载的叙述中,正确的是 c 。
a.函数名不同,但函数实现的功能相同。
b.函数名相同,函数的参数个数相同但参数的类型不同。
c.函数名相同,但函数的参数个数不同或参数的类型不同。
d.函数名相同,但函数的参数类型不同或函数的返回值的类型不同。
29. 以下关于类成员的叙述中, 不正确的是 a 。
a.类的析构函数可以重载b.类的构造函数可以重载。
c.类中的成员都有明确的访问权限 d.可将成员函数定义为静态的。
30. 以下的叙述中, 不正确的是 c 。
a.在不同函数中可以使用相同名字的变量。
b.函数的形式参数是局部变量。
c.在函数内的复合语句中定义的变量在本函数范围内有效。
d.在函数内定义的变量只在本函数范围内有效。
二、 填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)
基本概念题,共5分。
1. 在c++中,函数的参数传递方式有三种:第一种是值传递,第二种是指针传递 ,第三种是引用传递 。
2. 符号“&”作为单目运算符时的功能是取地址;作为双目运算符时,其功能是按位与 。
3. 设有以下语句:
#define s(x) x*x
int k=3,y;
y= s(k+k);
执行赋值语句:“y= s(k+k);”则y的值为 15 。
4. 如果派生类没有重载基类的纯虚函数时,则该派生类也是抽象类。
阅读程序题,共13分。
5. [程序] (2分)
#include <>
void f1(void)
int x=10;
static int y=10;
x+=y; y+=x;
cout<}
void main(void)
f1f1 ( f1
执行程序,输出的第二行是 40 ,第三行是 70 。
6. [程序] (2分)
#include <>
int x=100;
void main(void)
int x=30;
x+=:x++;
int x=60x+=x
cout<<+x<<'n';
cout<<:x<<'n';
执行程序,输出的第一行是 131 ,第二行是 161 。
7. [程序] (3分)
#include <>
int fact(int n)
if (n>1)
return n*fact(n-1);
return 1;
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; itemp=a[i]; a[i]=a[n-i-1]; a[n-i-1]=temp;
void main(void)
int aa[5] =
cout<< f(aa,4)
for (int i=0; i<4; i++)
cout< cout<}
执行程序,输出的第一行是 10 ,第二行是 24 ,第三行是 4 3 2 1 。
8. [程序] (3分)
#include <>
class a;
class b: public a;
void main(void)
b b(5,10);
执行程序,输出的第一行是 a:x=15 ,第三行是 b:y=50 ,第四行是 x=15,x=20,y=50 。
9. [程序] (3分)
#include <>
const int size=100;
class stack
virtual void push(char ch)
if (top== size) return;
if('a'<=ch &&ch<='z')
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( )
void push(char ch)
if (top== size) return;
if('0'<=ch &&ch<='9stck[top]=ch; top++;
char pop( )
if(top<0) return null;
top--;return stck[top];
void print( )
for (int i=0; i};
void main(void )
char ch,*ptr;
stack s1,*p;
stack2 s2;
char *str1 = a1b2c3d4",*str2= "nangjin5678";
ptr=str1; p=&s1;
while(*ptr) p->push(*ptr++)
ptr=str2; p=&s2;
while(*ptr) p->push(*ptr++)
while(ch=p->pop( )cout< cout<}
执行程序,输出的第一行是 cba ,第二行是 5678 ,第三行是 8765 。
完善程序题,共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) r=q ;
if(r!=p)
for(p=s; *p; p删除重复的字符。
r=p+1;
while( *p==*rr++;
if(p !=r )
江苏省2023年材料员等级试题
本卷共分为1大题50小题,作答时间为180分钟,总分100分,60分及格。一 单项选择题 共 25 题,每题 2 分,每题的备选项中,只有 1 个事最符合题意 1 月度 或季度 计划编制以后,部门召开材料平衡会议,向用料单位说明计划材料资源到货和各单位需用的总情况,同时说明施工进度及工程性质,这种方...
2023年江苏省C语言入门
1 设一棵树t中边的集合为,要求用孩子兄弟表示法 二叉链表 表示出该树的存储结构并将该树转化成对应的二叉树。2 根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全局指针变量pre 初值为null 和全局变量flag,初值为true。若非二叉...
江苏省2023年材料员等级模拟试题
本卷共分为1大题50小题,作答时间为180分钟,总分100分,60分及格。一 单项选择题 共25题,每题2分,每题的备选项中,只有1个事最符合题意 1 混凝土预制构件施工时宜优先考虑的外加剂为 a 缓凝剂b 早强剂c 防冻剂d 速凝剂。2 水泥强度等级应根据砂浆强度等级进行选择。水泥混合砂浆所采用的...