使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是将形参指针所指结构体数组中的3个元素按num成员进行升序排列。 请在程序的下划线处填入正确的内容并

admin2023-02-27  12

问题 使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是将形参指针所指结构体数组中的3个元素按num成员进行升序排列。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 typedef struct
3 {  int num;
4  char name[10];
5  } PERSON;
6  /*********found*********/
7 void fun(PERSON<u>【1】</u>
8 {
9  /*********found*********/
10  <u>【2】</u>temp;
11  if(std[0].num>std[1].num)
12  { temp=std[0];
13    std[0]=std[1];
14    std[1]=temp;}
15  if(std[0].num>std[2].num)
16  {temp=std[0];std[0]=std[2];
17  std[2]=temp;}
18  if(std[1].num>std[2].num)
19  { temp=std[1];
20    std[1]=std[2];
21    std[2]=temp;}
22 }
23  main()
24 {PERSON std[]={5,"ZhangHu",2,"  WangLi",6,"LinMin"};
25    int i;
26  /*********found*********/
27  fun<u>【3】</u>;
28  printf("The result is":);
29  for(i=0;i<3;i++)
30  printf("%d,%s",std.num,std.name);
31 }

选项

答案(1)std[] (2)PERSON (3)(std)

解析 本题考查:数据类型的定义、数组元素的操作、函数参数的传递。
    当使用函数对整个数组进行操作时,应使用数组名作为函数的实参。当使用数组名作为实参时,函数传递的实际上是数组的首地址,而并非数组本身。此时形参除了可以定义为指针变量外,还可以定义为数组,并且数组可以不指定大小,但无论用哪种形式,程序在编译时都将其作为一个指针变量处理。
    填空1:定义形参变量引用数组std。形参可以定义为指针类型,也可以定义为数组。故空1处应该填std[]。
    填空2:程序使用变量temp交换结构体数组元素的值,因而temp应定义为PERSON型。故空2处应该填PERSON。
    填空3:程序通过调用函数fun()对数组std进行操作,因此函数的实参应为std。故空3处应该蟮(std)。  
转载请注明原文地址:https://jikaoti.com/ti/tBoiFFFM
0

相关试题推荐
随机试题
最新回复(0)