学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“高级语言程序设计”习题答案详解(41

自考“高级语言程序设计”习题答案详解(41)

2007年09月04日    来源:   字体:   打印

  2.阅读下列程序,写出程序的运行结果。

  main ()

  { struct student

  { char name[10];

  float k1;

  float k2;

  } a[2]={ {“zhang”, 100,70} ,{“wang”,70,80 } },* p=a;

  int i;

  printf(“\nname:%s total=%f”,p ->name,p -> k1+p -> k2);

  printf(“\nname:%s total=%f”,a[l].name, a[1].k1+a[l].k2);

  }

  「解」结构数组a 有两个元素,每个元素有三个成分:10个元素的字符数组和两个类型为float的成分k1、k2.结构指针变量p指向结构数组a的首元素。其中初始化使a的两个元素分别有值如下:

  a[0].name=“zhang”,a[0].k1= 100.0,a[0].k2=70.0,

  a[1].name=“wang”,

  a[l].k1=70.0, a[1].k2 =80.0.所以程序运行后输出:

  name:zhang total = 170.000000

  name: wang total= 150.000000

  3.阅读下列程序,写出程序的运行结果。

  main ( )

  { enum em { em1=3, em2=l, em3 };

  char * aa[] = {“AA”,“BB”,“CC”,“DD” } ;

  printf(“%s%s%s\n”,aa[em1],aa[em2], aa[em3] );

  }

  「解」由枚举类型测的定义知,枚举类型常量em1的值是3,枚举类型常量em2的值是1,枚举类型常量em3的值是2.所以程序运行后输出:

  DD BB CC

  7.4 程序设计题

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

  姓名 基本工资(元) 浮动工资(元) 支出(元)

  Li 220.00 300.00 90.00

  Xia 370.00 180.00 60.00

  Wang 620.00 0.00 70.00

  「解」程序定义struct person结构类型,包含人的姓名(<20个字符)、基本工资、浮动工资和支出,用这个struct person结构类型定义数组。程序首先输入人数n(<100),再输入n人的信息,更后输出各人的姓名和实发金额。程序如下:

  # include

  # include

  # define N 100

  struct person {

  char name[20] ;

  float base;

  float ds;

  float pay;

  } person[N], *p;

  void main ()

  { int n;

  float d;

  char buf[120];

  printf(“输入n(<%d)! \n”,N);

  do {

  scanf(“%d”, &n);

  if(n>0 && n<N) BREAK;

  printf(“输入n不合理! 请重新输入! \n” );

  } while(1);

  printf(“输入%d个人的姓名、基本工资、浮动工资和支出 \n”, n);

  for( p=person; p<PERSON+N; P++) {

  scanf(“%s”, buf); strncpy( p -> name, buf, 19);

  scanf(“%f”, &d); p -> base=d;

  scanf(“%f”,&d); p -> ds=d;

  scanf(“%f”, &d ); p -> pay= d;

  }

  for(p = person; p< person+n; p++)

  printf(“%s %.2f\n”,p-> name,P->base+p->ds-P -> pay);

  }

关闭