第五周 一维数组测试参考答案

合集下载

一维数组练习题

一维数组练习题

一维数组练习题题目一:数组元素反转描述:给定一个整数数组,将数组中的元素反转并输出。

要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中的元素,按照逆序输出。

解答:题目二:查找数组中的最大值和最小值描述:给定一个整数数组,找出数组中的最大值和最小值,并输出。

要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中的最大值和最小值。

解答:题目三:计算数组的和与平均值描述:给定一个整数数组,计算数组中所有元素的和及平均值,并输出结果。

要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中所有元素的和及平均值,结果保留两位小数。

解答:题目四:数组去重描述:给定一个整数数组,去除数组中的重复元素,并输出结果。

要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出去除重复元素后的数组。

解答:题目五:数组元素排序描述:给定一个整数数组,对数组中的元素进行排序,并输出结果。

要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出排序后的数组。

解答:题目六:数组元素查找描述:给定一个整数数组和一个目标值,判断目标值是否存在于数组中,并输出结果。

要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输入一个整数作为目标值;4. 若目标值存在于数组中,则输出"目标值存在于数组中",否则输出"目标值不存在于数组中"。

解答:以上为一维数组练习题的题目描述及解答,请根据题目所需完成相应的练习。

一维数组练习题

一维数组练习题

维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________A) int a[10]=(0,0,0,0,0);C) int a[ ]={0}; B) int a[10]={ };D) inta[10]={ 10*2};2 、以下一维数组 a 的正确定义是_________ 。

A) int a(10); B) int n=10,a[n];C) int n; D) #define SIZE 10 scanf("%d",&n); int a[SIZE];int a[n];3 、执行下面的程序段后 , 变量 k 中的值为 __________ 。

int k=3,s[2];s[0]=k;k=s[1]*10;A) 不定值B) 33C) 30 D) 104 、下列程序执行后的输出结果是main(){int a,b[5];a=0; b[0]=3;printf("%d,%d\n",b[0],b[1] );A) 3,0C) 0,3 }B) 3 0D) 3, 不定值5、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后a[1]和a[2]的值分别是_______________ 。

a[0] a[1] a[2] a[3]a[4]10 | 20 | 30 | 40 | 50|A) 20 和 30 C) 21 和 30 B) 20 和 31 D) 21 和 316、以下程序输出 a 数组中的最小值及其下标,在划线处应填入的是 _____________ main( ){ int i,p=0,a[10];for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=1;i<10;i++)if(a[i]<a[p]) ____________ ;printf("%d,%d\n",a[p],p);A) i=p C) p=j ,并输出低于平均分的学生B) a[p]=a[i]D) p=i7 、以下程序的输出结果是 ________ 。

实验5参考答案

实验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。

C语言 第五章 数组期末测试习题与答案

C语言 第五章 数组期末测试习题与答案
C.q中没有字符串结束符,长度不能确定;但p中有,长度为3。
D.p和q数组中都没有字符串结束符,故长度都不能确定。
正确答案:A
5、设有程序段:
#define N 3
#define M N+2
float a[M][N];
则数组a的元素个数和最后一个元素分别是()。
A.15,a[4][2]
B.15,a[3][5]
{
int i,j;
for(i=0;i<M;i++)
{
b[i]=ary[i][0] ;
for(j=0;j<N;j++)
if( (1) )
b[i]=ary[i][j];
}
}
int main()
{
int a[M][N]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[M],i;
#define N 5
int i;
char str[10], min[10];
gets(min);
for (i=1; i<N; i++)
{
gets(str);
if (strcmp(min,str>0)
(1) ;
}
printf("%s\n",min);
正确答案:strcpy(min,str)
fun(a,b);
for(i=0;i<M;i++)
printf("%4d",b[i]);
printf("\n");
return 0;
}
正确答案:ary[i][j]>b[i]或b[i]<ary[i][j]

一维数组作业参考答案

一维数组作业参考答案

1.编写程序,找出10个数中最大的数以及最大数所在的下标。

#include<iostream>using namespace std;int main(){ int a[10],max,xiabiao,i;for(i=0;i<10;i++)cin>>a[i];max=a[0];for(i=1;i<10;i++)if(max<a[i]){ max=a[i];xiabiao=i; }cout<<"最大数为:"<<max<<"其下标为:"<<xiabiao<<endl; return 0;}子函数实现:#include<iostream>using namespace std;void fun(int b[10]); ///函数声明int main(){int a[10],i;for(i=0;i<10;i++)cin>>a[i];fun(a); //函数调用return 0;}void fun(int b[10]) //函数定义{ int max,i,xiabiao;max=b[0];for(i=1;i<10;i++)if(max<b[i]){ max=b[i];xiabiao=i;}cout<<"最大数为:"<<max<<"其下标为:"<<xiabiao<<endl;}2. 编写程序,找出10个数中最大的数和最小数,将最大数与第一个数交换位置,最小数与最后一个数交换位置。

#include<iostream>using namespace std;int main(){ int a[10],i;for(i=0;i<10;i++)cin>>a[i];int max,min,r,t,temp;max=min=a[0];r=t=0;for(i=0;i<10;i++){if(max<a[i]) {max=a[i];r=i;}if(min>a[i]) {min=a[i];t=i;}}temp=a[0];a[0]=a[r];a[r]=temp;temp=a[9];a[9]=a[t];a[t]=temp;cout<<"最大值为:"<<max<<"最小值为:"<<min<<endl;cout<<"交换后数组为"<<endl;for(i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;return 0;}子函数实现#include<iostream>using namespace std;void fun(int b[10]); //函数声明int main(){ int a[10],i;for(i=0;i<10;i++)cin>>a[i];fun(a); // 函数调用cout<<"交换后数组为"<<endl;for(i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;return 0;}void fun(int b[10]) //函数定义{ int max,min,r,t,i,temp;max=min=b[0];for(i=0;i<10;i++){if(max<b[i]) {max=b[i];r=i;}if(min>b[i]) {min=b[i];t=i;}}temp=b[0];b[0]=b[r];b[r]=temp;temp=b[9];b[9]=b[t];b[t]=temp;cout<<"最大值为:"<<max<<"最小值为:"<<min<<endl;}3. 将一个数组中的值按逆序重新存放。

一维数组应用实验过程中遇到的问题及解决

一维数组应用实验过程中遇到的问题及解决

一维数组应用实验过程中遇到的问题及解决哎呀,今天我们来聊聊一维数组应用实验过程中遇到的问题及解决方法吧!这个问题可不简单,咱们得好好探讨探讨。

我们要知道一维数组是啥?简单来说,就是一堆数字按照顺序排在一起,就像我们排队买东西一样,先进先出嘛!那么,一维数组有哪些应用呢?比如说,我们可以用它来记录同学们的身高、体重、年龄等信息,还可以用它来模拟股票市场的走势等等。

但是,在实际操作过程中,我们可能会遇到一些问题,下面我就来给大家讲讲这些问题及解决方法。

我们来看看第一个问题:如何创建一个一维数组?这个问题可不能小觑哦,因为如果我们连一维数组都创建不好,后面的实验可就没法进行了。

其实,创建一维数组的方法有很多种,比如说我们可以直接用数组字面量来创建,也可以用new Array()来创建。

这里我给大家举个例子吧:```javascript// 使用数组字面量创建一维数组var arr1 = [1, 2, 3, 4, 5];// 使用new Array()创建一维数组var arr2 = new Array(1, 2, 3, 4, 5);```看到这里,大家是不是觉得很简单呢?不过,接下来还有一个问题可能会困扰大家:如何给一维数组赋值?这个问题可就有点难度了,因为我们要确保赋值的顺序和元素的位置是一致的。

不过别担心,这个问题也有解决办法。

我们可以使用下标来给一维数组赋值,例如:```javascript// 给一维数组arr赋值arr[0] = 1;arr[1] = 2;arr[2] = 3;arr[3] = 4;arr[4] = 5;```好了,现在我们已经知道如何创建和赋值一维数组了。

那么接下来我们来看看第二个问题:如何遍历一维数组?这个问题可是非常重要的哦,因为只有掌握了遍历方法,我们才能更好地操作和利用一维数组。

遍历一维数组的方法有很多种,比如说我们可以使用for循环来遍历,也可以使用forEach()方法来遍历。

高中信息竞赛-一维数组

高中信息竞赛-一维数组
目,如数列7,2,6,9,8,3,5,2,1可分为(7,2), (2,6,9),(9,8,3),(3,5),(5,2,1)5个子 序列,答案就是5,我们称2,9,3,5为转折元素。 Input:
输入第一行为n;第二行为n个数; Output:
输出所有的递增和递减子序列的数目 Sample Input:
输出:9_ 8_ 7_6_ 5_ 4_ 3_ 2_ 1_ 0
三、一维数组的初始化 在定义数组的同时给数组元素赋值。 注意: 1、对数组中的一部分元素列举初值,未赋值的部 分是0。
long a[10]= {0,1, 2, 3, 4, 5};
long a[10]= {0,1, 2, 3, 4, 5, 0, 0, 0, 0}; 2、不能给数ample Output
3
一维数组的定义和引用
数组是同一数据类型的一组值(10个 char 或15 个 long) ,在内存中顺序存放。
整个数组共用一个名字,而其中的每一项又称 为一个元素。
一、定义方式: 类型说明符 数组名[常量表达式];
定义类型 元素个数
long a[4]; // 表明a数组由4个int型元素组成
Input 输入一个数n(n<=20)
Output 输出最初的桃子个数
Sample Input 2
Sample Output 4
Description 阿姆斯特朗数:如果一个正整数等于其各个数字的立方和,
则该数称为阿姆斯特朗数(也称自恋数),如407=4^3+0^3 +7^3,试编程求出n(n<=10000)以内的所有阿姆斯特朗数。
#include<iostream> using namespace std; int main() {

一维数组试题

一维数组试题

C语言考试试题[一维数组]姓名:学号:成绩:一、填空题:(每题1分,共10分)1、数组是构成的集合。

2、数组元素被顺序连续地存放在内存中,并通过进行访问。

3、数组元素的下标从开始。

长度为n的数组中,最后一个元素下标为。

4、一维数组是最简单的数组,其定义形式是:。

5、一个C字符串是以结束的字符序列。

6、专门用于字符串的输入和输出的函数是。

7、float fv[]={0,4,5,12,-7,56.8,0};数组fv的长度是_________。

8、存储字符串“\0”占用________字节的存储单元。

9.有定义int a[]={4,6,78,3456,98,2,89};该数组元素最大的下标为___________。

二、单项选择题,请将答案写在下列答题卡中(每题2分,共24分 )。

1、以下正确的概念是()A、数组名的规定与变量名不相同。

B、数组名后面的常量表达式用一对圆括号括起来。

C、数组下标的数据类型为整型常量或整型表达式。

D、在C语言中,一个数组的数组下标从1开始。

2、对数组初始化正确的方法是:A、int a(5)={1,2,3,4,5};B、int a[5]={1,2,3,4,5};C、int a[5]={1…5};D、int a[5]={0,1,2,3,4,5};3、若有以下的数组定义:char x[]=”12345”; char y[]={…1‟,‟2‟,‟3‟,‟4‟,‟5‟};则正确的描述是:()A、x数组和y数组长度相同B、x数组长度大于y数组长度C、x数组长度小于y数组长度D、两个数组中存放相同的内容4、以下程序运行时,从键盘输入:AhaMA Aha<回车>,则下面程序的运行结果是()#include <stdio.h>main(){char s[80],c=‟a‟;int m=0; scanf(“%s”,s);while(s[m]!=‟\0‟){ if(s[m]==c) s[m]=s[m]-32;else if(s[m]==c-32) s[m]=s[m]+32;m++;}puts(s);}A、ahAMaB、AhAMaC、AhAMa ahAD、ahAMa ahA5、给出以下定义:char x[]=”abcdefg”; char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟,‟g‟};则正确的叙述为:()A 数组A和数组属于空数组B 数组X和数组Y的长度相同C 数组X的长度大于数组Y的长度D数组X的长度小于数组Y的长度6、下面程序的运行结果是()main(){char a[]=”morning”,t;int m,n=0;for(m=1;m<7;m++)if(a[n]<a[m]) n=m;t=a[n];a[n]=a[7];a[7]=a[n];puts(a);}A、mogninrB、moC、morningD、mornin7、字符数组C在内存中所占字节数是:()char c[]={“language”};A、9B、10C、11D、128、下列程序的输出结果是()main(){int n[2],m,k;for(m=0;m<2;m++) n[m]=m;k=2;for(m=0;m<3;m++) printf(“%d\n”,n[k]);}A、不确定的值B、3C、2D、19、在C语言中引用数组元素时,其数组下标的数据类型允许是()A.整型常量 B.整型表达式C.整型常量或整型表达式 D.任何类型表达式10.定义一个具有8个元素的整型数组,应使用的语句是()A.int a[8]; B.int a[2,4]; C. int a[]; D.int *a[8];11.字符串“w\x53\\\np\103q”长度是()A.7 B.9 C.15 D.1612.已知int cn=20;下列关于数组的定义正确的是()A.int a[cn]; B.char cmt[35.0];C.char nm[8]=”2014高考”;D.int x[31];三、程序分析题,写出下面各程序的输出结果。

数组练习题及答案

数组练习题及答案

数组练习题及答案问题1:数组的基本操作题目:编写一个程序,实现以下功能:1. 初始化一个整型数组,大小为10,所有元素初始化为0。

2. 将数组中的元素依次设置为1到10。

3. 输出数组中的所有元素。

答案:```c#include <stdio.h>int main() {int arr[10] = {0};for (int i = 0; i < 10; i++) {arr[i] = i + 1;}for (int i = 0; i < 10; i++) {printf("%d ", arr[i]);}return 0;}```问题2:数组的反转题目:编写一个函数,实现对整数数组的反转。

答案:```cvoid reverseArray(int arr[], int size) {int start = 0;int end = size - 1;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}}```问题3:数组的查找题目:编写一个函数,实现在数组中查找特定元素的索引,如果找到返回该元素的索引,如果未找到返回-1。

答案:```cint findElement(int arr[], int size, int element) {for (int i = 0; i < size; i++) {if (arr[i] == element) {return i;}return -1;}```问题4:数组的排序题目:使用冒泡排序算法对整数数组进行排序。

答案:```cvoid bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}```问题5:数组的动态扩展题目:编写一个函数,实现对数组的动态扩展,使其能够存储更多的答案:```cvoid dynamicArrayExpansion(int *arr, int *size, int capacity, int newElement) {if (*size >= capacity) {int newCapacity = capacity * 2;int *newArr = (int *)malloc(newCapacity *sizeof(int));for (int i = 0; i < *size; i++) {newArr[i] = arr[i];}free(arr);arr = newArr;capacity = newCapacity;}arr[(*size)++] = newElement;}```结束语:这些练习题涵盖了数组的基本操作、查找、排序和动态扩展等常见问题,希望能够帮助您更好地理解和掌握数组的使用。

一维数组选择题练习题

一维数组选择题练习题

一维数组选择题练习题第五章数组第一讲一维数组的定义和使用1.以下定义语句错误的是()A.int a[5]={1};B.int c[ ]={1,2,0,0,0};C.int b[3+3];D.int i=5,a[i];2.以下一维数组的定义方式,正确的是()A.int n=10;B.#define Max 10int a[n]; int a[Max];C.int a[8.5];D.int a[ ];3.以下选项中,不能正确赋值的是()A.char s1[10];s1=”Ctest”;B.char s2[ ]={‘C’,’t’,’e’,’s’,’t’};C.char s3[20]=”Ctest”;D.char s4[10]={“Ctest”};4.对赋值语句int b[10]={1,2,3,4,5};的正确理解是()A.将5个初值依次赋给b[1]至b[5]B.将5个初值依次赋给b[0]至b[4]C.5个初值依次赋给b[6]至b[10]D.因为数组长度与初值的个数不相同,所以此语句不正确5.在C语言中,数组的下标可以是()A.整型常量表达式B.整型表达式C.整型常量或整型表达式D.任何类型的表达式6.在C语言中,数组名表示()A.数组第1个元素的地址B.数组第2个元素的地址C.数组所有元素的地址D.数组最后一个元素的地址7.若有说明:int a[10];,则对a数组元素的正确引用是()A.a[10]B.a[3.5]C.a(5)D.a[10-10]8.以下能正确定义一维数组的选项是()A.int a[5]={0,1,2,3,4,5};B.int a={‘A’;’B’;’C’};C.int a[]={1,2,3,4,5};D.int a[5]=”01234”;9.执行下面的程序段后,变量k的值为()int k=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.1010.有如下程序:该程序的输出结果是()main(){ int a[6]={1,2,3,4,5,6},i,s=0;for(i=1;i<6;i++)s+=a[i];printf(“%d\n”,s); }A.18B.19C.20D.21二、填空题1.已知:int a[10]={1,2,3,4};若int型变量占4个字节,则数组a 在内存中所占的字节数是()。

第5章习题解答

第5章习题解答

第5章习题解答第5章数组【习题5-1】现有一实型一维数组A[12],其各元素值在内存中排列的顺序为:1.0,15.5,9.5,-23,8.4,66.5,7.1,22.0,54.5,-34,11.3,32.5,请按下列要求编写程序求答案。

(1)数组中元素值最小的数组元素。

(2)数组中元素值最大的数组元素。

(3)数组中某数组元素值等于另外两个数组元素值之和的等式。

(4)数组中某数组元素值等于另外两个数组元素值之差的等式。

程序如下:/*c5_1.c*/#includevoid main(){double a[12]={1.0,15.5,9.5,-23,8.4,66.5,7.1,22.0,54.5,-34,11.3,32.5};int i,j,k;double max,min;min=a[0];for(i=0;i<12;i++)if(min>a[i]) min=a[i];printf("min=%lf\n",min);max=a[0];for(i=0;i<12;i++)if(maxprintf("max=%lf\n",max);for(i=0;i<12;i++)for(j=0;j<12;j++)for(k=0;k<12;k++){if(i==j||j==k||k==i) continue;if(a[i]+a[j]==a[k])printf("%lf+%lf=%lf\n",a[i],a[j],a[k]);}for(i=0;i<12;i++)for(j=0;j<12;j++)for(k=0;k<12;k++){if(i==j||j==k||k==i) continue;if(a[i]-a[j]==a[k])printf("%lf-%lf=%lf\n",a[i],a[j],a[k]);}}【习题5-2】现有一实型二维数组A[4][3],其各元素值在内存中排列的顺序为:4.0,28.0,15.5,?9.5,?23.0,8.0,56.0,2.0,28.0,7.0,6.2,5.0请按下列要求写出各题的答案。

浙师大 C语言 实验7一维数组+答案

浙师大 C语言  实验7一维数组+答案
未改正错误之前,程序运行结果是(注意,最后一项——20,错误):
数组的下标应该从几开始?标出的三个错误语句行,应分别改为?
从0开始,
fib[1]= fib[2]= 1;//错误1fib[0]= fib[1]= 1;
for(i=3; i<=20; i++)//错误2for( i=2;i<20; i++)
for(i=1; i<=20; i++){//错误3for( i=0;i<20; i++)
改正后,程序运行结果是
【实验题2】程序填空:给定平面上10个点,求其中离原点最近的点。源程序用一维数组x存放这10个点的x坐标,用一维数组y存放相应的y坐标,即第i个点的坐标为(x[i], y[i])。用变量index记录最近点的下标。程序中使用距离的平方做比较:x*x+y*y。
for(i=0;i<5;i++)printf("%5d",a[i]);
printf("\n");
}
运行程序,输入1 2 3 4 5,结果为:
如果将Line 8改为“a[i]= a[i+1];”,则Line 7应改为:for(i=0; i<4; i++)
如果要求程序实现数组元素的顺时针转动,那么Line 6、Line 7、Line 8、Line 9应该如何修改?
for(i=0; i<4; i++)//Line7:前4个元素依次后移一位
a[4-i]=a[3-i];//Line 8:后移一位
a[0]=t;
//Line 9:将t中存放的最后一个元素放入首元素的位置

一维数组练习题

一维数组练习题

一维数组练习题一维数组练习题1、以下对一维数组a进行正确初始化的是__________。

A) int a[10]=(0,0,0,0,0); B) int a[10]={ };C) int a[ ]={0}; D) int a[10]={ 10*2};2、以下一维数组a的正确定义是________ 。

A) int a(10); B) int n=10,a[n];C) int n; D) #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3、执行下面的程序段后,变量k中的值为__________。

int k=3,s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 104、下列程序执行后的输出结果是__________。

main(){int a,b[5];a=0; b[0]=3;printf("%d,%d\n",b[0],b[1]); }A) 3,0 B) 3 0C) 0,3 D) 3,不定值5、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值分别是________。

a[0] a[1] a[2] a[3] a[4]┌──┬──┬──┬──┬──┐│ 10 │ 20 │ 30 │ 40 │ 50 │└──┴──┴──┴──┴──┘A) 20和30 B) 20和31C) 21和30 D) 21和316、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。

main( ){ int i,p=0,a[10];for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=1;i<10;i++)if(a[i]<a[p])_______________;< p="">printf("%d,%d\n",a[p],p);}A) i=p B) a[p]=a[i]C) p=j D) p=i7、以下程序的输出结果是________。

C语言实验报告实验五参考答案

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个整数,找出其中的最大数及其所在的下标。

一维数组 答案(1)

一维数组 答案(1)

第一题:#include<stdio.h>void main(){int a[10]={10,20,40,30,24,15,8,17,35,11},b[10],i,j;for(i=0;i<10;i++){printf("%d ",a[i]);j=9-i;b[j]=a[i];}for(j=0;j<10;j++){printf("%d ",b[j]);}printf("\n");}/*原数列是:10 20 40 30 24 15 8 17 35 11 逆序输出:11 35 17 8 15 24 30 40 20 10 Press any key to continue*/第二题:#include<stdio.h>#include<stdlib.h>void main(){int a[10],i,j,t;printf("产生的随机数列是:");for(i=0;i<10;i++){a[i]=rand()%90+10;printf("%d ",a[i]);}printf("\n按从大到小排序是:");for(i=0;i<9;i++)for(j=0;j<10-i-1;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");}/*产生的随机数列是:51 27 44 50 99 74 58 28 62 84 按从大到小排序是: 27 28 44 50 51 58 62 74 84 99 Press any key to continue*/第三题:#include<stdio.h>#define N 6void main(){int a[N];int i,j,t,x;printf("输入五个队员的年龄:");for(i=0;i<N-1;i++)scanf("%d",&a[i]);printf("\n输入新队员的年龄:");scanf("%d",&x);printf("\n新队员获得的队服号码:");for(i=0;i<N-1;i++)for(j=0;j<N-2-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<N-1;i++)if(x<a[i])break;printf("%d\n",i+1);}/*输入五个队员的年龄:22 24 35 22 25输入新队员的年龄:21新队员获得的队服号码:1Press any key to continue*/第四题:#include<stdio.h>void main(){int a[50],n,i,max,maxi;int sum=0,count=0;printf("输入学生人数:");scanf("%d",&n);printf("输入%d个学生成绩:\n",n);printf("序号:");for(i=1;i<=n;i++)printf(" %2d",i);printf("\n成绩: ");for(i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i];//计算总分if(a[i]<60)//若成绩不大于60,则不及格count++;}printf("最高分和学生序号为:");max=a[1];maxi=1;for(i=1;i<=n;i++){if(a[i]>max){max=a[i];maxi=i;}}//寻找最大值及其下标sum=sum/n;//计算平均成绩printf("%d %d\n",max,maxi);printf("平均成绩为:");printf("%d\n",sum);printf("不及格的人数为:");printf("%d\n",count);}/*输入学生人数:19输入19个学生成绩:序号: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 成绩: 88 78 77 96 86 75 84 85 63 52 56 63 64 87 95 98 85 84 99最高分和学生序号为:99 19平均成绩为:79不及格的人数为:2Press any key to continue*/。

实验5数组1答案

实验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)-数组-参考答案

实验(6)-数组-参考答案C语⾔程序设计实验教学(6)【实验⽬的】数组的应⽤是很重要的⼀章。

通过实验掌握⼀维数组的主要应⽤,并理解数组的存储。

对⼆维数组的处理要⽐较熟悉。

【实验要求】⼀维数组的题⽬要求全⾯掌握,应⽤循环结构完成⼀维数组的输⼊、处理和输出。

⼆维数组能够完成简单的数据处理和应⽤。

【实验课时】8.0【实验内容】⼀维数组:1、定义⼀个10个元素的int数组a,输⼊10个数,并输出。

main(){int i,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");}2、⽤数组来保存Fibonacci数列前20项数值,以每5个数据为⼀⾏进⾏输出。

main(){int i; long f[20];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]);}printf("\n");}3、计算整数数组num中的最⼤值及其所在的下标。

main(){int i,max,p,a[10];printf("please enter 10 data:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];p=0;for(i=1;i<10;i++)if(a[i]>max) {max=a[i];p=i;}printf("max is:%d\n",max);printf("point is:%d\n",p+1);}4、在包含10个整数的数组中找出最⼤者,并与第⼀个元素交换。

一维数组应用实验过程中遇到的问题及解决

一维数组应用实验过程中遇到的问题及解决

一维数组应用实验过程中遇到的问题及解决哎呀,今天我们来聊聊一维数组这个东西。

你知道吗,一维数组就像是我们生活中的购物车,可以装很多东西,但是只能在一个方向上移动。

那么,一维数组在我们的日常生活中有哪些应用呢?其实很广泛,比如我们在超市购物时,收银员用扫描枪扫一下商品的条形码,就会得到一个数字,这个数字就相当于是一个一维数组,表示商品的价格和数量。

再比如,我们在玩游戏时,需要控制角色在屏幕上移动,这时候就需要用到一维数组来存储角色的位置信息。

那么,在使用一维数组的过程中,我们可能会遇到哪些问题呢?别着急,我给大家一一道来。

我们来说说最简单的问题:如何创建一个一维数组?这可是个技术活儿,不过没关系,咱们一步一步来。

我们需要确定数组的大小,也就是说,我们需要知道数组可以容纳多少个元素。

然后,我们可以使用一些特殊的符号来表示数组的开始和结束。

比如,在C语言中,我们可以用大括号{}来表示数组的范围;在Python中,我们可以用方括号[]来表示数组的范围。

下面是一个C语言的例子:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5}; // 创建一个可以容纳5个整数的一维数组for (int i = 0; i < 5; i++) {printf("%d ", arr[i]); // 输出数组中的元素}return 0;}```接下来,我们来说说如何给一维数组赋值。

这个问题可不能小看,因为如果给错了值,程序可能会出现错误。

给一维数组赋值的方法有很多种,这里我给大家介绍一种比较常用的方法:通过循环给数组的每个元素赋值。

下面是一个Python的例子:```pythonarr = [0] * 5 # 创建一个可以容纳5个整数的一维数组,并将所有元素初始化为0 for i in range(5):arr[i] = i + 1 # 将数组中的每个元素赋值为其下标加1print(arr) # 输出数组中的元素```除了这些基本操作之外,我们在使用一维数组的时候还可能会遇到一些其他的问题。

一维数组选择题练习题

一维数组选择题练习题

第五章数组第一讲一维数组的定义和使用1.以下定义语句错误的是()A.int a[5]={1};B.int c[ ]={1,2,0,0,0};C.int b[3+3];D.int i=5,a[i];2.以下一维数组的定义方式,正确的是()A.int n=10;B.#define Max 10int a[n]; int a[Max];C.int a[8.5];D.int a[ ];3.以下选项中,不能正确赋值的是()A.char s1[10];s1=”Ctest”;B.char s2[ ]={‘C’,’t’,’e’,’s’,’t’};C.char s3[20]=”Ctest”;D.char s4[10]={“Ctest”};4.对赋值语句int b[10]={1,2,3,4,5};的正确理解是()A.将5个初值依次赋给b[1]至b[5]B.将5个初值依次赋给b[0]至b[4]C.5个初值依次赋给b[6]至b[10]D.因为数组长度与初值的个数不相同,所以此语句不正确5.在C语言中,数组的下标可以是()A.整型常量表达式B.整型表达式C.整型常量或整型表达式D.任何类型的表达式6.在C语言中,数组名表示()A.数组第1个元素的地址B.数组第2个元素的地址C.数组所有元素的地址D.数组最后一个元素的地址7.若有说明:int a[10];,则对a数组元素的正确引用是()A.a[10]B.a[3.5]C.a(5)D.a[10-10]8.以下能正确定义一维数组的选项是()A.int a[5]={0,1,2,3,4,5};B.int a={‘A’;’B’;’C’};C.int a[]={1,2,3,4,5};D.int a[5]=”01234”;9.执行下面的程序段后,变量k的值为()int k=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.1010.有如下程序:该程序的输出结果是()main(){ int a[6]={1,2,3,4,5,6},i,s=0;for(i=1;i<6;i++)s+=a[i];printf(“%d\n”,s); }A.18B.19C.20D.21二、填空题1.已知:int a[10]={1,2,3,4};若int型变量占4个字节,则数组a在内存中所占的字节数是()。

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

一维数组的测试
(1)在下面的一维数组定义中,哪一个有语法错误。

(C)
A. int a[]={1,2,3};
B. int a[10]={0};
C. int a[];
D. int a[5];
(2)在下面的字符数组定义中,哪一个有语法错误。

(D)。

A. char a[20]=”abcdefg”;
B. char a[]=”x+y=55.”;
C. char a[15];
D. char a[10]=’5’;
(3)填空
⏹在C++中存储字符串”abcdef”至少需要___7_____个字节。

⏹在C++中存储字符串”a+b=c”至少需要____6____个字节。

(4)从键盘上输入一个字符串,假定字符串的长度不超过80,分类统计该字符串中数字0-9的个数。

#include<iostream>
using namespace std;
int main()
{
char s[81];
int num[10]; //用数组存放0-9出现的次数
int i;
for(i=0; i<10; i++)
num[i]=0; //初始化为0
cout<<"输入一个字符串:";
cin.getline(s,81,’\n’);
for(i=0;s[i];i++)
if(s[i]>=’0’ && s[i]<=’9’)
num[s[i]-‘0’]++;
for(i=0;i<10;i++)
cout<<”数字”<<i<<”出现的次数:”<<num[i]<<endl;
return 0;
}
简答题:(参考大课课件)
1、数组的定义?
2、应用数组的优点?
3、数组的每个元素在内存的存放特点是什么?数组名其实就是保存了什么的地址?
4、在使用数组元素值的时候是否一次只能使用一个元素?
5、数组下标是否只能使用整型的常量、表达式、变量?能否使用字符类型,为什么?。

相关文档
最新文档