c++实验-函数(实验报告)

合集下载

c语言实验报告 函数

c语言实验报告 函数

c语言实验报告函数C语言实验报告:函数引言:C语言是一种广泛应用于软件开发领域的高级编程语言,其强大的功能和灵活性使得它成为许多程序员的首选。

在C语言中,函数是一种非常重要的概念和工具,它可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性。

本实验报告将深入探讨C语言中函数的使用方法和特性。

一、函数的定义和声明函数是C语言中的一个基本概念,它由一组语句组成,用于完成特定的任务。

在使用函数之前,我们需要先进行函数的定义和声明。

函数的定义包括函数的名称、参数列表和函数体,而函数的声明则是告诉编译器函数的名称和参数列表。

函数的定义和声明通常放在程序的开头部分或者头文件中,以便其他部分的代码可以调用这些函数。

二、函数的参数传递在C语言中,函数的参数传递可以通过值传递和引用传递两种方式进行。

值传递是指将实际参数的值复制给形式参数,函数内部对形式参数的修改不会影响到实际参数。

而引用传递则是指将实际参数的地址传递给形式参数,函数内部对形式参数的修改会影响到实际参数。

根据实际需求,我们可以选择不同的参数传递方式。

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

在C语言中,函数的返回值可以是任意类型的数据,包括整型、浮点型、字符型等。

通过使用return语句,我们可以将需要返回的值传递给调用者。

在函数的声明和定义中,我们需要指定函数的返回类型,以便编译器正确处理函数的返回值。

四、函数的递归调用递归是指函数调用自身的过程,它在解决某些问题时非常有效。

在C语言中,我们可以使用递归来实现一些复杂的算法和数据结构。

递归函数必须包含一个终止条件,以避免无限递归的情况发生。

在编写递归函数时,我们需要仔细考虑递归的边界条件和递归的终止条件,以确保函数能够正确地执行。

五、函数的库C语言提供了许多常用的函数库,可以帮助我们更方便地进行开发和编程。

这些函数库包括数学函数库、字符串函数库、输入输出函数库等。

通过调用这些函数库中的函数,我们可以实现更复杂的功能和算法。

c语言函数实验报告

c语言函数实验报告

c语言函数实验报告C语言函数实验报告引言:C语言作为一种高级编程语言,具有灵活、高效的特点,被广泛应用于软件开发和系统编程领域。

函数是C语言中的基本构建模块,通过函数的定义和调用,可以实现程序的模块化和重用。

本篇实验报告将重点介绍C语言函数的实验过程和结果。

实验目的:1. 掌握C语言函数的定义和调用方法;2. 熟悉函数参数传递的方式;3. 理解函数返回值的作用和使用;4. 学习函数的递归调用。

实验过程:1. 函数的定义和调用在实验中,我们首先学习了函数的定义和调用方法。

通过定义函数,我们可以将一段具有特定功能的代码封装成一个函数,从而实现代码的模块化和重用。

在调用函数时,我们可以直接使用函数名来执行函数中的代码,并且可以传递参数给函数。

2. 函数参数传递C语言中函数参数传递的方式有两种:按值传递和按引用传递。

按值传递是指将实参的值复制给形参,函数内部对形参的修改不会影响实参的值。

而按引用传递是指将实参的地址传递给形参,函数内部对形参的修改会直接影响实参的值。

3. 函数返回值在C语言中,函数可以有返回值,也可以没有返回值。

有返回值的函数可以通过return语句将结果返回给调用者,调用者可以根据返回值进行后续的处理。

没有返回值的函数通常用于执行某些操作而不产生结果的情况。

4. 函数的递归调用函数的递归调用是指函数自身调用自身的过程。

递归调用在某些场景下非常方便,可以简化代码逻辑,提高代码的可读性。

然而,递归调用也需要注意控制递归的结束条件,以免造成无限循环。

实验结果:通过实验,我们成功定义和调用了多个函数,并且学习了函数参数传递和返回值的使用方法。

我们还编写了一些递归函数,验证了递归调用的正确性。

结论:函数是C语言中非常重要的概念,通过函数的定义和调用,我们可以实现代码的模块化和重用,提高代码的可读性和可维护性。

函数参数传递和返回值的使用方法也是我们需要掌握的基本技能。

递归调用作为一种特殊的函数调用方式,在某些场景下非常有用,但也需要注意控制递归的结束条件。

函数实验报告

函数实验报告

《高级语言程序设计》实验报告实验序号:6 实验项目名称:函数2.3.4.6.附源程序清单:2.#include<stdio.h>#include<math.h> double fun(double); main(){double i=1,j,sum=0,h;clrscr();do{j=fun(i);sum=sum+j;i++;}while(j>1e-5);h=sqrt(6*sum);printf("%f",h);}double fun(double i){double b,a;b=i*i;a=1/b;return(a);}3.#include<stdio.h>#include<math.h>int sushu(int r){int i,t,flag=1;t=r;if(t<4) flag=1;elsefor(i=2;i<=sqrt(t);i++)if((t%i)==0) flag=0;return flag;}main(){int t,i,a,b;for(t=100;t<=200;t+=2){for(i=1;i<=t/2;i++){a=i;b=t-i;if(sushu(a)&&sushu(b)) printf("%d=%d+%d ",t,a,b);}}}4.#include<stdio.h>#include<math.h>long fun(int r){long a,res=0;if(r==0) res=0;elseres=pow(r,3)+fun(r-1);return(res);}main(){int n;long sum;clrscr();printf("Please input the value of n:");scanf("%d",&n);sum=fun(n);printf("The sum is %d",sum);}5.#include “stdio.h”long fun(int n){ int I;long m;m= 1 ;for(I=1; I<=n; I++) m=m* I ;return m;}main(){ long m;int k,n;scanf(“%d”,&n);m= 0 ;for(k=0;k<=n;k++) m=m+ fum(k) ;printf(“%ld\n”,m);}6.#include<stdio.h>char fan(char s[50],int k){int i;for(i=k-1;i>=0;i--)printf("%c",s[i]);}main(){char str[50];int i,j;clrscr();printf("Please input the String:"); scanf("%s",str);j=strlen(str);printf("The result is:");fan(str,j);}。

C语言实验报告函数

C语言实验报告函数

C语言实验报告函数
简介
本实验报告旨在介绍C语言中的函数,包括函数的定义和调用、参数传递、返回值以及递归等内容。

通过实验,我们将深入了解函数在C 语言程序中的作用和使用方法。

函数定义和调用
在C语言中,函数是一段完成特定任务的独立代码块。

函数可以在程序中被多次调用,提供代码的模块化和重复使用性。

函数通常由函数名、参数列表、返回值类型和函数体组成。

函数定义的一般形式如下所示:
返回值类型函数名(参数列表) {
// 函数体
// 执行特定任务的代码
return 返回值;
}
函数定义中的返回值类型指定了函数的返回类型,函数体中的代码完成特定的任务,并通过 return 语句返回一个值。

函数的调用发生在程序的其他地方,通过函数名和对应的参数来调用函数。

函数调用的一般形式如下所示:
返回值变量 = 函数名(参数1, 参数2, ...);
函数调用会执行函数体中的代码,并返回一个值。

返回值可以保存在变量中供后续使用。

参数传递
在C语言中,参数传递可以通过值传递或地址传递来进行。

当使用值传递时,函数的参数是实际参数的副本,任何对参数的修改不会影响实际参数的值。

而当使用地址传递时,函数可以通过指针来修改实际参数的值。

值传递
值传递是指将实际参数的值复制给形式参数,在函数内部对形式参数的修改不会影响实际参数的值。

下面是一个示例:
``` #include <stdio.h>
void changeValue(int num) { num = 10; printf(。

C语言实验报告(函数应用)

C语言实验报告(函数应用)

C语言实验报告(函数应用)实验目的:1. 掌握C语言函数的定义方法和调用方法;2. 掌握函数的参数传递和返回值的使用方法;3. 熟悉C语言库函数的使用方法。

实验原理:C语言中函数是程序的基础构件,函数可以定义在任何地方或者文件中。

在场合需要使用函数时,只要调用函数名称,即可执行函数,然后返回将结果。

函数定义的一般形式为:类型说明符函数名(形式参数列表){函数体语句return 返回值;}函数名是对函数定义的标识符。

形式参数列表指定函数使用的形式参数。

返回值是函数的结果。

在调用函数时,必须知道函数名称和使用的参数。

当调用函数时,实际参数传递给函数。

函数的返回值传递给调用者的程序段,通常是保存在调用者中的变量中。

C语言库函数是指提供了重要功能的函数。

这些函数可以在使用时直接调用。

实验步骤:1. 实现一个求和函数add代码:int add(int a, int b){int c = a + b;说明:定义了一个名为add的函数,函数有两个参数a和b,函数体内进行a和b的加法运算,并将结果赋值给c,最终返回c作为函数的结果。

#include <stdio.h>int x, y;printf("请输入两个整数:\n");scanf("%d %d", &x, &y);printf("%d + %d = %d\n", x, y, add(x, y));说明:主函数中调用add函数,将输入的两个数作为参数传递给add函数,并输出结果。

3. 实现一个数组平均值函数averagefor(i=0; i<len; i++){sum += arr[i];return (float)sum/len;int arr[5] = {1, 2, 3, 4, 5};len = sizeof(arr)/sizeof(arr[0]);printf("数组arr的平均值是%f\n", average(arr, len));5. 使用C语言库函数实现字符串反转函数strrevvoid strrev(char s[]){char temp;说明:该程序中使用C语言库函数strlen求出字符串长度,然后进行字符交换操作,实现字符串反转。

函数(二)实验报告

函数(二)实验报告

函数(二)实验报告
《函数(二)实验报告》
实验目的:通过本次实验,掌握函数的概念、性质和应用,加深对函数的理解,提高数学分析和解决问题的能力。

实验内容:
1. 函数的概念和性质:通过观察和分析不同函数的图像,探讨函数的定义域、
值域、单调性、奇偶性等性质。

2. 函数的应用:结合实际问题,利用函数的概念和性质进行建模和求解,探讨
函数在生活中的应用。

实验步骤:
1. 确定实验的函数范围和内容,选择适当的函数进行实验。

2. 绘制函数的图像,观察函数的变化规律,分析函数的性质。

3. 结合实际问题,利用函数建立数学模型,并求解相关问题。

实验结果:
1. 通过实验,我们深入理解了函数的定义和性质,掌握了函数的图像和变化规律。

2. 在实际问题中,我们成功利用函数的概念和性质建立了数学模型,并求解了
相关问题,验证了函数在生活中的应用价值。

实验结论:
通过本次实验,我们加深了对函数的理解,提高了数学分析和解决问题的能力。

函数是数学中的重要概念,具有广泛的应用价值,我们将继续深入学习和探索
函数的相关知识,不断提高自己的数学素养和解决问题的能力。

实验总结:
本次实验不仅加深了对函数的理解,还提高了我们的数学分析和解决问题的能力。

在今后的学习和工作中,我们将继续加强对函数的学习和应用,不断提升自己的数学素养和解决问题的能力。

《C程序设计》函数的定义与调用实验报告

《C程序设计》函数的定义与调用实验报告

《C程序设计》函数的定义与调用实验报告k++;if(m==k)return 1;else return 0;}int main(){int a;printf("请输入一个数:");scanf("%d",&a);if(fun(a)==1)printf("%d是素数\n",a);elseprintf("%d不是素数\n",a);return 0;}运行结果:(截图)2、假设在某青年歌手大奖赛上,有9位评委参与评分。

计算每个参赛歌手最终得分的方法是:首先去掉一个最高分和一个最低分,然后计算剩余7个分数的平均值,所得结果就是选手的最终得分。

编写一个程序,帮助工作人员计算每个参赛歌手的最终得分。

(采用嵌套调用函数的方法:定义一个求平均值的函数和一个求最值的函数,在主函数中输入9个评分和输出歌手的最终得分)解题思路:首先定义一个一维数组用于存储9个评分,其次需自定义两个函数,一个用于求出评分中最高分和最低分之和,另一个用于求最终得分,并在主函数中调用自定义的两个函数。

#include <stdio.h>float fun(float b[]){int i;float sum,t;for(i=0;i<9;i++)if(b[i]>b[i+1])t=b[i+1];b[i+1]=b[i];b[i]=t;sum=b[0]+b[8];printf("最大值和最小值之和为:%f\n",sum);return sum;}float fun1(float c[]){int i;float average,sum;for(i=0;i<9;i++)sum+=c[i];average=(sum-fun(c))/7;printf("去掉最高分和最低分的平均值为:%f\n",average);return average;}int main(){float a[9];int i;printf("请输入9个得分数值:\n");for(i=0;i<9;i++)scanf("%f",&a[i]);printf("选手的最终得分为%f\n",fun1(a));return 0;}运行结果:(截图)3、猴子吃桃问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。

c语言函数实验报告

c语言函数实验报告

c语言函数实验报告C 语言函数实验报告一、实验目的1、深入理解 C 语言中函数的概念、定义和使用方法。

2、掌握函数的参数传递机制,包括值传递和地址传递。

3、学会使用函数来实现程序的模块化设计,提高代码的可读性、可维护性和可重用性。

4、通过实验,熟练掌握函数的调用、返回值的处理以及函数之间的相互协作。

二、实验环境1、操作系统:Windows 102、编译环境:Visual Studio 2019三、实验内容(一)函数的定义与声明1、定义一个名为`add` 的函数,用于计算两个整数的和,并返回结果。

```cint add(int a, int b) {return a + b;}```2、在主函数之前对`add` 函数进行声明。

```cint add(int, int);```(二)函数的调用1、在主函数中调用`add` 函数,计算 5 和 10 的和,并输出结果。

```cint main(){int result = add(5, 10);printf("5 + 10 =%d\n", result);return 0;}```(三)值传递与地址传递1、定义一个函数`swap`,通过值传递方式交换两个整数的值。

```cvoid swapValue(int a, int b) {int temp = a;a = b;b = temp;}```2、定义一个函数`swapPointer`,通过地址传递方式交换两个整数的值。

```cvoid swapPointer(int a, int b) {int temp = a;a = b;b = temp;}```3、在主函数中分别调用这两个函数,观察交换结果。

(四)函数的递归调用1、定义一个递归函数`factorial`,计算一个整数的阶乘。

```cint factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}```2、在主函数中调用`factorial` 函数,计算 5 的阶乘,并输出结果。

c语言实验报告结果及分析

c语言实验报告结果及分析

c语言实验报告结果及分析#### 一、实验目的1. 学习如何使用函数;2. 了解函数的作用;3. 掌握C语言程序中函数的实现方法;4. 深入理解函数调用和参数传递。

#### 二、实验内容本次实验完成了一个函数factorial,它的作用是计算一个整数的阶乘。

实验代码:```c#include <stdio.h>int factorial(int n) //函数声明{int i; //定义变量int product = 1; //初始化变量for(i = 1; i<=n; i++) //循环语句{product *=i;}return product; //返回结果}int main(){int num;scanf("%d",&num); //输入变量printf("%d\n",factorial(num)); //调用函数return 0;}```#### 三、实验结果实验运行结果:![image-20200907223338892](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200907223338892.png)实验结果验证了函数factorial的功能,它计算出了正确的结果:输入5,计算出120;输入4,计算出24。

#### 四、实验分析1. 在实验代码中,我们首先定义了一个函数factorial,并给出了它的参数n和返回值product。

然后,运用循环语句把参数n的各个数相乘,取得最终结果product,并用return语句把结果返回。

2. 然后,在进入main函数时,我们用scanf传入变量num,然后调用factorial函数计算num的阶乘,将结果用printf输出,这就完成了整个程序的工作。

3. 本实验验证了函数factorial的功能,完成了整数的阶乘计算任务,并且符合了性能要求,每次输入及计算结果都符合预期,可以满足实际使用需求。

函数实验内容及要求实验报告

函数实验内容及要求实验报告

函数实验内容及要求实验报告引言函数是计算机编程中非常重要的概念之一,它能够将一系列的指令封装成一个独立的模块,使得代码的复用和维护更加简单和高效。

在本次实验中,我们将学习和掌握函数的定义、调用和返回值等基本概念,以及函数的参数传递的特点和使用方法。

实验目的通过本次实验,我们的目标是:1. 理解函数的概念和作用;2. 掌握函数的定义和调用方法;3. 掌握函数的参数传递和返回值的使用;4. 能够设计并实现简单的函数。

实验方法本次实验分为以下几个步骤:1. 了解函数的概念和作用;2. 学习函数的定义和调用方法;3. 理解函数的参数传递和返回值的概念;4. 设计并实现一个简单的函数;5. 运行并测试实现的函数。

实验过程1. 理解函数的概念和作用函数是一段封装了一系列指令的代码块,它可以被其他代码通过调用的方式来执行。

函数的作用主要有两个方面:- 提高代码的复用性:将一些常用的功能封装成函数,可以在多个地方进行调用,避免了重复编写相似的代码。

- 提高代码的可维护性:将复杂的逻辑拆分成多个函数,分工明确,易于理解和修改。

2. 学习函数的定义和调用方法函数的定义一般由以下几个部分组成:- 函数名:标识符,用于调用函数;- 参数列表:函数执行时需要接收的参数;- 返回值类型:函数执行完毕后返回的结果类型;- 函数体:包含了具体的代码实现。

函数的调用方法为直接使用函数名,后跟参数列表(如果有的话)。

3. 理解函数的参数传递和返回值的概念函数的参数传递可以通过值传递和引用传递两种方式进行。

值传递是指将参数的值复制一份传递给函数,而引用传递是指将参数的地址传递给函数。

函数可以通过返回值将计算结果返回给调用者。

返回值可以是单个值,也可以是一个列表或对象等复杂类型。

4. 设计并实现一个简单的函数我们将设计一个简单的函数,用于计算两个整数的和。

函数定义如下:pythondef add(a, b):return a + b5. 运行并测试实现的函数我们可以在程序中调用这个函数来计算两个整数的和。

c语言函数实验报告总结

c语言函数实验报告总结

c语言函数实验报告总结C语言函数实验报告总结一、引言C语言是一种广泛应用于嵌入式系统和系统编程的高级编程语言,函数是C语言的基本组成单元之一。

本实验旨在通过学习C语言函数的定义、调用和参数传递等知识,掌握函数的使用方法和技巧。

在实验过程中,我通过编写不同类型的函数,并进行调试和测试,深入理解了函数在程序中的作用和重要性。

二、函数的定义和调用在C语言中,函数是一段具有特定功能的代码块,可以在程序中反复使用。

函数的定义包括函数名、参数列表、返回值类型和函数体等组成部分。

通过函数名和参数列表的组合,可以唯一标识一个函数,实现函数的调用。

在实验中,我通过编写简单的函数,如计算两个数的和、差、乘积和商等,掌握了函数的定义和调用方法。

在调用函数时,需要根据函数的参数类型和个数,传递相应的参数值。

通过调用函数,可以实现代码的模块化和复用,提高程序的可读性和可维护性。

三、函数的参数传递C语言中的函数参数传递有两种方式:值传递和指针传递。

值传递是将实参的值复制给形参,形参在函数内部进行操作,不会影响实参的值。

指针传递是将实参的地址传递给形参,通过操作指针可以改变实参的值。

在实验中,我通过编写函数,如交换两个数的值、计算数组元素之和等,学习了函数参数传递的不同方式。

对于简单的数据类型,如整型、浮点型和字符型,可以使用值传递方式。

而对于数组和结构体等复杂的数据类型,应使用指针传递方式,以提高程序的效率和灵活性。

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

在函数定义时,可以指定函数的返回值类型。

在函数体中,通过return语句返回具体的数值或表达式的值。

在实验中,我通过编写函数,如判断一个数是否为素数、计算阶乘等,了解了函数返回值的作用和使用方法。

函数的返回值可以用于判断函数执行的结果,以及作为其他函数的参数或表达式的一部分。

五、函数的嵌套调用在C语言中,函数可以嵌套调用,即一个函数内部调用另一个函数。

c语言实验报告函数总结心得

c语言实验报告函数总结心得

c语言实验报告函数总结心得本次实验是关于C语言函数的学习和实践,通过对各种函数的手动实现和调用掌握了函数的概念、定义、声明、调用以及传参等知识点。

在实验过程中,我遇到了许多问题,但是通过自己的努力以及与同学和老师的交流,最终解决了这些问题,获得了许多收获和体会。

首先,函数的概念是我们学习的第一个重要知识点。

函数是一段可重用的代码,可以通过函数名进行调用,可以在程序的不同位置多次使用,提高了代码的可读性和维护性。

在函数的定义中,需要指定返回值类型、函数名、参数数量和类型等信息。

在调用函数时,需要按照函数定义中规定的参数类型和顺序传递实参,并根据需要保存函数返回值。

其次,函数的参数传递方式是我们需要掌握的难点之一。

C语言中有多种参数传递方式,包括传值、传址(指针)和传数组等。

函数参数的传递方式会对函数的运行效率和代码结构产生影响。

在实验中,我们通过手动实现字串反转、矩阵转置和选择排序等算法,深入理解了参数传递方式的运用和区别。

另外,在实验中我们还需要学习函数的声明和调用方法。

函数的声明是在不同文件中搭建合理的程序框架所必需的,在函数声明中需要指定参数类型与返回值类型。

函数的调用是在程序具体实现过程中使用的,调用函数时需输入实参,确保函数的正确调用。

在函数的声明和调用中,需要注意参数与返回值的匹配问题,以保证程序的正确性。

最后,在函数实现的过程中,可以使用循环、条件语句、指针和递归等方法,实现各种复杂的算法和操作。

循环语句可以对数据进行重复操作,条件语句可以根据不同条件选择不同的分支,指针可以提高数据的操作效率和灵活性,而递归则可以实现更复杂的算法和数据结构。

在实验过程中,我们通过实现不同的算法,对这些方法的使用和优缺点进行了深入探讨。

总之,通过这次实验,我对C语言函数有了更加深入的理解和掌握。

掌握了函数的定义、声明、调用和传参等核心知识点,同时还进一步学习了诸如指针、递归、数组、链表等数据结构和算法。

实验报告函数的用法(3篇)

实验报告函数的用法(3篇)

第1篇一、实验目的1. 理解函数的概念及作用。

2. 掌握函数的声明、定义和调用方法。

3. 学习函数的参数传递和返回值。

4. 熟悉函数的嵌套调用和递归调用。

二、实验原理函数是程序设计中的一种基本概念,它将一系列具有特定功能的代码封装在一起,以便重复使用。

函数的主要作用是将复杂的程序分解为多个模块,提高代码的可读性和可维护性。

在C语言中,函数分为两大类:标准函数和自定义函数。

标准函数是C语言库函数,如printf()、scanf()等;自定义函数是由程序员根据实际需求编写的函数。

函数的基本结构如下:```c函数返回类型函数名(参数列表) {// 函数体}```三、实验内容1. 函数的声明函数声明用于告诉编译器函数的存在,包括函数名、返回类型和参数列表。

函数声明格式如下:```c函数返回类型函数名(参数类型参数名);```2. 函数的定义函数定义是函数声明的具体实现,包括函数名、返回类型、参数列表和函数体。

函数体由大括号{}包围,包含一系列执行语句。

```c函数返回类型函数名(参数类型参数名) {// 函数体}```3. 函数的调用函数调用是指程序中调用函数的过程。

调用函数时,需要按照函数的参数列表提供相应的实参。

```c函数名(实参1, 实参2, ..., 实参n);```4. 函数的参数传递函数的参数传递主要有两种方式:值传递和地址传递。

(1)值传递:将实参的值复制给形参,函数内部对形参的修改不会影响实参。

(2)地址传递:将实参的地址传递给形参,函数内部通过修改形参的地址来修改实参的值。

5. 函数的返回值函数的返回值是指函数执行完毕后返回给调用者的值。

函数返回值类型必须与函数声明时指定的返回类型一致。

6. 函数的嵌套调用函数嵌套调用是指在一个函数内部调用另一个函数。

嵌套调用的函数可以递归调用自身。

7. 函数的递归调用递归调用是指函数在执行过程中直接或间接地调用自身。

递归调用分为直接递归和间接递归两种。

C语言实验报告

C语言实验报告

课程名称: 程序设计基础(C)实验日期:2014年10月31日一、实验名称(本次实践的题目)输入输出函数的使用二、实验目的及要求1、掌握格式输入输出函数printf和scanf函数的使用三、实验环境PC机一台,windows 7 操作系统,VC++6.0软件四、实验过程1、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

问在键盘上如何输入。

#include <stdio.h>int main(){int a,b; float x,y;char c1,c2;scanf(“a=%db=%d”,&a,&b);scanf(“%f%e”,&x,&y);scanf(“%c%c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c=%c,c2=%c\n“,a,b,x,y,c1,c2);}答:按如下方式在键盘下输入a=3b=78.5000071.8200Aa理由:主要是上面的scanf函数中的双引号中的内容决定了输出的格式%f%e表示输出的小数默认都是6位,所以要加后面加0补齐位数2、请编程序将“China”译成密码,密码规律是:用原来的字母后面第4字母代替原来的字母。

例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。

因此“China”应译成”Glmre”。

请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为’C’,’h’,’i’,’n’,’a’,经过运算使c1,c2,c3,c4,c5分别变为’G’,’l’,’m’,’r’,’e’。

分别用putchar函数和printf函数输出这5个字符。

答:#include <stdio.h>int main(){{char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4;//类型转换,字符型(char类型的变量存储的就是ASCII码)+数字=字符型c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);printf("用putchar函数输出:");putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n");}}3、编写一个程序,请输入以下结果(每列左对齐)12 43 6 94 8 12 165 10 15 20 25答:分析总共有5行,每行第一个的数字代表行数,同时也代表每行中有几个数字,行数乘以2 3以此类推可以得到对应的结果#include <stdio.h>int main(){int i=1;int j=1;for( i=1;i<=5;i++){for( j=1;j<=i;j++){ int m=j*i;printf("%d ",m);}printf("\n");}}五、实验结果(这栏可以不写)六、小结(用文字叙述本次实验存在的问题,解决方法或心得体会等,必须填写)你需要去了解数据输出格式的相关含义学会发现数字与数字之间的简单的逻辑关系如第2题掌握ASCII码char类型以及与整型之间的关系。

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语言实验报告 函数

C语言实验报告 函数

实验名:函数的定义及调用一、实验目的1、掌握C语言函数定义及调用的规则。

2、理解参数传递的过程。

二、实验内容(一))题目11、题目内容描述1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。

main(){int,y;printf(“%d\n”,sum(x+y));int sum(a,b){int a,b;return(a+b);}}2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。

三、分析讨论1、针对以上实验内容写出相应的参数传递过程并分析结果。

2、讨论参数的传递的几种形式。

2、输入和输出信息描述及数据类型确定;、输入数据(1)序号输入数据描述数据类型1 x,y int2 a,b int(2)输出数据序号输出数据描述数据类型1 x+y int3、程序源代码(填写程序调试正确后的代码)#include <stdio.h>int main(){int sum(int a,int b); //对被调用函数sum 的声明int x,y,z;scanf("%d,%d",&x,&y);z=sum(x,y); //调用sum 函数,将其值赋给zprintf("%d\n",z); //输出函数结果zreturn 0;//返回值为0}int sum(int a,int b) //定义sum函数{return(a+b); //将a+b的值作为返回值返回到调用sum的位置}4、程序调试错误序号错误信息(列出出错语句以及出错提示)是否解决解决方法1 In function 'main':|int,y;是改为int x,y;2 error: stray '\241' in program|error: expected expressionbefore '%' token|error: stray '\' in program|printf(“%d\n”,sum(x+y));是将整段改为int sum(int a , int b);int x,y,z;z=sum(x,y);printf("%d\n",z);3 error: 'a' redeclared asdifferent kind of symbol|error: 'b' redeclared asdifferent kind of symbol|int a,b;是去掉整句话4 warning: 'x' is useduninitialized in this function[-Wuninitialized]|是加上scanf("%d,%d",&x,&y);5 error: static declaration of'sum' follows non-staticdeclaration|是将int及后面的语句块都移到main外面5、测试与结果分析(1)、测试数据与结果测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1 测试用例4,5 9 是可运算范围内2 测试用例55555,7933 63488 是可运算范围内3 测试用例-89,-79 -168 是可运算范围内(2)、相关问题回答2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。

C++程序设计实验报告-函数的应用

C++程序设计实验报告-函数的应用
} } 调试结果:
3 总结体会 编程需要细心与耐心,要勤于思考寻找最简单的算法;要充分利
用好 debug 观察程序;与同学讨论交流学习心得。
}
void Maxl(double a1,double a2){ if(a1>a2)cout<<"Maxl is "<<a1<<endl; else cout<<"Maxl "<<a2<<endl;
}
void Maxl(double a1,double a2,double a3){ if(a1>a2&&a1>a3)cout<<"Maxl is "<<a1<<endl; else if(a2>a3)cout<<"Maxl is "<<a2<<endl; else cout<<"Maxl is "<<a3<<endl;
《C++程序设计》实验报告
Exercise 3 函数的应用
1 实验目的
(1)掌握函数的定义和调用方法 (2)练习重载函数的使用。 (3)练习使用系统函数。 (4)学习使用 VC++的 debug 调试功能,使用 step into 追踪到函数内部。
2 实验要求
(1)编写一个函数把华氏温度转换为摄氏温度,转换公式如下
调试结果:
(2)编写重载函数 Max1 可分别求两个整数,三个整数,两个双精度数, 三个双精度数的最大值。 源程序代码: #include<iostream> using namespace std; void Maxl(int a1,int a2); void Maxl(int a1,int a2,int a3); void Maxl(double a1,double a2); void Maxl(double a1,double a2,double a3); void Maxl(int a1,int a2){

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时当测试数据13时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。

C的实验报告

C的实验报告

C的实验报告引言计算机编程是现代社会中必不可少的一项技能。

C语言作为一门广泛应用于系统和应用软件开发的编程语言,具有高效、强大和灵活的特点。

本实验报告将介绍我在学习和实践中对C语言的理解和实验结果。

实验一:变量和数据类型的应用在C语言中,变量的定义和使用是编程的基础。

通过实验一,我加深了对变量和数据类型的理解和应用。

通过实验,我发现,在定义变量之前,需要确定变量的类型,并为其分配相应的内存空间。

只有这样,程序才能正确地存储和处理数据。

C语言中的常见数据类型包括整型(int)、字符型(char)、浮点型(float)等。

在实验中,我使用了不同的数据类型进行变量定义和赋值,以及基本的数学运算。

例如,我定义了一个整型变量x,并将其赋值为10,然后进行加法、减法和乘法运算,并输出结果。

通过这些实验,我更清晰地理解了变量的使用和数学运算的实现过程。

实验二:条件语句和循环语句的应用条件语句和循环语句是C语言中非常重要的控制结构。

通过实验二的实践,我进一步掌握了条件语句和循环语句的使用。

在实验中,我使用了if语句来实现条件判断。

例如,我定义了一个整型变量age,并使用if语句判断年龄是否满足特定条件。

根据判断的结果,程序将输出不同的信息。

这使得程序可以根据不同的情况进行不同的操作,增加了程序的灵活性和适应性。

除了if语句,我还学习了循环语句的用法。

例如,通过使用for循环,我可以重复执行一段代码,直到满足循环条件。

这在处理需要重复执行的任务时非常有用。

实验三:函数的应用函数是C语言中的重要概念之一,通过实验三,我学会了如何定义和调用函数。

在实验中,我首先定义了一个函数,命名为sum,用于计算两个整数的和,并返回结果。

然后在主函数中调用该函数,并将计算结果输出。

这使得程序的代码结构更清晰,也提高了代码的重用性。

通过实验三,我认识到函数的重要性:它可以将复杂的程序分解成若干个独立且具有特定功能的模块,使得程序设计更加简洁和有效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请编写 main 函数,创建一个包含用户在运行时确定的个数的 double 型数据的数组, 测试以上 5 个函数,哪些函数正确的实现了将内存的首地址返回的功能?举例说明如何 调用其中正确完成功能的函数。
过程与方法: 过程与方法: 方法
第一个函数: 第一个函数: 还没编写主函数,其在编译阶段就不通过了,出现了 error C2440: '=' : cannot convert from 'double *' to 'double'的错误。 第二个函数: 第二个函数: 编写程序: #include<iostream> using namespace std; void create2(unsigned int size, double *p) { p = new double[size]; } void main() { int i,s; double *ptr,t=1.0; ptr=&t; cin>>s; create2(s,ptr); for(i=0;i<s;i++) cin>>*(ptr+i); for(i=0;i<s;i++)
cout<<*(ptr+i)<<" "; } 结果只能输入数据,并没有数据的输出,程序截图如下:
说明函数没有正确地实现将内存的首地址返回的功能。 第三个函数: 第三个函数: #include<iostream> using namespace std; void create3(unsigned int size, double **p) { *p = new double[size]; } void main() { int i,s; double *ptr,t=1.0; ptr=&t; cin>>s; create3(s,&ptr); for(i=0;i<s;i++) cin>>*(ptr+i); for(i=0;i<s;i++) cout<<*(ptr+i)<<" "; } 结果能输入数据,并且有数据的输出,程序截图如下:
内存
…… 5、第五个函数直接返回 new 所分配的内存首地址,首先输入想分配的内存大小 s,用 3 做测试,然后再向所分配内存里输入数据“1.3、5.6、3.2” ,如果能返回所分配内存的首 地址,即能成功向里面输数据,也能成功输出。实验证明第五个函数是能返回所分配内 存的首地址的。 6、第二题中先通过输入数据存放到数组中,再通过选择语句判断输入数字的个数,然 后分别调用函数 max 来输入两个或三个数中的最大值。用“5、6、8”来测试,输出最 大值 8。
数据处理分析: 数据处理分析: 1、在第一个函数中,new 运算符返回在堆中分配的内存单元的地址,这个地址要赋给 一个指针变量,而第一个函数中是赋给一个 double 型的变量"p",所以会出现错误。 2、函数形参虽然是一个指针变量,但并没有成功返回分配内存的首地址。因为在主函 数中,ptr 指针指向了 t 变量,然后调用函数令指针 p 指向 ptr,也即是指向了 t 变量,然 后用 new 分配内存,此时 p 指针指向了所分配内存的首地址,然后在函数调用完了之后 p 指针就被释放了, 也就是并有没把首地址传给 ptr 或 t, 所分配的内存可以说就这样 “石 沉大海”了,如图所示:
指导教师批阅意见:
成绩评定:
指导教师签字: 年 月 日 备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后 10 日内。
说明函数正确的实现了将内存的首地址返回的功能。
第五个函数: 第五个函数: 个函数 编写程序: #include<iostream> using namespace std; double *create5(unsigned int size) { return new double[size]; } void main() { int i,s; double *ptr,t=1.0; ptr=&t; cin>>s; ptr=create5(s); for(i=0;i<s;i++) cin>>*(ptr+i); for(i=0;i<s;i++) cout<<*(ptr+i)<<" "; cout<<endl; } 结果能输入数据,并且有数据的输出,程序截图如下:
实验内容、方法、过程: 实验内容、方法、过程: 1. 下列 5 个函数的功能都是动态分配形参 size 大小个 double 型数据的内存,并将内 存的首地址返回给函数的调用者。
void create1(unsigned int size, double p) {
p = new double[size]; } void create2(unsigned int size, double *p) { p = new double[size]; } void create3(unsigned int size, double **p) { *p = new double[size]; } void create4(unsigned int size, double * &p) { p = new double[size]; } double *create5(unsigned int size) { return new double[size]; }
课程名称: 课程名称:
面向对象程序设计
实验项目名称: 实验项目名称:
函数

学院: 学院:
计算机与软件学院
专业: 专业:
实验时间: 实验时间: 时间
2010-9-28
实验报告提交时间: 实验报告提交时间: 提交时间
2010-9-28
教务处制
实验目的与要求: 1. 2. 3. 4. 掌握指针变量、引用的概念和使用方法; 掌握函数参数的三种传递方式; 掌握数组的动态创建与撤销; 掌握重载函数的概率和使用方法。
t
内存
Ptr
……
后来被释放
P
4、函数的形参是一个指针变量,但用引用调用的形式,即给 ptr 指针取一个别名,所以 一切对于指针 p 的操作,都可以对 ptr 产生作用,不会产生像第二个函数那样 p 被释放, 所以内存的首地址就不再知道,因为此时的首地址已经返回给 ptr 了,如图所示:
t
Ptr
&p
说明函数正确的实现了将内存的首地址返回的功能。 第四个函数: 第四个函数: 个函数 编写程序: #include<iostream> using namespace std; void create4(unsigned int size, double * &p) { p = new double[size]; } void main() { int i,s; double *ptr,t=1.0; ptr=&t; cin>>s; create4(s,*&ptr); for(i=0;i<s;i++) cin>>*(ptr+i); for(i=0;i<s;i++) cout<<*(ptr+i)<<" "; } 结果能输入数据,并且有数据的输出,程序截图如下:
后来被释放
t
Ptr
P
内存
…… 3、函数的形参是一个双重指针,在主函数中,我们用引用的方式即 p=&ptr,即 p 也指 向了 t,然后用*p = new double[size],即*p 指向了一个新分配内存的首地址,而*p 的内 容就是 t 的地址,即 t 指向了新分配内存的首地址,当调用函数结束后,虽然 p 被释放 了,但 t 已经成功指向了内存的首地址,如图所示:
实验结论: 1、new 可以自动计算所需要分配内存的大小 new 可以自动返回指针类型,无需强制类 型转换,用 new 动态创建一个类对象时,可以自动调用类的构造函数,对动态创建的对 象初始化,用 new 运算符分配内存时要注意用指针返回所分配内存的首地址,当分配成 功时,一定要让形参里的指针指向主函数里的相对参数,要不然所分配的内存就不能找 到了。 函数的调用方式有三种,分别为传值调用,传址调用,引用调用。三种不同方式,产生 的效果也不同,在调用的时候应加以区别。 2、对于具有不同参数书目或者参数类型不同的函数可以定义为重载函数,使得函数可 以同名,利于开发,大大提高工作效率。
int max(int a,int b,int c)//当输入三个数时 { int z,x; z=max(a,b); x=max(z,c); return x; } void main() { int a[5],i=0; cout<<"Please enter the numbers:"; do { cin>>a[i]; i++; }while(getchar()!='\n');//直到输入不是换行字符时,继续输入 if(i==2) cout<<"The max number is: "<<max(a[0],a[1])<<endl; else if(i==3) cout<<"The max number is: "<<max(a[0],a[1],a[2])<<endl; else cout<<"ERROR"<<endl; }
相关文档
最新文档