《程序设计基础》实验报告单
班级学号姓名实验时间实验地点实验题目实验六:数组实验目的掌握一维数组和二维数组的定义方法,以及其元素的访问形式
掌握用字符数组来处理字符串及字符串处理函数
学习利用数组来解决处理实际问题的方法实验要求
1. 掌握一维数组和二维数组的定义方法,以及其元素的访问形式
2. 掌握用字符数组来处理字符串及字符串处理函数
3. 学习利用数组来解决处理实际问题的方法实验内容
及
主要步骤编写一个函数:从键盘输入10个整数,用冒泡法对其进行排序,再在主函数中调用它,数组a不能直接引用,只能引用它的元素。数组名a代表该数组在内存中分配的一片连续存储空间的起始地址,是地址常量。(程序清单中的1程序)
2. 给定一串字符串,想截取其中一段字符。字符数组初始化问题:(1)char ch[]=
"JXCJDX"; 等价于char ch[]={'J','X','C','J','D','X','\0'};但不等价于char ch[]={'J','X','C','J','D','X'}。字符数组的输入和输出:(用格式符“%c”(用格式符“%s”;(用字符串输入输出函数gets 和puts。(程序清单中的3程序)
3. 找出三个字符串中的最小者,了解并掌握字符串处理函数的运用。不能通过赋值将一个字符串常量或字符数组中的字符串直赋给一个字符数组,但Strcpy可以实现。(程序清单中的4程序)
4. 数组作为函数参数:(数组元素作为函数实参;(数组名作为函数参数,形参变量形式上写成数组名,但本质上是一个指针变量,因此,在函数头部分对形参变量的类型说明时,无须具体指定形参二维数组的第一维长度,但第二维长度不能省略。(程序清单中的1,3,5程序)(程序5是求:输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,最后依次输出)
实验
程序清单
1. #include "stdio.h"
void main()
{
int i,a[6];
void sort (int p[],int n);
for(i=1;i<6;i++)
scanf("%d",&a[i]);
sort (a,6);
i=1;
while(i<6 )
printf("%d ",a[i++]);
}
void sort(int p[],int n)
{
int i,j,t;
for(i=2;i
for(j=i;j>1;j--)
if(p[j]>=p[j-1]) break;
else {t=p[j];p[j]=p[j-1];p[j-1]=t;}
}
2. #include "stdio.h"
void main()
{
int a[10][10],i,j;
for(i=0;i<=4;i++)
{
for(j=i;j<=8-i;j++)
{
a[i][j]=i+1;
a[j][i]=i+1;
a[8-i][j]=i+1;
a[j][8-i]=i+1;
}
}
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
3. #include "stdio.h"
#include
int fun3(char substr[],char str[],int loc,int len)
{
int k,n;
if(loc<1 ||loc>strlen(str) || len<=0)//判断输入的字符是否正确
{
substr[0]='\0';
return 0;
}
for(k=0,n=loc-1;k
substr[k++]=str[n++];
substr[k]='\0';
return 1;
}
void main ()
{
char substr[10], str[20];
int loc,len;
printf("请输入一段字符");
scanf("%s",str);
printf("请输入要截取的字符串的首位置和长度:");
scanf("%d%d",&loc,&len);
if