77范文网 - 专业文章范例文档资料分享平台

二级C语言上机考试复习资料,共有50套题目(3)

来源:网络收集 时间:2019-04-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

学海教育 内部资料 版权所有 翻印必究

typedef struct { int num;

char name[9]; float score[3]; }STU;

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); }

47、围绕山顶一圈有N个山洞,编号为0、1、2、3、??、N-1,有一只狐狸和一只兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;??。若狐狸找一圈,请为兔子指出所有不安全的洞号。程序中用a数组元素模拟每个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安全。例如,当形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

#include #define N 100 void fun( int *a , int n ) { int i, t;

for( i=0; i

/**********found**********/ a[i]=___1___; i=0;

/**********found**********/ ___2___=1; while( i

/**********found**********/ i=___3___; } }

main()

{ int a[N], i, n=30; fun( a, n);

for(i=0; i

if( a[i]==1 ) printf(\不安全的洞号是 : %d\\n\}

48、函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

#include void fun(int a[], int n) { int i,t;

/**********found**********/ for (i=0; i<___1___; i++) {

t=a[i];

/**********found**********/ a[i] = a[n-1-___2___];

/**********found**********/ ___3___ = t; } }

main()

{ int b[9]={1,2,3,4,5,6,7,8,9}, i; printf(\ :\\n\ for (i=0; i<9; i++)

printf(\ printf(\ fun(b, 9);

printf(\ :\\n\ for (i=0; i<9; i++)

printf(\ printf(\}

49、函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

#include #define N 9

/**********found**********/ void fun(int ___1___, int n) { int i, j, max, min, px, pn, t; /**********found**********/ for (i=0; i

/**********found**********/ for (j=___3___; j

{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; } }

if (px != i)

{ t = a[i]; a[i] = max; a[px] = t; if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; } } }

main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i; printf(\ :\\n\

for (i=0; i

printf(\ :\\n\ for (i=0; i

50、给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

#include #include

void fun(char *s, int a, double f) {

/**********found**********/ __1__ fp;

char str[100], str1[100], str2[100]; int a1; double f1; fp = fopen(\

fprintf(fp, \ %d %f\\n\/**********found**********/ __2__ ;

fp = fopen(\/**********found**********/

fscanf(__3__,\

11

学海教育 内部资料 版权所有 翻印必究

fclose(fp); a1 = atoi(str1); f1 = atof(str2);

printf(\}

main()

{ char a[10]=\ int b=12345; double c= 98.76; fun(a,b,c); }

二、程序修改题

1、给定程序MODI1.C中,fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。

请改正函数fun中指定部位的错误,使它能得出正确的结果。 #include #include #define N 20 int fun( int *b ) {

/**********found**********/ int t[N] ,i, num for(i=0; i=10)

/**********found**********/ t[++num]=b[i];

/**********found**********/ for(i=0; i

main()

{ int a[N],i,num;

printf(\数组中的数据 :\\n\

for(i=0;i

for(i=0;i

2、给定程序MODI1.C中函数 fun 的功能是: 将十进制正整数m转换成k(2≤k≤9)进制数, 并按高位到低位顺序输出。 例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请改正 fun 函数中的错误,使它能得出正确的结果。

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

int aa[20], i;

for( i = 0; m; i++ ) {

/**********found**********/ aa[i] = m/k; m /= k; }

for( ; i; i-- )

/**********found**********/ printf( \}

main() {

int b, n;

printf( \ scanf( \ fun( n, b ); printf(\}

3、给定程序MODI1.C中函数 fun 的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。

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

注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include #include #define MAXLINE 20 fun ( char *pstr[6]) { int i, j ; char *p ;

for (i = 0 ; i < 5 ; i++ ) {

/**************found**************/ for (j = i + 1, j < 6, j++) {

if(strcmp(*(pstr + i), *(pstr + j)) > 0) {

p = *(pstr + i) ;

/**************found**************/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; } } } }

main( ) { int i ;

char *pstr[6], str[6][MAXLINE] ; for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;

printf( \ for(i = 0 ; i < 6 ; i++) scanf(\ fun(pstr) ;

printf(\

for(i = 0 ; i < 6 ; i++) printf(\}

4、给定程序MODI1.C中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。 例如,当x的值为9、y的值为11、z的值为15时,函数值为 -3.50。 请改正程序中的错误,使它能得出正确结果。

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

/************found************/ #define FU(m,n) (m/n) float fun(float a,float b,float c) { float value;

value=FU(a+b,a-b)+FU(c+b,c-b); /************found************/ Return(Value); }

main()

{ float x,y,z,sum;

printf(\ x y z: \ scanf(\

printf(\

if (x==y||y==z){printf(\ sum=fun(x,y,z);

printf(\}

5、给定程序MODI1.C中函数 fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num )为止: π 1 1 1

┄┄≈1 - ┄┄ + ┄┄ - ┄┄ + ... 4 3 5 7

例如, 程序运行后, 输入0.0001, 则程序输出3.1414。 请改正程序中的错误,使它能输出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include #include float fun ( float num ) { int s ;

float n, t, pi ;

t = 1 ; pi = 0 ; n = 1 ; s = 1 ;

/**************found**************/ while(t >= num) {

pi = pi + t ; n = n + 2 ; s = -s ;

/**************found**************/ t = s % n ; }

pi = pi * 4 ; return pi ; }

main( )

{ float n1, n2 ;

12

学海教育 内部资料 版权所有 翻印必究

printf(\ scanf(\ n2 = fun(n1) ;

printf(\}

6、给定程序MODI1.C中函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 请改正程序中的错误,使它能得出正确的结果。

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

void fun ( int * a, int n ) { int i, m, t, k ; for(i=0;i<2;i++) {

/**********found**********/ m=0;

for(k=i+1;k

/**********found**********/ if(a[k]>a[m]) k=m; t=a[i];a[i]=a[m];a[m]=t; } }

main( )

{ int b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i; for ( i=0; i

for ( i=0; i

}

return( y ) ; }

main( )

{ int n = 2000 ;

printf( \}

9、给定程序MODI1.C中函数 fun 的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。

例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 请改正程序中的错误,使它能得出正确的结果。

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

void fun ( char *s, int num[5] ) { int k, i=5;

for ( k = 0; k

/**********found**********/ num[i]=0; for (; *s; s++) { i = -1;

/**********found**********/ switch ( s )

{ case 'a': case 'A': {i=0; break;} case 'e': case 'E': {i=1; break;} case 'i': case 'I': {i=2; break;} case 'o': case 'O': {i=3; break;} case 'u': case 'U': {i=4; break;} }

if (i >= 0) num[i]++; } }

main( )

{ char s1[81]; int num1[5], i;

printf( \ gets( s1 ); fun ( s1, num1 );

for ( i=0; i < 5; i++ ) printf (\}

10、给定程序MODI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。

例如,若输入:I am a student to take the examination.,

则应输出:I Am A Student To Take The Examination.。 请改正程序中的错误,使程序能得出正确的结果。

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

/************found************/ include

/************found************/ void upfst ( char p ) { int k=0;

for ( ; *p; p++ ) if ( k )

{ if ( *p == ' ' ) k = 0; } else if ( *p != ' ' )

{ k = 1; *p = toupper( *p ); } }

main( )

{ char chrstr[81];

printf( \ gets( chrstr ); printf( \ %s\ upfst( chrstr );

printf( \ %s\\n\}

11、给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。

例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include int fun(int a,int b) { int r,t; if(a

/************found************/ t=a; b=a; a=t;

7、

例如,若给m输入 -100,给n输入90,则函数求得的一个根值为2.000。 请改正程序中的错误,使它能得出正确结果。

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

double funx(double x)

{ return(2*x*x*x-4*x*x+3*x-6); } double fun( double m, double n) {

/************found************/ int r; r=(m+n)/2;

/************found************/ while(fabs(n-m)<0.001)

{ if(funx(r)*funx(n)<0) m=r; else n=r; r=(m+n)/2; }

return r; }

main( )

{ double m,n, root;

printf(\ m n : \\n\ root=fun( m,n );

printf(\}

8、给定程序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 ;

13

学海教育 内部资料 版权所有 翻印必究

}

r=a%b; while(r!=0)

{ a=b; b=r; r=a%b; }

/************found************/ return(a); }

main()

{ int num1, num2,a;

printf(\ num1 num2: \ printf(\ num2= %d\\n\\n\ a=fun(num1,num2);

printf(\}

12、给定程序MODI1.C中函数 fun 的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。 例如,若输入\,则输出\。

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

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

int i;

for( i = 0; tt[i]; i++ )

/**********found***********/ if(( 'a' <= tt[i] )||( tt[i] <= 'z' ) ) /**********found***********/ tt[i] += 32; return( tt ); }

main( ) {

char tt[81];

printf( \ gets( tt );

printf( \}

13、给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。

例如,若输入整数:2310,则应输出:2、3、5、7、11。 请改正程序中的语法错误,使程序能得出正确的结果。

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

/************found************/ IsPrime ( int n ); { int i, m; m = 1;

for ( i = 2; i < n; i++ ) /************found************/ if !( n%i )

{ m = 0; break ; } return ( m ); }

main( )

{ int j, k;

printf( \enter an integer number between 2 and 10000: \); scanf( \

printf( \ for( j = 2; j <= k; j++ )

if( ( !( k%j ) )&&( IsPrime( j ) ) ) printf( \ printf(\}

14、给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。 例如,输入的数为:55 12 34,

输出结果应当是:a=55.0 , b=34.0 , c=12.0。 请改正程序中的错误,使它能得出正确结果。

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

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

/**********found**********/ float *k; if( *a<*b )

{ k=*a; *a=*b; *b=k; } /**********found**********/

if( *a>*c )

{ k=*c; *c=*a; *a=k; } if( *b<*c )

{ k=*b; *b=*c; *c=k; } }

main()

{ float a,b,c;

printf(\ a b c: \ scanf(\ printf(\ fun(&a,&b,&c);

printf(\}

15、给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

请改正函数fun中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include void fun(char *s) { int i,j;

for(i=0,j=0; s[i]!='\\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i];

/**********found**********/ s[j]=\}

main()

{ char item[80];

printf(\ : \

printf(\ string is : \\\ fun(item);

printf(\ : \\\}

16、给定程序MODI1.C中函数fun的功能是: 交换主函数中两个变量的值。例如: 若变量a中的值原为8,b中的值为3。程序运行后a中的值为3, b中的值为8。

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

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

#include

/*********found**********/ void fun(int x,int y) {

int t;

/*********found**********/ t=x;x=y;y=t; }

main() {

int a,b; a=8;b=3; fun(&a,&b);

printf(\ %d\\n\}

17、给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a 中的值原为8,b中的值原为3, 程序运行后 a 中的值为 3,b中的值为8。 请改正程序中的错误,使它能得出正确的结果。

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

int t ;

/**************found**************/ t = x ; x = y ;

/**************found**************/ return(y) ; }

main() {

int a = 3, b = 8 ;

printf(\ %d\\n\ b = fun(&a, b) ;

printf(\ %d\\n\}

18、给定程序MODI1.C中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、??

14

学海教育 内部资料 版权所有 翻印必究

例如,若给n输入7,该项的斐波拉契数值为:13。 请改正程序中的错误,使它能得出正确结果。

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

/**********found**********/ switch(g);

{ case 0: return 0;

/**********found**********/ case 1 ;case 2 : return 1 ; }

return( fun(g-1)+fun(g-2) ); }

main()

{ long fib; int n;

printf(\ \ fib=fun(n);

printf(\}

19、给定程序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(\}

20、给定程序MODI1.C中函数 fun 的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。 若high的值为: 100, 则函数的值为: 732。

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

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

#include #include int fun( int high )

{ int sum = 0, n=0, j, yes;

/************found************/ while ((high >= 2) && (n < 10) { yes = 1;

for (j=2; j<=high/2; j++ ) if (high % j ==0 ){

/************found************/ yes=0; break }

if (yes) { sum +=high; n++; } high--; }

return sum ; }

main ( ) {

printf(\}

21、给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。 ┌ 10 (n=1) fun(n)=┥

└ fun(n-1)+2 (n>1)

例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 请改正程序中的错误,使它能得出正确结果。

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

/************found************/ fun ( n ) { int c;

/************found************/ if(n=1) c = 10 ; else

c= fun(n-1)+2; return(c); }

main()

{ int n;

printf(\ n : \ printf(\}

22、给定程序MODI1.C中fun函数的功能是: 根据整型形参m,计算如下公式的值。

1 1 1 t = 1 - ----- - ----- - …… - -----

2 3 m

例如,若主函数中输入5,则应输出 -0.283333。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除, 使它能计算出正确的结果。

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

double t = 1.0; int i;

for( i = 2; i <= m; i++ )

/**********found**********/ t = 1.0-1 /i;

/**********found**********/ _______; }

main() {

int m ;

printf( \ scanf( \

printf( \}

23、给定程序MODI1.C中 fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。

例如, 给字符串 s 输入:AAaaBBb123CCccccd,则应输出结果:upper = 6, lower = 8。

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

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

/**********found**********/ void fun ( char *s, int a, int b ) {

while ( *s )

{ if ( *s >= 'A' && *s <= 'Z' ) /**********found**********/ *a=a+1 ;

if ( *s >= 'a' && *s <= 'z' ) /**********found**********/ *b=b+1; s++; } }

main( )

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库二级C语言上机考试复习资料,共有50套题目(3)在线全文阅读。

二级C语言上机考试复习资料,共有50套题目(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/573299.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: