C程序设计上实验报告(完整版)
程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。
其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。
其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。
掌握了c语言,可以说你就掌握了很多门语言。
学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。
所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。
同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。
在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。
在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。
这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。
比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。
c程序设计 实验报告

c程序设计实验报告C程序设计实验报告引言:C程序设计是计算机科学中一门重要的编程语言,广泛应用于软件开发、系统编程等领域。
本实验报告旨在总结并分析我在C程序设计实验中的学习经验和成果。
实验一:基本语法和数据类型C语言作为一门结构化的编程语言,具有丰富的语法和数据类型。
在本实验中,我学习了C语言的基本语法,包括变量的声明和赋值、运算符的使用以及条件语句和循环语句的控制流程。
通过编写简单的程序,我熟悉了C语言的基本语法和数据类型的使用。
实验二:函数和指针函数是C语言中的重要概念,通过函数的封装和调用,可以实现程序的模块化和复用。
在本实验中,我学习了函数的定义和调用,了解了函数的参数传递和返回值的使用。
同时,我还学习了指针的概念和用法,掌握了指针变量的声明和指针运算的基本操作。
通过实验练习,我对函数和指针的使用有了更深入的理解。
实验三:数组和字符串数组和字符串是C语言中常用的数据结构,对于处理大量数据和字符操作非常重要。
在本实验中,我学习了数组的定义和使用,了解了数组的下标和内存分配的原理。
同时,我还学习了字符串的表示和处理方法,掌握了字符串的输入输出和常见操作函数的使用。
通过实验练习,我对数组和字符串的应用有了更深入的认识。
实验四:结构体和文件操作结构体是C语言中用于组织和管理复杂数据的一种方式,文件操作则是处理外部文件的重要技术。
在本实验中,我学习了结构体的定义和使用,了解了结构体成员的访问和结构体数组的操作。
同时,我还学习了文件的打开、读写和关闭操作,掌握了文件指针的使用和文件读写的基本流程。
通过实验练习,我对结构体和文件操作的应用有了更深入的了解。
实验五:动态内存分配和链表动态内存分配和链表是C语言中高级的数据结构和算法,对于处理动态数据和实现复杂逻辑非常重要。
在本实验中,我学习了动态内存分配的方法和使用,了解了malloc和free函数的原理和使用。
同时,我还学习了链表的定义和操作,掌握了链表的插入、删除和遍历等基本操作。
C程序设计上机实验报告(完整版)

C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:刘昊学号:20162181310实验时间:2017年3月6号任课老师:张锐C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:运行结果1:程序分析1:该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。
代码2:运行结果2:程序分析2:简单的使用printf()和scanf()函数进行简单的数据运算。
代码3:运行结果3:程序分析3:使用if语句进行判断。
五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:运行结果1:程序分析1:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。
代码2:运行结果2:程序分析2:简单的数据运算和格式字符的输出。
C语言程序设计

C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:#include<stdio.h>int main(){printf("hello world!\n");return 0;}运行结果1:程序分析1:代码2:#include<stdio.h> int main(){int a=5,b=6,c;c=a+b;printf("c=%d\n",c);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){int a=5,b=6,c;if(a>b){c=a;}else{c=b;}printf("%d\n",c);return 0;}运行结果3:程序分析3:五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:#include<stdio.h>int main(){char c1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1-32;printf("%c,%d\n",c2,c2);return 0;}运行结果1:程序分析1:代码2:#include<stdio.h>int main(){int a=5,c1,c2;double b=3.141592653,c3,c4;c1=a/b;c3=a/b;c2=a+b;c4=a+b;printf("%d,%d,%lf,%lf\n",c1,c2,c3,c4);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){here: printf("计算三角形的面积请输入‘1’,立方体的体积和表面积请输入‘2’,圆的面积和周长请输入‘3’.\n");int a;scanf("%d",&a);if(a==1){double l,h,s;printf("请输入三角形的底边长和所在底边的高.");scanf("%lf%lf",&l,&h);s=l*h/2;printf("三角形的面积为%.16f\n",s);}else if(a==2){printf("请输入立方体的长宽高.");double b,c,d,v,s;scanf("%lf%lf%lf",&b,&c,&d);v=b*c*d;s=b*c+b*d+c*d;printf("立方体的体积为%.16f,表面积为%.16f\n",v,s);}else{double r,s,c,m;printf("请输入圆的半径");scanf("%lf",&r);m=3.141592653;s=m*r*r;c=2*m*r;printf("圆的面积为%.16f,圆的周长为%.16f\n",s,c);}goto here;}运行结果3:程序分析3:代码4:#include<stdio.h> int main(){getchar();putchar('b');return 0;}运行结果4:程序分析4:代码5:#include<stdio.h>int main(){int a;printf("请输入任意十进制整数:");scanf("%d",&a);printf("转换为八进制数为:%o\n转化为十六进制数为:%x\n",a,a); return 0;}运行结果5:程序分析5:五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句,学习调试程序。
c语言程序设计_实验一实验报告

实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。
2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。
3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。
4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。
实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。
程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。
(完整版)c实验报告

(完整版)c实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。
通过实验的设计和完成,检验和加深对C语言的理解和应用能力。
实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。
这样可以在终端或命令提示符中执行相关的C程序。
3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。
根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。
4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。
编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。
编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。
5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。
可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。
6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。
同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。
实验结果:通过本次实验的设计和实现,我成功完成了对C语言编程的实验,达到了预期的目标。
通过编写实际的代码,我巩固了对C语言语法和基本概念的理解。
在实验过程中,我遇到了一些问题,通过查阅资料和与同学的讨论,我成功解决了这些问题。
c语言程序设计实验报告

c语言程序设计实验报告一、实验目的本次实验旨在通过设计C语言程序来加深对于C语言的理解和掌握,同时也可以掌握一些实用的编程技巧和方法。
通过编写程序实现对于输入输出的处理、循环语句和条件语句的运用以及函数调用等内容的练习。
二、实验内容本次实验涉及以下三个方面的内容:1. 程序的的输入输出我们通过编写程序来实现一个简单的输入输出功能,即用户输入任意一个整数,程序输出该整数的两倍。
2. 循环语句和条件语句的运用我们通过编写程序来实现以下两个功能:(1)输入一个正整数,计算该数的阶乘。
(2)输入一个正整数n,输出n行的杨辉三角形。
3. 函数调用我们通过编写程序来实现以下两个功能:(1)输入三个整数a、b和c,求其中最大的一个数。
(2)输入一个字符串,程序输出该字符串中每个字母在字符串中出现的次数。
三、实验过程1. 程序的输入输出我们通过使用scanf函数来实现输入一个整数的功能:int n;scanf("%d", &n);然后我们可以通过printf函数来输出该整数的两倍的值:printf("%d", n*2);2. 循环语句和条件语句的运用(1)计算阶乘我们可以利用for循环语句来实现计算阶乘的功能:long long ans = 1;for(int i = 1; i <= n; i ++){ans *= i;}printf("%lld", ans);(2)输出杨辉三角我们可以利用嵌套的for循环语句来实现输出杨辉三角的功能:for(int i = 1; i <= n; i ++){for(int j = 1; j <= i; j ++){if(j == 1 || j == i)printf("1 ");elseprintf("%d ", a[i-2][j-2]+a[i-2][j-1]);}printf("\n");}3. 函数调用(1)求最大值我们可以利用函数调用来实现求最大值的功能:int max(int a, int b, int c){int temp = a > b ? a : b;return temp > c ? temp : c;}然后我们可以通过调用该函数来求解三个数中的最大值:int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%d", max(a, b, c));(2)计算字符次数我们可以利用一个数组来记录每个字母出现的次数,然后通过遍历输入的字符串来对应更新数组。
c程序设计的实验报告

c程序设计的实验报告C程序设计的实验报告实验目的本次实验旨在加深学生对C语言程序设计的理解,通过实践操作,掌握C语言的基本语法结构、数据类型、控制语句、函数、数组和指针等核心概念。
通过编写和调试程序,培养学生的编程思维和问题解决能力。
实验环境- 操作系统:Windows 10- 编译器:GCC (GNU Compiler Collection)- 开发工具:Visual Studio Code实验内容1. 基本语法结构编写一个简单的C程序,实现基本的输入输出功能。
程序要求用户输入一个整数,然后输出该整数的平方。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("该整数的平方是:%d\n", num * num);return 0;}```2. 控制语句编写程序,实现对一个整数数组的排序,并输出排序后的数组。
```c#include <stdio.h>void sort(int arr[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - 1 - i; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90};int n = sizeof(arr) / sizeof(arr[0]);sort(arr, n);printf("排序后的数组:\n");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```3. 函数编写一个函数,实现对字符串的反转,并在主函数中调用该函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:**学号:***********实验时间:2017年3月6号任课老师:张锐C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:运行结果1:程序分析1:该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。
代码2:运行结果2:程序分析2:简单的使用printf()和scanf()函数进行简单的数据运算。
代码3:运行结果3:程序分析3:使用if语句进行判断。
五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:运行结果1:程序分析1:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。
代码2:运行结果2:程序分析2:简单的数据运算和格式字符的输出。
代码3:运行结果3:程序分析3:简单的数据运算实现相应的功能。
代码4:运行结果4:程序分析4:getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.代码5:运行结果5:程序分析5:重要的是格式字符的使用,%d(输出十进制整型数)%o(以八进制格式输出整形数)%x(以十六进制格式输出整型数)%f(以带小数点的形式输出浮点数)%c(输出一个字符)%s(输出字符串,直到遇到\0)五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句,学习调试程序。
三、实验内容:(1). 编写程序,用if 语句编程实现一分段函数的求解。
(2).用if 语句编写程序,求一元二次方程的根。
(3). 用switch 语句编写程序,给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80—90分为B,70――79分为C,60――69分为D,60分以下为E)。
(4). 用switch 语句编写程序,输入一小于6位数的整数,判断它是几位,并逆序输出。
(5). 用if 语句编写程序,判断某一年是否为闰年。
四、源程序代码代码1运行结果1:程序分析1:使用if 函数对不同的输入参数进行不同的算术运算。
代码2:运行结果2:程序分析2:运用math库函数中的根号运算sqrt()函数实现求根公式的表达。
代码3:运行结果3:程序分析3:运用switch语句对所有的情况分开,注意如果没有break语句,那么判断到要执行的case后,其后面的语句也要执行。
代码4:运行结果4:程序分析4:重要的是判断一个数几位数的算法:每次对10取整,记录一次,降低了一位位数,直到取整位0就降到了一位数,计数完毕。
然后,对于不同的基数值,输出相应的判断结果。
代码5:运行结果5:程序分析5:重要的是闰年判断条件“四年一闰,百年不闰;四百年一闰”的c语言表示:i%4==0&&i%100!=0||i%400==0;五、实验总结C语言程序设计上机实验报告实验四一、实验名称:循环控制程序设计二、实验目的:掌握在程序设计中使用循环的方法实现一些常用算法(如:穷举、迭代和递推等)。
三、实验内容:(1). 分别用while语句、do-while语句和for 语句编写程序,求100112 (100)nn==+++∑。
(2). 用while 语句编写程序,对输入一行字符的字母、数字、空格和其他字符的个数分别予以统计,并输出。
(3). 用for 或while语句编写程序,输出所有的水仙花数。
(4). 用for 语句编写程序,找出100-200间的所有素数。
(5). 用for语句编写程序,实现规定图案的输出。
四、源程序代码代码1运行结果1:程序分析1:三种循环语句的使用。
代码2:运行结果2:程序分析2:代码3:运行结果3:程序分析3:重要的是如何使用取整,取余运算符将一个数的每一位取出来。
代码4:运行结果4:程序分析4:重要的是,素数的判断条件的c表达:如果对于小于其本身的能能够把其整除,说明其不是一个素数,反之则为素数。
代码5:运行结果5:程序分析5:重要的是发现打印空格和字符个数与打印第n行之间的数字关系,根据数量关系,利用for循环实现循环打印。
五、实验总结C语言程序设计上机实验报告实验五一、实验名称:函数二、实验目的:掌握函数形参和实参的对应关系;以及“值传递”的方式,掌握函数的嵌套调用和递归调用的方法。
三、实验内容:(1). 通过无参函数实现多行字串的输出;(2). 通过有参函数数据传递,用函数来实现:(a)两个数比较,输出其中较大的数;)(b)对给定的两个数求和;(3). 编写程序,用函数的嵌套调用来实现输入4个数,找出其中最大的数。
(4). 编写程序,用函数递归调用,计算n!;(5). 写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。
四、源程序代码代码1:#include<stdio.h>void fun1(char *b ){int i;for(i=0;i<7;i++){printf("%c",b[i]);}printf("\n");}void fun2(char *d){int j;for(j=0;j<7;j++){printf("%c",d[j]);}}main(){char a[8]={'A','B','C','D','E','F','G'};char c[8]={'H','I','J','K','L','M','N'};fun1(a);fun2(c);}运行结果1:程序分析1:执行两次同样的输出函数。
代码2:#include<stdio.h>void fun1(double *b,double *d ){double max;max=*b;if(*d>*b){max=*d;}printf("两个数中较大的数是%f\n",max);}void fun2(double *b, double *d){double j;j=*b+*d;printf("%f+%f=%f\n",*b,*d,j);}main(){double a,c;printf("请输入两个数,数据之间用空格隔开\n");scanf("%lf %lf",&a,&c);fun1(&a,&c);fun2(&a,&c);}运行结果2:程序分析2:将两个功能通过两个函数来单独完成,有利于程序的阅读。
代码3:#include<stdio.h>int max(int n1,int n2);int main(){int i,j,k,l,m,n,o;printf("请输入四个数(用空格隔开)\n");scanf("%d %d %d %d",&i,&j,&k,&l);m=max(i,j);n=max(k,l);o=max(m,n);printf("四个数中最大的数为%d\n",o);return 0;}int max(int n1,int n2){if(n1>n2){return n1;}else{return n2;}}运行结果3:程序分析3:代码4:#include<stdio.h>long jc(int m);main(){int n,jg;printf("-----该程序用来计算阶乘-----\n");printf("你要计算的是几的阶乘就输入几\n");scanf("%d",&n);jg=jc(n);printf("%d的阶乘是%d\n",n,jg);}long jc(int m){if(m==0){return 1;}else{return m*jc(m-1);}}运行结果4:程序分析4:5!=5*4*3*2*15!=5*4!;4!=4*3!;3!=3*2!;2!=2*1!;1!=1*0!;0!=1;实现函数的直接递归调用,并且递归使用的是选择结构,一定会有结束递归调用的语句,例如上题中if(m==0)的执行语句:return 1;就结束了再次调用函数jc函数。
代码5:运行结果5:程序分析5:只需要传递一个简单的整形数据即可,注意功能函数()里的变量一定要注明类型。
五、实验总结C语言程序设计上机实验报告实验六一、实验名称:一维和二维数组二、实验目的:掌握与数组有关的排序算法:冒泡排序和选择排序。
三、实验内容:(1). 用一维数组,对给定的一组数据逆序输出。
(2). 用一维数组,对10个数进行由小到大的冒泡排序。
(3). 用二维数组,求一个矩阵中的最大数据元素及所在的行列位置。
(4). 用一维数组,对10个数进行由小到大的选择排序。
(5). 用二维数组,求一个矩阵的转置矩阵。
四、源程序代码代码1:#include<stdio.h>{int i,j,m,t, a[100];printf("请输入一维数组的元素个数(注意:数组元素个数最多为100):\n");scanf("%d",&m);j=m-1;printf("请输入一维数组的元素(注意:每输入一个数据按回车再输入下一个数据):\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("你所输入一维数组为:");for(i=0;i<m;i++){printf("%d\t",a[i]);}printf("\n");if(m%2==0){printf("该一维数组逆序输出为:");for(i=0;i<m/2;i++){t=a[i];a[i]=a[j];a[j]=t;j--;}}if(m%2!=0){printf("该一维数组逆序输出为:");for(i=0;i<(m-1)/2;i++)t=a[i];a[i]=a[j];a[j]=t;j--;}}for(i=0;i<m;i++){printf("%d\t",a[i]);}}运行结果1:程序分析1:代码2:#include<stdio.h>main(){int i,j,m,t,a[100];printf("请输入一维数组的列数(注意:列数最多为100):\n");scanf("%d",&m);printf("请输入一维数组的元素(注意:每输入一个数据按回车再输入下一个数据):\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("你所输入的一维数组为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}for(i=1;i<m;i++){for(j=0;j<m-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("\n");printf("你所输入的一维数组由小到大排序为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}}运行结果2:程序分析2:代码3:#include<stdio.h>main(){int i,j,m,n,p=1,o=1,max1,a[100][100];printf("请输入二维数组的行数(注意:行数最多为100):\n");scanf("%d",&m);printf("请输入二维数组的列数(注意:列数最多为100):\n");scanf("%d",&n);printf("请输入二维数组的元素(注意:每输入一个数据按回车再输入下一个数据,一行输入完后,再输入下一行):\n");for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}printf("你所输入的二维数组为:\n");for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",a[i][j]);if(j==n-1){printf("\n");}}}max1=a[0][0];for(i=0;i<m;i++){for(j=0;j<n;j++){if(a[i][j]>max1){max1=a[i][j];o=j+1;p=i+1;}}}printf("该数组中最大的数为%d\n其位于该数组的第%d行第%d列",max1,p,o);}运行结果3:程序分析3:代码4:#include<stdio.h>main(){int i,j,m,t,a[100];printf("请输入一维数组的列数(注意:列数最多为100):\n");printf("请输入一维数组的元素(注意:每输入一个数据按回车再输入下一个数据):\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("你所输入的一维数组为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}for(i=0;i<m;i++){for(j=i+1;j<m;j++){if(a[j]<a[i]){t=a[i];a[i]=a[j];a[j]=t;}}}printf("你所输入的一维数组由小到大排序为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}}运行结果4:程序分析4:代码5:#include<stdio.h>main(){int i,j,m,n,t,a[100][100];printf("请输入二维数组的行数(注意:行数最多为100):\n");scanf("%d",&m);printf("请输入二维数组的列数(注意:列数最多为100,因为是矩阵,要求行数等于列数):\n");scanf("%d",&n);printf("请输入二维数组的元素(注意:每输入一个数据按回车再输入下一个数据,一行输入完后,再输入下一行):\n");for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}printf("你所输入的二维数组为:\n");for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",a[i][j]);if(j==n-1){printf("\n");}}}for(i=0;i<m-1;i++){for(j=i+1;j<n;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}printf("你所输入的二维数组转置后为:\n"); for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",a[i][j]);if(j==n-1){printf("\n");}}}运行结果5:程序分析5:五、实验总结C语言程序设计上机实验报告实验七一、实验名称:字符数组和字符串二、实验目的:学会字符数组的输入/输出和初始化;掌握对字符数组进行连接、复制和比较的函数,掌握对字符数组进行排序的有关算法;了解字符串变量及字符串数组的使用技巧。