下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计课程复习资料一、单项选择题:1. 下列字符串中可以用作C+ 标识符的是ld2. 定义变量int a=6 ,则 a+ 的值是 .6 C3. 已知字母A 的 ASCII 码为65,则表示字符常量A 错误的是 A. '101' B. 'x41' C. 65 D.“ A”4. 结构化程序由三种基本结构组成,不包括A. 顺序结构B. 选择结构C. 控制结构D. 循环结构5. 己知有定义:const int D 5;int i=1;double f=;char c=15;则下列选项错误的是 A.+i;B. D-;C. c+; D. -f;6. 若有定义为“int
2、 *r =new int 10; ”,则释放指针所指内存空间的操作是A. delete r; B. delete *r C. delete r; D. delete r ;7. 下列哪个是C+语言的不正确的标识符?B. Ab18. 下列哪个是C. bgcC+语言的合法的字符常量?D. intA. ” 0B. '054'9. 定义整型变量x,y,zC. 'x89'并赋初始值D. '092'6 的正确语句是C. x=y=z=6; D. int x,y,z=6;A. int x=y=z=6; B. int x=6,y=6,z=6;10. 用C+语言编写
3、的代码程序A. 可立即执行C. 经过编译即可执行B.D.是一个源程序经过解释才能执行11. 将两个字符串连接起来组成一个字符串时,选用的函数是A. strlen () B. strcpy () C. strcat () D. strcmp ()12. 在程序中,预处理命令开头的字符都是 A. * B. # C. & D. 13. 在 C+语言中,表示一条语句结束的符号是 A. “ #”B. “ ; ” C. “ ” D. “下面的循环语句中循环体执行的次数为 for(int i=0; i<n; i+) if (i>n/2) break; 22+1C.n/2-115. 在下面
4、的一维数组定义中,有语法错误的语句是 A. int a =1,2,3; B. int a10=0;C. int a ;D. int a5;16. 下面的保留字中,不能作为函数的返回类型 A. void B. int C. new D. long17. 下面的函数声明中,“ void BC(int a, int b); ”的重载函数是 A. int BC(int x, int y);B. void BC(int a, char b);C. float BC(int a, int b, int c=0); D. int BC(int a, int b=0);18. 假定 AB 为一个类,则该类的复
5、制构造函数的声明语句为 A. AB&(AB x); B. AB(AB x); C. AB(AB* x); D. AB(AB&);19. 表达式(1,2,3,4 )的结果是 A. 1 B. 2 C. 3 D. 420. 在函数中如果不说明变量的存储类型,则默认的存储类型是 A. auto B. static C. extern D. register 21. 下面字符序列中,合法的C+常量是 B.5LD.'AB'a 声明的自动型变量a 在没有赋值的情况下,其值为 B.-1C.1 D.随机数23. 设 “ int f(int); ”和 “ int g(int); ”
6、 是函数 f 和 g的原形, 以下将 f 作为语句调用的是 A. g(f(3) B. f(g(3) C. g(f(3)+2) D. p=f(g(3) 1)24. 下面对构造函数和析构函数正确定义的项是 ), X:X() B.void X:X(), void X:X()A.X:X( 参数 )参数 ), void X:X( 参数 C. X:X( 参数 ), X:X( 参数 ) D. void X:X( 25.变量生存期是指B. 变量在内存中分配存储单元到被释放期间A. 变量定义D. 可执行代码的生存期C. 程序的运行为 < x b26. 以下选项中C+表达式不能正确表示的数学关系a A. a
7、<x && x<=bB. x<=b && a<xC. !(a>=x) && !(x>b) D. a<x<=b下列定义中,定义指向数组的指针27.p 的是 ; A. int *p5 B. int (*p)5 C. (int *)p5 D. int *p 设有以下定义:28. void f1(int * m, long & n);int a;long b; 则以下调用合法的是 (a,b)(&a,b)(a,&b)(&a,&b) 29. 下列各类变量中,不是局部变量的
8、是int x;f(int w)z;int y;( 定义在函数外) , m赋值为5 的一个对象。如果要给是一个指向类30. 已知 pA数据成员m的指针,A1 是类 A ( ) 正确的语句。>p=5C.A.*p=5D.*=5以下选项中,决定函数的返回值的类型是 31.A. 调用该函数的主调函数类型语句中的表达式类型C. 定义函数时所指定的返回值类型D. 调用函数时临时决定 for语句的循环次数为32. 下面 for(int i=0,x=0; !x && i<=5; i+); 无穷次 A. .5 C33. 在下面的字符数组定义中,有语法错误的语句是 愠 ?崰尽扡摣晥屧?愠
9、 ?硜礫?尵a15= '1', '2'a10= '5' 34. 若用数组名作为函数调用的实参,传递给形参的是数组中第一个元素的值A. 数组的首地址B.数组元素的个数D.C.数组全部元素的值自动调用该类构造函数的次数为”语句时则执行“为一个类假定 35.AB,AB a(4),b5,*p2;, A. 6 B. 7 C. 9 D. 11fstream 当使用 36. 流类定义一个流对象, 并打开一个磁盘文件时,文件的隐含打开方式为 没有 A. ios:in B.ios:out C. ios:in | ios:out D.二、 填空题:。 a 中所存字符
10、串的语句为a 是一个字符数组,则使用输入输出流对象cout 向屏幕输出数组1. 若 函数建立该对象并进行初始化。C+编译系统自动调用 2.当一个对象定义时,传递两种。语言的参数传递机制包括值传递和+ 1 。 运算首先访问 ,然后使p 的值增 4. 假定 p 是一个指针,则(*p)+ ,则 a116, 被初始化为 。5. 假定对二维数组a34 进行初始化的数据为2, 5,6. 设 px 指向一个类的动态分配的对象,则执行“delete px; ”语句时,将自动调用该类的7. 变量的基本类型有、实型、字符型和枚举型。8. 语法的三种基本结构为顺序结构、选择结构和结构。9. 一个指针指向一个Data
11、 类对象,它保存着该对象的,相应的指针类型为Data 类。10. 若 do 循环的“尾”为“while(+i<10) ”,并且 i 的初值为0,同时在循环体中不会修改i 的值,则循环体将被重复执行次后正常结束。11. 假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为12. 当在程序中执行到 语句时, 就立即结束本层循环类语句或switch 语句的执行。13. 字符和字符串常数的定界符分别为 和双引号() 。14. 应用程序中只有一个函数,这个函数的名称是。15. 在 switch 语句中,每个语句标号所含关键字case 后面的表达式必须是表达式。16. 假定 p
12、 所指对象的值为25, p+1 所指对象的值为46,则*p+ 的值为 。17. 假定要动态分配一个类型为Worker 的具有 n 个元素的数组,并由 r 指向这个动态数组,则使用的语句为Worker * r= 。18. 设有如下程序结构:class Box ;void main( ) Box A,B,C; 该程序运行时,分别调用构造函数和析构函数次。19. 若有语句int a=6; ,则计算表达式a+=a-=a*a 后, a 的值为 。20. 在进行函数调用时,将把实参的传递给值参数,把实参数的地址传递给引用参数。121. 关系表达式x+y>5 的相反表达式为 。 abc 的表达式是,则
13、能正确表示数学式、c 均被定义成整型,所赋值都大于122. 假设在程序中a、 b(不使用强制类型转换)。23. 假定 a 是一个一维数组,则ai 的指针访问方式为 。24. 对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的 实现。+中的标识符只能由字母、数字和组成。+语句 cout<<<<120; 可以用 8 进制数表示(输出)120 。27. 利用“对象名 . 成员变量”形式访问的对象成员仅限于被声明为的成员。+在调用一个函数的过程中,可以直接或间接地调用该函数本身, 这种调用称为调用。29. 在C+程序中包含一个头文件或程序文件的
14、预编译命令为 。30. 假定一维数组的定义为“int a8; ”,则该数组所含元素的个数为。31. 十六进制常量前面应该加为前缀。32. 变量一般需要先赋初值再参与运算,变量没有赋初值时,将由系统自动置为0。33. 当程序中执行到语句时,将结束所在循环语句中循环体的一次执行。+中规定,数组元素的下标从开始。35. 假定有定义int *p ,则指向p 变量的指针变量pp 定义语句为。36. 类 test 的析构函数名是 。三、判断题: ” 可以用于变量,也可以用于常量。- 中, 自减运算符“ C+在 1. 语句中必须有break 语句,否则无法退出switch 语句。 3. 若 S 表示一条C+
15、语句, while(1)S 必定是无限循环。 4. 若有说明:int *p1,*p2,m=3,n; 则 p1=&m;p2=p1; 是正确的赋值语句。 5. 在 C+语言中,类中的成员函数能存取类中的私有数据。 6. 控制格式输入输出的操作子oct 不是设置域宽的。 7. 在 C+中,0127 是一个合法的整数,最高位的0 实际上是不必要,其值就是127。 8. 如果 x 是一个整型变量,则语句“int *p=new intx; ”是正确的。 9. 数组是若干相同类型的数据的集合。 10. 在 C+语言中,可以使用new运算符创建的对象或对象数组,可以使用运算符delete 删除之。 1
16、1. 若类 A是类B的友元类,且类B是类C的友元类,则类A也是类C的友元类。 12. 对于 ofstream 类对象 file , feof 成员函数的返回值为真表示打开文件失败。 13. 在 switch 语句中,switch 后面的表达式可以为任意类型。 14. 'n' 、 'x6A' 、 '101' 均是C+的字符常量。 15. 一个变量的地址就称为该变量的“指针”。 16. 如果 (x=y) ,则 (*x=*y) 。 17. 函数体内声明的静态变量,至多只会被初始化一次。 18. 构造函数和析构函数都不能重载。 19. 在C+语言中,wh
17、ile 语句的循环体有可能一遍都不执行,而do while 语句的循环体至少执行一遍。 20. 在 C+的命名标识符中,大小写字母是不加区分的。 21. 引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 22. 在C+中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。 char *p 说明了 p 是指向字符串的常量指针。 24. 说明或定义对象时,类名前面不需要加class 关键字。 25. 在C+中,空语句表示什么都不做,因此毫无意义。 26. 预处理命令是在进行编译前执行的,然后再进行正常编译。 27. 语句“ char
18、c='c' char p=&c; ”是错误的。 28. 在一个被调用函数中,一个return 语句可返回多个值给调用函数。 29. 静态成员变量是整个类的所有对象共用的。 函数只能按规定向文件写入所指定的字符数。 +中,任何一个表达式加上一个分号就构成一个语句。 32. 在说明语句“int a(15), &b=a, *p=&a; ”中, b 的值与 *p 的值是相等的。 33. 在C+中,函数声明时要用函数原型,即定义函数时的函数头部分。 循环中,循环变量的作用域是该循环的循环体内。 35. 在传值调用中,要求实参与形参的类型完全一致并且个数相等。 36
19、. 使用 class 定义的类成员默认的访问权限是私有的(private ) 。 37. 在C+中,条件运算符的结合方向为从左到右。 四、写出程序的运行结果:1.#include <>void main()int a=10, b=15;a*=3;int b=a+20;cout<<b<<' 'cout<<b<<endl; : 运行结果2.#include<> int SD(int a, int b, char op) switch(op) case '+': return a+b;case &
20、#39;-': return a-b; void main() int x=20, y=8;cout<<SD(x,y,'+')<<' '<<SD(x,y,'-')<<endl; 运行结果3.#include <> void main( )6;b02=12, b12=18;cout<<*b<<<<*(b+1)<< <<*(b+1)<<<<*(*(b+1)+2)<<cout<<
21、b02+b12+b22<<endl;运行结果:4.#include<>void main()char ch;cin>>ch;switch(ch)case 'A':case 'a': cout<<<<' ' break;case 'B':case 'b': cout<<<<' ' break;case 'C':case 'c': cout<<<<'
22、9; break;default: cout<<ad!;break;以上程序运行时,分别输入Acb,则运行结果:5.#include<>void main()int s1=0, s2=1;for(int i=2; i<5; i+)s1+=i;s2*=i;cout<<s1<<','<<s2<<endl;运行结果:6.#include<>void ff(int x) cout<<f(int): <<x<<endl; void ff(double x) cou
23、t<<f(double): <<x<<endl;void main()float a;ff(a);char b('a');ff(b);运行结果:7.#include<>void main()int s=0;for(int i=1;i<7;i+=2)s+=i*i;cout<<s=<<s<<endl;运行结果:8.#include<>void main()int a9=3,5,7,9,11,13,15,17,25;int *p=a;for(int i=0;i<9;i+)if(
24、i+1)%3=0)cout<<*(p+i)<<' 'cout<<endl;运行结果:9.#include <>class Apublic:A()cout<<A()cout<<class B:public Apublic:B()cout<<B()cout<< ;void main()B b;运行结果:10.#include<>#include<>int SC(int a, int b, int c)if(a>b) a=b;if(a>c) a=c; r
25、eturn a;void main()int x,y,z;x=5,y=15,z=25;cout<<SC(x,y,z)<<endl;运行结果:11.#include <>const int n=5;void main()int ann=3,2,4,1,5, 8,7,2,5,6, 6,9,1,4,3, 5,5,3,6,2, 2,8,1,8,6;int s=0;for(int i=0;i<n;i+)s+=aii+ain-i-1;if(n%2=1)s-=an/2n/2;cout<<s;运行结果:12.#include <>class s
26、int i,j;public:void setij(int a,int b)i=a,j=b; int GetMul() return i*j; ;void main( )s *p;p=new s3;for(int j=0;j<3;j+) pj.setij(j,j); etMul()<< ;delete p;运行结果:13.#include<>int c;void f1(int x,int *sum)static int y;x+; y+; c=c+y;*sum=(x+y)/c;void main()int b=100;f1(1,&b);cout<&l
27、t;b<< <<c<<endl;f1(2,&b);cout<<b<< <<c<<endl;运行结果:14.#include<>void main()int i, *d=new int5;for(i=0;i<5;i+)di=2*i+1;cout<<di<<' 'deleted;运行结果:15.#include<>class ABint a;public:AB(int aa=0)a=aa;AB( )cout<<a<<
28、;endl;class B:public ABint b;public:B(int aa=0, int bb=0):AB(aa)b=bb;B( )cout<<b;void main( )B x(5),y(6,7);运行结果:16.#include<>int LB(int *a, int n)int s=1;for(int i=0;i<n;i+) s*=*a+;return s;void main()int a5=1,2,3,4,5;cout<<LB(a,5)<<endl;运行结果:17.#include <>int f(int
29、a)int b=0;static int c=3;b+, c+;return(a+b+c);void main( )int a=2,I;for(I=0;I<3;I+)cout<<f(a)<<endl;运行结果:18.#include<>class Aint *a;public:A(int x) a=new int(x);cout<<*a;A() delete a;cout<<0; ;void main()A x(3),*p;p=new A(5); delete p;: 运行结果 五、完成程序:1. 完成以下程序,计算s=1+12
30、+123+1234+12345 。void main( ) int t=0, s=0, i;for( i=1; i+)t = i +;s = s + t;cout<<s<<endl;回答:2. 完成以下程序,求数组中的最大元素值和最小元素值。#include<>void main() int a8=46,38,72,55,24,63,50,37;int max=*a, min=*a;for(int *p=a+1;p<a+8;p+)if() max=*p;if() min=*p;cout<<max<<' '<
31、<min<<endl;回答:3. 完成以下程序,输出斐氏数列的前20 项, 菲波纳契额数列具有这样的性质:F0=1, F1=2,FN=FN-1+FN-2。#include<> void main()int i;long f20=1,2;for(i=2 ; i+)fi =;for(i=0 ; i<20 ; i+) cout<<fi<< ;回答:4. 从键盘输入一个4 行 4 列的实数矩阵到一个二维数组中,完成以下程序,之积。#include<>void main() double a44=0,r=1;int i,j;for(
32、i=0;i<4;i+)for(j=0;j<4;j+)20i n!的值,即求(1!)+(1!+2!)+(1!+2!+3!)+ ?i ?1n?1+(1!+2!+3!+ +20!) 。void main()int i,n;double s=0,t;for(i=1;i<=20;i+);for(n=1;n+) t=t*n;s=s+t; cout<<!+(1!+2!)+ +(1!+2!+ +20 !)=<<s<<endl;回答:求出主对角线上元素成以下程序,计算6. 有一个数列,它的第一项为5, 第二项为8, 以后每一项都是它的前两项之和,产生出此数列
33、的前10 项,并依次显示出来。#include<>void main( )int a10;a0=5;完成以下程序,for(int i=2;i<10;i+) ai=for(i=0;i<10;i+)cout<<ai<< cout<<endl; 回答:六、程序改错:1. 要求下面程序的输出结果为“ 100 20, 在第 1-7 行中存在着3 条语句错误,指出错误语句行的行号,并改正错误。#include <>class Sint n;public:S() n=20; S(int nn) n=nn; ;void Show() cout<<n<< ; ;void shows(S &y) 求下面程序的输出结果为“2 3 1, 在第 1-12 行中存在着3条语句错误,指出错误语句行的行号,并改正错误。#include <>class P int n;public:void Setn(int val) n=val; void Show();void P:Show()et
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险招标采购制度
- 采购部门管理制度范本
- 采购锁证索票制度
- 采购项目建设管理制度
- 采购食品安全管理制度
- 重大生产原料采购制度
- 钉钉采购审批管理制度
- 食堂物资采购制度及流程
- 八年级数学下册2025-2026学年第一次月考测试卷(19-20章)(含答案)-人教版(2024)八下
- 第19章 二次根式(章节复习检测提高卷)原卷版-人教版(2024)八下
- 2025年腹部外伤试题及答案
- 污水池清理专项安全施工技术方案
- 赛马比赛活动方案
- 江苏省专升本2025年美术学艺术概论试卷(含答案)
- 矿井水、生活污水处理站建设工程投标文件
- 职业调查报告:室内设计行业分析
- 《农村供水水质管理技术导则》编制说明
- 牡丹养殖知识培训内容课件
- 第三节 管理在线学习资源教学设计小学信息科技川教版2024三年级下册-川教版2024
- 5.2《凝聚价值追求》教学设计 2025-2026学年度道德与法治九年级上册 统编版
- 食品安全管理验证计划及报告范本
评论
0/150
提交评论