C程序设计教程与实验 吉顺如主编 语言实验7报告参考
C语言实验七 函数 实验报告

C语言实验七函数实验报告一、实验目的1、掌握函数的定义和调用方法。
2、理解函数参数的传递方式。
3、学会使用函数实现程序的模块化设计。
二、实验环境1、操作系统:Windows 102、开发工具:Visual Studio 2019三、实验内容本次实验主要涉及以下几个方面的内容:1、编写简单的函数实现特定功能,如计算两个数的和、差、积、商等。
2、理解函数参数的传递方式,包括值传递和引用传递,并通过实例进行验证。
3、利用函数实现程序的模块化设计,将复杂的问题分解为多个相对简单的函数,提高程序的可读性和可维护性。
四、实验步骤及结果(一)函数的定义和调用1、首先,定义了一个计算两个整数之和的函数`int add(int a, intb)`,函数内部通过返回`a + b`的值来实现求和功能。
```cint add(int a, int b) {return a + b;}```2、在`main`函数中调用该函数,并输出结果。
```cint main(){int num1 = 5, num2 = 3;int sum = add(num1, num2);printf("两数之和为:%d\n", sum);return 0;}```运行结果:两数之和为:8(二)函数参数的传递方式值传递1、定义一个函数`void swap_value(int a, int b)`,尝试在函数内部交换两个参数的值。
```cvoid swap_value(int a, int b) {int temp = a;a = b;b = temp;}```2、在`main`函数中调用该函数,并输出交换前后参数的值。
```cint main(){int num1 = 5, num2 = 3;printf("交换前:num1 =%d, num2 =%d\n", num1, num2);swap_value(num1, num2);printf("交换后:num1 =%d, num2 =%d\n", num1, num2);return 0;}```运行结果:交换前:num1 = 5, num2 = 3交换后:num1 = 5, num2 = 3可以看到,值传递方式下,函数内部对参数的修改不会影响到函数外部的实参。
C语言程序设计实验报告(实验大纲+过程)

C语言程序设计实验报告(实验大纲+过程)C语言程序设计实验报告(实验大纲+过程)一、实验目的本实验旨在通过实际的C语言程序设计任务,培养学生的编程思维、动手能力,加深对C语言程序设计的理解和掌握。
二、实验内容1. 实验环境的搭建在计算机上安装C语言编程环境,如C语言编译器。
2. 实验材料准备根据给定的实验题目和要求,准备相应的实验材料,包括输入输出测试数据、参考文档等。
3. 实验任务根据实验题目,编写C语言程序,实现特定的功能要求。
程序需包括输入部分、处理部分和输出部分。
4. 程序调试与测试对编写完成的程序进行调试,确保程序的正确性。
使用多组测试数据进行测试,验证程序的功能是否符合要求。
5. 实验总结与思考对实验过程中遇到的问题进行总结,并提出改进建议。
思考课程的重点和关键,深化对C语言程序设计的理解。
三、实验步骤1. 实验环境的搭建在计算机上下载并安装C语言编译器,如Dev-C++或Code::Blocks等。
2. 实验材料准备根据实验题目要求,准备好实验所需的输入测试数据和输出要求。
3. 编写C语言程序根据实验题目,使用C语言编写程序。
在程序的开头部分添加必要的注释,说明程序的功能和使用方法。
4. 程序调试与测试编译并运行程序,查看是否存在语法错误。
使用给定的测试数据,验证程序的输出是否符合要求。
5. 实验总结与思考对实验过程中遇到的问题进行总结,并提出改进建议。
思考课程的重点和关键,深化对C语言程序设计的理解。
四、实验结果与分析根据实验题目要求,给出实验编写的C语言程序的详细代码,并解释程序的设计思路和实现方法。
同时,给出实验所得的输出结果,并分析结果是否符合预期。
五、实验心得体会通过完成本次实验,我对C语言程序设计的基本语法和思维方式有了更深入的理解。
在编写程序的过程中,我遇到了一些问题,但通过不断尝试和调试,最终顺利完成了实验任务。
在今后的学习中,我将进一步加强对C语言的理解和应用能力,提高程序设计的质量和效率。
C语言程序设计教程第七章课后习题参考答案

C语言程序设计教程第七章课后习题参考答案P198 3 求主、副对角线元素之和#include#define M 4#define N 4int main(){int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,m=0,n=0;for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{if(i==j)m+=a[i][j];}}printf("主对角线元素之和为:%d\n",m);for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{if(i+j==3)n+=a[i][j];}}printf("副对角线元素之和为:%d\n",n); return 0;}P198 4数组逆序存放#includevoid input(int a[],int n);void reverse(int a[],int n);int main(){int a[5];int size=sizeof(a)/sizeof(int);input(a,size);reverse(a,size);printf("\n");return 0;}void input(int a[],int n){int i;printf("请输入%d个整数:\n",n);for(i=0;i<n;i++)< p="">{scanf("%d",&a[i]);}}void reverse(int a[],int n) {int i,t;for(i=0;i<="" p="">{t=a[i];a[i]=a[5-i-1];a[5-i-1]=t;}for(i=0;i<n;i++)< p=""> {printf("%-3d",a[i]);}}198 4数组逆序存放(2)#includevoid reverse(int a[],int n); void print(int a[],int n);int main(){int a[]={1,2,3,4,5,11,16,13}; int size=sizeof(a)/sizeof(int); print(a,size);reverse(a,size);printf("\n");return 0;}void print(int a[],int n){int i;printf("原:\n");for(i=0;i<n;i++)< p="">{printf("%-4d",a[i]);}printf("\n");}void reverse(int a[],int n){int t,i;printf("逆序:\n");for(i=0;i<="" p="">{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}for(i=0;i<n;i++)< p="">{printf("%-4d",a[i]);}}P198 5对称矩阵#includevoid print(int a[][3],int rows,int cols); int fun(int a[][3],int rows,int clos); void main(){int a[3][3],i,j;printf("input:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d",&a[i][j]);}print(a,3,3);if(fun(a,3,3)==0)printf("此矩阵是对称矩阵\n");elseprintf("此矩阵不是对称矩阵\n"); } void print(int a[][3],int rows,int cols) {int i,j;for(i=0;i<rows;i++)< p="">{for(j=0;j<cols;j++)< p="">printf("%-4d",a[i][j]);printf("\n");}}int fun(int a[][3],int rows,int clos) {int i,j,x=0;for(i=0;i<rows;i++)< p="">{for(j=0;j<clos;j++)< p="">{if(a[i][j]!=a[j][i]) x++;}}if(x>0) return 1;else return 0;}P198 5对称矩阵(2)#include#define M 3#define N 3void print(int a[][N],int m,int n); int yan(int a[][N],int m,int n); int main(){int a[][N]={1,2,3,4,5,6,7,8,9}; print(a,M,N);if(yan(a,M,N))printf("YES\n");elseprintf("NO\n");return 0;}void print(int a[][N],int m,int n) {int i,j;for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{printf("%-4d",a[i][j]);}printf("\n");}}int yan(int a[][N],int m,int n){int i,j,x=0;for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{if(a[i][j]!=a[j][i]) x++;}}if(x>0) //不是对称矩阵return 0;return 1;}P198 6矩阵求和#include#define M 3#define N 3void input(int a[][N],int m,int n);void sum(int a[][N],int b[][N],int m, int n); void print(int a[][N],int m,int n);int main(){int a[M][N];int b[M][N];printf("请输入%d*%d阶矩阵A:\n",M,N);input(a,M,N);print(a,M,N);printf("请输入%d*%d阶矩阵B:\n",M,N);input(b,M,N);print(b,M,N);printf("A+B=\n");sum(a,b,M,N);return 0;}void input(int a[][N],int m,int n){int i,j;for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{scanf("%d",&a[i][j]);}}}void print(int a[][N],int m,int n){int i,j;for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{printf("%4d",a[i][j]);}printf("\n");}}void sum(int a[][N],int b[][N],int m,int n) {int i,j;int c[M][N];for(i=0;i<m;i++)< p="">{for(j=0;j<n;j++)< p="">{c[i][j]=a[i][j]+b[i][j];}}print(c,M,N);}P198 7模拟骰子投掷#include#include#define N 10000int main(){int a[N],i;double x=0,y=0,z=0,l=0,m=0,n=0; for(i=0;i<n;i++)< p="">{a[i]=rand()%6+1;if(a[i]==1)x++;if(a[i]==2)y++;if(a[i]==3)z++;if(a[i]==4)l++;if(a[i]==5)m++;if(a[i]==6)n++;}printf("出现1的概率为:%lf\n",x/N); printf("出现2的概率为:%lf\n",y/N); printf("出现3的概率为:%lf\n",z/N); printf("出现4的概率为:%lf\n",l/N); printf("出现5的概率为:%lf\n",m/N); printf("出现6的概率为:%lf\n",n/N); return 0;}P67 1最大奇、偶数#include#define M 10int main(){int i,a[M];int max1=-1,max2=-1;for(i=0;i<m;i++)< p="">{printf("请输入第%d个正整数:",i+1); scanf("%d",&a[i]);}for(i=0;i<m;i++)< p="">{if(a[i]%2!=0){if(a[i]>max1)max1=a[i];}else{if(a[i]>max2)max2=a[i];}}if(max1==-1)printf("没有奇数\n");elseprintf("最大奇数是%d\n",max1); if(max2==-1)printf("没有偶数\n");elseprintf("最大偶数是%d\n",max2); return 0;}P69 3#includeint main(){int a[20];int p=0,n=0,i,j=0;double avg,sum=0;printf("请输入非0整数:"); while(1){scanf("%d",&a[j]);if(a[j]==0)break;j++;}for(i=0;i<j;i++)< p="">{sum=sum+a[i];}avg=sum/j;printf("平均数:%lf",avg);for(i=0;i<j;i++)< p="">{if(a[i]>0)p++;if(a[i]<0)n++;}printf("正数个数:%d 负数个数:%d\n",p,n); return 0;}P75 2冒泡排序#include#define N 10void bubble_sort(int a[],int n);void main(){int i, a[N]={1,3,6,8,9,2,11,12,14,7}; printf("原数组为:\n");for(i=0;i<n;i++)< p="">{printf("%4d",a[i]);}bubble_sort(a,N);printf("\n");}void bubble_sort(int a[],int n) {int i,j,tmp;for(i=0;i<n-1;i++)< p=""> {for(j=0;j<n-i-1;j++)< p=""> {if(a[j]>a[j+1]){tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;}}}printf("\n");printf("排序后的数组为:\n"); for(i=0;i<n;i++)< p=""> {printf("%4d",a[i]);}}P76 3 成绩#includevoid input(int cla[50][3],int n); void print(int cla[50][3],int n);void sort(int cla[50][3],int n);void main(){int cla[50][3];int n;printf("请输入学生人数(小于50):\n"); scanf("%d",&n);if(n<=0 || n>=50)printf("error,请输入正确的人数。
c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
C语言程序设计实验七

内蒙古科技大学信息工程学院计算机系《C语言程序设计》实验报告
说明:
1、每个实验项目填写一份实验报告,电子版命名方式为:学号姓名项目号.doc。
例如:1167111182张三3.doc表示张三做的第3个项目的实验报告。
2、实验报告电子版应该在实验后一周内由学习委员收齐后存放在一个文件夹下,文件夹命名方式为:软件12-1班3,表示软件12-1班第3个项目的实验报告,压缩。
第一时间发送给任课教师。
必须以班级为单位上交。
3、任课教师要求在收到实验报告的一周内进行批阅,并给出成绩及评语。
4、实验报告电子版由任课教师保存。
5、表格宽度可以根据实际情况伸缩。
《C程序设计教程》实验报告(DOC)

实验1 C++概论(2学时)一、实验目的⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
⒉了解几种运算符的使用规则。
⒊掌握变量命名规则,学会变量的定义和使用。
二、实验内容⒈通过一个最简单的程序熟悉用VC++来调试Dos程序的步骤:⑴使用Visual C++6.0对一个C++程序进行编辑、编译、连接和运行。
#include <iostream.h>void main(){cout<<”I am a student”<<endl;}⑵上机要求步骤一:新建一个win32 Console Application的工程:打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图1-1所示:在右上角的工程下输入该工程的名称,如hello,并设置该工程所保存的路径。
最后点击确定。
图1-1步骤二:当确定后会出现要你选择工程类型的对话框,如图所示:请选择一个空的工程,即第一个选项。
步骤三:当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建],出现原先出现的对话框,请选择“文件”选项卡中的c++ source file选项,并取名,如hello。
步骤四:当确定后,就进入了源代码的编辑窗口,如图所示:步骤五:编辑好开始设置的源代码后,就进入了编译和调试阶段,请按如图所示的第二个按钮,这个称作为构件,它的功能是先进行编译,同时如果编译成功的话自动建立EXE 可执行文件,同时将可执行文件和编译和连接过程中的中间代码一起放置在debug文件夹中。
步骤六:执行可执行文件,单击编译条上的第四个按钮,即惊叹号,对编译成功的程序进行执行。
⒉编写程序完成变量x和变量y值的交换,调试程序并观察运行结果。
⑴分析要交换变量x和变量y的值,需使用临时变量z才能在进行。
一个完整的参考程序如下:#include<iostream.h>void main(){ int x,y,z; //Acout<<"x,y= ";cin>>x>>y; cout<<"输入的x="<<x<<" y="<<y <<endl; z=x; x=y; y=z; cout<<"输出的x="<<x<<" y="<<y <<endl; }⑵上机要求在键盘上分别按如下格式输入两组数据:5,3(回车) 5 3(回车)观察程序运行结果。
华水《C语言程序设计》实验报告实验七参考模板
#include<stdio.h>
void main()
{ struct man
{char name[10];
int years;
}boy[4]={{"zhang san",20},{"li si",22},{"wang ping",23},{"little",0}};
码:
#include<stdio.h>
#include<string.h>
struct person
{ char name[20];
int count;
}leader[5]={"zhang",0,"wang",0,"li",0,"zhao",0,"liu",0};
void main()
{ int i,j;
char select[20];
for(i=0;i<5;i++)
{ printf("%d please input your result:",i+1);
scanf("%s",select);
for (j=0;j<5;j++)
{if (strcmp(leader[j].name,select)==0)
leader[j].count++;
}
}
printf("the result:\n");
for(j=0;j<5;j++)
printf("%s\t%d\n",leader[j].name,leader[j].count);
c程序设计教程与实验吉顺如答案
c程序设计教程与实验吉顺如答案【篇一:c程序设计教程与实验实验一答案吉顺如】destdio.hmain(){inta,b,sum;printf(please input a,b\n); scanf(%d%d,a,b);sum=a*a+b*b;printf(%d+%d=%d\n,a,b,sum); }1.2#includestdio.hmain(){int x=2,y=3,a;a=x*y;printf(a=%d\n,a);}1.3#includestdio.hmain(){inta,b,max;scanf(%d%d,a,b);max=a;if (maxb) max=b;printf(max=%d\n,max);}1.4#includestdio.hmain(){intx,y,total;printf(please input x,y!); scanf(%d%d,x,y);total=x+y;printf(%d+%d=%d\n,x,y,total); }1.5#includestdio.hmain(){inta,b,m;printf(please input a,b\n);scanf(%d%d,a,b);m=a-b;printf(m=%d\n,m);}1.6#includestdio.hmain(){printf(better city,better life!\n);}1.7#includestdio.hmain(){inta,b,c,sum;printf(please input a,b,c:\n); scanf(%d%d%d,a,b,c);sum=a*a+b*b+c*c;printf(%d+%d+%d=%d\n,a,b,c,sum); }【篇二:03303043高级语言程序设计(上)期末考试试卷a(上机考试)】043)《高级语言程序设计》(上)期末考试试卷a卷开课学院:出卷教师:考试形式:闭卷考试时间上机考?考生姓名:赵君阳学号:19班级:一、选择题(共20分,每小题1分)1.在一个c语言程序中下列说明正确的是( b)a)main()函数必须出现在所有函数之前 b)main()函数可以在任何地方出现c)main()函数必须出现在所有函数之后 d)main()函数必须出现在固定位置2.二进制语言是属于(a )a)面向机器语言 b)面向问题语言 c)面向过程语言 d)面向汇编语言3.下列符号串中,属于c语言合法标识符的是(a )a) float b)sum onec)2max d)max24.以下选项中合法的c语言字符常量是( c)a) ‘\092 b) x c) ‘\xab’ d) ‘xy’5.若有以下程序段,则变量c的二进制值是( a )int a=6,b=3,c;c=a^b2;a)00011011 b) 00001010c)00011000 d)000001106.要输入实数,用格式字符(c)。
C语言实验7(附参考答案)
实验7:程序的输入输出实验目的:1、熟悉字符的输入输出和格式化的输入输出,了解基本规则。
2、进一步熟悉C语言程序的编辑、编译、连接和运行的方法。
实验内容:1、若inta,b; scanf( "%d%d”,&a,&b);不可以用A ____________ 作为输入的分隔符。
A) , B)空格C)回车D) TAB键2、已有如下定义和输入语句,若要求al, a2, cl, c2的值分别为10, 20,A和B,当用户从键盘输入时,正确的数据输入方式是________ 。
int al,a2; char cl,c2;s canf( “%d%d”,&al,&a2);scanf( "%c%c",&cl,&c2);A) 1020AB<CR> B) 10 20<CR>AB<CR>C) 10 20 AB<CR> D) 10 20AB<CR>3、阅读以下程序,当输入数据的形式为254340<CR>正确的输出结果为______ 。
main(){intscanf( “%d%d%d”,&x,&y,&z);printf( "x+y+z=%d\n" #x+y+z);}A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值4、根据定义和数据的输入方式,输入语句的正确形式为______ 。
已有定义:float fl,f2;数据的输入方式:A)scanf(,&仏&f2);B)s canf(“%f%f”,&仏&f2);C)s canf(“%3.2f%2・lf”,&fl,&f2);D)scanf(“%3・2f%2・:Lf”,&f:L,&f2);<5、以下说法正确的是______ oA)输入项可以为一实型常量,如scanf(“%f”,;B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4・2f”,&f);D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);6、已有定义int x; float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345 678V回车〉,则x的值为 _____ __ 的值为______ 。
《C语言程序设计与实验指导》7
int max(int ,int);
/*函数说明*/
main( )
{ int a,b,c;
c=max(a,b);
/*函数调用*/
printf(“%d”,c);
}
பைடு நூலகம்
int max(int a,int b)
/*函数定义*/
{ int c;
c=a>b?a:b;
return c;
}
青岛滨海学院——C语言程序设计——第七章 函数
return 表达式; 或者 return (表达式);
青岛滨海学院——C语言程序设计——第七章 函数
7.1 函数的定义和返回值
说明: (1)return语句中表达式的值就是函数的返回值。因此该表达式的类
型和函数定义的类型应该一致。如果不一致,则以函数定义的类型 为准,由系统自动进行转换。 (2)return 语句还可以终止函数的执行。因此,如果函数中有多个 return语句,也只执行一个return 语句。 (3)函数体内若没有return语句,这时定义函数的类型为void 类型, 程序的流程一直执行到末尾的“}”,然后返回调用函数,并没有确 定的函数值返回。 5.函数定义时,如果花括号中没有任何语句,此时函数被称为空函数。 例如: void dummy( ) {} 6.函数体中,除形参外,用到的其他变量必须在说明部分进行定义, 这些变量,只有在函数被调用时才临时分配内存单元,当函数调用 结束后,这些临时分配的内存单元全被释放。
#include<stdio.h> int isprime(int a) { int i;
for(i=2;i<=a/2;i++) if(a%i= =0) return 0;