国二上机考试习题库(7)

2019-08-01 23:01

printf(\}

6、给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。 1 1 1 1 y = ------- + --------- + --------- + …… + ------- 100*100 200*200 300*300 m*m 例如,若m = 2000,则应输出: 0.000160。

请改正程序中的语法错误,使它能计算出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include

/************found************/ fun ( int m ) { double y = 0, d ; int i ;

/************found************/ for( i = 100, i <= m, i += 100 ) { d = (double)i * (double)i ; y += 1.0 / d ; }

return( y ) ; }

main( )

{ int n = 2000 ;

printf( \}

7、给定程序MODI1.C中函数 fun 的功能是: 读入一个字符串(长度<20 ),将该字符串中的所有字符按ASCII码升序排序后输出。

例如, 若输入: edcba, 则应输出: abcde。

请改正程序中的错误,使它能统计出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include void fun( char t[] ) {

char c; int i, j;

/**********found***********/ for( i = strlen( t ); i; i-- ) for( j = 0; j < i; j++ )

/**********found***********/ if( t[j] < t[ j + 1 ] ) {

c = t[j];

t[j] = t[ j + 1 ]; t[j + 1 ] = c; } }

main() {

char s[81];

printf( \ gets( s );

printf( \ \\\ fun( s );

printf( \ \\\}

8、给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include

/**********found**********/ char fun(char *s, char *t)

{ int sl=0,tl=0; char *ss, *tt;

31

ss=s; tt=t; while(*ss) { sl++;

/**********found**********/ (*ss)++; }

while(*tt) { tl++;

/**********found**********/ (*tt)++; }

if(tl>sl) return t; else return s; }

main()

{ char a[80],b[80],*p,*q; int i; printf(\ \

printf(\ \ printf(\}

9、给定程序MODI1.C中函数fun的功能是:首先把b所指字符串中的字符按逆序存放, 然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为\,b所指字符串中的内容为\时,c所指数组中的内容应该为\;而当a所指字符串中的内容为\,b所指字符串中的内容

为\时,c所指数组中的内容应该为\。 请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include

void fun( char *a, char *b, char *c ) {

int i , j; char ch; i = 0; j = strlen(b)-1;

/************found************/ while ( i > j )

{ ch = b[i]; b[i] = b[j]; b[j] = ch; i++; j--; }

while ( *a || *b ) {

/************found************/ If ( *a )

{ *c = *a; c++; a++; } if ( *b )

{ *c = *b; c++; b++; } }

*c = 0; }

main() {

char s1[100],s2[100],t[200];

printf(\ printf(\ fun( s1, s2, t );

printf(\}

10、给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1 - ----- - ----- - …… - ----- 2*2 3*3 m*m

例如,若 m 中的值为: 5,则应输出: 0.536389。 请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include double fun ( int m ) 32

{ double y = 1.0 ; int i ;

/**************found**************/ for(i = 2 ; i < m ; i++)

/**************found**************/ y -= 1 /(i * i) ; return( y ) ; }

main( )

{ int n = 5 ;

printf( \}

11、假定整数数列中的数不重复,并存放在数组中。给定程序MODI1.C中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include #define N 20 fun(int *a,int n,int x) { int p=0,i; a[n]=x;

while( x!=a[p] ) p=p+1;

/**********found**********/ if(P==n) return -1; else

{ for(i=p;i

/**********found**********/ a[i+1]=a[i]; return n-1; } }

main()

{ int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i; n=10;

printf(\

for(i=0;i

printf(\ printf(\ : %d\\n\ n=fun(w,n,x);

if ( n==-1 ) printf(\ else

{ printf(\

for(i=0;i

注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include #include typedef struct aa

{ int data; struct aa *next; }NODE; int fun(NODE *h) { int sum = 0 ; NODE *p;

/***********found**********/ p=h; while(p)

{ if(p->data%2==0) sum +=p->data;

/***********found**********/ p=h->next;

33

}

return sum; }

NODE *creatlink(int n) { NODE *h, *p, *s, *q; int i, x;

h=p=(NODE *)malloc(sizeof(NODE)); for(i=1; i<=n; i++)

{ s=(NODE *)malloc(sizeof(NODE)); s->data=rand(); s->next=p->next; p->next=s; p=p->next; }

p->next=NULL; return h; }

outlink(NODE *h, FILE *pf) { NODE *p; p = h->next;

fprintf(pf ,\ LIST :\\n\\n HEAD \ while(p)

{ fprintf(pf ,\ fprintf (pf,\}

outresult(int s, FILE *pf)

{ fprintf(pf,\ : %d\\n\main()

{ NODE *head; int even; head=creatlink(12); head->data=9000; outlink(head , stdout); even=fun(head);

printf(\ result :\\n\}

13、给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入:ABCDeFGH, 调用后字符串中的内容为:eABCDFGH。 请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include fun( char *p )

{ char max,*q; int i=0; max=p[i];

while( p[i]!=0 ) { if( max

/**********found**********/ q=p+i }

i++; }

/**********found**********/ wihle( q>p ) { *q=*(q-1); q--; }

p[0]=max; }

main()

{ char str[80];

printf(\ \

printf(\ \ puts(str); fun(str); 34

printf(\ \ puts(str); printf(\}

14、给定程序MODI1.C中函数 fun 的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。

例如,若输入 8 名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为: 4 (平均分为:75.5625 )。

请改正程序中的错误,使它能统计出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include #define N 20

int fun ( float *s, int n, float *aver ) { float ave, t = 0.0 ; int count = 0, k, i ; for ( k = 0 ; k < n ; k++ )

/**************found**************/ t = s[k] ; ave = t / n ;

for ( i = 0 ; i < n ; i++ ) if ( s[ i ] < ave ) count++ ;

/**************found**************/ *aver = Ave ; return count ; }

main()

{ float s[30], aver ; int m, i ;

printf ( \ \ printf ( \ for( i = 0 ; i < m ; i++ ) scanf ( \

printf( \ printf( \}

15、给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。 例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include

fun (char *str,char *substr) { int i,j,k,num=0;

/************found************/ for(i = 0, str[i], i++)

for(j=i,k=0;substr[k]==str[j];k++,j++) /************found************/ If(substr[k+1]=='\\0') { num++; break; }

return num; }

main() {

char str[80],substr[80]; printf(\ gets(str);

printf(\ gets(substr);

printf(\}

16、给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #define M 5

35


国二上机考试习题库(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:同期论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: