9. 填空
给定程序中,函数fun的功能是:统计出带有头结点的单向链表中的个数,存放在形参n所指的存储单元中。 void fun( SLIST *h, int *n) { SLIST *p;
/**********found**********/ ___1___=0; p=h->next; while(p) { (*n)++;
/**********found**********/ p=p->___2___; } }
main()
{ SLIST *head;
int a[N]={12,87,45,32,91,16,20,48}, num; head=creatlist(a); outlist(head); /**********found**********/ fun(___3___, &num);
printf(\} 修改
给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL
例如:当字符串中的内容为“abcdefabcdx”t中的内容为“ab”时,输出的结果应是:abcdx 当字符串中的内容为“abcdefabcdx”t中的内容为“abd”时,则程序输出未找到信息 not be found char * fun (char *s, char *t ) {
char *p , *r, *a; /************found************/ a = Null; while ( *s )
{ p = s; r = t; while ( *r )
/************found************/ if ( r == p ) { r++; p++; } else break;
if ( *r == '\\0' ) a = s; s++;
}
return a ; } 程序
函数fun的功能是:将s所指字符串中除了下标问为偶数,同时ASCII值也为偶数的字符外,其余的全部删除:串中剩余字符所形成的一个新串放在t所指的数组中
例如,若s所指的字符串中的内容为“ABCDEFG123456”,其中字符A的ASCII码味奇数,因此应当删除,其中字符b的ASCII码值为偶数,但是在数组中的下标为基数,因此也当删除; 答案
9、B: *n next head
M: a = NULL; *r == *p P: int i, j = 0 ;
for(i = 0 ; i < strlen(s) ; i += 2) if(s[i] % 2 == 0) t[j++] = s[i] ; t[j] = 0 ;
10. 填空
给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中值之和作为函数的返回值。 int fun( SLIST *h)
{ SLIST *p; int s=0; p=h->next; while(p) {
/**********found**********/ s+= p->___1___; /**********found**********/ p=p->___2___; } return s; } 修改
给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的字串全部替换成t2所指字符串,所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同。 int fun (char *s, char *t1, char *t2 , char *w) {
int i; char *p , *r, *a; strcpy( w, s ); while ( *w )
{ p = w; r = t1;
/************found************/
while ( r )
if ( *r == *p ) { r++; p++; } else break; if ( *r == '\\0' )
{ a = w; r = t2; while ( *r ){
/************found************/ *a = *r; a++; r++ }
w += strlen(t2) ; }
else w++; } } 程序
函数fun的功能是;将s所指字符串下标为偶数的字符删除,串中剩余字符形成的新串放在t所指的数组中
例如:当s所指字符串中的内容为:“ABCDEFGHIJK” 在t所指数组中的内容应是“BDFHJ” 10、B: data next head
M: *r r++;
P: int i, j = 0 ; for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ; 11. 填空
人员记录有编号和出生年月日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出数据中的编号为空串。
/**********found**********/ ___1___ fun(STU *std, char *num) { int i; STU a={\ for (i=0; i 给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的字串的个数作为函数返回值 例如,当s所指字符串中的内容为:“abcdabfab”,t所指字符串的内容为:“ab”则函数返回整数3 int fun (char *s, char *t) { int n; char *p , *r; n = 0; while ( *s ) { p = s; r = t; while ( *r ) if ( *r == *p ) { /************found************/ r++; p++ } else break; /************found************/ if ( r == '\\0' ) n++; s++; } return n; } 函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中 例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符B的ASCII码值为偶数….. 答案: 11、B: STU std[i].num std[i] M: p++; *r==?\\0? ; P: int i, j = 0 ; for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; 12.填空 人员的记录由编号和出生年月日组成N名成员的数据已在主函数中存入结构体数组std中,函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同事有函数值返回满足指定条件的人数 int fun(STU *std, STU *k, int year) { int i,n=0; for (i=0; i 给定程序MODI12。C的功能是:读入一个整数k(2《k《1000),打印她的所有因子 例如2310,则应输出2,3,5,7,11 /************found************/ IsPrime ( int n ); { int i, m; m = 1; for ( i = 2; i < n; i++ ) /************found************/ if !( n%i ) { m = 0; break ; } return ( m ); } 设计 已知学生的记录有学号成绩构成,N名学生的数据已经存入结构体数组a中。编写函数fun,函数功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数 12、B: std[i].year std[i] n M: 分号去掉 if (!( n%i )) P: int i, max = a[0].s, j = 0; for(i = 1 ; i < N ; i++) if(max < a[i].s) { j = i ; max = a[i].s ; } *s = a[j] ; 13.填空 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号,姓名和3们课程的成绩,函数fun的功能是将该学生的各科成绩都乘以一个系数a void show(STU tt) { int i; printf(\ %s : \ for(i=0; i<3; i++) printf(\ printf(\} /**********found**********/ void modify(___1___ *ss,float a) { int i; for(i=0; i<3; i++) /**********found**********/ ss->___2___ *=a; } main( ) { STU std={ 1,\ float a; printf(\ show(std); printf(\ \ scanf(\/**********found**********/ modify(___3___,a); printf(\ show(std);