C语言程序改错及填空题Word格式文档下载.docx
- 文档编号:15365709
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:75
- 大小:42.21KB
C语言程序改错及填空题Word格式文档下载.docx
《C语言程序改错及填空题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序改错及填空题Word格式文档下载.docx(75页珍藏版)》请在冰豆网上搜索。
while(p1!
=0)//////////while(p1->
num!
=0)
n=n+1;
if(n==1)head=p1;
elsep2->
next=p1;
p1=(structstud*)malloc(size(structstud));
}
p2->
next=NULL;
return(head);
}
gc57.c的功能是互换给定数组中的最大数和最小数。
如将下面8个数:
5,3,1,4,2,8,9,6
变成:
5,3,9,4,2,8,1,6
程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。
程序有二处错误,请改正。
注意:
不得增行和删行,也不得修改程序的结构。
main()
{
inti;
staticinta[8]={5,3,1,4,2,8,9,6};
voidjhmaxmin();
printf("
Originalarray:
\n"
);
for(i=0;
i<
8;
i++)
%5d"
a[i]);
\n"
jhmaxmin(a,8);
Arrayafterswapingmaxandmin:
//注意:
voidjhmaxmin(p,n)
intp,n;
这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn)
voidjhmaxmin(p,n)
intp,n;
////////int*p,n;
intt,*max,*min,*end,*q;
end=p+n;
max=min=p;
for(q=p+1;
q<
end;
q++)
{if(*q>
*max)max=q;
if(*q<
max)min=q;
////////*q<
*min
t=*max;
*max=*min;
*min=t;
gc101.c的功能为:
输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。
#include<
stdio.h>
inta[8],*p=a;
inti,j;
inttempmin,tempcode;
\ninputthenumbers:
for(i=0;
i<
i++)
%d"
p+i);
tempmin=*p;
7;
for(j=i;
j<
j++)
if(j==i||*(p+j)<
tempmin)
{tempmin=*(p+i);
//////////tempmin=*(p+j);
tempcode=j;
if(tempcode!
=i)
{*(p+tempcode)=*(p+i);
*(p+j)=tempcode;
/////////////*(p+i)=tempmin;
%d,"
*(p+i));
return
(1);
gc137.c中的sub函数的功能是:
将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。
例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。
请改正函数sub中的两个错误,使它能得出正确的结果。
不要改动main函数,不得增行或删行,也不得修改程序的结构。
#include"
stdio.h"
conio.h"
string.h"
voidsub(char*s,char*t)
inti,d;
d=strlen(s);
for(i=1;
d;
i++)///////for(i=0;
d;
t[i]=s[d-1-i];
for(i=0;
i++)
t[d+i]=s[i];
t[2*d]='
/0'
;
/////////t[2*d]='
\0'
;
main()
chars[100],t[100];
clrscr();
printf("
\nPleaseenterstringS:
"
);
%s"
s);
sub(s,t);
\nTheresultis:
%s\n"
t);
gc163.c的功能是实现求1000以内的自然数中的完数及其个数(所谓完数,指它恰好等于除它本身之外的因子之和,如:
6=1+2+3,28=1+2+4+7+14),并显示结果。
但该程序中有3处错误,请调试并改正。
不允许改变程序结构和增删语句。
voidmain(void)
inti,k,m,n,s,p;
//////////////////p=0
inta[100];
\n10000以内的自然数中的完数有:
"
for(i=2;
=10000;
{s=0;
m=0;
for(k=1;
k<
=i/2;
k++)
{if(i%k==0)
{s=s+k;
a[m]=k;
m=m+1;
if(s=i)////////if(s==i)
{p=p-1;
//////////p=p+1
\n%d=%d"
s,a[0]);
n=1;
while(n<
m)
{printf("
+%d"
a[n]);
\n总个数为:
%d\n"
p);
gc165.c程序中的函数find_str()用来返回字符串s2在字符串s1中第一次出现的首地址;
如果字符串s2不是s1的子串,则该函数返回空指针NULL。
现在程序中发现有两个错误,错误就出现在那些注释行的附近,请你找出错误并将它们改正过来,要求在调试过程中不允许改变程序结构,更不得增删语句。
include<
string.h>
char*find_str(char*s1,char*s2)
inti,j,ls2;
ls2=strlen(s2);
=strlen(s1)-ls2;
for(j=0;
ls2;
j++)if(s1[j+i]!
=s2[j])break;
/*..............commentone..............*/
if(j==ls2)return(s1+j);
//////return(s1+i)
returnNULL;
voidmain()
char*a="
dos6.22windows98office2000"
*b="
windows"
c;
///////*c
/*..............commenttwo..............*/
c=find_str(a,b);
if(c!
=NULL)printf("
%s\n"
c);
elseprintf("
未找到字符串%s\n"
b);
gc166.c程序的功能是:
计算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。
例如,当输入的正整数为237时,
s的值为12,t的值为42。
请改正程序中的两个错误,使它能得出正确的结果。
不得增行或删行,也不得修改程序的
结构。
#include"
intn,yw,s=0,t=0;
/////////t=1
&
n);
while(n!
yw=n%10;
s=s+yw;
t=t*yw;
n=n%10;
////////////n=n/10
s=%d,t=%d\n"
s,t);
gc228.c代码功能为:
使用指针将数组a中10个整数按相反的顺序存放。
程序中有3处错误代码,请指出并改正之.
voidinv(x,n)
int*x,n;
{int*p,t,*i,*j,m=(n-1)/2;
i=x;
j=n;
///////////j=x+n-1;
p=x+m;
for(;
=p;
i++,j--)
{t=*i;
*i=*j;
*j=t;
return;
{inta[10],i;
input10number"
10;
a[i]);
Theoriginalarray:
%d,"
printf("
inv(a,n);
/////////////////inv(a,10);
Thearrayhasbeeninverted:
for(i=0;
i--)/////////////////for(i=0;
gc234.c中函数fun的功能是:
求S的值。
设S=((2*2)/3)*((4*4)/(3*5))*...*((2*k*2*k)/((2*k-1)*(2*k+1)))
请改正函数fun中的两个错误,使程序能输出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构!
dos.h"
fun(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错 填空