实验05函数程序设计

合集下载

C语言程序设计实验函数

C语言程序设计实验函数

实验5:函数
一、实验目的
1.掌握定义函数的方法;
2.掌握函数实参与形参的对应关系,以及“值传递”的方式;
3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

二、实验内容
编写程序,实现如下功能:
1. 编写一个函数void transpose(int a[3][3]),使给定的一个(3×3)二维数组a 转置。

(注意:transpose
函数中不可使用printf 语句打印数组; 打印操作全部在main 函数中进行,打印输出转置前后的数组a 进行比较。


2. 用递归方法求n!,递归公式为: 1
)1(1,01{!>-==n n n n n ! 要求用函数fac 来描述该递归过程,在主函数main 中调用fac 函数求n!。

n 值由用户从键盘输入。

三、实验结果记录 第1题上机调试后的最终代码及上机调试结果(截图):
代码:
运行结果:
第2题上机调试后的最终代码及上机调试结果(截图):代码:
运行结果:
四、实验小结:
经过此次实验,我掌握了定义函数的方法、理解了函数调用时实参与形参的关系、学会了递归调用的方法。

同时,我也理解和掌握了全局变量、局部变量的概念与使用,使我收获颇多。

递归的优点:简洁、递归的实现明显要比循环简单得多。

递归的缺点:递归由于是函数调用自身,而函数调用是有时间和空间的消耗的;递归中很多计算都是重复的;调用栈可能会溢出。

实验05 函数程序设计

实验05 函数程序设计

计算两个复数之积(调试示例error05_1)程序填空,不要改变与输入输出有关的语句。

分别输入两个复数的实部与虚部,编程调用函数实现计算两个复数之积。

若两个复数分别为:c1=x1+(y1)i, c2=x2+(y2)i,则:c1*c2 = (x1*x2-y1*y2) + (x1*y2+x2*y1)i输入输出示例:括号内是说明输入1 2 (x1=1, y1=2)-2 3 (x2=-2, y2=3)输出product of complex is (-5.000000)+(1.000000)i#include<stdio.h>/*---------*/int main(void){float imag1, imag2, real1, real2;scanf("%f%f", &real1, &imag1);scanf("%f%f", &real2, &imag2);complex_prod(real1, imag1, real2, imag2);printf("product of complex is (%f)+(%f)i\n", result_real, result_imag);return 0;}/*---------*/使用函数求1! + 2! + … + m!(改错题error05_2)程序填空,不要改变与输入输出有关的语句。

求1! + 2! + … + 10!,要求定义并调用函数fact(n)计算 n!,函数形参 n 的类型是int,函数类型是double。

输入输出示例:括号内是说明输出:1!+2!+...+10! = 4037913.000000#include <stdio.h>double fact(int n);int main(void){int i;double sum;/*---------*/printf("1!+2!+...+10! = %f\n", sum); return 0;}/*---------*/使用函数判断数的符号使用函数求奇数和程序填空,不要改变与输入输出有关的语句。

函数程序设计实验

函数程序设计实验

实验六函数程序设计实验[实验目的]1. 掌握函数的定义及函数的调用方法。

2. 掌握函数间参数传递和返回值传递的方法。

3. 了解递归调用和嵌套调用的方法。

4.掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。

[实验内容]一、必做题1.以下程序输出结果为__________。

func(int a,int b){ int c;c=a+b;return c;}main(){ int x=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf(“%d\n”,r);}2. 预测程序的输出结果:____________。

func(int b[]){int j;for (j=0;j<4;j++) b[j]=j;}main(){ static int a[]={5,6,7,8},i;func(a);for(i=0;i<4;i++)printf(“%3d”,a[i]);}3. 以下程序的运行结果是______________。

static int x=20;void f1(int x){ x+=10;printf(“%d…f1()\n”,x);}f2(){ x+=10;printf(“%d…f2()\n”,x);main(){ int x=10;f1(x);f2();printf(“%d…main( )\n”,x);}4. 预测程序的输出结果:____________。

num(){ extern int x,y;int a=15,b=10;x=a-b;y=a+b;return;}int x,y;main(){ int a=7,b=5;x=a+b;y=a-b;num();printf(“%d,%d\n”,x,y);}5. 预测程序的输出结果:____________。

int x1=30,x2=40;main(){ int x3=10,x4=20;sub(x3,x4);sub(x2,x1);printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2); }sub(int x,int y){ x1=x;x=y;y=x1;}6.程序填空:下面函数,多次求两数x,y之积。

高级语言程序设计实验

高级语言程序设计实验

创新源于实践《高级语言程序设计》课程实验教学手册高级语言程序设计课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。

现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。

2、实验结束后填写通过后的源程序和对实验的总结。

3、通过后的源程序可以手写也可以打印粘贴。

实验项目一览表学号:姓名:成绩:实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程示例在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。

学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)1.3 编程在屏幕上显示如下网格。

+---+---+| | || | |+---+---+# include <stdio.h>int main(){printf("+---+---+\n");printf("| | |\n");7printf("| | |\n");printf("+---+---+\n");return 0;1.4 调试示例改正下列程序中的错误,在屏幕上显示“Welcome to You !”。

(掌握找错、改错的方法)源程序:# include <stdio.h>int mian(void)//mian改为main{printf(Welcome to You! \n")//括号后加”getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:学号:姓名:成绩:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握基本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。

函数调用程序实验报告

函数调用程序实验报告

一、实验目的1. 理解函数的定义和调用过程。

2. 掌握函数参数的传递方式。

3. 学习如何使用函数实现代码的模块化。

4. 提高编程能力和逻辑思维能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容本次实验主要围绕函数的定义、调用和参数传递展开,具体实验内容包括:1. 定义和调用函数2. 函数参数的传递3. 递归函数的应用四、实验步骤1. 定义和调用函数(1)编写一个简单的函数,用于计算两个数的和。

```pythondef sum_of_two_numbers(a, b):return a + b# 调用函数result = sum_of_two_numbers(3, 5)print("The sum of two numbers is:", result)```(2)编写一个函数,用于计算一个数的阶乘。

```pythondef factorial(n):if n == 0:return 1else:return n factorial(n - 1)# 调用函数result = factorial(5)print("The factorial of 5 is:", result)```2. 函数参数的传递(1)使用默认参数传递函数。

```pythondef print_message(message="Hello, world!"): print(message)# 调用函数print_message()print_message("This is a custom message.") ```(2)使用可变参数传递函数。

```pythondef print_numbers(args):for num in args:print(num)# 调用函数print_numbers(1, 2, 3, 4, 5)```3. 递归函数的应用编写一个递归函数,用于计算斐波那契数列的前n项。

C语言实验报告之利用函数进行程序设计

C语言实验报告之利用函数进行程序设计

一、实验的目的1、掌握定义函数的方法。

2、掌握函数的实参与形参的对应关系以及“值传递”的方式。

3、掌握函数的嵌套调用及其递过调用的方法。

4、掌握全局变量与局部变量的使用。

二、要求及内容本实验主要完成函数的的应用训练,总共要求完成四个问题的源代码的编辑、编译、连接与运行,最终产生相关的运行结果,按规定要求提交相应的实验报告。

具体要求完成的问题如下:1、编程求100—200之间的素数,该区间的数据从主函数中传出,由一个判别素数的函数进行判别后返回主函数输出。

2、编写一个程序,由主函数传来一个字符串,在函数中分别统计出字母、数字、空格和其它字符的个数,在主函数中打印输出。

3、用递归算法将一个整数n转换成相应的字符串。

4、输入10个学生5门课的成绩,分别用函数实现下列各项功能:(1)计算出每个学生的平均分;(2)计算出每门课程的平均分;(3)找出所有50个分数中最高分数所对应的学生和课程。

三、算法设计思想或程序流程图1、根据素数是不能被2到本身的开平方之间的任何一个整数整除的整数,设计一个判别一个整数是不是素数的函数,即为“sushu”,然后在主函数中调用并求出100—200中的所有素数。

2、编写一个判断字母、数字、空格以及其他字符的函数,即“jisuan”,从主函数中输入一个字符串,调用函数对其计算相关字符的个数。

3、从主函数中输入一个n。

设计函数“zfc”,如果n整除10为0,则输出其对应的ASCLL码,如果不为0,则继续返回函数“zfc”,即递归调用,直到为0为止。

主函数中,判断n是否大于0,若不大于0,则输出时求出n的相反数并在其之前加一个“-”号。

4、设计一个“score”函数,结合for循环语句和数组计算每个学生和每门课程的平均分并且找出所有50个分数中最高分数所对应的学生和课程,然后再main函数中调用。

四、所使用的软硬件平台软件平台:Microsoft Windows XP专业版SP3,Microsoft Visual C++ 6.0。

c语言程序设计5(函数)

c语言程序设计5(函数)

参数的传递
1. 函数调用时,被调函数中的形参被分配 临时的存储单元,实参的值赋给形参变量 2. 实参可以是常量、变量或表达式 3. 实参的个数、类型和顺序必须与形参一致 4. 形参与实参各占一个独立的存储空间,调 用结束后,形参单元被释放
形参值的改变不会影响实参-----值传递
例:P134 main( ) { int v1=10, v2=20; printf(“v1=%d v2=%d\n”,v1,v2); printf(“_ do swap _\n”); swap(v1,v2); printf(“v1=%d v2=%d\n”,v1,v2); } void swap(int x, int y) { int temp; v1=10 v2=20 temp=x; _ do swap _ x=y; y=temp; v1=10 v2=20 }
自定义函数的应用实例
P136 例3:输出“九 九表”。 它是一个
9行9列的二维表格,
加上一个行标题和一
个列标题,显示出来
应该是10行10列。
#include <stdio.h> void drawLine(int n,char ch); /* 连续显示n个ch字符 */ main() { int i,j; printf("\n 9.9 table\n"); /* 显示表名 */ drawLine(30, '='); /* 显示每列的标题 */ printf("\n 1 2 3 4 5 6 7 8 9"); drawLine(30, '='); for (i=1; i<=9; i++) { /* 显示每行的内容 */ printf("\n%3d", i); for (j=1; j<=9; j++) printf("%3d", i*j); if (i<9) drawLine(30, '-'); else drawLine(30, '='); } void drawLine(int n, char ch) /*连续显示n个ch字符*/ } { int i; putchar('\n'); /*换行*/ for (i=1; i<=n; i++) putchar(ch); /*连续显示n个字符ch*/ }

C语言程序设计实验五 参考答案

C语言程序设计实验五  参考答案
5-2、以下程序的功能:输出3—1000之间的素数。选择合适的内容填入空白处,并调试运行程序。
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案

(函数程序设计)的实践报告

(函数程序设计)的实践报告
其次我们要函数的形参和实参掌的概念以及区分它们。
后来,就是局部变量与全局变量的区别,静态局部变量和局部变量的区别。静态全局变量和全局变量的区别,以及外部变量和外部函数的概念。
再学习数组作为函数的参数的含义。
最重要要的是函数的嵌套调用和函数的递归调用。
从中,我们要熟悉常用函数的使用以及调用,不能忽略的是我们在调用一个的函数的时候,首先要声明这个函数,才能调用。
{
int i;
float aver,sum=array[0];
for(i=1;i<5;i++)
sum=sum+array[i];
printf("sum=%f\n",sum);
aver=sum/5;/*求平均数用aver*/
return(aver);/*返回aver的值return*/
}
四、调试过程
1.输入一个数,如4,结果如下:
二、实验内容
题目一:用递归法求n!
题目二:在题目一的基础上求前n!的和
题目三:求100~200之间的素数。
要求:每行10个数输出;定义子函数isprime,函数原型为
intisprime( int n)
题目四:有一个一维数组a,输入5个数,求其总值和其平均值
三、源程序清单
程序一
#include<stdio.h>
float fac(int n)/*定义函数fac*/
{float f;
if(n<0)/*if else语句的*/
{
printf("n<0,dataerror!\n");
}
else
if(n==0||n==1)

C语言程序设计实验五:函数(5篇范例)

C语言程序设计实验五:函数(5篇范例)

C语言程序设计实验五:函数(5篇范例)第一篇:C语言程序设计实验五:函数C语言程序设计实验五:函数1、定义函数返回两个数中较大的数,在主函数中通过调用该函数求三个数中较大的数并输出,编写主函数调用该函数。

说明:(1)请大家按学号来坐,便于考勤和管理。

(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。

(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。

(4)文档名称:班级+学号后2位+姓名+实验编号,例如12通1班12张山实验五.doc。

第二篇:C语言程序设计实验七:函数、数组、指针C语言程序设计实验七:函数、数组、指针1、程序运行后,用户任意输入一个字符串,求出字符串长度,然后输出字符串内容及个数。

不能使用strlen函数。

求字符串长度函数的函数原型必须如下:int MyStrLenPt(char *str)若输入:nihao123!则输出:nihao123!:9 chars2、编写一个对一维数组进行排序的程序。

要求:写两个函数,一个主函数,一个sort函数。

在主函数中完成数组的输入和输出,通过调用sort函数对数组进行排序。

sort函数的原型为:voidsort(int*p, intn);说明:(1)请大家按学号来坐,便于考勤和管理。

(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。

(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。

(4)文档名称:班级+学号后2位+姓名+实验编号,例如11电1班12张山实验七.doc。

第三篇:C语言程序设计—函数—实验报告实验报告专业软件工程班级X班学号_ XXXXXXXXXXX_姓名实验日期:201X年X月X日报告退发(订正、重做)课程C程序设计实验实验名称函数一、实验目的① 熟练掌握C程序中函数的定义;② 掌握函数的调用,函数参数的传递;③ 熟练掌握函数的嵌套调用和递归调用;二、实验环境(描述实验的软件、硬件环境)① 软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;② 硬件环境:PC机一台三、实验内容、步骤和结果分析题目一:编写一个用来判断质数(素数)的函数。

实验五、函数程序设计

实验五、函数程序设计

实验五函数程序设计一、实验目的1.掌握函数的定义、函数的说明和调用。

2.掌握函数的参数及其传递方式,函数值的正确返回。

二、实验设备及分组1.Windows XP操作系统;2.Visual C++6.0语言环境;3.每人一台PC机。

三、实验内容1.[目的]掌握标准库函数的说明和调用方法。

[题目内容]编写一个程序,首先显示一个菜单,然后根据用户的选择,输入数据后,执行相应的操作。

[输入]用户选择和函数自变量值[输出]如下菜单:=======MENU======1.。

sin2.。

cos3.。

pow4.。

sqrt0.。

exit==================[提示]使用标准库函数、多分支选择结构。

2.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。

编写一个程序,从键盘输入任意10个整数,分别调用用户自定义函数来判断这10个整数的奇偶性。

[输入]任意10个整数[输出]这10个整数的奇偶性[提示]在主函数中使用循环结构输入10个整数。

根据子函数的返回值输出相应的判断结果信息。

3.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。

编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。

[输入]任意5个整数[输出]这5个整数的最大值[提示]先用前三个整数调用函数,求出的最大值作为参数之一,再与另两个整数一起求出最大值即为所求。

4.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容] n m A 表示从m 各元素中抽出n 个元素的排列的个数。

它的计算公式为:)!(!n m m A n m -=。

函数的程序设计实验

函数的程序设计实验

函数的程序设计实验实验报告1、回答问题:根据程序1,试分析:1.1全局变量、局部变量、静态变量的特点是什么动态局部变量:静态局部变量在静态存储区内分配存储单元。

在程序整个运行期间都不释放。

而自动变量(即动态局部变量)属于动态存储类别,存储在动态存储区空间(而不是静态存储区空间),函数调用结束后即释放。

静态局部变量:静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。

静态局部变量始终存在着,也就是说它的生存期为整个源程序。

静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。

退出该函数后,尽管该变量还继续存在,但不能使用它。

动态全局变量:全局作用域,整个程序都可以使用。

静态全局变量:静态全局变量也具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它的文件里,不能作用到其它文件里,即被static关键字修饰过的变量具有文件作用域。

这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。

根据程序2,试分析:2.1 根据盘子数的增长,hanoi函数被调用的次数是如何变化的?2n-12.2 设盘子的移动次数为H(n)。

汉诺塔问题的递归表达式:H⑴ = 1H(n) = 2*H(n-1)+1 (n>1)那么就能得到H(n)的一般式:H(n) = 2^n - 1 (n>0)根据一般式,可以不使用递归,就能得到盘子的移动次数。

请根据这一现象,分析递归方法的优缺点。

递归好处:代码更简洁清晰,可读性更好递归可读性好这一点,对于初学者可能会反对。

实际上递归的代码更清晰,但是从学习的角度要理解递归真正发生的什么,是如何调用的,调用层次和路线,调用堆栈中保存了什么,可能是不容易。

但是不可否认递归的代码更简洁。

一般来说,一个人可能很容易的写出前中后序的二叉树遍历的递归算法,要写出相应的非递归算法就比较考验水平了,恐怕至少一半的人搞不定。

Python语言程序设计形考二实验五

Python语言程序设计形考二实验五

Python语言程序设计形考二实验五实验目的本实验旨在通过使用Python语言编程,练并巩固对于函数的理解和运用。

实验要求编写一个Python程序,实现以下功能:1. 输入一个字符串,检查该字符串中是否包含字母和数字。

若包含,输出字符串中的字母和数字个数;若不包含,输出提示信息。

2. 输入一个字符串,对该字符串进行反转,输出反转后的字符串。

3. 输入两个字符串,判断第二个字符串是否是第一个字符串的子串。

若是,输出提示信息;若不是,输出提示信息。

实验步骤1. 定义函数`check_alphanumeric`- 输入:一个字符串`str`- 输出:检查结果字符串- 过程:检查输入字符串是否包含字母和数字,统计其中的字母和数字个数,并返回检查结果字符串。

2. 定义函数`reverse_string`- 输入:一个字符串`str`- 输出:反转后的字符串- 过程:将输入字符串反转后返回。

3. 定义函数`check_substring`- 输入:两个字符串`str1`和`str2`- 输出:检查结果字符串- 过程:判断第二个字符串是否是第一个字符串的子串,若是,返回检查结果字符串;若不是,返回提示信息。

4. 调用上述函数,实现需求功能。

实验代码示例def check_alphanumeric(str):检查字符串是否包含字母和数字if any(c.isalpha() for c in str) and any(c.isdigit() for c in str):统计字母和数字个数alpha_count = sum(1 for c in str if c.isalpha())digit_count = sum(1 for c in str if c.isdigit())return f"该字符串包含字母和数字。

字母个数为{alpha_count},数字个数为{digit_count}。

"else:return "该字符串不包含字母和数字。

实验5函数程序设计

实验5函数程序设计

实验5函数程序设计实验目标:通过实验,学习函数的基本概念和使用方法,掌握如何使用函数设计和实现程序。

实验内容:1.函数概念的理解2.函数的定义和调用3.函数的参数传递4.函数的返回值5.函数重载6.递归函数的使用一、函数概念的理解函数是一个独立的代码块,用于执行特定的任务。

它将一些输入参数转换成输出结果,可以被多次调用,提高代码的可维护性和代码的重用性。

二、函数的定义和调用函数的定义包括函数的声明和函数体。

函数的声明用于向编译器说明函数的返回值类型、函数名和参数列表,可以定义在函数调用之前或者在函数体之前,以告诉编译器函数的存在。

函数的函数体用于实现函数的具体功能。

函数的调用是通过函数名和实参列表来完成的。

当函数被调用时,程序执行会转移到函数体中执行相应的代码,函数执行完毕后返回到调用函数的地方继续执行。

调用函数时,可以将实参的值传递给形参。

三、函数的参数传递参数传递是指调用函数时将实参的值传递给形参的过程。

参数传递可以分为按值传递、按引用传递和按指针传递三种方式。

按值传递是指将实参的副本传递给形参。

在函数体中对形参的修改不会影响实参的值。

按引用传递是指将实参的引用传递给形参,即形参是实参的别名。

在函数体中对形参的修改会影响实参的值。

按指针传递是指将实参的地址传递给形参,即形参是实参的指针。

在函数体中对指针指向的值的修改会影响实参的值。

四、函数的返回值函数返回值是指函数执行完毕后返回给调用函数的值。

函数可以返回一个值或者不返回值。

函数返回值的类型和个数需要在函数声明或者定义时指定,函数体中使用return语句返回具体的值。

函数返回值可以通过赋值给变量来使用。

五、函数重载函数重载是指在同一作用域内定义多个同名函数,但是函数的参数列表不同。

编译器会根据不同的参数列表选择调用对应的函数。

函数重载的实现要注意参数的类型和个数,不能只是返回值不同。

六、递归函数的使用递归函数是指在函数的定义中调用函数本身的函数。

函数程序设计-C语言程序实验报告

函数程序设计-C语言程序实验报告

函数程序设计-C语言程序实验报告安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期2019\11\21 指导教师实验名称函数程序设计一、实验目的1.掌握定义函数的方法。

2.掌握函数实参与形参的对应关系,体会“值传递”的方式。

3.掌握函数的嵌套调用和递归调用的方法。

4.掌握全局变量和局部变量、动态变量和静态变量的概念与使用方法。

5.理解数组作为函数参数的传递方式。

6.理解宏的概念,掌握宏的定义。

7.了解文件包含的概念,掌握其用法。

二、实验内容1.完成程序,求解n!具体要求:输入并完善源程序;对源程序进行编译、连接和运行;写出程序运行结果。

2.计算s=1的k次方+2的k次方+3的k次方+……+N的k次方。

具体要求:输入并完善源程序;对源程序进行编译、连接和运行;写出程序运行结果。

3.写出下面3个程序的输出结果,说明每个程序中的各个x有何不同。

4.阅读程序,理解程序的功能,写出预期结果并上机验证。

5.编程并上机调试运行。

(1)编写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。

(2)输入一个整数,将它逆序输出。

要求定义并调用函数rverse(number),它的功能是返回number的逆序数。

如reverse(12345)的返回值是54321。

(3)用递归法求n阶勒让德多项式的值,递归公式为P(x)=1,n=0;P(x)=x,n=1;P(x)= [(2n-1)*x-Pn-1(x)-(n-1)Pn-2(x)]/n, n>1(4)编写一函数,由实参传递一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串并输出上述结果。

(5)带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。

输出交换后的两个值。

(6)编写函数,实现两个字符串的连接,在主函数中输入两个字符串并输出连接后的结果(不要使用库函数中的strcat函数)。

(7)请编写函数fun,它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数,在主函数中输出这些整数,并给出统计的总数。

C程序设计_函数_实验报告

C程序设计_函数_实验报告

贵州大学《C程序设计实验》实验报告实验名称:函数专业电子信息科学与技术班级姓名学号教师2010年}else{printf("%d isn't a prime number\n",n);}}bool prime_number(int x){bool flag=true;for(int i=2;i<x/2&&(flag==true);i++){if(x%i==0)flag=0;}return flag;}运行情况:分析:程序开始:bool prime_number(int x);声明一个函数,函数返回值为bool型,函数名为prime_number,函数带一个int型参数。

scanf("%d",&n);从屏幕输入数n。

if(prime_number(n)) 调用函数,传入参数n。

bool prime_number(int x){bool flag=true;for(int i=2;i<x/2&&(flag==true);i++){if(x%i==0)flag= false;}return flag;}把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

(3). 用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”。

n的位#include <stdio.h>void main(){int n;void covert( int n);printf("input n\n");scanf("%ld",&n);if(n<0){putchar('-');n=-n;}covert(n);}void covert(int n){inti;if((i=n/10)!=0)covert(i);printf("%c",n%10+'0');}数不确定,可以是任意的整数。

C语言程序设计实验课件—函数PPT课件

C语言程序设计实验课件—函数PPT课件

题目二
程序2:编写一个判读素数的函数,在主函数 输入一个整数,输入是否是素数的信息。
2020/12/7
4
题目三
程序3:写一个函数,输入一行字符,将此字 符串重最长的单词输出。
2020/12/7
5
谢谢您的指导
THANK YOU FOR YOUR GUIDANCE.
感谢阅读!为了方便学习和使用,本文档的内容可以在下载后随意修改,调整和打印。欢迎下载!
2020/12/7
汇报人:XXXX 日期:20XX年XX月XX日
6
实验七 函数
实验项目:函数 实验内容:1.函数的调用
2.函数的参数 实验目的:掌握函数调用的方法,了解函数的 递归调用的过程 实验的重点:函数的调用。
2020/12/7
2
题目一
程序1:写两个函数,分别求两个整数的最大 公约数和最小公倍数,用主函数调用这两个 函数,并输出结果。两个数从键盘上输入。

《Python程序设计》-实验报告-(5)(总7页)

《Python程序设计》-实验报告-(5)(总7页)

《Python程序设计》-实验报告-(5)(总7页)实验目的:
本实验旨在通过Python语言学习类、实例、构造函数、多态和类与函数的结合来综合应用Python程序设计的基本知识。

实验内容:
本次实验依据《Python程序设计》的内容,具体实验内容分为五个部分:
一、类的定义
1. 编写类、属性、方法来模拟一个商品,然后实例化一个对象并调用方法,查看结果;
2. 使用类创建至少三种不同动物类并实例化,直接调用它们的方法,查看输出;
二、实例属性
1. 使用类和实例定义一个人类来模拟一个人,然后调用实例方法,查看结果;
2. 为实例属性设置getter和setter方法,查看是否可以获取和设置实例属性;
三、构造函数
1. 使用类的构造函数创建几个实例,检查构造函数执行的命令是否正确;
2. 在构造函数中增加参数来隐藏实例属性,检查实例属性是否被正确隐藏。

四、多态
1. 使用多态和继承来模拟猫与狗,查看调用多态后的对象;
2. 依据实验要求,使用多态机制和函数结合的方式进行多种计算,输出结果。

五、类与函数
1. 使用print()函数输出实例的相关属性信息,检查程序的输出结果是否符合要求;
2. 使用私有方法来获得两个实例的属性值并返回,检查结果是否正确。

实验心得:
通过本次实验,我学会了面向对象程序设计的基本思想,对Python程序设计有了更深入的理解,同时也提升了自己的编程实践能力。

C语言程序设计实验5 函数

C语言程序设计实验5  函数

实验5 函数
姓名:XXX 学号:XXX实验日期:XXX
1.实验目的和要求:参见实验指导书实验八
2.实验内容和步骤:
实验内容:实验指导书中的实验八
实验步骤:
2.1.实验内容的第1题,通过本题,了解到要在单步调试时能够观察自定义的函数内部变量变化情况,单步调试如何操作:
1.添加断点将光标移动到要添加断点的行中,然后按下Ctrl+F8即可。

2..观察变量现在想要观察a,b两个变量,按下Ctrl+F7,会弹出Add watch对话框,在其中填入所需观察变量a,b即可。

3.单步执行按F7执行单步跟踪操作,也可以按Ctrl+F9键执行到下一个断点。

4.终止测试按下Ctrl+F2
提问(1),请在下面粘贴运行结果画面:
实参a是否为同一变量?不是同一变量。

提问(2),请请在下面粘贴运行结果画面:
提问(3),观察结果有何变化?答:输出数据出错了。

通过本题,可以得出什么结论?
答:extern int a,b 表示a是在其它文件中定义的一个变量,需要在这里引用。

如果在外部定义了而没有引用的话输出时内存就按原来的输出也就不是输出定义值了。

2.2 实验内容部分第2题源程序代码,请贴图:
程序运行结果画面,请贴图:
2.3 实验内容部分第3题源程序代码,请贴图:
程序运行结果画面,请贴图:
2.4 选做题,若做了,请在下面给出源程序代码贴图及运行结果贴图
2.5选做题,若做了,请在下面给出源程序代码贴图及运行结果贴图
3.实验小结
通过对函数的学习,学习到了怎么样把程序模块,让我对函数的调用和定义,有了一个更深入的了解.。

C语言程序设计实验报告(函数)

C语言程序设计实验报告(函数)

C语言程序设计实验报告(实验名称:函数)1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;(3)掌握函数的嵌套调用及递归调用的用的设计方法;(4)在编程过程中加深理解函数调用的程序设计思想。

2实验内容(1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。

要求:①在主函数中输入一个整数x(直接赋值或从键盘输入);②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not aprime number”;③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。

(2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。

如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。

要求:①在主函数中从键盘输入一对整型数据a和b;②调用函数后,根据返回值对a和b的关系进行说明。

例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。

3算法描述流程图(1)primeNum(int x)(判别一个数是否是素数)函数流程图①主函数流程图:②判断素数函数流程图:(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图①主函数流程图:②判断倍数流程图:4源程序(1)判断某个数是否是素数#include <stdio.h>int primNum(int x) /*编写函数判断某个数是否是素数*/ {int i;if (x==0||x==1) /*当x等于1或等于0时判断是否为素数*/ return 0;for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数*/{if (x%i==0)return 0;}if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数*/ return 1;}void main(){int n ;printf("Please input an integer:"); /* 提示从键盘输入一个数x */scanf("%d",&n);if (primNum(n)==1) /* 调用定义的函数*/ printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数*/ elseprintf("%d is not a prime number\n",n);}(2)个数是否是整数倍关系#include <stdio.h>int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/{if (a%b==0) /* 判断出a是b的整数*/return 1;else /* 判断出a不是b的整数*/return 0;}void main (){int m,n;printf ("please input tow integers:\n"); /*提示从键盘输入两个数*/scanf ("%d%d",&m,&n); /*从键盘输入两个数的值*/if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/printf("%d is a multiple of %d\n",m,n);elseprintf("%d is not a multiple of %d\n",m,n);}5测试数据(1)实验(1)测试数据为0,1,2,5,9,13,59,121运行结果当测试数据0时当测试数据1时当测试数据2时当测试数据5时当测试数据9时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算两个复数之积(调试示例error05_1)程序填空,不要改变与输入输出有关的语句。

分别输入两个复数的实部与虚部,编程调用函数实现计算两个复数之积。

若两个复数分别为:c1=x1+(y1)i, c2=x2+(y2)i,则:c1*c2 = (x1*x2-y1*y2) + (x1*y2+x2*y1)i输入输出示例:括号内是说明输入1 2 (x1=1, y1=2)-2 3 (x2=-2, y2=3)输出product of complex is (-5.000000)+(1.000000)i#include<stdio.h>/*---------*/int main(void){float imag1, imag2, real1, real2;scanf("%f%f", &real1, &imag1);scanf("%f%f", &real2, &imag2);complex_prod(real1, imag1, real2, imag2);printf("product of complex is (%f)+(%f)i\n", result_real, result_imag);return 0;}/*---------*/使用函数求1! + 2! + … + m!(改错题error05_2)程序填空,不要改变与输入输出有关的语句。

求1! + 2! + … + 10!,要求定义并调用函数fact(n)计算 n!,函数形参 n 的类型是int,函数类型是double。

输入输出示例:括号内是说明输出:1!+2!+...+10! = 4037913.000000#include <stdio.h>double fact(int n);int main(void){int i;double sum;/*---------*/printf("1!+2!+...+10! = %f\n", sum);return 0;}/*---------*/使用函数判断数的符号程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入1个整数 x,若 x 大于0,sign(x) = 1;若 x 等于0,sign(x) = 0;否则,sign(x) = -1,最后输出sign(x)的值。

要求定义和调用函数sign(x)实现该分段函数, 函数形参x的类型是int,函数类型是int。

输入输出示例:括号内是说明输入3 (repeat=3)10 (x=10)-5 (x=-5)0 (x=0)输出sign(10) = 1 (x=10时sign(x)的值为1)sign(-5) = -1 (x=-5时sign(x)的值为-1)sign(0) = 0 (x=0时sign(x)的值为0)#include <stdio.h>int sign(int x);int main(void){int x, y;int repeat, ri;scanf("%d", &repeat);for(ri = 1; ri <= repeat; ri++){scanf("%d",&x);/*---------*/printf("sign(%d) = %d\n", x, y);}return 0;}/*---------*/使用函数求奇数和程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一批正整数(以零或负数为结束标志),求其中的奇数和。

要求定义和调用函数even(n) 判断数的奇偶性,当n为偶数时返回1,否则返回0,函数形参n的类型是int,函数类型是int。

输入输出示例:括号内是说明输入2 (repeat=2)12 9 7 18 3 11 20 011 8 6 17 2 10 19 -1输出The sum of the odd numbers is 30.The sum of the odd numbers is 47.#include <stdio.h>int even(int n);int main(void){int n, sum;int ri, repeat;scanf("%d", &repeat);for(ri = 1; ri <= repeat; ri++){scanf("%d",&n);/*---------*/printf("The sum of the odd numbers is %d.\n", sum);}return 0;}/*---------*/使用函数计算两点间的距离程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat (0<repeat<10),做repeat次下列运算:给定平面任意两点坐标 (x1, y1) 和 (x2, y2),求这两点之间的距离(保留2位小数)。

要求定义和调用函数 dist(x1, y1, x2, y2)计算两点间的距离,函数形参x1、y1、x2和y2的类型都是double,函数类型是double。

输入输出示例:括号内是说明输入1 (repeat=1)10 10 (x1=10, y1=10)200 100 (x2=200, y2=100)输出Distance = 210.24#include <stdio.h>#include <math.h>double dist(double x1, double y1, double x2, double y2);int main(void){int repeat, ri;double distance, x1, y1, x2, y2;scanf("%d", &repeat);for(ri = 1; ri <= repeat; ri++){scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);/*---------*/printf("Distance = %.2f\n", distance);}return 0;}/*---------*/使用函数统计素数并求和程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入2个正整数 m 和 n(1<=m,n<=500),统计并输出 m 到 n 之间的素数的个数以及这些素数的和。

素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

要求定义并调用函数 prime(m) 判断m是否为素数,当m为素数时返回1,否则返回0,函数形参 m 的类型是int,函数类型是int。

输入输出示例:括号内是说明输入:1 (repeat=1)1 10 (m=1, n=10)输出:Count = 4, sum = 17 (1到10之间有4个素数:2,3,5,7)#include <stdio.h>#include <math.h>int main(void){int count, i, m, n, sum;int repeat, ri;int prime(int m);scanf("%d", &repeat);for(ri = 1; ri <= repeat; ri++){scanf("%d%d", &m, &n);/*---------*/printf("Count = %d, sum = %d\n", count, sum);}return 0;}/*---------*/使用函数统计一个整数中数字的个数程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:读入1 个整数in,再输入一个数字digit(0≤digit<10),统计并输出整数 in 中数字 digit 的个数。

要求定义并调用函数countdigit(number,digit),它的功能是统计整数 number中数字 digit 的个数 ,函数形参number和digit的类型是int,函数类型是int。

例如,countdigit(10090,0)的返回值是3。

输入输出示例:括号内是说明输入2 (repeat=2)21252 2 (number=21252, digit=2)-1111 9 (number=-1111, digit=9)输出Number of digit 2: 3 (21252中有3个2)Number of digit 9: 0 (-1111中有0个9)#include <stdio.h>int main(void){int count, digit, in;int repeat, ri;int countdigit(int number, int digit);scanf("%d",&repeat);for(ri = 1; ri <= repeat; ri++){scanf("%d%d", &in, &digit);/*---------*/printf("Number of digit %d: %d\n", digit, count);}return 0;}/*---------*/使用函数找水仙花数程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入2 个正整数 m 和 n(1<=m,n<=1000),输出 m 到 n 之间的所有水仙花数。

水仙花数是指各位数字的立方和等于其自身的数。

要求定义并调用函数is(number)判断 number 的各位数字之立方和是否等于其自身,若相等则返回1,否则返回0,函数形参 number 的类型是int,函数类型是int。

相关文档
最新文档