文档库 最新最全的文档下载
当前位置:文档库 › 2011年9月份上机考试(程序改错题)

2011年9月份上机考试(程序改错题)

2011年9月份上机考试(程序改错题)
2011年9月份上机考试(程序改错题)

程序编程题目

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**/

t-=1.0/i;

/**found**/

return t;

2. 程序修改(第91套)

下列给定程序中,函数fun的功能是:求s的值。设S=(2*2/(1*3))*(4*2/(1*3))*(6*2/(5*7))*L*(2k)(2k)/((2k-1)*(2k+1))例如,当k为10时,函数的值应为1.533852。

/**found**/

double fun(int k)

/**found**/

return s ;

2. 程序修改(第95套)

给定程序中函数fun的功能是:求出以下分数列的前n项之和2/1,3/2,5/2,8/5, 13/8, 21/13…和值通过函数值返回到main函数。例如,若n=5,则应输出8.391667。

/**found**/

double fun(int n)

/**found**/

s=s+(double)a/b;

2. 程序修改(第96套)

给定程序中函数fun的功能是:给定n个实数,输出平均值以上(含平均值)的实数个数。例如,n=8时,输入193,199,195,673,195,757,196,051,196,092,196,596,196,579,196,763,使得平均值为195.838745,在平均值以上的实数个数应为5。

/**found**/

{

2. 程序修改(第99套)

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

/**found**/

double fun(int n)

/**found**/

return sum

3、第二大类(ASCII类)共4道

2. 程序修改(第12套)

给定程序中函数fun的功能是:逐个比较p、q所指两个字符,并把ASCII值或相等的字符依次存放在c所指数组中,形成一个新的字符串。例如,若主函数中a字符串为aBCDeFgH,b字符串为Abcd,则c中的字符串应为aBcdeFgH。

/**found**/

int k=0;

/**found**/

while (*p||*q)

2. 程序修改(第34套)

给定程序中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中。例如,字符串中的数据为”AABBCCDDEEFF”,则输出应当是”ABBCDDEFF”。

/**found**/

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

/**found**/

t [ j ]= ' \0 ' ;

2. 程序修改(第55套)

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

/**found**/

q=p+i;

/**found**/

while(q>p)

2. 程序修改(第79套)

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

/**found**/

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

/**found**/

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

3、第三大类(字母类)共8道

2. 程序修改(第8套)

给定程序函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变。例如,如输入

“Ab,cD”,则输出“AB,CD”。

/**found**/

if((tt[i]>=a′)&&(tt[i]<= ′z′)

/**found**/

tt[ i ]- =32;

2. 程序修改(第19套)

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

/**found**/

s[j++]=s[i];

/**found**/

s[j]=’\0’;

2. 程序修改(第38套)

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

/**found**/

while(*s)

/**found**/

s++;

2. 程序修改(第64套)

给定程序中函数fun的功能是:读入一行英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入”I am a student to take the examination”,则应输出”I Am A Student To Take The Examination”

/**found**/

#include

/**found**/

void upfst( char *p)

2. 程序修改(第80套)

给定程序中,函数fun的功能是:统计字符串各元音字母(即:A、E、I、O、U)的个数。注意字母不分大小写。例如,输入”THIs is a boot”,

则应输出是1 0 2 2 0。

/**found**/

void fun(char *s, int num[5])

/**found**/

num[k]=0;

/**found**/

switch(*s)

2. 程序修改(第81套)

给定程序中函数fun的功能是:分别统计字符串大写字母和小写字母的个数。例如,给字符串s输入”AaaaBBb123CCccccd”,则应输出结果:upper=5,lower=9.

/**found**/

void fun(char *s, int *a, int *b)

/**found**/

(*a)++;

/**found**/

(*b)++;

2. 程序修改(第90套)

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

/**found**/

if(*p==′ ′)

/**found**/

*(p-1)=toupper(*(p-1));

2. 程序修改(第93套)

给定程序中函数fun的功能是:将大写字母转换为对应的小写字母之后的第5个字母,若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;形参是字母W,则转换为小写字母b。

/**found**/

c=c+32;

/**found**/

c=c+5;

4、第四大类(高位或者低位类)共5道

2. 程序修改(第5套)

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

/**found**/

*t=0;

/**found**/

if(d%2==1)

2. 程序修改(第17套)

给定程序中函数fun的功能是:将长整型中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数:8642。

/**found**/

if(d%2==0)

/**found**/

s/=10;

2. 程序修改(第20套)

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

/**found**/

void fun(long s,long *t)

/**found**/

s1=s1*10;

2. 程序修改(第26套)

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

/**found**/

void fun (long s, long *t)

/**found**/

while (s>0)

2. 程序修改(第98套)

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

/**found**/

void fun(long s,long *t)

/**found**/

s1=s1*10;

5、第五大类(平均类)共5道

2. 程序修改(第40套)

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

/**found**/

double sum =0. 0;

/**found**/

sum/=c;

2. 程序修改(第49套)

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

/**found**/

sum=0.0;

/**found**/

if((i+1)%5==0)

2. 程序修改(第83套)

给定程序中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数

由函数值返回,平均分存放在形参aver 所指的存储单元中。例如,输入8名学生的成绩:80.5,60,72,90.5,98,51.5,88,64则低于平均分的学生人数为4(平均分为75.5625)

/**found**/

t+=s[k];

/**found**/

*aver=ave;

2. 程序修改(第97套)

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

/**found**/

sum=0.0;

/**found**/

if ((i+1)%5==0)

6、第六大类(学生类)共1道

2. 程序修改(第42套)

给定程序中函数fun的功能是:对N名学生的学生成绩,按从高到低的顺序找出前m(m<=10)名学生来,将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。/**found**/

t=calloc(m,sizeof(STU));

/**found**/

t[k]=b[j];

7、第七大类(ABC类)共4道

2. 程序修改(第7套)

给定程序中函数fun的功能是:将p所指字符串中所有字符复制到b中,要求复制第三个字符之后插入一个空格。例如,若给a输入字符串:ABCDEFGHIJK,调用函数后,字符数组b中的内容为:

ABC DEF GHI JK

/**found**/

b[k]=*p;

/**found**/

b[k]=' ';k++;

2. 程序修改(第32套)

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

/**found**/

void fun(char*s, char *t)

/**found**/

t[2*d]=’\0’;

2. 程序修改(第44套)

给定程序中函数fun的功能是:先将s所指字符串中的字符按逆序放到t所指字符串中,然后把s所指的字符串中的字符按正序连接到t所指串的后面。例如:当s所指的字符串为”ABCDE”时,t所指的字符串应为”EDCBAABCDE”

/**found**/

int i,s1;

/**found**/

t[i]=s[s1-i-1];

2. 程序修改(第54套)

给定程序中函数fun的功能是:先将在字符串s中的字符按正顺序放到t串中,然后把s中的字符按逆顺序放到他串后面。例如,当s中的字符串为”ABCDE”时,则t中的字符串应为”ABCDEEDCBA”。/**found**/

for(i=0;i

/**found**/

t[2*s1]='\0'

8、第八大类(abcd类)共6道

2. 程序修改(第15套)

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

/**found**/

void fun(char *a)

/**found**/

printf ( "%c" , *a);

2. 程序修改(第23套)

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

/**found**/

while( *r)

/**found**/

{*a=*r;a++;r++;}

2. 程序修改(第41套)

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

/**found**/

while (*w)

/**found**/

if ( *r ==*p )

2. 程序修改(第54套)

给定程序中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。例如,当字符串中的内容为“abcdabfabcdx”,t中内容为”ab”时,输出结果应是”abcdx”。当字符串中的内容为” abcdabfabcdx”, t中内容为”abd”时,则程序输出未找到信息”not be found!”。

/**found**/

a=NULL;

/**found**/

if(*r==*p)

2. 程序修改(第56套)

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

/**found**/

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

/**found**/

if(*r==′\0′)

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

为”a4b3c2d1efg”,而当a所指字符串中的内容为”1234”,b所指字符串中的内容

为”abcdefg”, c所指字符串中的内容1g2f3e4dcba”。

/**found**/

while(i

/**found**/

*c='\0';

9、第九大类(单向链表类)共3道

2. 程序修改(第72套)

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

p=s;

/**found**/

s->data=rand()%(m - 1);

/**found**/

return h;

2. 程序修改(第86套)

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

/**found**/

while (p!=NULL)

/**found**/

p= p - >next;

2. 程序修改(第87套)

给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。

/**found**/

p=h->next;

/**found**/

p=p->next;

10、第十类(字符串类)共12道

2. 程序修改(第2套)

给定程序中,函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。若字符传为aaas 1kaaas,

子字符串为as,则应输出2.

/**found**/

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

/**found**/

if(substr[k+1]== ′\0′)

2. 程序修改(第9套)

给定程序中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序排列。

/**found**/

for(j=i+1;j<6;j++)

/**found**/

*(pstr+i)=*(pstr+j);

给定程序中函数fun的功能是:将一个由八进制数字字符串组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。

例如,如输入77777,则输出32767。

/**found**/

n= *p-′0′;

/**found**/

n=n*8+*p-′0′;

2. 程序修改(第24套)

给定程序中函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。

/**found**/

char *fun(char (*sq)[M])

/**found**/

return sp;

2. 程序修改(第30套)

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

/**found**/

n=strlen (aa);

/**found**/

ch =aa [i];

2. 程序修改(第36套)

给定fun函数的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

/**found**/

r=t;

/**found**/

r=t;

2. 程序修改(第39套)

给点那个程序中函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

/**found**/

s [j++]=s [ i ];

/**found**/

s [ j ]= ' \ 0 ' ;

2. 程序修改(第50套)

给定程序中函数fun的功能是:删除指针p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。

/**found**/

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

/**found**/

c[t]=’\0’;

2. 程序修改(第59套)

给定程序中函数fun的功能是:将m(1≦m≦10)个字符串连接起来,组成一个新串,放入pt所指存储区中。例如,把三个串”abc”、”CD”、”EF”连接起来,结果是”abcCDEF”.

/**found**/

int k,q,i;

/**found**/

pt[i]=str[k][i];

2. 程序修改(第62套)

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

/**found**/

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

/**found**/

ss++;

/**found**/

tt++;

2. 程序修改(第68套)

给定程序中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79.

/**found**/

p=s ;

/**found**/

p++;

/**found**/

a[i]=0;

2. 程序修改(第75套)

给定程序中函数fun的功能是:统计子字符串”substr”在字符串str中出现的次数。例如,若字符串为”aaaslkaaas”,子字符串为as,则应输出2。

/**found**/

int fun(char *str, char *substr)

/**found**/

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

11、第十一类(无规则类)共27道

2. 程序修改(第4套)

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

/**found**/

t=a;a=b;b=t;

/**found**/

return (b);

}

2. 程序修改(第10套)

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

/**found**/

long k=1;

/**found**/

num/=10;

2. 程序修改(第11套)

给定程序中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,中间的放在b中,最小的放在c中。例如,若输入的数为:55 12 34,输出的结果应该是:a=55.0,b=34.0,c=12.0。

/**found**/

float k;

/**found**/

if(*a< *c)

2. 程序修改(第14套)

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

/**found**/

a2=k/10;

/**found**/

return i;

2. 程序修改(第18套)

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

/**found**/

while((high>=2) && (n<10))

/**found**/

yes=0;break;

2. 程序修改(第22套)

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

/**found**/

fun(int x,int y, int z) /**found**/

return j;

2. 程序修改(第25套)

由N个有序整数组成的数列已放在一维数组中,给定程序中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1.折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low﹤high),然后把m与中间位置(mid) 上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中,反之,下一次的查找范围落在中间位置之前的元素中。直到low﹥high,查找结束。

/**found**/

int fun(int a[],int m)

/**found**/

else if (m>a [mid])

2. 程序修改(第28套)

给定程序中函数fun的功能是:用选择法对数组中的n个元素进行排序。

/**found**/

p=j;

/**found**/

p=i;

2. 程序修改(第31套)

给定程序中函数fun的功能是:判断一个整数是否是素数,若是素数返回1,否则返回0.在main()函数中,若fun返回1输出YES,若fun返回0输出NO!

/**found**/

K++;

/**found**/

if (m==k)

2. 程序修改(第35套)

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

/**found**/

if(p==n) return-1;

/**found**/

a[i]=a[i+1];

2. 程序修改(第43套)

给定程序中函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若给m输入-100,n输入90,则函数求得的一个根为2.000.

/**found**/

double r;

/**found**/

while(fabs(n-m)>0.001)

2. 程序修改(第46套)

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

/**found**/

for(i=j+1;i

/**found**/

p=i;

2. 程序修改(第51套)

给定程序中函数fun的功能是:输出M*M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。

/**found**/

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

/**found**/

printf(“%d”,xx[i][j]);

2. 程序修改(第57套)

给定程序的功能是:读入一个整数k(2≤k≤10000)输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2,3,5,7,11。

/**found**/

IsPrime (int n)

/**found**/

if (!(n%i))

2. 程序修改(第61套)

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

/**found**/

void fun(int *a, int n)

/**found**/

m=i;

2. 程序修改(第66套)

给定程序中,函数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)

/**found**/

a[j]=a[j-1];

2. 程序修改(第67套)

给定程序中函数fun的功能是:从三个红球,5个白球,6个黑球中任意取出8个作为一组,进行

输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j代表白球数,k代表黑球数。

/**found**/

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

/**found**/

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

2. 程序修改(第69套)

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

/**found**/

k= i ;

/**found**/

c=k%10;

2. 程序修改(第70套)

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

/**found**/

d=1 ; s=0 ;

/**found**/

d=d/10 ;

2. 程序修改(第71套)

数列中,第一项值为3,后一项都比前一项的增5;给定程序中函数fun函数功能是:计算前n (4

/**found**/

int i,j=0,k,sum;

/**found**/

if (sum %4==2)

/**found**/

return j++;

2. 程序修改(第72套)

给定程序中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

/**found**/

y=1;

/**found**/

d=a-i;

2. 程序修改(第74套)

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

/**found**/

return 3;

/**found**/

return 1;

2. 程序修改(第82套)

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

线元素之和。

/**found**/

sum=0;

/**found**/

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

2. 程序修改(第84套)

给定程序中函数fun的功能是:将十进制正整数m转换成k(2<=k<=9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

/**found**/

void fun(int m, int k)

/**found**/

aa[i]=m%k;

/**found**/

printf(“%d”,aa[i-1]);

2. 程序修改(第89套)

函数fun实现的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为0的位的个数为3各位上数字值最大的是8。

/**found**/

if(t==0)

/**found**/

*zero=count;

2. 程序修改(第92套)

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

/**found**/

for(i=1;i<=y;i++)

/**found**/

t=t%1000;

2. 程序修改(第94套)

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

/**found**/

if((k%13= =0││(k%17= =0))

/**found**/

加}

2. 程序修改(第100套)

下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数返回。

/**found**/

if(i%k==0)

/**found**/

if(k==i)

程序改错题

程序改错题 (注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1. 输出计算结果。 main() { int a=b=10; a+=b+5; b*=a+=10; printf("%d%d\n",a,b); } 2. 输出计算结果。 #include main() { float x,y; scanf("%f",x); y=x*56/97; printf("%f\n",y); } 3. 输出计算结果。 main() { int x=2,y=3; z=(x++,y++); printf("%d",z); } 4. 输出运行结果。 main() { float a,b,c,v; a=2.0;b=3.0;c=4.0; v=a*b*c; printf("%f\n" ,v) } 5. 输出运行结果。 #include “stdio.h” main(){ float r,s; r=5.0; s=3.14159*r*r; printf("%d\n",s); }

输出程序运行结果。 #include main() { char ch; scanf("%c",ch); printf("%d\n",ch); } 7. 输入一整数判断是否能被13整除。main() { int i; scanf(“%d”,i); if(i%13==0) printf("yes"); else printf("no"); } 8. 输出程序运行结果。 main() { int a,b; float x,y,z; scanf("%f%f%f",&x,&y,&z); a=b=x+y+z; c=a+b; printf("%d%d%d",a,b,c); } 9. 输出程序运行结果。 #include main() { float x,y; scanf("%f",&x); y=2x+10; printf("%f\n",y); } 10. 输出程序运行结果。 main() { int a,b='B'; scanf("%d",a); printf("%c,",b++); printf("%d\n",b-a); }

程序改错基本题

程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1?2?3?4? ?n 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

计算机等级C语言上机考试改错题分类总结

计算机等级C语言上机考试改错题分类总结改错题总的出错分为两大类:语法出错和逻辑出错,此类题目是比较简单的题型,因此也是最容易把握的知 识点。 注意:错误都是出现在/**********fo un d**********/下面的这一行。 只是下面的这一行,其他行都没有错误。不能修改其他行。 做题方法: 1?首先拿到题目,先将题目详细看看,看清题目对做题时很有帮助的,特别是一些逻辑性较强的题目很有用。 有的同学可能会觉得题目太难了不想去读,其实在做改错题目时即便你不会也能把题目做对。 2 ?按照以下的步骤解决题目中的错误的内容,对应着修改。修改完之后保存即可。 1?关键字出错: 在二级C语言考试中仅仅考查学生对基本的关键字掌握情况,比如:整型就是int不是Int,知识点简单。 2?格式出错: 在考试中主要考查学生细心的程度,最喜欢考简单的知识点。 (1)少分号:考查的知识点:分号是语句结束的标志。 (2)for语句的格式:for(;;)中间用分号隔开不是用逗号隔开。 (3)if语句的格式:if(表达式),if后面必须加上小括号。 (4)命令行格式出错:如include命令少了#,正确的形式应该是#include “stdio.h” ; (5)常用函数格式: A ?函数名后面一定是花括号,不能是方括号,方括号只有在数组下标中用到。 B.要同时定义两种以上不同的数据类型的时候必须在不同类型的数据中间加上分号。 C ? seanf(“%d”,a[i][j]);应该改为scanf( “%d”,&a[i][j])。考查scanf输入函数的格式。 (6)数组: A ?数组下标引用时候只能用反括号。 B ?二维数组中的列下标不能省略。 (7)常用符号出错:

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;

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

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

上机考试题目

上机考试题目 操作题:1、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面,登录逻辑处理页面,欢迎页面。用户在登录页面输入用户名和密码,如果用户名为”admin”,密码为”123”,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。2、使用jsp+servlet完成一个java web项目,实现用户登录功能,两个页面,一个servlet。登录页面,欢迎页面,登录逻辑loginservlet。用户在登录页面输入用户名和密码,如果用户名为”admin”,密码为”123”,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。3、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面,登录逻辑处理页面,欢迎页面。用户在登录页面输入用户名和密码,如果数据库中存在,

则登录成功跳转到欢迎页面,如果失败,停留在登录页面。4、使用jsp+servlet 完成一个java web项目,实现用户登录功能,两个页面,一个servlet。登录页面,欢迎页面,登录逻辑loginservlet。用户在登录页面输入用户名和密码,如果数据库中存在,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。 5、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面,登录逻辑处理页面,欢迎页面。用户在登录页面输入用户名和密码,前台页面使用js进行验证,如果用户名或密码为空,则提示用户输入用户名和密码;如果用户名为”admin”,密码为”123”,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。 6、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面,登录逻辑处理页面,欢迎页面。用户在登录页面输入用户名和密码,前台页面使用js进行验证,如果用户名或密码为空,则提示用

VB程序设计例题-程序改错程序填空程序设计

'以下程序段用于输出杨辉三角:结果样式如图1 ' Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【arr(I, 1) = 1】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =arr(i-1,j-1)+arr(i-1,j) Next j Next I For I = 1 To n For j = 1 To I '**********SPACE********** 【print arr(I,j)】 Next j Print Next I End Sub Option Explicit '------------------------------------------------ '【程序改错】 '------------------------------------------------ '题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!, ' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数' 据错误。X、N都是由用户输入。 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:"))

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

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

程序改错2

【程序改错-1】 题目:在一个一维整型数组中找出其中最大的数及其下标。程序中共有4条错误语句,请改正错误。『错误答案』: 1 int fun(int *a,int *b,int n) 2 *b=c-a;} 3 scanf("%d",&a[i]); 4 max=fun(a,&p,N); 【程序改错-2】 题目:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。程序中共有4条错误语句,请改正错误。 『错误答案』: 1 scanf("%d",p++); 2 max=p; 3 if(★max★==★arr ★) 4 for(i=0;ii;i++) 或 for(p=arr;pj;j++) 或 for(j=0;jj;j++) 3 if(x[j]>x[★j★+★1★]) 或 if(x[★j★+★1]★ =0;i--) 或 for(i=N-2;0<=i;i--) 3 a[★i★+★1 ★]=a[i]; 4 break;} 『Turbo C——程序改错』【程序改错-5】 题目:将一个字符串中第m个字符开始的全部字符复制成为另一 个字符串。 程序中共有4条错误语句,请改正错误。 『错误答案』: 1 { char *p1,*p2; 或{ char *p2,*p1; 2 p1= ★str1★+★m★ -1; 或 p1=-1+★str1★+★m★; 3 while(*p1) 4 strcopy(str1,str2,m); 【程序改错-6】 题目:以下程序的功能是求如下表达式:请改正程序中的错误,使程序能得到正确的运行结果。 『错误答案』: 1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 或 for(i=1;n>=i;i++) 或 for(i=1;ii;i++) 4 s+=1.0/t 或 s=★s★+★1.0★/(float)t; 或 s=★s★ +★1.0★/t; 或 s+=1.0/(float)t 【程序改错-7】 题目:下面程序的功能是利用二维数组输出如图所示的图形。请改正程序中的错误,使程序能得到正确的运行结果。『错误答案』: 1 #define N 7 2 a[i][j]=' '; 3 z=z-1; 或 z--; 或 z=-1+z; 或 z=(n+1)/2-1; 或 z=(1+n)/2-1 4 printf("%c",a[i][j]); 【程序改错-8】 题目:输入一行英文文本,将每一 个单词的第一个字母变成大『错误 答案』: 1 fun(char *p) 或 fun(char p[]) 2 while(*p!='\0') 或 while(*p) 3 k=1;} 4 p++; 或 p=1+p; 或 ++p; 或 p=p+1; 【程序改错-9】 题目:将一个字符串中的大写字母 转换成小写字母。 例如:输入aSdFG输出为 asdfg。 『错误答案』: 1 char fun(char *c) 2 return *c; 或 return (*c); 或 return(*c); 3 { char s[81],*p=s; 4 putchar(*p); 或 printf("%c",*p); 【程序改错-10】 题目:将若干学生的档案存放在一 个文件中,并显示其内容。错误答 案』: 1 { struct student *p 2 FILE *fp; 3 for(p=stu;p<★stu★ +★3★;p++) 或 for(p=stu;★ stu★+★3★>p;p++) 或 for(p=stu;p<=★stu★+★2 ★;p++) 或 for(p=stu;★stu★+ ★2★>=p;p++) 4 printf("%4d %-10s %4d\n",(*p) .num ,p->name,(*p).age); 【程序改错-11】 题目:下列给定程序中,函数fun 的功能是:判断m是否为素数,若 是返回1,否则返回0。主函数的 功能是:按每行5个输出1-100 之间的全部素数。『错误答案』: 1 int fun( int m) 或 fun( int m) 2 for(i=2;ii;i++) 或 for(i=2;i<=m-1;i++) 或 for(i=2;m-1=>i;i++) 3 if(★m%i★==★0★) k=0; 4 return k; 或 return(k); 【程序改错-12】 题目:函数fun的功能是:用下面 的和式求圆周率的近似值。直 到最后一项的绝对值小于 等于0.0001。 错误答案』: 1 #include "math.h" 2 float s=0,t=1,p=1; 或 float s=0,p=1,t=1; 或 float p=1,s=0,t=1; 或 float p=1,t=1,s=0; 或 float t=1,p=1,s=0; 或 float t=1,s=0,p=1; 3 while(fabs(t)>1e-4) 或 while(0.00010.0001) 4 printf("pi=%f\n",★ s★*★4★); 【程序改错-13】 题目:下列给定程序中,函数fun 的功能是:求1到10的阶乘的 和。主函数和fun函数中, 各有两个错误,\『错误答案』: 1 for(i=1;i<=10;i++) 或 for(i=1;10>=i;i++) 或 for(i=1;i<11;i++) 或 for(i=1;11>i;i++) 2 s=★s★+★fac(i)★; 或 s+=fac(i); 3 float y=1.0; 或 float y=1; 4 return y; 或 return(y); 或 return (y); 【程序改错-14】 题目:函数fun的功能是:求1到 20的阶乘的和。请改正程序中的错 误,使它能得出正确的结果。 『错误答案』: 1 t=1; 或 t=1.0; 2 t=★t★*★j★; 或 t*=j; 3 s=★s★+★t★; 或 s+=t; 4 printf("jiecheng=%f\n",s); 【程序改错-15】 题目:函数fun的功能是:输出 Fabonacci数列的前20项,要求变 量类型定义成浮点型,输出 时只输出整数部分,输出项 数不得多于或少于20。 『错误答案』: 1 printf("%8.0f",f1); 或 printf("%f",f1); 2 for(i=1;i<20;i++) 或 for(i=1;20>i;i++) 或 for(i=2;i<=20;i++) 或 for(i=2;20>=i;i++) 或 for(i=1;i<=19;i++) 或 for(i=1;19>=i;i++) 3 f1=f2; 4 f2=f3; 【程序改错-16】 题目:函数fun的功能是:根据整 型形参m的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 『错误答案』: 1 for(i=2;i<=m;i++) 或 for(i=2;m>=i;i++) 或 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 或 3 return y; 或 return (y); 【程序改错-17】 题目:函数fun的功能是:实现交 换两个整数的值。例如给a和b 分别输入3和6 ,输出为 a=6 b=3『错误答案』: 1 void fun (int *a,int *b) 或 fun (int *a,int *b) 2 t=*a; 3 *a=*b; 4 *b=t; 【程序改错-18】 题目:函数fun的功能是:计算并 输出k以内最大的10个能被13 或17整除的自然数之和。k 的值由主函数传入,若k的值 为500,则函数值为4622。 请更改程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 while (★(2<=k)★&& ★(mc<10)★) 或 while (★(k>=2) ★&&★(10=k;k++) 【程序改错-21】 题目:函数fun的功能是:根据以 下公式求π值,并作为函数值 返回。例如,给指定精度的 变量eps输入0.0005时,应当 输出Pi=3.140578。 『错误答案』: 1 t=1; 或 t=1.0; 2 while (t>eps) 或 while (eps=eps) 或 while (eps<=t) 3 t=t*n/(2*n+1); 或 1.0*n/(2*n+1)*t 4 return (2*s); 或 return(2*s); 或 return (s*2); 或 return(s*2); 【程序改错-22】 题目:函数fun的功能是:求出两 个非零正整数的最大公约数, 并作为函数值返回。例如, 若给num1和num2分别输入49 和21,则输出的最大公约数 为7。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 a=b; 2 b=t; 3 r=a%b;} 4 return b; 或 return (b); 或 return(b); 【程序改错-23】 题目:在主函数中从键盘输入若干 个数放入数组中,用0结束输 入并放在最后一个元素中。 下列给定程序中,函数fun的 功能是:计算数组元素中值 为正数的平均值(不包括0)。 例如,数组中元素的值依次 为39,-47,21,2,-8,15, 0,则程序的运行结果为 19.250000。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 double sum=0.0; 2 while(★s[i]★!=★0 ★) 或 while!(s[i]==0) 或 while!(0==s[i]) 3 sum/=c; 或 sum=sum/c; 4 return sum; 或 return (sum); 【程序改错-24】 题目:fun函数的功能是:先从键 盘上输入一个3行3列矩阵的各 个元素的值,然后输出主对 角线上的元素之和sum。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 sum=0; 2 scanf("%d",&a[i][j]); 3 sum=★sum★+★ a[i][i]★; 或 sum+=a[i][i]; 4 printf("sum=%d\n",sum); 【程序改错-25】 题目:fun函数的功能是:给定n 个实数,输出平均值,并统计 在平均值以下(含平均值) 的实数个数。例如,n=6时, 输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得平均值 为40.828335,在平均值以 下的实数个数应为3。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 float xa=0; 或 float xa=0.0; 2 for(j=0;jj;j++) 或 for(j=0;n-1>=j;j++) 或 for(j=0;j<=n-1;j++) 3 for(j=0;jj;j++) 或 for(j=0;j<=n-1;j++) 或 for(j=0;n-1>=j;j++) 4 return c; 或 return (c); 【程序改错-26】 题目:fun函数的功能是:找出大 于m的最小素数,并将其作为 函数值返回。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 for(k=2;kk;k++)

有目录-程序改错部分试题及答案(2015-2016-1)

目录 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 (1) 功能:求如下表达式: (2) 功能:判断m是否为素数,若是返回1,否则返回0。 (4) 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 (5) 功能:求1到20的阶乘的和。 (6) 功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出 整数部分,输出项数不得多于或少于20。 (7) 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的 元素之和sum。 (8) 功能:找出大于m的最小素数,并将其作为函数值返回。 (9) 功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前 面的元素即第一个数对换位置. (10) 功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将 它插入数组中. (11) 第1题/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 ------------------------------------------------------*/ #include #define N 11 main() { int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf("please enter an integer to insert in the array:\n"); /**********FOUND**********/ scanf("%d",&number) printf("The original array:\n"); for(i=0;i

江苏省高校计算机等级考试二级VB上机改错题题型与总结

江苏省高校计算机等级考试二级上机改错题题型与总结冠军:被错误定义为 亚军:后无 季军:结构混用 应该用、而错用成、 应该用、而错用成、 初始值位置错 类型一 类型二

类型三 → 连续整除\与求余后条件错 n<0等→0(用于一个数中数字提取或者进制转换) (*特殊情况:被改成) n<0等→1(用于关于一个数的质因子分析) 除号“/”与整除号“\” ? 参数类型不符合错误 起点等错 结束条件(非n<0等→0) 求赋值错

后的条件错 其他类型的错误(省略)自测真题

题目:本程序的功能是:查找四位整数,它的9倍正好等于n的反序数。程序界面参见下图。 1() n , k 1 = "结果是:" & n = 1000 2400 k = 9 * n (n) = k = n & "" & k 1 = 1 & & n (n ) i , k i = 1 此处原题有错,不应该有这句话 k = n 10 = & (k) n = n /10 n > 0 =

题目:本程序的功能是:随机生成一个有n个元素的数组(n由函数输入),找出其中的最大元素并将它删除,再输出删除后的数组。 1 a() , n 1() i n = ("请输入数组个数", , 10) a(n) i = 1 n a(i) = ( * 100) + 1 1 = 1 & (a(i)) i (a) i = 1 n 2 = 2 & (a(i)) i (a() ) , , i = a(1): = 1 i = 2 n a(i) > = a(i): = i i (a, ) (a() , k ) i i = k + 1 (a) a(i) = a(i + 1) i a((a) - 1)

计算机基础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() {

程序改错--答案版

12592 '题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。'------------------------------------------------ Option Explicit Private Sub Form_Click() Dim N As Integer, Sum As Integer, S1 As String, S2 As String Dim i As Integer, Ch As String Sum = 0 N = InputBox("输入整数n") S1 = Str(N) S1 = Trim(S1) For i = 1 To Len(S1) '**********ERROR********** Ch = Mid(N, i, 1) '**********ERROR********** Sum = Val(Ch) Next i Print "该整数的各位数之和是:"; Sum End Sub 12610'题目:程序功能根据输入的学习成绩,分别显示优秀(90分以上), 良好(75分以上),及格(60分以上)不及格四个等级. '------------------------------------------------ Option Explicit Private Sub Form_Click() Cls Dim i As Integer i = InputBox("请输入学习成绩") Select Case i '**********ERROR********** Case 0 < i < 100 MsgBox "成绩应该在0--100之间""" '**********ERROR********** Case 90 Print "优秀" Case 75 To 89 Print "良好" Case 60 To 74 Print "及格" '**********ERROR********** Case MsgBox "不及格", vbCritical End Select End Sub 12616.题目:求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现. '------------------------------------------------ Option Explicit Private Sub Form_Click() Dim i As Integer, s As Integer '**********ERROR********** For i = 1 To 7 s = s + fact(i) Next i Print s End Sub '**********ERROR********** Public Function fact() Dim t As Integer, i As Integer t = 1 For i = 1 To n t = t * i Next i '**********ERROR********** fact = i End Function 12620题目:编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。 '------------------------------------------------ Option Explicit Private Sub HScroll1_Scroll() '**********ERROR********** Timer1.Interval = HScroll1.Min - HScroll1.Value End Sub Private Sub Timer1_Timer() '**********ERROR********** If Label1.Left <= Form1.Width Then '**********ERROR**********

相关文档