ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:20.93KB ,
资源ID:5894932      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5894932.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(函数习题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

函数习题.docx

1、函数习题第6章 函数习题一、 选择题1、以下正确的函数定义形式是 A 。A) double fun(int x,inty) B)double fun(int x;int y)C) double fun(int x,y) D)double fun(int x,y;)2、按C语言的规定,以下不正确的说法是 C 。A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式C)实参可以为任意类型 D)形参应与其对应的实参类型一致3、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 B 。A)地址传递 B)单向值传递 C)由实参传给形参 D)由用户指定传递方式4、在C语言程序中,以

2、下正确的描述是 B 。A) 函数的定义可以嵌套,但函数的调用不可以嵌套B) 函数的定义不可以嵌套,但函数的调用可以嵌套C) 函数的定义和函数的调用均不可以嵌套D) 函数的定义和函数的调用均可以嵌套5、若用数组名作为函数调用的实参,传递给形参的是 A 。A)数组的首地址 B)数组第一个元素的值C)数组中全部元素的值 D)数组元素的个数6、如果在一个函数中的复合语句中定义了一个变量,则该变量 A 。A)只在该复合语句中有效 B)在该函数中有效C)在本程序范围内有效 D)为非法变量7、若使用一维数组名作函数实参,则以下正确的说法是 A 。A) 必须在主调函数中说明此数组的大小B) 实参数组类型与形参

3、数组类型可以不匹配C) 在被调函数中不需要考虑形参数组的大小D) 实参数组名与形参数组名必须一致8、凡是函数中未指定存储类型的局部变量,其隐含的存储类型为 A 。A) auto B) static C)extern D)register9、在宏定义#define PI 3.14159中,用宏名PI代替一个 A 。A)常量 B)单精度数 C)双精度数 D)字符串10、有以下程序:#includeint f(int b 4) int i,j,s=0; for(j=0;j2) i=3-j;s=s+bij; return s;void main() int a44=1,2,3,4,0,2,4,6,3,

4、6,9,12,3,2,1,0; coutf(a);执行后的输出结果是 D 。A)12 B)11 C) 18 D)1612、以下描述不正确的是 B 。A)调用函数时,实参可以是表达式B)调用函数时,实参与形参可以共用内存单元C)调用函数时,将为形参分配内存单元D)调用函数时,实有与形参的类型必须一致13、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 B 。A)地址传递B)值传递C)由实参传给形参,并由形参回传给实参D)由用户指定传递方式14、在一个源文件中定义的全局变量的作用域为 D 。A)本文件的全部范围B)本程序的全部范围C)本函数的全部范围D)从定义该变量的位置开始至本文

5、件结束为止15、有一个如下定义的函数:func(a) couta;则该函数的返回类型是 A 。A)与参数a的类型相同B)void类型C)没有返回值D)无法确定16、以下程序的输出结果是 A 。#includeint func(int a,int b,int c) int d; d=a+b+c; return d;void main() int x=1,y=2,z=3,r; r=func(x+y+z,x,y); coutrendl;17、以下程序的输出结果是 A 。#includeint func(int x) int p; if(x=0|x=1) return(3); p=x-func(x-2

6、); return p;void main() coutfunc(9)endl;A)7 B)2 C)0 D)3解:func()是一个递归函数,调用func(9)时,执行p=9-func(7);调用func(7)时,执行p=7-func(5);调用func(5)时,执行p=5-func(3);调用func(3)时,执行p=3-func(1);调用func(1)返回3;返回p=3-func(1)=3-3=0,func(3)=0;返回p=5-func(3)=5-0=5,func(5)=5;返回p=7-func(5)=7-5=2,func(7)=2;返回p=9-func(7)=9-2=7,func(9

7、)=7。二、填空题:1、以下程序的运行结果是 7 6 7 2 7 5 。#includefun(int i,int j)int x=7;couti j xendl;void main() int i=2,x=5,j=7; fun(j,6); couti j xendl;2、以下程序的运行结果是 1 1 1 。#includeincrement()int x=0;x=x+1;coutxt;void main() increment();increment();increment();3、以下程序的运行结果是 2 。#includemax(int x,int y)int z;z=(xy)?x:y;

8、return(z);void main() int a=1,b=2,c;c=max(a,b);cout最大值是c;4、以下程序的运行结果是 第一次:x=2 y=3 z=0 第二次 x=4 y=9 z=5 第三次 x=2 y=3 z=0 。#includeadd (int x,int y,int z)z=x+y;x=x*x;y=y*y;cout第二次:x=xy=yz=zendl;void main()int x=2,y=3,z=0;cout第一次:x=xy=yz=zendl;add(x,y,z);cout第三次:x=xy=yz=zendl;5、以下程序的运行结果是 5 10 9 。#includ

9、ef(int a )int i=0;while(ai=10) coutai ;i+;void main()int a =1,5,10,9,11,7;f(a+1);6、以下程序的运行结果是 6 。#includefunc(int a 3)int i,j,sum=0;for(i=0;i3;i+)for(j=0;j3;j+)aij=i+j;if(i=j) sum=sum+aij;return (sum);void main()int a33=1,3,5,7,9,11,13,15,17;int sum;sum=func(a);coutsum;7、以下程序的功能是根据输入的”y”(“Y”)与”n”(“N

10、”),在屏幕上分别显示出”This is YES.”与”This is No.”。请填空。#includevoid yesno(char ch) switch (ch) case Y: case y:coutThis is YES.n; break ; case N: case n:coutThis is NO.n; break ;void main()char ch;cout ch ;yesno(ch);8、以下程序的运行结果是 9 。#includeint a=5;int b=7;plus(int x,int y)int z;z=x+y;return z;void main() int a

11、=4,b=5;coutplus(a,b);9、以下程序的功能是 1 2 6 24 120 。#includeint fac(int n)static int f=1;f=f*n;return(f);void main() int i;for(i=1;i=5;i+) coutfac(i) ;10、以下程序的输出结果是 2 。#includeint m=13;int fun(int x,int y) int m=3; return(x*y-m);void main() int a=7,b=5; coutfun(a,b)/m;解:在主函数中调用fun(a,b)时,m=3是内部变量,返回x*y-m=7

12、*5-3=32。然而主函数中m是外部变量,m=13,所以程序的输出结果(32/13的结果值)为:2。11、以下程序的执行结果是 4 4 。#includevoid func(int );void main() int k=4; func(k); func(k);void func(int a) int m=0; m=m+a; coutm ;12、以下程序的执行结果是 a=10,b=3 。#includeint a,b;void main() int swap(); a=3;b=10; swap(); couta=a,b=bendl;swap() int temp; temp=a; a=b; b

13、=temp;13、以下程序的执行结果是 x=4 。#includeint x;sub() x=4;void main() sub(); coutx=x;14、以下程序的执行结果是 a=5 a*a=25 a*a*a=8。#includeint a=5;void p1();void p2();void main() couta=aendl; p1(); p2();void p1() couta*a=a*aendl; a=2;void p2() couta*a*a=a*a*aendl;15、以下程序的执行结果是1.x=3 2.x=6 3.x=14.x=3。#includeint x=5;void p

14、1();void p2();void main() int x=3; cout1.x=xendl; p1(); p2(); cout4.x=xendl;void p1() x=x+1; cout2.x=xendl;void p2() int x=1; cout3.x=xendl;16、以下程序的运行结果是 max is 2 。#includeint max(int x,int y);void main() int a=1,b=2,c; c=max(a,b); coutmax is y)?x:y; return(z);17、以下程序的运行结果是 10 20 40 40 。#includeint

15、x1=30,x2=40;void sub(int x,int y) x1=x; x=y; y=x1; return;void main() int x3=10,x4=20; sub(x3,x4); sub(x2,x1); coutx3 x4 x1 x2endl;18、下面的函数sum(int n) 完成计算i 。请填空。sum(int i) int r; if(n=0)coutdataerrorendl; if(n=1) ; else ; return r;解:该递归函数对应的递归式f(n)如下:f(n)=所以本题答案为:1 r=12 r=n+sum(n-1)三、编程题:1、编程实现字符串拷贝

16、,即编写一个strcpy1()函数:strcpy1(s1,s2,m,n)功能要求:将s2串中从第 m个字符位置开始共n个字符拷贝到s1串中。在主程序中设置s1=”hello”,s2=”happy new year!”,若调用strcpy1(s1,s2,7,3),则结果s1的值为”new”.解:在strcpy1(0函数中,先求s2串的长度len,判断m、n参数是否有效,有效时返回1,否则返回0。在参数有效时,将s2m-1s2m+n-2复制到s1中。程序如下:#include#define M 100int strcpy1(char s1,char s2,int m,int n) int len=0,i,j=0; while (s2len+!=0); len-; if(m+n=len) return 0; else for(i=m-1;im+n-1;i+) s1j+=s2i; s1j=0; return 1; void main() char s1M=hello; char s2M=happy new year!; if(strcpy1(s1,s2,7,6)=1) couts1endl; else cout参数不正确endl;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1