当前位置:文档之家› 计算机二级 南开百题程序改错题要点

计算机二级 南开百题程序改错题要点

计算机二级 南开百题程序改错题要点
计算机二级 南开百题程序改错题要点

程序改错题

一.数学问题

用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……例如:若给n输入7,该项的斐波拉契数值为13。

{/**********found**********/

switch(g);/*改为;去掉*/

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

case 1 ;case 2 : return 1 ;/*改为case 1:*/ }

二.一维数组

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

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

b[k]=p;/*改为b[k]=*p*/

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

b[k++]=" "; }/改为b[k++]=??;

3.给定程序MODI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值返回。

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

if (i % k != 0)/*改为if(i%k==0)*/

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

if (k

4.给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所空白字符(包括Tab字符、回车符及换行符)。输入字符串用?#?结束输入

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

For (i = 0,t = 0; p[i] ; i++)

/*改为for(i=0,t=0;p[i];i++)*/

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

c[t]="\0";/*改为c[t]=?\0?*/

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

#include

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

char fun(char *s, char *t)

/*改为char *fun(char *s,char *t) */

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

(*ss)++;/*改为ss++ */

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

(*tt)++;/*改为tt++ */ }

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

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

p=(NODE )malloc(sizeof(NODE));/*改为(NODE *)*/ /**********found***********/

return p;/*改为return h*/}

printf("\n");}

main(){ NODE *head;

head=Creatlink(8,22);

outlink(head);}

7.给定程序MODI1.C中函数fun的功能是:利用插入排序对字符串的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。

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

n=strlen[ aa ];/*改为n=strlen(aa)*/

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

c=aa[i];/*改为ch=aa[i]*/

8.给定程序MOID1.C中函数fun的功能是:求出两个非零整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7

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

t=a; b=a; a=t;/*改为t=a;a=b;b=t*/ }

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

return(a);/*改为return (b);*/}

9.给定程序MODI1.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。

例如,若输入2 则输出

1 2

2 4

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

fun(int **a, int m)

/*改为fun(int (*a)[10],int m)*/

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

a[j][k] = k * j ;

/*改为a[j][k]=(k+1)*(j+1)*/}

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

S=f(-n)+f(-n+1)+…+f(0)+f(1)+…+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

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

f( double x)/*改为double f(double x)*/

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

return s }/*改为return s;*/

11.给定程序MOID1.C中函数fun的功能是:找出100至n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。

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

k=n;/*改为k=i*/

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

c=k%10/*改为c=k%10;*/

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

int fun(int x,int y)

/*改为int fun(int *x,int *y) */

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

t=x;x=y;y=t;/*改为t=*x;*x=*y;*y=t */}

13.给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s 中的数为:7654321,t中的数为:642。

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

void fun (long s, long t)

/*改为void fun(long s,long *t) */

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

while ( s < 0)/*改为while(s>0)*/

14.给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来并且作为函数值返回。

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

p=h;/* 改为p=h->next */

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

p=h->next;/*改为p=p->next */ }

15.给定程序MODI1.C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800。

long fun ( int k)

{/************found************/

if k > 0 /*改为if(k>0) */

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

else if ( k=0 )/*改为else if( k==0) */

16.给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的”单词”是指由空格隔开的字符串)。例如,若输入”I am a student to take the examination.”,则应输出”I aM A studenT tO takE thE examination.”

{/**********found***********/

if( p == ' ' )/*改为if(*p==? ?) */

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

* (p-1) = toupper( *( p - 1 ) ) /* 改为此句末尾加; */ 17.给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。例如:当字符串中的内容为:”abcdabfabcdx”,t中的内容为:”ab”时,输出结果应是:abcdx。当字符中内容为:”abcdabfabcdx”,t中的内容为:”abd”时,则程序输出未找到信息:not be found!。

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

a = Null;/*改为a=NULL */

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

if ( r == p ) { r++; p++; }

/*改为if(*r==*p) {r++;p++;} */

18.给定程序MODI1.C中函数fun的功能是:求整数x 的y次方的低3位值。例如:整数5的6次方为12625,此值的低3位值为625。

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

for(i=1; i

/*改为for(i=1;i<=y;i++) */

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

t=t/1000;/*改为t=t%1000; */

19.给定程序MODI1.C中函数fun的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数的个数。例如,n=8时,输入:193.199,195.673,195.757,196.051,196.092,196.596,196.5 79,196.763所得平均值为:195.838745,在平均值以上的实数个数应为:5

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

int j, c=0; float xa=0.0;

/*改为{ int j,c=0;float xa=0.0;*/

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

if (x[j] => xa)/*改为if(x[j]>=xa) */

20.给定程序MODI1.C中函数fun的功能是:将tt所指字符串的小写字母都改为对应的大写字母,其它字符不变。

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

if(( 'a' <= tt[i] )||( tt[i] <= 'z' ) )

/*改为if(( 'a' <= tt[i] )&&( tt[i] <= 'z' ) ) */

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

tt[i] += 32;/*改为t[i]-=32;*/

21.给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位上)。/***********found**********/

if(i%2 && s[i]%2==0)

/* 改为if(i%2||s[i]%2==0) */

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

t[i]='\0';/*改为t[j]=?\0?*/

22.给定程序MODI1.C中函数fun和funx的功能是:用二分法求方程0

6

3

4

22

3=

-

+

-x

x

x的一个根,并要求绝对误差不超0.001。例如,若给m输入-100,给n 输入90,则函数求得一个根值为2.000。

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

{ int r;/*改为double r; */

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

while(fabs(n-m)<0.001)

/*改为while(fabs(n-m)>0.001) */

23.给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。

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

s[j]=s[i]; /* 改为s[j++]=s[i]; */

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

s[i]='\0'; /*改为s[j]=?\0?;*/}

24.给定程序MODI1.C中函数fun的功能是:计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16807,其低3位数的和值是15。

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

d=0; s=0;/*改为d=1 */

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

d=d\10;/*改为d=d/10; */ }

25.给定程序MODI1.C中函数fun 的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。

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

{ a2=k/1O; /*改为a2=k/10; */

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

return k; /*改为return i */ }

26.给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序

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

for ( i=j+1; i

/*改为for(i=j+1;i<=n-1;i++) */

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

t=i;/* 改为p=i; */

27.给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。

┌10 (n=1)

fun(n)= ┥

└fun(n-1)+2 (n>1)例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。

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

fun ( n ) /* int fun( n) */

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

if(n=1) /* if(n==1) */

28.给定程序MODI1.C中函数fun的功能是:给一维数组a输入任意4个整数,并按下例的规律输出。例如输入1、2、3、4,程序运行后将输出以下方阵。

4 1 2 3

3 4 1 2

2 3 4 1

1 2 3 4

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

void fun(int a)

/*改为void fun(int a[M])或void fun(int *a) */

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

aa[j]=a[j-1];/*改为a[j]=a[j-1] */

29.给定程序MODI1.C中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

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

void fun(int a,int b,int c)

/*改为int fun(int a,int b,int c) */

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

else retrun 1 /*改为else return 1; */}

30.给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII 码升序排序后输出。例如,若输入:edcba,则输出:abcde。/**********found***********/

for( i = strlen( t ); i; i-- )

/*改为for(i=strlen(t)-1;i;i--) */

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

if( t[j] < t[ j + 1 ] )

/* 改为if(t[j]>t[j+1]) */

31.给定程序MODI1.C中函数fun的功能是:输出M 行M列整数方阵,然后求两条对角线上元素之和,返回此和数。

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

int fun(int n, int xx[][])

/*改为int fun(int n,int xx[M][M]) */

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

printf( "%f ", xx[i][j] );

/*改为printf(“%d”,xx[i][j]); */

32.给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。/**********found***********/

s=p;/*改为p=s+n */

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

} while(*p); /*改为while(*p++); */

33.给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z 转换为A,z转换为a),其它字符不变。

{/**********found***********/

while(*s!='@')

/*改为while(*s!=?\0?) */

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

(*s)++; /* 改为s++; */ }}

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

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

if(P==n) return -1;

/*改为if(p==n) return –1; */

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

a[i+1]=a[i];/*改为a[i]=a[i+1]; */

35.已知一个数列从第0项的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。例如:当n=10时,程序的输出结果应为:23.197745。

/************FOUND************/

fun(int n)/*改为double fun(int n) */

/************FOUND************/

return sum /*改为return sum; */}

36.给定程序MODI1.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,则main函数输出

例如,若输入2则输出:

12┇若输入4则输出

24┇ 1 2 3 4

2 4 6 8

3 6 9 12

4 8 12 16

/**************FOUND**************/

fun(int **a, int m)

/*改为fun(int a[M][M],int m) */

/**************FOUND**************/

a[j][k] = k * j ;}

/*改为a[j][k]=(j+1)*(k+1);*/

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

/**********FOUND***********/

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

/*改为p=(NODE *)malloc(sizeof(NODE)); */

/**********FOUND***********/

return p; /*改为return h */}

38. 给定程序MODI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输入此文本行(这里的”单词”是指由空格隔开的字符串)。例如,若输入:I am a student to take examiniation.,则应输出:I /************FOUND************/

include (stdio.a)

/*改为#include */

/************FOUND************/

upfst ( char p )/*改为upfst(char *p) */

39.给定程序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。

/************FOUND************/

#define FU(m,n) (m/n)

/*改为#define Fu(m,n) (m)/(n) */

/************FOUND************/

Return(Value);/*改为return(value); */}

40.给定程序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 函数。

/**************FOUND**************/

long s = 0, t = 1 ;

/*改为long s=0,t=0; */

/**************FOUND**************/

t = t % 10 ; /*改为t=t/10 */

41.给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。例如,若输入:77777,则输出将是:32767。/**********FOUND**********/

n= *P-'o'; /*改为n=*p-…0?;*/

/**********FOUND**********/

{ n=n*7+*P-'o';

/*改为n=n*8+*p-…0?;*/

42.给定程序MODI1.C中函数fun的功能是:按顺序给s 所指数组中元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指数组中。若s所指数组中的元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。

/**********FOUND**********/

sun=0.0;/* 改为sum=0.0 */

/**********FOUND**********/

if(i+1%5==0) /*改为if((i+1)%5==0) */

43.在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0则程序的运行结果为:19.250000。{/************FOUND************/

int sum = 0.0;/*改为double sum=0.0 */

/************FOUND************/

sum \= c;/*改为sum/=c;*/

44.给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为:”ABCDE”时,则t中的字符串应为:”ABCDEEDCBA”。

/************FOUND************/

for( i=0; i<=s1; i ++)

/*改为i<=sl 注意是sl不是s1 */

/************FOUND************/

t[sl] = '\0';}/*改为t[2*sl]=?\0?*/

45.给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s 中的数为:7654321时,t中的数为:7531。

/************FOUND************/

void fun (long s, long t)

/*改为void fun(long s,long *t) */

/************FOUND************/

sl = sl*100;/* 改为sl=sl*10; */ }}

46.给定程序MODI1.C中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

/**************FOUND**************/

for(i=0; i<=3; i++)

/* 改为for(i=1;i<=3;i++) */

/**************FOUND**************/

if(k>=1 && k<=6)

/*改为if(k>=0&&k<=6) */

47.给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串入在w所指的数组中。在此处,要求t1和t2所指字符串长度相同。例如,当s所指字符串的内容为:”abcdabfab”,t1所指子串的内容为:”ab”,t2所指子串中的内容为:”99”时,结果在w 所指的数组中的内容应为:”99cd99f99”。

/************FOUND************/

while ( r )/*改为while(*r) */

/************FOUND************/

while ( *r ){ *a = *r; a++; r++ }

/*改为while(*r){*a=*r;a++;r++;} */

48.给定程序MODI1.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。

/**************FOUND**************/

if(t=0)/*改为if(t==0) */

/**************FOUND**************/

zero=count;/*改为*zero=count; */

49.给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为:7654321时,t中的数为:642。

/************FOUND************/

void fun (long s, long t)

/*改为void fun(long s,long *t) */

/************FOUND************/

while ( s < 0)

/*while(s>0) */

50.给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:8765342,t中的数为:7531。

/************FOUND************/

t = 0;/*改为*t=0 */

/************FOUND************/

if (d%2 == 0)/*改为if(d%2!=0) */

51.给定程序MOD1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输入应该是:0。/************FOUND************/

{ long k; /*改为long k=1 */

/************FOUND************/

num\=10 ;/*改为num/=10; */

52.给定程序MODI1.C中函数fun的功能是:计算n!。例如,给n输入5,则输入120.000000。

/************FOUND************/

if n = = 0 /*改为if(n==0) */

/************FOUND************/

result *= n-- /* 改为result*=n--; */

53.给定程序MODI1.C中函数fun的功能是:将字符串中的内容逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出:dcba

/************FOUND************/

fun (char a) /*改为fun(char *a) */

/************FOUND************/

printf("%c" *a) ; }}

/*改为printf(“%c”,*a); */

57.给定程序MODI1.C中函数fun的功能是:用插入排序法将n个字符进行排序(降序)。(提示:插入法排序的思路是:先对数组的头两个元素进行排序,然后根据前两个元素的情况插入第三个元素,再插入第四个元素…)。

/************FOUND************/

While((b>=0)&&(t>aa[b]))

/*改为while((b>=0)&(t>aa[b])) */

/************FOUND************/

aa[b+1] = t }} /*添加;号*/

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

m

m

y

*

1

200

*

200

1

100

*

100

1

+

+

+

= 例如,若m=2000,则应输出:0.000160。

/************FOUND************/

fun ( int m )

/*改为double fun(int m) */

/************FOUND************/

for( i = 100, i <= m, i += 100 )

/*改为for(i=100;i<=m;i+=100) */

59.给定程序MODI1.C中函数fun的功能是:把字符串s中出现的每个字符,紧随其后重复出现一次,形成一个新串放在t中,且在t中把原相邻字符的位置进行了交换。例如:当s中的字符串为:”ABCDE”时,则t中的字符串应为:”BBAADDCCEE”。

{/************FOUND************/

int i, j;/*改为int sl,j,i; */

sl = strlen(s);

/************FOUND************/

j--; }/*改为j++ */

60.给定程序MODI1.C中函数fun的功能是:从字符串s 尾部开始,按逆序把在其中出现的每相邻的两个字符,紧随其后重复出现一次,放在一个新串t中,若字符串s中头部有剩余的单个字符也重复,放在t的最后。例如:当s中的字符串为:”ABCDE”时,则t中的字符串应为:”EDEDCBCDAA”

/************FOUND************/

for(i=sl,j=0;i>=0;i-=2)

/*改为for(i=sl-1,j=0;i>=0;i-=2) */

/************FOUND************/

if (i-1 >= 0) t[i++]=s[i-1];

/*改为if(i-1>=0) t[j++]=s[i-1]; */ }t[j] = '\0';}

61.给定程序MODI1.C中函数fun的功能是:将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列。(注意0为偶数)例如:当s中的字符串为:”ABCDEFG”时,则t中的字符串应

/************FOUND************/

if(sl%2) Sl-=2; else Sl--;

/*改为if(sl%2) sl-=2 else sl--; */

/************FOUND************/

t[2*sl] = '0';} /*改为t[2*sl]=?\0?;*/

62.给定程序MODI1.C中函数fun的功能是:从字符串s尾部开始,按逆序把相邻的两个字符交换位置,并依次把每个字符紧随其后重复出现一次,放在一个新串t 中。例如:当s中的字符串为:”ABCDE”,则t中的字符

串应为:”DDEEBBCCAA”

/************FOUND************/

sl = strlen(t); /*改为sl=strlne(s); */

/************FOUND************/

t[2*j] = '\0';}/*改为t[j]=?\0? */

63.给定程序MODI1.C中函数fun的功能是:把在字符串s中出现的每相邻的两个字符,紧随其后重复出现一次,放在一个新串t中,字符串s中尾部剩余的单个字符也重复,放在t的最后。例如:当s中的字符串为:”ABCDE”,则t中的字符串应

为:”ABABCDCDEE”。

/************FOUND************/

for (i=0, j=0; i

/*改为for(i=0,j=0;i

/************FOUND************/

t[j] ='0';}/*改为t[j]=?\0?; */

64.给定程序MODI1.C中函数fun的功能是:将在字符串s中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符的顺序排列。(注意0为偶数)例如:当s中字符串为:”ABCDE”时,则t中和字符串应为:”AACCEE”。/************FOUND************/

for (i=0, j=0; i

/*改为for(i=0,j=0;i

/************FOUND************/

t[2*sl] = '\0';} /*改为t[2*j]=?\0?;*/

65.给定程序MODI1.C中函数fun的功能是:把在字符串s中出现和每个字符紧随其后重复出现一次,形成一个新串放在t中,t中字符按原字符串中字符顺序排列。例如:当s中的字符串为:”ABCDE”时,则t中字符串应为:”AABBCCDDEE”。

/************FOUND************/

void fun (char s,char t)

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

/************FOUND************/

t[2*sl] = '0';} /*改为t[2*sl]=?\0?; */

66.给定程序MODI1.C中函数fun的功能是:将在字符串s中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列(注意0为偶数)例如:当s 中的字符串为:”ABCDEF”时,则t中的字符串应为:”EECCAA”/************FOUND************/

for (i=sl, j=0; i>=0; i--)

/*改为for(i=sl,j=0;i>=0;i-=2) */

/************FOUND************/

t[2*sl] = '\0';}/*改为t[2*j]=?\0?; */

67.给定程序MODI1.C中函数fun的功能是:把在字符串s中出现的每个字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中和逆序排列。例如:当s中的字符串为:”ABCDE”时,则t中的字符串应为:”EEDDCCBBAA”。

/************FOUND************/

for (i=1; i

/************FOUND************/

t[2*sl] = '0/';} /*改为t[2*sl]=?\0?; */68.给定程序MODI1.C中函数fun的功能是:将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符的顺序排序(注意0为偶数)例如:当s中字符串为:”ABCDEF”时,则t中的字符串应为:”BBDDEE”。/************FOUND************/

for (i=0, j=0; i

/*改为for(i=1,j=0;i

/************FOUND************/

j--; }/*改为j++; */

69.给定程序MODI1.C中函数fun的功能是:将未在字符串s中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排序,不去掉重复字符。例如:当s=”ABCDE”, t=”BDFGG”时,u中的字符串为”FGG”。

/************FOUND************/

for (i=0; i

/************FOUND************/

{ for (j=0; j

/*改为for(j=0;j

/************FOUND************/

u = '\0';/*改为*u=?\0?;*/}

70.给定程序MODI1.C 中函数fun的功能是:将既在字符串s中出现、又在字符串t中出现的字符形成一个新字符串放在u中,u中字符按原字符串字符顺序排序,但去掉重复字符。例如:当s=”ABBCDE”,t=”BDFG”时,u中的字符串为:”BD”。

/************FOUND************/

if (j>=tl) /*改为if(j

/************FOUND************/

u[k++] = s[i]; } } /*改为u[ul++]=s[i]; */

71.给定程序MODI1.C中函数fun的功能是:将未在字符串s出现、而在字符串t中出现的字符,形成一个新的字符串放在u中,u中字符原字符串字符顺序排列,但去掉重复字符。例如:当s=”ABCDE”,t=”BDFGG”时,u中的字符为:”FG”。

/************FOUND************/

if (k

/************FOUND************/

*u = '\0';/*改为u[ul]=?\0?; */}

72.给定程序MODI1.C中函数fun的功能是:将仅在字符串s中出现、而不在字符串t中出现的字符,和仅在字符串t中出现、而不在字符串s中出现的字符,构成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。例如,当s=”AABCDE”,t=”BDFGG”时,u中的字符串为:”ACEFG”。

/************FOUND************/

void fun (char s, char t, char u)

/*改为void fun(char *s,char *t,char *u) */

/************FOUND************/

if (j>sl)/*改为if(j==sl) */

73.给定程序MODI1.C中函数fun的功能是:将在字符串s中出现、而未在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序

排列,不去掉重复字符。例如:当s=”AABCDE”,t=”BDFG”时,u中的字符串为”AACE”。/************FOUND************/

void fun (char *s, char *t, char u)

/*改为void fun(char *s,char *t,char *u) */

/************FOUND************/

if (j>tl)/*改为if(j==tl) */

74.给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指数组中。例如,当s串为”ABCD”时,则t串中的内容应为”ABCDDCBA”。

/************FOUND************/

void fun (char s, char t)

/*改为void fun(char *s,char *t) */

/************FOUND************/

t[2*d-1] = '\0';/*改为t[2*d]=?\0?; */}

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

{/************FOUND************/

char ap, at, ch; /*改为char *ap,*at,ch; */

/************FOUND************/

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

/*改为if(*a){*c=*a;c++;a++;} */

76.给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出子串t的个数作为函数值返回。例如,当s所指字符串中的内容为”abcdabfab”,t所指字符串的内容为”ab”时,函数返回整数3。

/************FOUND************/

if ( *r == *p ) { r++; p++ }

/*改为if(*r==*p){r++;p++;} */

/************FOUND************/

if ( r == '\0' ) n++; /*改为if(*r==?\0?) n++; */

77.给定程序MODI1.C中函数fun的功能是:将a所指字符串中字符的倒序,和b所指字符串中的倒序,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为”abcdefg”,b所指字符串中的内容为”1234”时,则c 所指数组中的内容应该为”g4f3e2d1cba”;而当a所指字符串中的内容为”1234”,b所指字符串的内容为”abcdefg”时,则c所指数组中的内容应该为”4g3f2e1dcba”。

/************FOUND************/

strcpy( a, s1 ); /*改为strcpy(s1,a); */

/************FOUND************/

Myswap ( s1 ); Myswap( s2 );

/*改为myswap(s1); myswap(s2); */

78.给定程序MODI1.C中函数fun的功能是:将字符串s中最后一次出现的子字符串t1替换成字符串t2,所形成的新串放在w所指数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符串中内容为:”abcdabfabc”,t1中的内容为”ab”,t2中的内容为”99”,结果,在w所指数组中的内容应为”abcdabf99c”。

/************FOUND************/

while ( w )/*改为while(*w) */

/************FOUND************/

IF ( *r == *p ) { r++; p++; }

/*改为if(*r==*p){r++;p++;} */

79.给定程序MODI1.C中函数fun的功能是:输入两个双精度数,函数返回它们的平方根的和。例如输入:22.993612和84.57629812,输出为:y=13.991703。

/**********FOUND**********/

double fun(double *a, *b)

/*改为double fun(double *a,double *b) */

/**********FOUND**********/

c = sqrt( a ) + sqrt( b );

/*改为c=sqrt(*a)+sqrt(*b); */

80.给定程序MODI1.C中函数fun的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。例如输入圆的半径值:19.527,输出为:/**********FOUND**********/

fun ( r )/*改为float fun(float r) */

{/**********FOUND**********/

return 1/2*3.14159* r * r;

/*改为return 1.0/2*3.14159*r*r; */

81.给定程序MODI1.C中函数fun的功能是:求两个形参和乘积和商数,并通过形参返回调用程序。例如输入:61.82和12.65,输出为:c=782.023000 d=4.886957。

/**********FOUND**********/

void fun ( double a, b, double x,y )

/*改为void fun(double a,double b,double *x,double *y) */

{/**********FOUND**********/

x = a * b; y = a / b;}/*改为*x=a*b; *y=a/b; */

82.给定程序MODI1.C 中函数fun的功能是:统计字符串s中各音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如,若输入字符串:”THIs is a book”,则输出应该是:1 0 2 2 0

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

for ( k = 0; k

num[i]=0;/*改为num[k]=0; */

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

switch ( s )/*改为switch(*s) */

83.给定程序MODI1.C中函数fun的功能是:求出a数组中的最大数和次大数,并把最大数和a[0]中的数对调,把次数最大数和a[1]中的数对调。

/**********FOUND**********/

for ( k = 1; k < n; k++ )

/*改为for(k=0;k

/**********FOUND**********/

t= a[0]; a[m1]=a[0]; a[m1] = t;

/*改为t=a[0];a[0]=a[m1];a[m1]=t; */

/**********FOUND**********/

t= a[1]; a[m2]=a[1]; a[m2] = t;

/*改为t=a[1];a[1]=a[m2];a[m2]=t;*/}

84.给定程序MODI1.C中fun函数的功能是:判断两个指针所指的存储单元中的值的符号是否相同,若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。

/**********FOUND**********/

fun ( double *a, *b )

/*改为fun(double *a,double *b) */

{/**********FOUND**********/

if ( a * b > 0.0 )/*改为if((*a)*(*b)>0.0) */

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

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

void fun(char str, char ch )

/*改为void fun(char *str,char ch) */

{ while ( *str && *str != ch ) str++;

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

if ( *str == ch )/*改为if(*str!=ch) */

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

str[0]=?0?;/*改为str[1] = '0'; */ }}

86.给定程序MODI1.C中函数fun的功能是:把n个数,从大到小排序。

/**********FOUND**********/

void fun( int a, int n )

/*改为void fun(int *a,int n) */

/**********FOUND**********/

if ( a [i] < a[k] ) k = i;

/*改为if(a[i]>a[k]) k=i; */

87.文件MODI1.C中程序的功能是:读入一个整数m(4≤m≤10),例如4,程序将自动在a[0]至a[3]四个数组元素中分别放入1 4 9 16,且按逆序输出此4个元素:16 9 4 1。

/*************FOUND**************/

for ( j=0; j

/*改为for(j=0;j

/*************FOUND**************/

for( i = m-1; i >= 0; i-- )

printf( "%4f", *( a + i ) );

/*改为printf(“%4d”,*(a+i)); */}

88.文件MODI1.C中程序的功能是:读入一个整数m,计算如下公式的值。

t=1+1/2+1/3+…+1/m例如,若输入5,则应输出2.83333。#include

/************FOUND**********/

t += 1/i;

/*改为t+=1.0/i; */

/************FOUND**********/

printf( "\nThe result is %d\n", MyX( m ) );

/*改为p rintf(“\nThe result is %f\n”,Myx(m)); */

89.文件MODI1.C程序的功能是:读入一个整数m,计算如下公式的值。

t=1-1/2-1/3-...-1/m例如,若输入5,则应输出-0.283333。/************FOUND**********/

t = 1.0 -1.0/t;

/*改为t=t-1.0/i; */

/************FOUND**********/

scanf( "%d" &m )/*改为scanf(“%d”,&m); */ printf( "\nThe result is %lf\n", MyLim( m ) );}

90. 文件MODI1.C 程序的功能是:将十进制正整数m 转换成k进制(2≤k≤9)并输出。例如,若输入8和2,则应输入1000(即十进制数8转换成二进制表示是1000)。

/************FOUND**********/

for( ; i; i-- )______________

/*填入printf(“%”,aa[i-1]); */}

/************FOUND**********/

scanf( "%d %d", &m, &b );

/*改为scanf(“%d %d”,&n,&b); */

91.文件MODI1.C中程序的功能是:判断两个整数m 的n是否互质(即是否有公共的因子)(m≠1,n≠1)。方法是:用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n 不互质;否则它们互质。例如,若输入187和85,则应输出NO(表示它们不互质,它们有公因子17)。若输入89和187,则应输入Yes(表示它们互质)。

/************FOUND**********/

for( k=1; k<=t; k++ )

/*改为for(k=2;k<=t;k++) */

/************FOUND**********/

scanf( "&d &d", &m, &n );

/*改为scanf("%d %d", &m, &n); */

91.文件MODI1.C中程序的功能是;统计一个英文句子中各小写的元音字母出现的次数。例如,若输入字符串:“I am glad when playing games”,则应输出:

a 4

e 2

i 1

o 0

u o

/************FOUND**********/

switch( s );/*改为switch(*s) */

/************FOUND**********/

for( i = 0; i < 6; i++ )

/*改为for(i=0;i<5;i++) */

93.给定程序MODI1.C中函数fun的功能是:用冒泡法对6个字符串进行排序。

/**************FOUND**************/

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

/*改为if(strcmp(*(pstr+i),*(pstr+j)>0) */

/**************FOUND**************/

*(pstr + i) = pstr + j ;

/*改为*(pstr+i)=*(pstr+j) */

printf( "Enter 6 str(1 str at each line): \n" ) ;

for(i = 0 ; i < 6 ; i++)

scanf("%s", pstr[i]) ;

fun(pstr) ;

printf("The strings after sorting:\n") ;

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

m

m y *14*413*312*211+++++

=

例如,若m=5,则应输出:1.463611。

/**************FOUND**************/

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

/**************FOUND**************/

y += 1 / (i * i) ;/*改为y+=1.0/(i*i) */

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

+-+-≈∏7

1

513114例如,程序运行后,输入0.0001,则程序输出3.1414。 /**************FOUND**************/

while(t >= num) /*改为while(fabs(t)>=num)*/ /**************FOUND**************/ t = s % n ; /*改为t=s/n;*/ } 99.给定程序MDOI1.C 中函数fun 的功能是:从m 个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,aver 返回平均分。例如,若输入8名学生成绩:80.5 60 72 90.5 98 51.5 88 64 则低于平均分的学生人数为:4(平均分为:75.5625)。 /**************FOUND**************/

t = s[k] ; /*改为t+=s[k]; */

/**************FOUND**************/ *aver = &ave ; /*改为*ave=ave; */ 100.给定程序MODI1.C 中,fun 函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。

/**************FOUND**************/ int i,j;

__________/* 填入sum=1; */

/**************FOUND**************/

scanf("%d",a[i][j]);

/*改为scanf(“%d”,&a[i][j]); */ }

101.给定程序MODI1.C 中,读入一个整数k(2≤k ≤10000),打印它的所质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。 /**************FOUND**************/ IsPrime (int n); /*; 去掉*/

/**************FOUND**************/

if !( n%i )/*改为 if(n%i==0) */

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

1

11

,,1112,11-+=+=

=An An A A A

例如,若n=10,则输出:0.617977。 /**************FOUND**************/

int fun (int n)

/*改为float fun(int n) */ { float A=1; int i;

/**************FOUND**************/

for (i=2; i

105.给定程序MODI1.C 中,函数fun 的功能是:实现两个整数的交换。例如a 和b 分别输入:60和65,输出为:a=65 b=60

/**************FOUND**************/

void fun ( int a, b)/*改为void fun(int *a,int *b) */ /**************FOUND**************/ t=b;b=a;a=t;/*改为t=*b;*b=*a;*a=t; */}

106.给定程序MODI1.C 中,函数fun 的功能是:计算并输出k 以同最大的10个能被13或17整除自然数之和。k 的值由主函数传入,若k 的值为500,则函数值为4622。

/**************FOUND**************/ while( (k>=2) && (mc<10) )

{ if ( ( k%13 = 0)|| (k%17 = 0) ) /*改为 if((k%13==0)||(k%17==)) */

/**************FOUND**************/ ____________ /*填入 } */

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

m

m t *13*312*211----

= 例如,若m

中的值为:则应输出:0.536389。

/**************FOUND**************/

for (i=2; i

/**************FOUND**************/

y-=1/(i*i);/*改为y-=1.0/(i*i)*/

108.给定程序MODI1.C 中,函数fun 的功能是:在字符串str 中找出ASCII 码值最大的字符,将其放在第一个位置上;并将该字符前的原向后顺序移动。例如,调用fun 函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:Eabcdfgh 。

/**************FOUND**************/ p=q+i;

/* 改为q=p+i; */ }

/**************FOUND**************/ while ( q

p) */

109.给定程序MODI1.C 中,函数fun 的功能是:将字符串a 中的所有字符复制到字符串b 中,要求每复制三个字符之后插入一个空格。例如,在调用 fun 函数之前给字符串a 输入:ABCDEFGHIJK 调用函数之后,字符串b 中的内容则为:ABC DEF GHI JK /**************FOUND**************/ while(*p)

{i=1; /*改为i=0;*/

/**************FOUND**************/

while( i<3 || *p )/*改为while(i<3&&*p) */

/**************FOUND**************/ if(*p) { b[k]=''; /* 改为b[k++]=??;*/ } }

110.给定程序MODI1.C中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,ASCII码值较大或相等的字符依次存入到c数组中,形成的字符串。例如,若a中的字符串为:aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。

{/**************FOUND**************/

int k=1;/*改为int k=0; */

/**************FOUND**************/

while(*p!=*q)/* 改为while(*p||*q) */

/**************FOUND**************/

if(*p<*q) c[k]=*q;/*改为if(*p<=*q) c[k]=*q; */ 111.给定程序MODI1.C中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

/**************FOUND**************/

s[j]=s[i];/*改为s[j++]=s[i] */

/**************FOUND**************/

s[j]="\0"; /*改为s[j]=?\0?;*/}

112.给定程序MODI1.C,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是:330。

{/**************FOUND**************/

j=0;/*改为j=1; */

t=j%x; m=j%y; n=j%z;

/**************FOUND**************/

while( t==0||m==0||n==0)

/*改为while(t!=0||m!=0||n!=0) */

计算机二级题库

模拟试题(一) 1. 填空题 请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串strl的后面。 例如:str仁“How de”’,str2= “you do?",结果输出:How do you do? 注意:部分源程序给岀如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语 句。 试题程序: #include #include #define N 40 void fun(char *str1,char *str2) { int i=0; char *p1=str1; char *p2=str2; while(【1】) i+ for(;【2】;i++) *(p1+i)=【3】; *(p1+i)='\0: } main() { char str1[N],str2[N]; clrscr(); printf("*****Input the string str1 & str2*****\n"); printf(" \nstr1:"); gets(str1); printf(" \nstr2:"); gets(str2); printf("**The string str1 & str2**\n"); puts(str1); puts(str2); fun(str1,str2); prin tf("*****The new string *****\n"); puts(str1); } 答案及评析: 【1】*(p1+i) 【2] *p2 【3】*p2++ 【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符‘ \0'时,while 循环结束,变量i停止累加。填空2 :指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符’\0'。填空3:指针p2最初指向字符串str2 的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在str1 后面的功能。 2. 改错题 下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入"edS,dAd",则输出"EDS, DAD" 请改正程序中的错误,使它能得到正确结果。

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1 https://www.doczj.com/doc/a013669824.html,work Information Technology Company.2020YEAR

程序编程题目 1、第一大类(交换类)共7道 2. 程序修改(第3套) 给定程序中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8. /**found**/ t=*x; *x=y; /**found**/ return(t); 2. 程序修改(第60套) 给定程序中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/ void fun(int *a,int *b) /**found**/ t=*b;*b=*a;*a=t; 2. 程序修改(第88套) 给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。 /**found**/ void fun(int *x, int *y) /**found**/ t=*x,*x=*y,*y=t; 2、第二大类(计算类)共22道2. 程序修改(第1套) 给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。 2/1+3/2+5/3+8/5+13/8+21/13 +……和值通过函数值返回main函数。例如n=5,则应输出:8.391667。 /**found**/ double fun(int n) /**found**/ s=s+(double)a/b; 2. 程序修改(第6套) 给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… /**found**/ switch(g) /**found**/ case 1:case 2:return 1;2. 程序修改(第13套) 给定程序中函数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。 /**found**/ long s=0,t=0; /**found**/ t=t/10; 2. 程序修改(第21套) 给定程序中函数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 f(x)= (x-1)(x-2) x<0 /**found**/ double f(double x) /**found**/ return s; 2. 程序修改(第27套) 给定程序中函数fun的功能 是:用递归算法求形参a的 平方根。求平方根的迭代公 式如下:x1=1/2(x0+a/x0)例 如:a为2时,平方根值为 1.414214 /**found**/ double fun(double a,double x0) /**found**/ if(fabs(x1-x0)>0.00001) 2 程序修改(第29套) 给定程序中函数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。 /**found**/ #define FU(m,n) (m)/(n) /**found**/ return (value); 2. 程序修改(第33套) 给定程序中函数fun的功能 是:根据整形形参m=1,计算 如下公式的值。 m=1+1/2*2+1/3*3+1/4*4+..+1 /m*m例如,若m中的值为 5,则应输出1.463611 /**found**/ for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ; 2. 程序修改(第37套) 给定程序中函数fun的功能 是:用下面的公式求π的近 似值,知道最后一项的近似 值小于指定数(参数num) 为止:例如程序0.0001,则 程序输出3.1414。 /**found**/ while((fabs(t))>=num) /**found**/ t=s/n 2. 程序修改(第45套) 给定程序中函数fun的功 能是:根据以下公式求π 值,并作为函数值返回。例 如,给指定精度的变量eps 输入0.0005时,应当输出 Pi=30140578.。 /**found**/ t=1.0; /**found**/ return(s*2); 2. 程序修改(第47套) 给定程序中函数fun函数功能 是:计算n!。例如,给n输 入5,则输出120.000000。 /**found**/ if (n==0) /**found**/ result *=n--; 2. 程序修改(第48套) 给定程序中函数fun的功能 是:根据整形形参m=1,计算 如下公式的值。 m=1+1/2*2+1/3*3+1/4*4+..+1 /m*m例如,若m中的值为 5,则应输出1.463611 /**found**/ for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ; 给定程序中函数fun的功能 是:计算并输出下列级数的 前n项的和Sn,直到Sn+1大 于q为止,q的值通过形参传 入。 Sn=2/1+3/2+4/3+…+(N+1)/N /**found**/ s=s +(double)(n+1)/n; /**found**/ return t; 2. 程序修改(第52套) 下列给定程序中函数fun的 功能是:按以下递推公式求 函数的值。 Fun=10 (n=1),fun(n-1)+2 (n>1) 例如,当给n输出5时,函 数值为18;当给n输入3 时,函数值为14. /**found**/ int fun(int n) /**found**/ if(n==1) 2. 程序修改(第58套) 给定程序中函数fun的功能 是:求K!,所求阶乘 的值作为函数值返回。例 如,若K=10,则应输出 3628800。 /**found**/ if(k>1) /**found**/ else if(k= =0) 2. 程序修改(第63套) 给定程序中函数fun的功能 是:计算整数n的阶乘。 /**found**/ result *=n--; /**found**/ return result; 2. 程序修改(第65套) 给定程序中,函数fun的功能 是:根据形参m,计算下列 公式的值: t=1+1/2+1/3+1/4+… +1/m例如,若输入5,则应 输出2.28333 /**found**/ t+=1.0/i; /**found**/ return t; 2. 程序修改(第77套) 给定程序中函数fun的功能 是:根据整形形参m,计算如 下公式的值。 Y=1/(100*100)+1/(200*200) +1/(300*300)+L+1/(m*m) /**found**/ double fun(int m) /**found**/ for(i=100;i<=m;i+=100) 2. 程序修改(第78套) 给定程序中函数fun的功能 是:根据整型形参n计算如 下公式的值。A1=1, A2=1/(1+A1),A3=1/(1+A2),An= 1/(1+A(n-1))例如:若n=10, 则应输出:0.617977. /**found**/ float fun(int n) /**found**/ for(i=2;i<=n;i++) 2. 程序修改(第85套) 下列给定程序中,函数fun的 功能是:传入一个整数m, 计算如下公式的值。 t=1/2-1/3-…-1/m例如,若输 入5,则应输出-0.283333. /**found**/ 2

最新二级C语言考试题库及答案程序改错专项练习 精华版

1 / 4 程序改错题(共15题) 1、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中所有元素的平均值,结果保留两位小数。 例如,当一维数组a 中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。 #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9},i; int aver,s; s = 0; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、在考生文件夹下,给定程序MODI.C 的功能是: 求二维数组a 中的最大值和最小值。 例如,当二维数组a 中的元素为: 4 4 34 37 3 12 5 6 5 程序的输出应为:The max is: 37 The min is: 3 。 #include #include void main() { int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min; max = min = a[0][0]; for ( i=0; i<3; i++) for ( j=1; j<3; j++) { if ( max < a[i][j] ) max = a[i][j]; /************found************/ if (min < a[i][j]) min = a[i][j]; } printf("The max is: %d\n", max); printf("The min is: %d\n", min); } 3、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中的最大元素及其下标。 例如,当一维数组a 中的元素为:1,4,2,7,3,12,5,34,5,9, 程序的输出应为:The max is: 34,pos is: 7 。 #include #include void main() { int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos; max = a[0]; pos = 0; for ( i=1; i<10; i++) /************found************/ if (max > a[i]) { max = a[i]; /************found************/ i = pos; } printf("The max is: %d ,pos is: %d\n", max , pos); } 4、在考生文件夹下,给定程序MODI.C 的功能是: 求二维数组a 中的最小值。 例如,当二维数组a 中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,min; min = a[0][0]; for ( i=1; i<3; i++) for ( j=0; j<3; j++) if (min > a[i][j]) { /************found************/ min == a[i][j]; } printf("The min is: %d\n", min); }

2015年计算机二级《C语言程序设计》机考操作题题库(4)

2015年计算机二级《C语言程序设计》机考操作题题库(4) 一、程序填空题(共50分) 1、请补充函数proc(),该函数的功能是:输出一个M×M矩阵,M 由键盘输入,矩 阵元素的值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写 的若干表达式或语句。 试题程序:

2、数组xx[M]保存着一组3位数的无符号正整数,其元素的个数通过变量m传人函数proc()。请补充函数proc(),该函数的功能是:从数组xx中找出十位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。 例如,当xx[8]={234 339 666 850 220 448 528 440)时,bb[5]={339 666 220 448 440}。注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。 试题程序:

3、请补充main()函数,该函数的功能是求方程kx2+px+j=0的根(方程的系数k,p,j 从键盘输入)。 例如,当k=1,p=-2,j=1时,方程的两个根分别是:x1=1.00,x2=1.00。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:

4、数组s全由字母字符组成,请补充fun()函数,该函数的功能是:把S中的字母转换成紧接着的下一个字母,如果原来的字母为“a”或“A”,则相应地转换成“b”或“B”,结果仍保存在原数组中。 例如。输入“aAZut”,则输出“bBAvu”。 注意:部分源程序给出如下。 请勿改动main()函数与其他函数中的任何内容,仅在fun()函数的横线上填写所需的若干表达式或语句。 试题程序:

2012计算机国二C语言等级考试题库(内部资料)程序改错

1.给定程序MODI1.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。(1)“t=0;”改为“t=1;”。(2)改成“return(2*s);” 2.给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为:7654321时,t中的数为:7531。(1)“void fun (long s, long *t)”(2)“sl = sl*10;” 3.给定程序MODI1.C中函数fun的功能是:用下面的公式求π的近似值,知道最后一项的近似值小于指定数(参数num)为止:例如程序0.0001,则程序输出 3.1414。(1) “while(t>=num)”改为 “while(fabs(t)>=num) ”。(2)“t=s%n;”改为 “t=s/n;”。 4.给定程序MODI1.C中函 数fun的功能是:把主函 数中输入的三个数,最大 的放在a中,最小的放在 c中,中间的放在b中。 例如a=55.0 b=34.0 c=12.0。(1)“float k;”。 (2)“if(*a<*c)”。 5. 给定程序MODI1.C中 函数fun的功能是:为一 个偶数寻找两个素数,这 两个素数之和等于该偶 数,并将这两个素数通过 形参指针传回主函数。(1) “y=1;”。(2)“d=a-i;”。 6. 给定程序MODI1.C中 函数fun的功能是:由形 参给定n个实数,输出平 均值以上(含平均值)的 实数个数。所的平均值为: 195.838745,在平均值以 上的实数个数应为:5。(1) “int j, c=0; double xa=0.0;”。(2)“if (x[j]>=xa)”。 7.例如:当s中的数为: 7654321时,t中的数为: 7531。(1)“*t=0;”(2) “if(d%2!=0)” 8.函数功能是:求出 以下分数序列的前n项 和。 2/1,3/2,5/3,8/5/13/ 8,21/13,…...。和值 通过函数值返回到 main函数。例如,n=5, 则应输出:8.391667。 (1)“fun(int n)”改为 “double fun(int n)”。 (2)“b+=c;”改为“b=c;”。 9.函数fun的功能是: 判断一个整数是否是 素数,若是返回1,否 则返回0。(1)“k++” 改为“k++;”(2) “if(m=k)”改为 “if(m==k)” 10.给定程序MODI1.C 中函数fun的功能是: 从整数1到55之间,选 出能被3整除、且有一 位上的数是5的那些 事,并且把这些数放 在b所指的数组中,这 些数作为函数值返回。 规定,函数中a1放个 位数,a2放十位数。 (1)“a2=k/10;”。(2) “return i;”。 11.给定程序MODI1.C 中函数fun的功能是: 计算小于形参k的最大 的10个能被13或17整 除的自然数之和。K的 值由主函数传入,若K 的值为500.则主函数 为4622。(1) “if((k%13==0)||(k%17 ==0))”。(2)“______” 填“}”。 12.已知一个数列从第 0项开始的前三项分别 是0、0、1以后的各项 都是它相邻的前三项 之和。给定程序 MODI1.C中函数fun的 功能是:计算并输出该 数列前n项的平方根之 和。n的值通过形参传 入。(1)“double fun(int n)”。(2)“return sum;”。 13.函数fun的功能是: 根据整形形参m的值: 计算如下公式的 值……例如:若m中的 值为5,则应输出: 0.536389。(1) “for(i=2; i<=m; i++)”(2) “y-=1.0/(i*i);”。 14.函数的功能是:将 字符串中的字符按逆 序输出,但不改变字符 串中的内容。例如字符 串abcd,则应输出dcba。 (1)“void fun(char *a)”。(2)“printf("%c", *a);”。 15.函数fun的功能是:求 三个数的最小公倍数。 X1=15 x2=11 x3=2(1) 改成“int fun(int x, int y, int z )”。(2)return j 16.函数fun的功能是:根 据整型形参m计算如下 公式的值。若主函数中输 入5,则应输出-0.283333。 (1)“t=t-1.0/i;”。 (2)填空“return t;” 17. 例如,若输入:edcba, 则应输出:abcde。(1) “for( i=strlen( t )-1; i; i- - )” (2)“if(t[j]>t[j+1])” 18.函数fun的功能是: 根据形参m的值 (2<=m<=9),在m行m 列的二维数组中存放 如下所示规律的数据, 由main函数输出。(1) “void fun(int a[][M], int m)”。(2) “a[j][k]=(k+1)*(j+1);”。 19.函数fun的功能是: 先从键盘上输入一个3 行3列矩阵的各个元素

C语言程序改错题

第1题【程序改错】 欧阳学文 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。 */ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; sl = strlen(s); for (i=0; i

/**********FOUND**********/ t[i] = s[sli]; for (i=0; i

第2题【程序改错】 功能:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 例如:若n = 5,则应输出:8.391667。 */ #include #include /**********FOUND**********/ fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /**********FOUND**********/ s = (double)a / b;

计算机二级题目及答案

一.选择题 1.C语句 x *=y+2;可以写作________。 B A、x=y+2 B、x=x *(y+2); C、x=2+y * x; D、x=x * y+2; 2.下列运算符中优先级最高的是________。 A A、>= B、= C、|| D、-= 3.在一个C程序中,________。 A A、main函数可以在任何函数之间出现 B、main函数必须出现在所有函数之后 C、main函数必须出现在所有函数之前 D、main函数必须出现在固定位置 4.C语言程序的三种基本结构是________。 A A、顺序、选择、循环 B、选择、递归、循环 C、顺序、循环、子程序 D、嵌套、选择、循环 5.若有以下定义:char a;int b;float c;double d;则表达式 a * b+d - c 值的类型是___A_____。 A、double B、float C、int D、char 6.字符型常量在内存中存放的是该字符对应的________。 D A、BCD代码值 B、内部码值 C、十进制代码值 D、ASCII代码值 7.下列说法中正确的是________。 D A、C语言程序总是从第一个函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序中的main()函数必须放在程序的开始部分 D、C语言程序总是从main()函数开始执行 8.若变量已正确定义,要将a和b中的数进行交换,下列选项中不正确的是________。 B A、t=a,a=b,b=t; B、a=t;t=b;b=a; C、t=b;b=a;a=t; D、a=a+b,b=a - b,a=a - b; 9.完成C源程序编辑后,到生成执行文件,C语言处理系统必须执行的步骤依次为________。B A、连接、运行 B、编译、连接 C、运行 D、连接、编译 10.若有说明和语句:int a=5,b;b=a++;此处变量b的值是________。C A、6 B、4 C、5 D、7 11.下面不是C语言整型常量的是________。 D A、-32768 B、01 C、0x11 D、081 12.sizeof(double)是一个________。 A A、整型表达式 B、双精度型表达式 C、字符型表达式 D、不合法的表达式 13.若定义x和y为double类型,当x=1时,y=x+3/2的值是________。B A、2.5 B、2.0 C、1 D、2

全国计算机等级考试二级教程C语言程序设计课后习题答案

全国计算机等级考试二级教程C语言程序设计课后习题答案

《全国计算机等级考试二级教程--C语言程序设计》课后习题答案 第一章 1.1 EXE 1.2 C OBJ EXE 1.3 顺序选择循环 第二章 一. 选择题 2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空题 2.14 11 12 2.15 4.2 4.2 2.16 { } 定义执行语句 2.17 关键字用户标识符 2.18 int float double 2.19 float a1=1; float a2=1; 2.20 存储单元 2.21 3.5 2.22 (a*b)/c a*b/c a/c*b 2.23 把常量10赋给变量s 2.24 位1或0 2.25 8 127 0111111 -128 10000000 2.26 32767 -32768 0000 2.27 10 8 16 三. 上机改错题 2.28 #include "stdio.h"; 删除行尾的";" main(); / * main function * / 删除")"后的";",注释中的*要紧靠“/”,即应为“/*”和“*/” 函数开始处遗失了一个“{” float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用 r = 5.0 ; s = 3.14159 * r * r ; printf("%f\n",s) 行尾遗失了“;” 函数结束处遗失了一个“}” 2.29 #include "stdio.h" main /* main function */ main后遗失了“()” { float a,b,c,v; /*a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0 行尾遗失了“;”

C语言程序改错基本题库电子版本

C语言程序改错基本 题库

北京石油化工学院 12级复习题 程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1234n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(ia[j]) { max=a[j]; m=j; } printf(“下标:%d\n最大值:%d”, j, max) } *3. 求 3+4 int a=3,b=4;

main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。 sum(x,y) { float z; z=x+y; return; } main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a

计算机程序改错题,及答案

11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif

计算机二级VB选择题及答案补充选择

1、下列叙述中,错误的是(B )。 A、VB程序代码不区分字母大小写 B、VB程序代码中使用“//”表示注释一行 C、VB程序代码中不能使用数字作为标识符的首字符 D、VB程序代码以“回车换行”作为语句结束标志 2、下列关于VB代码编辑时常用组合键的叙述错误的是(C )。 A、Ctrl+C表示复制选定代码 B、Ctrl+X表示剪切选定代码 C、Ctrl+P表示粘贴代码 D、Ctrl+Y表示删除整行代码 3、用户自定义数据类型的成员不能是(A)。 A、数组 B、日期型 C、货币型 D、定长字符串 4、如要表示一个在100~300000之间变化的整数,应使用(C)型变量。 A、Integer B、String C、Long D、Byte 5、下列赋值语句中,正确的是(C )。 A、i + j = 10 B、2i = j C、j = i + j D、i = j = 0 6、能正确表达2的3次幂的表达式是(B )。 A、2 * 3 B、2 ^ 3 C、2 ** 3 D、2 & 3 7、表达式123 + 23 Mod 100 \ 7的值是(D )。 A、6 B、126 C、20 D、132 8、表达式12000 + "123" & 100的值是(A )。 A、"12123100" B、12223 C、24300 D、"12223" 9、下列表达式中,非法的是(C )。 A、ab+c C、a≠b>c

D、a=b+c 10、表达式23 + 23 Mod 50 \ 7的值是(C)。 A、23 B、46 C、25 D、123 11、下列表达式的值为15的是(C )。 A、Int(14.6) B、Fix(14.6) C、Round(15.3)(该函数是按照指定的小数位数进行四舍五入运算的结果) D、Trunc(15.3) 12、返回值为非字符串的函数是(C )。 A、Ucase B、Str C、Asc D、Chr 13、Print方法紧密输出时,用(D )分隔多个表达式。 A、空格 B、逗号 C、冒号 D、分号 14、以下程序段中有(C )处错误。 ReDim a As Integer n + 3 = n a = 0 ; b = 1 Print n + 3 = n A、1 B、2 C、3 D、4 15、下列语句中能清除运行时在窗体中显示的文本的是(A )。 A、Form1.Cls B、Form1.Clean C、Form1.Release D、Form1.Clear 16、在立即窗口中执行语句:a=InputBox("请输入姓名:","姓名","张三"),出现输入对话框后 直接选择"确定"按纽后,a的值为(B)。 A、姓名 B、张三 C、请输入姓名: D、以上都不对 17、在属性窗口设置窗体的Moveable属性为False,使得窗体(B )。 A、不可见 B、不可移动

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

计算机基础C++程序改错复习题

? 第1题(分)题号:400 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ 《 #define N 20 #include <> int fun(int m) { /**********FOUND**********/ int s=0,i; ; for(i=1;i

s*=i; ) 第2题(分)题号:584 难度:中第1章/*-------------------------------------------------------【程序改错】 --------------------------------------------------------- 下列给定程序中函数fun()的功能是计算1/n!的值。 & 例如:给n输入5,则输出。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构。 , 试题程序: -------------------------------------------------------*/ #include <> #include <> /***********FOUND***********/ ~ int fun(int n) { double result =; if(n==0) return ; while(n>1 && n <170) /***********FOUND***********/ result *=n++ ; … result=1/result; return result; } void main() {

C语言程序改错题

第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include #include /**********FOUND**********/ double fun( r) double fun(double r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; s=1.0/2*3.14159*r*r; /**********FOUND**********/ return r; return s; } main() { float x;

printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; int sl,i; sl = strlen(s); for (i=0; i

计算机二级试题-改错题

第01套 给定程序MODI1.C中函数fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 改为:if (n==0) return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- 改为:result *= n--; return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。 第二处:语句后缺少分号。 第02套 给定程序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]; 改为:s[j++]=s[i];

相关主题
文本预览
相关文档 最新文档