




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+C+程序设计程序设计课程复习资料课程复习资料 一、单项选择题:一、单项选择题: 1.下列字符串中可以用作 C+标识符的是 A.goto B.Student C.123 D.kld 2.定义变量 int a=6,则 a+的值是 A.7 B.6 C.5 D.4 3.已知字母 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-; 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. int 8.下列哪个是 C+语言的合法的字符常量? A. ”0” B. 054 C. x89 D. 092 9.定义整型变量 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; 10.用 C+语言编写的代码程序 A.可立即执行 B.是一个源程序 C.经过编译即可执行 D.经过解释才能执行 11.将两个字符串连接起来组成一个字符串时,选用的函数是 A. strlen () B. strcpy () C. strcat () D. strcmp () 12.在程序中,预处理命令开头的字符都是 A. * B. # C. ” C. “” D. “/” 14.在下面的循环语句中循环体执行的次数为 for(int i=0; in/2) break; A.n/2 B.n/2+1 C.n/2-1 D.n-1 15.在下面的一维数组定义中,有语法错误的语句是 A. int a =1,2,3; B. int a10=0; C. int a ; D. int a5; 16.下面的保留字中,不能作为函数的返回类型 A. void B. int C. new D. long 17.下面的函数声明中, “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 为一个类,则该类的复制构造函数的声明语句为 A. AB B. AB(AB x); C. AB(AB* x); D. AB(AB 19.表达式(1,2,3,4)的结果是 A. 1 B. 2 C. 3 D. 4 20.在函数中如果不说明变量的存储类型,则默认的存储类型是 A. auto B. static C. extern D. register 21.下面字符序列中,合法的 C+常量是 A.078 B.5L C.9e7.5 D.AB 22.int a 声明的自动型变量 a 在没有赋值的情况下,其值为 A.0 B.-1 C.1 D.随机数 23.设“int f(int);”和“int g(int);”是函数 f 和 g 的原形,以下将 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 i+); A.无穷次 B.5 C.6 D.7 33.在下面的字符数组定义中,有语法错误的语句是 A.char a20=abcdefg B.char a =x+y=55 C.char a15= 1, 2 D.char a10= 5 34.若用数组名作为函数调用的实参,传递给形参的是 A.数组的首地址 B.数组中第一个元素的值 C.数组全部元素的值 D.数组元素的个数 35.假定 AB 为一个类,则执行“AB a(4),b5,*p2;”语句时,自动调用该类构造函数的次数为 A. 6 B. 7 C. 9 D. 11 36.当使用 fstream 流类定义一个流对象,并打开一个磁盘文件时,文件的隐含打开方式为 A. ios:in B. ios:out C. ios:in | ios:out D.没有 二、填空题:二、填空题: 1.若 a 是一个字符数组,则使用输入输出流对象 cout 向屏幕输出数组 a 中所存字符串的语句为 _。 2.当一个对象定义时,C+编译系统自动调用_函数建立该对象并进行初始化。 3.C+语言的参数传递机制包括值传递和_传递两种。 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,则能正确表示数学式的表达式是 abc 1 _(不使用强制类型转换) 。 23.假定 a 是一个一维数组,则 ai的指针访问方式为_。 24.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的 _实现。 25.C+中的标识符只能由字母、数字和_组成。 26.C+语句 cout_120; 可以用 8 进制数表示(输出)120 。 27.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为_的成员。 28.C+在调用一个函数的过程中,可以直接或间接地调用该函数本身,这种调用称为_调用。 29.在 C+程序中包含一个头文件或程序文件的预编译命令为_。 30.假定一维数组的定义为“int a8;” ,则该数组所含元素的个数为_。 31.十六进制常量前面应该加_为前缀。 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=p2=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.在 switch 语句中,switch 后面的表达式可以为任意类型。 14.n、x6A、101均是 C+的字符常量。 15.一个变量的地址就称为该变量的“指针” 。 16.如果(x=y),则(*x=*y)。 17.函数体内声明的静态变量,至多只会被初始化一次。 18.构造函数和析构函数都不能重载。 19.在C+语言中,while语句的循环体有可能一遍都不执行,而 dowhile语句的循环体至少执行一遍。 20.在 C+的命名标识符中,大小写字母是不加区分的。 21.引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 22.在 C+中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放 第二行的元素。 23.const char *p 说明了 p 是指向字符串的常量指针。 24.说明或定义对象时,类名前面不需要加 class 关键字。 25.在 C+中,空语句表示什么都不做,因此毫无意义。 26.预处理命令是在进行编译前执行的,然后再进行正常编译。 27.语句“char c=c; char p=”是错误的。 28.在一个被调用函数中,一个 return 语句可返回多个值给调用函数。 29.静态成员变量是整个类的所有对象共用的。 30.write 函数只能按规定向文件写入所指定的字符数。 31.C+中,任何一个表达式加上一个分号就构成一个语句。 32.在说明语句“int a(15), ”中,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. #include int 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+b22ch; 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. #include void ff(int x) coutff(int): 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) ; coutendl; 运行结果: 9. #include class A public: A()cout1; A()cout2; ; class B:public A public: B()cout3; B()coutb) 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() 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 的平方 for(int k=0;k3;k+=2) coutpk.GetMul() ; 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, coutb cendl; f1(2, coutb cendl; 运行结果: 14. #include void main() int i, *d=new int5; for(i=0;i5;i+) di=2*i+1; coutdi ; deleted; 运行结果: 15. #include class 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+; return(a+b+c); void main( ) int a=2,I; for(I=0;I3;I+) coutf(a)endl; 运行结果: 18. #include class A int *a; public: A(int x) a=new int(x); cout*a; A() delete a; cout0; ; void main() A x(3),*p; p=new A(5); delete p; 运行结果: 五、完成程序:五、完成程序: 1.完成以下程序,计算 s=1+12+123+1234+12345。 void main( ) int t=0, s=0, i; for( i=1; ; i+) t = i + ; s = s + t; coutsendl; 回答: 2.完成以下程序,求数组中的最大元素值和最小元素值。 #include void main() int a8=46,38,72,55,24,63,50,37; int max=*a, min=*a; for(int *p=a+1;pa+8;p+) if( ) max=*p; if( ) min=*p; coutmax minendl; 回答: 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 ; i20 ; i+) coutfi ; 回答: 4.从键盘输入一个 4 行 4 列的实数矩阵到一个二维数组中,完成以下程序,求出主对角线上元素之积。 #include void main() double a44=0,r=1; int i,j; for(i=0;i4;i+) for(j=0;j4;j+) /从键盘输入数组元素 for(i=0;i4;i+) for(j=0;j4;j+) if( ) r=r*aij; cout积为:rendl; 回答: 5.完成以下程序,计算的值,即求(1!)+(1!+2!)+(1!+2!+3!)+(1!+2!+3!+20!)。 20 11 ! i in n 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; cout1!+(1!+2!)+(1!+2!+20 !)=sendl; 回答: 6.有一个数列,它的第一项为 5,第二项为 8,以后每一项都是它的前两项之和,完成以下程序,产生 出此数列的前 10 项,并依次显示出来。 #include void main( ) int a10; a0=5; for(int i=2;i10;i+) ai= ; for(i=0;i10;i+) coutai ; coutendl; 回答: 六、程序改错:六、程序改错: 1.要求下面程序的输出结果为“100 20,在第 1-7 行中存在着 3 条语句错误,指出错误语句行的行号, 并改正错误。 #include class S int n; public: S() n=20; S(int nn) n=nn; ; void Show() coutnShow(); /2 行 void main()/3 行 /4 行 S s1(100),s2; /5 行 *p= /6 行 shows( /7 行 shows(p); /8 行 错误行的行号为 改正为 错误行的行号为 改正为 错误行的行号为 改正为 2.要求下面程序的输出结果为“2 3 1,在第 1-12 行中存在着 3 条语句错误,指出错误语句行的行号, 并改正错误。 #include class P int n; public: void Setn(int val) n=val; void Show(); ; void P:Show() /1 行 coutnShow();/12 行 错误行的行号为 改正为 错误行的行号为 改正为 错误行的行号为 改正为 3.要求下面程序的输出结果为“d=16,f=25,在第 1-14 行中存在着 3 条语句错误,指出错误语句行的行 号,并改正错误。 #include class A int a10,n; public: A(int aa,int nn):n(nn) for (int I=0;In;I+) aI=aaI; int Get(int i) return ai; int SumA(int n);/求 a 数组的前 n 个元素之和 ; int SumA(int n)/1 行 /2 行 int s=0;/3 行 for(int j=0; jn; j+) s=s+aj;/4 行 return s;/5 行 /6 行 void main()/7 行 /8 行 int b =2,5,8,10,15,20, f, d=1;/9 行 A x(b,6);/10 行 for(int i=0;i3;i+)/11 行 d=d+Get(i);/12 行 f=SumA(4);/13 行,计算 x 的成员 a 的前 4 个元素之和 coutd=d,f=fendl;/14 行 错误行的行号为 改正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山西建设投资集团有限公司高校毕业生招聘897人笔试参考题库附带答案详解
- 贷款债权收购协议书
- 诉讼离婚分居协议书
- 2025山东枣庄东林农文化产业发展有限公司招聘68人笔试参考题库附带答案详解
- 空院租赁合同协议书
- 组织托人租车协议书
- 纽约公寓转租协议书
- 主管护师考试知识点重点试题及答案
- 美容加盟保密协议书
- 购买教辅资料协议书
- 武装部文职试题及答案
- 2025年山东省威海市威海经济技术开发区中考一模英语试题(含答案)
- 警犬培训授课课件
- 2025年四川绵阳交通发展集团有限责任公司招聘笔试参考题库附带答案详解
- 成本控制在质量管理中的策略试题及答案
- 人工智能在药物研发中的辅助作用与潜力
- 作风建设学习教育查摆问题清单及整改措施
- 2025届河北省石家庄第一中学高三下学期二模地理试题及答案
- 2024年山东开放大学招聘考试真题
- PSP问题解决流程分析
- 语文-华大新高考联盟2025届高三3月教学质量测评试题+答案
评论
0/150
提交评论