请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 8
typedef struct
{int num;
int year,month,day ;
}STU;
int fun(STU *std, STU *k, int year)
{int i,n=0;
for (i=0; i
/**********found**********/
if(___1___==year)
/**********found**********/
k[n++]= ___2___;
/**********found**********/
return (___3___);
}
main()
{STU std[N]={ {1,1984,2,15},{2,1983,9,21},{3, 1984,9,1},{4,1983,7,15},{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};
STU k[N]; int i,n,year;
printf("Enter a year : "); scanf("%d",&year);
n=fun(std,k,year);
if(n==0)
printf("\nNo person was born in %d \n",year);
else
{printf("\nThese persons were born in %d \n",year);
for(i=0; i
printf("%d %d-%d-%d\n",k[i].num,k[i].year, k[i].month,k[i].day);
}
}解题答案:
/**********第一空**********/
if(std[i].year==year)
/**********第二空**********/
k[n++]= std[i];
/**********第三空**********/
return (n);
****************************************** [NextPage] 二、改错题:给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/************found************/
IsPrime (int n); /*定义函数*/
{int i, m;
m = 1;
for (i = 2; i < n; i++)
/************found************/
if !(n%i)
{m = 0; break ;}
return (m);
}
main()
{int j, k;
printf("\nPlease enter an integer number between 2 and 10000: "); scanf("%d", &k);
printf("\n\nThe prime factor(s) of %d is(are):", k);
for(j = 2; j <= k; j++)
if((!(k%j))&&(IsPrime(j)) ) printf("\n M", j);
printf("\n");
}
解题答案:
/************found************/
IsPrime(int n) /*定义函数*/
/************found************/
if(!(n%i))
******************************************
[NextPage] 三、程序题:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数 fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#include
#define N 10
typedef struct ss
{char num[10]; int s;} STU;
fun(STU a[], STU *s)
{
}
main ()
{STU a[N]={ {"A01",81},{"A02",89},{"A03", 66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;
printf("***** The original data *****\n");
for (i=0; i< N; i++)printf("No = %s Mark = %d\n", a[i].num,a[i].s);
fun (a, &m);
printf ("***** THE RESULT *****\n");
printf ("The top : %s , %d\n",m.num, m.s);
NONO();
}
NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
STU a[N], m ;
int i ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s);
fun(a, &m);
fprintf (wf, "The top : %s, %d\n", m.num, m.s);
fclose(rf);
fclose(wf);
}
参考答案:
fun( STU a[], STU *s )
{
int i, max = a[0].s, j = 0;
for(i = 1 ; i < N ; i++)
if(max < a[i].s) {
j = i ;
max = a[i].s ;
}
*s = a[j] ;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|