实验六 数组的存储原理仿真      实验报告下载

一、实验目的

      通过对数组的赋值与操作,掌握数组的结构特点,及相关处理的算法设计。

      

      

二、实验内容

      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】