printf(\ } }
解题思路:
本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。 第一处:从指定的文件中读出数据,所以应填:filename。 第二处:读取文件fp的最后一条记录,所以应填:fp。
第三处:再把读出的记录,写入文件fp指定的位置上,所以应填:fp。 ***************************************************
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并 为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include
NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i;
/**********found***********/ p=(NODE )malloc(sizeof(NODE)); h=p;
p->next=NULL; for(i=1; i<=n; i++)
{ s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; }
/**********found***********/
return p; }
outlink(NODE *h) { NODE *p; p=h->next;
printf(\ while(p)
{ printf(\ p=p->next; }
printf(\ } main() { NODE *head; head=Creatlink(8,22);
outlink(head); }
解题思路:
第一处: 指向刚分配的结构指针,所以应改为:p=(NODE *)malloc(sizeof(NODE)); 第二处: 在动态分配内存的下一行语句是,使用临时结构指针变量h保存p指针的初始位置, 最后返回不能使用p,是因为p的位置已经发生了变化,所以应改为返回h。 ***************************************************
请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返 回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干 个空格隔开, 一行的开始没有空格。 注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include
main()
{ char line[N]; int num=0;
printf(\ num=fun( line );
printf(\ NONO(); }
解题思路:
本题是统计字符串中的单词数。
1. 利用while循环语句和指针变量,当字符为空格时,则单词数k加1。 2. 循环结束返回k。 参考答案:
int fun( char *s) { int k = 1 ; while(*s) { if(*s == ' ') k++ ; s++ ; } return k ; }
※※※※※※※※※※※※※※※※※※※※※※※※※ 第04套:
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所 有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指 的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的 学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。
注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include
typedef struct student { long sno; char name[10]; float score[3]; } STU;
void fun(char *filename) { FILE *fp; int i, j; STU s[N], t;
/**********found**********/ fp = fopen(filename, __1__); fread(s, sizeof(STU), N, fp); fclose(fp);
for (i=0; i /**********found**********/ if (s[i].sno __2__ s[j].sno) { t = s[i]; s[i] = s[j]; s[j] = t; } fp = fopen(filename, \ /**********found**********/ __3__(s, sizeof(STU), N, fp); /* 二进制输出 */ fclose(fp); } main() { STU t[N]={ {10005,\ {10002,\ {10001,\ int i,j; FILE *fp; fp = fopen(\ fwrite(t, sizeof(STU), 5, fp); fclose(fp); printf(\ for (j=0; j { printf(\ for (i=0; i<3; i++) printf(\ printf(\ } fun(\ printf(\ fp = fopen(\ fread(ss, sizeof(STU), 5, fp); fclose(fp); for (j=0; j { printf(\ for (i=0; i<3; i++) printf(\ printf(\ } } 解题思路: 本题是考察把结构中的数据写入文件。 第一处:建立文件的类型,考虑到是把结构中的数据(结构中的数据包含不打印的字符) 从文件中读出,所以应填:\。 第二处:判断当前学号是否大于刚读出的学号进行相比,如果大于,则进行交换,所以应 填:>。 第三处:把已排序的结构数据,重新写入文件,所以应填:fwrite。 *************************************************** 给定程序MODI1.C中函数fun的功能是: 在字符串的最前端加入n个*号, 形成 新串, 并且覆盖原串。 注意: 字符串的长度最长允许为79。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include char a[80] , *p; int i; /**********found***********/ s=p; for(i=0; i 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库全国计算机二级C语言题库 - 南开100题(3)在线全文阅读。
相关推荐: