2012计算机二级题库

发布时间 : 星期日 文章2012计算机二级题库更新完毕开始阅读

赛德最新预测题库

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( )

{ char s[100]; int upper = 0, lower = 0 ; printf( \ \ gets ( s ); fun ( s, & upper, &lower );

printf( \ lower = %d\\n\}

24、给定程序MODI1.C中 fun 函数的功能是:求 s = aa… aa - ... - aaa - aa - a

(此处 aa? aa 表示 n 个 a, a 和 n 的值在 1 至 9 之间) 例如 a = 3, n = 6, 则以上表达式为: s = 333333 - 33333 - 3333 - 333 - 33 - 3 其值是:296298

a 和 n 是 fun 函数的形参,表达式的值作为函数值传回 main函数。 请改正程序中的错误,使它能计算出正确的结果。

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

#include long fun (int a, int n) { int j ;

/**************found**************/ long s = 0, t = 1 ; for ( j = 0 ; j < n ; j++) t = t * 10 + a ; s = t ;

for ( j = 1 ; j < n ; j++) {

/**************found**************/ t = t % 10 ; s = s - t ; }

return(s) ; }

main( )

{ int a, n ;

printf( \ scanf( \

printf( \ function is: %ld\\n\}

25、给定程序MODI1.C中 fun 函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如, 若输入

\, 则应输出 \。 请修改程序中的错误之处, 使它能得出正确的结果。

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

int k = 0;

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

/**********found***********/ if( p == ' ' ) {

k = 0;

/**********found***********/

* (p-1) = toupper( *( p - 1 ) ) } } else k = 1; }

main() {

char chrstr[64]; int d ;

printf( \ gets(chrstr); d=strlen(chrstr) ; chrstr[d] = ' ' ; chrstr[d+1] = 0 ;

printf(\ %s\ fun(chrstr);

printf(\ %s\} 26

例如,若q的值为: 50.0,则函数值为: 49.394948。 请改正程序中的错误,使程序能输出正确的结果。

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

double fun( double q ) { int n; double s,t; n = 2; s = 2.0;

while (s<=q) {

t=s;

/************found************/ s=s+(n+1)/n; n++; }

printf(\

/************found************/ return s; }

main ( ) {

printf(\}

27、给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。

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

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

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

{ int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss) { sl++;

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

while(*tt) { tl++;

/**********found**********/

17

赛德最新预测题库

(*tt)++; }

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

main()

{ char a[80],b[80];

printf(\ \

printf(\ \ printf(\}

28、给定程序MODI1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。 请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

#include

void fun( int *s, int n ) {

/**********found**********/ int i, one=0, zero ; for(i=0; i

/**********found**********/ switch( s[i] ); {

/**********found**********/ case 0 : zero++; case 1 : one ++; }

printf( \ zero : %d\\n\ zero); }

main()

{ int a[20]={1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0}, n=20; fun( a, n ); }

29、给定程序MODI1.C中函数 fun 的功能是:判断ch中的字符是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在串的最后。

请改正程序中的错误,使它能进行正确的操作。

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

/**********found**********/ void fun(char str, char ch )

{ while ( *str && *str != ch ) str++; /**********found**********/ if ( *str == ch ) { str [ 0 ] = ch;

/**********found**********/ str[1] = '0'; } }

main( )

{ char s[81], c ;

printf( \ gets ( s ); printf (\ c = getchar(); fun(s, c) ;

printf( \ is %s\\n\ s); }

30、给定程序MODI1.C中,函数fun的功能是求矩阵(二维数组)a[N][N]中每行的最小值,结果存放到数组b中。

{ int i, j;

for (i=0; i

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

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

main()

{ int a[N][N]={{1,4,3,2},{8,6,5,7},{11,10,12,9},{13,16,14,15}},b[N]; int i;

fun(a,b);

for (i=0; i

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

1 1 1 1 y = 1 + ----- + ----- + ----- + …… + -----

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

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

double fun ( int m ) { 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( \}

32、给定程序MODI1.C中,函数fun的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后的数列在主函数中输出。例如,有10个正整数如下:

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

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

#include #define N 10

int findmid(int a, int b, int c) { int t;

t = (a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b)); /**********found**********/ return b; }

void fun(int x[]) { int i,a,b,c,t[N];

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

{ a=t[i];b=t[i+1];c=t[i+2]; /**********found**********/ t[i+1]=findmid(a,b,c); }

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

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

void fun(int a[][N], int b[])

18

赛德最新预测题库

}

main()

{ int i, x[N]={6,5,7,23,18,5,8,21,45,38}; for(i=0; i

for(i=0; i

33、给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。

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

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

int a[3][3],sum; int i,j;

/*********found**********/ ______;

printf(\ for (i=0;i<3;i++) { for (j=0;j<3;j++)

/*********found**********/ scanf(\ }

for (i=0;i<3;i++) sum=sum+a[i][i];

printf(\}

main() {

fun(); }

34、给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,在调用fun函数之前给a输入字符串:ABCDEFGHIJK, 调用函数之后,字符数组b中的内容则为:ABC DEF GHI JK。 请改正程序中的错误,使它能得出正确结果。

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

void fun(char *p, char *b) { int i, k=0; while(*p) { i=1;

while( i<=3 && *p ) { /**********found**********/ b[k]=p;

k++; p++; i++; } if(*p) {

/**********found**********/ b[k++]=\ } }

b[k]='\\0'; }

main()

{ char a[80],b[80];

printf(\ \ gets(a); printf(\ puts(a); fun(a,b);

printf(\ \ puts(b); printf(\}

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

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

2 3 4 m 例如,若输入 5,则应输出 2.283333。

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

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

double t = 1.0; int i;

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

/**********found**********/ t += 1.0/k;

/**********found**********/ ________ }

main() {

int m;

printf( \ scanf( \

printf( \}

36、给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。

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

#include double fun(int n) {

double result=1.0;

while (n>1 && n<170) /*********found*********/ result*=--n;

/*********found*********/ return _____; }

main() {

int n;

printf(\ scanf(\

printf(\}

37、给定程序MODI1.C中函数 fun 的功能是:实现两个整数的交换。 例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60 请改正程序中的错误,使它能得出正确的结果。

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

/**********found**********/ void fun ( int a, b ) { int t;

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

main ( )

{ int a, b;

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

printf (\ b = %d\\n \}

38、给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。

例如,当s所指字符串中的内容为:\,t所指字符串的内容为:\,则函数返回整数3。

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

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

int fun (char *s, char *t) {

int n; char *p , *r; n = 0;

while ( *s )

{ p = s; r = t; while ( *r )

if ( *r == *p ) {

19

赛德最新预测题库

/************found************/ r++; p++ }

else break;

/************found************/ if ( r == '\\0' ) n++; s++; }

return n; }

main() {

char s[100], t[100]; int m;

printf(\ printf(\ m = fun( s, t);

printf(\ m = %d\\n\}

39、给定程序MODI1.C中函数 fun 的功能是:计算

S = f(-n) + f(-n+1) +?+ f(0) + f(1) + f(2) +?+ f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下: ┌(x+1)/(x-2) x>0 且 x≠2 f(x) = ┤0 x=0 或 x=2 └(x-1)/(x-2) x<0

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

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

/************found************/ f( double x) {

if (x == 0.0 || x == 2.0) return 0.0; else if (x < 0.0)

return (x -1)/(x-2); else

return (x +1)/(x-2); }

double fun( int n )

{ int i; double s=0.0, y; for (i= -n; i<=n; i++) {y=f(1.0*i); s += y;}

/************found************/ return s }

main ( ) {

printf(\}

40、由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh,查找结束。

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

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

#include #define N 10

/************found************/ void fun(int a[], int m ) { int low=0,high=N-1,mid; while(low<=high) { mid=(low+high)/2; if(m

/************found************/ else If(m > a[mid]) low=mid+1; else return(mid); }

return(-1); }

main()

{ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m; printf(\数组中的数据如下:\ for(i=0;i

if(k>=0) printf(\ else printf(\}

41、在主函数中从键盘输入若干个数放入数组中, 用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0, 则程序的运行结果为:19.250000。

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

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

/************found************/ int sum = 0.0; int c=0, i=0; while (x[i] != 0) { if (x[i] > 0) {

sum += x[i]; c++; } i++; }

/************found************/ sum \\= c; return sum; }

main( )

{ int x[1000]; int i=0;

printf( \ do

{ scanf(\ } while (x[i++] != 0); printf(\}

42、给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。

请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include #include typedef struct aa { int data;

struct aa *next; } NODE;

NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i;

/**********found***********/

p=(NODE )malloc(sizeof(NODE)); h=p;

p->next=NULL; for(i=1; i<=n; i++)

{ s=(NODE *)malloc(sizeof(NODE));

s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; }

/**********found***********/ return p; }

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

printf(\ LIST :\\n\\n HEAD \ while(p)

{ printf(\ p=p->next; }

printf(\

20

联系合同范文客服:xxxxx#qq.com(#替换为@)