a[j] = 0 ;
return j ;} 第六套:
6.1填空 给定程序中:函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000。 double f1(double x) { return x*x; }
double f2(double x, double y) { return x*y; }
/**********found**********/ double fun(int i, double x, double y) { if (i==1)
/**********found**********/ return f1(x);
else
/**********found**********/
return f2(x, y);}
6.2改错 给定程序MODI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。 /**********found**********/ char *fun(char *s, char *t) { int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss) { sl++;
/**********found**********/ ss++; }
while(*tt) { tl++;
/**********found**********/ tt++; }
if(tl>sl) return t;
else return s;}
6.3程序 请编写函数fun函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移动到字符串的前部。例如,字符串中原由的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是DEFGHIJKABC。
void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ { int i; char t; t=w[0];
for(i=0;i w[i]=w[i+1]; w[strlen(w)-1]=t; } void fun(char *w, int m) /* 可调用fun1函数左移字符 */ { int i; for(i = 0 ; i < m ; i++) fun1(w); } 第七套: 7.1填空 程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。 typedef struct { int num; char name[9]; char sex; struct { int year,month,day ;} birthday; float score[3]; }STU; /**********found**********/ void show(STU tt) { int i; printf(\ tt.birthday.year, tt.birthday.month, tt.birthday.day); for(i=0; i<3; i++) /**********found**********/ printf(\ printf(\ 7.2改错 给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 int fun ( int * a, int n ) { int i, m, t, k ; for(i=0;i<2;i++) { /**********found**********/ m=i; for(k=i+1;k /**********found**********/ if(a[k]>a[m]) m=k; t=a[i];a[i]=a[m];a[m]=t; }} 7.3程序 请编写一个函数unsigned fun (unsigned w),w是一个大于10的无符号整数,若w是n(≤2)位的整数,函数求出的w的低n-1位的数作为函数值返回。例如:W值为5923,则函数返回923;W值位923则函数返回23。 unsigned fun ( unsigned w ) { if(w>10000) w %= 10000 ; else if(w>1000) w %= 1000 ; else if(w>100) w %= 100 ; else if(w>10) w %=10 ; return w ;} 第八套: 8.1填空 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 void show(STU tt) { int i; printf(\ %s : \ for(i=0; i<3; i++) printf(\ printf(\ /**********found**********/ void modify(STU *ss,float a) { int i; for(i=0; i<3; i++) /**********found**********/ ss->score[i] *=a; } 8.2改错 给定程序MODI1.C中的函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若K=10,则应输出:3628800。 long fun ( int k) {/************found************/ if (k > 0) return (k*fun(k-1)); /************found************/ else if ( k==0 ) return 1L;} 8.3程序 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[],int n),函数的功能是:使数组左下三角元素中的值乘以n。例如:若n的值为3,a数组中的值为 则返回主程序后a数组中的值应为 。 int fun ( int a[][N], int n ) { int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] *= n ;} 第九套: 9.1填空 给定程序中,函数fun的功能是将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据位:10、4、2、8、6,排序后链表接点数据域从头至尾的数据为:2、4、6、8、10。 void fun(NODE *h) { NODE *p, *q; int t; p = h; while (p) { /**********found**********/ q = p->next ; /**********found**********/ while (q) { if (p->data > q->data) { t = p->data; p->data = q->data; q->data = t; } q = q->next; } /**********found**********/ p = p->next ; }} 9.2改错 给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其他字符不变。 void fun (char *s) {/**********found***********/ while(*s) { if(*s>='A' & *s<='Z' || *s>='a' && *s<='z') { if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else *s += 1; } /**********found***********/ s++; }} 9.3程序 请编写函数fun,函数的功能是:移动一维数组中的内容;若猪组中有N个整数,要求把下标从0到P(含P,P小于等于N-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;P的值为3。移动后一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。 void fun(int *w, int p, int n) { int i, j = 0, b[N] ; for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ; for(i = 0 ; i <= p ; i++) b[j++] = w[i] ; for(i = 0 ; i < n ; i++) w[i]= b[i] ;} 第十套: 10.1填空 给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不四,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3×3的矩阵就是一个“幻方”: 。 int fun(int (*a)[N]) { int i,j,m1,m2,row,colum; m1=m2=0; for(i=0; i { j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i /**********found**********/ row=colum= 0; for(j=0; j { row+=a[i][j]; colum+=a[j][i]; } /**********found**********/ if( (row!=colum) || (row!=m1) ) return 0; } /**********found**********/ return 1;} 10.2改错 给定程序MODI1.C中fun函数的功能是:根据整形形参m,计算如下公式的值。 例如,若主函数中输入5,则应输出-0.283333。 double fun( int m ) { double t = 1.0; int i; for( i = 2; i <= m; i++ ) /**********found**********/ t = t-1.0/i; /**********found**********/ return t;} 10.3 程序 请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入“asd af aa z67”,则输出为“asdafaaz67”。 int fun(char *str) { char *p = str ; int i = 0 ; while(*p) { if(*p != ' ') str[i++] = *p ; p++ ; } str[i]=0;} 第十一套: 11.1填空 给定程序,函数fun的功能是将带头结点的单向链表逆置。即若原链表结点数据域从头至尾的数据位:2、4、6、8、10,逆置后,从头至尾数据域依次为:10、8、6、4、2。 void fun(NODE *h) { NODE *p, *q, *r; /**********found**********/ p = h->next; /**********found**********/ if (p==0) return; q = p->next; p->next = NULL; while (q) { r = q->next; q->next = p; /**********found**********/ p = q; q = r; } h->next = p; } 11.2改错 给定程序MODI1.C中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 int fun(char *s, char *t) { int n; char *p , *r; n=0; while ( *s ) { p=s; /*********found**********/ r=t;