3. 編程題
請編寫函數(shù)fun(),該函數(shù)的功能是:移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從p到n-1(p≤n-1)的數(shù)組元素平移到數(shù)組的前面。
例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值為6。移動后,一維數(shù)組中的內(nèi)容應(yīng)為7,8,9,10,10,11,12,13,14,15,1,2,3,4,5,6。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include
#define N 80
void fun(int *w, int p, int n)
{
}
main()
{
int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i, p, n=15;
printf("The original data:\n");
for(i=0;i printf("%3d",a[i]); printf("\n\nEnter p: "); scanf("%d",&p); fun(a,p,n); printf("\nThe data after moving:\n"); for(i=0;i printf("%3d",a[i]); printf("\n\n"); } 答案及評析: void fun(int *w, int p, int n) { int i,j,t; for(i=p;i<=n-1;i++) /*循環(huán)右移n-p次*/ {t=w[n-1]; for(j=n-2;j>=0;j--) /*實(shí)現(xiàn)循環(huán)右移*/ w[j+1]=w[j]; w[0]=t; } } 【解析】本題采用"循環(huán)右移"的算法。和我們在前面分析的稍有不同的是,一個(gè)是整型數(shù)組,一個(gè)是字符型數(shù)組。 2011計(jì)算機(jī)等級二級C語言模擬試題及答案匯總 計(jì)算機(jī)等級考試二級C語言歷年真題匯總(2005-2010)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |