首页>计算机>软件水平考试>模拟试题>正文
软件设计师课后练习题:第四章习题解答

www.zige365.com 2008-11-11 17:24:53 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
  4.4  程序设计题
 
    1.编程序,输入单精度型一维数组 a[10] ,计算并输出 a数组中所有元素的平均值。
     【解】为了计算数组元素的平均值,首先要累计它的全部元素的和,然后除以数组元素的个数,即得数组元素的平均值。写成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+= a[i] ;
     s /=n;
     printf("平均值是%.2f\n", s);
     }

    2.编程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
      【解】将数组的元素逆序重新存放,就是将数组的首尾对应元素两两交换。简单地可用两个游标变量i和j,i是前端元素的下标,j是后端元素的下标,交换以这两个变量值为下标的数组元素。开始时,i的值为0,j的值为末元素的下标。每次交换后,i增1,j减1。继续交换的
条件是i    # include
        main()
       { int a[10], i,j,t,n=10;
         printf("Enter %d numbers! \n", n);
     for(i=0;i         scanf("%d",&a[i] );
       for(i=0,j=n-1;i      t= a[i]; a[i]=a[j] ;a[j] =t;
       }
       for(i=0; i       printf("%d\t", a[i]);
       printf("\n");
       }

    3.编程序,输入两个字符串(<40个字符) ,连接后输出(不准用系统函数) 。
      【解】将字符串s2连接到字符串s1的计算过程可分两个步骤完成。首先找到字符串s1的末尾,然后参照字符串s2,将字符串s2的全部有效字符逐一复制到字符串s1,最后在字符串s1的末尾接上字符率结束标记符。完整程序如下:
      # 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.编程序按下列公式计算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("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.输入一个3X5的整数矩阵,输出其中最大值、最小值和它们的下标。
    【解】输入一个二维数组,寻找二维数组的最大值和最小值。其中寻找最大值和最小值的工作可用两重循环实现,即按行按列考察二维数组的元素。程序如下:
     # 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    for( j=0;j     scanf("%d", &t); a[i][j]= t;
     }
     min=max=a[[0][0]; minrow=mincol=maxrow=maxcol=0;
     for(i=0;i     for(j=0;j     if( a[i][j]> max ){
     max= a[i][j] ;maxrow= i;maxcol=j ;
     }
     if( a[i][j]     min=a[i][j] ; minrow= i; mincol=j ;
     }
     }
      printf("MAX=a[%d][%d] =%d MIN= a[%d][%d] =%d \n",
     maxrow,maxcol,max,minrow,mincol,min) ;
      }

本新闻共5页,当前在第4页  1  2  3  4  5  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
2009年咨询工程师考前练习-项目决策方法与实务1(08/1
2009年咨询工程师考前练习-项目决策方法与实务2(08/1
2009年咨询工程师考前练习-项目决策方法与实务3(08/1
2009年咨询工程师考前练习-项目决策分析与评价一-1(0
2009年咨询工程师考前练习-项目决策分析与评价一-2(0
2009年咨询工程师考前练习-项目决策分析与评价一-3(0