面向对象程序设计形成性考核册作业一.doc_第1页
面向对象程序设计形成性考核册作业一.doc_第2页
面向对象程序设计形成性考核册作业一.doc_第3页
面向对象程序设计形成性考核册作业一.doc_第4页
面向对象程序设计形成性考核册作业一.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计形成性考核册作业一一、单选题 1. C+源程序文件的缺省扩展名为( A )。 A. cpp B. exe C. obj D. lik 2. 编写C+程序一般需经过的几个步骤依次是( B )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接3. 程序中主函数的名字为( A )。 A. main B. MAIN C. Main D. 任意标识符4. 存储以下数据,占用存储字节最多的是( D )。 A. 0 B. 0 C. “0” D. 0.0 5. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是( D )。A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 6. x0 | y=5的相反表达式为( B )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 7. 字符串”a+b=12n”的长度为( B )。 A. 6 B. 7 C. 8 D. 9 8. 循环语句“for(int i=0; in; i+) couti*i ;”中循环体执行的次数为( C )。 A. 1 B. n-1 C. n D. n+1 9. 在下面循环语句中循环体执行的次数为( C )。 int i=0,s=0; while(s20) i+; s+=i; A. 4 B. 5 C. 6 D. 7 10. 在下面循环语句中循环体执行的次数为( C )。 int i=0,s=0; while(s20) i+; s+=i; A. 4 B. 5 C. 6 D. 7 11. 循环体至少被执行一次的语句为( C )。 A. for循环 B. while循环 C. do循环 D. 任一种循环 12. 在下面的一维数组定义中,哪一个有语法错误。( C ) A. int a=1,2,3; B. int a10=0; C. int a; D. int a5; 13. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a12的值为( C )。 A. 2 B. 4 C. 6 D. 8 14. 以下说法中正确的是( B )。 A. C+程序总是从第一个定义的函数开始执行 B. C+程序总是从main函数开始执行 C. C+函数必须有返回值,否则不能使用函数 D. C+程序中有调用关系的所有函数必须放在同一个程序文件中 15. 以下关于函数模板叙述正确的是( C )。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 16. 函数原型语句正确的是( B )。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 17. 函数调用func(exp1,exp2),(exp3,exp4,exp5)中所含实参的个数为( B )个。 A. 1 B. 2 C. 4 D. 5 18. 以下正确的说法是( B )。 A. 用户调用标准库函数前,必须重新定义 B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统不允许用户重新定义标准库函数 D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中二、填空题 1. C+语言的编译单位是扩展名为_.cpp_的_程序_文件。 2. 用于输出表达式值的标准输出流对象是_cout_。 3. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个_空白_符,然后才能继续输入下一个数据。 4. 一条表达式语句必须以_分号_作为结束符。 5若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型(或声明)_语句。 6当使用_void_保留字作为函数类型时,该函数不返回任何值。 7. 假定x=5,y=6,则执行表达式y+=x-计算后,x和y的值分别为_4_和_11_。 8. 十进制常数245对应的十六进制的C+表示为_0Xf5_。 9. float和double类型的数据分别占用_4_和_8_个字节。 10. 字符串”Thiss a book.n”的长度为_15_。 11. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为_1_和_3_。 12. 假定x是一个逻辑量,则x | true的值为_true_。 13. 假定x是一个逻辑量,则x & !x的值为_false_。 14. 数学算式的C+表达式为_3*x*y/(x+y)_。 15. 常数-4.205和6.7E-9分别具有_4_和_2_位有效数字。 16. 若x=5, y=10, 则计算y*=+x表达式后,x和y的值分别为_6_和_60_。17. 含随机函数的表达式rand()%20的值在_0_至_19_区间内。 18. 假定x=5,y=6,则表达式x+*+y的值为_35_。三、程序填空: 1. 打印出2至99之间的所有素数(即不能被任何数整除的数)。 #include #include void main() int i,n; for(n=2; _(1)_; n+) int temp=int(sqrt(n); /求出n的平方根并取整 for(i=2; _(2)_; i+) if(n%i=0) _(3)_; if(itemp) coutn ; coutn; (1) n100或n=99 (2) i=temp或i=i & _(3)_); return p*a*b; (1)b%i=0或!(b%i) (2) i+ (3)b=i 3. 主函数调用一个fun函数将字符串逆序。 #include #include _(1)_; void main( ) char s80; cins; _(2)_; cout”逆序后的字符串:”sendl ; void fun(char ss) int n=strlen(ss); for(int i=0; _(3)_; i+) char c=ssi; ssi=ssn1i; ssn1i=c; (1) void fun(char ss) (2) fun(s) (3)in/2四、写出程序运行结果 1. #include void main() int a,b; for(a=1,b=2; b50;) couta b ; a=a+b; b=a+b; coutendl; couta b endl; 程序运行结果为:1 2 3 5 8 13 21 3455 89Press any key to continue 2. #include void main() int x=5; switch(2*x-3) case 4: coutx ; case 7: cout2*x+1 ; case 10: cout3*x-1 ; break; default: coutdefaultendl; coutswitch end.endl; 程序运行结果为:11 14 switch end.Press any key to continue 3. #include const int M=20; void main() int c2,c3,c5; c2=c3=c5=0; for(int i=1; i=M; i+) if(i%2=0) c2+; if(i%3=0) c3+; if(i%5=0) c5+; coutc2 c3 c5endl; 程序运行结果为:10 6 4Press any key to continue五、指出程序或函数的功能 1. #include void main() int i,s=0; for(i=2;i=30;i+=2) s+=i*i; couts=sendl; 功能是:计算并输出22+42+62+302的值。 2. #include double f1(int n) double sign=1,s=1; for(int i=2;ia; coutf1(a)endl; 功能是:计算并输出1+的值,其中a的值由键盘输入。六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。1. 假定要求下面程序的输出结果为“11/15”,其主函数中存在着三行语句错误,请指出错误语句行的行号并改正错误行。#includeclass Franction /定义分数类int nume; /定义分子int deno; /定义分母public:/把*this化简为最简分数,补出函数定义如下:void FranSimp()int m,n,r;m=nume;n=deno;r=m%n;while(r!=0)m=n;n=r;r=m%n;if(n!=1)nume/=n,deno/=n;if(deno0)nume=-nume;deno=-deno; /返回两个分数*this和x之和,补出函数定义如下:Franction FranAdd(const Franction& x)Franction c;c.deno=deno*x.deno;c.nume=nume*x.deno+x.nume*deno;c.FranSimp();return c;/置分数的分子和分母分别0和1void InitFranction() nume=0; deno=1;/置分数的分子和分母分别n和dvoid InitFranction(int n, int d) nume=n; deno=d;/输出一个分数void FranOutput() coutnume/denoendl;void main() /1行 /2行Franction a,b,c; /3行a.InitFranction(6,15); /4行b.InitFranction(1); /5行c.InitFranction(); /6行c= FranAdd(a,b); /7行coutnume/denoendl;/8行 /9行/作业本原来未给出定义而只是用函数原型对FranAdd()作了声明,/现在下面补出定义,否则整个程序虽能通过编译但无法运行错误行的行号为_5_、_7_和_8_。分别改正为_ InitFranction(1,3);_、_ c=a.FranAdd(b);_和_ c.FranOutput();_。11/15-6/155/151/3b的分母是3七、编程:1. 计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。#includevoid main()int i; /用i作为循环变量int p=1; /用p作为累乘变量int s=1; /用s作为累加循环变量for(i=1;i=10;i+) p*=3; s+=p;coutsendl;2. 求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用max表示。#includevoid main() int x,max; cinx;max=x; for(int i=0;ix;if(xmax) max=x; coutmax:maxendl; 3.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论