for(i=0; i<3; i++) for(j=0;j<3;j++) c[j]=a[j]+ b[j] ; for(i=0; i<3;i++) { printf(\; for(j=0;j<3;j++) printf(\, c[j]); }
printf(\; }
【解】程序第一段的功能是按行顺序输入数组a 的元素。程序第二段的功能是按行顺序输入数组b的元素。程序第三段的功能是顺序累加数组a和数组b的对应元素,并将和存于数组C的对应元素中。最后,按行顺序输出数组C的全部元素。 4.4 程序设计题
1.编程序,输入单精度型一维数组 a[10] ,计算并输出 a数组中所有元素的平均值。 【解】为了计算数组元素的平均值,首先要累计它的全部元素的和,然后除以数组元素的个数,即得数组元素的平均值。写成C程序如下: # include main()
{ int i, n=10; float s,a[10] ;
printf(\, n); for( i=0;i< n; i++) { scanf(\,&s); a= s; }
for(s=0.0,i=0;i printf(\平均值是%.2fn\, s); }
2.编程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
【解】将数组的元素逆序重新存放,就是将数组的首尾对应元素两两交换。简单地可用两个游标变量i和j,i是前端元素的下标,j是后端元素的下标,交换以这两个变量值为下标的数组元素。开始时,i的值为0,j的值为末元素的下标。每次交换后,i增1,j减1。继续交换的
31 / 80
条件是i { int a[10], i,j,t,n=10; printf(\, n); for(i=0;i t= a; a=a[j] ;a[j] =t; } for(i=0; i printf(\, a); printf(\; } 3.编程序,输入两个字符串(<40个字符) ,连接后输出(不准用系统函数) 。 【解】将字符串s2连接到字符串s1的计算过程可分两个步骤完成。首先找到字符串s1的末尾,然后参照字符串s2,将字符串s2的全部有效字符逐一复制到字符串s1,最后在字符串s1的末尾接上字符率结束标记符。完整程序如下: # include # define N 40 main() { char s1[N] ,s2[N]; int i,j; printf(\; scanf(\,s1); printf(\; scanf(\, s2); for(i=0; sl!=\; i++) ; for(j=0;s2[j]!=\;i++,j++) so=s[j] ; s1=\ printf(\=%sn\,sl); } 32 / 80 4.编程序按下列公式计算S的值(其中X1、X2、…、Xn由键盘输入): s=∑(xi-x0)(xi-x0) (其中x0是X1、x2、…、Xn的平均值) 【解】输入数组x的n个元素的值,按公式计算。程序首先输入n,设n<100,然后输入n个数据,接着求它们的平均值,最后按计算公式求出s,并输出。程序如下: # include # define N 100 main() { double x[N+1], s; int i,n; do { printf(\; scanf(\,&n); } while(<=0||n>=100); for(i=1; i<=n;i++){ scanf(\,&s);x=s; } for(s=0.0,i=1;i<=n; i++) s+=x ; x[0] = s/n; for(s=0.0, i=1;i<= n;i++) s+=(x-x[0])*(x-x[0]); printf(\, s); } 5.输入一个3X5的整数矩阵,输出其中最大值、最小值和它们的下标。 【解】输入一个二维数组,寻找二维数组的最大值和最小值。其中寻找最大值和最小值的工作可用两重循环实现,即按行按列考察二维数组的元素。程序如下: # include main() { int a[3][5], i,j,t,n=3, m=5, min,max, minrow, mincol, maxrow, maxcol; printf(\, n,m); for(i=0; i for( j=0;j 33 / 80 min=max=a[[0][0]; minrow=mincol=maxrow=maxcol=0; for(i=0;i max= a[j] ;maxrow= i;maxcol=j ; } if( a[j] min=a[j] ; minrow= i; mincol=j ; } } printf(\=a[%d][%d] =%d MIN= a[%d][%d] =%d n\, maxrow,maxcol,max,minrow,mincol,min) ; } 6.输入一个字符串,将其中的所有大写字母改为小写字母,而所有小写字母全部改为大写字母,然后输出。 【解】程序先输入字符率,然后顺序考察输入字符串中的字符,当发现是大写字母时,将它改写成对应的小写字母,而当它是小写字母时,就将它改写成对应的大写字母。若变量ch中的字符是大写字母,则与它对应的小写字母的表达式可以写成ch- \+\;类似地,若变量ch中的字符是小写字母,则与它对应的大写字母的表达式可以写成ch-\+\。完整程序如下: # include # define N 200 main() { char s[N] ; int i; printf(\; scanf (\,s); for(i=0; s!=\;i++) if(s >=\s=s -\+\; else if(s >=\s= s-\+\; printf(\=%sn\; } 34 / 80 7.设某班50名学生的三科成绩表如下: 课程一课程二课程三 ... ... ... 试编一个程序,输入这50个学生的三科成绩,计算并输出每科成绩的平均分。 【解】程序定义一个50行3列的二维数组,用于存储全班学生的成绩。程序顺序输入各个学生的三科成绩,然后按列的顺序,累计各科总分,并计算平均分。完整程序如下: # include # define N 50 # define M 3 main() {int score[N][M], i,j,t; double a[M]; printf(\; for(i=0;i< N; i++) for(j=0;j scanf(\,&t);score[j]=t; } for(j=0;j for(j=0;j printf(\课程%d的平均分是%.2fn\, j+1,a[j]); } 8.编一个程序,输入一个整型数据,输出每位数字,其间用远号分隔。例如,输入整数为2345,则输出应为: 2, 3, 4, 5。 【解】程序的主要工作是从输入整数分拆出它的十进制整数的各位数字,将分拆出来的各位数字存于数组中,然后将这些数字自高位到低位的顺序逐位输出。要将一个整数按十进制数的要求分拆,需用一个循环,每次循环求出被分拆数除以10的余数的办法来求出它的个位,每分拆出一位就将被分拆的数除以10。循环过程直至被分拆的数为0结束。完整程序如下: # include main() 35 / 80 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库高级语言程序设计试卷及答案解析(7)在线全文阅读。
相关推荐: