实验四 数 组
一、实验目的
数组是有序数据的集合,通过实验上机掌握一维和二维数组的使用,以及字
符串处理函数的使用方法。
二、实验要求
1. 掌握一维数组的定义和数组元素引用的正确方法。
2. 掌握二维数组的定义和数组元素引用的正确方法。
3. 熟悉在什么情况下使用数组,并熟练运用数组来解决实际问题。
4. 掌握字符串处理函数的使用方法。
5. 编写实验报告(四)。
三、实验内容
4-1 编写程序S4-1.C。计算fibonacci数列的前15个数,并将其存放到一维数
组f中,然后输出结果。
4-2 读程序S4-2.C,说明程序的功能和输出结果,然后执行程序,验证结果的
正确性。
源程序S4-2.C
main()
{
int a[3][4]={{4,6,3,-7},{5,2,7,-4}, {8,6,4,-1}};
int min, p, i, j;
for (i=0;i<=2; i++)
{ min=abs(a[i][0]);
p=0;
for(j=0;j<=3;j++)
if(abs(a[i][j])<min)
{ min=abs(a[i][j]);
p=j;
}
printf("%d\t (%d,%d)\n", a[i][p],i,p);
}
}
4-3 完善程序S4-3.C,使其能输出如下图形。
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
源程序S4-3.C
main()
{
static char a[]={ ′*′,′*′,′*′,′*′,′*′};
int i,j,k;
char space=′′;
for(i=0;i<5;i++)
{
}
}
4-4 用一维数组编写程序S4-4.C。从键盘上输入由5个字符组成的一个字符串,
然后输出该字符串。要求用两种方法实现:①按字符逐个输入/输出;②按
字符串输入/输出。
4-5 用二维数组编写程序S4-5.C。输入3个字符串,然后反向输出每个字符串
以及字符串的长度。
4-6 程序S4-6.C是查询某学生是否为该班学生的程序,试填空完成该程序。
源程序S4-6.C
#include <stdio.h>
main()
{char class[5][8]={"王小华","张三","赵四","向玲","丁一"};
int i, flag=0;
char name [8];
printf("请输入要查询的学生姓名:");
gets (name);
for(i=0;i<5;i++) /* 与初始化中的5个人进行比较 */
if ( )= =0) flag=1;
if ( )
printf("%s是这个班的。\n",name);
else
printf("%s不是这个班的。\n",name);
}
4-7 编写程序S4-7.C。用二维数组实现输出下面的杨辉三角形(要求输出前10
行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
┇
┇
4-8 从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中
的位置。若该字符不在a中,则打印“该字符不在a中”。试完善程序S4-8.C。
源程序S4-8.C
# include <stdio.h>
main()
{ char a[12]="abcdefklmnp",ch;
int i, top,bot,mid;
printf("Input a character \n");
scanf("%c",&ch);
printf("ch=%c\n",ch);
if (bot >top) printf("该字符不在a中\n");
}
4-9 不用strcat()函数,将两个字符串连接起来,试完善程序S4-9.C。
源程序S4-9.C
main()
{ char s1[80],s2[40];
int i=0,j=0;
printf("Enter s1:");
scanf("%s",s1);
printf("Enter s2:");
scanf("%s",s2);
printf("\nResult is:%s",s1);
getch();
}
4-10 程序S4-10.C的功能是找出数组x中的最小值和次小值,并分别将其与x[0]
和x[1]交换。调试程序,使其能够运行出正确的结果。
注意:不能增加行或删除行,也不能更改程序的结构,
源程序S4-10.C
main()
{ int x[]={5,8,7,6,2,7,3,9,0,4};
int i,t,m1=0,m2=0,min1=32767,min2=32767;
for(i=1;i<10;i++)
if(x[i]<min1)
{ min2=min1; m2=m1;
min1=x[i]; m1=i;
}
else if(x[i]<min2)
{ min2=x[i];
m2=i;
}
t=x[0];x[m1]=x[0];x[m1]=t;
t=x[1];x[m2]=x[1];x[m2]=t;
for(i=1;i<10;i++)
printf("%3d",x);
getch();
}
*4-11 编写程序S4-11.C,模拟用户注册和登录的过程,登录时要进行身份
验证。(注有“*”的实验题可以选做)