国家二级C语言机试(操作题)模拟试卷506
程序填空题
1. 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
void fun (char *s, int a, double f)
{
/********** found**********/
【1】fp
char
str[100],strl[100],str2[100] ;
int al; double fl;
fp = fopen(\\
(1)FILE* (2)fclose(fp)(3)fp
解析:第一空:“fp=fopen(\\
程序修改题
2. 给定程序MODI1.C中函数fhn的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
#define N 10
typedef struct ss
{ char num[10];
int s; }
STU;
STU *fun(STU a[], int m)
{STU b[N], *t;
int i,j,k;
/**********found**********/
t=(STU *)calloc(sizeof(STU),m)
for(i=0; i<N; i++) b[i]=a[i];
for(k=0; k<m; k++)
{ for(i=j=0; i<N; i++)
if (b[i] .s > b[j] .s) j=i;
/**********found**********/
t(k)=b(j);
b[j].s=0;
}
return t;
}
outresult(STU a[], FILE *pf)
{ int i;
for(i=0; i<N; i++)
fprintf (pf, \\
(1)t=(STU*)calloc(sizeof
(STU),m);
(2)t[k]=b[j];
解析:(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t=(STU*)calloc(sizeof(STU),m)”语句没有使用分号“;”结束,因此,需要在语句结尾处加分号。calloc函数是C语言的动态分配函数,分配存储空间。
(2)第二个标识下是将b数组拷贝到t数组,在C语言中,数组元素的访问使用中括号“[]”而不是圆括弧“()”,因此,第二标识下应改成“t[k]=b[j];”。
程序设计题
3. 请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6
7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 80
int fun(int a[], int n)
{
}
main ()
{int a [N] ={2, 2,2, 3, 4, 4, 5, 6, 6, 6, 6,
7,7,8,9,9,10,10,10,10},i,n=20;
void NONO ();
printf(\\
int i,t,j=0,*p=a;
t=p[0]; //设置临时变量t初值指向第
一数组值
for(i=0;i<=n;i++)
if(t==p[i]) //当临时变量与数组
中的某个值相同则跳出,比较下一个元素
;
else //如果临时变量与数组中值
不同,则对临时变量重新赋值
{a[j]=t;
t=p[i];
j++;}
if(i>=n) a[j]=t;
return j;
解析:(1)首先,设置一个临时变量,初值设置为一维数组的第一个元素。
(2)然后,依次将数组的元素与临时变量比较,如果相同,则继续取数组下一个元素与临时变量比较;如果不同,则将临时变量的值赋值到数组的第一个元素,同时将此与临时变量不同的数组元素赋值给临时变量。
(3)循环执行,直到所有的数据处理完毕。
本文档预览:3600字符,共2867字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载