C++期中考试试卷.docx

上传人:1513****116 文档编号:94997527 上传时间:2023-08-13 格式:DOCX 页数:15 大小:41.24KB
返回 下载 相关 举报
C++期中考试试卷.docx_第1页
第1页 / 共15页
C++期中考试试卷.docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《C++期中考试试卷.docx》由会员分享,可在线阅读,更多相关《C++期中考试试卷.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C+语言程序设计 期中考试试题考试时间:2023 年 4 月 17 日姓名:学号:班级:一、选择题每题 1 分,共 40 分以下各题A、B、C、D四个选项中,只有一个选项是正确的。1. 关于友元,以下说法错误的选项是 A) 假设类 A 是类B 的友元,那么类B 也是类A 的友元B) 假设函数 fun被说明为类 A 的友元,那么在 fun中可以访问类 A 的私有成员C) 友元函数可以削减系统开销,提高效率。D) 假设类 A 是类B 的友元,那么类A 的全部成员函数都是类B 的友元A2. 下面选项中不属于面对对象程序设计特征的是 。A继承性B多态性C类比性D封装性C3. 以下语句中的x 和 y 都

2、是 int 型变量,其中错误的语句A )x=y+;B )x=+y;C )x+=y;D )+x=y; C4. 为了提高函数调用的实际运行速度,可以将较简洁的函数定义为 。A) 内联函数B)重载函数C)递归函数D)函数模板A5. 以下关于 C+函数的表达中,正确的选项是 。A每个函数至少要具有一个参数 B每个函数都必需返回一个值 C函数在被调用之前必需先声明 D函数不能自己调用自己C6. 有以下程序#include int i = 0;void funstatic int i = 1; std:couti+”,”;std:couti”,”;int mainfun;fun; return 0;程序执

3、行后的输出结果是 A)1,2,1,2,B) 1,2,2,3,C) 2,0,3,0,D) 1,0,2,0, D7. 以下字符串中,可以用作 C+标识符的是Ay_2023 Bint C3d Dfoo-1 A8. cout 2-5 endl;的输出结果为A7B-5C0.03125D-7 D9. 以下关于类和对象的表达中,错误的选项是 。A一个类只能有一个对象 B对象是类的具体实例 C类是对某一类对象的抽象 D类和对象的关系是一种数据类型与变量的关系A10. 设 int a=3,b=2;,则+a*b+的结果是。A6B8C9D12 B11. 在 32 位计算机中,一个 int 型数据所占用的内存长度为字

4、节。A2B4C6D8 B12. 以下十六进制整型常量的写法中,错误的选项是。A0xafB0C0X1b B13. 以下变量定义中,正确的选项是 Aint m,n,x,y; float x,z;Bchar c1,c2=”c”;Cdouble age,do;Dfloat f1,_time=0; double score_; D14. 假设有下面的函数调用:fun(a+b+c+d,3,min(a,b),n) 则 fun 函数的实参个数是。A3B4C5 B15. 有如下函数定义:void func(int a, int& b) a+; b+;假设执行代码段: int x=2,y=2; func(y,x)

5、;则变量x 和y 的值分别是。A2 和 2B3 和 3C3 和 2 C16. 在语句 cout n;switch(n)case 1:cout ”1”;case 2:cout ”2”;case 3:case 4:cout ”3”; break; default:cout ”4”;时,假设键盘输入 1,则屏幕显示A1B14C12D)123 D19. 有如下程序:int x = 4; dox-=3;cout x;while(!(-x);执行这个程序的输出结果是。A.1 B41C1-2D死循环C20. 枚举类型定义语句为: enum Token NUMBER ,NAME, PLUS = 5, MINU

6、S, PRINT = 10 ;则以下表达中错误的选项是 A) 枚举常量 NAME 的值为 1B) 枚举常量 NUMBER 的值为 1C) 枚举常量 MINUS 的值为 6D) 枚举常量 PRINT 的值为 10 B21. 执行语句序列:int i=0; while(i 25) i+=3; couti; ,输出结果是 。A24B25C27D28 C22. 有如下程序: #include using namespace std; void fun (int x)cout x endl;int maincout fun (23); return 0;如上程序的输出为A23B2323C编译错误C23.

7、 有如下程序: #include using namespace std;void swap(int& x, int y) int t = x; x = y; y = t;D运行错误int main( )int a=23,b=42; swap(b, a);cout a “, “ b endl; return 0;执行后的输出结果是 。A42, 42B23, 23C23, 42D42, 23 B24. 程序中已经定义了函数 test,其原型是int test(int, int, int);,则以下重载形式中正确的选项是A )char test(int,int,int);B )double tes

8、t(int,int,double); C )int test(int,int,int=0);D )float test(int,int,float=3.5F); B25. 有如下程序段:int i=1; while (1) i+;if(i = 10) break;if(i%2 = 0) cout ”*”;执行这个程序段输出字符*的个数是A10B3C4D5 C26. 计算斐波那契数列第n 项的函数定义如下:int fib(int n)if (n = 0) return 1;else if (n = 1) return 2;else return fib(n-1)+fib(n-2);假设执行函数调

9、用表达式 fib(2),函数 fib 被调用的次数是A1B2C3D4C27. 有如下程序: #include using namespace std; int mainvoid function(double val); double val;function(val); coutval; return 0;void function(double val) val = 3;编译运行这个程序将消灭的状况是 A编译出错,无法运行B输出:3 C输出:3.0D输出一个不确定的数D28. 有如下类声明:class Foo int bar; ;则 Foo 类的成员 bar 是 。 A公有数据成员B公有成

10、员函数C私有数据成员D私有成员函数D29. 假设有语句 “int i=1,j=2; coutj/I+i/j;”, 则输出结果是A)0B)2.5C)0.5D)2 D30. 在类声明中,紧跟在“public:”后声明的成员的访问权限是 。A私有B公有C保护D默认B31. 关于函数重载,以下表达中错误的选项是A 重载函数的函数名必需一样B 重载函数必需在函数形参个数或类型上有所不同C 重载函数的返回值类型必需一样D 重载函数的函数体可以有所不同C32. 以下关键字不能用来声明类的访问权限的是。Apublic Bstatic Cprotected Dprivate B33. 在以下函数原型中,可以作为

11、类AA 构造函数的是 。Avoid AA(int);Bint AA( );CAA(int)const;DAA(int); D34. 有如下程序: #include using namespace std; class AAint n; public:AA(int k):n(k) int get( ) return n;int get( )const return n+1;int main( )AA a(5);const AA b(6); couta.get( )b.get( ); return 0;执行后的输出结果是 。A55B57C75D77 B35. 有如下类定义:class AAint

12、a; public:int getRefconst return &a; /int getValueconst return a; / void set(int n)const a=n; /friend void show(AA aa)const couta; /;其中的四个函数定义中错误的选项是 ABCD D36. 有如下程序: #include using namespace std; class MyClasspublic:MyClass cout *; MyClass(MyClass& a) cout #; MyClass cout ; ;int mainMyClass a; MyCl

13、ass b(a); return 0;运行时的输出结果是。A)*#B)#* C37. 有如下程序: #include using namespace std; class testprivate:int a; public:C)*#D)#*testcout“constructor“endl; test(int a)coutaendl; testconst test& testa= test.a;cout”copy constructor“endl;testcout“destructor“endl;;int main( )testA(3); return 0;运行时输出的结果是A) 3B) co

14、nstructor destructorC) copy constructor destructorD) 3destructorD38. 对于一个类定义,以下表达中错误的选项是 A) 假设没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B) 假设没有定义缺省的构造函数,编译器将确定生成一个缺省的构造函数C) 假设没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D) 假设已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数B39. 有如下类定义:class Foopublic:Foo(int v) : value(v) / Foo / private:Foo / in

15、t value = 0; / ;其中存在语法错误的行是ABCDD40. 有以下程序#include using namespace std; class MyClasspublic:MyClass(int n)number = n;MyClass(MyClass &other) number=other.number;MyClass private:int number;MyClassfun(MyClass p)MyClass temp(p); return temp;int mainMyClass obj1(10), obj2(0); MyClass obj3(obj1); obj2=fun

16、(obj3);return 0;程序执行时,MyClass 类的拷贝构造函数被调用的次数是A)5B)4C)3D)2 B二、填空题共 60 分下面 1-8 每题 1 分,9-20 每题 2 分,21-26 每题 3 分,27-28 每题 5 分。1. C+是面对的程序设计语言。对象2. 在 C+语言中,032 表示一个 八 进制数,而 0x23 表示一个 十六 进制数。3. 高级语言屏蔽了机器的细节,提高了语言的。抽象层次4. C+中只有两个规律常量:true 和。false5. 一个函数的原型是:int fn(double a);假设要以 5.27 为实参调用该函数,应使用表达式。fn(5.2

17、7)6. 非成员函数应声明为类的函数才能访问这个类的 private 成员。友元7. 假设有定义语句”int x=20,y=20 z=10;”,则表达式 xz&y=z 的布尔值为。false8. 在类的对象被创立的时候,函数会被系统自动调用。构造9.-7 的二进制补码表示8 位为。1111100110. 执行语句序列:int a=1,b=1; b=(a=3*4,a=a*5); coutbendl;输出结果为。6011. 假设有定义语句:int a=3,b=2,c=1;,则表达式 ab?a:b 的值是。212. 执行语句序列: int x=10,&r=x; r+;coutx”-”rendl;输出

18、结果为。11-1113. 以下函数的功能是推断字符串str 是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函数。bool fun(char *str)int i=0, j=0;while (strj)j;+for(j-; i=14. 下面程序运行的结果是。*#*#*#*#$#include using namespace std; void mainint i;for (i=1;i=6;i+)if(i%3) cout“*“; elsecontinue;cout“#“;cout “$“endl;15. 递归函数f 的定义如下:int f (int n)if(n2

19、) return 1; else return n*f(n-2);则函数调用语句 f(6)的结果是 。2416. 执行以下语句后,变量 sum 的值是.7 int sum =1;for (int i=1;i=i;j-)sum+;17. 以下程序的输出结果为Object id=1 Object id=2请将程序补充完整。#include using namespace std; class Pointpublic:Point(int xx=0, int yy=0) X=xx; Y=yy; countP+; Point( ) countP-; static void GetC( ) cout“ O

20、bject id=“endl; private:int X,Y;static int countP; 静/态数据成员的初始化int Point:countP=1; int main( )Point:GetC( );Point A(4,5);A.GetC( );return 0;18. 如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容。class myClassint data; public:myClass(int value); /构造函数myClass(const anotherObject);/拷贝构造函数myClass&19. 假设下面程序运行时输出结果为1

21、,A,10.12,B,3.5请将程序补充完整。#include using namespace std;int mainvoid test(int, char, doublec)=;3.5 test(1, ”A”, 10.1 );test(2, ”B”); return 0;void test(int a, char b, double c) couta”,”b”,”cendl;20. 有如下类声明:Class MyClassinti;private:intj;public:;intm,n;其中,私有成员的数量为。2 21写出执行完以下代码段之后指定变量的值:bool x =false,y=t

22、rue,z=false; x=x&y|z;false y=x|y&z;falsez= !(x!=y) | (y=z)t;rue则 x=; y=; z=;22. 字面常量 42, 4.2, 42L 的数据类型分别是、。int double long23. 下面程序的运行结果为。43#include class Aint num; public:A(int i)(num=+i; A(A &a)num=a.num+;void print(coutnum;void mainA a(2),b(a);a.print;b.print;24. 下面程序段的运行结果为:a=-5int i=0,a=0,s=1;

23、doa=a+s*i; s=-s; i+;while(i10);cout “a=“aendl;25. 函数f 的定义如下:int f (int n) coutn; return +n;则函数调用语句 f(f(2)的结果是 。2326. 有 4 个由用户任意输入的整数a、b、c 和 d,要求依据从大到小的挨次输出,请补充以下程序使其满足要求。#include using namespace std; void mainint a, b, c, d, t; cin abcd;if (ab) t =a; a=b; b=t;if (ac) t =a; a=c; c=t;if (ad) t =a; a=d

24、; d=t;if ( ) t =b; b=c; c=t;bcif (bd) t =b; b=d; d=t;if (cd) t =c; c=d; d=t;cout a“,“b“,“c“,“dendl;27. 实现两个重载函数,使得下面程序的结果为:34#include using namespace std;int mainint a=2,b=3,c=4;double x=5.5,y=2.1,z=4; coutmiddle(a,b,c)endl; coutmiddle(x,y,z)endl; return 0;28. 有如下程序: #include using namespace std; cl

25、ass Exampublic:void printcoutabendl; private:int a; const int b;int mainExam obj(1,2);obj.print; return 0;实现 Exam 类的构造函数和析构函数,使得程序的输出结果为: 开头构造12开头析构2023 年秋季学期计算机程序设计根底期中试题 A 卷答卷学号 一、选择题班级 姓名 教师名 得分 1-5: 6-10: 11-15: 16-20: 21-25: 26-30: 31-35: 36-40: 二、填空题假设有多个填空,答案之间用空格或者顿号隔开1: 2: 3: 4: 5: 6: 7: 8:

26、 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27.#include using namespace std;int mainint a=2,b=3,c=4;double x=5.5,y=2.1,z=4; coutmiddle(a,b,c)endl; coutmiddle(x,y,z)endl; return 0;28.#include using namespace std; class Exampublic:void printcoutabendl; private:int a; const int b;int mainExam obj(1,2);obj.print; return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁