void fun (long s, long *t) { int d; long sl=1; *t = 0;
while ( s > 0) { d = s;
/************found************/ if (d%2=0)
{ *t=d* sl+ *t; sl *= 10; }
/************found************/ s \\= 10; } } 程序
函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 例如:a=45,b=12时,调用该函数后,c=5142 注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
4、B: “r” fs ft M: (d%2==0) s /= 10; P: *c=(a)*1000+(b/10)*100+(a/10)*10+(b); 5. 填空 给定程序中已建立一个带有头结点的单向链表,链表中的各节点按结点数据域中的数据递增有序链表。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。 typedef struct list { int data; struct list *next; } SLIST;
void fun( SLIST *h, int x) { SLIST *p, *q, *s; s=(SLIST *)malloc(sizeof(SLIST)); /**********found**********/ s->data=___1___; q=h;
p=h->next;
while(p!=NULL && x>p->data) { /**********found**********/ q=___2___;
p=p->next; }
s->next=p;
/**********found**********/ q->next=___3___; }
修改
给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输入应该是:20.若输入:202,则输出应该是:0. long fun (long num) {
/************found************/ long k; do
{ k*=num ;
/************found************/ num\\=10 ; } while(num) ; return (k) ; }
请编写一个函数fun,它的功能是:它的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55 则函数的值为:71.80
5、B: x p s
M: long k=1; num/=10 ;
P: int i; float ave=0.0; for(i=0; i void fun( SLIST *p) { SLIST *t, *s; t=p->next; s=p; while(t->next != NULL) { s=t; /**********found**********/ t=t->___1___; } /**********found**********/ printf(\ s->next=NULL; /**********found**********/ free(___3___); } 修改 给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,单补改变字符串中的内容。 例如,若字符串味abcd,则应输出:dcba /************found************/ fun (char a) { if ( *a ) { fun(a+1) ; /************found************/ printf(\ } } 程序 请编写一个函数fun,他的功能是:比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing M: fun (char *a) printf(\ P: int i; char *p=s, *q=t; for(i=0;*p && *q; i++) { p++; q++; } if(*p == 0 && *q == 0) return s ; if(*p) return s ; else return t ; 7. 填空 给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个 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(___1___); /**********found**********/ q=p->___2___; } else { p=q; /**********found**********/ q=q->___3___; } } } } 修改 给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。 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 = j; t = a[p] ; a[p] = a[j] ; a[j] = t; } } 请编写一个函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传3送给m的之位50,则程序输出:7 11 14 21 22 18 33 35 42 44 49 答案: 7、B: q next next M: p = j; p=i; P: int i ; *n=0 ; for(i=7 ; i<=m; i++) if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; 8. 填空 给定程序中,函数fun的gongn是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回改结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值 typedef struct list { int data; struct list *next; } SLIST; SLIST *creatlist(char *); void outlist(SLIST *); int fun( SLIST *h, char ch) { SLIST *p; int n=0; p=h->next; /**********found**********/ while(p!=___1___) { n++; /**********found**********/ if (p->data==ch) return ___2___; else p=p->next; } return 0; } 修改 给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符,回车符及换行符) 输入字符串是用“#”结束输入。 fun ( char *p) { int i,t; char c[80]; /************found************/ For (i = 0,t = 0; p[i] ; i++) if(!isspace(*(p+i))) c[t++]=p[i]; /************found************/ c[t]=\ strcpy(p,c); } 程序 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换) 例如:若输入“abc4EFg”,则应输出“aBc4Efg”。 答案: 8、B: NULL n head,ch M: for c[t]='\\0'; P: int i ; for(i = 1 ; i < strlen(*ss) ; i+=2) { if(ss[i] >= 'a' && ss[i] <= 'z') ss[i] -= 32 ;