下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 单项选择题调试、 编译、 调试、 编辑、1. 编写C+程序一般需经过的几个步骤依次是0A. 编辑、B. 编辑、C. 编译、D. 编译、答案:B2. 设有定义int i:double j = 5:,贝打0+i+j值的数据类型是()A. intB. doubleC. floatD. 不确定答案:B3. 有关C+编译指令,以下叙述正确的是()A. C+诲行可以写多条编译指令B. #include指令中的文件名可含有路径信息C. C+的编译指令可以以#或开始D. C+中不管# if后的常量表达式是否为真,该部分都需要编译 答案:B4. 在下列成对的表达式中,运算结果类型相同的一对是()A. 7.
2、0 /2.0 和7.0/2B. 5/2.0和5/2C. 7.0 /2和7/2D. 8/2和 6.0/2.0答案:A5.A.B.C.在C+中不返回任何类型的函数应该说明为0intcharvoidD. double 答案:C6. 决定C+语言中函数的返回值类型的是0A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D7. 在C+冲,函数原型不能标识0A. 函数的返回类型B. 函数参数的个数C. 函数参数类型D. 函数的功能答案:D8. 在int a=3,int *p=&a;中,*p 的值是()
3、A. 变量a的地址值B. 无意义C. 变量P的地址值D. 3答案:D9. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数答案:A10. 适宜采用inline定义函数情况是()A. 函数体含有循环语句B. 函数体含有递归语句C. 函数代码少、频繁调用D. 函数代码多、不常调用答案:C11.在函数定义中的形参属于()A.B.C.D.全局变量 局部变量 静态变量 函数重载函数必须具有不同的返回值类型 重载函数参数个数必须相同 重载函数必须有不同的形参列表 重载函数名可以不同实参是形参的备份 实参与形参无联系 形参是实参的备份 实参与形参
4、是同一对象全局变量局部变量静态变量 寄存器变量答案:B12. C+确言中所有在函数中定义的变量,连同形式参数,都属于()A.B.C.D.答案:B13. 下列有关重载函数的说法中正确的是()A.B.C.D.答案:C14. 使用地址作为实参传给形参,下列说法正确的是()A.B.C.D.答案:Dcin cerr cout clog15. 在C+中,使用流进行输入输出,其中用于屏幕输入0A.B.C.D.答案:A16. 若有以下定义,则说法错误的是0声明变量P,其中*表示P是一个指针变量 变量P经初始化,获得变量a的地址 变量P只可以指向一个整型变量 变量P的值为100int a=100,*p=&
5、;a:A.B.C.D.答案:D增加了一些新的运算符允许函数重载,并允许设置缺省参数 规定函数说明符必须用原型引进了类和对象的概念17. C+WQg言做了很多改进,即从面向过程变成为面向对象的主要原因是0A.B.C.D.答案:D18. 3可替换 #define PI 3.M15926 的语句是()A. float PI 3.1415926;B. const float Pl=3.1415926;C. const Pl(3.1415926);D. const 3.1415926;答案:B19如果一个函数没有返回值,则应选择下列说明符中的(A. double B. void C. int D. ch
6、ar答案:B20. 8下列哪种默认参数的声明是不正确的(A. int max(int aB. int max(int aC. int max(int a=0D. int max(int aC),intb ,int c , int d=0);,intb ,int c=0,int d=0),int b, int c=0, int d=0),intb=0, int c=0, int d=0)21.包含哪种语句的函数不能声明为内联函数(A.循环B. 变量自增自减 C.if.elseA)D.变量声明22.23.A.B.C.D.已知A、 b G D 11>那么ptr应该是(A )。const cha
7、r *ptr:指向字符串常量的指针指向字符串的常量指针指向字符的常量的指针 指向字符常量的指针在C+冲,关于下列设置参数默认值的描述中,正确的是(C ).不允许设置参数的默认值设置参数默认值只能在定义函数时设置设置参数默认值时,应该是先设置右边的再设置左边的 设置参数默认值时,应该全部参数都设置填空题、连接、运行和调试。1. 开发一个C+碼言程序的步骤通常包括编辑、 答案:编译2. 假设int a=1,b=2:则表达式 什+a/b)*b- 的值为。答案:23. 下面程序的输出结果为#inelude <iostream.h>void main()int num=2,i=6: do&g
8、t;-:nu m+:while(-i):cout <<nu m«e ndl;答案:54. 由const修饰的对象称为o答案:常对象5. 表达式cout«end1 还可表示为 。答案:、n'6. 在C+中,访问一个指针所指向的对象的成员所用的指向运算符是 答案:->7. C+程序的源文件扩展名为答案:cpp8. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是 答案:自定义9. C+语言中如果调用函数时,需要改变实参或者返回多个值,应该采取 答案:传地址或引用10. 若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数
9、的 答案:声明11. 在C+中有两种参数传递方式:传值和答案:传引用或地址12. 在函数前面用保留字修饰时,则表示该函数表为内联函数。 答案:inline13. C+規通过引用运算符 _来定义一个引用的。答案:&生存期最长。14. 局部对象和全局对象中,在同一程序中的头文件。方式。语句。答案:全局对象15. 布尔类型标识符是()答案: bool16. 若要使用C+标准类库,需要指定相应的命名空间,所用的语句是 答案: using namespace std;17. 使用new为int数组动态分配10个存储空间是 。答案: new int 10 ;18 在已经定义了整型指针 iP 后,为
10、了得到一个包括 10个整数的数组并由 iP 所指向,应使用语句 答案: int *iP=new int10;“hello ”;所定义的指针P和它所指的内容都不能被19. 8. C+ 中语句 con st char * const p=答案:修改20. 如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是答案:const double Pl(3.14159); 或者 const double PI = 3.14159;21. 面向对象程序设计的3个主要性质是: 、继承、答案:封装,多态22. 使用cin和cout进行输入输出操作的程序必须包含头文件答案: iostream
11、.h三、改错题1. #include <iostream.h> void main() int i,*P; i=10; *P=i; cout<<*P<<endl; 答案: *P=i; 指针即地址没有被赋值。修改p=&i:2. 以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。#inelude <iostream.h>void swap(int &a,int &b)a=a+b:b=a-b:a=a-b: void main()int a=19,b=15: cout«"a="&
12、#171;a«",b="«b«e ndl;swap (&a,&b): cout«"a="«a«",b="«b«e ndl;答案:swap(&a,&b);函数的形参是变量的引用,调用时的实参应该是地址。 修改swap(a, b):四、完成程序题(本大题共5小题,每小题4分,共20分)1.下面是一个三角形三边,输出其面积C+<序,在下划线处填上正确的语句。#inelude <iostream.h>#inelud
13、e <math.h>void area()double a,b,c:cout«"lnput a b c:": if(a+b>c&&a+c>b&&c+b>a)double l=(a+b+c)/2: cout«"The area is:"«s«endl;elsecout<<"Error"<<endl;void main()area();答案: cin>>a>>b>>c; , do
14、uble s=sqrt(l*(l-a)*(l-b)*(l-c);解析输入三个边的长度,由公式得出三角形的面积 double s=sqrt(l*(l-a)*(l-b)*(l-c);2. 下面是一个输入半径,输出其面积和周长的C+程序,在下划线处填上正确的语句。#include <iostream> void main()double rad;cout<<"rad="cin>>rad;double l=2.0*pi*rad;double s=pi*rad*rad;cout<<" n The long is : "
15、;<<l<<endl;cout<<"The area is : "<<s<<endl;答案: using namespace std,#define pi 3.14159解析进行输入或输出要引入 iostream, 所以 using namespace std; 从标点看没有分号,所以 使用宏定义, #define pi 3.14159。3. 程序实现大写字母转换成小写字母。#include <iostream.h>void main()char a;cin>>a;if()a=a+i;cou
16、t<<a<<endl;答案: int i=32; ,a>=A && a<=Z 解析大写字母变小写字母相差 符是大写字母。4. 在下面程序横线处填上适当内容, S=2S=5S=9#include <iostream.h>void sum(int i)static int s;32,需要对 i 声明并初始化。大写字母变小写字母。要判断字使程序执行结果为:cout<<"s="<<s<<endl;void main (void)int i;for (i=0;)sum(i);答案: s
17、=s+i+2; , i<3,i+5. 下面程序段用来求三角形的面积, #include <iostream.h> #include <math.h> double area(double a,double b,double c) if()return -1;else首先判断三边不符合组成三角形时,返回-1 ,符合时输出三角形面积。double ar,I:l=(a+b+c)/2: ar=sqrt(l*(l-a)*(l-b)*(l-c): return ar:void main()H.double i=Oj=O,k=O: cout«"输入三角形三边
18、: cin>>i> >j»k: double s=area(ij,k): if(s<0)cout«"不是三角形”<<endl; else答案:a+b>c|a+c>b|b+c>a, cout«s«endl;解析三角形组成规则:两边之和大于第三边。s<0不是三角形,是则输出S6.参数顺序不同的函数重载,写出运行结果。#in clude<iostream>using namespace std:void info(char *name,int age) cout«
19、" 名称:"vvnamevv",数量:"«age«endl:void info(int age,char *name) cout«"名称:"vvnamevv",数量:"«age«endl: int main() info(" 书包",16): info(18,"笔记本"): return 0:7. 比较内部auto变量和内部static变量的不同,写出运行结果。#in clude<iostream>using na
20、mespace std:void test 0int x=10: /动态变量Xstatic int y=10: /静态变量 ycout«"auto_x="« X «",static_y=" «y: void main()inti:for(i=0:i<3:i+) test():五、编程题f(x)的表达式如下:(x<-1)-1<x<1)(x>1)1 求分段函数y=f(x)的值,x2 1y= x2 (x2+ 1.#inelude <iostream> using namespac
21、e std: void main()float x,y:cout«"Enterx:cin> >x;if(x<-1)y=x*x-1:else if(x>=-1&&x<=1) y=x*x:else y=x*x+1: cout«"f(x)="«y«e ndl;2.用switch语句实现计算器的简单功能。#inelude <iostream>using namespace std:void main()/float x,y: char oper; cout«&quo
22、t;Enterx,oper,y:": cin> >x> >op er»y: switch( oper)case cout«"x+y="«x+y«endl; break: casecout«"x-y="«x-y«endl; break:casecout«"x*y="«x*y«endl; break:case 7': if(y=O)cout«"divisor is zero!n&
23、quot; break:cout«"x/y="«x/y«endl; break: default: cout<<"operator has no effect!n"3.求100以内的奇数之和#inelude <iostream> using namespace std: void main()int i=1,sum=0: while(i<=100)sum+=i:i+=2:cout«"sum="«sum«e ndl;#inelude <ios
24、tream> using namespace std: void main()int i=1,sum=0: dosum+=i:i+=2:while(i<=100):cout«"sum="«sum«e ndl;#inelude <iostream> using namespace std: void main()int i,sum:sum=0: for(i=1:i<=100:i+=2) sum+=i: cout«"sum="«sum«e ndl;4. 输入一个整数,求
25、出它的所有因子。#inelude <iostream>using namespace std:void main()int n,k:cout«"Enter a positive integer:": cin>>n;cout«"Number "<<n<<" Factors ": for(k=1 :k<=n:k+)if(n%k=O)cout«k«"":cout«e ndl;5. 定义函数up(ch),如字符变量ch是
26、小写字母就转换成大写字母并通过 #inelude < iostream >up返回,否则字符 ch不改变。using namespace std: char up (char c)if(c >= 97 && c<= 123) return (c - 32): elsereturn c:void main()inti:char c:for(i = 0:i<5: i+) cin>>c;cout« up(c)«",":cout« endl;6. 编写主程序输入实数r和整数n,用函数求r的n次幕
27、。#include < iostream.h >#include < math.h >double power(double a, int b)inti:double result = 1.0: for(i=0:i< b:i+)result = result * a: return result:void main()double r:int n:cout«"r =":cin>>r;cout«" n =":cin>>n;cout« r«" 的"
28、;<<n<<" 次幕是:"« power",n) << endl;7.编写程序计算两个整数绝对值 #inelude <iostream>#inelude <math.h> using namespace std: int fac (int n) inti,f=1: n=abs( n);for(i=1:i<=n:i+) f=f*i: return (f):阶乘之差。/计算一个整数绝对值的阶乘求X绝对值的阶乘 求y绝对值的阶乘fac , fac , «c1-c2«e ndl
29、;void main() int x,y,c1,c2:cout<<"please enter x, y :": cin> >x>>y;c1= fac(x) : / 调用函数 c2=fac(y): / 调用函数 cout« "theouteis "8. 用函数实现交换两个数a和b的值。 方法一:简单变量作为函数形参(值传递)#inelude <iostream>using namespace std:void swap (int x,int y) int temp:tern p=x;x=y: y=t
30、em p;cout«"x="«x«", y="«y«endl;void main() int a=10,b=20:swap(a,b ):cout«"a="«a«", b="«b«endl;方法二:引用作为函数形参(地址传递)void swap(int &x,int &y) int temp:tern p=x; x=y: y=tem p;cout«"x="«x
31、171;", y="«y«endl;void main() int a=10,b=20:cout«"a="«a«", b="«b«endl; swap( a,b ):cout«"a="«a«", b="«b«endl;方法三:指针作为函数形参(地址传递)#inelude <iostream>using namespace std: swap(int *p1 ,int
32、 *p2 ) int temp:temp=*p1: *p1=*p2: *p2=temp: int main()int a=10,b=20:int *p a=&a,* pb=;swap (pa, &b):cout«"a=" «a «",b= "«b:9. 输入a,b,c三个数,调用函数,得到其中最大数O方法一:简单变量作为函数形参(值传递)#in clude<iostream>using namespace std:void sort(int &a, int &b, int
33、 &c) int m:if(b>a) m=a: a=b: b=m: if(c>a) m=a: a=c: c=m: if(c>b) m=c: c=b: b=m: int main() int a, b, c, ma :cout<<"Please enter a,b,c:"«endl; cin> >a>>b>>c;sort(a,b,c) :cout<<a<< ”, ” <<b<<” , ” return 0;<<c<<end
34、l;方法二 : 指针作为函数形参 (地址传递 )#include <iostream> using namespace std; int max(int *x,int *y,int *z); int main( ) int a,b,c;cin>>a>>b>>c;cout<<"max(a,b,c)="<< max(&a,&b,&c)<<endl; return 0; int max(int *x, int *y, int *z) / int *m=x;if(*y>
35、*m) *m=*y; if(*z>*m) *m=*z;return(*m);/函数声明函数定义输出 3 个数中的最大者10. 编写一个求方程 ax2 + bx + c = 0 的值并输出结果。的根的程序,用 3 个函数分别求当 b2-4ac 大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c#include < iostream.h >#include < math.h >void equation_1 (int a, int b, int c) double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b
36、+ sqrt(temp) / (2 * a * 1.0): x2 = (-b - sqrt(temp) / (2 * a * 1.0): cout«"两个不相等的实根"vv endl: cout«"x1 = "« x1«", x2 = "« x2« endl:void equation_2 (int a, int b, int c)double x1, x2, ternp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) / (2 *
37、a * 1.0):x2 = x1 :cout«"两个相等的实根"<<endl;cout«"x1 = "« x1«", x2 = "« x2« endl: void equation_3 (int a, int b, int c)cout«"方程无解/两个虚根"« endl: void main()int a, b, c:double ternp;cout«"输入 a,b,c 的值"« endl:cin> >
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学物联网工程(物联网系统研发)试题及答案
- 蓝黄色极简风格演示
- 《少有人走的路》读书感悟主题班会课件
- 工程安全员培训资料课件
- 房颤消融医疗纠纷防范策略
- 幼儿园安全事故应急处置预案(7篇)
- 人工智能应用开发合同协议
- 2026年度全国安全生产知识竞赛试题库及答案
- 工厂防雨设备租赁协议
- 慢病高危人群的分层管理与干预
- 儿科泌尿系感染的护理
- 上海电机学院计算机C语言专升本题库及答案
- 23秋国家开放大学《液压气动技术》形考任务1-3参考答案
- 医院信息系统操作权限分级管理制度
- 颈部肿块课件
- GB/T 17215.321-2008交流电测量设备特殊要求第21部分:静止式有功电能表(1级和2级)
- 考查课程考核方案
- 2023年郑州公用事业投资发展集团有限公司招聘笔试模拟试题及答案解析
- 西南财经大学财政学讲义
- 内蒙古乡镇卫生院街道社区卫生服务中心地址医疗机构名单1598家
- 湖北省黄石市各县区乡镇行政村村庄村名居民村民委员会明细
评论
0/150
提交评论