![C++程序设计上练习答案_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/a6a702b7-16a6-46e6-9143-5fe38a8d5783/a6a702b7-16a6-46e6-9143-5fe38a8d57831.gif)
![C++程序设计上练习答案_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/a6a702b7-16a6-46e6-9143-5fe38a8d5783/a6a702b7-16a6-46e6-9143-5fe38a8d57832.gif)
![C++程序设计上练习答案_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/a6a702b7-16a6-46e6-9143-5fe38a8d5783/a6a702b7-16a6-46e6-9143-5fe38a8d57833.gif)
![C++程序设计上练习答案_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/a6a702b7-16a6-46e6-9143-5fe38a8d5783/a6a702b7-16a6-46e6-9143-5fe38a8d57834.gif)
![C++程序设计上练习答案_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/a6a702b7-16a6-46e6-9143-5fe38a8d5783/a6a702b7-16a6-46e6-9143-5fe38a8d57835.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、单项选择题1. 编写c+刑序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B2. 设有定义int ijdouble j =5;,贝,0+i+j值的数据类型是()A. intB. doubleC. floatD.不确定答案:B3. 有关C+确译指令,以下叙述正确的是()A. C+W行可以写多条编译指令B. include指令中的文件名可含有路径信息C. C+啲编译指令可以以#或开始D. C+冲不管# if后的常量表达式是否为真,该部分都需要编译答案:B4. 在下列成对的表达式中,运算结果类型
2、相同的一对是()A. 7.0/2.0和7.0/2B. 5/2.0和5/2C. 7.0/2和7/2D. 8/2和6.0/2.0答案:A5. 在C+冲不返回任何类型的函数应该说明为()A. intB. charC. voidD. double答案:C6. 决定C+言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D7. 在C+冲,函数原型不能标识()A. 函数的返回类型B. 函数参数的个数C. 函数参数类型D. 函数的功能答案:D8.在int a=3,int *p=&a;中
3、,*p的值是()A. 变量a的地址值B. 无意义C. 变量p的地址值D. 3答案:D9. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数()答案:A10. 适宜采用inline定义函数情况是()A. 函数体含有循环语句B. 函数体含有递归语句C. 函数代码少、频繁调用D. 函数代码多、不常调用答案:C11. 在函数定义中的形参属于()A. 全局变量B. 局部变量C.静态变量D.寄存器变量答案:B12. C+锵言中所有在函数中定义的变量,连同形式参数,都属于()A. 全局变量B. 局部变量C. 静态变量D. 函数答案:B13. 下列
4、有关重载函数的说法中正确的是()A. 重载函数必须具有不同的返回值类型B. 重载函数参数个数必须相同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同答案:C14. 使用地址作为实参传给形参,下列说法正确的是()A. 实参是形参的备份B. 实参与形参无联系C. 形参是实参的备份D. 实参与形参是同一对象答案:D15. 在C+冲,使用流进行输入输出,其中用于屏幕输入0A. cinB. cerrC. coutD. clog答案:A16. 若有以下定义,则说法错误的是()int a=100,*p=&a;A. 声明变量p,其中*表示p是一个指针变量B. 变量p经初始化,获得变量a的地址C. 变
5、量p只可以指向一个整型变量D. 变量p的值为100 答案:D17. C+寸C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D18. 3.可替换 #define PI 3.1415926 的语句是()A. float PI 3.1415926;B. const float PI=3.1415926;C. const PI(3.1415926);D. const 3.1415926答案:B19. 如果一个函数没有返回值,则应选择下列说明符中的(A. doubl
6、e B. void C. int D. char答案:B20. 8.下列哪种默认参数的声明是不正确的(C)A. int max(int a,int b , int c , int d=0);B. int max(int a,int b , int c=0 , int d=0);C. int max(int a=0,int b , int c=0 , int d=0);D. int max(int a,int b=0 , int c=0 , int d=0);21. 包含哪种语句的函数不能声明为内联函数( A)A.循环 B. 变量自增自减 C.if.else D.变量声明22. 已知:const
7、 char *ptr:那么 ptr 应该是(A )。A、指向字符串常量的指针B 指向字符串的常量指针G指向字符的常量的指针D指向字符常量的指针23. 11在C+冲,关于下列设置参数默认值的描述中,正确的是A. 不允许设置参数的默认值B. 设置参数默认值只能在定义函数时设置C. 设置参数默认值时,应该是先设置右边的再设置左边的D. 设置参数默认值时,应该全部参数都设置二、填空题1. 开发一个c+言程序的步骤通常包括编辑、连接、运行和调试答案:编译2. 假设int a=1 ,b=2; 则表达式(+a/b)*b- 的值为 _。答案:23. 下面程序的输出结果为o#include void main(
8、)int num=2,i=6;donu m+;while(-i);cout vvnu me ndl;答案:54. 由const修饰的对象称为 o答案:常对象5. 表达式coutend1还可表示为。答案:n6. 在C+冲,访问一个指针所指向的对象的成员所用的指向运算符是答案7. C+刑序的源文件扩展名为o答案:cpp8. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是 答案:自定义9. C+锵言中如果调用函数时,需要改变实参或者返回多个值,应该采取 答案:传地址或引用10. 若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的 答案:声明11. 在C +冲有两
9、种参数传递方式:传值和 O答案:传引用或地址12.在函数前面用保留字修饰时,则表示该函数表为内联函数。的头文件方式。语句答案:inline13. C+通过引用运算符 _来定义一个引用的。答案:&14. 局部对象和全局对象中,在同一程序中 生存期最长。答案:全局对象15. 布尔类型标识符是()答案:bool16. 若要使用C+赫准类库,需要指定相应的命名空间,所用的语句是-答案:using namespace std;17. 使用newJint数组动态分配10个存储空间是。答案:n ew int 1018. 在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句
10、答案: int *ip=new int 10;19. 8. C+冲语句con st char * con st p=“ hello ”;所定义的指针p和它所指的内容都不能被 答案:修改20. 如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是。答案:con st double Pl(3.14159); 或者 const double PI = 3.14159;21. 面向对象程序设计的 3个主要性质是: 、继承、 。答案:封装,多态22. 使用cin和cout进行输入输出操作的程序必须包含头文件_答案: iostream.h、改错题1. #include void m
11、ain()int i,*p;i=10;*p=i;cout*pendl;答案: *p=i; 指针即地址没有被赋值。修改 p=&i;2. 以下程序实现交换 a,b 变量的值,请用下横线标出错误所在行并给出修改意见#include void swap(int &a,int &b)a=a+b;b=a-b;a=a-b;void main()int a=19,b=15;couta=a,b=be ndl;swap(&a,&b);couta=a,b=be ndl;答案: swap(&a,&b); 函数的形参是变量的引用,调用时的实参应该是地址 修改 swap(a, b);四、完成程序题 (本大题共 5小题,每
12、小题 4分,共20分)1.下面是一个三角形三边,输出其面积 C+程序,在下划线处填上正确的语句#include #include void area()double a,b,c;coutc&a+cb&c+ba)double l=(a+b+c)/2;coutThe area is:sendl;elsecoutErrorabc; , double s=sqrt(l*(l-a)*(l-b)*(l-c);解析输入三个边的长度,由公式得出三角形的面积 double s=sqrt(l*(l-a)*(l-b)*(l-c);2.下面是一个输入半径,输出其面积和周长的C+S序,在下划线处填上正确的语句#incl
13、ude void main() double rad;coutrad;double l=2.0*pi*rad;double s=pi*rad*rad;cout n The long is : lendl;coutThe area is : sendl;答案:using namespace std,#define pi 3.14159解析 进行输入或输出要弓I入 iostream,所以using namespace std;使用宏定义,#define pi 3.14159。3. 程序实现大写字母转换成小写字母。#include void main()char a;cin a;if()从标点看没有
14、分号,所以a=a+i;couta=A & a=Z解析大写字母变小写字母相差 32,需要对 i 声明并初始化。大写字母变小写字母。要判断字 符是大写字母。4. 在下面程序横线处填上适当内容,使程序执行结果为:S=2S=5S=9#include void sum(int i)static int s;couts=se ndl;void main (void)int i;for (i=0;)sum(i);答案:s=s+i+2; , i3,i+5. 下面程序段用来求三角形的面积,首先判断三边不符合组成三角形时,#include #inelude double area(double a,double
15、b,double c)if(_)return -1;elsedouble ar,I;l=(a+b+c)/2;ar=sqrt(l*(l-a)*(l-b)*(l-c);-1,符合时输出三角形面积。return ar;void main()double i=Oj=O,k=O;cout输入三角形三边:cini jk;double s=area(ij,k);if(sc|a+cb|b+ca , coutsendl;解析三角形组成规则:两边之和大于第三边。svO不是三角形6. 参数顺序不同的函数重载,写出运行结果。#in cludeusing namespace std;void info(char *na
16、me,int age) cout 名称:vvname,数量:ageendl;void info(int age,char *name) cout 名称:“vvname,数量:ageendl;int main() info( 书包,16);info(18,笔记本 J;return 0;7 .比较内部auto变量和内部static变量的不同,写出运行结果#in cludeusing namespace std;void test ()int x=10; /动态变量xstatic int y=10; /静态变量 ycoutauto_x= x ,static_y= y;void main()inti;
17、for(i=0;i3;i+)test();五、编程题1 求分段函数y=f(x)的值,f(x)的表达式如下:x2 1(x- 1)y= x2 (- 1x1).#include using namespace std;void main()float x,y;coutEnter x:cinx;y=x*x-1;else if(x=-1 &xv=)y=x*x;else y=x*x+1: coutf(x)=ye ndl;2.用switch语句实现计算器的简单功能#inelude using namespace std;void main()float x,y;/char oper; /运算数运算符cout
18、Enter x,oper,y: cin xopery;switch(oper) case coutx+y=x+yendl; break;case coutx-y=x-yendl; break;casecoutx*y=x*yendl; break;case 7: if(y=O)coutdivisor is zero!rT;break;coutx/y=x/yendl; break;default: coutoperator has no effect!rT;3.求100以内的奇数之和#inelude using namespace std;void main()int i=1 ,sum=0;whi
19、le(i=100)sum+=i;i+=2;coutsum=sume ndl;#inelude using namespace std;void main()int i=1 ,sum=0;dosum+=i;i+=2;while(i=100); coutsum=sume ndl;#include using namespace std;void main()int i,sum;sum=O;for(i=1;i=100;i+=2)sum+=i; coutsum=sume ndl;4. 输入一个整数,求出它的所有因子#include using namespace std;void main()int
20、n,k;coutEntera positive integer:cinn;coutNumber vvnvv Factors for(k=1 ;k 二n ;k+)if(n%k=O)coutkcoute ndl;5. 定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过#include using namespace std;char up (char c)if(c = 97 & c= 123)return (c - 32);elsereturn c;up返回,否则字符ch不改变void main()int i;char c;for(i = 0 ; i c;cout up(c),
21、cout endl;6. 编写主程序输入实数r和整数n,用函数求r的n次幕#include #include double power(double a, int b)inti;double result = 1.0;for(i=0;ir;coutvv”n 二cinn;cout r 的”vv nvv“次幕是: power(r,n) vv endl;7. 编写程序计算两个整数绝对值#inelude #inelude using namespace std;int fac (int n)/ int i,f=1;n=abs( n);for(i=1 ;i xy;c1= fac(x) ; /调用函数fa
22、c ,求x绝对值的阶乘 c2=fac(y); / 调用函数fac ,求y绝对值的阶乘 cout “the outcome is ” c1 -c2endl;8. 用函数实现交换两个数a和b的值。方法一:简单变量作为函数形参(值传递)#include using namespace std;void swap (int x,int y) int temp;temp=x; x=y; y=temp; coutx=x, y=yendl;void main() int a=10,b=20;swap(a,b);couta=a, b=bendl;方法二:引用作为函数形参(地址传递)void swap(int
23、&x,int &切int temp;temp=x; x=y; y=temp;coutx=x, y=yendl;void main() int a=10,b=20;couta=a, b=bendl; swap(a,b);couta=a, b=bendl;方法三:指针作为函数形参(地址传递)#include using namespace std;sw即(int *p1 ,int *p2 ) int temp;temp=*p1; *卩仁*卩2; *p2=temp; int main()int a=10,b=20;jnt *pa=&a,*pb=;swap( pa, &tj);couta= a ,b=
24、 b;9输入a,b,c三个数,调用函数,得到其中 最大数方法一:简单变量作为函数形参(值传递)#in cludeusing namespace std;void sort(int &a, int &b, int &c) int m;if(ba) m=a; a=b; b=m; if(ca) m=a; a=c; c=m; if(cb) m=c; c=b; b=m; int main() int a, b, c, ma ;coutPlease enter a,b,c:endl;cin abc;sort(a,b,c) ;couta ” , ” b, , ” cendl;return 0;方法二:指针作
25、为函数形参(地址传递)#include using namespace std;函数声明int max(int*x,int*y,int*z);/ int main() int a,b,c;cinabc;输出 3 个数中的最大者coutmax(a,b,c)= max(&a,&b,&c)*m) *m=*y;if(*z*m) *m=*z;return(*m);10. 编写一个求方程 ax2 + bx + c = 0 的根 的程序,用 3个函数分别求当 b2-4ac 大于零、等于零、和小于零时的方程的根。要求从主 函数输入 a,b,c 的值并输出结果。#include #include void equation_1 (int a, int b, int c)double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = (-b - sqrt(temp) ) / (2 * a * 1.0);cout 两个不相等的实根 abc;cout方程为: ax*x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胸外科护士工作心得
- 2025年全球及中国单摆铣头行业头部企业市场占有率及排名调研报告
- 2025-2030全球倒置行星滚柱丝杠行业调研及趋势分析报告
- 2025年全球及中国虚拟试穿平台行业头部企业市场占有率及排名调研报告
- 2025年全球及中国汽车天线定位器行业头部企业市场占有率及排名调研报告
- 2025年全球及中国重载有轨穿梭小车(RGV)行业头部企业市场占有率及排名调研报告
- 2025年全球及中国丝素蛋白敷料行业头部企业市场占有率及排名调研报告
- 2025-2030全球直线式桁架机器人行业调研及趋势分析报告
- 2025-2030全球装运前检验(PSI)服务行业调研及趋势分析报告
- 2025年全球及中国电子钥匙柜行业头部企业市场占有率及排名调研报告
- 江西省部分学校2024-2025学年高三上学期1月期末英语试题(含解析无听力音频有听力原文)
- GA/T 2145-2024法庭科学涉火案件物证检验实验室建设技术规范
- 2024年中考语文试题分类汇编:非连续性文本阅读(学生版)
- 2024年度窑炉施工协议详例细则版B版
- 第一届山东省职业能力大赛济南市选拔赛制造团队挑战赛项目技术工作文件(含样题)
- 尿毒症替代治疗
- 【课件】2025届高考英语一轮复习小作文讲解课件
- 基底节脑出血护理查房
- 工程公司总经理年终总结
- 2024年海南省高考地理试卷(含答案)
- 【企业盈利能力探析的国内外文献综述2400字】
评论
0/150
提交评论