




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题型:一、选择题(1 20)二、基础知识填空题 (1 15)三、判断题 (1 10) 四、阅读程序题(2 10) 五、完善程序题 (2 10) 六、编程题 (2题,共 15 分)注意:(1)选择题、判断题答案:每行5个,写清楚题号;(2)判断题:正确的打“”,错误的打“”;(3)填空题(第四、五大题)答题时请注明横线处的编号;(4)用黑色水笔答题;(5)带上有效证件。一、选择题1. 面向对象程序设计将数据与 放在一起,做为一个相互依存、不可分割的整体来处理。 A) 对数据的操作B) 信息C) 数据隐藏D) 数据抽象2. C+语言对C语言最本质的改进是 8 ,它使得C+语言成为面向对象的程序设计语言。A. 引入了类与对象的概念,并支持继承和多态性B. 增加了动态存储分配与回收运算符new和deleteC. 增加了无名共用体D. 允许函数使用引用参数3. 不是面向对象程序设计的主要特点。A) 封装 B) 继承C) 多态 D) 结构4. 由C+目标文件连接而成的可执行文件的缺省扩展名为_。 A cpp B exe C obj D lik5. 以下关于C+语言标识符的描述中,正确的是 。A)标识符可以由汉字组成 B)标识符只能以字母开头C)关键字可以作为用户标识符 D)Area与area是不同的标识符6. 能用作用户自定义标识符。A) friend B) -var C) 3xyz D) Float7. 在每个C+程序中都必须包含有这样一个函数,该函数的函数名为。A.main B.MAIN C.name D.function8. 下面的 保留字不能作为函数的返回类型。A.void B.int C.new D.long9. 以下不属于C+语言关键字的是 。A)case B)byte C)enum D)sizeof10. 下列变量名中,( )是合法的。 ACHINA Bbyte-size Cdouble DA+a11. 下列变量名中,( )是合法的。 A _var B bye-bye C int D 123_cc12. 类型修饰符unsigned修饰以下 类型是错误的。D A. charB) intC) long intD) float13. 若有 char a; int b; float c; double d; 则表达式a*b+d-c值的类型是 。A) char B) intC) float D) double14. 设有说明:int a=15, b=17, c ; 执行表达式c=a | (b+=b)后,a , b , c的值分别为 DA、15,17,1 B、1,34,35C、15,34,1 D、15,17,1515. 已知a,b为整型变量,则表达式b=3, a=4, b+, a+b的值是 。DA、 7B、 4C、 3D、 816. 判断char型变量c1是否小写字母的正确表达式为 。BA、 a=c1=a)&(c1=a)&(c1=z)D、 (a=c1)17. 设x和y均为bool量,则x&y为真的条件是。A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假18. 若x和y为double型变量,则表达式x=10,y=x+3/2的值是 。DA) 10 B) 20C) 11.5 D) 11.019. 使用操作符setw对数据进行格式输出时,需要包含( )文件。C Aiostream.h Bfstream.h Ciomanip.h Dstdlib.h20. 以下的for循环 (19) 。C for(int x = 0; x 4; x + );A) 是无限循环 B)循环次数不定C)执行4次D)执行3次21. 在循环语句的循环体中,continue语句的作用是 。A) 立即终止整个循环B) 继续执行continue语句之后的循环体各句C) 结束本次循环D) 结束本次循环并跳出循环22. 已知: int m=10; 则下列表示引用的方法中,正确的是 。AA int &x=m; B int &y=10; C int &z ; D float &t=&m;23. 若执行完以下语句,i和j的值分别为 。Cint i;int &j=i;i=5;j=i+1;A) 5,5 B) 5,6 C) 6,6 D) 6,524. 在下面的一维数组定义中,哪一个有语法错误。_ C A int a=1,2,3; B int a10=0; C int a; D int a5;25. 在”int a3=1,3,2,4,5,6,0;”中,a22的值是 。CA) 1 B) 0C) 6 D) 226. 以下叙述中不正确的是 。A) 在不同的函数中可以使用相同名字的变量B) 程序中有调用关系的函数必须放在同一个源文件中C) 在一个函数内定义的变量,其变量名只在本函数范围内有效D) 函数中的形式参数是局部变量27. 以下C+语言中,对函数不正确的描述是 。DA) 当用数组名作形参时,形参数组改变可使实参数组随之改变B) 允许函数递归调用C) 函数形参的作用范围只是局限于所定义的函数内D) 函数说明必须在主调函数之前28. 对于某个函数调用,不必给出被调函数声明的情况是 。CA) 被调函数是无参参数B) 被调函数是无返回值的函数C) 被调函数的定义在调用处之前D) 被调函数的定义在别的源文件中29. 在C+中,一个函数带有参数说明时,则参数的默认值应该在 中给出。BA) 函数定义 B) 函数声明 C) 函数定义或声明 D) 函数调用30. 在C+中,关于下列设置参数默认值的描述中,正确的是 。CA) 不允许设置参数的默认值 B) 设置参数默认值只能在定义函数时设置C) 设置参数默认值时,应该是先设置右边的再设置左边的D) 设置参数默认值时,应该设置全部参数31. 若有以下函数调用语句:f (m+n,x+y,f (m+n,z, (x,y);则此函数调用语句中实参的个数是: 。DA) 6 B) 5 C) 4 D) 332. 假设整型数i的地址为0x12345678,指针ip地址为0x21850043,则执行以下语句后,k的值为_。C int i=100; int *ip=&i; int k=*ip;A) 0x12345678 B) 0x21850043 C) 100 D) 不确定33. 有如下定义:int a5,*p; p=a; 则下列描述错误的是 。BA) 表达式p=p+1合法的 B) 表达式a=a+1是合法的C) 表达式p-a是合法的 D) 表达式a+2是合法的34. 设int a=3,*p=&a;,则*p的值是( )。D A 变量a的地址值 B 无意义 C 变量p的地址值 D 335. 指针可以用来表示数组元素,若已知语句:int a37;则下列表示中错误的是 。AA) *(a+1)5B) *(*a+3)C)*(*(a+1) D)*(&a00+2)36. 若有以下说明和语句,且0=iSetValue(5)与my.SetValue(5)等价60. 假定AB为一个类,则执行“ABa(4),b3,*p2;”语句时,自动调用该类构造函数的次数为。BA)3 B)4 C.)6 D.)961. 一个基类以私有方式派生时,其基类中的公有成员和保护成员在派生类中 AA、均成为私有成员 B、均为公有成员C、均成为保护成员 D、仍为公有成员和保护成员62. 如果基类的所有公有成员和保护成员都成为派生类的私有成员,并且都不能被其派生类的子类访问,则继承的方式为 。BA、 public B、 private C、 protected D、 以上三种都可以二、基础知识填空题 1. 面向对象程序设计的基本特点有: 、 、 和 。2. 数学式子x2+y2写成C+语言表达式是 。x*x+y*y3. 用C+表达式描述命题“a与b中有一个小于c”: 。ac|bc4. 若x=3,y=2,z=1,表达式z-=xy?x+:+y的值为 。-25. 数学表达式等价的C语言表达式是 。(a-b)*(a-b)6. 数学表达式等价的C语言表达式是 。7. C+语言中函数返回值的缺省数据类型是 。int8. C+语言中的三种基本控制结构是 结构、选择结构和循环结构。9. 除goto语句外,在循环结构中执行_语句可提前结束本次循环直接进入下一次循环。10. 若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b);在此函数调用语句中实参的个数是 。311. 执行“coutchar(A+2)endl;”语句后得到的输出结果为。 C12. 执行“cout43-18=43-18endl;”语句后得到的输出结果为_。43-18=2513. 设有说明“int i = 10; float x;”,执行“x = 5/i;”后,x的值为 0.0 。14. 设有说明“int a = 3, b = 5, m;”,则执行“m = a =3 & a + b =0|x=0) coutabcd;else coutwxyz;屏幕上显示的是_。abcd17. 字符串常量a在内存中占用 个字节。 218. 若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_。Static19. 静态变量如果没有指定初值,则其初值为 。20. 设文件f.cpp中的一个函数要访问在另一个文件中定义的int型变量x,则在f.cpp中x应定义为_。extern int x;21. 在C+ 中,函数的参数传递有 值传递 、 引用传递 、 地址传递 三种方式。22. 在类中必须声明成员函数的 原型 ,成员函数的 实现 部分可以写在类外。23. 设有说明语句“int A43=1,2, 3,4,5, 6,7,8, 9,10;”,则A02 和A22 的初始化值分别为 0、8 。24. 假定a是一个二维数组,则aij的指针访问方式为。*(ai+j)或*(*(a+i)+j)25. 设有int w34;,pw是与数组名w等价的数组指针,则pw应初始化为_。int (* pw)4=w;26. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)+;”语句后,p所指对象的值为_。2627. 若有以下定义和语句:int a4=0,1,2,3, *p; p=&a2; 则*-p的值是 。128. 定义int a1,2,3,4,5,6,*pa;表达式(*+p)+的值是_。329. 假定一个一维数组的定义为“char*a8;”,则该数组所含元素的个数为,所占存储空间的字节数为。 8 , 32 30. 假定AB为一个类,则执行“ABa10;”语句时,系统自动调用该类的构造函数的次数为。1031. 若有宏定义#define N 2#define Y(n) (N+1)*n)则执行语句z=2*(N+Y(N+2)后,z的值是_(10)_。2032. 对于定义struct int x,y; s2=1,2,3,4;表达式s0.x和s1.y的值分别是_(7)_和_(8)_。1;433. 若类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问属性_。protected34. 拷贝构造函数的形参必须是 本类对象的引用 。35. 派生类的生成过程包括 吸收基类成员 、 改造基类成员 和 添加新的成员 三个步骤。36. 一个派生类可以同时有多个基类,这种情况称为 多继承 ;一个派生类只有一个直接基类的情况,称为 单继承 。一个基类可以同时派生出多个不同的派生类,这种情况称为 多重派生 ;派生类又可以作为基类,继续派生新的类,这种情况称为 多层派生 。37. 现有基类的构造函数、成员对象的构造函数,派生类本身的构造函数,则对于派生类的构造函数,在定义对象时该三种类型的构造函数的执行顺序为:先执行 ,再执行 ,最后执行 。基类的构造函数、成员对象的构造函数、派生类本身的构造函数38. 派生类对基类继承的控制方式有 、 、 三种继承。public 、 private 、 protected39. 多态性分为动态多态性和静态多态性,函数重载属于 17 。静态多态性三、判断题 1. 作用域运算符“:”只能用来限定成员函数所属的类。( )2. C+语言是一种支持面向对象的程序设计语言。 ( )3. 在继承方式中,“private”和“protected”继承没有区别。( )4. 自增运算符(+)或自减运算符(-)只能用于变量,不能用于常量或表达式( )5. 在多继承的情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。 ( )6. “const char *p ;”语句说明了p是指向字符串的常量指针。( )7. 函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。( )8. 函数的定义可以嵌套,但函数的调用不可以嵌套( )9. 若调用一个函数,且此函数中没有return语句,则返回一个不确定的值( )10. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后()11. 对于每个可重载的运算符,它既可以重载为友元函数,又可以重载为成员函数。( )12. 派生类是从基类派生出来的,它不能再生成新的派生类。( )13. 派生类继承了基类的的全部数据成员和除了构造、析构函数之外的全部函数成员。( )14. 当类的继承方式为公有继承时,基类成员的访问控制属性在派生类中不变。( )15. C+语言的标识符对大小写是不敏感的,如 a与A是相同的标识符。 ( )16. a-b是一个合法的C+标识符。 ( )17. 如下方式定义数组是正确的:int a = 1,2,3,4,5 。 ( )18. C+中任一个类都必须定义构造函数。 ( )19. C+类成员的访问方式可以是以下三种之一:public, private, protected ( )20. C+使用类进行封装和数据隐藏。 ( )21. 每一个C+程序都必须有且仅能有一个main()函数。 ( )22. int I=1; int &j = I; 其中&符号表示取地址运算。( )23. 用const关键字修饰的标识符,在程序段中可以对其值改变 ( )24. 若有一个数组的定义:int a33; 则该数组中有一个元素为 a33 ( )25. float I=1.0; I = I % 2; 则I的值为0.5 ( )26. 在while循环中允许使用嵌套循环,但只能是嵌套while循环( )四、阅读程序题 1. 以下程序运行结果是 (11) 。1,1main() int x,y,z; x=1;y=2;z=3; x=y-=x|x+y!=z; cout x ,y; 2. 以下程序的输出结果是 1 -2 。 #include void main() int x=3; do cout(x-=2) ; while(!(-x);3. 执行下列程序段时,输出 。1,1,1,2int s1=0,s2=0,s3=0,s4=0;for(int t=1;t=4;t+) switch(t) case 4:s1+;break; case 3:s2+;break; case 2:s3+; default:s4+;couts1”,”s2”,”s3”,”s4endl;4. 以下程序运行结果是 (12) 。2,1#include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2: a+;b+;break; cout a, b;5. 以下程序输出的第一行至第三行分别是 4 3 6 、 12 3 9 和 10 3 6 。#include int a=2;void main() int b=2, c=3; +a; c+=+b; if(+a|+b|+c) couta b cendl; int a=3,c; c=b*3; a+=c; couta b cendl; a+=c; couta b cendl;6. 以下程序的输出结果是 100 200 。#include void p(int *a, int *b)int *t=a;a=b;b=t;void main()int x=100, y=200;p(&x, &y);coutx yendl;7. 以下程序的输出结果是 200 100 。#include void f(int &a, int &b) int t=a; a=b; b=t;void main() int x=100, y=200; f(x,y); coutx yendl;8. 以下程序的输出结果是 。a=5,b=2a=5,b=5#includevoid swap(int x,int &y);void main()int a(5),b;b=a/2;couta=a,b=bendl;swap(a,b);couta=a,b=bendl;void swap(int x,int &y)int temp=x;x=y;y=temp;9. 以下程序的输出结果为_(4)_。222223224#include int b=0;void fun(int a) int b=1; static int c=1; +a; +b; +c; cout abc; void main() int x=1,i; for (i=5;i8;i+) fun(x);10. 以下程序的输出结果分别是 100 和 200 。#include int abc() static int j; j+=100; return (j);void main() coutabc()endl; coutabc()endl;11. 以下程序输出的第一行至第三行分别是 a.x=20 、 b.x=20 和 T:x=20 。#include class Tpublic:static int x;int T:x=1;void main()T a, b;a.x=10; b.x=20;couta.x=a.xendl;coutb.x=b.xendl;coutT:x=T:xendl;12. 以下程序输出的第一行至第三行分别是 j=2 、 j=6 和 j=10 。#include int f(int x, int y)return x*y;void main()int i, j, (*fun)(int, int);fun=f;for(i=1; i4; i+)switch(i) case 1: case 2: j=(*fun)(i, i+1); break; case 3: j=(*fun)(i-1, i+2); break;coutj=jendl;13. 以下程序输出的第一行至第三行分别是 x=5, y=7 、 x=5, y=10 和 x=5, y=7 。#includevoid myFunction();int x=5, y=7;int main()coutx=x, y=yendl;myFunction();coutx=x, y=yendl;return 0;void myFunction()int y=10;coutx=x, y=yendl;14. 以下程序输出的第一行至第三行分别是 5 7 11 、 13 17 19 和 23 29 。#include #include #include void main() int i, flag, j, K, count=0; for(i=5; i30; i+=2) flag=2; j=2; K=sqrt(i); while(flag&j=K) if(i%j=0) flag=0; else j+; if(flag) coutsetw(5)i; if(+count%3=0) coutendl; coutendl;15. 以下程序输出的第一行至第三行分别是 1 1 、 4 1 和 x=10 。#include void fun(int n, int *s) int f1, f2; if(n=1|n=2) *s=1; else fun(n-1, &f1); fun(n-2, &f2); *s=2*f1+f2+1; coutf1 f2endl; void main() int x; fun(4, &x); coutx=xendl;16. 以下程序输出的第一行至第三行分别是 1 1 2 、 3 5 8 和 13 21 34 。#include void f(int *q1, int *q2, int *q3)*q3=*q1+*q2;void main()int i, j;int a33=1,1, *p1=a0, *p2=a0+1, *p3=a0+2;for(i=2; i9; i+) f(p1+, p2+, p3+);for(i=0; i3; i+) for(j=0; j3; j+) coutaij ;coutendl;17. 以下程序的输出结果是 s=10, k=7 。#include void main()int j, k, s, m;for(k=1; k7; k+)s=1; m=k+2;for(j=k; jm; j+,k+) s+=j;couts=s, k=kendl;18. 以下程序的输出结果是 xycd 。#include #include void main() char *p1=abcd; char str50=xyz; strcpy(str+2, p1+2); coutstrendl;19. 以下程序的输出结果是 。Point 10,20 is deleted.Point 1,1 is deleted#include class Point int 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); 五、完善程序题 1. 下面程序用于计算1到100间的所有偶数之和。#include void (1) int result=0;for (int i=0; (2)_;i+) if ( (3)_)continue; elseresult+=i;cout The sum of all even numbers range from 1 to 100 is: resultendl;return;(1)_main()_ _ _ _(2)_i 101或i=100_(3)_i %2 != 0 _2. 下面程序的功能是将三个整数按从大到小的顺序排列#include void main() int x,y,z,t; cin xyz; if(xy) t=x;x=y;y=t;if( (4) ) t=x ;x=z ;z=t ;if(yz) (5) coutxyz;(4)_ x z _ (5)_ y = z _3. 下面函数的功能是从数组arr(有 n 个元素)中找出最小元素值,并返回其引用。int &findmin(int arr, int n) int pos=0; for(int i=1; i=n-1; +i) if( arriarrpos ) pos= i ; return arrpos ;4. 下面是求前n个自然数和的递归函数(即求1+2+3+.+n)。float sum(int n)if( n=1 ) return 1;else return n+sum(n-1) ;5. 下面程序为函数指针的使用,根据所给注释完成程序。#include void print_float(float data_to_print) void(*f_p)(float) ; /声明可以指向函数print_float的指针f_pvoid main()float pi = (float)3.14159; print_float(pi) ; /通过函数名调用print_float,实参为pi f_p = print_float ; /f_p指向print_float f_p(pi) ; /通过f_p调用print_float,实参为pi6. 根据所给注释完成程序。#include void main()int array223=11,12,13,21,22,23; /声明二维int型数组array2for(int i=0;i2;i+)cout *(array2+i) 或 array2i endl; /输出数组array2第i行的首地址for(int j=0;j3;j+)cout *(*(array2+i)+j) 或 arrayij ; /输出数组array2第i行元素值coutendl;7. 根据所给注释完成程序。#includevoid main() int *i_pointer ; /声明int型指针i_pointerint i;i i_pointer=&i ; /取i的地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年漳州两家企业招聘真题
- 供配电工程知识培训总结课件
- 特种设备(锅炉、压力容器)培训考试试题及答案
- 临床思维培训-消化系统专题考核试题与答案
- 2025年方山县关于市场主体倍增工程的会议记录
- 2025年碳纤维针刺预制件合作协议书
- 2025年医院精神科噎食患者应急预案及演练脚本
- 2025年铸造造型材料项目提案报告
- 2025年表面改性金属材料合作协议书
- 2026届清华大学中学生标准学术能力诊断性测试化学高二上期中质量检测模拟试题含解析
- 台球厅消防知识培训课件
- 2025便利店加盟的合同样本
- 评职称老师考试题目及答案
- 2025年内分泌风湿免疫科进修人员出科理论考试试题及答案
- 2025至2030中国防砸安全鞋行业运营态势与投资前景调查研究报告
- 学堂在线 高技术与现代局部战争 章节测试答案
- 2025年医疗器械仓库管理培训试题及答案
- 助焊剂存储管理办法
- 乙型肝炎防治知识教学课件
- 环卫安全事故处理方案
- 七十岁老年人三力测试驾考题库
评论
0/150
提交评论