收藏 分享(赏)

c++第05章 补充练习.doc

上传人:dwy79026 文档编号:7058433 上传时间:2019-05-04 格式:DOC 页数:13 大小:127.50KB
下载 相关 举报
c++第05章 补充练习.doc_第1页
第1页 / 共13页
c++第05章 补充练习.doc_第2页
第2页 / 共13页
c++第05章 补充练习.doc_第3页
第3页 / 共13页
c++第05章 补充练习.doc_第4页
第4页 / 共13页
c++第05章 补充练习.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、1第 05 章 函数补充练习一、 选择题1当一个函数无返回值时,函数的类型应为 。A 任意 B void C int D char2在函数声明中, 是不必要的。A 函数参数的类型和参数名 B 函数名C 函数的类型 D 函数体3一个函数带有参数说明时,则参数的默认值应该在 中给出。A 函数定义 B 函数声明C 函数定义或声明 D 函数调用4下列叙述中错误的是 。A 一个函数中可以有多条 return 语句B 调用函数必须在一条独立的语句中完成C 函数中通过 return 语句传递数值D 主函数名 main 也可以带参数5在 C+语言中函数返回值的类型是由 决定的。A 调用该函数时系统临时B re

2、turn 语句中的表达式类型C 定义该函数时所指定的函数类型D 调用庐函数时的主调函数类型6若有以下函数调用语句:“f(m+n,x+y,f(m+n,z,(x,y);”,在此函数调用语句中实参的个数是 。A 6 B 5 C 4 D 37关于函数返回值类型和返回值表达式的类型的描述中,错误的是 。A 函数返回值类型决定了返回值表达式的类型B 函数返回值的类型是在定义函数时确定的,在函数调用时不能改变C 函数返回值的类型就是返回值表达式的类型D 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成函数返回值类型8在 C+语言中,main 函数默认返回一个 类型的值。A int B floa

3、t C char D void9在 C+语言中,对函数参数默认值描述正确的是 。A 函数参数的默认值只能设定一个B 一个函数的参数若有多个,则参数默认值的设定可以不连续C 函数参数必须设定默认值D 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值10在不同文件的函数中,对全局变量的引用要加上 。A register B auto C static D extern11不能作为函数重载判断依据的是 。A const B 返回类型 C 参数个数 D 参数类型12下列函数参数默认值定义错误的是 。A Fun(int x,int y=0) B Fun(int x=100)C Fun(i

4、nt x=0,int y) D Fun(int x=f() (假定函数 f()已经定义)13对下列程序段的描述正确的是 。#include void Fun(int,int);void main() coutint Fun(int x,int y)return x+y;void main()int i=10;cout1)return 1; else return n*Fun(n*2);D int Fun(int n) if(n1)return 1; else return n*Fun(n-1);21在一个被调用函数中,关于 return 语句使用的描述,错误的是 。A 被调用函数中可以不用 r

5、eturn 语句B 被调用函数中可以使用多个 return 语句C 被调用函数中,如果有返回值,就一定要有return 语句D 被调用函数中,一个 return 语句可返回多个值给调用函数22C+语言中,函数的隐含存储类型是 。A auto B static C extern D 无存储类别23若要定义一个只允许该源文件中所有函数使用的全局变量,则该变量需要使用的存储类型为 。A extern B register C auto D static24在传值调用中,要求 。A 形参和实参类型任意,个数相等 B 实参和形参类型都完全一致,个数相等C 实参和形参对应的类型一致,个数相等 D 实参和形

6、参对应的类型一致,个数任意25在 C+中,关于下列设置参数默认值的描述中,正确的为 。A 不允许设置参数的默认值 B 设置参数默认值只能在定义函数时设置C 设置参数默认值时,应该是先设置右边的再设置左边的 D 设置参数默认值时,应该人武部参数都设置26下列标识符中, 是文件给作用域。A 函数形参 B 外部静态类标识符 C 语句标号 D 自动类标识符27下列存储类标识符中, 的可见性与存在性不一致A 内部静态类 B 外部类 C 自动类 D 寄存器类28要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用 。A 内联函数 B 重载函数 C 递归调用 D 嵌套调用29采用重载函数的目的在

7、于 。A 实现共享 B 减少空间 C 提高速度 D 使用方便,提高可读性30关于 C+中函数的使用,下列说法正确的为 。A 可以直接递归调用,也可以间接递归调用B 不可以直接递归调用和间接递归调用C 可以间接递归调用,不可以直接递归调用D 不可以间接递归调用,可以直接递归调用31以下函数定义编译不出错的为 。A double fun(int x,int y)z=x+y; return z; B fun(int x,y)int z=x+y; return z; C fun(int x,int y) int x,y;double z;z=x+y; return z;D double fun(int

8、 x,int y)double z=x+y;return z;32以下说法正确的为 。A 定义函数时,形参类型说明可以放在函数体内B return 后面的值不能为表达式C 如果函数值的类型与返回值类型不同,则以函数值类型为准D 如果形参与实参的类型不一致,以实参类型为准33简单变量做实参时,它和形参之间的数据传递方式为 。A 地址传递 B 单向值传递C 由实参传给形参,再由形参回传给实参 D 由用户指定传递方式34以下程序有语法错误,有关错误原因正确的说3法为 。void main()int g=5,K;void prt_char();K=prt_char(g);A 语句 void prt_c

9、har()有错,它是函数调用语句,不能用 void 说明B 变量名不能使用大写字母C 函数说明和函数调用语句之间矛盾D 函数名不能使用下划线35以下说法正确的为 。A 函数的定义可以嵌套,但函数的调用不可以嵌套B 函数的定义不可以嵌套,但函数的调用可以嵌套C 函数的定义和调用均不可以嵌套D 函数的定义和调用均可以嵌套36以下说法不正确的为 。A 在不同函数中可以使用相同名字的变量B 形参是局部变量C 在函数内定义的变量只在本函数范围内有效D 在函数内的复合语句中定义的变量在本函数范围内有效37以下程序的功能是计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请完善

10、程序。#include #include void main()float x,y,z,sum;float f(float a,float b);cinxyz;sum=f(x+y,x-y)+f(z+y,z-y);couts(int a,int b) int k,t;k=a/10;t=a-k*10;if(a%3=0int a=15,b=10;x=a-b;y=a+b;int x,y;void main() int a=7,b=5;num();x+=a+b;y-=a-b;cout4num(int n) int b=0;static int c=3;b+;c+;return (n+b+c); void

11、 main() int a=2,i;for(i=0;inum(int a,int b) static int m=0,i=2;i+=m+1;m=i+a+b;return m;void main() int k=4,n=1,p;p=num(k,n);coutnum(int a,int b) static int m,i;i+=m+3;m=i+a+b;return m;void main() int k=4,n=1,p;p=num(k,n);coutint w=3;num(int k) if(k=0)return w;return num(k-1)*k;void main() int w=10;c

12、outnum(int a,int b) return a*b;num1(int a,int b) return a-3*b;void main() int x,y,z;x=150,y=50;z=num(x,num1(x,y);coutstatic int a=5;void p1();void p2();void main() cout号括起来时,寻找被包含文件的方式为 。A 直接按系统设定的标准方式搜索目录B 先在源程序所在目录搜索,再按系统设定的标准方式搜索C 仅仅搜索当前目录D 仅仅搜索源程序所在目录53C+提供的预处理功能包括条件编译,其基本形式为 。#XXX 标识符程序段 1#else

13、程序段 2#endif这里的 XXX 可以是 。A define 或 include B ifdef 或 includeC ifdef 或 define 或 ifndef D ifdef 或 if 或 ifndef54若有宏定义如下,程序段运行的结果为 。#include #define X 5#define Y X+1#define Z Y*X/2void main()int a=Y;cout#define M(y) 2.84+y#define PR(a) cout#define SQR(X) (X)*(X)void main() int a=10,k=2,m=1;a/=SQR(k+m)/S

14、QR(k+m);coutint Fun(int m);void main() coutn;s=Fun(n);coutvoid Fun() int num=20;coutint global;static int stable;void main() int num=0;coutvoid Fun(int);void main() Fun(10);coutch;coutch;Fun(a-1);coutvoid Fun();void main() for(int i=0;iint a=100;void Fun() int a=0;a+;:a=200;coutint Fun(int x,int y=1

15、0) return x+y;int Fun(int a) return a*a;void main() coutint Fun(int x,int y) x=x+y;y=x+y;coutint Max(int x,int y) return xy?x:y; int Max(int x,int y,int z) int t;t=Max(x,y);return tz?t:z;void main() int x=5,y=8,z=3;coutint Fun(int x) coutvoid fun(int a=10,int b=20);void main() int x=100;void fun(int

16、 a=1000,int b=1000);fun(x);void fun(int a,int b) coutvoid f(int b,int t) int m;if(bint m=10;int f(int x,int y) int m=5;m+=x*y;return m;void main() int a=6,b=7;coutvoid f(int a) if(aint i,j=2;void p(void) for(i=0;ivoid f(int b) if(bvoid swap(int b,int t) int m;if(bt)m=b;b=t;t=m;void main() int x=15,y

17、=12,z=20;if(xy)swap(x,y);if(xz)swap(x,z);if(yz)swap(y,z);coutadd(int b,int t) static int z=1;z=b+t+z;return z;void main() int a=1,b=2,x1,x2,x3;x1=add(a,b);x2=add(add(a,b),b);x3=add(a,b);coutvoid fun1(int);void fun2();void main() extern int x;x+=2;coutf(int b,int t) return b+t;void main() int x=6,y=7

18、,z;z=f(f(x+,y+),f(-x,-y);coutint a=2;void main() int b=2,c=3;+a;c+=+b;if(+a|+b|+c)coutfun(int n) static int j=2;return j*=n;void main() for(int k=1;kvoid f(int i) if(i0)cout9)f(i/10);else if(i#include float f(float x) return (2*x*x*x-4*x*x+3*x-6);void main() float m=-200,n=90,r;r=(m+n)/2;while(f(r)*

19、f(n)!=0)if( )m=r;else n=r;if( )break;r=(m+n)/2;cout#include max(int x,int y,int z) if(xyelse if( )return y;else return z;void main()int x1,x2,x3,k=1,j,x0;11coutx1x2x3;x0=max(x1,x2,x3);while(1) j=x0*k;if( )break;k+;cout#include double mysqrt(double a,double x0) double x1,y;x1= ;if(fabs(x1-x0)1e-5)y=m

20、ysqrt( );else y=x1;return y;void main() double x;cinx;cout1,2,3” 。#include #include #include void factor(int m) int s=0;for(int j=1;j#include float g(float x,float eps);void main() float x,eps;cinxeps;couteps);return s;52下面是求前 n 个自然数和的递归函数(即求1+2+3+n) 。#include float sum(int n) if( )return 1;else ret

21、urn ;void main() int n;cinn;cout#include double sin(double x,double eps) double term,sum,y;int n=1; y=x*x;term= ;sum=0;while(fabs(term)=eps)sum+= ;n+;term=term*y/ ; term*=-1; return ;void main() double x,y;coutx;while(x360)x-=360;y=3.1415926*x/180;cout#define A 3void main() int a;#define B(a) (A+1)*

22、a)a=3*(A+B(5);cout#define T(x,y,z) x*y*z/4void main() int a=1,b=3,c=5;cout#define MUL(z) (z)*zvoid main() coutvoid main() int x=2,y=3;coutvoid main() int a=10,b=20,c;c=a/b;#ifdef DEBUGcout#define DEBUGvoid main() int a=14,b=15,c;c=a/b;#ifdef DEBUGcout#define DEBUGvoid main() int a=14,b=15,c;c=a/b;13

23、#ifndef DEBUGcoutfun(int a,int b) int c;c=a+b;return c;void main() int x=6,y=7,z=8,r;r=fun(x-,y+,x+y),z-);cout“r=“rendl;三、 编程题(1)求两分数相加。(2)用牛顿迭代法求根,方程 ax3+bx2+cx+d=0,系数 a、b、c、d 由主函数输入。求 x 在 1 附近的一个实根,求出根后由主函数输出。(3)设 n 是一个两位正整数,s1 是 n 的各位数之和,s2 是 2*n 的各位数之和。若 s1=s2,则 n 是 9的倍数。输出所有满足这些条件的 n、s1、s2。(4)

24、哥德巴赫猜想是:任一大偶数可以表示为两个素数之和。试编程验证该猜想:任给一个偶数,找出两个素数,其和等于该偶数。以 6100 范围内的所有偶数进行验证。对于每一个偶数,如果满足这一命题,输出该偶数及找到的两个素数;如果不满足这一命题,仅输出该偶数。(5)编写一个函数,判断两个自然数是否是自然数对。所谓自然数对是指两个自然数的和与差都是平方数。例如:17-8=9,17+8=25,那么,17 与 8 就是自然数对。(6)利用函数求 ex 的近似解,要求最后一项小于 10-6,求 ex 的近似公式为:ex=1+x/1!+x2/2!+x3+/3!+ +xn/n!(7)用递归法求 12+22+32+n2(8)某工厂生产轿车,1 月份生产 10000 辆,2 月份产量是 1 月份产量减去 5000,再翻一番;3 月份产量是 2 月份产量减去 5000,再翻一番,台此下去编写一个程序求该年一共生产多少辆轿车。(9)用弦截法求方程的根:x 3-5x2+16x-80=0(10)用递归法将一个整数 n 转换成字符串。例如,输出 234,应输出字符串“234” 。N 的位数不确定,可以是任意数的整数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报