Bootstrap

计算机二级c语言第二套程序填空题


前言

在这里插入图片描述

快速学习计算机二级c语言

一、题目

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如:b所指变量t中的学号、姓名和三门课的成绩依次是:10002、“ZhangQi”、93.00、85.00、87.00,修改后输出t中的数据应为: 10004、“LiJie”、93.00、85.00、87.00

#include  <stdio.h>
#include  <string.h>
struct student {
  long  sno;
  char  name[10];
  float  score[3];
};
void fun( struct student  *b)
{
/**********found**********/
  b__1__ = 10004;
/**********found**********/
  strcpy(b__2__, "LiJie");
}
main()
{ struct student  t={10002,"ZhangQi", 93, 85, 87};
  int  i;
  printf("\n\nThe original data :\n");
  printf("\nNo: %ld  Name: %s\nScores:  ",t.sno, t.name);
  for (i=0; i<3; i++)  printf("%6.2f ", t.score[i]);
  printf("\n");
/**********found**********/
  fun(__3__);
  printf("\nThe data after modified :\n");
  printf("\nNo: %ld  Name: %s\nScores:  ",t.sno, t.name);
  for (i=0; i<3; i++)  printf("%6.2f ", t.score[i]);
  printf("\n");
  getchar();
}

二、解题步骤

1.问题

  • 对指针和结构体不熟悉

2.做题

  1. b->= 10004;?正确,指针指向学号
  2. strcpy(b->name, "LiJie");?正确,指针指向名字
  3. fun(t);?错误,fun函数内部*b是结构体指针,指针指向地址,所以此处要填结构体地址,所以正确答案为fun(&t);
;