一维数组程序设计

合集下载

C_C++语言程序设计基础-7-1一维数组

C_C++语言程序设计基础-7-1一维数组
(2)部分元素赋初值,未赋初始值的数组元素初值为0: int a[5]={5,4};
a[0]=5,a[1]=4,a[2]=0, a[3]=0, a[4]=0
(3)对全部元素赋初值时,可以不指定数组长度,系统自 动根据初值个数来决定数组长度。例如:
int a[ ]={0,1,2,3,4};等价 int a[5]={0,1,2,3,4};
今天教大家一个新的数据类型: 一个变量名称可以代表成百上千个 同种类型的数据,即数组。
源程序:从键盘输入3个整数,顺序(反序)输出。
#include<stdio.h> main() { int x1,x2,x3;
scanf("%d%d%d",&x1,&x2,&x3); pprriinnttff((""%%dd %%dd %%dd \\nn"",,xx13,,xx22,,xx31));; }
但不能省略[] int a={0,1,2,3,4}; 是错误的 (4)对数组进行初始化时,不允许初始化的元素个数超过 数组的长度,如: int a[5]={0,1,2,3,4,5}; 是错误的
数组课堂练习2:
14.若有定义语句:int m[5]={5,4,3,2,1},i=4;,则下面对m数组元素
long num[N]; short w[2*N]; 5. inintt ppeerrssoonn((1100));; 错误 6. int n=10, a[n]; 错误 7. float a[10.5]; 错误
7.1.2 一维数组元素的引用
数组必须先定义再引用
int a[5];
数组元素引用形式为: 数组名 [下标];
3/50

C语言程序设计PPT课件 第5章 数组程序设计

C语言程序设计PPT课件 第5章 数组程序设计
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
例5-3 用一维数组生成Fibonacci数列的前20项,并输出。
#include<stdio.h> void main() {
long int fib[21]; int i; fib[1]=1; fib[2]=1; for(i=3;i<=20;i++)
{
if(str[i]>='0'&&str[i]<='9')
digital[j++]=str[i];
i++;
}
digital[j]='\0';
printf("Output: %s\n",digital);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
/* program e5-6.c*/
5.2.1 字符##串iinncc的lluudd输ee<<入ssttrd输iniog出.h.h>>
}
for(i=0;i<N;i++) printf("%d ",a[i]);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
数组的初始化,是在定义数组的时对数组的各个元素赋初值。 1. 全部元素的初始化 格式
数据类型 数组名[数组长度]={数组全部元素值表} 数据类型 数组名[]={数组全部元素值表} int a[6]={10,20,30,40,50,60}; float r[]={12.5,-3.11,8.6}; 2. 部分元素的初始化 格式 数据类型 数组名[数组长度]={数组前部元素值表} int b[10]={1,2,3}

1.6编程基础之一维数组(15)

1.6编程基础之一维数组(15)

1.6编程基础之一维数组01:与指定数字相同的数的个数总时间限制:1000ms内存限制:65536kB描述输出一个整数序列中与指定数字相同的数的个数。

输入输入包含三行:第一行为N,表示整数序列的长度(N <= 100);第二行为N个整数,整数之间以一个空格分开;第三行包含一个整数,为指定的数字m。

输出输出为N个数中与m相同的数的个数。

样例输入样例输出02:陶陶摘苹果总时间限制:1000ms内存限制:65536kB描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。

苹果成熟的时候,陶陶就会跑去摘苹果。

陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。

假设她碰到苹果,苹果就会掉下来。

输入包括两行数据。

第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。

第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

样例输入样例输出来源NOIP2005复赛普及组第一题03:计算书费总时间限制:1000ms内存限制:65536kB描述下面是一个图书的单价表:计算概论28.9 元/本数据结构与算法32.7 元/本数字逻辑45.6元/本C++程序设计教程78 元/本人工智能35 元/本计算机体系结构86.2 元/本编译原理27.8元/本操作系统43 元/本计算机网络56 元/本JAVA程序设计65 元/本给定每种图书购买的数量,编程计算应付的总费用。

输入输入一行,包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。

《C语言程序设计课件》第四章-数组

《C语言程序设计课件》第四章-数组
提示:程序在读入数时将其存储在一个数组中, 然后通过数组反向开始一个接一个地显示出数组 元素。
#include <stdio.h> #define N 10 int main(void)
{ int a[N], i; printf("Enter %d numbers: ", N);
for (i = 0; i < N; i++)
for(i=0;i<1;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
a[0]
20
a[1]
02
a[2]
44
a[3]
55
a[4]
88
a[5]
99
for(i=0;i<5;i++) if (a[i]>a[i+1]) { ……}
for(i=0;i<4;i++) if (a[i]>a[i+1]) { ……}
4.2 一维数组
一维数组主要用来存储一组类型相同并且数量一定 的数据。其中,每个数据称为数组的一个元素。
4.2.1 一维数组定义 一维数组的定义形式如下: 类型名 数组名[常量表达式]; int x[100]; char string[10]; double data[10];
常量表达式给出了数组的长度,在C语 言中定义数组时必须确定数组的长度。
600
xxx[[[654]]]
700
xxx[[[765]]]
800
xxx[[[876]]]
900
xxx[[[987]]]

C语言程序设计 练习题参考答案 第四章 (1) 一维数组

C语言程序设计 练习题参考答案 第四章 (1) 一维数组
printf("%4d",a[i]);
printf("\n请输入要插入的整数,输入之后按回车键,如要结束请输入-1\n");
scanf("%d",&x);
}
}
/* 4.15 将十进制数转换成二进制数,并按位存到数组中。(限正整数) */
C语言程序设计 练习题参考答案 第四章 (1) 一维数组
/* 4.11 fibonacci数列,前15项 1,1,2,3,5,。。。。。*/
#include "stdio.h"
void main()
{
int f[15]={1,1}, i;
for(i=2;i<=14;i++) /* 计算 */
f[i]=f[i-2]+f[i-1];
printf("fibonacci数列,前15项\n"); /* 输出 */
for(i=0;i<=14;i++)
{
printf("%5d",f[i]);
if((i+1)%5==0)
for(i=0;i<=9;i++)
printf("%3d",a[i]);
}
/* 4.13 有序数列中插入若干个数,仍然保持有序 */
#include "stdio.h"
void main()
{
int a[100]={1,4,8,10};
int i,k,x,count=4;/* i,k 循环变量, x 输入整数,count 有多少整数*/

实验六 一维数组实验报告

实验六 一维数组实验报告

***软件类实验报告课程名称:C语言程序设计学号:姓名:班级:指导教师:开课学期:学院:***教务处⑷一维数组排序。

四、实验过程及内容:(运行结果请抓图到对应题目的下方)1. 先分析以下程序,写出运行结果,再上机检验。

2.程序填空题。

下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。

填空完成程序。

实验结果:3. 程序填空题。

有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。

下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。

填空完成程序。

实验结果:4. 程序改错题。

下面程序的功能是将数组中的数按从大到小排序后输出。

改正程序中的错误。

实验结果:5. 程序改错题。

某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

改正程序中的错误。

实验结果:6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。

编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现)输出结果的形式为:s=1234.5a数组和b数组定义如下:doublea[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5};doubleb[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9};五、实验小结。

一维、二维数组及应用程序设计习题

一维、二维数组及应用程序设计习题

一维、二维数组及应用程序设计习题1、 【字符统计问题】题目描述:试统计用户键盘输入的一串英文字符中每种英文字符个数。

题目要求:⑴相同英文字符的大小写形式视为同一种统计对象;⑵遇到任意非英文字符时统计终止;⑶输出数据时每行仅输出10个数据。

输入数据:abcdeABCDElKlhmn2输出数据:A(2) B(2) C(2) D(2) E(2) F(0) G(0) H(1) I(0) J(0)K(1) L(0) M(1) N(1) O(0) P(0) Q(0) R(0) S(0) T(0) U(0) V(0) W(0) X(0) Y(0) Z(0)2、 【约瑟夫(猴子选大王)问题】题目描述:有M(1000以内)个猴子围成一圈,每个有一个编号,编号从1到M 。

打算从中选出一个大王。

经过协商,决定选大王的规则如下:从第一个开始,每隔N(任意正整数)个,数到的猴子出圈,最后剩下来的就是大王。

题目要求:从键盘输入M 、N(均为正整数),试编程计算哪一个编号的猴子将成为大王。

输入数据:15 3 输出数据:5 200 55 93 3、 【行列互换问题】题目描述:试编程将一个二维数组行和列元素互换,存到另一个二维数组中。

例如:A =B = 4、 【矩阵初始化问题】题目描述:矩阵是线性代数中的重要概念及研究工具,在计算机算法设计中,我们常常选用二维数组之类的数据结构来描述矩阵。

下图是两个4×4的下三角方阵(即行列相等)初始化后的状态,请编程输出任意方阵(用户从键盘输入方阵的行列值)的这类初始化状态。

A 4×4 =B 4×4 =5、 【杨辉三角问题】题目描述:杨辉三角(出自其1261年所著的《详解九章算法》,也叫贾宪三角或帕斯卡三角),它可以简单解释为由两个未知数和的幂次方运算后按某个未知数的降幂排列(或另一未知数的升幂排列)后的系数表(二项式定理)。

比如(x+y)0=1,系数为(1);(x+y)1=x+y ,系数为(1、1);(x+y)2=x 2+2xy+y 2,系数为(1、2、1);(x+y)3=x 3+3x 2y+3xy 2+y 3,系数为(1、3、3、1)以及四次、五次、……等运算后所得的系数表,如下图(仅举5行):题目要求:⑴利用一维数组试求用户给定行数的杨辉三角形;⑵利用二维数组试求用户给定行数的杨辉三角形(请尽力严格按照上图要求的输出格式)。

《C语言程序设计》教案 第四章 数组—一维数组

《C语言程序设计》教案 第四章 数组—一维数组
for(i=1;i<=100;i++)
if(a[i]>average)
printf(“%f\n”,a[i]);
(2)在这里,a代表数组名,a[i]代表a数组中的一个元素,i是数组元素的下标,当i的值为1时,a[i]代表a[1];当i的值为2时,a[i]代表a[2]。在循环中当i从1变化到100时,a[i]也就逐个代表a[1]到a[100]。
if(a1>average)printf(“%f\n”,al);
if(a2>average)printf(“%f\n”,a2);
……
if(a100>average)printf(“%f\n”,a100);这样的程序是无法让人接受的。
解决上述问题方法:(1)在C语言中,我们可以定义一个名叫a的变量,它不代表一个单一的成绩值,而是代表整个成绩组。使用数组元素a[1]、a[2]、…、a[100]来代替a1、…、a2、…、a100,则程序就会简单得多,只需要用一个for循环就能完成100次比较:
每个数组元素也都可以作为单个变量使用。
3、一维数组(45分钟)
(1)一维数组的定义(先定义后使用)
格式:类型说明数组名[常量表达式]
例如:
int grades[10]; /*定义了一个数组grades,元素个数为10,数组元素类型为整型。*/
说明:1)数组的类型就是数组各个元素的类型,对于一个数组,所有元素的数据类型都是相同的。
(3)数组的下标:是数组元素的位置的一个索引或指示。
(4)数组的维数:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、三维、多维数组。
例如:int a[10];
定义了一个一维数组a,该数组由10个数组元素构成的,其中每一个数组元素都属于整型数据类型。

实验07-1参考答案

实验07-1参考答案

实验七-1 数组程序设计班级:学号:姓名:评分:一.【实验目的】1、熟练掌握使用一维数组编程的方法。

2、熟练掌握排序算术。

3、熟练掌握使用二维数组编程的方法。

4、进一步掌握C程序的调试方法和技巧。

二.【实验内容和步骤】1、程序调试题A.目标:进一步学习掌握程序调试的方法和技巧。

B.内容:从键盘输入一个正整数n(0<n<9)和一组(n个)有序的整数,再输入一个整数x,把x插入到这组数组中,使该组数据仍然有序。

改正程序中的错误,使其实现程序的功能。

(注:程序文件保存在“调试示例”文件夹中,文件名为error07_1.cpp)①调试正确的源程序清单#include <stdio.h>int main( ){int i, j, n, x, a[10];printf("输入数据的个数n:");scanf("%d", &n);printf("输入%d个整数:", n);for(i = 0; i < n; i++)scanf("%d", &a[i]);printf("输入要插入的整数:");scanf("%d", &x);for(i = 0; i < n; i++){if(x > a[i]) continue;j = n - 1;while(j >= i){ /* 调试时设置断点 */a[j+1] = a[j];j--;} /* 调试时设置断点 */a[i] = x;break;}if(i == n) a[n]=x;for(i = 0; i < n + 1; i++)printf("%d ", a[i]);putchar('\n');return 0;}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

C++程序设计 数组

C++程序设计 数组
例如定义: int b,c,a[5]; 数组a可引用的元素有:a[0],a[1],a[2],a[3],a[4]。 给元素赋值方法:
a[0]=0; a[1]=1;a[2]=2;a[3]=3 ; a[4]=4 ; for(i=0;i<5;i++) scanf(“%d”,&a[i]); 给变量b、c 赋值:b=a[0]+a[2]–a[4]; c=a[0+3]+a[1*2]; 其他合法引用:a[1*3],a[8%4],a[8/4],a[2]
数组不能对其整体引用,只能对具体元素进行引用。
格式: 数组名[下标表达式][下标表达式]
说明: (1)下标表达式可是整型常量或变量表达式。
例如: int a[2][3]; 合法引用:
a[0][1], a[i][j],a[3*2-5][6%3]等。 (2)同样在数组引用中要特别注意下标越界问题。
21
4.2.4 二维数组的初始化 二维数组初始化方式有两种方式 1.按行对二维数组初始化。例如: int a[2][3]={{1,2,3},{4,5,6}}; 2.按数组元素存放顺序对初始化。例如, int a[2][3]={l,2,3,4,5,6};
int a[10];
position a[0] 5
mmaaxx
i5nt2i1,m3 8ax27,p9o4s9it3io6n0;10↙
…026
for(i=0;i<10;i++)
i
cin>>a[i];
1…1230
position=0;
a[1] 2
a[i]
a[2] 13
mma[aaixx]
a[3] 8
a[i]

语言程序设计 一维数组的定义和初始化

语言程序设计 一维数组的定义和初始化

数组元素类型 数组名
定义了100个元素,分别为a[0]、a[1]、a[2]、……、a[99],相当于100个int类型 的变量,每一个称为数组中的一个元素,这些元素在内存中的存储示意如下。
a[0]
a[1]
a[2]
……
a[99]
C语言 一维数组定义
# include <stdio.h>
int main( )
C语 言 程 序 设 计
一维数组的定义和 初始化
C语言 数组类型的引入
例:设计程序实现,输入100个整数,反序输出。
01
分析:
02
因为要反序输出,所以直到最后一个数输入前我们无法输出,必须保存这100个整数的值。 应用前面所学的知识,我们进行如下的数据定义和输入函数调用。
a1
a2
a3
……
a100
int main( )
//下标值由大到小遍历 // 输出a[i]的值
C语言 一维数组元素的引用
如何使两个数组的值相等?
main()
{
int a[5] = {1,2,3,4,5}, b[5];
b = a; }
×
原因:数组名表示数组的首地址,其 值不可改变!
解决方法:
方法1:逐个元素赋值
b[0]=a[0];
b[1]=a[1]; b[2]=a[2];
C语言 一维数组的初始化
定义数组后,数组元素的初值是随机数,可以在定义数组的同 时对数组元素进行初始化。
int a[5] = { 12, 34 }; √ int a[5] = { 12, 34, 0, 0, 0 }; √ int a[5] = { 0 }; √ int a[ ] = { 12, 34, 56 ,78 ,9 }; √ int a[5] = { 12, 34, 56 ,78 ,9,18,20 }; ×

《c语言程序设计教学资料》第8章---数组

《c语言程序设计教学资料》第8章---数组
printf(“%d”, a[i]);
一维数组的初始化
不为自动数组初始化,数组中的元素值是不确定的 不为静态或外部数组初始化,则对数值型数组元素, 初值为0,而对字符型数组元素,初值为空字符 ‘\0’ 对数组元素初始化的实现方法:
1.在定义数组时对数组元素赋以初值。
例如: int a[10]={0,1,2,3,4,5,6,7,8,9}; 将数组元素的初值依次放在一对花括弧内。经过上 面的定义和初始化之后,a[0]=0,a[1]=1,a[2]=2, a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8, a[9]=9。
0
30
b1]
1
34
b[2]
2
38
b[3]
3

3c
b[4]
4
40
c
52
44
a
61
48
i
14678910235
4c
b[8]
8
50
b[9]
9
54
b[10]
10
58
c和a的值因数组越界编辑p而pt 被破坏了 b[11]
11
5c
二维数组程序举例
例: 将一个二维数组行和列元素互换,存到另一个二维数 组中。
数组名 [下标] 下标可以是整型常量或整型表达式。例如: a[0]=a[5]+a[7]-a[2*3]
注意
定义数组时用到的“数组名[常量表达式]” 和引用数 组元素时用到的“数组名[下标]” 是有区别的。 例如∶ int a[10]; // 定义数组长度为10
t=a[6]; //引用a数组中序号为6的元素
sizeof(数组名)
编辑ppt

《C语言程序设计》课件 第五章 数组

《C语言程序设计》课件 第五章 数组
若二维数组名a代表的起始地址为5948,则它的三个元 素a[0]、a[1]和a[2]分别对应了起始地址5948、5956和 5964。
a(5948)
a[2](5964) a[1](5956) a[0](5948) 图 5-10
a[2][1] (5968) a[2][0] (5964) a[1][1] (5960) a[1][0] (5956) a[0][1] (5952) a[0][0](5948)
return 0;
}
5.1.4一维数组程序举例
3.用选择法对输入的n个学生的单科成绩进行 从小到大排序。
编程思路: 直接选择排序的过程是:首先在所有数据中找出值 最小(最大)的数据,把它与第1个数据交换,然后 在其余的数据中找出值最小(最大)的数据,与第2 个数据交换......依次类推,这样,n个数据经过n-1轮 交换后可得到有序结果。
printf("%3d ",a[i]); printf("\n"); return 0; }
5.1.3 一维数组的初始化 5.1.3 一维数组的初始化
数组初始化常见的格式:
1.用大括号括起来的常量表达式列表,常量表达式 之间用逗号进行分隔: int a[10]={1,2,3,4,5,6,7,8,9,10};
注意:
不要将a[i][j]写成a[i,j],否则编译系统会将逗号分隔 符作为逗号运算符处理,即将a[i,j]视为a[j]。
5.2.2二维数组元素的引用
可以将二维数组看成是特殊的一维数组。
例如,二维数组a[3][2]可以看成是长度为3的一维数组, 所含的3个数组元素分别为:a[0]、a[1]、a[2]
for(i=0;i<3;i++) for(j=0;j<5;j++)

C语言程序设计 一维数组

C语言程序设计 一维数组

8
如果

我们对变量可以编号引用,例如a8可曰之“第8个头文字a 的变量”,那么

我们可以写出如下的代码
void main() { int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10, sum=0; for(int i=1; i<=10; i++) { scanf(“%d”, &ai ); sum=sum+ ai ; } float average=sum/10; for(int i=1; i<=10; i++) if (ai >=average) printf(“%d\n”, ai ); }
数组首地址
a[97]
a
a[1]
a[0]

11
数组的定义

数组的定义:我们定义变量一样定义数组名和类型,并定义数组 大小表示数组中有多少个元素。用方括号表示数组大小 这里是 数组的 数组 堆栈框 定义数组就象定义变量一样,同时为数组分配内存。 图。 main() main { char letters[4]; int values[3]; ….. } letters
庆幸

幸亏只输入10个学生成绩,如果要求输入10000个 学生 ?
我们已经知道了循环语句能以简洁的程序完成大量的重复操作,那么,能 不能用循环语句来顺序执行10个数a1、a2…a10个数与average的比较呢? 不能。因为我们无法让循环体中的语句在这次执行时是“if (a1 > average)”,下次执行时变成“if (a2> average)”,再下次又变成“if (a3 > average)”。循环做的是相似的操作,更确切地说,每次循环所执行 的语句必须相同,虽然执行的效果可以不同,例如:for(int i=1;i<=10;i++)printf(“%d”,i);在屏幕上输出的依次是1、2、3…10,但 那是靠语句中变量值的改变,而不是靠语句中变量名的改变来实现的:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实训六一维数组程序设计一、实训目标熟练掌握使用一维数组的编程方法和常用算法。

1、掌握数组的定义、输入和输出方法。

2、掌握下标变量的使用方法。

3、掌握求极值、分类统计、排序、查找、移动等常用算法。

4、进一步熟练程序的调试和测试方法。

5、*学习数组作为函数参数的编程方法。

二、语法练习1、数组是把同类型的变量组织在一起。

2、 int a[5]; 表示定义了 5 个整形类型的变量,分别为:a[2]、a[3]、 a[4] 、 a[0] ,各元素在内存中连续存放,数组名a表示数组在内存中的初始地址。

3、在C语言中对一维整型数组的正确定义为 D 。

A)int a(10); B)int n=10,a[n];C)int a[ ]; D)#define N 10int a[N];4、以下能对一维数组a进行初始化的语句是: ( C )A. int a[5]=(0,1,2,3,4,);B. int a(5)={} ;C. int a[3]={0,1,2};D. int a[5]={5*1};5、已知:int a[10]; 则对a数组元素的正确引用是( D )。

A、a[10]B、a[3.5]C、a(5)D、a[0]6、若有以下数组说明,则数值最大的和最小的元素下标分别是( B )。

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,127、若有以下数组说明,则i=4;a[a[i]]元素数值是( A )。

int a[6]={ 8,11,3,6,2,12};A.3B.2C.6D.118、设有定义int a[5],i;用for循环结构分别写出数组的输入和输出程序段。

for(i=0;i<5;i++)scanf(“%d”,&a[i]);for(i=0;i<5;i++)printf(“%d”,&a[i]);三、实训内容和步骤1、定义一个具有10个元素的一维整型数组,从键盘给各元素赋值,并以每行4个数的格式输出。

源程序#include<stdio.h>#define SIZE 10void main(){int i,a[SIZE];printf(“Input 10 integers:\n”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++){printf(“%d ”,a[i]);if((i+1)%4==0)printf(“\n”);}}语法错误:测试数据预期结果实际结果(连续运行时)调试过程:(指编译通过,无语法错误,但运行结果不对时)思考:(结合上一个实验内容)1)int a[10]; 未初始化时,各数组元素的值是多少?2)int a[10]={1,3};则a[0]~a[9]的值分别为:2、改错(教育在线上需改错的程序文件夹中err6_1.cpp),程序功能为:在数组a中查找与x相同的元素,如找到,输出x在数组中的下标。

(要求画出流程图)有错的源程序#include <stdio.h>int main(){int i, x, n;int a[n];printf("输入数组元素的个数:");scanf("%d", &n);printf("输入数组%d个元素:",n);for(i = 0; i < n; i++)scanf("%d", &a[i]);printf( "x= " ); //断点1scanf("%d", &x);for(i = 0; i < n; i++)if(a[i] != x) break; //断点2if(i!=n)printf( "没有找到与%d相等的元素!\n", d);elseprintf( "和%d相同的数组元素是a[%d]=%d\n", x, i, a[i]);return 0; //断点3}修改后的源程序#include <stdio.h>#define SIZE 100int main(){int i, x, n,flag;int a[SIZE];flag=1;printf("输入数组元素的个数:");scanf("%d", &n);printf("输入数组%d个元素:",n);for(i = 0; i < n; i++)scanf("%d", &a[i]);printf( "x= " ); //断点1scanf("%d", &x);for(i = 0; i < n; i++)if(a[i] == x) {printf(“与x相同的元素的下标为%d”,i);flag=0;}if(flag)printf(“没有与x相同的元素”);return 0; //断点3}语法错误:测试数据预期结果实际结果(连续运行时)调试过程:(指编译通过,无语法错误,但运行结果不对时,借助3个断点)在断点1处,查看数组各元素的值与你输入的数据是否一致3、从键盘输入一个班的成绩(最多20人),具体人数由键盘输入。

要求:找出最高分及序号、计算平均分、统计不及格的人数流程图#include<stdio.h>#define SIZE 20void main()int i,n,index,count;float a[SIZE],s,avg;printf(“Input n:\n”);scanf(“%d”,&n);printf(“Input %d grades:\n”,n);for(i=0;i<n;i++)scanf(“%f”,&a[i]);index=0;s=0;count=0;for(i=1;i<n;i++)if(a[i]>a[index])index=i;printf(“最高分=%f,序号=%d”,a[index],index); for(i=0;i<n;i++)s=s+a[i];avg=s/n;printf(“平均分=%f”,avg);for(i=0;i<n;i++)if(a[i]<60)count++;printf(“不及格人数=%d”,count);}源程序语法错误:测试数据预期结果实际结果(连续运行时)调试过程:(指编译通过,无语法错误后,但运行结果不对时)4、定义一个长度为6的数组,从键盘输入6个数据给数组,并显示;然后输入一个新数据x,原数组中数据逐次前移,即a[1]→a[0],a[2]→a[1],……,a[5]→a[4],新数据x→a[5],输出新的数组。

流程图#include<stdio.h>#define SIZE 6void main(){int a[SIZE],i,x,temp;printf(“Input 6 integers:\n”);for(i=0;i<6;i++)scanf(“%d”,&a[i]);for(i=0;i<6;i++)printf(“%d\n”,a[i]);printf(“Input x:\n”);scanf(“%d”,&x);for(i=1;i<6;i++)a[i-1]=a[i];a[5]=x;for(i=0;i<6;i++)printf(“%d”,a[i]);}语法错误:测试数据实际结果(连续运行时)调试过程:(指编译通过,无语法错误后,但运行结果不对时)思考:数据移动时,若按照:a[5]→a[4] ,……,a[2]→a[1] ,a[1]→a[0]的顺序编程,结果如何?a[4]=a[3]=a[2]=a[1]=a[0]=a[5]5、*(选做)输入一个班的成绩(最多20人),具体人数由键盘输入,按分数从高到低排序并输出。

流程图源程序#include<stdio.h>#define SIZE 20void main(){int i,n,index,k;float a[SIZE],temp;printf(“Input n:\n”);scanf(“%d”,&n);printf(“Input %d grades:\n”,n);for(i=0;i<n;i++)scanf(“%f”,&a[i]);for(k=0;k<n;k++){index=k;for(i=k+1;i<n;i++)if(a[i]>a[index])index=i;temp=a[index];a[index]=a[k];a[k]=temp;}for(i=0;i<n;i++)printf(“%f”,a[i]);}语法错误:测试数据实际结果(连续运行时)调试过程:(指编译通过,无语法错误后,但运行结果不对时)6、*(选作)把内容3中求最平均分的功能用一个函数去实现,如何改写?函数接口函数名:形参:返回值:源程序#include<stdio.h>float avg(float b[],int n);#define SIZE 20void main(){int i,n,index,count;float a[SIZE],s;printf(“Input n:\n”);scanf(“%d”,&n);printf(“Input %d grades:\n”,n);for(i=0;i<n;i++)scanf(“%f”,&a[i]);index=0;s=0;count=0;for(i=1;i<n;i++)if(a[i]>a[index])index=i;printf(“最高分=%f,序号=%d”,a[index],index);s=avg(a,n);printf(“平均分=%f”,s);for(i=0;i<n;i++)if(a[i]<60)count++;printf(“不及格人数=%d”,count);}float avg(float b[],int n){float all,result;int i;all=0;for(i=0;i<n;i++)all=all+b[i];result=all/n;return result;}语法错误:测试数据实际结果(连续运行时)调试过程:(指编译通过,无语法错误后,但运行结果不对时)四、分析与思考五、体会与建议。

相关文档
最新文档