高级语言程序设计试卷及答案解析(7)

2019-03-28 22:32

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 ){

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


高级语言程序设计试卷及答案解析(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:前台规范性培训

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: