



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第01套给定程序MODI1.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.00000〇。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>doublefun(intn){doubleresult=1.0;/************f^)und************/ifn==O 改为:if(n==0)return1.0;while(n>l&&n<170)/************found************/result*=n— 改为:result*=n-;returnresult;)main(){intn;printf("InputN日’);scanf(n%d",&n);printf("\n\n%d!=%lf\n\n",n,fun(n));)解题思路:第一处:条件语句书写格式错误,应改为:if(n=0)o第二处:语句后缺少分号。第02套给定程序MODU.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>voidfun(char*s){inti,j;for(i=0,j=0;s[i]!=、0';i++)if(s[i]>='0'&&s[ij<=,9,)/**********found**********/s[j]=s[i]; 改为:s[j++]=s[i];/**********found**********/sU]=M\On;)main(){charitem[80];printf(H\nEnterastring:M);gets(item);printf(M\n\nThestringis:\",%s\,,\n,,,item);fun(item);printf("\n\nThestringofchangingis:ヽ"%s\"\n",item);解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j来控制新字符串的位置,所以应改为:s[j++]=s[i];。第二处:置新字符串的结束符,所以应改为:S口]ゴ、0,;.第03套给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-l的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<stdlib.h>typedefstructaa{intdata;structaa"next;}NODE;NODE*Creatlink(intn,intm){NODE*h=NULL,*p,*s;inti;/**********found***********/p=(NODE)malloc(sizeof(NODE)); 改为:p=(NODE*)malloc(sizeof(NODE));h=p:p->next=NULL;for(i=1;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;}/**********found***********/returnp; 改为:returnh;}outlink(NODE*h){NODE*p;p=h->next;printf(M\n\nTHELIST:\n\nHEADH);while(p){printf(M->%dH,p->data);p=p->next;)printf("\n");)main(){NODE*head;head=Creatlink(8,22);outlink(head);I解题思路:第一处:指向刚分配的结构指针,所以应改为:p=(NODE*)ma11oc(sizeof(NODE)):第二处:在动态分配内存的下一行语句是,使用临时结构指针变量h保存p指针的初始位置,最后返回不能使用P,是因为p的位置已经发生了变化,所以应改为返回h。第04套给定程序MODU.C中函数fun的功能是:在字符串的最前端加入n个・号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<string.h>voidfun(chars[],intn)(chara[80],*p;inti;/**********found***********/S=p; 改为:p=s;for(i=0;i<n;i++)a[i]='*';do{a[i]=*p;i++;while(*p++) 改为:while(*p++);a[iJ=O;strcpy(s,a);)main(){intn;chars[80];printf("\nEnterastring:'*);gets(s);printf(H\nThestringV%sV'\nM,s);printf("\nEntern(numberof*):");scanf(H%dn,&n);fun(s,n);printf("\nThestringafterinsert:ヽ"%s\"\n",s);)解题思路:第一处:指针p应指向S,所以应改为:p=s;o第二处:死循环,当d。while循环执行ー次,临时变量P应该指向字符串的下一位置,所以应改为:while(*p++);〇第05套给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从髙到低的顺序找出前m(mW10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<alloc.h>#include<string.h>#defineN10typedefstructss{charnum[10];ints;}STU;STU*fun(STUa[],intm){STUb[N],*t;inti,j,k;/**********found**********/t=(STU*)calloc(sizeof(STU),m) 改为:t=(STU*)calloc(sizeof(STU),m);for(i=0;i<N;i++)b[i]=a[ij;for(k=0;k<m;k++){for(i=j=0;i<N;i++)if(b[i].s>b[j].s)j=i;/**********found**********/t(k)=b(j); 改为:t[k]=b[j];b[j].s=O;returnt;)outresult(STUa[],FILE*pf){inti;for(i=0;i<N;i++)fprintf(pf,HNo=%sMark=%d\n",a[i].num,a[i].s);fprintf(pf,M\n\nH);}main(){STUa[N]={{MAOr\81},{MAO2",89},{*'A03n,66},{MA04u,87},{nAO5M,77},ドA06”,90},{“A07”,79},{MAO8M,61},{“AO9”,8O},{“AKT,71}};STU*pOrder;inti,m;printfC******TheOriginaldata*****\n");outresult(a,stdout);printf("\nGivethenumberofthestudentswhohavebetterscore:n);scanf("%d”,&m);while(m>10){printf("ヽnGivethenumberofthestudentswhohavebetterscore:'*);scanf("%d”,&m);}pOrder=fun(a,m);printf("*****THERESULT*****\n");printf(MThetop:\n");for(i=0;i<m;i++)printf("%s%d\n",pOrder[i].num,pOrder[i].s);free(pOrder);}解题思路:第一处:语句最后缺少分号。第二处:应该使用方括号,而不是圆括号。像此类,使用编译,即可发现。第06套给定程序MODU.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>/**********found**********/charfun(char*s,char*t) 改为:char*fun(char*s,char*t){intsl=O,tl=O;char*ss,*tt;ss=s;tt=t;while(*ss){S1++;/**********found**********/(*ss)++;)while(*tt){tl++;/**********found**********/(九t)++;改为:SS++;改为:tt++;if(tl>sl)returnt;elsereturns;)main(){chara[80],b[80],*p,*q;inti;printf("\nEnterastringゴ');gets(a);printf("\nEnterastringagainゴ');gets(b);printf("\nThelongeris:\n\n\"%s\"\n",fun(a,b));)解题思路:第一处:试题要求返回字符串的首地址,所以应改为:char*fun(char*s,char*t)第二处:取字符串指针SS的下ー个位置,所以应改为:SS++;。第三处:取字符串指针tt的下ー个位置,所以应改为:tt++;o第0フ套给定程序MODU.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[l]中的数对调。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#defineN20intfun(int*a,intn){inti,m,t,k;for(i=0;i<2;i++){/**********found******・・**/m=0;for(k=i+l;k<n;k++)/**********found**********/if(a[k]>a[m])k=m;t=a[i];a[ij=a[m];a[m]=t;改为:m=i;改为:if(a[k]>a[m])m=k;main(){intx,b[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;for(i=0;i<n;i++)printf(M%d”,b[i]);printf(,,\nM);fun(b,n);for(i=0;i<n;i++)printf(n%d",b[i]);printf("\n");)解题思路:第一处:外循环每循环一次,把当前位置i赋值给e,所以应改为:m=i;»第二处:通过内循环来找出最大的ー个数的位置k,所以应改为:if(a[k]>a[m])m=k;.第08套给定程序MODU.C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:362880〇。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>longfun(intk)(/************found************/ifk>0 改为:if(k>0)return(k*fun(k-l));/************found************/elseif(k=0) 改为:elseif(k==O)returnIL;}main(){intk=10;printf("%d!=%ld\nM,k,fun(k));}解题思路:第一处:条件判断缺少圆括号。第二处:判断相等的符号是=。第09套给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其它字符不变。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<ctype.h>voidfun(char*s)(/**********found***********/while(*s!='@,) 改为:while(*s){if(*s>='A'&*s<='Z'II*s>=,a'&&*s<=,z,){if(*s=='Z,)*s='A';elseif(*s=,z*)*s='a*;else*s+=1;}/**********found***********/(*s)++; 改为:s++;main(){chars[80];printf("\nEnterastringwithlength<80.:\n\nM);gets(s);printf("\nThestring:\n\nM);puts(s);fun(s);printf("\n\nTheCords:\n\nn);puts(s);)解题思路:第一处:使用while循环来判断字符串指针s是否结束,所以应改为:while(*s)o第二处:取字符串指针s的下ー个位置,所以应改为:S++;。第10套给定程序MODI1.C中fun函数的功能是:根据整型形参m,计算如下公式的值。2 3 m例如,若主函数中输入5,则应输出-0.283333o请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>doublefun(intm)(doublet=1.0;inti;for(i=2;i<=m;i++)/**********found**********/t=1.0-1/i;/**********found**********/应填returnt;main()intm;printf(n\nPleaseenter1integernumbers:\nM);scanf(,,%dn,&m);printf(H\n\nTheresultis%lf\nn,fun(m));}解题思路:第一处:在除法运算中,如果除数和被除数都是整数,所么所除结果也是整数,因此应改为t-=1./io第二处:应是返回公式的值,函数中公式的值是存放在临时变量t中,所以应填returnt;。第11套给定程序MODI1.C中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<string.h>#defineN80intfun(char*s,char*t){intn;char*p,*r;n=0;while(*s){p=s;/*********f0und**********/r=p; 改为:r=t;while(*r)if(*r==*p){r++;p++;}elsebreak;/*********found**********/if(*r=0) 改为:if(*r==0)n++;s++;returnn;main(){chara[N],b[N];intm;printf(n\nPleaseenterstringa:");gets(a);printf(n\nPleaseentersubstringb:");gets(b);m=fun(a,b);printf("\nTheresultis:m=%d\n'\m);}解题思路:第一处:程序中子串是由变量t来实现的,再根据下面while循环体中语句可知,所以应改为:r=t:〇第二处:是判断相等的条件,所以应改为:if(*r=O)。第12套给定程序MODU.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。例如,字符串中的数据为:AABBCCDDEEFF,贝リ输出应当是:ABBCDDEFF»请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<string.h>#defineN80voidfun(char*s,chart[]){inti,j=0;for(i=0;i<strlen(s);i++)/***********foi1nd**********/if(i%2&&s[i]%2==0) 改为:if(i%2lls[i]%2==0)t[j++]=s[i];/***********found**********/改为:}main(){chars[N],t[N];printf("\nPleaseenterstrings:");gets(s);fun(s,t);printf("\nTheresultis:%s\nM,t);解题思路:第一处:根据试题分析,两个条件之间应该是“或”的关系,而不是“与”的关系,所以应改为:if(i%2||s[i]%2=0)o第二处:当字符串处理结束后,应该补上字符串的结束符,那么字符串t的位置是由i来控制,所以应改为:5]=‘、0';。第13套给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<stdlib.h>typedefstructaa{intdata;structaa*next;}NODE;fun(NODE*h){intmax=-l;NODE*p;/***********〔ound**********/p=h; 改为:p=h->next;while(p){if(p->data>max)max=p->data;/***********found**********/p=h->next; 改为:p=p->next;}returnmax;}outresult(ints,FILE*pf){fprintf(pf,M\nThemaxinlink:%d\n,',s);}NODE*creatlink(intn,intm){NODE*h,*p,*s,*q;inti,x;h=p=(NODE*)malloc(sizeof(NODE));h->data=9999;for(i=1;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;p->next=NULL;returnh;outlink(NODE*h,FILE*pf){NODE*p;p=h->next;fprintf(pf,n\nTHELIST:\n\nHEADn);while(p){fprintf(pf,"->%dH,p->data);p=p->next;}fprintf(pf,n\nH);)main(){NODE*head;intm;head=creatlink(12,100);outlink(head,stdout);m=fun(head);printf(n\nTHERESULT:\nn);outresult(m,stdout);}解题思路:程序中是使用while循环语句和结合结构指针p来找到数据域中的最大值。第一处:P指向形参结构指针h的next指针,所以应改为:p=h->next;〇第二处:P指向自己的下ー个结点,所以应改为:p=p->next,第14套给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<stdlib.h>typedefstructaa{intdata;structaa*next;}NODE;intfun(NODE*h){intsum=0;NODE*p;/***********found**********/p=h; 改为:p=h->next;while(p){if(p->data%2==0)sum+=p->data;/***********found**********/p=h->next; 改为:p=p->next;returnsum;NODE*creatlink(intn){NODE*h,*p,*s,*q;inti,x;h=p=(NODE*)malloc(sizeof(NODE));for(i=l;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s->data=rand()%16;s->next=p->next;p->next=s;p=p->next;}p->next=NULL;returnh;)outlink(NODE*h,FILE*pf){NODE*p;p=h->next;fprintf(pf;'\n\nTHELIST:\n\nHEADつ;while(p){fprintf(pf,"->%dM,p->data);p=p->next;}fprintf(pf;'\nn);)outresult(ints,FILE*pf){fprintf(pf,M\nThesumofevennumbers:%d\n”,s);}main(){NODE*head;inteven;head=creatlink(l2);head->data=9000;outlink(head,stdout);even=fun(head);printf("\nTheresult:\nn);outresult(even,stdout);)解题思路:本题是考察如何使用单向链表把数据域的值按条件进行累加。第一处:试题要求不计算头结点,所以应改为:p=h->next;第二处:指向P的下ー个结点来实现循环,所以应改为:p=p->next;第15套给定程序MODI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#include<stdio.h>#include<string.h>#defineN80voidinsert(char*aa){inti,j,n;charch;/********辛*found*・辛辛******/n=strlen[aa]; 改为:n=strlen(aa);for(i=l;i<n;i++){/小も********toiind**キ求キ*本***/c=aa[i]; 改为:ch=aa[i];j=i-l;while(0=0)&&(ch<aa[j])){aa[j+l]=aa[j];j-;)aa[j4-l]=ch;})main()(chara[N]="QWERTYUIOPASDFGHJKLMNBVCXZ'';inti;printf("Theoriginalstring:%s\n",a);insert(a);printf(,fThestringaftersorting:%s\n\n",a);)解题思路:第一处:函数应该使用圆括号,所以应改为:产strlen(aa)第二处:变量c没有定义,但后面使用的是ch变量,所以应改为:ch;aa[i];0第16套给定程序M0DU.C中fun函数的功能是:将p所指字符串中每个单词的最后ー个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。例如,若输入"Iamastudenttotaketheexamination.则应输出HIaMAstudenTtOtakEthEexamination."〇请修改程序中的错误之处,使它能得出正确的结果。注意:不要改动main函数,不得删行,也不得更改程序的结构!给定源程序:#include<ctype.h>#include<stdio.h>voidfun(char*p)(intk=0;for(;*p;p++)if(k)(/**********found***********/if(p=='') 改为:if(*p=='')(k=0;/**********found***********/*(p-1)=toupper(*(p-1)) 改为:*(p-l)=toupper(*(p-1));))elsek=1;)main()(charchrstr[64];intd;printf(n\nPleaseenteranEnglishsentencewithin63letters:H);gets(chrstr);d=strlen(chrstr);chrstr[d]='1;chrstr[d+l]=0;printf(H\n\nBeforechanging:\n%sM,chrstr);fun(chrstr);printf("\nAfterchanging:\n%s",chrstr);第17套给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGHo请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#include<stdio.h>fun(char*p){charmax,*q;inti=0;max=p[i];while(p[i]!=O){if(max<p[i]){max=p[i];/**********found**********/q=p+i 改为:q=p+i;)i++;}/**********found**********/wihle(q>p) 改为:while(q>p){*q=*(q-l);q一;}p[0]=max;)main(){charstr[8O];printf("Enterastring:");gets(str);printf("\nTheoriginalstring:n);puts(str);fun(str);printf("\nThestringaftermoving:");puts(str);printf("\n\n");)解题思路:第一处:在语句后缺少分号,所应改为:q=p+i;。第二处:保留字while写错,所应改为:while(q>p)»第18套给定程序MODH.C中函数fun的功能是:将s所指字符串中最后一次出现的与tl所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:“abcdabfabc”,tl所指子串中的内容为:“ab",t2所指子串中的内容为:“99”时,结果,在w所指的数组中的内容应为:“abcdabf99c”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<string.h>intfun(char*s,char*tl,char*t2,char*w)inti;char*p,*r,*a;strcpy(w,s);while(w) 改为:while(*w){p=w;r=tl;while(*r)/************iound************/IF(*r==*p) 改为:if(*r==*p){r++;P++;}elsebreak;if(*r==AO1)a=w;w++;)r=t2;while(*r){*a=*r;a++;r++;}}main()(chars[100],tl[100],t2[100],w[100];printf(M\nPleaseenterstringS:n);scanf(n%sH,s);printf(n\nPleaseentersubstringtl:H);scanf("%s",tl);printf("\nPleaseentersubstringt2:M);scanf(H%sM,t2);if(strlen(tl)==strlen(t2)){fun(s,tl,t2,w);printf(M\nTheresultis:%s\n'\w);)elseprintf(n\nError:strien(tl)!=strlen(t2)\nM);}解题思路:第一处:判断W指针所指的值是否是结束符,应改为:while(*w),第二处:if错写成げ。第19套给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入ー个字符串数组中。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#include<stdio.h>#include<string.h>#defineN5#defineM81/;k*********found**********/fun(char(*sq)[M]) 改为:char*fun(char(*sq)[M]){inti;char*sp;sp=sq[O];
for(i=0;i<N;i++)if(slrlen(sp)<strlen(sq[i]))sp=sq[i];/**********found**********/returnsq; 改为:returnsp;)main(){charstr[N][M],*longest;inti;printf(HEnter%dlines:\nM,N);for(i=0;i<N;i++)gets(str[i]);printf(M\nTheNstring:\n0,N);for(i=0;i<N;i++)puts(str[i]);longest=fun(str);printf(n\nThelongeststring:\nH);puts(longest);)解题思路:第一处:要求返回字符串的首地址,所以应改为:char*fun(char(*sq)[M])〇第二处:返回一个由变量sp控制的字符串指针,所以应改为:returnsp;。第20套给定程序MODU.C中函数fun的功能是:统计字符串中各元音字母(即:A,E、I、〇、U)的个数。注意:字母不分大、小写。例如:若输入:THIsisaboot,则输出应该是:1、〇、2、2、0.请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>fun(char*s,intnum[5]){intk,i=5;for(k=0;k<i;k++)/**********found**********/改为:num[k]=0;改为:改为:num[k]=0;改为:switch(*s)for(;*s;s++){i=-l;/**********found**********/switch(s){case'a1:case'A,:{i=0;break;}case'e1:case'E1:{i=l;break;}caseT:caseT:{i=2;break;}case'〇':case'O':{i=3;break;}case'u':case'U':{i=4;break;}if(i>=0)
num[i]++;)main(){charsl[81];intnuml[5],i;printf(n\nPleaseenterastring:n);gets(si);fun(si,numl);for(i=0;i<5;i++)printf("%dM,numl[i]);printf("\nH);}解题思路:第一处:num初始化错误,应为:num[k]=0;o第二处:由于s是指针型变量,所以应改为:switches)。第21套给定程序MODU.C的功能是:读入ー个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入:1amastudenttotaketheexamination.,则应输出:IAmAStudentToTakeTheExamination.〇请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<ctype.h>#include<string.h>改为:#include<stdio.h>改为改为:#include<stdio.h>改为:upfst(char*p)/************found************/upfst(charp){intk=0;for(;*p;p++)if(k){if(*p==-)k=O;}elseif(*p!=1*){k=1;*p=toupper(*p);}main(){charchrstr[81];printf(H\nPleaseenteranEnglishtextline:M);gets(chrstr);printf(''\n\nBeforechanging:\n%sM,chrstr);upfst(chrstr);printf("\nAfterchanging:\n%s\n",chrstr);解题思路:第一处:包含头文件的标识错误,在include前漏写了#。
第二处:由于传入的参数是字符串,所以应为upfst(char*p)o第22套给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>#include<stdlib.h>fun(intn,int*a){inti,j,p,t;for(j=O;j<n-l;j++)(P=j;/************found************/改为:for(i=j+l;i<=n-l;i++)改为:for(i=j+l;i<=n-l;i++)改为:p=i;if(a[p]>a[i])/************fbund************/t=i;if(p!=j){t=a[j];a|j]=a[p];a[p]=t;}putarr(intn,int*z){inti;for(i=1;i<=n;i++,z++){printf(”%4d”,*z);if(!(i%10))printf(“\n”);}printf(“也”);)main(){intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;printf(”\n\nBeforesorting%dnumbers:\n",n);putarr(n,aa);fun(n,aa);printf(H\nAftersorting%dnumbers:\n,',n);putarr(n,aa);}解题思路:第一处:for循环的终止值应该くn或者是く=n-1〇第二处:使用临时变量P来保存最小值位置i,所以应改为:Pコ;。第23套给定程序MODI1.C中函数fun的功能是:交换主函数中两个变量的值。例如:若变量a中的值原为8,b中的值为3。程序运行后a中的值为3,b中的值为8。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>/*********found**********/intfun(intx,inty) 改为:intfun(int*x,int*y)(intt;/*********found**********/t=x;x=y;y=t; 改为:t=*x;*x=*y;*y=t;)main()(inta,b;a=8;b=3;fun(&a,&b);printf(M%d,%d\n",a,b);)解题思路:第一处:函数形参定义不正确,在定义第2个形参时,也应加上int。由于通过该函数实现两数交换,在C语言中,必须交换地址中的值,所以应定义为int*x,int*ye第二处:要交换地址中的值,不能交换地址,必须指定地址中的值,因此应改为t=*x;*x=*y;*y=t;〇第24套假定整数数列中的数不重复,并存放在数组中。给定程序MODU.C中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#include<stdio.h>#defineN20fun(int*a,intn,intx){intp=0,i;a[n]=x;while(x!=a[p])p=p+1;/**********found**********/if(p==n)return-1; 改为:jf(p==n)return-1;else{for(i=p;i<n;i++)/**********found**********/a[i+l]=a[i]; 改为:a[i]=a[i+l];main(){intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;n=10;printf(MTheoriginaldata:\nM);for(i=0;i<n;i++)printf(,,%5d',,w[i]);printf("\nlnputx(todelete):n);scanf(H%d'\&x);printf(HDelete:%d\n",x);n=fun(w,n,x);if(n==-l)print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 潜水摄影工作室行业深度调研及发展项目商业计划书
- 电影拍摄基地企业制定与实施新质生产力项目商业计划书
- 珠宝鉴定体验馆行业深度调研及发展项目商业计划书
- 机器人设计大赛企业制定与实施新质生产力项目商业计划书
- 游戏化学习书籍行业深度调研及发展项目商业计划书
- 民俗文化进校园行业深度调研及发展项目商业计划书
- 生物多样性研究行业跨境出海项目商业计划书
- 机器人编程班行业跨境出海项目商业计划书
- 宝石切割与镶嵌技艺课程行业跨境出海项目商业计划书
- 木笔筒AI应用企业制定与实施新质生产力项目商业计划书
- 2025年中国稀土磁性材料行业市场规模调研及投资前景研究分析报告
- T/DGGC 005-2020全断面隧道掘进机再制造检测与评估
- 湖南省永州市冷水滩区京华中学2025年中考二模 历史试题(含答案)
- (三模)烟台市2025届高三高考诊断性测试地理试卷(含答案)
- 江苏省镇江市江南学校2025年七下数学期末综合测试试题含解析
- 水权与水资源管理考试试题及答案
- 公路防汛安全培训课件
- 【8生 会考】2022-2024年安徽省初中(八年级)中考初二会考生物试卷(3年真题)
- 安徽卓越县中联盟2024-2025学年高三下学期5月份检测物理试题+答案
- 2024-2025学年湖北省十堰市高二历史下学期6月期末调研考试试卷(附答案)
- 2025至2030中国养发服务行业营销策略及竞争格局研究报告
评论
0/150
提交评论