/**********found**********/ a[i]=a[i+1];
第25题 填空题
人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 注意:源程序存放在考生文件夹的BLANK1.C中。 不得增行或删行,也不得更改程序结构! /**********found**********/ STU fun(STU *std, char *num)
{ int i; STU a={\ for (i=0; i /**********found**********/ if( strcmp(std[i].num,num)==0 ) /**********found**********/ return (std[i]); 改错题 给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。 例如,当s所指字符串中的内容为:\所指字符串的内容为:\,则函数返回整数3。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序结构! /************found************/ r++; p++; } else break; /************found************/ if ( *r == 0 ) 第26套 填空:给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 #include typedef struct list { int data; struct list *next; } SLIST; void fun( SLIST *h) { SLIST *p, *q; p=h->next; if (p!=NULL) { q=p->next; while(q!=NULL) { if (p->data==q->data) { p->next=q->next; /**********found**********/ free(q); /**********found**********/ q=p->next; } else { p=q; /**********found**********/ q=q->next; } } } } SLIST *creatlist(int *a) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i { q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; } p->next=0; return h; } void outlist(SLIST *h) { SLIST *p; p=h->next; if (p==NULL) printf(\ else { printf(\ do { printf(\ printf(\ } } main( ) { SLIST *head; int a[N]={1,2,2,3,4,4,4,5}; head=creatlist(a); printf(\ fun(head); printf(\ } 改错:给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。 #include void fun(int a[], int n) { int i, j, t, p; for (j = 0 ;j < n-1 ;j++) { /************found************/ p = j; for (i = j;i < n; i++) if(a[i] < a[p]) /************found************/ p = i; t = a[p] ; a[p] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf(\排序前的数据:\ for(i = 0;i < m;i++) printf(\ fun(a,m); printf(\排序后的数据:\ for(i = 0;i < m;i++) printf(\ } 第27题 填空题 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 1×3 3×5 5×7 (2×n-1)×(2×n+1) s = -- + -- + -- + ……+ ---------- 22 42 62 (2×n)2 例如,当形参n的值为10时,函数返回为:9.612558。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中. 不得增行或删行,也不得更改程序结构! /**********found**********/ s=0; /**********found**********/ for(i=1; i<=n; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 改错题 给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现的次数。 例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! /************found************/ for(i = 0; str[i]; i++) for(j=i,k=0;substr[k]==str[j];k++,j++) /************found************/ if(substr[k+1]=='\\0') 第28题 填空题 给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7.输出结果为:4 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中. 不得增行或删行,也不得更改程序结构! /**********found**********/ for(i=0; s[i] !=NULL; i++) /**********found**********/ if(s[i]>='0'&&s[i]<= '9') n++; /**********found**********/ *t=n; 改错题 给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! /**************found**************/ t = *x ; *x = y ; /**************found**************/ return(t) ; 第29题 填空题 程序通过定义学生结构体变量,存储了学生的学号,姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如:b所指变量t中的学号、姓名、和3门课的成绩依次是:10002、\、93、85、 87,修改后的数据应为10004、\、93、85、87。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中. 不得增行或删行,也不得更改程序结构! /**********found**********/ b->sno = 10004; /**********found**********/ strcpy(b->name, \} main() { struct student t={10002,\ int i; printf(\ printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\ /**********found**********/ fun(&t); 改错题 给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的公式如下: 例如,a为2时,平方根值为:1.414214。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! /**********found**********/ double fun(double a, double x0) { double x1, y; x1=(x0+ a/x0)/2.0; /**********found**********/ if( fabs(x1-x0)>0.00001 ) 第30题 填空题 程序通过定义学生结构体变量,存储了学生的学号、姓名和3站课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。 例如:a所指变量中的学号、姓名、和三门课的成绩依次是:1001、\、95、80、88,则修改后输出b中的数据应为:1002、\、95、80、88。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!