资源描述:
《C语言笔试--程序改错题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言机试程序改错题gc22.c程序是输入一个字符串,将此字符串中最长的单词输出,程序在注释行附近有两个错误,请试调试改正,但调试改正中不得增删语句。intalph(charc){if((c>='a'&&c<='z')
2、
3、(c>='A'&&c<='Z'))return(1);elsereturn(0);/*find1*/}intlongest(charstr)//////////////intlongest(char*str){intlen=0,i,length=0,flag=1,point,place;for(i=0;i<=str
4、len(str);i++)if(alph(str[i]))if(flag){flag=0;point=i;}elselen++;else/*Find2*/{flag=0;/////////////flag=1;if(len>length){length=len;place=point;len=0;}}return(place);}main(){inti;charline[100];printf("Enterstring");gets(line);printf("thelongestis:");for(i=longest(line
5、);alph(line[i]);i++)printf("%c",line[i]);printf("");}2下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*cr
6、eate(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*……………comment……………*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p1=(structstud*)malloc(size
7、(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc56.c程序用于将字符串中的小写字母转换为大写字母,程序中有两处错误,请调试改正之,但不得增删语句.#includevoidmain(void){chars[255];inti;scanf("%s",s);for(i=0;s[i];i++)if(s[i]>='b'&&s[i]<='z')//////s[i]>='a'&&s[i]<=
8、'z's[i]=s[i]+'a'+'A';//////s[i]=s[i]-'a'+'A'printf("%s",s);}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();p
9、rintf("Originalarray:");for(i=0;i<8;i++)printf("%5d",a[i]);printf("");jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:");for(i=0;i<8;i++)printf("%5d",a[i]);printf("");}voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;
10、q*max)max=q;if(*q