




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 若有定
2、义为“ int *r =new int 10;” ,则释放指针所指内存空间的操作是A. delete r; B. delete *r C. delete r; D. delete r ;7.下列哪个是 C+语言的不正确的标识符?8. Ab1 C. bgc D. int8.下列哪个是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
3、=6;10.用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 . “下面的循环语句中循环体执行的次数为 for(int i=0; i<n; i+)if (i>n/2) break;22+1C.n/2
4、-115.在下面的一维数组定义中,有语法错误的语句是 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+常量是B.5LD.'AB'a 声明的自动型变量a 在没有赋值的情况下,其值为 B.-1C.1 D. 随机数23. 设“ int f(int); ”和“ int g
6、(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+表达式不能正确表示的数学关系avxwb为
7、A. a<x && x<=bB. x<=b && a<xC. !(a>=x) && !(x>b) D. a<x<=b27. 下列定义中,定义指向数组的指针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;(定义在函数外)30. 已知p是一个指向类 A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,( ) 正确的语句。 >p=5C.A.*p=5D.*=531. 以下选项中,决定函数的返回值的类型是 A. 调用该函数的主调函数类型语句中的表达式类型C. 定义函数时所指定的返回值类型D. 调用函数时临时决定32. 下面 for 语句的循环次数为 for(int i=0,x=0; !x && i<=5; i+);A. 无穷次.5 C33. 在下面的字符数组定义中,有语法错误的语句是 a20="abcd
9、efg" a ="x+y=55" a15= '1', '2'a10= '5'34. 若用数组名作为函数调用的实参,传递给形参的是 A. 数组的首地址B.数组中第一个元素的值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 | io
10、s:out D.没有二、填空题:1 .若a是一个字符数组,则使用输入输出流对象 cout向屏幕输出数组a中所存字符串的语句为 2 .当一个对象定义时,C+褊译系统自动调用 函数建立该对象并进行初始化。+语言的参数传递机制包括值传递和 传递两种。4 .假定p是一个指针,则(*p)+运算首先访问 ,然后使p的值增1。5 .假定对二维数组a34进行初始化的数据为2, 5, 6, 2,8,7,则a11被初始化为6 .设px指向一个类的动态分配的对象,则执行“delete px; ”语句时,将自动调用该类的 7 .变量的基本类型有 、实型、字符型和枚举型。8 .语法的三种基本结构为顺序结构、选择结构和
11、结构。9 .一个指针指向一个 Data类对象,它保存着该对象的 ,相应的指针类型为 Data类。10 .若do循环的"尾"为"while(+i<10) ”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行 次后正常结束。11 .假定用户没有Z一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 12 .当在程序中执行到 语句时,就立即结束本层循环类语句或switch语句的执行。13 .字符和字符串常数的定界符分别为 和双引号(”)。14 .应用程序中只有一个函数,这个函数的名称是 。15 .在switch语句中,每个语句标号所含关
12、键字case后面的表达式必须是 表达式。16 .假定p所指对象的值为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 .在进行函数调用时,将把实参的 传递给值参数,把实参数的地址传递给引用参数。21 .关系表达式 x+y>5 的相反表达
13、式为 。22 .假设在程序中 a、b、c均被定义成整型,所赋值都大于1,则能正确表示数学式abc的表达式是 (不使用强制类型转换)。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的析构函数名是 。三、判断题:1.在C+中,自减运算符“-”可以用于变量,也可以用于常量。语句中必须有break 语句,否则无法退出 switch 语句。3 .若S表
15、示一条C+语句,while(1)S 必定是无限循环。4 . 若有说明: int *p1,*p2,m=3,n; 则 p1=&m;p2=p1; 是正确的赋值语句。 5 .在C+语言中,类中的成员函数能存取类中的私有数据。6 . 控制格式输入输出的操作子oct 不是设置域宽的。 7 .在C+中,0127是一个合法的整数,最高位的0实际上是不必要,其值就是127。 delete 删除之。 8 . 如果 x 是一个整型变量,则语句“ int *p=new intx; ”是正确的。9 . 数组是若干相同类型的数据的集合。 10 .在C+相言中,可以使用new运算符创建的对象或对象数组,可以使用运算
16、符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 .构造函数和析构函数都不能重载。
17、19 .在C+转言中,while语句的循环体有可能一遍都不执行,而do while语句的循环体至少执行一遍。20 . 在 C+ 的命名标识符中,大小写字母是不加区分的。 21 . 引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 22 .在C+钟,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。 char *p 说明了 p是指向字符串的常量指针。24. 说明或定义对象时,类名前面不需要加class 关键字。 25. 在C+钟,空语句表示什么都不做,因此毫无意义。26. 预处理命令是在进行编译前执行的,然后再进行正常编译。 27.
18、 语句“ char c='c' char p=&c; ”是错误的。 28. 在一个被调用函数中,一个return 语句可返回多个值给调用函数。 29. 静态成员变量是整个类的所有对象共用的。 函数只能按规定向文件写入所指定的字符数。 +中,任何一个表达式加上一个分号就构成一个语句。 32. 在说明语句“ int a(15), &b=a, *p=&a;”中, b 的值与 *p 的值是相等的。 33. 在 C+ 中,函数声明时要用函数原型,即定义函数时的函数头部分。 循环中,循环变量的作用域是该循环的循环体内。 35. 在传值调用中,要求实参与形参的类型完全
19、一致并且个数相等。 36. 使用 class 定义的类成员默认的访问权限是私有的( private ) 。 37. 在C+钟,条件运算符的结合方向为从左到右。四、写出程序的运行结果:1.#include <> void main()int a=10, b=15;a*=3;int b=a+20;cout<<b<<' 'cout«b«endl;)运行结果:#include<>int SD(int a, int b, char op)(switch(op)(casereturn a+b;casereturn a-b;
20、)void main()(int x=20, y=8;cout«SD(x,y,'+')«' '«SD(x,y,'-')«endl;)运行结果:#include <> void main()static int b3=1,2,3,4,5,6;b02=12, b12=18;cout«*b«"t"«*(b+1)«"t"«*(b+1)«"t"«*(*(b+1)+2)«
21、;"n"cout«b02+b12+b22«endl;)运行结果:#include<> void main()char ch;cin»ch;switch(ch)(case 'A':case 'a': cout«"1"«'break;case 'B':case 'b': cout«"2"«'break;case 'C:case 'c': cout«
22、;"3"«'break; default: cout«"bad!"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<<"ff(int): &
23、quot;<<x<<endl; void ff(double x)cout<<"ff(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<>
24、void main() int a9=3,5,7,9,11,13,15,17,25;int *p=a;for(int i=0;i<9;i+)if(i+1)%3=0)cout<<*(p+i)<<' cout<<endl;运行结果 :9.#include <>class Apublic:A()cout<<"1"A()cout<<"2"class B:public Apublic:B()cout<<"3"B()cout<<"
25、;4"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;return 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
26、, 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 sint 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;运
27、行结果 :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<<b<<" "<<c<<endl;f1(2,&b);cout<<b<<" "<<c<<endl;运行结果 :14.#include<>void main()int i, *d=n
28、ew 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<<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<&g
29、t;int LB(int *a, int n)int s=1;for(int i=0;i<n;i+) s=a;a+;return s;void main()int a5=1,2,3,4,5;cout<<LB(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;I<3;I+)cout<<f(a)<<endl;运行结果 :18.#include&l
30、t;>class A nt *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+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&
31、lt;>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<<' '<<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+)
32、fi=;for(i=0 ; i<20 ; i+) cout<<fi<<""回答:4 .从键盘输入一个 4行4列的实数矩阵到一个二维数组中,完成以下程序,求出主对角线上元素之积。 #include<>void main()(double a44=0,r=1;int i,j;for(i=0;i<4;i+)for(j=0;j<4;j+)20 i成以下程序,计算 n!的值,即求(1!)+(1!+2!)+(1!+2!+3!)+(1!+2!+3!+ +20!)。i1n1void main()int i,n;double s=0,t;
33、for(i=1;i<=20;i+) ;for(n=1; ;n+) t=t*n;s=s+t; cout<<"1!+(1!+2!)+-+(1!+2!+ +20 尸”<<s<<endl; 回答:6.有一个数列,它的第一项为 5,第二项为8,以后每一项都是它的前两项之和,完成以下程序,产生出 此数列的前10项,并依次显示出来。#include<>void main()int a10;a0=5;for(int i=2;i<10;i+) ai= ;for(i=0;i<10;i+)cout<<ai<<'
34、; 'cout<<endl; 回答:六、程序改错:1.要求下面程序的出结果为“100 20",在第1-7行中存在着3条语句错误,指出错误语句行的行号,并改正错误。#include <>class S int 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 i nt n; publi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国齿炎康口腔保健膏行业深度研究分析报告
- 古迹修复项目可行性研究报告
- 互联网营销师(平台管理员)职业技能鉴定经典试题含答案
- 2025年中国电站设备行业市场全景评估及发展趋势研究预测报告
- 化工萃取工应急处置分析及对策
- 2025年中国饼干行业发展监测及投资战略规划研究报告
- 甲乙酮装置操作工应急处置分析及对策
- 2025-2030年中国防爆气体探测器行业深度研究分析报告
- 催化汽油吸附脱硫装置操作工技能测试题库及答案
- 电影电教设备制造工安全技术操作规程
- 防暑降温试题及答案
- 设备回购协议书
- 高考一轮生物复习讲义 晨背晚默
- 项目管理年度述职
- 2025 年全国保密教育线上培训考试测试卷及答案
- 2025年度河南省铁路建设投资集团有限公司招聘笔试参考题库附带答案详解
- 矿山复垦工程合同协议
- 国内旅拍合同协议
- 北师大版五年级下册分数加减法简便计算400道及答案
- 软件需求分析中的语义理解技术-全面剖析
- 市场监管培训讲义
评论
0/150
提交评论