江苏省2008年春计算机二级考试VC++试题.doc_第1页
江苏省2008年春计算机二级考试VC++试题.doc_第2页
江苏省2008年春计算机二级考试VC++试题.doc_第3页
江苏省2008年春计算机二级考试VC++试题.doc_第4页
江苏省2008年春计算机二级考试VC++试题.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2008春、选择题(用答题卡答题,答案依次填在2130答题号内)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.024.设有说明语句: char s80=”Hello” ; int a20=1,2 下列选项中,存在语法错误的是_。A. cins; B.couta; D. couta;25. 下列关于运算符的叙述中,不正确的是_。A. 使用运算符new创建对象时必须定义初始值B. 使用运算符new创建对象时会调用类的构造函数C. 运算符new可以用来动态创建对象和对象数组D. 使用new运算符创建的对象可以使用运算符delete撤销26.若有说明语句: int s46, t64, (*p)6; 则以下选项中,正确的是_A. p=t B. p=s C. p=s0 D. p=t027.以下叙述中不正确的是_A. 在函数内的复合语句中定义的变量在本函数范围内有效B.形式参数是局部变量C在函数内定义的变量只在本函数范围内有效D.在不同函数中可以使用相同名字的变量28.以下有关抽象类的叙述中,不正确的是_A.抽象类至少含有一个纯虚函数B.抽象类至少含有一个没有函数体的虚函数C.在抽象类的派生中可以提供纯虚函数的实现代码D.可以说明抽象类的对象29.下列关于构造函数的描述中,不正确的是_A.构造函数可以设置缺省函数B.构造函数在定义类的对象是自动执行,但不能显式调用C.构造函数可以对静态成员进行初始化D.构造函数可以重载30.设有类定义class Bpublic:void G(float x=0)coutxendl;void G(double x)coutxendl;r;则在以下选项中,存在语法错误的是_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=&a3-&a0;则执行以上语句后,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;i3;i+) coutfun(a+)endl; int fun(int a)int b=0;static int c=3;return (b+,c+,a+b+c);程序输出的第二行是_(6)_,第三行是_(7)_。6. 程序 (2 分)#includevoid 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);coutatbendl;程序输出的第二行是_(8)_,第四行是 _(9)_。7. 程序 (2 分)#includevoid f1(int n,int &i,chars)Si=0+n%10;n=n/10; i+;if(n=0) si=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);si=0+k;void main(void)char s20; int i=0;f1(24675,i,s);si=0;cout”s=”sendl;static char s120;f2(1357,0,s1);cout”s1=”s1endl;程序输出的第一行是_(10)_,第二行是_(11)_。8. 程序 (2 分)#includechar *f(char *s1,char *s2)char *p,*p1;int n=0;while(*(s1+n) n+;char *buf=new charn+1;p=buf; p1=s1;while(*p+=*p1+);p=s1; p1=s2;while(*p+=*p1+);coutbufendl;p-;p1=buf;while(*p+=*p1+);delete=buf;return s1;void main(void)char s130=”about”,s2=”time”;coutf(s1,s2)endl;程序输出的第一行是_(12)_,第二行是 _(13)_。9. 程序(3 分)#includeint fun(int x,int y)coutxtyy?x:y);void main(void)int a=3,b=6,k=4,m;m=fun(fun(a,b),fun(b,k);cout”m=”mendl;程序输出的第一行是_(14)_,第三行是 _(15)_,第四行是_(16)_。10. 程序 (2 分)#includeclass Basepublic:void virtual f() cout”Base:f()”endl;void virtual g() cout”Base:g()”endl;class A:public Basepublic:void f(int a=0) cout”A:f()”endl;class B:public Avoid f()cout”B:f()”endl;void g()cout”B:g()”f(); p-g();q-f(); q-g();程序输出的第一行是_(17)_,第三行是_(18)_。完善程序题,共12 分11. 下面的程序功能是:将一个字符串中的单词分行输出。例如,对字符串;”What is your name?”执行程序后,输出结果为:Whatisyourname?程序 (4 分)#includechar *nextWord(char *pp)static char word81;while(*pp= ) _(19)_;char *pw=word;while(*pp&*pp!= )*pw+=*(*pp)+;_(20)_;return _(21)_;void main(void)char s=”What is your name?”,*ps=s;docoutnextWord( _(22)_)endl;while(*ps);12、以下程序的功能是:二维数组a 中每列元素都是从小到大有序排列的,将一维数组b 中的元素依次插入到数组a 的每列中,并保持a 中每列数据的有序性。最后将执行插入操作后的数组a 以矩阵形式输出。例如,原数组a 为: 1 3 2 数组b 为:2 7 1 操作后的数组a 为:1 3 1 4 6 8 2 6 2 8 9 10 4 7 8程序 (4 分) 8 9 10#include#include#define ROW 4#define COL 3void f(int aCOL,int b)int i,j;for(_(23)_)for(j=ROW-1;j0;j-)if(aj-1ibi) _(24)_;else break;_(25)_;void main(void)int aROWCOL=1,3,2,4,6,8,8,9,10;int bCOL=2,7,1;cout”插入前数组中的数据依次为:”n;for(int i=0;iROW-1;i+) for(int j=0;jCOL;j+) coutsew(5)aij;coutendl;coutendl;_(26) _;cout”插入后数组中的数据依次为:”n;for(i=0;iROW;i+) for(int j=0;jCOL;j+) coutsew(5)aij;coutendl;13. 在以下程序中,函数CreateLink()根据键盘输入的整数建立一条单向无序链表,链表上的每一个结点包含一个整数;函数SortLink()通过改变结点在链表中的位置将链表调整为一条有序链表,函数PrintLink()将链表上的整数依次输出;函数DeleteLink()将链表删除。程序 (4 分)#includestruct .nodeint data;node *next;node *CreateLink(void) /创建无序链表node *p1,*p2,*head=0;int a;couta;while(a!=-1)p1=new node; p1-data=a;if(head=0) head=p1; p2=p1;else _(27)_;p2=p1;couta;p2-next=0;return (head);void SorLink(node *&head) /通过移动每个节点的指针来完成链表排序node *q,*tq,*p,*tp;int flag=0;if (!head) return;for(q=head,tq=0;q;q=q-next)for(tp=q,p=q-next;p;tp=p,p=p-next)if (q-data=p-data) /将p和q指向的两个节点所处位置互换_(28)_;p-next=q;q=p; p=tp;if(!tq) head=q; else tq-next=q;tq=q;void PrintLink(node *head) /打印链表node *p=head;cout”链上各结点的数据为:n” ;while(p!=NULL) coutdatat;_(29)_;coutnext;_(30)_;void main(void) node *head=0;head=CreateLink(); PrintLink(head);SortLink(head); PrintLink(head);DeleteLink(head); 2008春参考答案一、选择题题号212223

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论