实验5-数组答案
C++语言程序设计形考二实验五
C++语言程序设计形考二实验五上机实验5:数组应用程序设计一、实验内容有如下程序:#include<iostream>using namespacestd;intmain(){__________________ //定义具有6个元素的整形数组dint data,i=0.// data用于暂存每一个输入数据,i记录已插入数据的个数。
cout<<"请输入6个整数:";do{ //输入并处理6个数据cin。
data;int j=i。
//j是候选的插入位置while(j>0){ //若j==0,它就是第一个数据的插入位置,无需进入循环。
if(data>=d[j-1]) __________。
//若找到插入位置,退出循环。
d[j]=d[j-1]。
//否则数据后移一个位置j--;}d[j]=data。
//数据插入到位置j处i++。
//i记录已插入数据的个数}while(________)。
//若缺乏6个数据,连续输入。
for(_______________________) cout<<d[i]<<' ';//表现数组中的6个数据cout<<endl;return 0;}此程序输入6个整数保存到一维数组d中,使得输入的数据在数组中始终按从小到大的顺序排列,最后顺序输出数组中的数据。
例如,若输入是5 7 4 29 3,程序的输出是:2 3 4 5 79.二、实验要求读懂步伐,弥补步伐中下划线处缺失的部分,上机测试,直至产生精确的输出成效。
三、实验结果截图。
《程序设计基础—VB程序实验》
《程序设计基础—VB程序实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。
实验1 计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。
⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。
⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。
⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。
⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。
实验内容⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。
⑵学会用正确的指法进行输入,知道键盘上所有字符的输入。
⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。
⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。
⑸用文本方式或Word文档,写一段字数不少于300字的自我介绍,以1.doc命名并保存到上述文件夹中。
⑹将上述文件夹复制到ftp://10.10.9.222上。
实验2 常用软件的基本操作实验目的⑴了解Word功能,掌握Word的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。
⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在Word中插入图片、表格、艺术字、特殊符号等。
⑶了解Excel的功能,掌握Excel的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。
⑷掌握Excel的基本公式的使用,能够用公式进行基本计算。
掌握Excel中的图形制作方法,能够根据表格做出图形。
实验内容⑴将ftp上自己文件夹中的1.doc文件复制到桌面上,然后做如下处理:①将标题“自我介绍”居中;②将文章中第二段的内容进行分栏,要求中间有分割线;③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩;④任意插入一张图片;⑤在文章中的任意位置加底纹。
将做好的文档以2.doc命名并保存。
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。
实验5-数组答案
VB程序设计实验五实验目的●掌握一维数组和二维数组的操作●学习跟数组相关的控件:列表框和组合框复习1.列表框列表框(ListBox)控件允许用户查看和选择列表中的多个元素。
表5-11 列表框的常用属性和事件2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox)右边加上一个向下箭头的样式显示。
有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。
其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。
表5-13 组合列表框的常用属性和事件(1) Items.Count属性:列表框或组合框中项目数量。
最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。
(2) Text属性:被选定的选项的文本内容。
该属性只能在程序中设置或引用。
注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。
(3) Items.Add方法把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛")(4) Insert方法在指定位置插入一个项目。
格式:对象.Items.Insert(序号, 添加项内容)(5)Items.Remove方法从列表框中删除指定的项。
格式:对象. Items.Remove (选项)。
例如:ListBox1.Items.Remove ("华成")(6)Items.RemoveAt方法格式:对象.RemoveAt(Index)从列表框中删除指定的项。
Index表示被删除项目在列表框中的位置,从0开始。
实验5参考答案
实验5参考答案实验5参考答案5-1.c:求具有10个元素的一维数组中正数、负数和零的个数。
#includestdio.hvoidmain(){inti,m,n,z,num[10];/*m、n、z为三个计数器*/m=n=z=0;for(i=0;ii++){scanf(%d,num[i]);if(num[i]0)m++;elseif(num[i] 0)n++;elsez++;}printf(m=%d,n=%d,z=%d\n,m,n,z);}5-2.c:输入10个数,用选择排序法由小到大排序并输出。
#includestdio.hvoidmain(){inti,j,p,q,s,a[10];printf(\ninput10numb ers:\nfor(i=0;ii++)scanf(%d,a[i]);for(i=0;ii++){p=i;q=a[i];for(j=i+1; jj++)if(qa[j]){p=j;q=a[j];}if(i!=p){s=a[i];a[i]=a[p];a[p]=s;}printf(% d,a[i]);}}5-3.c:输入10个数,用冒泡排序法由小到大排序并输出。
#includestdio.hvoidmain(){inta[10];inti,j,t;printf(input10numbers:\nfor(i=0;ii++)scanf(%d,a[i]);for(j=0;jj++) /*一共9趟,j为0~8*/for(i=0;ii++)/*i为0~8-j*/if(a[i]a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(thesortednu mbers:\nfor(i=0;ii++)printf(%d,a[i]);printf(\n}5-4.c:教材P88第3题:从键盘上输入5行5列整型数组,并找出主对角线上元素的最大值及其所在行号。
#includestdio.hvoidmain(){inta[5][5],i,j,max,hh;/*hh用于存放最大值的行号*/for(i=0;ii++)for(j=0;jj++)scanf(%d,a[i][j]);max=a[0][0];hh=0;for(i= 1;ii++)if(maxa[i][i]){max=a[i][i];hh=i;}printf(最大值为:%d,行号为:%d\n,max,hh);}5-5.c:教材P88第5题:一个数如果恰好等于它的因子之和,这个数就称为完数,例如6=1+2+3。
习题五--数组
习题五--数组⼀、A类程序设计题1、求⼀个4x4矩阵对⾓线元素之和。
2、⽤数组的⽅法求Fibonacci数列的值(要求输出前20个数)。
3、将⼀个3x4矩阵转置(⾏列互换)存放。
4、将⼀个数组中的数按逆序存放,例如原来的顺序为8,7,6,4,2,要求改为2,4,6,7,8。
5、⽤选择法对10个整数进⾏降序排序。
6、⽤冒泡法对10个整数进⾏升序排序。
7、编写⼀个简单程序,要求:(1)从键盘上输⼊8个整数放⼊数组a[8]中(⽤for循环实现);(2)求出数组元素的最⼤值及数组的平均值。
8、求3×4矩阵中每⼀列元素的最⼤值并输出。
9、求4×4矩阵中每⼀⾏元素的最⼩值并输出。
10、某班有30个学⽣,进⾏了数学考试,编写程序将考试成绩输⼊⼀维数组,并求数学的平均成绩及不及格学⽣的⼈数。
11、有⼀个3x4矩阵,求出最⼤元素,以及其所在的⾏号和列号。
12、从键盘上输⼊10个实数,然后按输⼊顺序的逆序输出这10个数。
13、从键盘输⼊10个整数,找出其中最⼤值和最⼩值。
14、输⼊10个学⽣的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出。
15、输⼊字符串 s,统计出 s 中共出现了多少个数字字符。
⼆、B类程序设计题1、对⼀个已按由⼩到⼤排好顺序的整型数组,若从键盘输⼊⼀个数x,现要查询该数是否在此整型数组中,若存在则删除该数,否则显⽰“不存在”信息。
2、对⼀个已按由⼩到⼤排好顺序的整型数组,若从键盘输⼊⼀个数x,现要将该数插⼊到该数组中,使其插⼊后整个数组排序规律不变。
3、编写⼀程序,要求从键盘上输⼊10个整数放⼊⼀个数组中(⽤for循环实现),并编写求最⼤值的函数max,在主程序调⽤这个函数实现输出数组中10个整数的最⼤值,要求⽤数组名作为函数参数。
4、输⼊⼀个4⾏4列的⼆维数组,编程实现:(1) 求出其中的最⼤值和最⼩值及其对应的⾏列位置;(2) 求出对⾓线上各元素之和。
5、⽤筛选法求100之内的素数。
VB实验五答案
沈阳师范大学面向对象程序设计实验报告实验题目实验五数组和自定义类型学号姓名刘丽年级10级指导教师王飞提交时间10.24一、实验目的(1)掌握数组的声明、数组元素的引用。
(2)掌握固定长度数组和动态数组的使用差别。
(3)掌握数组常用的操作和常用算法。
(4)掌握列表框和组合框的使用。
(5)掌握自定义类型及数组的使用。
二、实验内容及要求(1)完成课堂讲授的两个示例例5.1和例5.4。
(2)完成实验E第1实验内容(教材p272)。
(3)完成课堂讲授的实例5.10和5.13(教材p113和教材p118)。
(4)完成实验E第7实验内容(教材p273)。
三、实验分析与设计例5.1 计算一个班100个学生的平均成绩,然后统计高于平均分的人数。
步骤1 启动VisualBasic6.0,创建一个“标准EXE”类型的应用程序,步骤2 设计界面:不需添加控件如图所示:步骤3 设置控件属性。
步骤4 事件及编程,如下所示:窗体事件Private Sub Form_Click()Dim mark(1 To 100) As IntegerDim aver!, n%, i%aver = 0For i = 1 To 100mark(i) = InputBox("输入第" & i & "位学生的成绩")aver = aver + mark(i)Next iaver = aver / 100n = 0For i = 1 To 100If mark(i) > aver Then n = n + 1Next iPrint "平均分:", aver, "高于平均分的人数:", nEnd Sub步骤5 单击“运行”按钮运行程序,若程序运行有错,则进入代码窗口中调试。
步骤6 保存文件,生成可执行文件。
例5.4 求一维数组中各元素之和、最小数组元素,并将最小数组元素与数组中第一个元素交换。
实验五 数组实验
实验五数组的使用一实验目的要求1 掌握数组的概念和使用方法。
2 掌握数组初始化的方法。
3学会字符数组和字符串的应用。
4 学会用数组名作函数的参数。
二有关概念1 只有静态数组和外部数组才能初始化。
2 引用数组时,对下标是否越界不作检查。
如定义int a[5];在引用时出现a[5],不给出错信息,而是引a[4]下面一个单元的值。
3 字符串放在字符数组中,一个字符串以‘/o’结束,有一些字符串函数如strcpy,strcmp,strlen等可以方便一进行字符串运算。
4 如有如下定义:char *str=“I love china”;表示 str是一个字符型指针变量,它的值是一个字符数据的地址。
不要认为str是字符串变量,在其中存放一个字串“I love china”。
5 用数组名作函数实参时,传到形参的是数组的首地址。
三实验内容和步骤1 定义三个数组int a[5];int b[2][2];char c[10];(1)分别在函数体外和函数体内对它们进行初始化,然后输出它们的值。
(2)在程序中再加一语句,输出a[5],b[2][2] ,分析结果。
(3)对C数组改为用赋值语句给各元素赋初值:c[0] ~ c[9]各元素分别为:…I‟, …‟, …a‟, …m‟, …‟, …b‟, …o‟, …y‟。
然后用printf(“%s”,c)输出字符串,分析结果。
参考程序如下:(1)main(){ int i,x,y;static int a[5]={1,2,3,4,5};static int b[3][2]={{3,4},{6,7},{9,5}}static char c[10]={ …i‟, …l‟, …p‟, …q‟, …k‟, …s‟, …d‟, …e‟, …a‟};for(i=0;i<5;i++)printf( “%5d”,a[i]);for(x=0;x<3;x++)for(y=0;y<2;y++)printf(“%5d”,b[x][y]);for(i=0;i<10;i++)printf(“%3c”,c[i]);}(2)结果无此值,在上面程序中要输出a数组第5个元素,和b数组的第3行第2例元素,应加此程序行:Printf(“%d”,a[4]);Printf(“%d”,b[2][1]);2 有一数组,内放10个整数,要求找出最小的数和它的下标。
c语言实验5数组总结与心得
c语言实验5数组总结与心得
通过本次实验,我对C语言中的数组有了更深入的了解。
数组是C语言中的一种非常重要的数据类型,有着广泛的应用。
在本次实验中,我主要学习了如何定义、初始化、访问和操作数组。
在定义数组时,需要确定数组的数据类型和元素个数。
例如,int a[10];定义了一个包含10个整数的数组。
在初始化数组时,可以通过下标为数组元素赋值。
例如,a[0]=1; a[1]=2;为数组的前两个元素赋值。
数组的访问和操作是数组应用的重点。
可以通过下标访问数组中的元素,例如,a[2]表示数组中的第三个元素。
同时,可以通过循环语句(for或while)来对数组进行操作。
例如,可以用循环语句来实现数组元素的求和、最大值、最小值等操作。
在进行实验的过程中,我遇到了许多问题。
其中,最大的问题是对数组下标的理解不够深入。
如果对数组下标理解不清楚,容易出现数组越界的错误。
同时,在进行数组操作时,需要注意数组的长度以及元素数据类型的匹配,否则也容易出现错误。
通过本次实验,我不仅掌握了C语言中数组的基本操作,还提高了自己的代码理解能力。
在以后的学习和工作中,我将继续深入学习数组的应用,提高自己的编程能力。
实验五 参考答案
实验五字符数组(参考答案)1、设计程序sy5-1.c,编写程序实现对4个字符串的升序排序。
算法分析:4个字符串的升序排序,和4个整数的排序一样,可以用冒泡法,唯一不同的是在两两比较时要用字符串的比较函数,而在条件满足时,交换的三条赋值语句,同样需要用字符串的赋值函数。
参考答案:# include <stdio.h># include <string.h>void main(){char str[20],s[4][20];int i,j;printf("Input 4 strings:\n");for(i=0;i<4;i++)//输入字符串gets(s[i]); //gets函数的参数s[i],表示第i行的首地址,即给第i行赋值for(j=0;j<3;j++) //用冒泡法处理字符串的排序for(i=0;i<3-j;i++)if(strcmp(s[i],s[i+1])>0) //strcmp字符串的比较函数{ strcpy(str,s[i]); //strcmp字符串的比较函数strcpy(s[i],s[i+1]);strcpy(s[i+1],str);}printf("The sorted string:\n");for(i=0;i<4;i++)printf("%s\n",s[i]); //可以用puts(s[i])代替}运行结果:2、设计程序sy5-2.c,写一程序,要求将字符串a的第n个字符之后的内容由字符串b替代,a,b,n由运行时输入。
算法分析:要将字符串a的第n个字符之后的内容由字符串b替代,这时把字符串看成数组来处理,a的第n个字符之后即字符数组下标为i=n开始用字符数组b[0],b[1]------b[j]---来替代,直到b数组的‘\0’结束,注意这个循环没有写入b数组的’\0’,所以赋值结束后,还得给字符数组a[i]赋值为’\0’。
实验5数组答案
C语言程序设计实验报告实验五使用数组的程序设计班级学号姓名一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。
(2)掌握字符数组的使用。
(3)掌握与数组有关的算法。
二、实验内容及步骤1、验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。
(1)某数列前两项为0,1,以后各项均为前相邻两项之和,输出该数列前20项。
#include<stdio.h>main(){long i,x[20];x[0]=0;x[1]=1;for(i=2;i<20;i++)x[i] =x[i-1]+x[i-2];for(i=0;i<20;i++)printf("% ld\t",x[i]);}输出结果:(2)从键盘输入N个自然数,然后按升序进行排列。
用“比较法”#include<stdio.h>#define N 10main(){int a[N],t,i,j;for(i=0;i<N;i++) /*本循环输入N个原始数据*/scanf ("%d", &a[i]);for(i=0;i<N-1;i++) /*本循环完成排序*/for(j=i+1;j<N;j++) /* x[i]与它后边所有元素逐一比较,大则交换*/if (a[j]<a[i]) {t=a[j];a[j]=a[i];a[i]=t;}for(i=0;i<N;i++) /* 输出排序后的数组*/printf(" %d",a[i]);}输出结果:2、完成以下程序,并进行调试(1)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:a)统计不及格人数并打印不及格学生名单;b)统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单;c)统计各分数段的学生人数及所占的百分比程序代码:#include<stdio.h>int F1(int i,int sum,int *a,int *counter){int j;printf("不及格学生名单:");for(j=1;j<i-1;j++){sum+=a[j];if(a[j]<60){printf("%3d",j);counter[0]++;}}return sum;}F2(int i,float average,int *a,int *counter){int j;printf("average=%f,成绩大于等于平均分的学生名单:",average);for(j=1;j<i-1;j++){if(a[j]>=average){printf("%3d",j);counter[11]++;}}}F3(int i,int *a,int *counter){int j;for(j=1;j<i-1;j++){if(a[j]<=10) counter[1]++;else if(a[j]>10&&a[j]<=20) counter[2]++;else if(a[j]>20&&a[j]<=30) counter[3]++;else if(a[j]>30&&a[j]<=40) counter[4]++;else if(a[j]>40&&a[j]<=50) counter[5]++;else if(a[j]>50&&a[j]<=60) counter[6]++;else if(a[j]>60&&a[j]<=70) counter[7]++;else if(a[j]>70&&a[j]<=80) counter[8]++;else if(a[j]>80&&a[j]<=90) counter[9]++;else if(a[j]>90&&a[j]<=100) counter[10]++;}printf("各分数段人数: 百分比:\n");for(j=1;j<=10;j++)printf("%d %f\n",counter[j],(float)(counter[j])/(i-2)); }main(){static int a[31],counter[12],flag;int i=1,j=1,sum=0;float average;printf("请输入学生成绩并以负值结束: ");do{scanf("%d",&a[i]);if(a[i]<0)flag=1;i++;}while(flag==0);sum=F1(i,sum,a,counter);printf("不及格人数=%d\n",counter[0]);average=(float)sum/(i-2);F2(i,average,a,counter);printf("大于等于平均分人数=%d\n",counter[11]);F3(i,a,counter);}运行结果:(2)编写一个程序,利用字符数组实现两个字符串的比较。
实验5数组习题及答案
实验 5 数组
班级: :
**: 日期:
一、实验目的
〔1〕掌握一维数组和二维数组的定义、赋值和输入输出方法; 〔2〕掌握字符数组和字符串函数的使用; 〔3〕掌握与数组有关的算法〔特别是排序算法〕。
二、实验容
1.阅读下面程序,写出程序运行结果,并且上机进展验证。
(1) #include "stdio.h" void main() { int i,n[4]={0,0,0,0}; for(i=1;i<4;i++) { if (i==3) break; n[i]=n[i-1]+1; } printf("n[i-1]=%d n[i]=%d\n",n[i-1],n[i]); }
2.程序填空〔根据题意在空白处填入适当的容,使程序变得完整。并上机进展调试验证〕
〔1〕程序说明:以下程序完成的是插入排序功能:数组 a 中存放一个递增数列,输入 一个整数*,将它插入到数组中,使之仍为一个有序数列。
#include "stdio.h" #define N 10 void main() {
〔4〕#include "stdio.h" void main() { int r[5]={1,2,3,4,5}; int i,j,a[5][5]; for(i=0;i<=4;i++) { for(j=i;j<=4;j++) a[i][j]=r[j-i]; for(j=0;j<i;j++) a[i][j]=r[i-j]; } for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%2d",a[i][j]); printf("\n"); } }
华南农业大学农科Java上机实验
实验1 创建、编译与运行Java程序17268 计算两个整数得与从键盘输入两个整数,计算并输出两个整数得与。
import java、util、Scanner;public class Main {public static void main(String[] args) {int a,b;Scanner input = new Scanner(System、in);a=input、nextInt();b=input、nextInt();int c = a + b;System、out、println(c);}}17269 输出两个整数中得较大得值从键盘输入两个整数,判断并输出两个整数中较大得值。
import java、util、Scanner;public class Main {public static void main(String[] args) {int a,b;Scanner input = new Scanner(System、in);a=input、nextInt();b=input、nextInt();if(a>b)System、out、println(a);elseSystem、out、println(b);}}实验2 基本数据类型、运算与表达式18135 在显示屏上显示指定字符要求编写一个程序,在显示屏上显示如下内容。
注:类名必须为Main(大写M) C:\ABC、TXT is "file"public class Main {public static void main(String[] args) {System、out、print("C:\\ABC、TXT is \"file\"");} }18136 计算圆得面积由键盘输入圆得半径,计算并输出圆得面积,结果保留2位小数。
注:类名必须为Main(大写M)import java、util、Scanner;import java、text、DecimalFormat;public class Main {public static void main(String[] args) {double a,b,c;Scanner input = new Scanner(System、in);a = input、nextDouble();b = 3、14159;c = a*a*b;System、out、println(new DecimalFormat("#、##")、format(c));}}18138 输出三位整数得各位数字从键盘输入一个3位得整数,要求按照:个位、十位与百位得顺序输出三个数字。
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、设计程序sy5-1.c,计算n门课程的平均分。
例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。
参考答案:includevoid main()double score[30]。
sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。
aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。
算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。
可利用两个下标变量i和XXX。
参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。
i++,j--)//逐一向中,交换。
直到已没有元素没交换t=a[i]。
a[i]=a[j]。
a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。
实验5数组1答案
实验5数组1答案实验数组1实验目的:1、进一步掌握循环结构的程序设计2、掌握在循环结构里面使用break、continue3、掌握一维数组的定义与使用实验内容:一、观察下列代码(有语法问题自己解决)1、利用无限循环输入数据,直到条件满足利用break跳出循环:#includeusing namespace std;int main( ){int x,sum=0;while(1){cin >> x;if(x <= 0)break;sum += x;}return 0;}2、利用continue语句实现输出1-100之间的偶数:#includeusing namespace std;int main(){for (int i = 0;i <= 100; i++){if (i % 2 != 0)continue;cout << i << ' ';}return 0;}二、编码训练1、利用break语句写一程序:循环从键盘输入数据并累加起来,直到输入的数为零时结束循环,打印累加结果。
(参考前面第1题) #includeusing namespace std;int main( ){int x,sum=0;while(1){cin >> x;sum += x;if(x == 0) break;}cout << "The sum is " << sum << endl;return 0;}2、利用continue语句写一程序:输出1-20之间不能被3整除的数。
(参考前面第2题)#includeusing namespace std;int main(){for (int i = 1;i <= 20; i++){if (i % 3 == 0)continue;cout << i << ' ';}return 0;}3、实现求6位学生c++的平均成绩。
实验(6)-数组-参考答案
实验(6)-数组-参考答案C语⾔程序设计实验教学(6)【实验⽬的】数组的应⽤是很重要的⼀章。
通过实验掌握⼀维数组的主要应⽤,并理解数组的存储。
对⼆维数组的处理要⽐较熟悉。
【实验要求】⼀维数组的题⽬要求全⾯掌握,应⽤循环结构完成⼀维数组的输⼊、处理和输出。
⼆维数组能够完成简单的数据处理和应⽤。
【实验课时】8.0【实验内容】⼀维数组:1、定义⼀个可以存放10个元素的int数组a,输⼊10个数,并逆序输出。
#include#includevoid main( ){int a[10], i; clrscr();printf("Please input array a :");for(i=0;i<10;i++)scanf("%d", &a[i]);/* 由键盘逐次输⼊值赋予数组各元素*/for(i=9;i>=0;i--) /* 变量i递减控制着数组元素倒序输出*/ printf("%5d", a[i]);}2、⽤数组来保存Fibonacci数列前20项数值,以每5个数据为⼀⾏进⾏输出。
#include#includevoid main( ){int i; long f[20]; clrscr();f[0]=1;f[1]=1;for(i=2;i<20;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<20;i++){if(i%5==0) printf("\n");printf("%10ld",f[i]);}}3、统计具有10个元素的⾃然数数组num中的奇数个数。
#include#includevoid main( ){int i,num[10],count=0; clrscr();for(i=0;i<10;i++){printf("enter NO %d : ",i+1);/*给予输⼊提⽰*/scanf("%d",&num[i]);if(num[i]%2!=0) count++;}printf("Count is:%d\n",count );}4、计算整数数组a中的最⼤值及其所在的下标。
实验 数组——参考答案
实验6 数组一、一维数组实验2、编程:输入长度为10得整型数组并输出;然后将其逆序存放后再输出。
例如:0 1 2 3 4 5 6 7 8 9#include<stdio、h>void main(){int i, j, a[10], t;printf("Input 10 number: ");for(i=0; i<10; i++) /*读入数据*/scanf("%d", &a[i]);printf("origin data: ");for(i=0; i<10; i++) /*输出原始数据*/printf("%d ", a[i]);printf("\n");for(i=0,j=9; i<j ; i++,j--) /*逆序存放*/{t=a[i];a[i]=a[j];a[j]= t;}printf("After reversed: "); /*输出逆序存放后得数据*/for(i=0; i<10; i++)printf("%d ", a[i]);printf("\n");}3、编程:输入n个(1<n<=10)正整数并保存到数组中,求出最大值、最小值、平均值,以及最大值、最小值在数组中得下标分别就是多少。
例如:5#include <stdio、h>void main(){int i, n , max, min, a[10], sum;float average;printf("Input n (1<n<=10): ");scanf("%d", &n);if(1<n && n<=10){printf("Input %d integer:", n); /*输入数据并求累加与*/for(i=0, sum=0; i<n; i++){scanf("%d", &a[i]);sum+=a[i];}average=(float)sum/n; /*求出平均值*/for(i=0, max=0, min=0; i<n; i++) /*求最大、最小值得下标*/{if(a[i] > a[max])max= i;if(a[i] < a[min])min= i;}printf("max=%-5d index=%d\n", a[max], max);printf("min=%-5d index=%d\n", a[min], min);printf("average=%、2f\n", average);}elseprintf("数据超出范围");}4、编程:青年歌手参加歌曲大奖赛,有10个评委对她(她)进行打分,试编程求这位选手得平均得分并输出(去掉一个最高分与一个最低分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB程序设计实验五实验目的●掌握一维数组和二维数组的操作●学习跟数组相关的控件:列表框和组合框复习1.列表框列表框(ListBox)控件允许用户查看和选择列表中的多个元素。
表5-11 列表框的常用属性和事件2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox)右边加上一个向下箭头的样式显示。
有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。
其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。
表5-13 组合列表框的常用属性和事件(1) Items.Count属性:列表框或组合框中项目数量。
最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。
(2) Text属性:被选定的选项的文本内容。
该属性只能在程序中设置或引用。
注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。
(3) Items.Add方法把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛")(4) Insert方法在指定位置插入一个项目。
格式:对象.Items.Insert(序号, 添加项内容)(5)Items.Remove方法从列表框中删除指定的项。
格式:对象. Items.Remove (选项)。
例如:ListBox1.Items.Remove ("华成")(6)Items.RemoveAt方法格式:对象.RemoveAt(Index)从列表框中删除指定的项。
Index表示被删除项目在列表框中的位置,从0开始。
例如:ListBox1.Items.RemoveAT(4)(7) Items.Clear方法格式:对象.Items.Clear用于清除列表框所有项目,例如:ListBox1.Items.Clear4.单选按钮、复选框和框架1)单选按钮(RadioButton)单选按钮以组的形式出现,允许选择其中一项。
•Text属性:按钮上显示的文本•TextAlign属性:文本对齐方式•Checked属性:表示单选按钮的状态,True ——被选定,False ——未被选定•Click事件:单击后,使Checked属性为True•CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。
2)复选框(CheckBox)与RadioButton具有相同属性和事件,之外还有:•CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色3)框架(GroupBox分组框)•Text属性:标题文本•Enabled属性:框架和其中的控件•Visible属性:为False时,框架及其所有控件都被隐藏起来。
框架可以响应Click和DoubleClick事件,但一般不需要编写事件过程。
实验内容1.参照下图界面,程序运行时,可根据用户的需要,设置字体的前景色、背景色、字体大小等,文本框中的文字会发生相应改变。
其中,字体、字体大小、字体效果、字体背景色、字体前景色分别为框架。
设计时,先建立框架,再将各个控件分别放入框架内,当移动框架时,里面的控件同时移动。
保存项目为shiyan5-1。
创建项目:1)双击工具箱的“容器”选项卡下的GroupBox按钮,在窗体上建立5个框架控件,分别将其Text属性设置为“字体”、“字体大小”、“字体效果”、“字体背景色”和“字体前景色”。
2)单击RadioButton按钮,在“字体”和“字体大小”框架中画出单选按钮,并设置其Text属性。
3)单击ListBox按钮,在“字体效果”框架中画出列表框,单击Items属性旁的按钮,输入列表项的内容(如“加粗”、“斜体”等),并每项内容之间按Enter键。
4)单击CheckBox按钮,在“字体背景色”框架中画出复选框,并设置其Text 属性。
其中,“Red”复选框的Checked属性值为True。
5)单击ComboBox按钮,在“字体前景色”框架中画出下拉列表框,其属性值通过Form_Load事件过程设置。
提示:(1)在通用声明段中声明6个变量R、G、B、rr、s、f,R、G、B分别用于保存字体背景红、绿、蓝色的设置,rr用于保存颜色,s用于保存字体大小,f用于保存字体。
Dim R%, rr%, G%, B%, s%, f$ '声明R、G、B、rr、s、f为窗体模块级变量在Form_Load事件过程中设置颜色的初始值,并添加“字体前景色”下拉列表中的列表项。
R = 255 : G = 0 : B = 0s = 9 : f = "宋体"ComboBox1.Items.Add("Black")‘在组合框中添加项目,第1项下标为0开始ComboBox1.Items.Add("White")ComboBox1.Items.Add("Yellow")ComboBox1.Text = "Black"‘设置当前选项为"Black"(2)“字体”框架中单选按钮的事件过程代码(其他字体事件过程参照该事件过程)Private Sub RadioButton1_Click(……) Handles RadioButton1.Click '单击“宋体”单选按钮f = "宋体"TextBox1.Font = New Font(f, s)End Sub其中,Font为字体类,设置字体使用New Font(字体名称字符串, 字号,字体效果)(3)在中,每一种颜色用一个整型数据来表示,可使用Color颜色结构中的FromArgb(x,y,z)函数来实现,或用颜色函数RGB(x,y,z),通过ColorTranslator类转换实现。
“字体背景色”框架中复选框的事件过程Private Sub CheckBox5_CheckedChanged( ……) Handles CheckBox5.CheckedChanged'单击“Red”复选框If CheckBox5.Checked = True Then‘要判断各个复选框的选定状态,颜色由R、G、B组成R = 255ElseR = 0End Ifrr = RGB(R, G, B)Textbox1.BackColor = System.Drawing.ColorTranslator.FromOle(rr)End Sub“字体前景色”框架中下拉列表框的事件过程如下:Private Sub ComboBox1_SelectedIndexChanged(…) Handles ComboBox1.SelectedIndexChanged '选择“字体前景色”下拉列表Select Case ComboBox1.TextCase "Black"Textbox1.ForeColor = Color.BlackCase "White"Textbox1.ForeColor = Color.WhiteCase "Yellow"Textbox1.ForeColor = Color.YellowEnd SelectEnd Sub“字体效果”框架中列表框的事件过程(SelectedIndexChanged事件过程)If ListBox1.SelectedIndex=0 ThenTextBox1.Font = New System.Drawing.Font(TextBox1.Font, FontStyle.Bold)End If也可以用Select Case 语句2.编写程序输出一个9行的“杨辉三角形”,如图4- 1错误!未找到引用源。
所示。
保存项目为shiyan5-2.图4- 1杨辉三角形提示:①杨辉三角形的形式:对角线和每行的第一列均为1,其余各项是它的上一行中同一列元素和其前面一个元素之和。
如下数据是一个5行的杨辉三角。
1 0 0 0 01 1 0 0 01 2 1 0 01 3 3 1 01 4 6 4 1a(i, j)=a(i-1, j)+a(i-1, j-1)②用Space函数确定数据之间的空格:Label1.Text = Label1.Text & a(i, j) & IIf(a(i, j) < 10, Space(3), Space(2))PrivateSub Button1_Click(sender As System.Object, e As System.EventArgs) HandlesButton1.ClickDim i, j, n, a(8, 8)n = 8For i = 0 To nFor j = 0 To iIf i = j Or j = 0 Thena(i, j) = 1ElseIf i<> 0 And j <> 0 Thena(i, j) = a(i - 1, j) + a(i - 1, j - 1)EndIfNextNextFor i = 0 To nLabel1.Text &= Space((n - i) * 2 + 2)For j = 0 To iLabel1.Text = Label1.Text &a(i, j) &IIf(a(i, j) < 10, Space(3), Space(2))NextLabel1.Text = Label1.Text &vbNewLineNextEndSub3.将数组下标为偶数的元素从小到大排序,其他元素不变。
保存项目为shiyan5-3 Private Sub Button1_Click( ……) Handles Button1.ClickDim a() As Integer = {90, 49, 23, 45, 11, 45, 67, 23, 68, 56}Dim i, j, n, temp As Integern = UBound(a)For i = 0 To nLabel1.Text = Label1.Text &a(i) &vbCrLfNext iFor i =__0__(1)____To (n \2 -1) * 2 ____(2)____step 2For j = _i+2___(3)____To __(n \2 )* 2__(4)____Step 2If ____(5)_a(i)>a(j)_____ Thentemp = a(i): a(i) = a(j): a(j) = tempEnd IfNext jNext iFor i = 0 To nLabel2.Text = Label2.Text &a(i) &vbCrLfNext iEnd Sub4.下面程序对产生的10个随机数进行排序,程序中有4个错误,请在相应的行上改正。