实验4答案 数组

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

实验4 数组和字符串

一.实验目的

掌握数组及数组元素的概念、数组的定义、数组元素的赋值和引用;正确使用数值数组和字符数组,并掌握与数组有关的常用算法。

二.要点提示

1.数组是相关变量的有序集合,其中所有的变量具有相同的数据类型。

2.一维数组定义格式为:

类型说明符数组名[size]

3.数组的下标:

数组的下标从0开始,到size-1为止。

4.多维数组定义格式为:

类型说明符数组名[size1][size2]…[sizen]

5.字符串

字符串一般使用一维字符数组处理,实际上就是以空字符结尾的字符数组。

字符串常量是由一对双引号括起来的字符集合。

三.实验内容

1.一维数组的定义、赋值和引用

2.与数组有关的算法。

3.二维数组的定义,赋值和引用

4.字符数组的定义和使用

5.常用字符串处理函数的使用

四.实验步骤

读懂并输入程序,完成填空后输出结果,(下面程序中的中文注释可以不输入)

实验1. 建立一个一维数组,用来存放5名学生的成绩,输入成绩,并计算平均分。

#define N 5

main()

{

int a[5]; /* 数组定义语句 */

int i,sum=0;

float aver;

printf("\nInput 5 numbers:");

for (i=0; i<5; i++) {

scanf("%d", &a[i]); /* 输入数组元素 */

sum=sum+a[i];

}

aver=sum/5.0; /* 计算平均分 */

printf("\nThe average score is:%f", aver);

}

实验2. 设数组a 包括10个元素,下面程序的功能是求出a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行3个元素的形式输出。

例: b[1]=a[1]+a[0],…b[9]=a[9]+a[8]

main()

{int a[10],b[10],i;

printf("\nInput 10 numbers: ");

for (i=0; i<10;i++) /* 数组输入 */

scanf("%d", &a[i]);

for (i=1; i<10; i++)

b[i]=a[i]+a[i-1];/* 计算b数组中的元素 */

for (i=1; i<10; i++)

{ printf("%3d",b[i]);

if (i%3==0) printf("\n"); /* 每行打印3个数据 */

}

}

程序运行结果:

Input 10 numbers:1 2 3 4 5 6 7 8 9 10

3 5 7

9 11 13

15 17 19

实验3. 将一个数组中的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。提示:a[0]和a[n-1]交换, a[1]和a[n-1-1]交换…. 思考a[i]和a[n-1-i]交换的表达式怎么写?

#define N 5

main()

{ int a[N]={8,6,5,4,1}, i, temp;

printf("\nThe original array is:");

for (i=0; i

printf("%4d", a[i]);

for (i=0; i

{ 【 temp=a[i];

a[i]=a[N-1-i];

a[N-1-i]=temp;】

}

printf("\nThe new array is:");

for (i=0; i

printf("%4d",a[i]);

}

程序运行结果

The original array is: 8 6 5 4 1

The new array is: 1 4 5 6 8

实验4. 将两个字符串连接起来,不要用strcat函数。

main()

{

char s1[80],s2[40];

int i=0,j=0;

printf("\nInput the first string:");

gets(s1);

printf("\nInput the second string:");

gets(s2);

while (s1[i] !='\0')

【i++】;

while (s2[j] !='\0')

s1[i++]=【s2[j++]】; /* 拼接字符到s1 */

s1[i] ='\0';

printf("\nNew string: %s",【s1】);

}

程序运行结果:

Input the first string:China

Input the second string:Beijing

New string: 【Chinabeijing 】

实验5. 下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置(下标值);否则输出-1。

#include

main()

{ char c='a',t[50]; /* 字符数组定义语句 */

int n,k,j;

printf("\nInput a string:");

gets(t);

n=【strlen(t) 】; /* 得到该字符串的长度 */

for(k=0;k

if (t[k]==c) {j=k; break;}

else j=-1;

printf("\n Position is:%d",【j 】); /* 输出查询结果 */

}

程序运行结果如下:

Input a string:12345abcde

Position is : 【 5 】

再次运行程序:

Input a string:12345

Position is : 【 -1 】

五.作业

选择题

1.若有说明:int a[10];则对数组元素的正确引用是【 D 】

相关文档
最新文档