數(shù)組和循環(huán)程序設(shè)計實驗指導(dǎo)

字號:

數(shù)組和循環(huán)程序設(shè)計
    一、實驗?zāi)康?BR>    1.熟悉數(shù)組的定義、初始化、元素引用方法。
    2.熟悉while、do-while、for語句的格式與功能,掌握循環(huán)程序設(shè)計的一般方法。
    3.掌握使用單重循環(huán)處理一維數(shù)組元素的程序設(shè)計方法。
    4.掌握使用循環(huán)結(jié)構(gòu)處理數(shù)組中存放字符串的程序設(shè)計方法。
    5.掌握使用二重循環(huán)處理二維數(shù)組元素的程序設(shè)計方法。
    6.熟悉系統(tǒng)提供的字符串處理函數(shù)。
    二、預(yù)習(xí)要求
    1.復(fù)習(xí)while、do-while、for、break、continue語句的格式和功能。
    2.復(fù)習(xí)一維數(shù)組和二維數(shù)組的定義與初始化方法。
    3.復(fù)習(xí)字符型數(shù)組的定義和初始化方法。
    4.復(fù)習(xí)字符串處理函數(shù)的調(diào)用格式和功能。
    三、實驗準(zhǔn)備
    【問題一】循環(huán)結(jié)構(gòu)的程序設(shè)計
     編一個C程序,計算并輸出數(shù)列:1、3.5…、2n-1、…的前n項之和,其中的n由鍵盤輸入。(要求分別用for、while、do-while語句來完成)
    【待填充的源程序參考清單】
    方法一(用for語句實現(xiàn))
     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語句實現(xiàn))
     main()
     { long s________________________,n,i=1;
     scanf("%1d",&n);
     while(_______________________)
     { s+=i;
     _____________________;
     }
     printf("1+3+…+%1d=%1d\n", 2*n-l,s);
     }
    方法三(用do語句實現(xiàn))
     main()
     { long s=0,n,i=___________________;
     scanf("%1d",&n);
     do
     { s+=i_____________________;
     i++;
     } while(____________________);
     printf("1+3+…+%1d=%1d\n",2*n-1,s);
     }
    【問題二】一維數(shù)組及單重和二重循環(huán)的應(yīng)用
    編一個C程序,從鍵盤上輸入n(n≤10)和 n個整數(shù),存入數(shù)組a中。先依次輸出各個數(shù)組元素的值(a[0]、a[1]、...);然后對數(shù)組a的所有元素值按從小到大的順序重新排序;再依次輸出各個數(shù)組元素的值(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");
     }