C++程序设计模拟试卷7(第1-11章).doc_第1页
C++程序设计模拟试卷7(第1-11章).doc_第2页
C++程序设计模拟试卷7(第1-11章).doc_第3页
C++程序设计模拟试卷7(第1-11章).doc_第4页
C++程序设计模拟试卷7(第1-11章).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

一 选择题(每题1分,共 25分 )1下列字符列中,可作为C+语言程序自定义标识符是( )。A.switch B.file C.break D.do 2 运算符 +、=、=、% 中,优先级最低的运算符是( )。A. + B.= C.= D.% 3 设变量m,n,a,b,c,d均为0,执行(m = a=b)|(n=c=d)后,m,n的值是( )。A.0,0 B. 0,1 C. 1,0 D. 1,14. 字符串”vmx43np102qu”的长度是( )。A. 8 B. 9 C. 16 D. 17 6. 5.设有代码“int a = 6;”,则执行了语句“a + = a - = a*a;”后,变量a的值是( )。A.0 B. -24 C. -40 D. 606. void main() int x=-1;do x=x*x;while(!x);下列说法正确的是( )。A是死循环 B循环执行两次C循环执行一次 D有语法错误7.下面有关for循环的正确描述是( )。Afor循环只能用于循环次数已经确定的情况Bfor循环是先执行循环体语句,后判断表达式C在for循环中,不能用break语句跳出循环体Dfor循环的循环体语句中,可以包含多条语句,但必须用大括号括起来8.下面程序段( )。x=3;doy=x-;if(!y) cout”x”; continue;cout”#”;while(1=x=2);A将输出# B将输出#*C是死循环 D含有不合法的控制表达式9.以下正确的说法是( )。A用户若需要调用标准函数,调用前必须重新定义B用户可以直接调用所有标准库函数 C用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数D用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数? 10.在参数传递过程中,对形参和实参的要求是()。A函数定义时,形参一直占用存储空间B实参可以是常量、变量或表达式C形参可以是常量、变量或表达式D形参和实参类型和个数都可以不同11对数组名作函数的参数,下面描述正确的是()。A数组名作函数的参数,调用时将实参数组复制给形参数组B数组名作函数的参数,主调函数和被调函数共用一段存储单元C数组名作参数时,形参定义的数组长度不能省略D数组名作参数,不能改变主调函数中的数据12. 若有语句int a10=0,1,2,3,4,5,6,7,8,9,*p=a;则( )不是对a数组元素的正确引用(其中0i10)。Api B*(*(a+i) Cap-a D*(&ai)13. 以下程序的输出结果是( )。#include void main() char s=12134211,*p;int v1=0,v2=0,v3=0,v4=0; v1 v2 v3 v4for (p=s;*p;p+) 2 4 3 4switch(*p) case 1:v1+;case 3:v3+;case 2:v2+;default: v4+;coutv1,v2,v3,v4endl;A4,2,1,1 B4,7,5,8 C7,3,2,1 D8,8,8,814. 下列声明结构体变量错误的是( )。Astruct student B struct studentint no; int no;char name16; char name16; st1,st2; ;struct student st1,st2;Cstruct student D struct student int no; int no;char name16; char name16; ; ;struct st1,st2; student st1,st2;15. 对类的构造函数和析构函数描述正确的是( )。A构造函数可以重载,析构函数不能重载B构造函数不能重载,析构函数可以重载C构造函数可以重载,析构函数也可以重载D构造函数不能重载,析构函数也不能重载16. 下面对于友元函数描述正确的是( )。A友元函数的实现必须在类的内部定义 B友元函数是类的成员C友元函数破坏了类的封装性和隐藏性 D友元函数不能访问类的私有成员17. 派生类的对象对它的基类成员中( )是可以访问的。A公有继承的公有成员 B公有继承的私有成员C公有继承的保护成员 D私有继承的公有成员18. C+类体系中,不能被派生类继承的有( )。A构造函数 B虚函数 C静态成员函数 D赋值操作函数19以下( )成员函数表示虚函数。Avirtual int vf(int); Bvoid vf(int)=0;Cvirtual void vf()=0; Dvirtual void vf(int) ;20. 下面对静态数据成员的描述中,正确的是( )。A静态数据成员可以在类体内进行初始化B静态数据成员不可以在类体内进行初始化C静态数据成员不能受private控制符的作用D静态数据成员可以直接用类名调用21. 继承具有( ),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。A规律性 B传递性 C重复性 D多样性22.若有以下定义,则释放指针所指内存空间的操作是 ( )。float r=news float10;A.delete r ; B.delete *r;C.delete r; D.delete r;23.若有以下定义,则对字符串的操作错误的是( )。char s10=”Program”,t=”test”;A.strcpy(s,t); B.coutt;24.在if语句中的表达式是( )。A.只能是表达式 B.只能是关系表达式和逻辑表达式C.只能是逻辑表达式 D.可以是任意表达式25.在用关键字class定义的类中,以下叙述正确的是( )。A.? 在类中,不作特别说明的数据成员均为私有类型B.? 在类中,不作特别说明的数据成员均为公有类型C.? 类成员的定义必须是成员变量定义在前,成员函数定义在后D.? 类的成员定义必须放在类定义体内部二 填空题 (每空1分,共25分)1C+程序有且只有一个 。 2若有变量定义 int x = 7; float a = 2.5, c = 4.7;表达式a + (int)(x/3*(int)(c + 2)/2) % 4 的值是 。 3? ”x或y中至少有一个小于z”的C+语言表达式是 。 4将字符串s2拷贝到字符数组s1的函数调用是 。5执行语句“ x = (a = 4, b = a+);”后,变量x、a、b的值依次为 。6表述“x或y中有一个大于z”的C+语言表达式是 。7字符串str长度的函数调用是 。 8执行语句“ y = (x = 3, z = -x);”后,变量的值依次为_ 。9设 #define a(x) x*x;couta(4+6)endl;上述程序段运行结果为 。 10设x为整型变量,表达数学关系式:13 x 19的C+语言表达式是 。 11设有代码“static int a34=1,2, 3, 4,5,6;”则a11值为 。12若有定义:char u; int b; float v; double d; 则表达式u * b + d - v的值的类型为 。13假定所有变量均已正确定义,下列程序段运行后x的值是 。a = b = c = 0; x = 35;if(!a)x-;else if(b);if(c)x = 3;else x = 4; 14类的构造函数的主要作用是 。15C+将类继承分为 和 两种。16建立类对象时,为节省内存,系统一般只分配用于 _内存。17派生类可以定义其_ _中不具备的数据和操作。18operator是C+的一个关键字,它经常和C+的一个运算符连用,构成一个运算符函数名。运算符函数的返回类型不能是 类型。19在继承机制下,当对象消亡时,编译系统先执行_的析构函数,然后再执行_的析构函数。20C+文件的两种类型,分别是 和 。21在保护继承关系下,基类有公有成员和保护成员将成为派生类中的 成员,它们只能由派生类的 来访问。三写出下列程序运行结果(每题4分,共24分)1. #includevoid main( )int I;for(I=1;I=5;I+)switch(I%2)case 0:I+; cout“#”;break; case 1:I+=2; cout“*”;default: cout“n”;2. #include void fun( );int n=5;void main( ) int n=10;coutnendl;fun();void fun( ) coutnendl;3. #include int b=5;int fun(int n);void main( ) int i;for(i=0;i3;i+) coutfun(i)endl; int fun(int n) static a=1; int c=10; a=a+100;b=b+100;c=c+100;return a+b+c;4. #include int gcd(int m,int n) if(m%n=0) return n;else return gcd(n,m%n); void main( ) int x=40,y=116; coutgcd(y,x)endl; 5. #include #include class Pointint x,y;public:Point()x=1;y=1; Point(int tx,int ty)x=tx;y=ty;Point()coutPoint x,y is deleted.endl; ;void main() Point obj1;Point obj2(10,20); 6 #includeclass count static int n;public:count()n+;void show()coutnendl;count()coutnendl;n-;int count:n=0;void main() count a;a.show();count b4;b3.show();a.show();四改正错误(每题有二处错误,在错误语句或表达式画线,并写出正确语句。)(每题 4分,共16分)1下列程序求字符串长度。#includeint fun(char s) int i=0;while(si!=n) i+;return i;void main()char s80;cin.getline(s,80); /读一行字符coutlength:fun(s)endl;2下列程序功能是求x的y次方(缺省是x的2次方)#includedouble fun(double x,double y) int i;double s=1;for(i=1;iy;i+) s=s*x;return s;void main() double x=2.5,y=3;coutpow(2.5,2):fun(x)endl;coutpow(2.5,3):fun(x,y)endl;3#includeclass Pointprivate:int x,y; void init(int a,int b) x=a;y=b;void show() coutx= x y=yendl;void main() Point a(24,50);a.show();? 4#include class Amplifierfloat invol,outvol;public:Amplifier(float vin,float vout)invol=vin;outvol=vout;float gain();Amplifier:float gain() return outvol/invol;void main() Amplifier amp(5.0,10.0);coutgain()endl; 五.程序填空(每空2分,共10分)1有一个一维数组,存放10个职工的年龄,别写两个函数求职工的最大年龄和最小年龄。#include void max_age(int arr );int max , min; void main( ) int i;int array10;coutinput 10 data:;for(i=0;iarrayi;max_age(array);min_age(array);coutmax_age is :maxendl; /使用全局变量maxcoutmin_age is :minendl; /使用全局变量minvoid max_age(int arr ) int j;max=arr0; /使用全局变量maxfor(j=1;j10;j+)if ( )max=arrj; /使用全局变量maxvoid min_age(int arr )int k;min=arr0; /使用全局变量minfor(k=1;karrk); /使用全局变量min2下列程序将0100之间的整数写入D盘上的write1.dat文件。# include # include # include void main ( ) ofstream file1 ; file1.open ( ) ; if ( ! file1 ) cerr n D:write1.dat not open endl ;exit (-1) ; for (int k=0 ; k=100 ; k+ )file1 k ; ; C+程序设计上机考试模拟(50分)? 1根据/4 =1-1/3+1/5-1/7+求的近似值,直到最后一项的值小于0.000001为止。(15分)? 2有一行字符,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。(提示读一行字符用cin.getline( ) ) (15分)? 3定义一个抽象类shape用以计算面积,从中派生出计算长方形、梯形、圆形面积的派生类。程序中通过基类有指针来调用派生类中的虚函数,计算不同形状的面积。(20分)? C+笔试参考答案一.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B C C B D C D C D B B B B C A ? 16 17 18 19 20 21 22 23 24 25 C A A D B B C C D A 二.填空:1main() 2.4.5 3.xz | yz | yz 7.strlen(str) 8. 2,2,2 9. 34 10. 111911. 0 12. double 13. 4 14. 对对象进行初始化 15。单一继承,多重继承16.对象 17.基类 18. void 19.派生类,基类 20.字符文件,二进制文件 21.保护,成员三.看程序写结果:1运行结果:*#2运行结果:1053运行结果:3165167164运行结果:45运行结果:Point 10,20 is deleted.Point 1,1 is deleted.6运行结果:15543211四改正错误(每题有二处错误,在错误语句或表达式画线,并写出正确语句。)(每题 4分,共16分)1下列程序求字符串长度。#includeint fun(char s) /*s or s int i=0;while(si!=n) /0i+;return i;void main()char s80;cin.getline(s,80); /读一行字符coutlength:fun(s)endl;2下列程序功能是求x的y次方(缺省是x的2次方)#includedouble fun(double x,double y) / fun(double x,double y=2)int i;double s=1;for(i=1;iy;i+) /(i=0;iy;i+) or (i=1;i=y;i+)s=s*x;return s;void main() double x=2.5,y=3;coutpow(2.5,2):fun(x)endl;coutpow(2.5,3):fun(x,y)endl;3#includeclass Pointprivate:int x,y; public: /插入void init(int a,int b) / Point x=a;y=b;void show() coutx= x y=yendl;void main() Point a(24,50);a.show(); 4#include class Amplifierfloat invol,outvol;public:Amplifier(float vin,float vout)invol=vin;outvol=vout;float gain();Amplifier:float gain() / float Amplifier: gain() return outvol/invol;void main() Amplifier amp(5.0,10.0);coutgain()endl; /amp. gain()五.程序填空(每空2分,共10分)1 (1)void min_age(int arr ); (2) maxarrj (3) min=arrk ; 2(1)d:write.dat ) ; (2) file1.close ; C+程序设计上机考试模拟(50分)1根据/4 =1-1/3+1/5-1/7+求的近似值,直到最后一项的值小于0.000001为止。(15分)#include#includeconst double eps=0.000001;void main() double pi=0.0,temp,s=1;int i=1;temp=1.0;while(fabs(temp)=eps) pi+=temp;i=i+2; s=-s;temp=s/i;coutnPI=pi*4endl;2有一行字符,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。(提示读一行字符用cin.getline(

温馨提示

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

评论

0/150

提交评论