C语言题库.docx

上传人:b****6 文档编号:6832048 上传时间:2023-01-11 格式:DOCX 页数:55 大小:27.94KB
下载 相关 举报
C语言题库.docx_第1页
第1页 / 共55页
C语言题库.docx_第2页
第2页 / 共55页
C语言题库.docx_第3页
第3页 / 共55页
C语言题库.docx_第4页
第4页 / 共55页
C语言题库.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

C语言题库.docx

《C语言题库.docx》由会员分享,可在线阅读,更多相关《C语言题库.docx(55页珍藏版)》请在冰豆网上搜索。

C语言题库.docx

C语言题库

*------------------------------------------------------

【程序改错-1】

--------------------------------------------------------

题目:

在一个一维整型数组中找出其中最大的数及其下标。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#defineN10

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

floatfun(int*a,int*b,intn)

{

int*c,max=*a;

for(c=a+1;c

if(*c>max)

{

max=*c;

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

b=c-a;}

returnmax;

}

main()

{

inta[N],i,max,p=0;

printf("pleaseenter10integers:

\n");

for(i=0;i

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

get("%d",a[i]);

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

m=fun(a,p,N);

printf("max=%d,position=%d",max,p);

}

--------------------------------------------------

『错误答案』:

1intfun(int*a,int*b,intn)

2*b=c-a;}

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

4max=fun(a,&p,N);

/*------------------------------------------------------

【程序改错-2】

--------------------------------------------------------

题目:

为一维数组输入10个整数;将其中最小的数与第一个数

对换,将最大的数与最后一个数对换;输出数组元素。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

main()

{

inta[10];

voidinput();

voidoutput();

voidmax_min();

input(a,10);

max_min(a,10);

output(a,10);

}

voidinput(int*arr,intn)

{int*p,i;

p=arr;

printf("pleaseenter10integers:

\n");

for(i=0;i

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

sca("%d",&p++);

}

voidmax_min(int*arr,intn)

{

int*min,*max,*p,t;

min=max=arr;

for(p=arr+1;p

if(*p>*max)

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

*max=*p;

elseif(*p<*min)min=p;

t=*arr;*arr=*min;*min=t;

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

case(max=arr)

max=min;

t=*(arr+n-1);*(arr+n-1)=*max;*max=t;

}

voidoutput(int*arr,intn)

{

int*p,i;

p=arr;

printf("Thechangedarrayis:

\n");

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

while(i=0;i

printf("%3d",*p++);

printf("\n");

}

--------------------------------------------------

『错误答案』:

1scanf("%d",p++);

2max=p;

3if(★max★==★arr★)

4for(i=0;ii;i++)或for(p=arr;p

『TurboC——程序改错』

/*------------------------------------------------------

【程序改错-3】

--------------------------------------------------------

题目:

用起泡法对10个整数从小到大排序。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

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

voidsort(intx,intn)

{

inti,j,k,t;

for(i=0;i

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

for(j=0;j

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

if(x[i]>x[i+1])

{t=x[j];x[j]=x[j+1];x[j+1]=t;}

}

main()

{

inti,n,a[100];

printf("pleaseinputthelengthofthearray:

\n");

scanf("%d",&n);

for(i=0;i

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

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

sort(n,a);

printf("outputthesortedarray:

\n");

for(i=0;i<=n-1;i++)

printf("%5d",a[i]);

printf("\n");

}

--------------------------------------------------

『错误答案』:

1voidsort(int*x,intn)

2for(j=0;j<★n★-1★-i★;j++)或for(j=0;★n★-1★-i★>j;j++)或for(j=0;jj;j++)

3if(x[j]>x[★j★+★1★])或if(x[★j★+★1]★

4sort(a,n);

『TurboC——程序改错』

/*------------------------------------------------------

【程序改错-4】

--------------------------------------------------------

题目:

在一个已按升序排列的数组中插入一个数,插入后,数

组元素仍按升序排列。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#defineN11

main()

{

inti,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};

printf("pleaseenteranintegertoinsertinthearray:

\n");

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

scanf("%d",&number)

printf("Theoriginalarray:

\n");

for(i=0;i

printf("%5d",a[i]);

printf("\n");

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

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

if(number<=a[i])

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

a[i]=a[i-1];

else

{a[i+1]=number;

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

exit;}

if(number

printf("Theresultarray:

\n");

for(i=0;i

printf("%5d",a[i]);

printf("\n");

}

--------------------------------------------------

『错误答案』:

1scanf("%d",&number);

2for(i=N-2;i>=0;i--)或for(i=N-2;0<=i;i--)

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

4break;}

『TurboC——程序改错』

/*------------------------------------------------------

【程序改错-5】

--------------------------------------------------------

题目:

将一个字符串中第m个字符开始的全部字符复制成为另一

个字符串。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidstrcopy(char*str1,char*str2,intm)

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

charp1,p2;

inti,j;

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

=str1+m;

p2=str2;

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

if(*p1);

*p2++=*p1++;

*p2='\0';

}

main()

{

inti,m;

char*p1,*p2,str1[80],str2[80];

p1=str1;

p2=str2;

gets(p1);

scanf("%d",&m);

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

strcat(str1[0],str2[0],m);

puts(p1);puts(p2);

}

--------------------------------------------------

『错误答案』:

1{char*p1,*p2;或{char*p2,*p1;

2p1=★str1★+★m★-1;或p1=-1+★str1★+★m★;

3while(*p1)

4strcopy(str1,str2,m);

/*------------------------------------------------------

【程序改错-6】

--------------------------------------------------------

题目:

以下程序的功能是求如下表达式:

111

S=1+——+———+......+———————

1+21+2+31+2+3+......+n

请改正程序中的错误,使程序能得到正确的运行结果。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

main()

{

intn;

floatfun();

printf("Pleaseinputanumber:

");

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

print("%d",n);

printf("%10.6f\n",fun(n));

}

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

fun(intn)

{

inti,j,t;

floats;

s=0;

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

while(i=1;i<=n;i++);

{

t=0;

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

t=t+j;

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

=s+1/t;

}

returns;

}

--------------------------------------------------

『错误答案』:

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

2floatfun(intn)

3for(i=1;i<=n;i++)或for(i=1;n>=i;i++)或for(i=1;ii;i++)

4s+=1.0/t或s=★s★+★1.0★/(float)t;或s=★s★+★1.0★/t;或s+=1.0/(float)t

/*------------------------------------------------------

【程序改错-7】

--------------------------------------------------------

题目:

下面程序的功能是利用二维数组输出如图所示的图形。

*******

*****

***

*

***

*****

*******

请改正程序中的错误,使程序能得到正确的运行结果。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

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

#defineN=7

main()

{

chara[N][N];

inti,j,z;

clrscr();

for(i=0;i

for(j=0;j

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

a[i][j]=;

z=0;

for(i=0;i<(N+1)/2;i++)

{

for(j=z;j

a[i][j]='*';

z=z+1;

}

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

z=0;

for(i=(N+1)/2;i

{z=z-1;

for(j=z;j

a[i][j]='*';

}

for(i=0;i

{

for(j=0;j

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

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

printf("\n");

}

}

--------------------------------------------------

『错误答案』:

1#defineN7

2a[i][j]='';

3z=z-1;或z--;或z=-1+z;或z=(n+1)/2-1;或z=(1+n)/2-1

4printf("%c",a[i][j]);

/*------------------------------------------------------

【程序改错-8】

--------------------------------------------------------

题目:

输入一行英文文本,将每一个单词的第一个字母变成大

写。

例如:

输入"ThisisaCprogram.",输出为"This

IsACProgram."。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

#include

#include

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

fun(charp)

{

intk=0;

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

dowhile(*p=='\0')

{

if(k==0&&*p!

='')

{

*p=toupper(*p);

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

k=0;}

elseif(*p!

='')k=1;

elsek=0;

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

*p+;

}

}

main()

{

charstr[81];

clrscr();

printf("pleaseinputaEnglishtextline:

");

gets(str);

printf("Theoriginaltextlineis:

");

puts(str);

fun(str);

printf("Thenewtextlineis:

");

puts(str);

}

--------------------------------------------------

『错误答案』:

1fun(char*p)或fun(charp[])

2while(*p!

='\0')或while(*p)

3k=1;}

4p++;或p=1+p;或++p;或p=p+1;

/*------------------------------------------------------

【程序改错-9】

--------------------------------------------------------

题目:

将一个字符串中的大写字母转换成小写字母。

例如:

输入aSdFG输出为asdfg。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

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

boolfun(char*c)

{

if(*c<='Z'&&*c>='A')*c-='A'-'a';

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

fun=c;

}

main()

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

chars[81],*p=s;

gets(s);

while(*p)

{

*p=fun(p);

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

puts(*p);

p++;

}

putchar('\n');

}

--------------------------------------------------

『错误答案』:

1charfun(char*c)

2return*c;或return(*c);或return(*c);

3{chars[81],*p=s;

4putchar(*p);或printf("%c",*p);

/*------------------------------------------------------

【程序改错-10】

--------------------------------------------------------

题目:

将若干学生的档案存放在一个文件中,并显示其内容。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

structstudent

{

intnum;

charname[10];

intage;

};

structstudentstu[3]={{001,"LiMei",18},{002,"JiHua",19},{003,"SunHao",18}};

#include

main()

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

{structstudentp;

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

cfilefp;

inti;

if((fp=fopen("stu_list","w

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

当前位置:首页 > 求职职场 > 职业规划

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

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