fwrite(student,【20】,1,fp); 【参考答案】: 【20】 sizeof(struct st)*50 上机部分 一、填空题 给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! #include< stdio.h> #define N 4 void fun(int(*a)[N],int *b) { int i,j; for(i=0; i b[i]= 1 ; for(j=1;j b[i]= a[j][i]; } } main() { int x[N][N]={{12,5,8,7},{6,1,9,3}, {1,2,3,4},{2,8,4,3}},y[N],i,j; printf('\nThe matrix :\n'); for(i=0;i for(j=0; j printf('\n'); } fun( 3 ); printf('\nThe result is:'); for(i=0; i } 【答案及解析】 (1)b是一维数组,存放N×N矩阵中每列元素中的最大值,循环开始,第i列的b[i]应该首先赋值为每列的第一个元素a[0][i],再循环与本列其他元素比较,最后找出每列元素中的最大值。因此空1中应该填入:a[0][i]。(2)for(j=1;j 给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。 例如,当字符串中的内容为“abcdabfabcdx”、t中的内容为“ab”时,输出结果应是abcdx。当字符串中的内容为“abcdabfabcdx”、t中的内容为“abd”时,则程序输出未找到信息not be found!。 请改正程序中的错误,使其能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include< stdio.h> #include< string.h> char *fun(char *s,char *t) { char *p,*r,*a; a=Null; while(*s) { p=s;r=t; while(*r) if(r==p) {r++;p++;} else break; if(*r=='\0') a=s; s++; } return a ; } main() { char s[100],t[100],*p; printf('\nPlease enter string S :'); scanf('%s',s); printf('\nPlease enter substring t :'); scanf('%s',t); p=fun(s,t); if(p) printf('\nThe result is :%s\n',p); else printf('\nNot found !\n'); } 【答案及解析】 |
|