欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    C++语言程序设计课程期末综合练习.docx

    • 资源ID:3060442       资源大小:42.13KB        全文页数:16页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++语言程序设计课程期末综合练习.docx

    C+语言程序设计课程期末综合练习C+语言程序设计课程期末综合练习 一、单选题 1. 由C+源程序文件编译而成的目标文件的缺省扩展名为。 A. obj B. lik C. exe D. cpp 2. 程序运行中需要从键盘上输入多于一个数据时,各数据之间需要使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 3. 设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为。 A. 1 B. 0 C. x的值 D. x的相反值 4. 任何for语句都能够被改写为语句。 A. 复合 B. if C. switch D. while 5. break语句叫做语句。 A. 中断退出循环或开关 B. 返回 C. 转向 D. 继续 6. 在下面的一维数组定义中,语句有语法错误。 A. int a=1,2,3; B. int a10=0; C. int a; D. int a5; 7. 下面的保留字不能作为函数的返回类型。 A. void B. int C. new D. long 8. 下面的函数声明中,( )是“void BC(int a, int b);”的重载函数。 A. int BC(int x, int y); B. void BC(int a, char b); C. float AA(int a, char b); D. int BC(int a, int b=0); 9. 当一个字符指针指向具有n个字节的存储空间时,它所能存储字符串的最大长度为。 A. n B. n+1 C. n-1 D. n-2 10. 假定AB为一个类,则该类的拷贝构造函数的声明语句为。 A. AB&(AB x); B. AB(AB x); C. AB(AB* x); D. AB(AB&); 11. 下面的保留字( )不能作为函数的返回类型。 A. void B. int C. new D. long 12. C+源程序文件的默认扩展名为( )。 A. cpp B. exe C. obj D. lik 13. 在下列的标识符常量的定义语句中,错误的定义语句是。 1 A. const double PI=3.14159; B. const int N=20; C. const char ch; D. const bool mark=true; 14. for循环语句一定能够被改写为语句。 A. 复合 B. if C. switch D. while 15. 假定a为一个数组名,则下面的( )表达式有语法错误。 A. ai B. *+a C. *a D. *(a+1) 16. 在下面的二维数组定义中,只有( )语句是正确的。 A. int a5; B. int a(10); C. int a; D. int a5=1,2,3,4,5; 17. 下面( )的函数声明格式不正确。 A. AA(int a, int b); B. AA(int a=0, int b); C. AA(int a=0, int b=0); D. AA(int a, int b=0); 18. 假定指针变量p定义为“int *p=new int30;”,要释放p所指向的动态数组空间,则使用下面的语句。 A. delete p; B. delete *p; C. delete &p; D. delete p; 19. 假定要对结构类型AB定义加号运算符重载的普通函数,实现两个AB类型对象的加法,并返回相加结果,则该函数的声明语句为( )。 A. AB operator +(AB& a, AB& b); B. AB operator +(AB& a); C. operator +(AB a); D. AB& operator +; 20. 当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始使用#include命令,使之包含头文件。 A. strstrea.h B. stdlib.h C. iostream.h D. fstream.h 21. 枚举类型中的每个枚举常量的值都是一个值。 A. 整数 B. 浮点数 C. 字符 D. 逻辑 22设x和y均为bool量,则逻辑表达式x | y为假的条件是。 A. x和y均为真 B. 其中一个为真 C. x和y均为假 D. 其中一个为假 23. 声明或定义一个内联函数时,必须在函数开始使用保留字。 A. static B. const C. extern D. inline 24. 在下面的函数声明中,存在着语法错误的是。 A. BC(int a, int) B. BC(int, int) C. BC(int, int=5) D. BC(int x=6, int y) 2 25. 假定a为一个整型数组名,则元素a4与的表示等价。 A. a+4 B. *a+4 C. *(a+4) D. *(a+16) 26. 循环语句“for(int i=0; i<n; i+);”执行结束后得到的i的值为。 A. n B. n+1 C. n-1 D. 2n 27. 将两个字符串连接起来组成一个字符串时,选用函数。 A. strlen B. strcpy C. strcat D. strcmp 28. C+编译预处理命令在程序中都是以( )字符开头的。 A. * B. # C. & D. 29. 假定有结构定义为“struct BOOKchar title40; double price;”,则该结构类型的长度为个字节。 A.28 B. 40 C. 44 D. 48 30. 假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete px;”语句时,自动调用该类析构函数的次数为。 A. 1 B. n C. n-1 D. n+1 二、填空题 1C+语言中每条复合语句以左花括号开始,并以_结束。 2.假定一个枚举类型的定义为“enum RAab,ac,ad,ae;”,则ac的值为_。 3十进制数25表示成符合C+语言规则的八进制数为_。 4. 表达式x=x+y表示成复合赋值表达式为_。 5若x=5,则x>5的逻辑值为_。 6假定一个一维数组的定义为“char* a8;”,则该数组占用_个字节的存储空间。 7. 假定x=10,则表达式2+x+的值为_。 8假定p所指对象的值为25,p+1所指对象的值为46,则*+p的值为_。 9. 假定要动态分配一个类型为int的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为int *r=_。 10. 设px指向一个类的动态分配的对象,则执行“delete px;”语句时,将自动调用该类的_。 3 11. 执行“cout<<”x1=”<<18*4;”语句后得到的输出结果为_。 12. 在c+语言中,用转义字符序列_表示输出一个换行。 13int类型的大小为_个字节。 14假定y的值为5,则增量表达式+y的值为_。 15假定a的值为25,则算术表达式a%3的值为_。 16. 结束所在循环类语句或switch语句执行的中断语句的保留字为_。 17函数调用时,实参向形参的传送分为_传送和值传送两种方式。 18. 假定a是一个一维数组,则ai的指针访问方式为_。 19. 假定一个结构类型的定义为 ”struct Cdouble a5; int n;”,则该类型的大小为_个字节。 20. 若要在程序中进行_的输入输出操作,则必须在开始的#inlude预处理命令中使用fstream.h头文件。 21十进制数30表示成符合C+语言规则的十六进制数为_。 22假定一个枚举类型的定义为“enum RBab,ac,ad,ae;”,则枚举常量ad的值为_。 23. 假定y=8,则执行y+*4运算后,y的值为_。 24算术表达式x+y+1对应的C+表达式为_。 2xy 25. 关系表达式x<5的相反表达式为_。 26. 假定整数变量x=48,则a/12的运算结果为_。 27. 假定一个二维数组的定义语句为“int a34;”,则该数组包含有_个整型元素。 28函数被调用时,实参向形参的传送分为引用传送和_传送两种方式。 29假定一个结构类型的定义为”struct Bint a5; char* b;”,则该类型的大小为_字节。 4 30. 在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_使其初始化。 三、写出下列每个程序运行后的输出结果 1. #include<iostream.h> void main int n=4,y=1; while(n-) y*=3; cout<<"y="<<y<<endl; 2. #include<iostream.h> void main int a8=2,8,10,5,12,7,9,20; int c=0, i=0; while(i<8) if(ai>10) c+; i+; cout<<"c="<<c<<endl; 3. #include<iomanip.h> void main int a5=3,6,9,12,8; for(int *p=a; p<a+5; p+) if(*p>8) cout<<*p<<' ' 4. #include<iomanip.h> int LA(int a, int n) int s=0; for(int i=0;i<n;i+) s+=ai; return s; void main int a5=5,2,8,6,4; int b=LA(a,5); cout<<"b="<<b<<endl; 5. #include<iomanip.h> struct AB 5 char aa15; int bb; ; void main AB a4="Apple",25,"Peach",40,"Pear",36,"Tomato",62; for(int i=0;i<4;i+) if(ai.bb<40) cout<<ai.aa<<' ' cout<<endl; 6. #include<iostream.h> void main int s1=0; for(int i=1; i<=5; i+) s1+=2*i; cout<<”s1=”<<s1<<endl; 7. #include<iostream.h> void main int a6=6,9,12,18,15,20; int c=0; for(int i=0; i<6; i+) if(ai%2=1) c+; cout<<"c="<<c<<endl; 8. #include<iostream.h> void main int a34=1,2,7,8,5,6,11,15,9,20,3,4; int m=a00; for(int i=0;i<3;i+) for(int j=0;j<4;j+) if(aij>m) m=aij; cout<<m<<endl; 9. #include<iostream.h> void main int a=10, b=15, c; c=a+b; int b=a+20; c+=a+b; cout<<c<<endl; 6 10. #include<iostream.h> void main int a8=6,19,4,12,20,5,18,25; int *p, s=0; for(p=a; p<a+8;p+) if(*p<10) s+=*p; cout<<s<<endl; 11. #include<iostream.h> void main int s=0; for(int i=1;i<=8;i+=2) s+=i*i; cout<<"s="<<s<<endl; 12. #include<iostream.h> void main int i=1,s=0; while(s<15) s+=i+; cout<<i<<','<<s<<endl; 13. #include<iostream.h> void main int a8=36,25,48,14,55,20,47,82; int c1=0, c2=0; for(int i=0; i<8; i+) if(ai<50) c1+; else c2+; cout<<c1<<' '<<c2<<endl; 14. #include<iomanip.h> int LB(int *a, int n) int p=1; for(int i=0;i<n;i+) p*=*a; a+; return p; void main 7 int a5=1,2,3,4,3; cout<<LB(a,5)<<endl; 15. #include<iostream.h> struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main Worker x="wangfong",46,1640; Worker y, *p; y=x; p=&x; cout<<y.age+10<<' '<<p->pay*2<<endl; 四、写出下列每个函数的功能 1. int SA(int a, int b) if(a>b) return 1; else if(a=b) return 0; else return -1; 2. int LK(int a, int n) float s=0; int i; for(i=0;i<n;i+) s+=ai; s/=n; int m=0; for(i=0;i<n;i+) if(ai>=s) m+; return m; 3. int WD(int a, int n) int m=a0; for(int i=1;i<n;i+) if(ai>m) m=ai; return m; 4. double FI(int n) /n为大于等于1的整数 double x,y=0; do cin>>x; y+=x*x; 8 while(-n); return y; 5. bool WE(int a, int b, int n) for(int i=0;i<n;i+) if(ai!=bi) break; if(i=n) return true; return false; 6. int LK(int a, int n) double s=0; int i,m=0; for(i=0;i<n;i+) s+=ai; s=s/n; for(i=0;i<n;i+) if(ai>=s) m+; return m; 7. double FI(int n) /n为大于等于1的整数 double x,y=0; do cin>>x; y+=x; while(-n); return y; 8. bool WE(int a, int b, int n) for(int i=0;i<n;i+) if(ai!=bi) break; if(i=n) return true; return false; 9. int LK(int a, int n) double s=0; int i,m=0; for(i=0;i<n;i+) s+=ai; s=s/n; for(i=0;i<n;i+) if(ai>=s) m+; return m; 9 五、按题目要求编写程序 1. 已知6a30、15b36,求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的一组解,并按此格式输出每组解。 2. 假定函数声明为“void Print(int a, int n);”,要求按下标从大到小的次序输出数组a中的n个元素的值,每个值后面接着输出一个空格。 3. 假定一个函数声明为“int FF(int a, int n);”,要求递归求出数组a中所有n个元素之积并返回。 4. 假定函数声明为“void Print(int a, int n);”,要求按下标从大到小的次序输出数组a中的n个元素的值,每个值后面接着输出一个逗号,但最后一个值后面为换行符。 参考解答: 1. #include<iostream.h> void main int a,b; for(a=6;a<=30; a+) for(b=15;b<=36;b+) if(2*a+5*b=126) cout<<'('<<a<<','<<b<<')'<<endl; 2. void Print(int a, int n) for(int i=n-1; i>=0; i-) cout<<ai<< ; cout<<endl; 3. int FF(int a, int n) if(n=1) return an-1; else return an-1*FF(a,n-1); /或者if(n=0) return 1; / else return an-1*FF(a,n-1); 4. void Print(int a, int n) for(int i=n-1; i>0; i-) cout<<ai<<',' cout<<a0<<endl; 10 参考解答: 1A 2D 3C 4. D 5. A 6. C 7. C 8B 9C 10D 11C 12. A 13. C 14. D 15B 16D 17B 18. D 19. A 20. D 21A 22C 23D 24D 25C 26A 27C 28B 29D 30B 参考解答: 1. (右花括号) 2. 1 3. 031 4. x+=y 5. 假 6. 32 7. 12 8. 46 9. new intn; 10. 析构函数 11. x1=72 12. n 13. 4 14. 6 15. 1 16. break 17. 引用 18. *(a+i) 19. 44 20. 文件 21. 0x1E 22. 2 23. 9 24. (x+y)/(2*x*y)+1 25. x>=5 26. 4 27. 12 28. 值 29. 24 30. 构造函数 参考解答: 1. y=81 2. c=2 3. 9 12 4. b=25 5. Apple Pear 6. s1=30 7. c=2 8. 20 9. 65 10. 15 11. s=84 12. 6,15 13. 6 2 14. 72 15. 56 3280 参考解答: 1. 比较两个整数a和b的大小,若a>b则返回1,若a=b则返回0,若a<b则返回-1。 2. 求出数组a的n个元素中大于等于平均值的元素个数并返回。 3. 从数组a的n个元素中求出最大值并返回。 4.求出从键盘上输入的n个整数的平方和并返回。 5. 判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。 6.统计出数组an中大于等于其平均值的元素个数并作为函数值返回。 7.求出从键盘上输入的n个整数的和并返回。 8. 判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。 9.统计出数组an中大于等于其平均值的元素个数并作为函数值返回。 11

    注意事项

    本文(C++语言程序设计课程期末综合练习.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开