} }
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< 参考答案 、选择题 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 江苏省计算机二级复习资料第21页 共70页 (5)虚基类 (6)15 (7)20 (8)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一>next=NULL或P一>next=0或P一>next='\\0' 江苏省计算机二级复习资料第22页 共70页 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< 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.设有类定义 江苏省计算机二级复习资料第23页 共70页 class B{ public: void G(float x=0){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 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 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); 江苏省计算机二级复习资料第24页 共70页 cout< 程序输出的第二行是__(8)___,第四行是 __(9)______。 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 *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; 江苏省计算机二级复习资料第25页 共70页 >a; D. cout<