c语言实验六

合集下载

快速排序算法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语言实验安排

实验内容五(3月19日练习性实验)
请编写一个能够循环接收键盘输入 整数的程序(当输入0时表示数据输入结 束),并统计和输出所输入的整数中正 数和负数的个数。
本次试验内容的程序需要提交。
大学计算机应用基础
实验内容五(3月19日练习性实验)
一.把教程第六章的例6.1(P89)、例6.2 (P90)、例6.3(P91)、例6.4(P92)、例6.5 (P92)、例6.6(P95)、例6.7(P96)、例6.8 (P97)、例6.9(P98)、例6.10(P103)、例 6.11(P104)在VC环境中进行验证性演示。
大学计算机应用基础
实验内容十一(4月28日)
设计一函数求n×m矩阵中最小元素值并返 回该值。在主函数中从键盘对一3×4矩阵进 行赋值,然后调用求矩阵最小元素值函数求 该矩阵的最小值,并输出该值。
大学计算机应用基础
实验内容十一(4月28日)
设计一函数move,实现N*N方阵的转置功 能。在主函数中定义一方阵并初始化,然 后调用move函数实现对它的转置,最后输 出转置后的方阵。
x<=1 1<x<=5 5<x<=10 10<x<=15 x>15
本次试验内容的程序需要提交。
大学计算机应用基础
实验内容四(3月12日练习性实验)
一.把教程第五章的例5.1(P70)、例5.2 (P71)、例5.3(P73)、例5.4(P73)、例5.5 (P75)、例5.6(P76)、例5.7(P76)、例5.8 (P77)、例5.9(P78)、例5.10(P79)、例 5.11(P80)、例5.12(P81)、例5.13(P82)、 例5.14(P82)、例5.15(P83)、例5.16(P84) 在VC环境中进行验证性演示。 本次试验内容的程序需要提交。

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语言实验册完整答案

实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。

c语言实验报告5篇

c语言实验报告5篇

c语言实验报告c语言实验报告5篇随着社会一步步向前发展,我们使用报告的情况越来越多,我们在写报告的时候要注意涵盖报告的基本要素。

其实写报告并没有想象中那么难,以下是小编收集整理的c语言实验报告,欢迎阅读与收藏。

c语言实验报告1学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验六综合实验一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。

2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。

3、掌握C程序的运行、调试方法等。

二、实验内容编写一个学生信息排序程序。

要求:1、程序运行时可输入n个学生的信息和成绩(n预先定义)。

2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。

3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。

1、使用函数方法定义各个模块。

三、实验步骤与过程物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板四、程序调试记录c语言实验报告2第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

(]1.2 实验要求在报告中记录建立、保存C程序实习过程。

1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main(){printf (“Hello World! ”);}2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。

C语言程序实验报告--谭浩强

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语言与程序设计》实验06---函数

《C语言与程序设计》实验06---函数

实验六函数一、实验目的1. 熟练掌握函数的定义、函数的类型和返回值。

2. 熟练掌握形式参数与实际参数、参数值的传递。

3. 掌握函数的嵌套调用与递归调用。

4.学会使用指向函数的指针变量。

5.了解指向指针的指针的概念及带参数的main函数。

6. 掌握局部变量和全局变量。

7. 掌握变量的存储类型。

8. 了解内部函数和外部函数。

二、实验学时:8课时三、预习知识1.标准库函数标准库函数是C系统提供的,这些库函数定义了一些基本的、常用的功能,用户可以使用这些库函数,但是在使用库函数之前需要用预编译命令# include将该库函数所在的头文件包含进来。

2.自定义函数定义函数一般有两种形式形式1:存储类型类型符函数名(类型符形参1,类型符形参2 ,… ) { 说明语句执行语句}形式2:存储类型类型符函数名(形参1,形参2 ,……)形参类型说明{ 说明语句执行语句}说明:①形参表中即使没有参数,函数名后的一对圆括号也不能省略。

②函数名前的类型符是用来说明函数返回值的数据类型(也作为函数的数据类型) 。

当函数值为整型时,类型符可以省略。

③当函数只完成某一特定操作不需要返回值时,可用类型标识符 void 说明,将函数定义成空类型。

④C 规定:不允许在一个函数内部再定义另外一个函数,即函数不允许嵌套定义。

⑤函数的存储类型:函数的存储类型有 extern 和 static 两种。

extern 型的函数除了可以被本程序中其它函数调用外,还可以被其它文件中的函数调用,这种函数称为外部函数,如果定义函数时省略 extern ,则隐含为外部函数。

static 型的函数只能被本源程序文件中的函数调用,称为内部函数(静态函数)。

3.函数的参数(1)在定义函数时函数名后面括号中的变量称为形参(形式参数),如果有两个以上形参,形参之间以逗号分隔。

形参是函数的内部变量,只在函数内部才有意义。

在未出现函数调用时,形参不占内存。

对每个形参必须指明其名字和数据类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常熟理工学院《C语言程序设计》实验指导与报告书______学年第____ 学期专业: ___________________________________________ 学号: ___________________________________________ 姓名: ___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________计算机科学与工程学院2014实验7 数组程序设计(1)7.1 实验目的1.掌握一维数组的定义及初始化方法。

2.掌握用循环语句对一维数组进行处理的方法。

3.熟悉对数组元素进行处理的常规算法(如排序、插入、删除及查找等)。

7.2 示例程序【实验7.1】本程序的功能是:取出一个十进制正整数中的所有偶数数字,用这些数字构成一个最大数。

程序代码:#include<stdio.h>#define N 10int main(){ int i,j,k=0,t,d,a[N];long n,m=0;printf("Please enter a long integer.");scanf("%ld",&n);while(n>0) /* 依次取出每位数,并将偶数存入数组*/{ t=n%10; /* 取出一位数*/if(t%2==0) /* 判断是否偶数*/a[k++]=t; /* 将偶数存入数组*/n/=10; /* 为取下一位数做准备*/}for(i=0;i<k-1;i++) /* 对取出的偶数进行降序排序,共k-1轮*/{ d=i; /* 记录每轮起始元素的下标*/for(j=i+1;j<k;j++)if(a[j]>a[d]) /* 后续元素依次与起始元素进行比较*/d=j; /* 记录比起始元素大的元素的下标*/if(d!=i) /* 一轮比较后判断记录的下标是否发生了变化*/{ t=a[d];a[d]=a[i];a[i]=t;} /* 若发生了变化,则交换元素值*/}for(i=0;i<k;i++) /* 将排序后的偶数组合成一个最大数*/m=m*10+a[i];printf("max=%ld",m);return 0;}说明:1.while循环语句的作用是依次将每一位数字分离出来,判断分离的数字是否为偶数,若是偶数,将其存入数组中。

2.对取出的偶数进行降序排序,排序采用的是选择排序算法。

3.使用表达式“m=m*10+a[i]”将排序后的偶数组合成一个最大数。

7.3 阅读程序【实验7.2】以下程序的功能是:验证在7~2000之间的所有素数中存在这样的两个素数,它们的差恰好是1898。

程序代码:#include<stdio.h>int main(){ int i,j,a[1000],k=0,m,n,flag=0;for(i=7;i<2000;i+=2){ for(j=2;j<=i/2;j++) /* */if(i%j==0)break; /* */ if(j>i/2) /* */a[k++]=i; /* */ }for(i=0;i<k-1;i++)for(j=1;j<k;j++)if(a[j]-a[i]==1898) /* */{ m=i;n=j;flag=1; /* */break;}if(flag)printf("%d-%d=%d",a[n],a[m],a[n]-a[m]);elseprintf("not found!");return 0;}说明:1.程序中首先找出7~2000之间的所有素数,将其存入数组中。

2.采用双循环遍历素数数组元素,若两个元素的差是1898,则分别记录两个元素的下标,同时退出循环。

3.程序中的flag变量作为标志变量,其初始值为0,若找到符合条件的两个元素时,将其值置为1。

循环外依据标志变量flag的值给出结果。

【实验7.3】编写程序,由键盘输入一个十进制整数,输出其补码。

程序代码:#include<stdio.h>int main(){ int n,k,sign,carry,bm[8];do{ printf("Please enter a integer(-128>=n<=127):");scanf("%d",&n);}while(n<-128||n>127); /* */for(k=0;k<8;k++)bm[k]=0; /* */ if(n>0)sign=0;else { sign=1; n=-n; }k=0;do{ bm[k++]=n%2; /* */ n/=2;}while(n>0);if(sign){ carry=1;for(k=0;k<7;k++){ bm[k]=1-bm[k]+carry; /* */if(bm[k]>1){ bm[k]-=2;carry=1; /* */}elsecarry=0;}}bm[k]=sign;for(k=7;k>=0;k--)printf("%d",bm[k]);return 0;}说明:1.bm数组用于存放补码。

2.首先使用do-while循环求出整数的二进制数,并将每一位二进制数存于bm数组,然后对bm数组中的每一位进行求反操作。

7.4 完善程序【实验7.4】将一个整数插入到已经排好序的数组中,使该数组仍有序。

程序代码:#include<stdio.h>int main(){ int i,j,t,n,a[11]={12,31,5,7,19,4,8,16,32,42};for(i=0;i<10;i++) /* 对数组进行降序排序*/for(j=i+1;j<=10;j++)if(a[i]<a[j]){ t=a[i];________;a[j]=t;}printf("Inserted before:");for(i=0;i<10;i++) /* 输出排序后的数组*/printf("%3d",a[i]);printf("\nPlease enter a number:");________; /* 输入要插入的数*/for(i=0;i<10;i++)if(a[i]<n) /* 寻找插入点*/{ for(j=9;j>=i;j--)________; /* 元素依次后移一个位置*/break; /* 已找到插入点,结束寻找*/ }a[i]=n; /* 将要插入的数送入数组*/printf("Inserted after:");for(i=0;i<=10;i++)printf("%3d",a[i]);return 0;}说明:1.定义数组时,直接给数组赋值。

2.首先对数组进行降序排序。

然后从第一个元素开始依次与要插入的数进行比较,寻找插入点。

找到插入点后,将插入点开始的元素依次后移一个位置,结束寻找。

3.移出位置后,将要插入的数送入数组。

7.5 改错程序【实验7.5】本程序的功能是:输出15至100之间所有能被3整除且至少有一位数字是5的整数。

请改正程序中的错误,并调试。

注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。

【含有错误的程序代码】#include<stdio.h>int main(){ int i,j,n,m,k,a[100],b[5];for(i=15;i<=100;i++)if(i%3=0) /* 判断是否是3的倍数*/{ i=m; /* 将判断的数赋给m */j=0;k=0;do{ b[j]=m%10; /* 分离出一位数并赋给数组*/m/=10; /* 为分离下一位数做准备*/if(b[j]==5) /* 判断该位数是否是5 */k++;j++;}while(m<0); /* 满足条件结束循环*/if(k>0)a[n++]=i; /* 满足条件的数存入数组*/}for(i=0;i<n;i++)printf("%4d",a[i]);return 0;}7.6 自己练习1.编写程序,将一个数组中的元素逆序存放。

例如,原来顺序是12,3,11,14,21,15,25,18,22,27,逆序后为27,22,18,25,15,21,14,11,3,12。

2.编写程序,取出一个十进制正整数中的所有奇数数字,用这些数字构成一个最小数。

相关文档
最新文档