C语言实验报告6

合集下载

快速排序算法c语言实验报告

快速排序算法c语言实验报告

快速排序算法c语言实验报告冒泡法和选择法排序C程序实验报告实验六:冒泡法排序物理学416班赵增月F12 2011412194日期:2013年10月31日一·实验目的 1.熟练掌握程序编写步骤;2.学习使用冒泡法和选择法排序;3.熟练掌握数组的定义和输入输出方法。

二·实验器材1.电子计算机;2.VC6.0三·实验内容与流程1.流程图(1)冒泡法(2)选择法 2.输入程序如下:(1)冒泡法#includestdio.h void main() { int a[10]; int i,j,t; printf(请输入10个数字:\n); for(i=0;i10;i++)scanf(%d,&a[i]); printf(\n); for(j=0;j9;j++)for(i=0;i9-j;i++) if(a[i]a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf(排序后如下:\n); for(i=0;i10;i++) printf(%d,a[i]); printf(\n); }(2)选择法#includestdio.h void main() { int a[10]; int i,j,t,k; printf(请输入10个数字:\n); for(i=0;i10;i++)scanf(%d,&a[i]);printf(\n); for(i=0;i9;i++) {k=i;for(j=i+1;j10;j++) if (a[k]a[j])k=j;t=a[i];a[i]=a[k];a[k]=t; }printf(排序后如下:\n); for(i=0;i10;i++)printf(%d,a[i]); printf(\n); }四.输出结果(1冒泡法)请输入10个数字:135****2468排序后如下:12345678910 (2)选择法输出结果请输入10个数字:135****6810排序后如下:12345678910五.实验反思与总结1.冒泡法和选择法是一种数组排序的方法,包含两层循环,写循环时,要注意循环变量的变化范围。

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。

二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。

三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。

熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。

2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。

运用 switch 语句进行多分支选择,处理不同的情况。

利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。

3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。

掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。

4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。

实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。

5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。

掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。

6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。

了解共用体的概念和使用场景,比较结构体和共用体的区别。

四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。

C语言实验报告第6章答案

C语言实验报告第6章答案

6.2基础实验一、程序分析分析以下程序段完成的功能,填写在序号后的空白处,并运行验证结果。

1. ⊙以下程序的运行结果是:_______s=12345↙____________________。

#include <stdio.h>int main( ){ inta[]={1,2,3,4,5},i,j=1,s=0;for(i=4;i>=0;i--){ s=s+a[i]*j;j=j*10;}printf(“ s= %d \n” , s );return 0;}2. 以下程序的运行结果是:_____7 5 3______________________。

#include<stdio.h>int main( ){ int k ;int a[3][3]={9,8,7,6,5,4,3,2,1};for(k=0;k<3;k++)printf(“%d ”,a[k][2-k]);return 0;}3. 以下程序的功能是:____查找最大值元素及下标_________________。

#include <stdio.h>int main( ){ int i, j ,x =0 ,y = 0 , m ;int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };m = a [0][0] ;for (i=0 ;i < 3 ;i++)for (j = 0 ; j<3 ; j++ )if ( a[ i] [ j ] >m ){ m = a[ i ][ j ] ;x = i ;y = j ;}printf(“ ( % d , % d ) = % d \n”, x , y,m );return 0;} 运行结果:___(1 , 2 ) = 6↙_________________4. 以下程序的的运行结果是:__8,I am student!___________________。

C语言实验报告范例

C语言实验报告范例

C语言实验报告范例
实验题目:C语言实现银行家算法
实验目的:掌握C语言实现银行家算法的基本思想,并能熟练应用矩阵处理实现银行
家算法的功能。

实验内容:
1. 利用C语言实现银行家算法的核心思想,利用矩阵处理实现其核心功能模块。

2. 银行家算法是一种负责实现“当前分配”的基于矩阵的编程模型。

该算法可以通
过利用安全状态来识别一次可行解,从而解决请求和分配资源的冲突问题。

3. 根据上述信息,我们设计了C语言实现银行家算法的基本框架,包括初始化步骤、可行性检查步骤、回滚步骤以及主步骤。

4. 在初始化步骤中,我们采用矩阵存储技术,将银行家算法中的各个参数保存起来,具体过程中采用数组存储。

5. 在可行性检查步骤中,我们判断当前系统状态是否处于安全状态,如果处于安全
状态,则继续完成下一步余额检查;否则,处理发生冲突时,回滚处理。

6. 在主步骤中,我们过程中判断若系统处于可行状态,则继续分配资源;否则,则
执行回滚操作,将系统恢复到上一状态。

实验结果和结论:
通过实验,我们学会了如何使用C语言来实现银行家算法,进而通过实现矩阵处理,
实现了该算法的核心功能模块。

此外,我们还学习了安全状态机制,进行系统可行性检查,和完成系统的分配工作,以达到有效地实现银行家算法的目的。

本次实验结论如下:
1. 通过C语言实现银行家算法中的核心功能模块,使系统的可行性检查得以有效实现;
2. 利用矩阵存储来实现系统的可行性检查,从而有效地节省时间和提高资源分配的
效率;
3. 通过回滚处理,有效地解决资源请求和分配冲突问题,使系统能够有效地实现安
全状态。

C语言实训总结报告范文(通用5篇)

C语言实训总结报告范文(通用5篇)

C语言实训总结报告范文(通用5篇)在经济飞速发展的今天,报告的适用范围越来越广泛,报告包含标题、正文、结尾等。

一听到写报告马上头昏脑涨?以下是小编整理的C语言实训总结报告范文,仅供参考,希望能够帮助到大家。

C语言实训总结报告篇1这个星期,我们迎来了C语言实训——一次至为重要的实训。

在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。

非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。

通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。

不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。

这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。

如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。

C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。

比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。

还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。

通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。

c语言实训报告

c语言实训报告

c语言实训报告一、实训介绍作为计算机专业学生,我们需要熟练掌握各种编程语言,其中C语言是所有计算机专业学生必须学会的语言之一。

为了更好地掌握C语言的使用,我们参加了C语言实训。

本次实训分为理论学习和实践操作两部分,理论学习主要涵盖C语言的基本语法、数据类型、运算符、流程控制等内容,实践操作部分则要求我们通过编写各种程序来巩固所学知识并提高编程能力。

二、实训过程1. 理论学习在理论学习阶段,我们通过老师讲解和课堂互动的方式掌握了C语言的基本概念和语法规则,并进行了主要控制语句的讲解和练习。

同时,我们通过一些实例掌握了C语言的运算符和数据类型,并学会如何使用它们来编写程序。

2. 实践操作实践操作阶段是整个实训的重点和难点,主要包括以下几个方面的内容:(1)程序编写在实践操作过程中,老师为我们提供了多个练习题目,包括简单的判断语句、循环语句、数组等等。

我们需要通过编写代码来实现这些题目的要求,并进行调试修改,直到程序执行无误为止。

(2)实验报告为了让我们更好地掌握C语言的应用,老师还要求我们编写实验报告,记录我们在实践过程中遇到的问题和解决方案,以及程序设计的思路和实现过程。

通过编写实验报告,我们不仅可以更好地回顾和总结实践操作,还能提高我们的文字表达能力。

三、实训体会通过参加C语言实训,我对C语言的掌握更加深刻,不仅能灵活运用其语法和控制语句,还能熟练使用其常用函数和数据类型。

在实践操作中,我也锻炼了自己的程序设计和调试能力,并学会了一些解决问题的方法和技巧。

同时,我也认识到了C语言编程并不是简单的代码拼接,要求我们具备较强的逻辑思维能力和耐心,只有不断地进行练习和思考,才能在C语言编程中达到自己的目标。

四、总结通过C语言实训,我不仅掌握了C语言的基础知识和应用技巧,还培养了自己的创新思维和问题解决能力。

在未来的学习和工作中,我会继续学习和应用C语言,不断提升自己的编程水平,并为计算机行业的发展做出自己的贡献。

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六使用指针的程序设计学号姓名一、实验目的1、掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、熟悉指针作为函数参数的定义和调用方法;4、能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。

#include <stdio.h>void main(){int *p1,*p2,*p;int a,b;printf("Input a b please");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b){ p=p1;p1=p2;p2=p;}printf("*p1=%d, *p2=%d\n",*p1,*p2);printf("a=%d, b=%d\n",a,b);}『运行结果:』输入1,2得:*p1=1,*p2=2a=1,b=2输入2,1得:*p1=1,*p2=2a=2,b=1输入56,123得:*p1=56,*p2=123a=56,b=1232.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。

形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。

请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even){int m;*odd=0; *even=0;for(m=0;m<n;m++)if(*(a+m)%2==0)*even+=*(a+m);else*odd+=*(a+m);}void main(){int a[N]={1,10,2,3,19,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}『运行结果:』3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。

C语言程序设计实验六函数答案《西北民大电气学院》

C语言程序设计实验六函数答案《西北民大电气学院》

实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
姓名:安帼帼 李晓昀
学会了 For 循环实现穷举迭代算法,能够编写较为复杂的 C 语言程序,运用更简单 方便了。
实验心得 与小结
班级:信息与计算科学
实验六、函数(1) 学号:20084390105
姓名:安帼帼
课程名: C 程序设计
任课教师
李晓昀
实验目的 实验内容
实验步骤
1.掌握函数的定义与调用规则; 2.掌握函数形参与实参的对应关系。
C 程序设计
任课教师
1.熟练掌握 if 语句; 2.灵活应用 if 语句的三种结构。
1.编写程序,输入任意一个整数,判断该数的奇偶性 2.从键盘输入三个数,判断能否构成三角形。如果能构成三角形,则再判断是等边、 等腰(不含等边情况)还是一般三角形。 int a,b,c; printf("input a,b,c:"); scanf("%d%d%d",&a,&b,&c); if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a) if(a==b&&b==c&&a==c) printf(" 等边三角形!\n"); else if(a==b||b==c||a==c) printf("等腰三角形!\n"); else printf("一般三角形!\n"); else printf("不是三角形!\n");
2. 设计程序,求出 100 到 600 间所有的素数: #include<math.h> main() { int m,k,i,n=0; for(m=101;m<=600;m=m+2) { k=sqrt(m); for(i=2;i<=k;i=i+1) if(m%i==0) break; if(i>=k+1) n=n+1; } printf("%d",n);
2. 拆分 125 的因子: int fun(int n); int n; scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k;
实验心得 与小结
班级:信息与计算科学
实验四、循环程序设计(1) 学号:20084390105
姓名:安帼帼
课程名: C 程序设计
任课教师
李晓昀
实验目的 实验内容
1.熟悉 While、do while 循环结构; 2. 能够用两种循环结构实现穷举迭代算法。
1.编写程序求 m=10 时,公式:T=1/1!+1/2!+1/3!+…1/m!, 2.拆分 125 的因子。 3.编写程序求出 100 以内能被 5 或 7 整除的自然数的和。
学会了用两种循环结构实现穷举迭代的算法,体会到了 c 程序的优越性。
实验心得 与小结
班级:信息与计算科学
实验五、循环程序设计(2) 学号:20084390105
课程名: C 程序设计
任课教师
实验目的 实验内容
实验步骤
1.熟悉 For 循环结构; 2.能够用 For 循环实现穷举迭代算法。
1.编写程序求出所有的水仙花数。 2.设计程序,求出 100 到 600 间所有的素数。
if(n>1) printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3. 编写程序求出 100 以内能被 5 或 7 整除的自然数的和: #include"stdio.h" main() { int i,sum=0; for(i=1;i<=100;i++) { if(i%5==0||i%7==0) sum+=i; } printf("sum=%d",sum); }
1、编写程序,输入正方体的长宽高 l,w,h。求体积及三个面 x*y,x*z,y*z 的面积。 2、编程用自定义函数,求出 100~300 间的所有素数。 3、编程用自定义函数,求 m=10 时,公式:T=1/1!+1/2!+1/3!+…1/m!, 1.int s1,s2,s3;
int vs(int a,int b,int c) { int v; v=a*b*c; s1=a*b; s2=b*c; s3=a*c; return v; } main() { int v,l,w,h; printf("\ninput length,width and height\n"); scanf("%d%d%d",&l,&w,&h); v=vs(l,w,h); printf("v=%d s1=%d s2=%d s3=%d\n",v,s1,s2,s3); } 2. 编程用自定义函数,求出 100~300 间的所有素数: #include<stdio.h> int check(int x) {
实验步骤
1. 编写程序求 m=10 时,公式:T=1/1!+1/2!+1/3!+…1/m!: #include<stdio.h> main() { int n; double t=1,sum=0; for(n=1;n<=10;n++) { t=1/(t*n); sum=sum+t; } printf("sum=%f",sum); }
课程名: 实验目的 实验内容
实验步骤
实验一、熟悉上机环境及输入输出语句
C 程序设计 1.掌握 C 语言的数据类型及各种变量的定义与赋值; 2.掌握各种运算表达式; 3.掌握自增(++)、自减(--)的运算符的简单使用; 4.熟悉 C 程序的编辑、编译、链接和运行过程。 1.数据类型、运算符与表达式; 2.基本输入输出语句; 3.输入圆的半径并求出相应圆的周长和面积。
float r,l,s;
scanf(“%f”,&r); /*输入一个浮点数据,存入地址&r */
l=2*3.14159*R; /* 计算周长,赋值给 l */
s=3.14159*r*r; /* 计算面积,赋值给 s */
printf(“ \n l=%8.4f”,l);/* 输出周长,占 8 个字符宽,4 位小数*/
#include "stdio.h" void main() {
float a,b,result; char ch; printf("\nplease input two numbers(a, b):"); scanf("%f,%f",&a,&b);//注意在输入时这里要用","分开 getchar();// 目的是接受一个回车符 printf("\nplease input a ope;); scanf("%c",&ch); switch(ch) { case '+': result=a+b;break; case '-': result=a-b;break; case '*': result=a*b;break;
int i; for(i=2;i<x;i++) { if(x%i==0) { return 0; } } return 1; } void main() { int i; for(i=100;i<=300;i++) { if(check(i)) printf("%d\n",i); } } 3. 编程用自定义函数,求 m=10 时,公式:T=1/1!+1/2!+1/3!+…1/m!: #include<stdio.h> double fsh(int m) { int n; double t=1,sum=0; for(n=1;n<=m;n++) { t=1/(t*n); sum=sum+t; } return sum; } main() { int m; float he; printf("shu ru m"); scanf("%d",&m); he=fsh(m); printf("jie guo wei %f",he); }
1.将百分制成绩转换为等级制输出。 2.编一模拟袖珍计算器程序。要求:随机产生两个操作数和一个操作符,输出计算 的结果。 3*.用分支语句实现一个疾病类型诊断程序。 1. 将百分制成绩转换为等级制输出:
ingt grade; printf("input the grade:"); scanf("%d",&grade); if(grade>=90) printf("A\n"); else if(grade>=80) printf("B\n"); else if(grade>=70) printf("C\n"); else if(grade>=60) printf("D\n"); else printf("E\n"); } 2. 编程,输入两个实数 a,b,再输入一个运算符(可以是+,-,*或/),根据运算符计算并 输出 a,b 两个数的和,差积和商:
相关文档
最新文档