注意:源程序存放在考生文件夹的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
typedef struct
{char name[10];
int age;
}STD;
STD fun(STD std[], int n)
{STD max; int i;
/**********found**********/
max= ___1___;
for(i=1; i
/**********found**********/
if(max.age<___2___) max=std[i];
return max;
}
main()
{STD std[5]={"aaa",17,"bbb",16,"ccc",18,"ddd", 17,"eee",15 };
STD max;
max=fun(std,5);
printf("\nThe result: \n");
/**********found**********/
printf("\nName : %s, Age : %d\n", ___3___,max.age);
}
解题答案:
/**********第一空**********/
max= *std;
/**********第二空**********/
if(max.age
/**********第三空**********/
printf("\nName : %s, Age : %d\n", max.name,max.age);
}
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:实现两个整数的交换。 例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60 请改正程序中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/**********found**********/
void fun (int a, b)
{int t;
/**********found**********/
t = b; b = a ; a = t;
}
main ()
{int a, b;
printf ("Enter a , b : "); scanf ("%d,%d", &a, &b);
fun (&a , &b);
printf (" a = %d b = %d\n ", a, b);
}
解题答案:
#include
/**********found**********/
void fun(int *a, int *b)
/**********found**********/
t=*b; *b=*a; *a=t;
******************************************
[NextPage] 三、程序题:请编一个函数void fun(int tt[M][N ], int pp[N]),tt指向一个M行N列的 二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#define M 3
#define N 4
void fun (int tt[M][N], int pp[N])
{
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int i, j, k, m, t[M][N], p[N] ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(m = 0 ; m < 10 ; m++) {
for(i=0; i
for(j=0; j
fscanf (rf, "m", &t[i][j]);
}
fun (t, p);
for (k = 0; k < N; k++) fprintf (wf, " M ", p[k]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
main()
{int t [M][N]={{22,45, 56,30},{19,33, 45,38},{20, 22,66,40}};
int p [N], i, j, k;
printf ("The original data is : \n");
for(i=0; i
for(j=0; j
printf ("m", t[i][j]);
printf("\n");
}
fun (t, p);
printf("\nThe result is:\n");
for (k = 0; k < N; k++) printf (" M ", p[k]);
printf("\n");
NONO();
参考答案:
void fun ( int tt[M][N], int pp[N] )
{
int i,j, min, k ;
for(i = 0 ; i < N ; i++) {
min = tt[0][i] ; k = 0 ;
for(j = 1 ; j < M ; j++)
if(min > tt[j][i]) {
\TAB min=tt[j][i] ;
k = j ;
}
pp[i] = tt[k][i] ;
}
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|