国家二级C语言机试(操作题)模拟试卷346
程序填空题
1.给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(char *s,int a,double f)
{
1— fp;
char str [100] ,strl [100] ,str2 [100] ;
int al; double f1;
fp = fopen (\\
(1) FILE*
(2) fclose(fp)
(3) fp
解析:本题中函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
第一空:“fp=fopen(\\
程序修改题
2.给定程序MODI1.C中函数fun的功能是:对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)
int i,j,k;
t= (STU *) calloc (sizeof (STU) ,m)
}
return t;
}
outresult(STU a[],FILE *pf)
{ int i;
fprintf (pf,\\
(1)t= (STU* )ca11oc (sizeof (STU) ,m);
(2)t[k]____b[j];
解析:本题中函数的功能是按学习成绩从高到低的顺序找出前m (m≤10)名学生。利用循环结构实现对定义的结构体中的成绩域进行排序。
(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t=(STU *)ca11oc(sizeof(STU),m)”语句没有使用分号“;”结束,因此需要在语句结尾处加分号。ca11oc函数是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 1 0 1 0。
删除后,数组中的内容应该是:2345678910。
注意:部分源程序在文件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 },1,n=20; void
NONO ();
printf (\\
1 int i,七,j=0,* p=a;
2 t=p [01; // 设置临时变量t初值指向第一数组值
3 for(i=0;i<=n;i++)
4 i f(t==p[i]) // 当临时变量与数组中的某个值相同则跳出,比较下一个元素
5 ;
6 else //如果临时变量与数组中值不同,则对临时变量重新赋值
7 {a[j]=t j
8 t=p[i];
9 j ++; )
10 if(i>=n) a[j]=t;
11 return j;
解析:该程序功能是删去一维数组中所有相同的数,使之只剩一个。解题思路是,首先在函数中定义临时变量指向每一个元素,然后在循环过程中将临时值和其他元素进行比较,如果相同,那么跳过相同字符。
(1)首先,设置一个临时变量,初值设置为一维数组的第一个元素。
(2)然后,依次将数组的元素与临时变量比较,如果相同,则继续取数组下一个元素与临时变量比较:如果不同,则将临时变量的值赋值到数组的第一个元素,同时将此与临时变量不同的数组元素赋值给临时变量。
(3)循环执行,直到所有的数据处理完毕。
本文档预览:3600字符,共2825字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载