一、填空题 考试做题要求:
1、在__1__处填写正确的答案,并将下划线和数字删除。 2、将题目做完之后一定要保存。
3、不能删除/**********found**********/,也不能多行或少行。 1、(循环)给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 10
int fun(char (*ss)[M], int k) { int i,j=0,len;
/**********found**********/ for(i=0; i< __1__ ; i++) { len=strlen(ss[i]);
/**********found**********/ if(len<= __2__)
/**********found**********/ strcpy(ss[j++],__3__); }
return j; }
main()
{ char x[N][M]={\ int i,f;
printf(\
for(i=0;i printf(\ for(i=0; i 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 4
void fun(int (*a)[N], int *b) { int i,j;
for(i=0; i/**********found**********/ b[i]= __1__;
for(j=1; j/**********found**********/
if(b[i] __2__ a[j][i]) 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(\ for(i=0;i { for(j=0;j/**********found**********/ fun(__3__);
printf(\
for(i=0; i
1
3、(指针后移)给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include int fun(char *s) { int sum=0; while(*s) {
/**********found**********/
if( isdigit(*s) ) sum+= *s- __1__ ; /**********found**********/ __2__; }
/**********found**********/ return __3__ ; }
main()
{ char s[81]; int n;
printf(\ gets(s); n=fun(s);
printf(\ %d\\n\\n\} 4、(循环)给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include fun(int x)
{ int n, s1, s2, s3, t; n=0; t=100;
/**********found**********/ while(t<=__1__){
/**********found**********/
s1=t; s2=(__2__); s3=t/100; /**********found**********/ if(s1+s2+s3==__3__) { printf(\ n++; } t++; }
return n; }
main() { int x=-1; while(x<0)
{ printf(\ scanf(\ } printf(\} 5、(函数参数:数组指针)给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 2
1 1 1 1 1
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 7
/**********found**********/ void fun(int (*a) __1__) { int i,j,k,m;
if(N%2==0) m=N/2 ; else m=N/2+1; for(i=0; i/**********found**********/ for(j= __2__ ; j a[k][i]=a[k][N-i-1]= __3__; } }
main()
{ int x[N][N]={0},i,j; fun(x);
printf(\ for(i=0; i { for(j=0; j 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 10
double fun(double x[],double *y) { int i,j; double av;
/**********found**********/ av=__1__;
/**********found**********/
for(i=0; i/**********found**********/ if(x[i]>av) y[__3__]= x[i]; y[j]=-1; return av; }
main()
{ int i; double x[N],y[N];
for(i=0; i printf(\ for(i=0; y[i]>=0; i++) printf(\ printf(\} 7、(函数参数)给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12
3
若k为2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 3 #define M 4
/**********found**********/ void fun(int (*a)[N], int __1__) { int i,j,temp ;
/**********found**********/ for(i = 0 ; i < __2__ ; i++) { temp=a[0][i] ;
/**********found**********/ a[0][i] = __3__ ; a[k][i] = temp ; } }
main()
{ int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j; printf(\ for(i=0; i { for(j=0; j fun(x,2);
printf(\ for(i=0; i { for(j=0; j 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; }
double f2(double x, double y) { return x*y; }
/**********found**********/
__1__ fun(int i, double x, double y) { if (i==1)
/**********found**********/ return __2__(x); else
/**********found**********/ return __3__(x, y); }
main()
{ double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2);
printf(\} 9、(指针与数组)给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为:asd123fgh5##43df, 4
处理后新字符串为:123543asdfgh##df。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include #include char *fun(char *s)
{ int i, j, k, n; char *p, *t; n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0;
for(i=0; i/**********found**********/ p[__1__]=s[i]; j++;} else
{ t[k]=s[i]; k++; } }
/**********found**********/
for(i=0; i<__2__; i++) p[j+i]= t[i]; p[j+k]=0;
/**********found**********/ return __3__; }
main()
{ char s[80];
printf(\ scanf(\ printf(\}
10、给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
例如,有下列矩阵: 1 2 13 4 7 8 10 6 3 5 9 7
程序执行结果为:find: a[2][2]=9
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define M 3 #define N 4 void fun(int (*a)[N])
{ int i=0,j,find=0,rmax,c,k; while( (i/**********found**********/
rmax=a[i][j]; c= __1__ ; } find=1; k=0;
while(k if (k!=i && a[k][c]<=rmax) find= __2__ ; k++; }
if(find) printf(\/**********found**********/ __3__ ; }
if(!find) printf(\}
5
main()
{ int x[M][N],i,j;
printf(\ for(i=0; i for(j=0; j { for(j=0; j fun(x); }
11、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
例如:传给形参a的数据中,学号、姓名、和三门课的成绩依次是:10001、\、95、80、88,修改后的数据应为:10002、\、96、81、89。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include struct student { long sno;
char name[10]; float score[3]; };
/**********found**********/ __1__ fun(struct student a) { int i;
a.sno = 10002;
/**********found**********/ strcpy(__2__, \
/**********found**********/ for (i=0; i<3; i++) __3__+= 1; return a; }
main()
{ struct student s={10001,\ int i;
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\ t = fun(s);
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\}
12、给定程序中, 函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。当调用正确时,程序输出:
x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; }
double f2(double x, double y) { return x*y; }
double fun(double a, double b) {
/**********found**********/ __1__ (*f)(); 6
double r1, r2;
/**********found**********/
f = __2__ ; /* point fountion f1 */ r1 = f(a);
/**********found**********/
f = __3__ ; /* point fountion f2 */ r2 = (*f)(a, b); return r1 + r2; }
main()
{ double x1=5, x2=3, r; r = fun(x1, x2);
printf(\ x2=%f, x1*x1+x1*x2=%f\\n\}
13、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include struct student { long sno;
char name[10]; float score[3]; };
void fun(struct student a[], int n) {
/**********found**********/ __1__ t; int i, j;
/**********found**********/ for (i=0; i<__2__; i++) for (j=i+1; j/**********found**********/ if (strcmp(__3__) > 0)
{ t = a[i]; a[i] = a[j]; a[j] = t; } }
main()
{ struct student s[4]={{10001,\
{10002,\{10003,\ {10004,\
int i, j;
printf(\ for (j=0; j<4; j++)
{ printf(\ Name: %-8s Scores: \ for (i=0; i<3; i++) printf(\ printf(\ }
fun(s, 4);
printf(\ for (j=0; j<4; j++)
{ printf(\ Name: %-8s Scores: \ for (i=0; i<3; i++) printf(\ printf(\ } }
14、给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a C language program.,函数的返回值为6。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!
7
#include int fun(char *s) { int n=0, flag=0; while(*s!='\\0')
{ if(*s!=' ' && flag==0) { /**********found**********/ __1__ ; flag=1;}
/**********found**********/ if (*s==' ') flag= __2__ ; /**********found**********/ __3__ ; }
return n; }
main()
{ char str[81]; int n;
printf(\ gets(str); n=fun(str);
printf(\}
15、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
例如,当形参n的值为10时,函数返回:9.612558。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double fun(int n)
{ int i; double s, t;
/**********found**********/ s=__1__;
/**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i;
/**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; }
return s; }
main()
{ int n=-1; while(n<0)
{ printf(\ } printf(\}
16、给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。
例如,从主函数输入一个整数:27638496,函数返回值为:26846。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include
unsigned long fun(unsigned long n) { unsigned long x=0, s, i; int t; s=n;
/**********found**********/ i=__1__;
/**********found**********/ while(__2__) { t=s; if(t%2==0){
/**********found**********/ 8
x=x+t*i; i=__3__; }
s=s/10; }
return x; }
main()
{ unsigned long n=-1; while(n>99999999||n<0)
{ printf(\ scanf(\ } printf(\}
17、给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 8
int fun(char (*ss)[M],char *t) { int i;
/**********found**********/ for(i=0; i< __1__ ; i++) /**********found**********/
if(strcmp(ss[i],t)==0 ) return __2__ ; return -1; }
main()
{ char ch[N][M]={\ int n,i;
printf(\
for(i=0;i printf(\ \ gets(t); n=fun(ch,t);
/**********found**********/
if(n== __3__) printf(\ else printf(\ %d .\\n\}
18、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如: b所指变量t中的学号、姓名、和三门课的成绩依次是: 10002、\、93、85、87,修改后输出t中的数据应为:10004、\、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include struct student { long sno;
char name[10]; float score[3]; };
void fun( struct student *b) { int i;
/**********found**********/ b__1__ = 10004;
/**********found**********/ strcpy(b__2__, \}
main()
{ struct student t={10002,\ int i;
9
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\
/**********found**********/ fun(__3__);
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\}
19、给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include fun(int x)
{ int n, s1, s2, s3, t;
/**********found**********/ n=__1__; t=100;
/**********found**********/ while(t<=__2__)
{ s1=t; s2=(t/10); s3=t/100; if(s1+s2+s3==15) { printf(\ n++; }
/**********found**********/ __3__; }
return n; }
main()
{ int x=-1;
while(x>999||x<0)
{ printf(\ scanf(\ } printf(\}
20、给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include #define N 9
long ctod( char *s ) { long d=0; while(*s)
if(isdigit( *s)) {
/**********found**********/ d=d*10+*s-__1__;
/**********found**********/ __2__; } return d; }
long fun( char *a, char *b ) { 10
/**********found**********/ return __3__; }
main()
{ char s1[N],s2[N]; do
{ printf(\ string s1 : \ while( strlen(s1)>N ); do
{ printf(\ string s2 : \ while( strlen(s2)>N );
printf(\ %ld\\n\} 21、给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。 例如,有下列矩阵: 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 若k为2,程序执行结果为 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define M 3 #define N 5
void fun(int (*a)[N],int k) { int i,j,p,temp;
/**********found**********/ for(p=1; p<= __1__; p++) for(i=0; i/**********found**********/
for(j=0; j< __2__ ; j++) a[i][j]=a[i][j+1]; /**********found**********/ a[i][N-1]= __3__; } }
main( )
{ int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j; printf(\ for(i=0; i { for(j=0; j fun(x,2);
printf(\ for(i=0; i { for(j=0; j22、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、\、95、80、88,则修改后输出b中的数据应为:10002、\、95、80、88。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include
11
struct student { long sno;
char name[10]; float score[3]; };
void fun(struct student a) { struct student b; int i; /**********found**********/ b = __1__; b.sno = 10002;
/**********found**********/ strcpy(__2__, \
printf(\
printf(\ Name: %s\\nScores: \/**********found**********/
for (i=0; i<3; i++) printf(\ b.__3__); printf(\}
main()
{ struct student s={10001,\ int i;
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ s.score[i]); printf(\ fun(s); }
23、给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。
例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 80
void fun(char *s, int n, char *t) { int len,i,j=0; len=strlen(s);
/**********found**********/ if(n>=len) strcpy(__1__); else {
/**********found**********/
for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; /**********found**********/ t[j]= __3__ ; } }
main()
{ char s[N],t[N]; int n;
printf(\ \ printf( \ scanf(\ fun(s,n,t);
printf(\ \ puts(t); }
24、给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 6 typedef struct node { 12
int data;
struct node *next; } NODE;
void fun(NODE *h)
{ NODE *p, *q; int t; /**********found**********/ p = __1__ ; while (p) {
/**********found**********/ q = __2__ ; while (q) {
/**********found**********/ if (p->data __3__ q->data)
{ t = p->data; p->data = q->data; q->data = t; } q = q->next; }
p = p->next; } }
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i; h = (NODE *)malloc(sizeof(NODE)); h->next = NULL; for(i=0; i { q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL;
if (h->next == NULL) h->next = p = q; else { p->next = q; p = q; } }
return h; }
void outlist(NODE *h) { NODE *p; p = h->next;
if (p==NULL) printf(\ else
{ printf(\ \ do
{ printf(\ } while(p!=NULL); printf(\ } }
main()
{ NODE *head;
int a[N]= {0, 10, 4, 2, 8, 6 }; head=creatlist(a);
printf(\ outlist(head); fun(head);
printf(\ outlist(head); }
25、给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 20 void fun( int *a) { int i, x, n=0; x=rand() ;
/**********found**********/
13
while (n<__1__)
{ for(i=0; i/**********found**********/ if( x==a[i] ) __2__; /**********found**********/ if( i==__3__){ a[n]=x; n++; } x=rand() ; } }
main()
{ int x[N]={0} ,i; fun( x );
printf(\ \\n\ for( i=0; i if((i+1)%5==0)printf(\ }
printf(\}
26、给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 15
void fun(char (*ss)[M], char *substr) { int i,find=0;
/**********found**********/ for(i=0; i< __1__ ; i++)
/**********found**********/
if( strstr(ss[i], __2__) != NULL )
{ find=1; puts(ss[i]); printf(\ } /**********found**********/
if (find==__3__) printf(\}
main()
{ char x[N][M]={\ int i;
printf(\
for(i=0;i printf(\ \ gets(str); fun(x,str); }
27、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、\ZhangSan \、95、80、88,修改后输出t中的数据应为:10002、\、96、81、89。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include struct student { long sno;
char name[10]; float score[3]; };
/**********found**********/ __1__ fun(struct student *a) { int i; 14
a->sno = 10002;
strcpy(a->name, \/**********found**********/ for (i=0; i<3; i++) __2__ += 1; /**********found**********/ return __3__ ; }
main()
{ struct student s={10001,\ *t; int i;
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\ t = fun(&s);
printf(\
printf(\ Name: %s\\nScores: \ for (i=0; i<3; i++) printf(\ printf(\}
28、给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter 'a' : 3 times letter 's' : 3 times
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include void fun(char *s)
{ int k[26]={0},n,i,max=0; char ch; while(*s)
{ if( isalpha(*s) ) {
/**********found**********/ ch=tolower(__1__); n=ch-'a';
/**********found**********/ k[n]+= __2__ ; } s++;
/**********found**********/ if(max printf(\ for(i=0; i<26;i++)
if (k[i]==max) printf(\ \\'%c\\' : %d times\\n\}
main()
{ char s[81];
printf(\ gets(s); fun(s); }
29、给定程序中,函数fun的功能是:判断形参s所指字符串是否是\回文\(Palindrome),若是,函数返回值为1;不是,函数返回值为0。\回文\是正读和反读都一样的字符串(不区分大小写字母)。 例如,LEVEL和Level是\回文\,而LEVLEV不是\回文\。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include int fun(char *s)
15
{ char *lp,*rp;
/**********found**********/ lp= __1__ ;
rp=s+strlen(s)-1;
while((toupper(*lp)==toupper(*rp)) && (lp