1、国家二级 C 语言机试(操作题)模拟试卷 358(无答案)一、程序填空题1 给定程序中,函数 fun 的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKIC 中。不得增行或删行,也不得更改程序的结构!#include #include #define N 5typedef struct node int data;struct node *next; NODE;void fun (N
2、ODE *h)NODE *p,*q *r;p = h _1_ ;if (p=2 ) return;q = pnext;pnext = NULL;while (q) r = qnext; qnext = p;hnext= p;NODE *creatlist (int a )NODE *h,*p,*q; int i;h = (NODE *) malloc (sizeof (NODE) ;hnext= NULL; q= (NODE *) malloc (sizeof (NODE) ;qdata=a i ;qnext = NULL;if (hnext = NULL) hnext =p = q;else
3、 pnext = q; p = q; return h;void outlist (NODE *h)NODE *p;p =hnext;if (p=NULL) printf(“The list iselse printf (“Ynhead “) ;cio printf(“:d“,pdata) ; p=pnext; while (p ! =NULL) ;printf (“Endn“) ;main ()NODE *head;int aN=2,4f 6,8,10;head=creatlist (a) ;printf (“nThe original list:n“) ;outlist (head) ;f
4、un (head) ;printf “nThe list after inverting:outlist (head) ;二、程序修改题2 给定程序 MODI1C 中函数 fun 的功能是:计算 s 所指字符串中含有 t 所指字符串的数日,并作为函数值返回。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include #define N 80int fun (char *s f char *t) int n;char *p ,*r;n=0;while (*s)p=s;/*found*/ r=
5、p;while (*r)else break;/*found*/ if(*r=0)n+;s+;return n;main () char a N ,b NJ ; int m;printf(“nPlease enter stringprintf (“nPlease enter substringm=fun (a, b) ;printf(“nThe result is : m=dn“,m);三、程序设计题3 请编写函数 fun,函数的功能是:将放在字符串数组中的 M 个字符串(每串的长度不超过 N),按顺序合并组成一个新的字符串。例如,字符串数组中的 M 个字符串为AAAABBBBBBBCC则合并
6、后的字符串的内容应是:AAAABBBBBBBCC。提示:strcat(a,b)的功能是将字符串 b 复制到字符串 a 的串尾上,成为一个新串。注意:部分源程序在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include #include #define M 3#define N 20void fun(char aM N,char *b)main () char wM N = “AAAA“,“BBBBBBB“,int i ;void NONO ();printf( “The string: n“);for (i=0
7、; iM ; i+) puts(wi) ;printf(“n“);fun (w,a);printf (“The A string:n“);printf(“s“,a);printf(“nn“);NONO();void NONO ()/*请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/FILE *rf,*wf ;char wM N, a100 ; int i ;rf fopen( “indat“,“r“);wf = fopen (“outdat“, “w“);for(i=0 ; i 10 ;i+) fscanf (rf,“ s ss“,w0,w 1 ,w2);fun (w, a);fprintf (wf, “sn“, a);fclose (rf); fclose (wf);