[设为首页]
中国-东莞·教育导航
  主页 | 教育资讯 | 推荐课程 | 公开课 | 考试 | 资格认证 | 外语 | 硕士考研 | 自考成考 | IT培训 | 金融财会 | 名校 | 学习资料
  导航:首页 - 数组和循环程序设计实验指导

数组和循环程序设计实验指导
作者:城市学习网 来源:xue.net 更新日期:2007-12-17 阅读次数:

数组和循环程序设计
一、实验目的
1.熟悉数组的定义、初始化、元素引用方法。
2.熟悉while、do-while、for语句的格式与功能,掌握循环程序设计的一般方法。
3.掌握使用单重循环处理一维数组元素的程序设计方法。
4.掌握使用循环结构处理数组中存放字符串的程序设计方法。
5.掌握使用二重循环处理二维数组元素的程序设计方法。
6.熟悉系统提供的字符串处理函数。
二、预习要求
1.复习while、do-while、for、break、continue语句的格式和功能。
2.复习一维数组和二维数组的定义与初始化方法。
3.复习字符型数组的定义和初始化方法。
4.复习字符串处理函数的调用格式和功能。
三、实验准备
【问题一】循环结构的程序设计
     编一个C程序,计算并输出数列:1、3.5…、2n-1、…的前n项之和,其中的n由键盘输入。(要求分别用for、while、do-while语句来完成)
【待填充的源程序参考清单】
方法一(用for语句实现)
    main()
   {long s,n,k, i;
     scanf("____________________",&n);
     k=2*n-1;
     _____________________;
     for(i=1;i<=k;i++,_________________) s+=i;
     printf("1+3+…+%1d=%1d\n",k,s)
    }
方法二(用while语句实现)
    main()
   { long s________________________,n,i=1;
      scanf("%1d",&n);
      while(_______________________)
     { s+=i;
        _____________________;
      }
      printf("1+3+…+%1d=%1d\n", 2*n-l,s);
    }
方法三(用do语句实现)
    main()
   { long s=0,n,i=___________________;
      scanf("%1d",&n);
      do
       { s+=i_____________________;
          i++;
        } while(____________________);
      printf("1+3+…+%1d=%1d\n",2*n-1,s);
   }
【问题二】一维数组及单重和二重循环的应用
编一个C程序,从键盘上输入n(n≤10)和 n个整数,存入数组a中。先依次输出各个数组元素的值(a[0]、a[1]、...);然后对数组a的所有元素值按从小到大的顺序重新排序;再依次输出各个数组元素的值(a[0]、a[1]…)。
【待填充的源程序参考清单】
    main()
   { int a[10],n,i,j,_________________;
      printf("input n=");
      scanf("%d",&n);
      printf("input array a[0]a[l]… a[%d]:\n",n-1);
      for(i=0;i<n;i++)
         scanf("%d",______________________);
      printf("before sort:array\n");
      for(i=0;i<n;i--)
         printf("%d",a[i]);
      printf("\n");
      for(i=0;i<_______________________;i++)
         { min=i;
             for(j=___________________;j<n;j++)
                 if(a[j]<a[min])_________________;
             ax=____________________;
             a[i]=a[min];
             ____________________=ax;
          }
      printf("after sort:array\n");
      for(i=0;i<n;i++)
         printf("%d", a[i]);
      printf("\n");
    }

【问题三】二维字符型数组及二重循环的应用
编一个C程序,从键盘上输入4个字符串,要求每个字符串的长度都要大于5、小于81。将这4个字符串按下列要求存入数组a[4][81]中。
    a[0][0],a[0][l],…a[0][80]中存放第1个字符串
     a[1][0],a[1][1],…a[1][80]中存放第2个字符串
     a[2][0],a[2][1],…a[2][80]中存放第3个字符率
     a[3][0],a[3][1],…a[3][80]中存放第4个字符串
先输出这四个字符串;然后按照下列要求输出新的五串字符:
     a[0][0],a[1][0],a[2][0],a[3][0]中存放的字符组成的第1串字符
     a[0][l],a[1][l],a[2][l],a[3][l]中存放的字符组成的第2串字符
     a[0][2],a[1][2],a[2][2],a[3][2]中存放的字符组成的第3串字符
     a[0][3],a[1][3],a[2][3],a[3][3]中存放的字符组成的第4串字符
     a[0][4],a[1][4],a[2][4],a[3][4]中存放的字符组成的第5串字符
【待调试的源程序参考清单】
     main()
    { char a[4][81];
     int i,j;
     for(i=0;i<4;i++)
       { printf("input NO.%d string:",i+1);
          scanf("%s",&a[ i]);
        }
     printf("\nold string:\n");/*输出原字符串*/
     for(i=0;i<4;i++)
        printf("NO.%d:%c\n",i+1,a[i]);
     printf("\nnew string:\n");/*输出新字符串*/
     for(i=0;i<4;i++)
        { printf("NO.%d:",i);
           for(j=0;j<5;j++)
               printf(”%c”,a[ i][ j]);
           printf("\n");
         }
    }
    【问题四】一维数组及单重循环的应用
    编一个C程序,从键盘上输入一个由10位二进制正整数组成的字符串,将其转换成一个+进制正整数输出。
    提示:设一个10位的二进制正整数s=a9a8a7a6a5a4a3a2a1a0 ,则s对应的+进制数可以使用下列两种公式来计算。
    公式一:
    s=a9*a9+a8*a8+a7*a7+a6*a6+a5*a5+a4*a4+a3*a3+a2*a2+a1*a1*a0*20
    注:其中的2i称为第i位的权。
    公式二:
    s=((((((((a9*2+a8)*2+a7)*2+a6)*2+a5)*2+a4)*2+a3)*2+a2)*2+a1)*2+a0
   【自己编写的原程序清单】
   【方法一】利用公式一。
            输入二进制正整数存入一个字符型数组,然后按照从前向后的顺序取出每位上的数字字符,处理成对应的二进制数字,按照下列公式将其加到+进制整数中:
           +进制整数=+进制整数+当前位的二进制数字*该位数字的权
           提示1:存放+进制整数的变量事先要清0。
           提示2:各位的权可以存放在某个数组中,需要时从该数组中获得某位上的权。
    【方法二】利用公式二。
            输入二进制正整数存人一个字符型数组,然后按照从前向后的顺序取出每位上的数字字符,处理成对应的二进制数字,按照下列公式将其加到+进制整数中:
           +进制整数一+进制整数*2+当前位的二进制数字
           提示:存放+进制整数的变量事先要清0。
四、实验步骤
【启动 Turbo-C,开始实验】
1.启动计算机,进入DOS操作系统,启动Turbo-C,进入主菜单。
2.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
【问题一程序的调试与运行】
3.输入问题一中给出的、实验准备阶段已经填充好的源程序参考清单。
4.选取“File”菜单条的下拉菜单项“Save”,将源程序存盘。
   【热键】<F2>
5.选取“Compile”菜单条的下拉菜单项“Compile to OBJ”,对源程序进行编译。
   【热键】<Aft>+<F9>
6.查阅并分析系统给出的语法错误信息,重新编辑修改源程序,转第4步。
   反复执行,直到源程序语法没有错误,转下一步。
7.选取“Compile”菜单条的下拉菜单项“Make EXE file”,对源程序进行连接。
    【热键】<F9>
若连接中有错误,重新编辑修改源程序,转第4步。
若没有错误,转下一步。
8.选取“Run”菜单条的下拉菜单项“Run”,运行目标程序。
    【热键】 <Ctrl>+<F9>
9.选取“Run”菜单条的下拉菜单项“User Screen”,查看运行结果。
    【热键】<ALt>+<F5>
看后按任一键返回Turbo-C的主菜单。
若运行结果有错,分析错误原因,重新编辑修改源程序,转第4步。
若运行结果正确,转下一步。
10.记录正确的程序清单。
【问题二程序的调试与运行】
11.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
12.输入问题二中给出的。实验准备阶段已经填充好的源程序参考清单。
13.重复前面的第4步~第9步,编译、连接、运行、调试问题二的程序。
14.记录正确的程序清单。
【问题三程序的调试与运行】
15.选取“Flie”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
16.输入问题三中给出的、待修改的源程序参考清单。
17.重复前面的第4步~第9步,编译、连接、运行、调试问题三的程序。
18.记录正确的程序清单。
【问题四(方法一)程序的调试与运行】
19.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
20.输入自己编写的、解决问题四(方法一)的源程序清单。
21.重复前面的第4步~第9步,编译、连接、运行、调试问题四(方法一)的程序。
22.记录正确的程序清单。
【问题四(方法二)程序的调试与运行】
23.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
24.输入自己编写的、解决问题四(方法二)的源程序清单。
25.重复前面的第4步一第9步,编译、连接、运行、调试问题四(方法Th)的程序。
26.记录正确的程序清单。
【退出Turbo-C,结束本次实验】
27.选取“File”菜单条的下拉菜单项“Quit”,退出Turbo-C,返回操作系统。
       【热键】<ALt>+X
28.分析实验过程,总结实验结果。


报 名 此 课 程 / 咨 询 相 关 信 息
【预约登门】 【网上咨询】 【订座试听】 【现在报名】
课程名称
数组和循环程序设计实验指导
真实姓名
* 性 别
联系电话
* E-mail:
所在地区
咨询内容

      

相关文章:
·Java事件处理模式 (2007-12-17)

Copyright© 2014 www.dgedu.com.cn 东莞教育在线 版权所有
中国·东莞
粤ICP备06023013号