




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 概念填空题1.1一个C+程序是由一个或多个函数所组成,即使是最简单的程序,也必须有一个 main 函数。该函数是程序执行的 起点 和 终点 。C+中,函数不允许嵌套 定义 ,允许嵌套 调用 。1.2 函数执行过程中通过 return 语句将函数值返回,当一个函数不需要返回值,需要使用 void 作为类型名。1.3 在C+中,如果函数定义在后,调用在先,需要 原型声明 。其格式和定义函数时的函数头的形式基本相同,但参数表中 形参 不是必须的,同时必须以 ; 结尾。1.4 递归程序分两个阶段执行 递推 , 回归 。1.5 函数名相同,但对应形参表不同的一组函数称为 重载函数 ,参数表不同是指 类型 不同或 参数个数 不同。1.6 内联函数的展开、重载函数的确定均在 编译 阶段进行。1.7 静态局部变量存储在 全局数据 区,在 程序运行 时候建立,生命期为 整个程序 ,如定义时未显式地初始化,则其初值为 0 。局部变量存储在 栈 区,在 块或函数开始运行 时候建立,生命期为 块或函数 ,如定义时未显式地初始化,则其初值为 随机数 。2.简答题2.1 函数的作用是什么?如何定义函数?什么叫函数原型?2.2 什么叫形式参数?什么叫实际参数?C+函数参数有什么不同的传递方式?请写一个验证程序说明。2.3 C+函数通过什么方式传递返回值?若返回引用类型时,是否可以返回一个算术表达式?为什么?2.4 变量的生存期和变量作用域有什么区别?请举例说明。2.5 静态局部变量有什么特点?编写一个应用程序,说明静态局部变量的作用。3选择题3.1正确的函数定义形式为(A )。 Avoid fun(void)Bdouble fun(int x;int y) Cint fun(int=0,int);Ddouble fun(int x,y)3.2 C+语言中规定函数的返回值的类型是由(D)。Areturn语句中的表达式类型决定 B调用该函数时的主调函数类型决定C调用该函数时系统临时决定D定义该函数时所指定的函数类型决定3.3 若有函数调用语句:fun(a+b,(x,y),(x,y,z);此调用语句中的实参个数为(A)。A3B4C5D63.4 C+中,关于默认形参值,正确的描述是(C)。A设置默认形参值时,形参名不能缺省 B只能在函数定义时设置默认形参值C应该先从右边的形参开始向左边依次设置 D应该全部设置3.5 若同时定义了如下函数,fun(8,3.1)调用的是下列哪个函数(D)。Avoid fun(float,int)Bvoid fun(double,int)Cvoid fun(char,float)Dvoid fun(double,double)3.6 有函数原型void fun4 ( int &);下面选项中,正确的调用是(C)。 A.int x=2.17; fun4(&x); B.int a=15:fun4(a*3.14); C. int b=100; fun4(b).; D. fun4(256):3.7 下列的描述中(B)是错误的。 A.使用全局变量可以从被调用函数中获取多个操作结果 B.局部变量可以初始化,若不初始化,则系统默认它的值为0 C.当函数调用完后,静态局部变量的值不会消失 D.全局变量若不初始化,则系统默认它的值为03.8下列选项中,(C)具有文件作用域。 A.函数形参 B.局部变量 C.全局变量 D.静态变量3.9 int i=100;下列引用方法中,正确的是(A)。Aint &r=i;Bint &r=100;Cint &r;Dint &r=&i;4.写出下列程序运行结果4.1 #include #include using namespace std; int f( int); int main()int i; for( i=0; i3; i+) coutf(i)endl; int f( int a) int b=0,c=1; b+;c+; return(a+pow(b, 2)+c); 3454.2 #include using namespace std; void func(int a, int b, int c=3, int d=4); int main() func( 10, 15, 20, 30); func( 10, 11,12); func(12,12); void func( int a, int b, int c, int d) coutatbtctdendl; 10 152030 1011124 12 12344. 3 #include using namespace std; void func( int, int, int&); int main() int x=0,y=1,z=2; func( 1,2,x); func( x+y,y,y); func( z,x+y,z); coutx” , ”y=” , ”zendl; void func( int a,int b,int &c) b +=a; c=b-a;4.4 #include using namespace std; int f2( int, int); int f1(int a,int b) int c; a+=a;b+=b; c=f2( a+b,b+1); return c; int f2( int a,int b) int c; c=b%2; return a+c; int main() int a=3,b=4; coutf1(a,b)endl; 154.5#include using namespace std; int age( int n) int f; if( n=1) f= 10; else f=age(n-1)+2; return f; int main() coutage:”age( 5)y?x:y);int main() int m(3),n(4);max(m,n) -;coutm”t”n;334.7 int f(int i) return +i;int g(int &i) return +i;int main() int a(0),b(0);a+=f(g(a);b+=f(f(b);couta”t”b;325.编程题5.1 输入m、n和p的值,求s=的值。注意判断运算中的溢出。#includeusing namespace std;long sum(int,int);int main()long s;int m,n,p;cinmnp;s=sum(m,1)+sum(n,3)+sum(p,5);coutsendl;return 0;long sum(int n,int e)long s=0;int i,j,q;for(i=1;i=n;i+)q=1;for(j=1;j=e;j+)q*=i;s+=q;return s;5.2 使用重载函数编程序分别把两个数和三个数从大到小排列。#includeusing namespace std;void f(int,int,int);void f(int,int);int main()int a,b,c;cinab;f(a,b);cinabc;f(a,b,c);return 0;void f(int a,int b,int c)int t;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;couta,b,cb)couta,bendl;else coutb,aendl;5.3 设计一函数,判断一整数是否为素数。并完成下列程序设计.(1)求3-200之间的所有素数(2)在4-200之间,验证歌德巴赫猜想:任何一个充分大的偶数都可以表示为两个素数之和。输出4=2+2 6=3+3。200=3+197#include #include bool IsPrime(long);void main()long i,j,k;const int N=200;for(i=3;i=N;i=i+2)if(IsPrime(i)couti,;coutendl;for(i=6;i=N;i+=2)k=i/2;for(j=2;j=k;j+)if (IsPrime(j) & IsPrime(i-j)couti=j+i-jendl;break;bool IsPrime(long n)long i,k;k=(int)sqrt(n);i=1;while (+i=k)if (n%i=0)return false;return true;5.4编写递归函数求两个数的最大公约数,并在主函数中加以调用验证。#includeusing namespace std;int f(int,int);int main()int a,b;cinab;cout1同时nan;b=convert(a,n);coutbendl;return 0;long convert(long a,int n)if(an)return a;else return convert(a/n,n)*10+a%n;5.6用递归函数实现勒让德多项式。并在主函数中求P5(1.4)。 Pn(x)=#includeusing namespace std;double P(int n,double x)if(n=0) return 1;if(n=1) return x;return (2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x)/n;int main()coutP(4,1.5)=P(4,1.5)endl;return 0;5.7 把以下程序中的print()函数改写为等价的递归函数。 #include void print( int w) for( int i=1;i=w;i+) for( int j=1;j=i;j+) couti” “; cout1)print(n-1);for(int i=1;i=n;i+)coutn” “;coutendl;5.8定义结构类型Triangle,表示一个矩形,它的两个数据成员length和width分别表示长和宽。定义重载函数add,能完成int,double,Triangle类型数据的相加。其中Triangle类型数据相加的含义是两个Triangle变量的length和width分别相加。#includeusing namespace std;struct Triangleint length,width;int add(int,int);double add(double,double);Triangle add(Triangle,Triangle);int main()int a,b,c;double d,e,f;Triangle x,y,z;cinab;c=add(a,b);cinde;f=add(d,e);cinx.le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水体污染修复与水质提升技术方案
- 燃煤发电设备运行优化方案
- 防水工程环境影响评估方案
- 深远海养殖生态环境保护与修复方案
- 城市地下综合管网建设项目技术方案
- 甲乙丙三方能源产业股权转让及新能源开发协议
- 北京印刷学院印刷产业人才培训与引进合作协议
- 宅基地空地租赁与乡村振兴战略合作合同书
- 沙漠治理项目用地租赁与生态修复合作协议
- 离婚纠纷中夫妻共同财产分割及债务处理合同
- 国家电网工作人员综合素质考试题库含答案
- 2025年秋季开学全体教职工大会校长讲话:35分钟会议把所有老师骂醒了
- 3.4 活动:电路创新设计展示说课稿 2025-2026学年教科版物理九年级上册
- 2025年彩色水泥行业研究报告及未来行业发展趋势预测
- 2025高级工程师聘用合同
- 煤矿井下喷浆安全培训课件
- 输变电工程建设现行主要质量管理制度、施工与验收质量标准目录-2026年2月版-
- 2025年餐饮服务及学校食堂从业人员食品安全知识培训考试试卷(含答案)
- 1.3 植物与阳光(教学课件)科学青岛版二年级上册(新教材)
- 3.2《参与民主生活 》- 课件 2025-2026学年度道德与法治九年级上册 统编版
- 诺如知识培训方案课件
评论
0/150
提交评论