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 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 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章答案

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语言程序设计实验报告学校:内蒙古科技大学经济与管理学院班级:信息管理与信息系统2011级姓名:王*学号:**********目录实验一C语言开发环境建立 (3)实验二C语言程序初步 (3)实验三变量与赋值 (4)实验四运算符与表达式 (5)实验五数据类型 (7)实验六控制台输入/输出 (9)实验七关系运算与逻辑运算 (11)实验八分支程序的测试与调试 (12)实验九条件型循环结构及其测试 (16)实验十计数型循环结构及其测试 (20)实验十一函数及其测试 (24)实验十二变量的储存性质 (26)实验十三数组 (30)实验十四指针 (32)实验十五结构体和共用体 (37)实验十六文件 (40)实验11、实验目的与要求(1)掌握C语言开发环境的软/硬件配置和安装方法。
(2)为了自己的方便进行工作环境配置。
(3)测试所建立的C语言程序开发环境。
2、实验测试一个简单的程序,对所建立的程序开发环境进行测试例如,可以准备一个简单的程序如下。
#include <stdio.h>int main(void){printf("I am studying programming with C.");}编译结果运行结果3.分析与预期结果相同实验21.实验目的与要求(1)进一步熟悉c语言程序设计环境。
(2)明确c语言程序的结构。
2. 程序检测与调试程序一错误程序:main()(printf("This is c program.");)调试结果:程序缺少“#include<stdio.h>”,main函数下面应该是“{}”而不是“()”。
改正后的程序:#include<stdio.h>main(){printf("This is c program.\n");}程序二错误程序:#include<stdio.h>;main(){a=3,b=5;c=a*b;printf("The product is:",c)}调试结果:“#include<stdio.h>”后面没有“;”,对变量a,b,c没有定义,“}”前缺少“;”。
c语言实验报告

c语言实验报告C语言实验报告一、引言C语言作为一种高级程序设计语言,具有简洁、高效、灵活的特点,在计算机科学领域得到广泛应用。
本实验报告旨在总结我对C语言实验的学习和理解,并介绍实验过程中遇到的问题和解决方法。
二、实验目的本次实验的主要目的是通过实践掌握C程序设计的基本语法和常用操作,培养编程思维和解决问题的能力。
具体实验要求包括熟悉C语言的数据类型、运算符、循环语句和函数定义等内容,并能够应用这些知识解决实际问题。
三、实验内容本次实验包括以下几个部分:变量的定义与使用、条件语句的应用、循环语句的运用、数组的定义与使用、函数的定义与调用以及实验总结等。
1. 变量的定义与使用在C语言中,可以使用关键字“int”、“float”、“char”等定义不同类型的变量。
变量是计算机程序中存储数据的基本单元。
在本次实验中,我通过定义不同类型的变量,并进行赋值和运算等操作,来加深对变量的理解和掌握。
2. 条件语句的应用条件语句在程序设计中起到了判断和选择不同执行路径的作用。
在C 语言中,可以使用“if”、“else if”、“else”等关键字来实现条件语句的控制。
通过实验,我学会了如何根据不同的条件执行不同的代码块。
3. 循环语句的运用循环语句是程序中重复执行某段代码的结构,能够提高程序的灵活性和效率。
在C语言中,我掌握了“for”、“while”、“do while”等不同类型的循环语句的使用方法,并在实际问题中进行了应用。
4. 数组的定义与使用数组是一种存储相同数据类型多个元素的容器。
在C语言中,可以通过定义数组名和下标位置来访问和操作数组中的元素。
通过实验,我深入了解了数组的索引范围、元素的访问以及数组在程序中的应用。
5. 函数的定义与调用函数是一段封装了特定功能的代码块,可以提高程序的模块化和可维护性。
在C语言中,我学会了如何定义函数并传递参数,以及通过函数调用来实现特定功能。
四、实验过程及结果在实验过程中,我采用了自上而下的方法,先分析问题,再逐步实现代码。
C语言实训总结报告范文(通用5篇)

C语言实训总结报告范文(通用5篇)在经济飞速发展的今天,报告的适用范围越来越广泛,报告包含标题、正文、结尾等。
一听到写报告马上头昏脑涨?以下是小编整理的C语言实训总结报告范文,仅供参考,希望能够帮助到大家。
C语言实训总结报告篇1这个星期,我们迎来了C语言实训——一次至为重要的实训。
在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。
非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。
通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
C语言实验报告

中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。
2,通过调试,运行简单的C程序,初步了解C语言程序的特点。
实验内容:1.编写一个C程序,求一个圆的面积。
我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。
我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。
2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。
《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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学与软件科学学院实验报告学期:2013至_2014 第_ 1 学期时间:2013年12月07日课程名称:程序设计基础教程-C语言专业:数学与应用数学 2012级1班实验编号:06实验项目:基于函数的模块化程序设计指导教师_姓名:学号:实验成绩:良+一、实验目的及要求(1)了解和掌握C语言环境下模块化程序设计的基础----基于函数模块的程序设计技术;(2) 复习C语言程序的基本结构特点,了解基于函数模块的程序模块及其调用关系、过程;(3) 函数的声明、定义、使用方法;(4) 对各种变量属性的使用方法;(5) 对C语言中常用的预编译语句的基本掌握。
二、实验内容(第1题任选其两个小题,第2题和第3题必做)1.函数的声明、定义和使用方法。
具体实例如下:(1) 编写一个在屏幕上画一条正弦曲线的函数;(2) 编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:72=2*2*2*3*3;(3) 分别写出一个求N个数的最大公约数和最小公倍数的递归函数;(4) 试编制n碟片hanoi塔的问题求解函数,并利用它求解4个盘片的结果;(5) 试编写求n!的函数,并求n=7的结果。
具体要求如下:(1) 编写程序通过调试获得正确结果;(2) 分析函数的声明、定义和使用方法;(3) 分别分析函数调用时的参数传值调用方法。
2.有关变量的属性实验(静态、动态、全局、局部等方面)。
具体实例如下:(1) 仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个变量的属性及其使用结果进行比较分析:int main(void){ /******(a)******/int nX=1;{/******(b)******/void prt(void);int nX=3;prt();printf("The second nX is %d\n",nX);}/******(c)******/printf("The first nX is %d\n",nX);return 0;}void prt(void){ /******(d)******/int nX=5;printf("The third nX is %d\n",nX);}/******(e)******/(2) 仔细分析下列程序,是否有错误之处?然后分析其执行结果,上机验证并对各个变量的存储属性及其结果进行比较分析:#define LOW 11#define HIGH 23#define CHANGE 12int i=LOW;int main(void){int workover(int i);int reset(int i);int i=HIGH;reset(i/2.5);printf("i=%d\n",i);reset(i=i/3);printf("i=%d\n",i);reset(i/2);printf("i=%d\n",i);workover(i);printf("i=%d\n",i);return 0;}workover(int i);{i=(i%i++)*((i*i)/(2*i)+4);printf("i=%d\n",i);return (i);}reset(int i);{i=i<=CHANGE?LOW:HIGH++;return (i);}(3) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。
/*****file1.c*****/int last(void);int new(int);int reset(void);exter int i;int main(void){int i,j;i=reset();for (j=1;j<=3;j++){printf(“i=%d\tj=%d\n”,i,j);printf(“next(i)=%d\t”,next(i));printf(“last(i)=%d\n”,last());printf(“new(i+j)=%d\n”,new(i+j));}int next(void){return (i++);}return 0;}/*****file2.c*****/static int i=10;fast(void){rturn (i-=1_);}new(int i){static int j=-5;return (i=j+=++i);}/*****file3.c*****/extern int i;reset(){return (i);}3.预编译命令实验。
具体实例如下:(1)一般宏替换实验(教材例7-5);(2) 带参数的宏替换(教材例7-7~例7-12,习题7-8和习题7-9);(3) 习题7-11和习题7-12;(4) 文件包含(#include ""和#include <>)。
三、实验预备(1) 编写所选实验题目的程序代码和流程图;(2) 检查源程序并给出其可能的运行结果说明。
四、实验步骤(1) 上机验证所选题目,并做相应测试和分析;(2) 进行实验分析;(3) 总结基于函数、宏等技术的模块化程序设计和实现方法及其经验;(4) 编写实验报告。
五、实验结果分析与评价(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。
1.函数的声明、定义和使用方法。
具体实例如下:(1)分别写出一个求N个数的最大公约数和最小公倍数的递归函数;程序如下:int main(void){int a,b,p,r,nTemp;clrscr();printf("Please input (a,b)::\n");scanf("%d,%d",&a,&b);if (a<b) /* 交换a,b的位置,使得a>b */{nTemp=a;a=b;b=nTemp;}p=a*b; /*将a*b的值放到p里面,以便接下来求a,b的最小公倍数*/ while (b!=0) /*采用辗转相除法求最大公约数*/{r=a%b;a=b;b=r;}printf("the zui da gong yue shu is %d\n",a); /*输出最大公约数*/ printf("the zui xiao gong bei shu is %d\n",p/a); /*输出最小公倍数*/ return 0;}运行结果:(2) 试编写求n!的函数,并求n=7的结果。
程序如下:int main(main){long int n,i,nSum=0,nX=1; /*声明变量*/clrscr();printf("Please input (n)::\n");scanf("%d",&n);for (i=1;i<=n;i++) nX*=i; /* process 循环控制结构*/ printf("n! is %d",nX);return 0;}运行结果如下:2.有关变量的属性实验(静态、动态、全局、局部等方面)。
具体实例如下:(1) 仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个变量的属性及其使用结果进行比较分析:程序如下:int main(void){int nX=1; /*全局变量,但是当遇到内部重新初始化时,以内部的为准*/ {void prt(void); /*调入外部函数*/int nX=3; /*再一次初始化*/prt();printf("The second nX is %d\n",nX);}printf("The first nX is %d\n",nX);return 0;}void prt(void){int nX=5; /*重新初始化*/printf("The third nX is %d\n",nX);}运行结果如下:(2) 仔细分析下列程序,是否有错误之处?然后分析其执行结果,上机验证并对各个变量的存储属性及其结果进行比较分析:#define LOW 11 /*采用宏定义,方便程序运行*/#define HIGH 23#define CHANGE 12int i=LOW; /*外部变量*/int main(void){int workover(int i);int reset(int i);int i=HIGH;reset(i/2.5);printf("i=%d\n",i);reset(i=i/3);printf("i=%d\n",i);reset(i/2);printf("i=%d\n",i);workover(i);printf("i=%d\n",i);return 0;}workover(int i);{i=(i%i++)*((i*i)/(2*i)+4);printf("i=%d\n",i);return (i);}reset(int i);{i=i<=CHANGE?LOW:HIGH++;return (i);}该程序有误,更改为:#include <stdio.h>#define LOW 11#define HIGH 23#define CHANGE 12int i=LOW;int main(void){int i=HIGH;int reset(int i);clrscr();reset(i/2.5);printf("i=%d\n",i);reset(i=i/3);printf("i=%d\n",i);reset(i/2);printf("i=%d\n",i);workover(i);printf("i=%d\n",i);return 0;}int workover(int i){i=(i%i++)*((i*i)/(2*i)+4);printf("i=%d\n",i);return (i);}reset(int i){i=i<=CHANGE?LOW:HIGH;return (i);}运行结果如下:(3) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。