VC++程序设计_2004.doc_第1页
VC++程序设计_2004.doc_第2页
VC++程序设计_2004.doc_第3页
VC++程序设计_2004.doc_第4页
VC++程序设计_2004.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

C+程序设计 2004年6月16日一、选择题(每题1分,共20分)1. 面向对象程序设计将描述事物的数据与_(1)_封装在一起,作为一个相互依存,不可分割的整体来处理。A.信息B.数据隐藏C.对数据的操作.数据抽象2. 以下选项中都是C+语言关键字(保留字)的是_(2)_。A.cout,operator,thisB.short,string,staticC.if,where,breakD.private,public,printf3. 不能用作用户自定义的C+标识符是_(3)_A.X_YB.friendC._timeD.Name4. 若以下选项中的变量已正确定义,则正确的赋值表达式是_(4)_。A.x1=29.7%3B.1+2=x2C.x3=0xa1 D.x4=a+b=35. 执行语句“for(int s=1,i=2;i=6;i+) s*=i/2”后,s的值是_(5)_。A.1B.12C.22D.22.56. 在循环语句的循环体中,使用break和continue语句的作用分别是_(6)_。A.二语句都结束循环B.结束本次循环和结束循环C.二语句都结束本次循环D.结束该层的循环和结束该层的本次循环7. 执行下面的程序段后,y的值为_(7)_。#define S(x) x*xint y,z=10;y=S(z+1);A.10;B.121; C.21; D.语法错,不能求出y的值8. 表达式“18/4*sqrt(4.0)/5”值的数据类型是_(8)_。A.intB.longC.floatD.double9. 设有说明:double x;则sizef(x)是一个_(9)_表达式。A.整型B.单精度实型C.非法的D.双精度实型10. 若有char *p=“Hello”;则下列错误的是_(10)_。A.char &a=*p; B.char *s=*p;C.char *q=p+2; D.p=p+2;11. 下列选项中没有this指针的函数是_(11)_。A.内联成员函数 B.静态成员函数C.构造函数D.析构函数12. 下列选项中,错误的是_(12)_。A.派生类可以继承多个基类B.可以有多个派生类继承同一个基类C.派生类可以有多个虚基类D.抽象类必须是虚基类13. 下列叙述中,错误的是_(13)_。A.含纯虚函数的类称为抽象类B.不能直接由抽象类建立对象C.抽象类中能包含构造函数D.抽象类中不能包含析构函数14. 当包含头文件iostream.h后,一个C+源程序中的cout是_(14)_。A.保留字B.预定义的类C.预定义的函数 D.预定义的对象15. 下列字符数组的初始化中,正确的是_(15)_。A.char s1=abcd; B.char s23=xyz;C.char s3=a,b,c;D.char s423=xyz,map;16. 下列有关指针运算的描述中,不正确的是_(16)_。A.两个同类型的指针可以进行相等或不相等的运算B.可以用一个空指针赋值给指针变量C.一个指针可以加或减去一个整数D.两个指针在一定条件下,可以相加17. 以下选项中,正确的是_(17)_。A.char *a=china;等价于char *a;*a=china;B.char str10=china;等价于char str10;str=china;C.char *s=china;等价于char *s;s=china;D.char c4= abc,d4= abc;等价于charc4=d4= abc;18下面有关类与对象的叙述中,正确的是_(18)_。A.同一类的析构函数只能有一个B.同一类的构造函数只能有一个C.同一类的析构函数可定义多个D.类的构造函数名可任意定义19. 以下函数定义,正确的是_(19)_。A.double fun(int x,int y)z=x+y;return z;B.fun(int x,int y)int z=x+y;return z;C.fun(int x,int y)int x,y;double z:z=x+y;return z;D.double fun(int x,int y)double z;z=x+y;return z;20. 若通过类的成员函数和友元函数实现的运算符重载的功能是一样的,下列说法中正确的是_(20)_。A.两种函数的参数相同,函数体实现过程不同B.两种函数程序中使用时编译器所作的解释相同C.函数都带有this指针D.友元函数比成员函数多一个参数二、基本概念填空题(每空1分,共20分)1在C+中,编译预处理包括三个方面,分别是 (21) 、(22)和(23)。2设有说明:char s=abc0def0ghi,*p=s;则执行语句:cout*(p+5);和cout(p+8);输出分别为(24)和(25)。3有定义int x=4,y=3;则表达式(xy?-1:(x=y?0:1)的值是(26)。4静态实型变量的缺省初值为(27)。5设有说明:int a,b;float x;b=x=(a=25,15/2);则a=(28),x=(29),b=(30)。6设有说明:int a33=1,2,3,4,5,6,7,8,9;int *p=a00; 则*(p+6)的值为(31),*(*(a+2)+2)的值为(32)。7在类定义中,如果没有定义,则由系统自动生成的成员函数由构造函数、析构函数、重载赋值运算和(33)。8带有纯虚函数的类称为(34)。9在类的定义中,若没有说明类成员的访问权限,其缺省的访问权限是(35),利用“对象名.成员变量”形式访问的对象成员仅限于(36)。10C+支持的二种多态性,即静态多态性和动态多态性。函数重载属于(37),而虚函数属于(38)。11利用成员函数重载双目运算符时,其左操作数必须是(39),右操作数为(40)。三、读程序写结果填空题(共30分)注意:为了减少程序的长度,均省略了应该包含的头文件1.执行以下程序,程序输出的两行结果分别是 (1) 。(4分) includevoid fun(int *a,int *b) a=b; (*a)+;(*b)+; cout*a*bendl;void main(void) int c1=10, c2=20; fun(&c1,&c2); coutc1c2endl;2执行以下程序,程序输出的结果是 (2) 。(6分) double multi(double x) return 2*x;double sum_square(double(*f)(double x),int a) int x;double sum=0; for(x=a;x=a+1;x+) sum+=f(x)*f(x);return sum;void main(void) double sum; for(int i=0;i4;i+) sum=sum_square(multi,i); coutsumendl; 3.执行以下程序,程序输出的结果是 (3) 。(4分) int f(int x=0) static int t=0; int a=1; +t; +a; return x+a+t;void main(void)coutf( )endl; coutf(f( )endl;4执行以下程序,输出的结果是 (4) 。(6分) includeint g(int x,int y)coutxtyn; if(x%y=0) return y; else return g(y,x%y);void main(void) coutg(10,20)endlg(20,36)endl;5执行以下程序,输出的结果是 (5) 。(6分) #include class Person public: Person(char *s) name=new charstrlen(s)+1;strcpy(name,s); virtual void print() coutMy name isname.n; protected: char *name; ; class Student:public Person public: Student(char *s,float g):Person(s) gpa=g; void print(char *s) coutsMy name isnameand my G.P.A isgpa.n; private: float gpa; class Professor:public Person public: Professor(char *s,int n):Person(s) publs=n; void print() coutMy name is nameand I havepublspublications.n; private: int publs; ; void main(void) Person *p; Person x(Zhang); Student y(Wang,4.2); Professor z(Liu,5); p=&x;pprint(); p=&y; pprint();p=&z; pprint();6执行以下程序,输出的结果是 (6) 。(6分) class Base protected: int *p; public: Base(int a=0) p=new int(a); Base( ) delete p; virtual void print ( ) coutp*pendl; class Derived:public Base static int y; public: Derived(int b=0) *p=b;y+; void print( ) cout*p, yendl; ; int Derived:y=0; void main(void) Derived d(10);Base *pb=&d;pbprint();Derived(20).print();四、完善程序填空题(共20分)1以下函数sum的功能是求下列多项式前n项之和,请填空。(4分)1+2/1+3/2+5/3+8/5+13/8+21/13#includedouble sum(int n) double s= (1) ; int a=1,b=1,t; for(int i=1; (2);i+) s= (3) ; t=a;a=a+b;b=t; return s;void main(void) int n; coutn; cout前n项之和是: (4) endl; 2下面程序的功能是:从键盘上接收一个字符串,调用函数sortdel()将该字符串按照字符顺序从小到大进行排序,并删除重复的字符。请完善程序。(4分)#include#includevoid sortdel( (5) ) char *p,*q,*r,c; for(p=s;*p;p+) /选择法排序 for(r=p,q=p+1;*q;q+) if( (6) ) r=q; if(r!=p) c=*r;*r=*p;*p=c;for(p=s;*p; (7) ) /删除重复的字符 for( (8) ;*p=*q;q+)strcpy(p,q);void main(void) char str100; cin.getline(str,99); sortdel(str); coutstrendl;3以下函数MaxMin求出数组a中的最大值和最小值,其中参数n为数组a中的元素个数。参数min带回最小值,通过return语句返回最大值max。(4分)int &MaxMin(int *a,int n,int &min) int pos=0;min= (9) ;for(int i=1;imax) pos= (10) ; else if(aimin) (11) ;return (12) ;4实现一个数组构成的线性表类,存放若干实数,动态产生线性表。重载赋值运算完成两个数组对应元素间的赋值,重载插入运算符完成数组的输入,重载提取运算符完成数组的输出。(4分)#includeclass Listpublic: List(int=1,double=0.0); List() delete list; List& operator=(const List&); friend ostream& operator(istream&,List&); private: int size; double *list; ; List:List(int sz,double t) size=sz; list= (13) ; for(int i=0;isize;i+) listi=t; List& List:operator=(const List& v) if(&v!=this) delete list; size=v.size; list=new doublev.size; for(int i=0;isize;i+) (14) ; return *this;(15) (ostream& os,List& v) int i; for(i=0;iv.size;i+) osv.listi , ; if(i+1)%8= =0) os(istream& is,List& v) for(int i=0;iv.size;i+)coutiv.listi; return is;void main(void) List a(4),b(4); coutb;coutb: bendl;a=b;couta:

温馨提示

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

评论

0/150

提交评论