高级语言程序设计第七章习题参考答案

作者名:不详 来源:网友提供 06年6月8日

 

 第7章习题参考答案

一、单项选择题

1、 ④③②③② ④②

二、填充题

1、 成员、指向成员

2、 ·、->

3、 34

三、程序分析题

1、 9

2、
name:zhang total=170
   name:wang total=150

3、 DDBBCC

四、程序设计题

1、用结构体存放下表中的数据,然后输出每人的姓名和实发数(基本工资+浮动工资-支出)。

姓名 基本工资 浮动工资 支出
zhao 240.00 400.00 75.00
qian 360.00 120.00 50.00
sun 560.00 0.00 80.00


  #include "stdio.h"
  main()
  {
   struct employee
   {
    char name[10];
    float basepay;
    float floatpay;
    float payout;
   }a[3]={{"zhao",240.00,400.00,75.00},
        {"qian",360.00,120.00,50.00},
        {"sun",560.00,0.00,80.00}};
   int i;
   printf("name realwages ");
   for(i=0;i<3;i++)
    printf("%-10s%10.2f ",a[i].name,a[i].basepay+a[i].floatpay-a[i].payout);
  }

2、编一个程序,输入10个职工的编号、姓名、基本工资、职务工资、求出其中“基本工资+职务工资”最少的职工姓名并输出。



  #include "stdio.h"
  main()
  {
   int i;
   struct worker
   {
    long number;
    char name[8];
    float basepay;
    float busypay;
   }a[10],*pmin;
   for(i=0;i<10;i++)
    scanf("%ld%s%f%f",&a[i].number,a[i].name,&a[i].basepay,&a[i].busypay);
   pmin=a;
   for(i=1;i<10;i++)
    if(pmin->basepay+pmin->busypay>a[i].basepay+a[i].busypay)
     pmin=&a[i];
   printf("最少的是:%s ",pmin->name);
  }

3、编一个程序,输入10个学生的学号、姓名、3六课程的成绩,求出总分最高的学生姓名并输出。



  #include "stdio.h"
  main()
  {
   typedef struct
   {
    long number;
    char name[10];
    float score1;
    float score2;
    float score3;
   }STUDENT;
   STUDENT a[10],*pmax;
   int i;
   for(i=0;i<10;i++)
    scanf("%ld%s%f%f%f",&a[i].number,a[i].name,&a[i].score1,&a[i].score2,&a[i].score3);
   pmax=a;
    for(i=1;i<10;i++)
   if(pmax->score1+pmax->score2+pmax->score3<a[i].score1+a[i].score2+a[i].score3)
     pmax=&a[i];
   printf("总分最高的是:%s ",pmax->name);
  }

4、编一程序,输入下列学生成绩表中的数据,并用结、结构体数组存放。然后统计并输出三门课程的名称和平均分数。

name foxbase basic c
zhao 97.5 89.0 78.0
qian 90.0 93.0 87.5
sun 75.0 79.5 68.5
li 82.5 69.5 54.0

  #include "stdio.h"
  main()
  {
   int i;
   typedef struct
   {
    char name[10];
    float foxbase;
    float basic;
    float c;
    float ave;
   }STUDENT;
   STUDENT a[4]={{"zhao",97.5,89.0,78.0},
          {"qian",90.0,93.0,87.5},
          {"sun",75.0,79.5,68.5},
          {"li",82.5,69.5,54.0}};
   for(i=0;i<4;i++)
    a[i].ave=(a[i].foxbase+a[i].basic+a[i].c)/3;
   printf("name foxbase basic c average ");
   for(i=0;i<4;i++)
   printf("%-10s%10.1f%10.1f%10.1f%10.2f ",
       a[i].name,a[i].foxbase,a[i].basic,a[i].c,a[i].ave);
  }