实验七、数组(2)

合集下载

数组实验报告反思心得

数组实验报告反思心得

一、实验背景本次实验旨在通过学习数组的相关知识,掌握数组的定义、初始化、赋值、引用等方法,以及数组的操作和应用。

通过本次实验,我对数组有了更深入的理解,同时也对编程思维和算法设计有了更全面的提升。

二、实验过程1. 实验一:一维数组的定义与初始化实验过程中,我首先学习了如何定义一维数组,以及如何对数组进行初始化。

通过实验,我掌握了以下知识:(1)一维数组的定义格式:类型符数组名[常量表达式];(2)一维数组的初始化方法:在定义数组时,可以在方括号内指定数组的长度,并为数组元素赋初值。

2. 实验二:二维数组的定义与初始化在实验二,我学习了二维数组的定义与初始化。

通过实验,我掌握了以下知识:(1)二维数组的定义格式:类型符数组名[常量表达式1][常量表达式2];(2)二维数组的初始化方法:可以在定义数组时,指定数组的行数和列数,并为数组元素赋初值。

3. 实验三:数组元素的引用与赋值在实验三,我学习了如何引用数组元素,以及如何为元素赋值。

通过实验,我掌握了以下知识:(1)数组元素的引用方法:数组名[下标];(2)数组元素的赋值方法:使用赋值运算符“=”。

4. 实验四:数组的操作与应用在实验四,我学习了数组的操作与应用,包括冒泡排序、选择排序等。

通过实验,我掌握了以下知识:(1)冒泡排序算法:通过比较相邻元素的大小,将较大的元素交换到后面,直到整个数组有序。

(2)选择排序算法:通过比较相邻元素的大小,选择最小(或最大)的元素放到数组的起始位置,然后继续对剩余的元素进行排序。

三、实验反思1. 数组的定义与初始化在实验过程中,我深刻体会到了数组在编程中的重要性。

数组作为一种数据结构,可以有效地存储和操作一组具有相同数据类型的元素。

通过对数组的定义与初始化,我学会了如何创建一个符合实际需求的数组,并为数组元素赋初值。

2. 数组元素的引用与赋值在实验过程中,我学会了如何引用数组元素,以及如何为元素赋值。

这使我更加熟练地掌握了数组的使用方法,为后续的编程实践打下了基础。

程序设计基础课程教学大纲

程序设计基础课程教学大纲

程序设计基础课程教学大纲(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《信息技术基础》(VB)实验教学大纲制定:审核:第一部分教学大纲说明一、课程性质、目的与任务《程序设计基础》是一门实践性很强的课程,主要内容包括Visual Basic的基本概念、Visual Basic的界面设计、Visual Basic语言基础、Visual Basic的基本语句、过程设计、文件操作、图形及多媒体处理、数据库操作等。

根据培养应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解开发Visual Basic应用程序的一般过程,建立程序设计的基本概念,编写简单应用程序,为今后专业学习中使用计算机打下良好的基础。

二、先修课要求大学计算机基础三、课程的教学要求基本概念和基本知识:面向对象程序设计(OOP),Visual Basic的集成开发环境(IDE),界面设计,Visual Basic语言基础,基本语句结构,过程,文件,数据库应用。

基本技能:算法实现、程序重点:常用控件的使用、三种基本结构、过程难点:程序算法、递归过程四、课程的教学方法和教学形式建议学生自主实验+教师指导第二部分教学过程建议一、课程教学总学时数、学分数课程教学总学时数为72学时,其中理论授课时间为36学时,上机实验为36学时。

二、实验学时分配第三部分实践教学环节《Visual Basic程序设计》是一门实践性很强的课程,实践教学是教学过程中必不可少的环节。

通过计算机实验和程序调试,使学生加深理解、验证巩固课堂教学内容;增强对程序调试的感性认识;掌握程序设计的基本方法;培养学生理论与实践相结合的能力。

一、课程实验为了进一步强化和巩固课堂所学的知识及实际的应用,配合课堂教学,设置以下课程实验:实验一 VB集成环境与应用程序创建初步(课前指导)【实验目的】1.了解VB集成开发环境的基本组成2.了解VB应用程序的创建及开发环境的选项设置3.掌握VB联机帮助的使用4.掌握VB集成开发环境的退出【实验内容】一、VB集成开发环境的基本组成1.启动VB并创建标准EXE工程2.熟悉VB集成开发环境3.熟悉窗体设计器窗口4.熟悉代码窗口5.熟悉VB集成开发环境的其他组成部分二、VB应用程序的创建及开发环境的选项设置1.设计应用程序的界面2.设计界面对象的属性3.编写程序代码4.执行并调试程序5.生成可执行程序文件三、VB联机帮助的使用四、退出VB集成开发环境实验一 VB应用程序的创建及编程基础【实验目的】1.学会创建一个简单的VB应用程序2.掌握VB的数据类型、常量、变量、运算符和表达式3.了解过程与函数的使用【实验内容】一、建一个简单的VB应用程序1.启动VB,创建一个标准EXE类型的VB应用程序2.设计应用程序的界面3.设计界面对象的属性4.编写程序代码5.保存工程6.执行并调试程序7.生成可执行程序文件二、VB的数据类型、常量、变量、运算符和表达式三、过程与函数的使用实验二 VB语言基础(一)【实验目的】1.掌握各种数据类型2.掌握常量与变量【实验内容】一、各种数据类型的定义与使用二、变量的定义实验三 VB语言基础(二)【实验目的】1、掌握表达式与运算符2、掌握VB常用的内部函数【实验内容】一、各种数据类型表达式与其运算符二、VB常用的内部函数的实验测试实验四 VB基本语句的使用(一)【实验目的】1、掌握顺序结构语句的使用【实验内容】一、顺序结构语句的使用实验五 VB基本语句的使用(二)【实验目的】1、掌握选择语句的使用【实验内容】一、选择语句实验六 VB基本语句的使用(三)【实验目的】1、掌握循环语句的使用【实验内容】一、循环语句实验七数组【实验目的】1、掌握数据的定义2、掌握不同类型的数据的区别3、了解控件数组的定义方法【实验内容】1、学会数组的定义2、掌握不同类型的数组的区别3、了解控件数组的定义方法实验八过程【实验目的】1.掌握通用子程序的定义和调用方法2.掌握函数过程的定义和调用方法3.明确子过程和函数过程的特点及区别【实验内容】一、Sub过程的定义和调用二、Function过程的定义和调用实验九递归调用、参数传递和变量作用域【实验目的】1.明确递归过程的编制特点,掌握通用过程的递归调用方法2.掌握实参和形参按值传递和按地址传递的不同用法,明确不同实参数据类型具有的不同传递形式3.明确过程级、窗体级和模块级变量的作用域和特点,能够根据具体情况使用全局变量、共用变量和局部变量4.掌握Sub函数调用时的两种格式:语句格式和命令格式【实验内容】一、递归过程二、参数传递实验十窗体和标准控件(一)【实验目的】1.掌握命令按钮、标签及文本框控件的使用方法2.掌握复选框、单选按钮及框架控件的使用方法【实验内容】一、命令按钮、标签及文本框控件的使用二、复选框、单选按钮及框架控件的使用实验十一窗体和标准控件(二)【实验目的】1.握列表框组合框控件的使用方法2.握滚动条和定时器控件的使用方法【实验内容】一、表框组合框控件的使用二、滚动条和定时器控件的使用实验十二窗体和标准控件(三)【实验目的】控件内容的综合与复习【实验内容】一、各种不同控件的使用综合实验十三对话框与菜单的设计【实验目的】1、掌握不同对话框的使用2、掌握下拉式菜单的设计方法3、掌握弹出式菜单的设计方法【实验内容】一、下拉式菜单的设计二、弹出式菜单的设计3、三、掌握不同对话框的使用实验十四文件的基本操作【实验目的】1.掌握DriveListBox、DirListBox和FileListBox控件的使用方法2.掌握文本文件的读写操作方法3.掌握随机文件的读写操作方法4.掌握二进制文件的读写操作方法【实验内容】一、DriveListBox、DirListBox和FileListBox控件的使用二、文本文件的读写三、随机文件的读取四、二进制文件的读取实验十五制作图形【实验目的】1.掌握VB提供的形状(Shape)控件和图像(Image)控件的使用方法2.掌握坐标和颜色的设置方法3.掌握常用的绘图方法4.能编制简单的动画程序【实验内容】一、形状(Shape)控件二、图像控件三、各种图形方法实验十六、十七数据库【实验目的】1.理解数据库的结构和表的结构2.掌握在VB环境中建立Access数据库和在数据库中添加表的方法通用子程序的定义和调用方法4.掌握数据控件(Data)的基本属性设置和使用方法5.掌握常用数据显示控件与Data控件的绑定方法6.熟悉SQL语言中常用语句的语法规则和使用方法7.了解直接运用Access创建数据库的方法8.能编制简单的数据库操作程序【实验内容】一、数据管理器二、数据控件三、结构化查询语言SQL四、数据窗体向导。

数组的应用实验原理

数组的应用实验原理

数组的应用实验原理1. 实验目的本实验旨在掌握数组的概念、特性和应用,并通过实际案例加深对数组的理解。

2. 实验原理数组是一种用来存储相同类型的数据元素的数据结构。

它可以在内存中连续的存储多个元素,并通过索引值来访问和操作这些元素。

在实际应用中,数组常被用来存储一组相同类型的数据,例如整数、浮点数、字符等。

3. 实验步骤1.声明数组:首先需要声明一个数组,并指定数组的类型和名称。

例如,int[] numbers;表示声明一个整数类型的数组变量名为numbers。

2.创建数组:使用new关键字来创建数组。

例如,numbers = newint[5];表示创建了一个包含5个整数的数组。

3.初始化数组:可以在数组创建后对其中的元素进行初始化,也可以在声明数组时直接进行初始化。

例如,int[] numbers = {1, 2, 3, 4, 5};表示创建并初始化一个包含5个整数的数组。

4.访问数组元素:使用索引值来访问数组中的元素。

索引值从0开始,到数组长度减一。

例如,int x = numbers[2];表示将数组numbers中索引为2的元素赋值给变量x。

5.修改数组元素:通过索引值可以修改数组中的元素。

例如,numbers[0] = 10;表示将数组numbers中索引为0的元素修改为10。

6.遍历数组:使用循环结构可以遍历数组中的所有元素。

通过循环动态改变索引值,从而逐个访问数组中的元素。

例如,使用for循环来遍历数组:for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);}4. 实验案例下面通过一个简单的案例来说明数组的应用原理。

4.1 案例描述某班级有10名学生,需要统计每个学生的成绩,并计算平均分。

4.2 案例解决思路1.声明一个整数类型的数组scores用于存储学生成绩。

2.创建长度为10的数组:scores = new int[10];3.使用循环结构输入每个学生的成绩,并将其存储到数组中。

c语言程序设计案例教程 实验项目-设计性题目参考答案

c语言程序设计案例教程 实验项目-设计性题目参考答案

C语言程序设计案例教程(含实验)设计性实验的程序参考答案实验项目一 C程序的编辑、编译、连接和运行题目:编写程序,要求屏幕上显示如下信息:************************ This is a C program .************************程序:#include <stdio.h>void main(){printf(“***********************”);printf(“* This is a C program .*”);printf(“***********************”);}实验项目二数据类型、运算符、表达式题目(1)程序填空:输入1 个实数x,计算并输出其平方根(保留1 位小数)。

填空1.double x,root;2.root=sqrt(x);(2)输入一个大写英文字母,输出相应的小写字母。

填空1.ch=ch+32;实验项目三顺序结构程序设计题目(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。

程序代码:#include <stdio.h>#include <mach.h>main(){float a,b,c,s,arer;printf(" 请输入三角形的三个边a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的边为a=%7.2f, b=57.2f, c=%7.2f\n",a,b,c);printf("三角形的面积area=%7.2\n ",area);(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

C语言实验报告数组

C语言实验报告数组

实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。

C语言上机实验1-18

C语言上机实验1-18

实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。

2.了解在该系统上如何编辑、编译、连接和运行一个C程序。

3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。

参考公式V=4/3πr3.。

2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。

运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。

2.掌握格式输入/输出函数的用法。

3.学会简单顺序程序的设计。

4.养成良好的程序设计习惯。

二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。

Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。

Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。

二、实验内容1.编写一个程序,确定一个数的位数。

Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。

提示:利用if语句进行数的判定。

例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。

c语言实验7数组实验报告

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语言实验报告

中南民族大学管理学院学生实验报告课程名称: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语言实验报告《数组》

C语言实验报告《数组》《数组》实验报告实验目的:掌握C语言中数组的定义、初始化和使用方法,了解数组在程序中的作用和用途,熟悉数组的基本操作。

实验内容:1.数组的定义和初始化2.数组的基本操作-访问数组元素-修改数组元素-遍历数组-数组作为函数参数实验步骤:1.数组的定义和初始化定义一个整型数组,数组名为array,数组大小为10。

使用for循环将数组元素初始化为0。

2.数组的基本操作1) 访问数组元素:通过下标访问数组的元素,例如array[0]表示数组的第一个元素。

2)修改数组元素:通过下标将数组的元素修改为新的值。

3) 遍历数组:使用for循环遍历数组的每个元素,并输出其值。

4)数组作为函数参数:将数组作为函数的参数传递,并在函数内对数组进行操作。

实验结果:1.数组的定义和初始化:int array[10];for (int i = 0; i < 10; i++)array[i] = 0;}2.数组的基本操作:1)访问数组元素:int x = array[0]; // 访问第一个元素的值,即数组的第一个元素2)修改数组元素:array[0] = 1; // 将第一个元素的值修改为13)遍历数组:for (int i = 0; i < 10; i++)printf("%d ", array[i]); // 输出每个元素的值}4)数组作为函数参数:void printArray(int arr[], int len)for (int i = 0; i < len; i++)printf("%d ", arr[i]); // 输出数组的每个元素}}int maiint myArray[5] = {1, 2, 3, 4, 5};printArray(myArray, 5); // 将数组myArray作为参数传递给printArray函数return 0;}实验总结:通过本次实验,我们掌握了C语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。

C语言实验学生版(最新版)

C语言实验学生版(最新版)

实验一:简单的C程序设计(2学时)一、实验方式:一人一机二、实验目的:1、了解C语言程序的编译环境和编写过程。

2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。

3、初步了解C语言程序的特点。

4、掌握C语言的数据类型。

三、实验内容:1、计算两个数x和y的和。

(教材P5【例1-2】)2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。

(实验教材P18)3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。

(实验教材P27)4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。

(实验教材P21)5、输入并运行以下程序,分析运行结果。

(实验教材P27)#include <stdio.h>void main( ){int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}四、实验程序代码:五、实验运行结果(截图):实验二:顺序结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、掌握标识符、常量、变量的定义及使用。

2、掌握C语言的常用运算符及表达式。

3、掌握单分支if语句的使用方法。

4、掌握双分支if-else语句的使用方法。

三、实验内容:1、从键盘输入一个3位整数,请输出该数的逆序数。

(实验教材P27)2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。

(实验教材P27)3、判断箱子是正方体还是长方体。

(实验教材P33)4、有一函数: x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10) 编写程序,输入x值,输出y值。

数组应用的实验报告

数组应用的实验报告

一、实验目的1. 掌握数组的定义、声明、初始化和引用方法。

2. 熟悉数组在数据存储和操作中的优势。

3. 学习并实现一些常用的数组操作,如排序、查找、插入和删除等。

4. 提高编程能力,培养解决实际问题的能力。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C++三、实验内容1. 一维数组的定义、初始化和引用2. 二维数组的定义、初始化和引用3. 数组元素的查找4. 数组元素的排序5. 数组元素的插入和删除四、实验步骤1. 一维数组的定义、初始化和引用(1)定义一个整型一维数组,并初始化前5个元素为1、2、3、4、5。

(2)使用循环遍历数组,输出所有元素。

(3)使用指针遍历数组,输出所有元素。

2. 二维数组的定义、初始化和引用(1)定义一个整型二维数组,并初始化前3行3列的元素。

(2)使用嵌套循环遍历数组,输出所有元素。

(3)使用指针遍历数组,输出所有元素。

3. 数组元素的查找(1)定义一个整型数组,并初始化前10个元素为1、2、3、4、5、6、7、8、9、10。

(2)编写一个函数,用于查找数组中是否存在指定的元素。

(3)在主函数中调用该函数,查找元素5在数组中的位置。

4. 数组元素的排序(1)定义一个整型数组,并初始化前10个元素为1、2、3、4、5、6、7、8、9、10。

(2)编写一个冒泡排序函数,用于对数组进行排序。

(3)在主函数中调用该函数,对数组进行排序,并输出排序后的结果。

5. 数组元素的插入和删除(1)定义一个整型数组,并初始化前10个元素为1、2、3、4、5、6、7、8、9、10。

(2)编写一个插入函数,用于在数组中插入一个新元素。

(3)编写一个删除函数,用于删除数组中的指定元素。

(4)在主函数中调用插入和删除函数,对数组进行操作,并输出操作后的结果。

五、实验结果与分析1. 一维数组的定义、初始化和引用实验结果:成功定义、初始化和引用了一维数组,并输出所有元素。

C程序设计实验题目(下)[宝典]

C程序设计实验题目(下)[宝典]

实验七函数程序设计(二)练习1.用递归方法解决猴子吃桃子的问题(P129习题6.10)。

运行结果:1534练习2.编写一个程序,其中包含一个子函数,功能为删除字符串中指定的某个字符,并显示删除后的字符串。

子函数要求:形式为:vo id delete_string(cha r str[],char ch);运行结果示例:练习3.编写一个程序,其中包含一个子函数,功能为求出一个二维数组(从键盘读入)中每列的最小元素,并依次放入一个一维数组中。

例:子函数要求:形式为:vo id fun(int tt[M][N],int pp[N]);(其中,tt是一个M行N列的二维数组,pp为存放结果的一维数组。

)*练习4.编写一个程序,功能为将一个无序数组b(包含5个元素)中的每个元素插入另一个有序数组a (包含10个元素)中的适当位置,使插入后的数组a依然有序。

其中,包含3个子函数,各函数要求如下:●子函数1:功能为读入一包含n个元素的数组;形式为:voi d i np ut(int a[],i nt n);●子函数2:功能为将一个数值x插入到包含n个元素的有序数组中;●形式为:voi d ins ert(int a[],i nt n,int x);●子函数3:功能为输出一包含n个元素的数组;形式为:voi d o ut p ut(int a[],i nt n);实验八指针程序设计(一)练习1.用指针变量的处理方法编写一个程序,功能为读入一组(10个)数据后,逆向输出。

程序要求:练习2.用指针变量的处理方法编写一个程序,功能为将数组s(共10个元素,由随机数生成)中的数据位置两两对倒,并输出结果。

程序要求:程序中对数组的处理全部使用指针方式。

练习3.用指针变量的处理方法编写一个子函数,功能为从键盘读入一个已经排好序的数组(共10个数),再输入一个数,将此数按次序规律将它插入到数组中后输出结果。

函数要求:实参为指针变量,形参为数组名,且形式为:vo id insert(int x[ ], int m);其中:形参m为要插入的数据;函数无返回值。

如何使用Visual C++6.0

如何使用Visual C++6.0

精心整理C程序设计基础上机实验指导书李文杰、李桂芝、鱼涛编写实验九函数及程序结构(二)实验十指针的应用说明C程序设计同其他程序设计一样,使实践性很强的课程。

除了要听好课,多看课外书外,还需大量的上机实践才能更好地理解和掌握所学到的内容。

一般来说,上机和讲课时间之比应不少于1:1。

但由于目前各校安排的教学时数限制,课内时间将更多的精力用于讲课上,课内安排的上机时间相对较少,学生不要因此对上机的重要性有所误解。

学生应在课外再花一定的时间进行C语言的上机实践,这样才能学好该门课。

⑴实验目的和内容。

⑵程序说明,包括程序结构、各模块的算法(N-S图表示)。

⑶打印出的调试正确的源程序。

⑷打印出的程序运行记录(包括对不同测试数据的运行结果)。

⑸针对实验步骤中提出的问题,写出解决办法及对运行结果的分析。

怎样学习C语言很多同学对学习C语言感到很难,尤其是在各高校将C语言放在大学第一学年教学时经常会考试不及格。

究竟怎样才能学好C语言?这里将我对C语言本逐行啃,而是学习它们的例程。

学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。

这一过程,就和我们学习任何其他语言比如英语和汉语一样。

我们大家都有体会,我们学习一门语言,都是从最基本的语法开始,然后学习一些字和词,再来学习一些词组或句子,然后再用词组和句子组成一段话,表达一个简单这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。

实验一C程序集成开发环境熟悉一、实验目的掌握在VisualC++6.0集成开发环境下怎样编辑、编译、连接、执行、修改和调试C语言程序。

数组实验报告实验分析

数组实验报告实验分析

一、实验目的1. 理解数组的概念和基本操作。

2. 掌握数组的创建、初始化、访问和修改方法。

3. 学习数组的排序、查找和统计等常用算法。

4. 分析数组在实际应用中的优缺点。

二、实验内容1. 数组的创建与初始化2. 数组元素的访问与修改3. 数组的排序4. 数组的查找5. 数组的统计6. 数组在实际应用中的优缺点分析三、实验过程1. 数组的创建与初始化在实验中,我们首先学习了如何创建一个数组。

在C语言中,可以使用以下语句创建一个整型数组:int arr[10];这里创建了一个包含10个整数的数组,名称为arr。

接下来,我们学习了如何初始化数组。

初始化可以通过以下语句实现:int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};这里初始化了一个包含10个整数的数组,并将前10个整数依次赋值给数组元素。

2. 数组元素的访问与修改访问数组元素可以通过以下语句实现:int value = arr[3]; // 获取数组第4个元素的值修改数组元素可以通过以下语句实现:arr[5] = 20; // 将数组第6个元素的值修改为203. 数组的排序在实验中,我们学习了冒泡排序算法。

冒泡排序是一种简单的排序算法,其基本思想是通过比较相邻的元素,将较大的元素交换到数组的后面。

以下是冒泡排序算法的C语言实现:void bubbleSort(int arr[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}4. 数组的查找在实验中,我们学习了二分查找算法。

二分查找算法是一种高效的查找算法,其基本思想是将查找区间分为两半,每次查找时缩小查找范围。

C语言程序设计(课程)实验教学大纲

C语言程序设计(课程)实验教学大纲

C语言程序设计(课程)实验教学大纲一、课程中文名称(课程英文名称):C语言程序设计(THE C PROGRAMMING LANGUAGE)二、课程编码:0921163005三、课程目标和基本要求:通过本课程的学习,要求学生掌握C 语言的基本语法、基本语句、基本控制结构以及程序设计的一般方法,使学生具有熟练使用 C 语言编程解决实际问题的能力。

基本要求:掌握C语言的基本控制结构和基本控制语句及相关的语法规范,熟练运用C语言进行顺序、选择和循环结构程序设计的能力;熟练的上机编程和程序调试的能力;掌握一些常用的算法,如递推法、迭代法、穷举法、求最大最小值、排序、查找、插入、删除等,具有熟练运用这些算法解决实际问题的能力;了解结构化程序设计和模块化设计方法的基本思想,掌握必要的程序设计技巧、程序测试和程序调试技巧。

四、课程总学时: 90 学时(严格按教学计划时数)[理论: 54 学时;实验: 36 学时]五、程总学分: 4 学分(严格按教学计划学分)六、适用专业和年级:适用专业:信息与计算,应用数学,统计学,数学教育。

适用年级:大学一年级七、实验项目汇总表:注:1、实验编号:学校内部使用的编号(不超过13位),在校内具有永久唯一性。

若实验撤消,该实验编号将不再使用。

如果实验内容更新较大,则应另设新的实验编号。

实验编号十二或十三位,前十位为该课程代码(培养方案中的课程代码),第十一、十二位为该门课程的实验序号(01-99),独立设课的实验编号最后一位为“*”,非独立设课的实验编号最后一位为空,例如:《大学物理实验》的某实验项目编号为102000400601,该实验又为独立设课实验,则编号为102000400601*。

2、实验类别:基础、专业基础、专业;实验类型:演示性、验证性、综合性、设计研究、其它;实验要求:必修、选修、其它。

八、大纲内容:实验序号: 0921163005001实验名称:C语言环境[实验目的和要求]1.了解所用的计算机C语言编译系统(如VC++6.0)的基本操作方法,学会独立使用该系统。

头歌云课C语言实验七:C语言-数组

头歌云课C语言实验七:C语言-数组

头歌云课(C语言)动动你可爱的小手为小编点点关注吧实验七:C语言-数组1选择法排序2二分段交换3计数器4复制字符数组5进制转换6回文判断第1关: 选择法排序本关任务:使用选择法排序编写一个能为数组进行升序排序的程序。

相关知识选择法排序选择法排序,是从n个数中先找出最大或者最小的数放到数组的最前面或最后面,再在剩余的n-1个数中找出最大或者最小的数放到数组的次前面或倒数第2单元,以此类推,直至排序完毕。

下图显示了从n个数中寻找最大值进行升序的排序过程:进行升序排序时,也可以寻找最小值并将其与最前面的数进行交换。

遍历数组通俗的理解,遍历数组就是:把数组中的元素都看一遍。

示例如下:int arr[5] = {1,3,5,7,9};int length = 5;for(int i = 0 ; i<length ; i++){printf(" %d ",arr[i]);}输出:1 3 5 7 9如何交换数组的值交换数组中的两个值,需要借助中间变量。

(优化:请自行思考,如何不使用中间变量交换两个变量的值)示例如下,交换数组的第二个和第三个值:int arr[5] = {1,3,5,7,9};int temp;temp = arr[1];arr[1] = arr[2];arr[2] = temp;数组长度题目要求数组长度不大于n时,可以使用固定数组,示例如下:#define SIZE 100...int arr[SIZE];...但往往会造成空间浪费,为了节省空间我们可以使用malloc创建动态数组,感兴趣的同学可以去了解一下,此处使用固定数组即可。

编程要求根据提示,在右侧编辑器补充void inArray(int arr[],int n)、void selectSort(int arr[],int n)和void outArray(int arr[],int n)的函数定义,这三个函数的输入均是一个长度不大于100的无序数组arr,以及数组的长度n,请在函数selectSort中使用选择法对数组元素进行升序排序,函数inArray用于输入数组的n个元素,函数outArray用于输出数组的n个元素。

vb6.0实验七习题与答案

vb6.0实验七习题与答案

实验七专业_____________ 班级________年级________姓名______________学号_______________一、实验目的1、掌握数组(动态、静态数组、可变数组、数组初始化、控件数组)的定义方法。

2、正确理解和使用数组的下标,熟练掌握数组的引用、赋值输入和输出。

3、学会会一些实际问题二、实验内容1、按图设计窗体:要求,编写适当的事件过程实现①单击“生成”按钮,随机生成的20个10~100之间的整数存放数组a中并在Text1中显示②单击“显示偶数”按钮,在Text2中显示其的所有偶数③单击“显示奇数”按钮,在Text3中显示其的所有奇数D i m a(1T o20)A s I n t e g e r'因为在各个按钮过程都要用到数组a(),所以要定义为全局数组P r i v a t e S u b C o m m a n d1_C l i c k()R a n d o m i z eF o r i=1T o20a(i)=I n t(R n d*81+10)T e x t1.T e x t=T e x t1.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()F o r i=1T o20I f i M o d2=0T h e n T e x t2.T e x t=T e x t2.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d3_C l i c k()F o r i=1T o20I f i M o d2<>0T h e n T e x t3.T e x t=T e x t3.T e x t&a(i)&""N e x t iE n d S u b2、按图设计窗体:要求,编写适当的事件过程实现①单击“生成数组”按钮,随机生成的20个10~99之间的整数存放数组a中并在列表框List1的列表项显示②单击“求极值”按钮,在Text1中显示其中的最大数,在Text2中显示其中最小数D i m a(20)A s I n t e g e rP r i v a t e S u b C o m m a n d1_C l i c k()R a n d o m i z eF o r i=1T o20a(i)=I n t(R n d*90+10)L i s t1.A d d I t e m a(i)N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()D i m m a x%,m i n%m a x=a(1):m i n=a(1)F o r i=1T o20I f m a x<a(i)T h e n m a x=a(i)I f m i n>a(i)T h e n m i n=a(i)N e x t iT e x t1.T e x t=m a x:T e x t2.T e x t=m i nE n d S u b3、要求,编写适当的事件过程实现①单击“生成”按钮,随机生成的30个ASCII值为65~122之间的字符存放数组s中并显示在Text1②单击“分类”按钮,在Text2中显示其中的大写字母,在Text3中显示其中小写字母D i m a(1T o20)A s S t r i n gP r i v a t e S u b C o m m a n d1_C l i c k()T e x t1.T e x t=""R a n d o m i z eF o r i=1T o20a(i)=C h r(I n t(R n d*58+65))T e x t1.T e x t=T e x t1.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()T e x t2.T e x t="":T e x t3.T e x t=""F o r i=1T o20I f A s c(a(i))>=65A n d A s c(a(i))<=90T h e n T e x t2.T e x t=T e x t2.T e x t&a(i)&""I f A s c(a(i))>=97A n d A s c(a(i))<=122T h e n T e x t3.T e x t=T e x t3.T e x t&a(i)&""N e x t iE n d S u b4、按图设计窗体:要求,编写适当的事件过程实现①单击“生成”按钮,随机生成的30个值为10~99之间的整数存放数组a中并显示在Text1②单击“处理”,选出其中能被3整除但不能被6整除的数,显示在Text2中,并统计其个数和平均值(保留小数以下一位)显示在Text3和Text4中③单击“退出”,结束运行D i m a(1T o30)A s I n t e g e rP r i v a t e S u b C o m m a n d1_C l i c k()T e x t1.T e x t=""R a n d o m i z eF o r i=1T o30a(i)=I n t(R n d*90+10)T e x t1.T e x t=T e x t1.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()D i m s u m A s I n t e g e rT e x t2.T e x t=""F o r i=1T o30I f a(i)M o d3=0A n d a(i)M o d6<>0T h e nT e x t2.T e x t=T e x t2.T e x t&a(i)&""k=k+1'统计符合条件的个数ks u m=s u m+a(i)'统计符合条件的数的和E n d I fN e x t iT e x t3.T e x t=kT e x t4.T e x t=s u m/kE n d S u bP r i v a t e S u b C o m m a n d3_C l i c k()E n dE n d S u b5、按图设计窗体:要求,十个文本框为控件数组,编写适当的事件过程实现①单击“评委给歌手打分”,随机生成10个9.0~9.9依次显示在文本框控件数组中②单击“评分”,把十个评委中去掉一个最高和一个最低分后,平均分显示的Text2中D i m a(9)A s S i n g l eP r i v a t e S u b C o m m a n d1_C l i c k()R a n d o m i z eF o r i=0T o9T e x t1(i)=F o r m a t(R n d+9,"0.0")N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()D i m m a x!,m i n!,s u m!m a x=T e x t1(0):m i n=T e x t1(0)F o r i=0T o9s u m=s u m+T e x t1(i)I f m a x<T e x t1(i)T h e n m a x=T e x t1(i)I f m i n>T e x t1(i)T h e n m i n=T e x t1(i)N e x t iT e x t2.T e x t=(s u m-m a x-m i n)/8E n d S u b6、打开工程文件7_6.vbp,其窗体中有一个名为Text1的文本框数组,下标从0开始,程序运行时,单击“产生随机数”就会产生10 个3位的整数并放入到Text1数组中;单击“重排数据”,将把其中的奇数移到前,偶数移到后面。

C语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。

[练习]C语言实验七、函数程序设计答案

[练习]C语言实验七、函数程序设计答案

实验七 函数及程序结构(二)一、实验目的1.掌握函数的嵌套调用和递归调用2.掌握数组做函数参数的用法3.掌握全局变量和局部变量的用法。

?4.掌握变量的存储类别。

?二、实验内容1.[目的]掌握函数的嵌套调用方法。

[题目内容] 编写程序计算cb a 。

要求设计主函数main()读取a 、b 、c 的值,并调用ratio 函数计算a/(b-c)的值。

如果(b-c)=0那么ratio 就不能计算,因此,ratio 函数调用另一个函数dif ,以测试(b-c)的差是否为零,如果b 不等于c ,dif 返回1,否则返回0。

[输入] a 、b 、c 的值[输出] 计算结果[提示] main 函数调用ratio 函数,ratio 函数调用dif 函数。

三个函数平行定义,嵌套调用。

#include <stdio.h>void main(){float ratio(int x,int y ,int z);int dif(int x,int y);int a,b,c;float d;printf("请输入a,b,c:");scanf("%d%d%d",&a,&b,&c);d=ratio(a,b,c);if(d==0.0) printf("b-c 为零。

");else printf("%d/(%d-%d)=%f\n",a,b,c,d);}float ratio(int x,int y ,int z){if(dif(y ,z)==1) return (float)x/(float)(y-z);else return 0.0;}int dif(int x,int y){if(x==y) return 0;else return 1;}2.[目的]利用标准库提供的随机数功能。

[题目内容]编写程序,帮助小学生练习乘法计算。

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

实验七数组(2)
【实验目的】:
1、掌握一维数组的定义、赋值和输入输出的方法;
2、掌握与数组有关的算法(例如排序算法);
3、熟悉循环语句与数组处理语句结合的方法。

【实验时数】:2学时
【实验内容】:
一、新建文件夹
首先在各自对应的计算机wks盘上新建一个文件夹,文件夹的名字为“班级+学号的后两位+姓名”,如食品1081班、学号后两位是02的、姓名为“张三”的同学,则其对应的文件夹名字是:食品108102张三。

然后在刚才建好的文件夹里面再建立一个文件夹,文件夹为“第12次”。

以下实验内容的运行结果需保存在所建的“第12次”文件夹内,并按题目的要求完成。

希望同学们在做以下实验之前,先认真分析程序的运行结果,后再上机验证。

二、实验内容:
[程序一]:有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。

如果该数不在数组中,则打印出“无此数”。

将编写好的程序以文件名search.c保存在你刚才新建好的文件夹里。

【分析】:从表列中查一个数最简单的方法是从第1个数开始顺序查找,将要找的数与表列中的数一一比较,直到找到为止(如果表列中无此数,则应找到最后一个数,然后判定“找不到”)。

但这种“顺序查找法”效率低。

如果表列中有1000个数,且要找的数恰恰是第1000个数,则要进行1000次比较才能得到结果。

平均比较次数为500次。

折半查找法是效率较高的一种方法。

基本思路如下:
假如有已按由小到大排好序的9个数,a[1]~a[9],其值分别为1、3、5、7、9、11、13、15、17。

若输入一个数3,想查3是否在此数列中,先找出表列中居中的数,即a[5],将要找的数3与a[5]比较,a[5]的值是9,发现a[5]>3,显然3应当在a[1]到a[5]范围内,而不会在
a[6] 到a[9]范围内。

这样就可以缩小查找范围,甩掉a[6]到a[9]这一部分,即将查找范围缩小为一半。

再找a[1]到a[5]范围内的居中的数,即a[3],将要找的数3与a[3]比较,a[3]的值是5,发现a[3]>3,显然3应当在a[1]到a[3]范围内。

这样又将查找范围缩小一半。

再将3与a[1]到a[3]范围内的居中的数a[2]比较,发现要找的数3等于a[2],查找结束。

一共比较了3次。

如果表列中有n 个数,则最多比较的次数为int(log=n)+1。

建立有序数组a[N],flag=1,sign=1
显示a[N]
While(flag==1)
输入要查找的数据number
loca=0;top=0;bott=N-1
number 超出范围loca=-1
While(sign=1&&top<=bott)
mid=(bott+top)/2
number==a[mid)loca=mid
找到,显示结果
sign=0
bott=mid-1top=mid+1sign==1||loca==-1number 不在数组中
是否继续
T
F T F T F T
F T
F number<a[mid]flag=0
top,bott :查找区间两端点的下标;loca :查找成功与否的开关变量。

[程序二]:有一篇文章,共有3行文字,每行有80个字符。

要求统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

将编写好的程序以文件名count.c 保存在你刚才新建好的文件夹里。

for(i=0;i<3;i++)
输入文章第i 行
for(j=0;j<80&&text[i][j]!=’\0';j++)
‘A ’--’Z ’‘a ’--‘z ’‘0’--‘9’大写字母个数加1小写
字母个数加1数字
个数
加1
空格个数加1其他字符个数加1
输出大写字母、小写字母、数字、空格及其他字符的个数T F
T F
T F ‘ ’T F
[程序三]:打印出以下的杨辉三角形(要求打印出10行)。

将编写好的程序以文件名triangle.c 保存在你刚才新建好的文件夹里。

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
………………
【分析】:杨辉三角形是(a+b)n展开后各项的系数。

例如:
(a+b)0展开后为1 系数为1
(a+b)1展开后为a+b 系数为1,1
(a+b)2展开后为a2+2ab+b2系数为1,2,1
(a+b)3展开后为a3+3a2b+3ab2+b3系数为1,3,3,1
(a+b)4展开后为a4+4a3b+6a2b2+4ab3+b4系数为1,4,6,4,1
以上就是杨辉三角形的前5行,杨辉三角形各行的系数有以下的规律:
(1)各行第一个数都是1;
(2)各行最后一个数都是1;
(3)从第3行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列两个数之后。

例如第4行第2个数“3”是第3行第2
个数和第3行第1个数之后。

可以这样表示:a[i][j]=a[i-1][j]+a[i-1][j-1],
其中i为行数,j为列数。

使数组第一列和对角线元素为1
其他各元素为a[i-1][j-1]+a[i-1][j](用双重for循环)
输出二维数组的内容
[程序四]:编写一个程序:将用户从键盘上输入的一个不大于256的十进制正整数(应对输入的整数进行合法性的检查)转换成对应的八位二进制数输出。

将编写好的程序以文件名为DtoB.c保存在你刚才新建好的文件夹里。

【要求】:定义一个长度为8的一维数组来存放相应的二进制数,并且初始化初值为0。

将键盘输入的数n不断的除2(n%2)将余数保存在这个定义的数组里。

[程序五]:青年歌手参加歌曲大奖赛,有10个评委对她进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

将编写好的程序以文件名为sort.c保存在你刚才新建好的文件夹里。

相关文档
最新文档