2022年2022年函数题 .pdf
《2022年2022年函数题 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年函数题 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、函数应用程序设计习题一、简答题1.请说明 C 语言程序结构的一般形式?答:struct 结构名成员列表 ;成员列表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:类型说明符成员名称;成员名的命名应符合标识符的书写规定。2.函数在 C 语言程序中的地位和作用是什么?如何定义和说明函数?何谓函数原型法?答:函数是用来完成一个特定的功能的。定义函数时,要:指定函数名,以便以后按名调用; 指定函数类型, 即函数返回值的类型; 指定函数的参数的名字和类型,以便在调用函数时迥它们传递数据;指定函数应当完成什么操作,即函数的功能。定义函数的格式一般为:函数类型 函
2、数名(形参类型1 形参名 1,, ,形参类型n 形参名 n) ;函数体对比于函数的定义,函数的声明少了个“;” ,其余不变。函数的首行稍为函数原型。3.何谓局部变量?何谓静态变量?何谓全局变量?如何使用?在程序中,它们应出现在什么位置?可否重名?答:局部变量指的是在一个函数内部定义的变量。静态变量指的是在函数调用结束后不消失而继续保留原值, 即占用的存储单元不释放, 在下一次再调用该函数时,该变量已有值的一类变量。 全局变量指的是在函数之外定义的变量。不可重名。4.函数返回值的类型如何说明?何谓空类型void?试说明 return 语句的功能和用法。答:函数类型决定函数返回值的类型。void
3、型即函数无返回值。如果需要从被调用函数带回一个函数值(供主调函数使用),被调用函数中必须含有 return语句; 如果不需要从被调用函数带回函数值可以不用return语句。return(常量或常量表达式)或者 return 常量5.何谓形参?何谓实参?如何正确调用函数?何谓递归调用?答:在定义函数时函数名后面括号中的变量名称为“形参”;在主调函数中调用一个函数时,函数名后面括号中的参数称为“实参”。调用函数时,将实参对应的值传递给形参; 利用形参进行有关运算; 通过 return语句将函数值返回带到主调函数; 注意实参和形参类型一样。 递归调用指的是在调用一个函数的过程中直接或间接地调用该函数
4、本身。二、编程题1、编写求圆的面积的函数,并调用该函数求出圆环的面积。#include #define PI 3.1415 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - float main() float area(float x); float s,r; printf(please input radius:n); scanf(%f,&r); s=area(r); printf(the area is:n%.2f,s);
5、 getch(); float area(float x) return(PI*x*x); 2A、编写求 k!的函数,再调用该函数求10!并输出。 #include long factorial(long k); long main() long s,n; printf(please input n:n); scanf(%ld,&n); s=factorial(n); printf(the result shows:n%ld,s); getch(); long factorial(long k) long i,t=1; for(i=1;i=k;i+) t=t*i; return(t); 2B、
6、编写求 k!的函数,再调用该函数求1!+3!+5!+.+19! 之和并输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - #include long long factorial(long long k); main() long long i,n,s=0; printf(please input n:n); scanf(%lld,&n); for(i=1;i=n;i=i+2) s+=factorial(i); printf
7、(the result shows:n%lldn,s); return 0; long long factorial(long long k) long long j,t=1; for(j=1;j=k;j+) t*=j; return(t); 3、编写求 k!的函数,再调用该函数求C(m,n)=m!/(n! *(m-n)!) 并输出。long long fectorial(long long k); main() long long c,m,n; printf(input m and n:n); scanf(%lld%lld,&m,&n); c=1.0*fectorial(m)/(fector
8、ial(n)*fectorial(m-n); printf(the result shows:n%lldn,c); long long fectorial(long long k) long long i,t=1; for(i=1;i=k;i+) t*=i; return(t); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 4、编写判断素数的函数,再调用该函数判断1937 是否是素数。#include int main()
9、 int prime(int x); int n,a=1937; n=prime(a); if(n=0) printf(1937 is a prime number); else printf(1937 isnt a prime number); getch(); int prime(int x) int i,s=1; for(i=2;i=x/2+1) return(s-1); 5、编写判断素数的函数,再调用该函数求出1000 以内的所有素数。#include int main() int prime(int x); int n,a; for(n=2;n1000;n+) a=prime(n);
10、 if(a=1) printf(%3d ,n); printf(n); return 0; int prime(int x) int i,k; for(i=2;i=x-1) k=1; return k; 6、编写判断素数的函数, 调用该函数求出1000以内的所有素数, 存入数组中并输出。#include int main() int prime(int x); int n,a,i,j,c200; for(n=2,i=0,j=0;n1000;n+) a=prime(n); if(a=1) ci=n; j+; i+; for(i=0;ij;i+) printf(%3d ,ci); printf(n
11、); return 0; int prime(int x) int i,k; for(i=2;i=x-1) k=1; return k; 7、编写判断素数的函数,调用该函数求出1000 以内的所有素数之和并输出。#include int main() int prime(int x); int n,a,sum=0; for(n=2;n1000;n+) a=prime(n); if(a=1) sum+=n; printf(sum=%dn,sum); return 0; int prime(int x) int i,k; for(i=2;i=x-1) k=1; return k; 名师资料总结 -
12、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 8、编写求两个数中最大数的函数,并调用该函数求出三个数中的最大数。#include int max(int a,int b); main() int a,b,c,d; printf(input 3 numbers:n); scanf(%d%d%d,&a,&b,&c); d=max(max(a,b),c); printf(max=%dn,d); int max(int a,int b) retur
13、n(ab?a:b); 9、编写求两个数中最大数的函数,并调用该函数求出四个数中的最大数。#include int max(int a,int b); main() int a,b,c,d,s; printf(input 4 numbers:n); scanf(%d%d%d%d,&a,&b,&c,&d); s=max(max(max(a,b),c),d); printf(max=%dn,s); int max(int a,int b) return(ab?a:b); 10、编写求三个数中最大数的函数,并调用该函数求出三个数中的最大数。名师资料总结 - - -精品资料欢迎下载 - - - - -
14、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - #include int max(int a,int b,int c); main() int a,b,c,s; printf(input 3 numbers:n); scanf(%d%d%d,&a,&b,&c); s=max(a,b,c); printf(max=%dn,s); int max(int a,int b,int c) int f; f=ab?a:b; return(fc?f:c); /return(ab?a:b)c?(ab?
15、a:b):c); 11、编写判定闰年的函数,并调用此函数判定某一年是否是闰年。#include int leap(int year); main() int year; printf(input a year:n); scanf(%d,&year); if(leap(year)=1) printf(year %d is a leap yearn,year); else printf(year %d isnt a leap yearn,year); int leap(int year) int s; if(year%400=0|year%4=0&year%100!=0) s=1; else s=
16、0; return s; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 12、编写判定闰年的函数,并调用此函数求出公元1 年到公元 1000 年之间的所有闰年。#include int leap(int year); main() int year; printf(all leap years are:n); for(year=1;year=1000;year+) if(leap(year)=1) printf(%4d ,y
17、ear); printf(n); int leap(int year) int s; if(year%400=0|year%4=0&year%100!=0) s=1; else s=0; return s; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 13、编写一个将实数四舍五入到小数点后第n 位的函数,并调用此函数将一个实数舍入到小数点后第2 位(是指内部精度而非输出精度)。#include double p(doubl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年函数题 2022 函数
限制150内