




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题7 参考答案7 1 选择题(请选择一个正确的答案)1. 以下对C语言函数的有关描述中,正确的是_A. 在C语言中调用函数时,只能实参的值转送给形参,形参的值不能转送给实参。 B. C函数既可以嵌套定义,又可以递归调用。C. 函数必须有返回值,否则不能使用函数。D. C程序中有调用关系的所有函数必须放在同一个源程序文件中。 答案:A.2. C语言中规定函数的返回值的类型由_A. return语句中的表达式类型所决定。B. 调用该函数时的主调函数类型所决定。C. 调用该函数时系统临时决定。D. 在定义该函数时所指定的函数类型所决定。答案:D3. 以下不正确的说法是_A. 在不同函数中可以使用相同名字的变量。B. 形参是局部变量。C. 在函数内定义的变量只在本函数范围内有效。D. 在函数内的复合语句中定义的变量在本函数范围内有效。答案:D4. 有一个如下定义的函数func(int a) printf(%d,a);return a;则该函数值的类型是_A. 整型 B. void类型 C. 没有返回值 D. 无法确定答案:A 5. 以下错误的描述为_A. 在函数之外定义的变量称为外部变量,外部变量是全局变量。B. 在一个函数中既可以使用本函数中的局部变量a,又可以使用同名的外部变量a。C. 外部变量定义和外部变量说明的含义不同。D. 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。答案:B.6. 下面程序的输出结果是_fun3(int x)static int a = 3 ; a+=x; return a; main()int k=2,m=1,n; n = fun3(k); n = fun3(m) ; printf( %dn,n);A. 3 B. 4 C. 6 D. 9答案:C7.下面程序的输出结果是_#include main() int k=4,m=1,p; int func (int a,int b); p=func(k,m); printf(%d, ,p); p=func(k,m); printf(%dn,p); func (int a,int b)static int m=0,i=2; i+=m+1; m=i+a+b; return m;A. 8, 17 B. 8, 16 C. 8, 20 D. 8 , 8答案:A72 判断下列叙述的正确性,若正确在()内标记,若错误在()内标记。1. ( )全局变量与函数体内定义的局部变量重名时,全局变量优先。2. ( )对于不需要使用函数返回值的函数,可以不定义类型。3. ( )一个函数可以定义在别的函数的内部,即嵌套定义。 4. ( )返回值为int或char类型时,函数声明可以缺省。 5. ( )在C语言中允许函数之间的嵌套调用。 6. ( )局部静态变量是在编译时赋初值的,即只赋初值一次。 7. ( )函数的形参在退出该函数后就被释放了。73 填空题(请在空白处填入合适的内容)1. C语言程序的基本组成单位是_函数_。2. C语言程序总是从_main_函数开始执行。3. 函数体用 符号开始,用 符号结束。4. 当函数的返回值与函数值类型不一致时,将以_函数值_的类型为准。5. 凡在函数中未指定存储类别的变量,其隐含的存储类别为_动态_。6. 静态局部变量的作用域是_ 所在函数_。7. C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方向是_单向传递_。 8. 若定义的函数没有返回值时,则应在该函数声明时加一个类型说明符_void_。 9. 在C语言中,一个函数直接或间接地调用自身,便构成了函数的_递归调用_。 10. 函数的形式参数属于_局部_变量,其作用域为_函数体内_。74 读程序写运行结果2void S1(int x,int y)int t; t=x;x=y; y=t;main() int a=1,b=2; S1(a,b); printf(“%d,%d”,a,b);运行结果_1,2_1int F(int a)int b=0; b=b+1; return (a+b); main()int i; for(i=1;i=3;i+) printf(“%d ”, F(i);运行结果_2 3 4_4. long fun(int n) long s; if (n= =1 | n= =2) s = 2; else s = n + fun(n-1); return s; main( ) long x; x = fun(4) ; printf(%ldn,x); 运行结果_9_3int fun (int p) int b=0;static int c=3; p=c+, b+; return (p) ;main()int a=2,i,k; for(i=0;i0;y_1) z_x; return z;main()printf(%fn,power(3.0, 4); 2下面的程序用来求数组中最大元素的下标。int findmax ( int s , int t)int p, m ;m=0;2. 答案: m=p return m _ findmax (a ,10)_for (p = 0; p sm)_ ;_ _;main() int a 10 , i , k ;for (i = 0 ; i 10 ; i + + ) scanf( %d , &a i ) ; k=_ _;printf( % d, % dn , k , a k ) ;3下面的函数是将一个字符串str的内容颠倒过来。#include void invert (char str ) int i, j ; _; for(i = 0 , j = strlen(str)_ _; ij; i+,j- -) k=stri; stri = strj; strj = k; 3. 答案: char k -1 _ invert ( s )_ main() char s 20; printf(“Input a string : n”); gets(s); printf(“inverted string is : n”); _; puts( s);4. 下面的程序用来求数组a各元素的平均值。4. 答案: pai avg/n float avr( int pa , int n) int i; float avg = 0.0 ; for(i=0;in;i+) avg = avg +_; avg=_; return avg; main() int a5= 2,4,6,8,10; float mean; mean = avr(a,5); printf(mean = %fn,mean); 76 编程题1. 编写函数,根据给定的三角形三条边长a、b、c,函数返回三角形面积。主函数中输入三条边长,调用函数后,输出三角形面积。三角形面积的计算公式area= s(s-a)(s-b)(s-c) 其中 s=(a+b+c)/2#include #include float funarea(float x,float y,float z) float s,area; s=(x+y+z)/2; area=sqrt(s-x)*(s-y)*(s-z); return area;main() float a,b,c,area; printf( Input a,b,c: ); scanf(%f,%f,%f, &a,&b,&c); area=funarea(a,b,c); printf( Area = %.3f nn, area);运行结果:2. 编写判断一个年号是否为闰年的函数,若是闰年则返回1,否则返回0。主函数输出20002050年中的闰年。要求每输出4个年号换一行。#include #include int funleap(int y) int flag; if (y%100=0) if (y%400=0) flag=1; else flag=0; else if(y%4=0) flag=1; else flag=0; return flag; main() int year,c; for(year=2000; year=2050; year+) if(funleap(year) printf( %d ,year); c+; if(c%4=0)printf(n); printf(nn);运行结果:3. 编写函数求n! , 主函数通过调用函数实现sum=1!+2!+3!+n! (n由键盘输入)。#include #include long fac(int n) long p=1,j; for(j=1;j=n;j+)p=p*j; return p; main() int i,m; long s=0; printf(Input an integer: ); scanf(%d,&m); for(i=1; i=m; i+) s=s+fac(i); printf(1!+.+%d!=%ldnn,m,s); 运行结果:4. 编写函数,求4G4数组两条对角线上的元素和。主函数初始化数组,并按行列输出数组,调用函数求角线上的元素和,并输出和。#include long arrsum(int x44) int i,sum=0; for(i=0;i4;i+) sum=sum+xii; /* 求主对角线元素和 */ sum=sum+xi3-i; /* 求另一对角线元素和 */ return sum; main() int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;/*初始化数组 */ int i,j,sum; printf(The a44:n); for(i=0;i4;i+) for(j=0;j4;j+) printf(%4d,aij); /*输出数组*/ printf(n); sum=arrsum(a); printf(sum=%dn,sum); 运行结果如下:5. 有一个数组内放10个学生成绩,写一个函数,求平均分、最高分和最低分。主函数输入数组并输出平均分、最高分和最低分。#include float max=0,min=0; /*定义全局变量*/float average( float x,int n) int i; float aver, sum=0; max=min=x0; for(i=0;imax) max=xi; else if(ximin) min=xi; sum=sum+xi; aver=sum/n; return aver; main() float ave,score10; int i; printf(Input 10 score:n); for(i=0;i10;i+) scanf(%f,&scorei); ave=average(score,10); printf( max=%.2f n min=%.2fn average=%.2fn, max,min,ave);运行结果:6. 编写函数,功能是将两个字符串连接起来。主函数输入两个字符串,调用函数连接字符串,并输出连接后的字符串。#include #include void strcats(char str1,char str2)int i=0,j=0; while(str1i !=0) i+; while(str2j !=0) str1i+ = str2j+; str1i=0;main() int i=0, j=0; char s120, s210; printf(Enter string1: ); gets(s1); printf(Enter string2: ); gets(s2); strcats( s1,s2); printf(S1 = %s n, s1);运行结果:7. 用递归法求n!, 在主函数中提示输入整数n。fac(n)= 1 (当 n=0,1) n*fac(n-1) (当 n1)#include long fac(int n) long f; if (n= =0 | n= =1) f=1; else f= n* fac(n-1); return f ; main() int n; long y; printf(Input an integer number: ); scanf(%d,&n); if(n0) printf(n1时)#include long power(int x,int n) long p; if(n=1 ) p=x ; else p=x*power(x,n-1); return p;main() int x,n; long p; printf(Input x, n: ); scanf(%d,%d, &x,&n); p=power(x,n); printf(result=%ldnn,p); 运行结果:9. 用递归方法编写函数,求Fibonacci数列的第n项值,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建房屋基地买卖合同协议
- 商丘预售商品房合同范本
- 小平方商铺出租合同范本
- 失业金劳动合同解除协议
- 小挖机农用租赁合同范本
- 办公用品数字化服务合同
- 天然气收费协议合同模板
- 员工协议算不算合同协议
- 委托管理合同协议书范本
- 国外第三方协议合同范本
- 2025年七年级上册生物知识点总结样本(2篇)
- 变化与更新-2025中国家居家装行业发展研究报告-树懒生活fine-202501
- 丹毒的健康宣教
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
- 《柴油机的维护保养》课件
- 4S店企业职业卫生培训
- 石油化工设备维护与检修手册
- 拆迁工程成本控制方案
- 原发性肝癌的CT表现和诊疗
- 竞选竞选大学心理委员参考课件
- 2.3.4运动图像与追及问题课件高一上学期物理人教版
评论
0/150
提交评论