一、实验目的
通过对数组的赋值与操作,掌握数组的结构特点,及相关处理的算法设计。
二、实验内容
1、题目:数组的赋值与打印
实验分析及提示:
程序1是数组的输入和输出代码,请阅读该代码并回答程序后面的问题。
程序1:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5];//没有初始化赋值;
int i;
for(i=0;i<10;i++) printf(“%d\n”,a[i]);//输出5个整数-----【1】
for(i=0;i<5;i++) scanf(“%d”,&a[i]);//输入5个整数--------【2】
for(i=0;i<10;i++) printf(“%d”,a[i]);//输入5个整数-------【3】
return 0;
}
1.1运行上述程序,语句【1】执行后的结果是什么?为什么会打印出这样的数值?将你的运行结果与其他同学对比一下,大家的结果都一样吗?
1.2 运行语句【2】,请输入5个整数,“12 23 34 45 56”,那么在运行语句【3】之后,输出了多少个数,分别抄写在下面,和其他同学对比一下,后五个数字一样吗?
1.3 你的数组越界了吗?你怎样知道数组越界了呢?应该如何修改语句【3】
2、题目:字符串的处理。
程序2是将字符串逆序排列的算法,请将空缺的语句填写完整。
程序2:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[100], c;
int i, j;
printf (”Enter string:”);
gets (str);
for ( i=0; 【1】; i++ );
i--;
for ( j=0; j<i 【2】, 【3】 )
{ 【4】;
str[i]=str[j];
【5】;
}
printf(”Output string:%s\n”, str);
return 0;
}
3.题目:求一个字符串的子串。
程序3:是求一个字符串的子串,输入m,n,求一个字符数组m和n之间的部分;
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[100], sub[100];
int m, n, k, p;
printf(”Enter string:”);
gets (str);
printf(”Enter m n:”);
scanf(”%d%d”, &m, &n);
for ( k=0; k<m &&【1】; k++ )
【2】;
for ( p=0; 【3】; k++, p++ )
【4】;
【5】; /* 在串sub的后面加上串结束标记 */
printf (”sub=%s\n”, sub);
}
三、实验方法
1、针对问题画出流程图(可不交);
2、按照流程图和输出要求,将程序补充完整,观察输出结果,并按照表格要求进行结果记录。
四、实验报告
1、回答问题。
根据程序1,请回答问题:
1.1运行上述程序,语句【1】执行后的结果是什么?为什么会打印出这样的数值?将你的运行结果与其他同学对比一下,大家的结果都一样吗?
___________________________________________________________________________________
___________________________________________________________________________________
1.2 运行语句【2】,请输入5个整数,“12 23 34 45 56”,那么在运行语句【3】之后,输出了多少个数,分别抄写在下面,和其他同学对比一下,后五个数字一样吗?
___________________________________________________________________________________
___________________________________________________________________________________
1.3 你的数组越界了吗?你怎样知道数组越界了呢?应该如何修改语句【3】
___________________________________________________________________________________
___________________________________________________________________________________
根据程序3,请回答问题:
3.1 输入字符串的时候,请输入“ABCDEFGHIJK”,这个字符串的长度是__________;
(1)输入m,n的时候,输入“3,5”,输出是什么_____________
(2)输入m,n的时候,输入“3,3”,输出是什么_____________
(3)输入m,n的时候,输入“5,3”,输出是什么_____________
(4)输入m,n的时候,输入“25,30”,输出是什么___________
3.2,如果在输入字符串之后,需要打印字符串的长度,应该添加哪一个语句。
________________________________________________________________________
3.3,如果在必须要求,输入的m,n落在字符串的内部,应该如何修改程序。
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
2、将程序2的空缺语句填写完整。
序号 | 语句 |
【1】 | |
【2】 | |
【3】 | |
【4】 | |
【5】 |