全国计算机二级C语言程序改错题100全中必过.docx

上传人:b****4 文档编号:27273959 上传时间:2023-06-28 格式:DOCX 页数:126 大小:91.93KB
下载 相关 举报
全国计算机二级C语言程序改错题100全中必过.docx_第1页
第1页 / 共126页
全国计算机二级C语言程序改错题100全中必过.docx_第2页
第2页 / 共126页
全国计算机二级C语言程序改错题100全中必过.docx_第3页
第3页 / 共126页
全国计算机二级C语言程序改错题100全中必过.docx_第4页
第4页 / 共126页
全国计算机二级C语言程序改错题100全中必过.docx_第5页
第5页 / 共126页
点击查看更多>>
下载资源
资源描述

全国计算机二级C语言程序改错题100全中必过.docx

《全国计算机二级C语言程序改错题100全中必过.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言程序改错题100全中必过.docx(126页珍藏版)》请在冰豆网上搜索。

全国计算机二级C语言程序改错题100全中必过.docx

全国计算机二级C语言程序改错题100全中必过

题目一前N项和问题

.下列给定程序中函数fun的功能是:

求出如下分数序列的前n项之和。

和值通过函数值返回。

例如,若n=5,则应输出8.391667。

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

#include

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

voidfun(intn)

{inta,b,c,k;doubles;

s=0.0;a=2;b=1;

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

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

s=s+(Double)a/b;

c=a;a=a+b;b=c;

}

returns;

}

main()

{intn=5;

printf("\nThevalueoffunctionis:

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

(1)doublefun(intn)

(2)s=s+(double)a/b;

题目二SS字符串问题

2.下列给定程序中函数fun的功能是:

统计substr所指的子符串在str所指的字符串中出现的次数。

例如,若字符串为aaas1kaaas,子字符串为as,则应输出2。

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

#include

intfun(char*str,char*substr)

{inti,j,k,num=0;

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

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

for(j=i,k=0;substr[k]==str[j];k++,j++)

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

If(substr[k+1]=='\0')

{num++;

break;

}

returnnum;

}

main()

{

charstr[80],substr[80];

printf("Inputastring:

");

gets(str);

printf("Inputasubstring:

");

gets(substr);

printf("%d\n",fun(str,substr));

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

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

题目三变量互换问题1

2.下列给定程序中函数fun的功能是:

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

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

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

#include

intfun(int*x,inty)

{

intt;

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

t=x;x=y;

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

return(y);

}

main()

{

inta=3,b=8;

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

b=fun(&a,b);

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

(1)t=*x;*x=y;

(2)return(t);或returnt;

题目三变量互换问题2

1.下列给定程序中,函数fun的功能是:

实现两个整数的交换。

例如,给a和b分别输入60和65,输出为:

a=65b=60。

#include

#include

#include

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

voidfun(inta,b)

{intt;

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

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

}

voidmain()

{inta,b;

system("CLS");

printf("Entera,b:

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

fun(&a,&b);

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

}

(1)voidfun(int*a,int*b)

(2)t=*b;*b=*a;*a=t;

题目三变量互换问题3

2.下列给定程序中,函数fun的功能是:

将主函数中两个变量的值进行交换。

例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

#include

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

voidfun(intx,inty)

{intt;

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

t=x;x=y;y=t;

}

voidmain()

{inta,b;

a=8;

b=3;

fun(&a,&b);

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

}

(1)voidfun(int*x,int*y)

(2)t=*x;*x=*y;*y=t;

题目四最大公约数问题

2.下列给定程序中函数fun的功能是:

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

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

#include

intfun(inta,intb)

{intr,t;

if(a

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

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

}

r=a%b;

while(r!

=0)

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

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

return(a);

}

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

(1)t=a;a=b;b=t;

(2)return(b);或returnb;

题目五长数变短数1

2.下列给定程序中函数fun的功能是:

将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。

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

例如,当s中的数为87653142时,t中的数为7531。

#include

voidfun(longs,long*t)

{intd;

longsl=1;

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

t=0;

while(s>0)

{d=s%10;

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

if(d%2==0)

{*t=d*sl+*t;

sl*=10;

}

s/=10;

}

}

main()

{longs,t;

printf("\nPleaseenters:

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

fun(s,&t);

printf("Theresultis:

%ld\n",t);

(1)*t=0;

(2)if(d%2!

=0)或if(d%2==1)

题目五长数变短数2

2.下列给定程序中函数fun的功能是:

将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。

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

例如,当s中的数为87653142时,t中的数:

8642。

#include

voidfun(longs,long*t)

{intd;

longsl=1;

*t=0;

while(s>0)

{d=s%10;

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

if(d%2=0)

{*t=d*sl+*t;

sl*=10;

}

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

s\=10;

}

}

main()

{longs,t;

printf("\nPleaseenters:

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

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

(1)if(d%2==0)

(2)s/=10;

题目五长数变短数3

 

2.下列下列给定程序中,函数fun的功能是:

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

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

例如,当s中的数为7654321时,t中的数为7531。

#include

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

voidfun(longs,longt)

{longsl=10;

*t=s%10;

while(s>0)

{s=s/100;

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

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

sl=sl*100;

}

}

main()

{longs,t;

printf("\nPleaseenters:

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

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

(1)voidfun(longs,long*t)

(2)sl=sl*10;

题目五长数变短数4

2.下列给定程序中函数fun的功能是:

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

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

例如,当s中的数为7654321时,t中的数为642。

#include

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

voidfun(longs,longt)

{longsl=10;

s/=10;

*t=s%10;

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

while(s<0)

{s=s/100;

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

sl=sl*10;

}

}

main()

{longs,t;

printf("\nPleaseenters:

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

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

(1)voidfun(longs,long*t)

(2)while(s>0)

题目五长数变短数5

 

1.下列给定程序中,函数fun的功能是:

将字符串s中位于奇数位置的字符或ASCII码值为偶数的字符依次放入字符串t中。

例如,字符串中的数据为"AABBCCDDEEFF",则输出应当是"ABBCDDEFF"。

#include

#include

#include

#include

#defineN80

voidfun(char*s,chart[])

{

inti,j=0;

for(i=0;i<(int)strlen(s);i++)

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

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

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

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

t[i]='\0';

}

voidmain()

{

chars[N],t[N];

system("CLS");

printf("\nPleaseenterstrings:

");

gets(s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

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

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

(2)t[j]='\0';或t[j]=0;

题目五长数变短数6

1.下列给定程序中,函数fun的功能是:

依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

#include

#include

#include

voidfun(char*s)

{inti,j;

for(i=0,j=0;s[i]!

='\0';i++)

if(s[i]>='0'&&s[i]<='9')

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

s[j]=s[i];

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

s[j]=”\0”;

}

voidmain()

{charitem[80];

system("CLS");

printf("\nEnterastring:

");gets(item);

printf("\n\nThestringis:

%s\n",item);

fun(item);

printf("\n\nThestringofchangingis:

%s\n",item);

}

(1)s[j++]=s[i];

(2)s[j]='\0';

题目五长数变短数7

2.下列给定程序中,函数fun的功能是:

求整数x的y次方的低3位值。

例如,整数5的6次方为15625,此值的低3位值为625。

#include

longfun(intx,inty,long*p)

{inti;

longt=1;

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

for(i=1;i

t=t*x;

*p=t;

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

t=t/1000;

returnt;

}

voidmain()

{longt,r;intx,y;

printf("\nInputxandy:

");

scanf("%1d%1d",&x,&y);

t=fun(x,y,&r);

printf("\n\nx=%d,y=%d,r=%ld,last=%ld\n\n",x,y,r,t);

}

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

(2)t=t%1000;

题目五长数变短数8

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

删除b所指数组中小于10的数据。

主函数中输出删除后数组中余下的数据。

#include

#include

#defineN20

intfun(int*b)

{

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

intt[N],i,num

for(i=0;i

if(b[i]>=10)

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

t[++num]=b[i];

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

for(i=0;i

b[i]=t[i];

return(num);

}

main()

{inta[N],i,num;

printf("a数组中的数据:

\n");

for(i=0;i

printf("\n");

num=fun(a);

for(i=0;i

printf("\n");

}

(1)intt[N],i,num=0;

(2)t[num++]=b[i];或{t[num]=b[i];num++;}

(3)for(i=0;i

题目五长数变短数9

 

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

在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。

处理后原数列中首尾2个数不变。

处理后数列在主函数中输出。

例如,有10个正整数如下:

初始数列为:

657231858214538

第1组数为:

657中值为:

6替换后的数列为:

667231858214538

第2组数为:

5723中值为:

7替换后的数列为:

667231858214538

第3组数为:

72318中值为:

18替换后的数列为:

667181858214538

第4组数为:

23185中值为:

18替换后的数列为:

667181858214538

第5组数为:

1858中值为:

8替换后的数列为:

667181888214538

第6组数为:

5821中值为:

8替换后的数列为:

667181888214538

第7组数为:

82145中值为:

21替换后的数列为:

667181888214538

第8组数为:

214538中值为:

38替换后的数列为:

667181888213838

最终结果为:

667181888213838

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

#include

#defineN10

intfindmid(inta,intb,intc)

{intt;

t=(a>b)?

(b>c?

b:

(a>c?

c:

a)):

((a>c)?

a:

((b>c)?

c:

b));

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

returnb;

}

voidfun(intx[])

{inti,a,b,c,t[N];

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

for(i=0;i

for(i=0;i

{a=t[i];b=t[i+1];c=t[i+2];

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

t[i+1]=findmid(a,b,c);

}

}

main()

{inti,x[N]={6,5,7,23,18,5,8,21,45,38};

for(i=0;i

printf("\n");

fun(x);

for(i=0;i

printf("\n");

}

【参考答案】

(1)returnt;

(2)for(i=0;i

(3)x[i+1]=findmid(a,b,c);

题目六斐波拉契数列

2.下列给定程序中函数fun的功能是:

用递归算法计算斐波拉契数列中第n项的值。

从第1项起,斐波拉契数列为:

1、1、2、3、5、8、13、21、……

例如,若给n输入7,则该项的斐波拉契数值为13。

#include

longfun(intg)

{

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

switch(g);

{case0:

return0;

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

case1;case2:

return1;

}

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

}

main()

{longfib;intn;

printf("Inputn:

");scanf("%d",&n);printf("n=%d\n",n);

fib=fun(n);

printf("fib=%d\n\n",fib);

}

(1)去掉分号

(2)case1:

case2:

return1;

 

题目七链表1

1.例如,若给a输入字符串:

ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:

ABC DEF GHI JK。

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,其功能是:

求出平均分,并由函数值返回。

#include

voidfun(char*p,char*b)

{inti,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()

{chara[80],b[80];

printf("Enterastring:

");gets(a);

printf("Theoriginalstring:

");puts(a);

fun(a,b);

printf("\nThestringafterinsertspace:

");puts(b);printf("\n\n");

}

(1)b[k]=*p;

(2)b[k]='';k++;

 

题目七链表2

2.下列给定程序中函数Creatlink的功能是:

创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。

#include

#include

typedefstructaa

{intdata;

structaa*next;

}NODE;

NODE*Creatlink(intn,

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

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1