4.4 程序設(shè)計(jì)題
1.編程序,輸入單精度型一維數(shù)組 a[10] ,計(jì)算并輸出 a數(shù)組中所有元素的平均值。
【解】為了計(jì)算數(shù)組元素的平均值,首先要累計(jì)它的全部元素的和,然后除以數(shù)組元素的個(gè)數(shù),即得數(shù)組元素的平均值。寫(xiě)成C程序如下:
# include
main()
{ int i, n=10;
float s,a[10] ;
printf("Enter %d numbers! \n", n);
for( i=0;i< n; i++)
{ scanf("%f",&s); a[i]= s;
}
for(s=0.0,i=0;i
s /=n;
printf("平均值是%.2f\n", s);
}
2.編程序,輸入10個(gè)整數(shù)存入一維數(shù)組,再按逆序重新存放后再輸出。
【解】將數(shù)組的元素逆序重新存放,就是將數(shù)組的首尾對(duì)應(yīng)元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的數(shù)組元素。開(kāi)始時(shí),i的值為0,j的值為末元素的下標(biāo)。每次交換后,i增1,j減1。繼續(xù)交換的
條件是i
main()
{ int a[10], i,j,t,n=10;
printf("Enter %d numbers! \n", n);
for(i=0;i
for(i=0,j=n-1;i
}
for(i=0; i
printf("\n");
}
3.編程序,輸入兩個(gè)字符串(<40個(gè)字符) ,連接后輸出(不準(zhǔn)用系統(tǒng)函數(shù)) 。
【解】將字符串s2連接到字符串s1的計(jì)算過(guò)程可分兩個(gè)步驟完成。首先找到字符串s1的末尾,然后參照字符串s2,將字符串s2的全部有效字符逐一復(fù)制到字符串s1,最后在字符串s1的末尾接上字符率結(jié)束標(biāo)記符。完整程序如下:
# include
# define N 40
main()
{ char s1[N] ,s2[N];
int i,j;
printf("Enter stringl!\n");
scanf("%s",s1);
printf("Enter string2! \n");
scanf("%s", s2);
for(i=0; sl[i]!=’\0’ ; i++) ;
for(j=0;s2[j]!=’\0’ ;i++,j++)
so[i]=s[j] ;
s1[i]=’\0’
printf("sl=%s\n" ,sl);
}
4.編程序按下列公式計(jì)算S的值(其中X1、X2、…、Xn由鍵盤(pán)輸入):
s=∑(xi-x0)(xi-x0) (其中x0是X1、x2、…、Xn的平均值)
【解】輸入數(shù)組x的n個(gè)元素的值,按公式計(jì)算。程序首先輸入n,設(shè)n<100,然后輸入n個(gè)數(shù)據(jù),接著求它們的平均值,最后按計(jì)算公式求出s,并輸出。程序如下:
# include
# define N 100
main()
{ double x[N+1], s;
int i,n;
do {
printf("Enter n(<100)"); scanf("%d", &n);
} while(<=0||n>=100);
for(i=1; i<=n;i++){
scanf("%lf", &s);x[i]=s;
}
for(s=0.0,i=1;i<=n; i++)
s+=x[i] ;
x[0] = s/n;
for(s=0.0, i=1;i<= n;i++)
s+=(x[i]-x[0])*(x[i]-x[0]);
printf("s=%f\n", s);
}
5.輸入一個(gè)3X5的整數(shù)矩陣,輸出其中最大值、最小值和它們的下標(biāo)。
【解】輸入一個(gè)二維數(shù)組,尋找二維數(shù)組的最大值和最小值。其中尋找最大值和最小值的工作可用兩重循環(huán)實(shí)現(xiàn),即按行按列考察二維數(shù)組的元素。程序如下:
# include
main()
{ int a[3][5], i,j,t,n=3, m=5,
min,max, minrow, mincol, maxrow, maxcol;
printf("Enter %d*%d numbers !\n" , n,m);
for(i=0; i
}
min=max=a[[0][0]; minrow=mincol=maxrow=maxcol=0;
for(i=0;i
max= a[i][j] ;maxrow= i;maxcol=j ;
}
if( a[i][j]
}
}
printf("MAX=a[%d][%d] =%d MIN= a[%d][%d] =%d \n",
maxrow,maxcol,max,minrow,mincol,min) ;
}
更多軟考資料請(qǐng)?jiān)L問(wèn):考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |