改错题题库.docx

上传人:b****2 文档编号:18610575 上传时间:2023-08-20 格式:DOCX 页数:55 大小:66.03KB
下载 相关 举报
改错题题库.docx_第1页
第1页 / 共55页
改错题题库.docx_第2页
第2页 / 共55页
改错题题库.docx_第3页
第3页 / 共55页
改错题题库.docx_第4页
第4页 / 共55页
改错题题库.docx_第5页
第5页 / 共55页
改错题题库.docx_第6页
第6页 / 共55页
改错题题库.docx_第7页
第7页 / 共55页
改错题题库.docx_第8页
第8页 / 共55页
改错题题库.docx_第9页
第9页 / 共55页
改错题题库.docx_第10页
第10页 / 共55页
改错题题库.docx_第11页
第11页 / 共55页
改错题题库.docx_第12页
第12页 / 共55页
改错题题库.docx_第13页
第13页 / 共55页
改错题题库.docx_第14页
第14页 / 共55页
改错题题库.docx_第15页
第15页 / 共55页
改错题题库.docx_第16页
第16页 / 共55页
改错题题库.docx_第17页
第17页 / 共55页
改错题题库.docx_第18页
第18页 / 共55页
改错题题库.docx_第19页
第19页 / 共55页
改错题题库.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

改错题题库.docx

《改错题题库.docx》由会员分享,可在线阅读,更多相关《改错题题库.docx(55页珍藏版)》请在冰点文库上搜索。

改错题题库.docx

改错题题库

二级C语言考前上机题库

 

二、改错题

考试做题要求:

1、在/**********found**********/的下一行改正错误。

2、将题目做完之后一定要保存。

3、不能删除/**********found**********/,也不能多行或少行。

1:

数列中,第一项值为3,后一项都比前一项的值增5;给定程序MODI1.C中函数fun的功能是:

计算前n(4

例如,当n的值为20时,该数列为3,8,13,18,23,28,……,93,98。

符合此条件的累加值应为42,126,366,570,1010。

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

注意:

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

#include

#defineN20

intfun(intn,int*a)

{inti,j,k,sum;

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

sum=0;j=0;

for(k=3,i=0;i

{sum=sum+k;

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

if(sum%4==2)

a[j++]=sum;

}

returnj;

}

main()

{inta[N],d,n,i;

printf("\nEntern(4

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

d=fun(n,a);

printf("\n\nTheresult:

\n");

for(i=0;i

}

2:

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

将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。

规定输入的字符串最多只能包含5位八进制数字字符。

例如,若输入:

77777,则输出将是:

32767。

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

注意:

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

#include

intfun(char*p)

{intn;

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

n=*p-'0;

p++;

while(*p!

=0){

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

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

p++;

}

returnn;

}

main()

{chars[6];inti;intn;

printf("Enterastring(Ocataldigits):

");gets(s);

if(strlen(s)>5){printf("Error:

Stringtoolonger!

\n\n");exit(0);}

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

if(s[i]<'0'||s[i]>'7')

{printf("Error:

%cnotisocataldigits!

\n\n",s[i]);exit(0);}

printf("Theoriginalstring:

");puts(s);

n=fun(s);

printf("\n%sisconveredtointegernumber:

%d\n\n",s,n);

}

3:

给定程序MODI1.C的功能是:

读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。

例如,若输入整数:

2310,则应输出:

2、3、5、7、11。

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

注意:

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

#include

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

IsPrime(intn);

{inti,m;

m=1;

for(i=2;i

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

if(!

(n%i))

{m=0;break;}

return(m);

}

main()

{intj,k;

printf("\nPleaseenteranintegernumberbetween2and10000:

");scanf("%d",&k);

printf("\n\nTheprimefactor(s)of%dis(are):

",k);

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

if((!

(k%j))&&(IsPrime(j)))printf("\n%4d",j);

printf("\n");

}

4:

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

将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。

例如,若输入"Ab,cD",则输出"AB,CD"。

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

注意:

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

#include

#include

char*fun(chartt[])

{

inti;

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

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

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

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

tt[i]-=32;

return(tt);

}

main()

{

chartt[81];

printf("\nPleaseenterastring:

");

gets(tt);

printf("\nTheresultstringis:

\n%s",fun(tt));

}

5:

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

求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。

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

注意:

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

#include

#defineN20

intfun(int*a,intn)

{inti,m,t,k;

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

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

m=i;

for(k=i+1;k

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

if(a[k]>a[m])m=k;

t=a[i];a[i]=a[m];a[m]=t;

}

}

main()

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

for(i=0;i

printf("\n");

fun(b,n);

for(i=0;i

printf("\n");

}

6:

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

将字符串中的字符按逆序输出,但不改变字符串中的内容。

例如,若字符串为abcd,则应输出:

dcba。

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

注意:

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

#include

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

fun(char*a)

{if(*a)

{fun(a+1);

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

printf("%c",*a);

}

}

main()

{chars[10]="abcd";

printf("处理前字符串=%s\n处理后字符串=",s);

fun(s);printf("\n");

}

7:

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

根据整型形参m,计算如下公式的值。

1111

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

2*23*34*4m*m

例如,若m中的值为:

5,则应输出:

1.463611。

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

注意:

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

#include

doublefun(intm)

{doubley=1.0;

inti;

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

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

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

y+=1.0/i/i;

return(y);

}

main()

{intn=5;

printf("\nTheresultis%lf\n",fun(n));

}

8:

由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:

利用折半查找算法查找整数m在数组中的位置。

若找到,返回其下标值;反之,返回-1。

折半查找的基本算法是:

每次查找前先确定数组中待查的范围:

low和high(low

如果m的值大于中间位置元素中的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。

直到low>high,查找结束。

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

注意:

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

#include

#defineN10

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

fun(inta[],intm

{intlow=0,high=N-1,mid;

while(low<=high)

{mid=(low+high)/2;

if(m

high=mid-1;

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

elseif(m>a[mid])

low=mid+1;

elsereturn(mid);

}

return(-1);

}

main()

{inti,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;

printf("a数组中的数据如下:

");

for(i=0;i

printf("Enterm:

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

k=fun(a,m);

if(k>=0)printf("m=%d,index=%d\n",m,k);

elseprintf("Notbefound!

\n");

}

9:

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

按以下递归公式求函数值。

┌10(n=1)

fun(n)=┥

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

例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。

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

注意:

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

#include

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

fun(intn)

{intc;

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

if(n==1)

c=10;

else

c=fun(n-1)+2;

return(c);

}

main()

{intn;

printf("Entern:

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

printf("Theresult:

%d\n\n",fun(n));

}

10:

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

求出两个非零正整数的最大公约数,并作为函数值返回。

例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。

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

注意:

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

#include

intfun(inta,intb)

{intr,t;

if(a

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

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

}

r=a%b;

while(r!

=0)

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

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

return(b);

}

main()

{intnum1,num2,a;

printf("Inputnum1num2:

");scanf("%d%d",&num1,&num2);

printf("num1=%dnum2=%d\n\n",num1,num2);

a=fun(num1,num2);

printf("Themaximuncommondivisoris%d\n\n",a);

}

11:

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

通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。

例如变量a中的值原为8,b中的值原为3,程序运

行后a中的值为3,b中的值为8。

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

注意:

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

#include

intfun(int*x,inty)

{

intt;

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

t=*x;*x=y;

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

returnt;

}

main()

{

inta=3,b=8;

printf("%d%d\n",a,b);

b=fun(&a,b);

printf("%d%d\n",a,b);

}

12:

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

从s所指字符串中,找出与t所指字符

串相同的子串的个数作为函数值返回。

例如,当s所指字符串中的内容为:

"abcdabfab",t所指字符串的内容为:

"ab",则函数返回整数3。

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

注意:

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

#include

#include

intfun(char*s,char*t)

{

intn;char*p,*r;

n=0;

while(*s)

{p=s;r=t;

while(*r)

if(*r==*p){

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

r++;p++;

}

elsebreak;

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

if(*r==0)

n++;

s++;

}

returnn;

}

main()

{

chars[100],t[100];intm;

printf("\nPleaseenterstringS:

");scanf("%s",s);

printf("\nPleaseentersubstringt:

");scanf("%s",t);

m=fun(s,t);

printf("\nTheresultis:

m=%d\n",m);

}

13:

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

从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如,当s中的数为:

7654321时,t中的数为:

7531。

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

注意:

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

#include

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

voidfun(longs,long*t)

{longsl=10;

*t=s%10;

while(s>0)

{s=s/100;

*t=s%10*sl+*t;

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

sl=sl*10;

}

}

main()

{longs,t;

printf("\nPleaseenters:

");scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

 

14:

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

计算并输出high以内最大的10个素数之和。

high的值由主函数传给fun函数。

若high的值为:

100,则函数的值为:

732。

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

注意:

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

#include

#include

intfun(inthigh)

{intsum=0,n=0,j,yes;

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

while((2<=high)&&(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--;

}

returnsum;

}

main()

{

printf("%d\n",fun(100));

}

15:

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

从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。

在每组中,可以没有黑球,但必须要有红球和白球。

组合数作为函数值返回。

正确的组合数应该是15。

程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

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

注意:

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

#include

intfun()

{inti,j,k,sum=0;

printf("\nTheresult:

\n\n");

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

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

{k=8-i-j;

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

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

{sum=sum+1;

printf("red:

%4dwhite:

%4dblack:

%4d\n",i,j,k);

}

}

}

returnsum;

}

main()

{intsum;

sum=fun();

printf("sum=%4d\n\n",sum);

}

16:

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

把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。

例如,输入的数为:

551234,

输出结果应当是:

a=55.0,b=34.0,c=12.0。

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

注意:

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

#include

voidfun(float*a,float*b,float*c)

{

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

floatk;

if(*a<*b)

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

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

if(*c>*a)

{k=*c;*c=*a;*a=k;}

if(*b<*c)

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

}

main()

{floata,b,c;

printf("Inputabc:

");scanf("%f%f%f",&a,&b,&c);

printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);

fun(&a,&b,&c);

printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);

}

17:

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

将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。

例如:

把3个串:

"abc","CD","EF"连接起来,结果是"abcCDEF"。

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

注意:

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

#include

#include

intfun(charstr[][10],intm,char*pt)

{

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

intk,q,i;

for(k=0;k

{q=strlen(str[k]);

for(i=0;i

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

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

pt+=q;

pt[0]=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2