首页 理论教育 C语言程序设计实践教程-实习内容和库函数gets()使用

C语言程序设计实践教程-实习内容和库函数gets()使用

时间:2023-11-01 理论教育 版权反馈
【摘要】:③库函数gets()包含在string.h的内部。②编写的主函数中,需要定义两个整型变量,并分别赋初值2和5。该函数的形参为整型变量,函数体内使用分支语句。

C语言程序设计实践教程-实习内容和库函数gets()使用

1.编写一个用字符数组作为形参的函数statistics,该函数的功能是统计并输出字符串中大写字母的个数。并编写程序调用该函数,对随机输入的字符串统计所包含的大写字母个数。

提示与分析:

① 用字符数组str[],作为统计大写字母个数的函数形参。在该函数的函数体中,需要定义两个整型变量。其中的一个将作为循环变量,另一个的初始值为0,将用来存放大写字母的个数。函数体中使用循环语句,用来统计数组中存放的大写字母个数(当数组的元素值介于‘A’与‘Z’之间时该元素值为大写字母)。

② 在主函数中定义了字符数组s,并使用了库函数gets()随机输入字符串并将字符串存入到数组s中。用该数组名字作为实参调用函数statistics。③ 库函数gets()包含在string.h的内部。2.已知计算x的n次幂的函数如下:

编写调用该函数,计算2的5次幂的程序。

提示与分析:

① 因为函数power的形参为两个整型变量,所以采用值传递方式调用该函数的两个实参的类型、顺序要与形参一致。函数power中的return语句,将该函数值返回到主函数中。

② 编写的主函数中,需要定义两个整型变量,并分别赋初值2和5。调用函数power时,要用它们作为实参将2传递给形参x,将5传递给形参n。主函数中用“printf( );”输出函数power的返回值

③ 如果主函数位于函数power的上方,则在主函数中还应有函数power的说明语句。

3.编写fun函数,其功能是计算一个矩阵对角线元素的和。调用该函数计算并输出已知矩阵的主对角线元素和。

提示与分析:

函数fun的形参是整型二维数组,函数体内定义两个整型变量:一个标识循环语句中的循环变量,另一个标识矩阵主对角线元素的和。使用循环语句计算矩阵主对角线上元素值的和并用return语句返回函数值。

4.用递归方法编写函数sum(),其功能是返回前n个自然数的和。并编写程序使用该函数输出前n个自然数的和。

提示与分析:(www.xing528.com)

① 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。一个递归的问题可以分为“回推”和“递推”两个阶段。

② 本问题是在调用函数sum的过程中直接调用函数sum本身。其第一阶段“回推”,是将计算前n个自然数的和表示为计算前n-1个自然数和的函数(sun(n)=n+sun(n-1)),而前n-1个自然数和仍然不知道,还要“回推”到计算前n-2个自然数和……,直到计算前1个自然数的和。此时,sum(1)已知为1,不必再向前推了。然后开始第二阶段“递推”,采用递推方法,从前1个自然数的和为1推算出前2个自然数的和为3,从前2个自然数和为3推算出前3个自然数的和为6……,一直推算出前n个自然数的和为止。

③ 通常的一个递归过程不是无限制进行下去,必须具有一个结束递归过程的条件,本问题的前1个自然数的和sum(1)=1,就是使递归结束的条件。

④ 在主函数体内,用“scanf();”随机从键盘给正整数n赋值,该语句后,用n作为调用函数sum的实参。

5.楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,用调用函数的方法编写程序,计算共有多少不同的走法。

提示与分析:

① 有1阶台阶时,只有1种走法:一步上1阶。

有2阶台阶时,有2种走法:一步上1阶;一步上2阶。

……

② 有n阶台阶时,有f(n)种走法,可以分两种情况:

● 最后1步是迈1阶,那么前n-1阶的走法数是f(n-1)。

● 最后1步是迈2阶,那么前n-2阶的走法数是f(n-2)。得到如下的递推公式:

③ 可以编写递归函数来实现。该函数的形参为整型变量,函数体内使用分支语句。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈