c语言程序设计第六章函数,C语言程序设计答案黄保和编第6章函数

本文深入探讨了C语言中的函数概念,包括函数的调用、参数传递、返回值处理等内容,并通过多个实例帮助读者理解如何正确使用函数。

《C语言程序设计答案黄保和编第6章函数》由会员分享,可在线阅读,更多相关《C语言程序设计答案黄保和编第6章函数(7页珍藏版)》请在人人文库网上搜索。

1、一、思考题1、函数总需要从main中调用吗?当调用一个函数时,为什么要使用参数?函数不是总需要从main函数中调用,使用参数的目的是为了给被调函数传递数据。2、什么是函数的返回值?是否每个函数都有返回值?为什么?对它们调用有什么不同?函数返回值是被调函数传递给主调函数的数据,不是每个函数都需要有返回值,是否有返回值由函数的功能确定,可以将有返回值的函数赋值给同类型的变量,无返回值得则不可。3、每个函数的调用都需要有参数吗?为什么?不是,对于参数函数的调用不需要参数。4、C编译器提供的库函数与你自己编写的函数有什么不同?在调用它们时,应注意什么?系统将所有库函数的函数原型分成多组,每组放在一个头。

2、文件中。调用库函数时,要注意引用其对应的头文件。5、局部变量和全局变量有何不同?编写程序时,何时使用局部变量或全局变量?如果变量定义在一个函数或复合语句的内部,则称该变量为局部变量,局部变量的作用域是函数级的或者模块级的,如果变量定义在所有函数外部,则称该变量为全局变量,其作用域是从它的定义的位置开始到本源文件结束。选择变量类型的两个原则是:1当变量只在某函数或复合语句内使用时,不要定义成全局变量。2当多个函数都引用同一个变量时,在这些函数上面定义全局变量,而且定义部分尽量靠近这些函数。6、静态局部变量和静态全局变量有何异同?何时应该使用它们?静态局部变量是在函数或复合语句内部用static 。

3、声明的变量,静态静态局部变量存储静态存储区,且仅在编译时赋值一次。静态全局变量是使用static声明的全局变量,静态全局变量属于静态存储类型,编译时将静态全局变量分配在静态存储区,其生存期是程序的整个运行期间,但他的作用域只限于本文件。二、选择题1、C语言程序由函数组成。它的B)主函数可以在其它函数之后,函数内不可以嵌套定义函数。2、一个C语言程序的基本组成单位是C)函数3、以下说法正确的是C)C语言程序总是从主函数main()开始执行4、已知函数fun的定义为void func()则函数定义中的void的含义是A)执行函数fun后,函数没有返回值5、下列对C语言函数的描述中,正确的是A)在C。

4、语言中,调用函数时只能将实参的值传递给形参,形参的值不能传递给实参。6、以下叙述中错误的是B)在C语言中,外部变量的缺省值存储类别是自动的。7、C语言中的函数D)嵌套调用和递归调用均可8、C语言中函数返回值r的类型是由D)定义函数时所指定的函数类型9、C语言规定,调用一个函数时,实参变量与形参变量之间的数据传递方式是D)值传递10、下列的结论中正确的是B)所有的递归程序均可以采用非递归算法实现11、在下列结论中,只有一个是错误的,它是B)有些递归程序是不能用非递归算法实现的12、在下列结论中,只有一个是正确的,它是B)递归函数中的形参是自动变量13、下列叙述错误的是C)主函数中定义的变量在整个。

5、程序中都是有效的14、若函数类型和return语句中的表达式类型不一致,则B)不会出错,且返回值的类型以函数类型为准15、在函数调用语句“f(u(x,y),s=x-y,(x,y);”中,实参的个数是D)316、下面函数定义正确的是C)double fun(float u, float v)return u+v;17、以下函数fun的返回值类型为B) voidfun(double x)printf(“%fn”,x);三、编程题1、 写一个判别素数的函数,在主函数输入一个整数,输出其是否为素数的信息。#includeint sushu(int);main()int a;printf(输入一个整数:。

6、);scanf(%d,&a);if(sushu(a)=1)printf(是素数);elseprintf(不是素数);int sushu(int x)int i;for(i=2;iint shuixian(int);main()int i;for(i=100;i#include using namespace std;double calPI(int n)int x,y;int r=1000;int k=0;for (int i=0;iint weishu(int x)int i,c=0;for(i=0;x0;i+)x/=10;c+;return c;main()int a;printf(输入一。

7、个整数:);scanf(%d,&a);printf(共有%d位。,weishu(a);6、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘键入。要求利用递归算法编写求最大公约数的函数。int gcd(int parA, int parB)/最大公约数if (parB = 0)return parA; else return gcd(parB, parA % parB);int gbs(int partA,int partB)/最小公倍数return partA*partB/gcd(partA,partB);7、编写函数,验证陈景润研究的哥德。

8、巴赫猜想:任意大偶数为两个素数之和,并输出这两个素数(所谓大偶数是指6开始的偶数)说明:下面的程序,需要输入查询范围的左右边界a,b,然后程序会验证属于(a,b)区间内的所有偶数都是两个素数之和,并且会打印出这些素数。#includeint sushu(int x)int i;for(i=2;i 0)int tmp = m % n;m = n;n = tmp;return m;10、请分别用递归和非递归的算法,编写一个函数,其功能是计算nk的值(其中n和k是两个整数)。并用你设计的函数显示一张3k的表,k从09int exponent(int n,int k)/递归if(k=1)return 。

9、n;if(k=0)return 1;elsereturn n*exponent(n,k-1);int exponent2(int n,int k )/非递归int result=1;for(int i=1;i=k;i+)result=result*n;return result;void printExponent()/打印for(int i =0;i=9;i+)printf(%8d ,exponent2(3,i);if(i+1)%3=0)printf(n);11、指出下列程序中的错误何在?Void do_it_first()printf(“This is first”);main();return;main()printf(“This is second”);return 0;1、 void 写成了 Void2、 主函数应该叫main,而不是do_it_first3、 主函数有返回值,但是返回类型却是void。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值