云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言程序改错及填空题

C语言程序改错及填空题

  • 62 次阅读
  • 3 次下载
  • 2026/1/9 8:41:55

gc23.c下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在 每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0 structstud { longnum; charname[10]; floatscore; structstud*next; };

/*……………comment……………*/ intn;

structstudcreate()////////structstud*create(void) {

structstud*head,*p1,*p2; n=0;

p1=p2=(structstud*)malloc(sizeof(structstud));

scanf(\head=NULL;

/*……………comment……………*/ while(p1!=0)//////////while(p1->num!=0) { }

p2->next=NULL; return(head);

} n=n+1;

if(n==1)head=p1; elsep2->next=p1;

p1=(structstud*)malloc(size(structstud));

scanf(\

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(\for(i=0;i<8;i++)

printf(\printf(\jhmaxmin(a,8);

printf(\for(i=0;i<8;i++) printf(\printf(\}

//注意: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*max)max=q;

if(*q

t=*max;*max=*min;*min=t; }

gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。

#include main() {

inta[8],*p=a; inti,j;

inttempmin,tempcode;

printf(\for(i=0;i<8;i++) scanf(\tempmin=*p; for(i=0;i<7;i++) {

for(j=i;j<8;j++) if(j==i||*(p+j)

{tempmin=*(p+i);//////////tempmin=*(p+j); tempcode=j; };

if(tempcode!=i) {*(p+tempcode)=*(p+i); } }

for(i=0;i<8;i++)

*(p+j)=tempcode;/////////////*(p+i)=tempmin;

printf(\return(1); }

gc137.c中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。请改正函数sub中的两个错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得修改程序的结构。

#include\#include\#include\voidsub(char*s,char*t) { inti,d; d=strlen(s);

for(i=1;i

t[2*d]='/0';/////////t[2*d]='\\0'; } main() {

chars[100],t[100]; clrscr();

printf(\scanf(\sub(s,t);

printf(\}

gc163.c的功能是实现求1000以内的自然数中的完数及其个数(所谓完数,指它恰好等于除它本身之外的因子之和,如:6=1+2+3,28=1+2+4+7+14),并显示结果。但该程序中有3处错误,请调试并改正。不允许改变程序结构和增删语句。

#include voidmain(void) {

inti,k,m,n,s,p;//////////////////p=0 inta[100];

printf(\以内的自然数中的完数有:\for(i=2;i<=10000;i++) {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 printf(\n=1; while(n

{printf(\}

printf(\总个数为:%d\\n\}

gc165.c程序中的函数find_str()用来返回字符串s2在字符串s1中第一次出现的首地址;如果字符串s2不是s1的子串,则该函数返回空指针NULL。

现在程序中发现有两个错误,错误就出现在那些注释行的附近,请你找出错误并将它们改正过来,要求在调试过程中不允许改变程序结构,更不得增删语句。

include #include

char*find_str(char*s1,char*s2) { inti,j,ls2; ls2=strlen(s2);

for(i=0;i<=strlen(s1)-ls2;i++) {

for(j=0;j

returnNULL; }

voidmain() {

char*a=\///////*c /*..............commenttwo..............*/ c=find_str(a,b);

if(c!=NULL)printf(\elseprintf(\未找到字符串%s\\n\}

gc166.c程序的功能是:计算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。

例如,当输入的正整数为237时, s的值为12,t的值为42。

请改正程序中的两个错误,使它能得出正确的结果。注意:不得增行或删行,也不得修改程序的 结构。

#include\main() {

intn,yw,s=0,t=0;/////////t=1

搜索更多关于: C语言程序改错及填空题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

gc23.c下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在 每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #defineNULL0 structstud { longnum; charname[10]; floatscore; structstud*next; }; /*……………comment……………*/ intn; structstudcreate()////////structstud*create(void) { structstud*head,*p1,*p2; n=0; p1=p2=(structstud*)malloc(sizeof(structstud)); scanf(\head=NULL; /*……

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com