ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:28.02KB ,
资源ID:10982516      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10982516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++程序设计复习题及参考答案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++程序设计复习题及参考答案.docx

1、C+程序设计复习题及参考答案C+程序设计课程复习资料一、单项选择题:1.下列字符串中可以用作 C+标识符的是 A.goto B.Student C.123 D.kld2.定义变量 int a=6,则 a+的值是 A.7 B.6 C.5 D.43.已知字母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=0.32;char c=15;则下列选项错误的是 A.+i; B. D

2、-; C. c+; D. -f;6.若有定义为“int *r =new int 10;”,则释放指针所指存空间的操作是 A. delete r; B. delete *r C. delete r; D. delete r ;7.下列哪个是 C+语言的不正确的标识符? A._No1 B. Ab1 C. bgc D. int8.下列哪个是 C+语言的合法的字符常量? A. ”0” B. 054 C. x89 D. 0929.定义整型变量x,y,z并赋初始值6的正确语句是 A. int x=y=z=6; B. int x=6,y=6,z=6; C. x=y=z=6; D. int x,y,z=6;1

3、0.用 C+语言编写的代码程序 A.可立即执行 B.是一个源程序C.经过编译即可执行 D.经过解释才能执行11.将两个字符串连接起来组成一个字符串时,选用的函数是 A. strlen () B. strcpy () C. strcat () D. strcmp ()12.在程序中,预处理命令开头的字符都是 A. * B. # C. & D. 13.在 C+语言中,表示一条语句结束的符号是 A. “#” B. “;” C. “” D. “/”14.在下面的循环语句中循环体执行的次数为 for(int i=0; in/2) break;A.n/2 B.n/2+1 C.n/2-1 D.n-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. register21.下面字符序列中,合法的 C+常量是 A.078 B.5L C.9e7.5 D.AB22.int a声明的自动型变量 a在没有赋值的情况下,其值为 A.0 B.-1 C.1 D.随机数23.设“int f(int);”和“int g(int);”是函数f和g

6、的原形,以下将f作为语句调用的是 A. g(f(3) B. f(g(3) C. g(f(3)+2) D. p=f(g(3)1)24.下面对构造函数和析构函数正确定义的项是 A. X:X(参数), X:X() B. void X:X(), void X:X()C. X:X(参数), X:X(参数) D. void X:X(参数), void X:X(参数)25.变量生存期是指 A.变量定义 B.变量在存中分配存储单元到被释放期间C.程序的运行 D.可执行代码的生存期26.以下选项中 C+表达式不能正确表示的数学关系axb为 A. ax & x=b B. x=b & a=x) & !(xb) D.

7、 axp=5 C.A.*p=5 D.*A1.p=531.以下选项中,决定函数的返回值的类型是 A.调用该函数的主调函数类型 B.return语句中的表达式类型C.定义函数时所指定的返回值类型 D.调用函数时临时决定32.下面for语句的循环次数为 for(int i=0,x=0; !x & i=5; i+);A.无穷次 B.5 C.6 D.733.在下面的字符数组定义中,有语法错误的语句是 A.char a20=abcdefg B.char a =x+y=55C.char a15= 1, 2 D.char a10= 534.若用数组名作为函数调用的实参,传递给形参的是 A.数组的首地址 B.数

8、组中第一个元素的值C.数组全部元素的值 D.数组元素的个数35.假定AB为一个类,则执行“AB a(4),b5,*p2;”语句时,自动调用该类构造函数的次数为 A. 6 B. 7 C. 9 D. 1136.当使用fstream流类定义一个流对象,并打开一个磁盘文件时,文件的隐含打开方式为 A. ios:in B. ios:out C. ios:in | ios:out D.没有二、填空题:1.若a是一个字符数组,则使用输入输出流对象cout向屏幕输出数组a中所存字符串的语句为_。2.当一个对象定义时,C+编译系统自动调用_函数建立该对象并进行初始化。3.C+语言的参数传递机制包括值传递和_传递

9、两种。4.假定p是一个指针,则(*p)+运算首先访问_,然后使p的值增1。 5.假定对二维数组a34进行初始化的数据为2, 5, 6, 2,8,7,则a11被初始化为_。6.设px指向一个类的动态分配的对象,则执行“delete px;”语句时,将自动调用该类的_。7.变量的基本类型有 、实型、字符型和枚举型。8.语法的三种基本结构为顺序结构、选择结构和 结构。9.一个指针指向一个Data类对象,它保存着该对象的_,相应的指针类型为Data类。 10.若do循环的“尾”为“while(+i5的相反表达式为_。22.假设在程序中a、b、c均被定义成整型,所赋值都大于1,则能正确表示数学式的表达式

10、是_(不使用强制类型转换)。23.假定a是一个一维数组,则ai的指针访问方式为_。24.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的_实现。25.C+中的标识符只能由字母、数字和_组成。26.C+语句cout_120; 可以用8进制数表示(输出)120 。27.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为_的成员。28.C+在调用一个函数的过程中,可以直接或间接地调用该函数本身,这种调用称为_调用。29.在C+程序中包含一个头文件或程序文件的预编译命令为_。30.假定一维数组的定义为“int a8;”,则该数组所含元素的个数为_。31.十六进

11、制常量前面应该加_为前缀。32.变量一般需要先赋初值再参与运算,_变量没有赋初值时,将由系统自动置为0。33.当程序中执行到_语句时,将结束所在循环语句中循环体的一次执行。34.C+中规定,数组元素的下标从_开始。35.假定有定义int *p,则指向p变量的指针变量pp定义语句为_。36.类test的析构函数名是_。三、判断题:1.在C+中,自减运算符“-”可以用于变量,也可以用于常量。 2.switch语句中必须有break语句,否则无法退出switch语句。 3.若S表示一条 C+语句,while(1)S必定是无限循环。 4.若有说明:int *p1,*p2,m=3,n; 则p1=&m;p

12、2=p1; 是正确的赋值语句。 5.在C+语言中,类中的成员函数能存取类中的私有数据。 6.控制格式输入输出的操作子 oct不是设置域宽的。 7.在C+中,0127是一个合法的整数,最高位的0实际上是不必要,其值就是127。 8.如果x 是一个整型变量,则语句“int *p=new intx;”是正确的。 9.数组是若干相同类型的数据的集合。 10.在C+语言中,可以使用new运算符创建的对象或对象数组,可以使用运算符delete删除之。 11.若类A是类B的友元类,且类B是类C的友元类,则类A也是类C的友元类。 12.对于ofstream类对象file,feof成员函数的返回值为真表示打开文

13、件失败。 13.在switch语句中,switch后面的表达式可以为任意类型。 14.n、x6A、101均是C+的字符常量。 15.一个变量的地址就称为该变量的“指针”。 16.如果(x=y),则(*x=*y)。 17.函数体声明的静态变量,至多只会被初始化一次。 18.构造函数和析构函数都不能重载。 19.在C+语言中,while语句的循环体有可能一遍都不执行,而dowhile语句的循环体至少执行一遍。 20.在 C+的命名标识符中,大小写字母是不加区分的。 21.引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 22.在C+中,二维数组中元素排列的顺序是按行存放的,即

14、在存中先顺序存放第一行的元素,再存放第二行的元素。 23.const char *p说明了p是指向字符串的常量指针。 24.说明或定义对象时,类名前面不需要加class关键字。 25.在C+中,空语句表示什么都不做,因此毫无意义。 26.预处理命令是在进行编译前执行的,然后再进行正常编译。 27.语句“char c=c; char p=&c;”是错误的。 28.在一个被调用函数中,一个return语句可返回多个值给调用函数。 29.静态成员变量是整个类的所有对象共用的。 30.write 函数只能按规定向文件写入所指定的字符数。 31.C+中,任何一个表达式加上一个分号就构成一个语句。 32.

15、在说明语句“int a(15), &b=a, *p=&a;”中,b的值与*p的值是相等的。 33.在 C+中,函数声明时要用函数原型,即定义函数时的函数头部分。 34.for 循环中,循环变量的作用域是该循环的循环体。 35.在传值调用中,要参与形参的类型完全一致并且个数相等。 36.使用class定义的类成员默认的访问权限是私有的(private)。 37.在C+中,条件运算符的结合方向为从左到右。 四、写出程序的运行结果:1. #include void main() int a=10, b=15; a*=3; int b=a+20; coutb ; coutbendl; 运行结果: 2.

16、 #includeint SD(int a, int b, char op) switch(op) case +: return a+b; case -: return a-b; void main() int x=20, y=8; coutSD(x,y,+) SD(x,y,-)endl;运行结果:3. #include void main( ) static int b3=1,2,3,4,5,6; b02=12, b12=18; cout*bt*(b+1)t*(b+1)t*(*(b+1)+2)n; coutb02+b12+b22endl;运行结果:4.#include void main()

17、 char ch; cinch; switch(ch) case A: case a: cout1 ; break; case B: case b: cout2 ; break; case C: case c: cout3 ; break; default: coutbad!;break; 以上程序运行时,分别输入Acb,则运行结果:5. #include void main() int s1=0, s2=1; for(int i=2; i5; i+) s1+=i; s2*=i; couts1,s2endl; 运行结果:6.#includevoid ff(int x) coutff(int):

18、 xendl; void ff(double x) coutff(double): xendl;void main() float a(88.18); ff(a); char b(a); ff(b); 运行结果:7.#include void main() int s=0; for(int i=1;i7;i+=2) s+=i*i; couts=sendl; 运行结果:8.#include void main() int a9=3,5,7,9,11,13,15,17,25; int *p=a; for(int i=0;i9;i+) if(i+1)%3=0) cout*(p+i) ; couten

19、dl; 运行结果:9.#include class Apublic: A()cout1; A()cout2;class B:public Apublic: B()cout3; B()cout4;void main() B b;运行结果:10.#include #includeint SC(int a, int b, int c) if(ab) a=b; if(ac) a=c; return a; void main() int x,y,z; x=5,y=15,z=25; coutSC(x,y,z)endl; 运行结果:11.#include const int n=5;void main()

20、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;in;i+) s+=aii+ain-i-1; if(n%2=1) s-=an/2n/2; couts;运行结果:12.#include class s 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;j3;j+) pj.setij(j,j); /j的

21、平方 for(int k=0;k3;k+=2) coutpk.GetMul() ; delete p;运行结果:13.#includeint 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); coutb cendl; f1(2,&b); coutb cendl;运行结果:14.#include void main() int i, *d=new int5; for(i=0;i5;i+) di=2*i+1; coutdi ; deleted;

22、运行结果:15.#includeclass AB int a;public: AB(int aa=0)a=aa; AB( )coutaendl;class B:public AB int b;public: B(int aa=0, int bb=0):AB(aa)b=bb; B( )coutb;void main( ) B x(5),y(6,7);运行结果:16.#include int LB(int *a, int n) int s=1; for(int i=0;in;i+) s*=*a; a+; return s; void main() int a5=1,2,3,4,5; coutLB(a,5)endl; 运行结果:17.#include int f(int a) int b=0; static int c=3; b+, c+;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1