2012C语言上机题预测与浅析_第1页
2012C语言上机题预测与浅析_第2页
2012C语言上机题预测与浅析_第3页
2012C语言上机题预测与浅析_第4页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

考过二级C你就知道这是啥了,参考答案附后第1套题给定程序的功钙是调用fun函数建立班级通讯录。通讯录中记承每位赞生的编号、姓名和电话号码。班级的人数和学生的信息从键盘谈入,每年人的信息作为一个数喟块写式名为呷fi1e5.dat的二进制文件中。请在程序的手划线处填入正确的内容并把下划线删除,使程序得出正确的结°注意:源程序存放在考生文件房下的BLANK1.C中。不薄增后或删行,也不得更改程序的结构!ー、程序填空题#include <stdio.h>#include <stdlib.h>#defineN5typedefstruct{intnum;charname[10];chartel[10];}STYPE;voidcheck();/**********foundintfun(1*std)I**********fond**********2*fp;inti;if((fp=fopen("myfile5.dat","wb"))==NULL)

return(O);printf("\nOutputdatatofile!\n");for(i=0;i<N;i++)/**********f°n**********Ifwrite(&std[i],sizeof(STYPE),1,3);fclose(fp);return(1);}main(){ STYPEs[10]={{l;,,aaaaa",,,llllll"},{l/"bbbbb,,/,,222222"Hl;,ccccc","333333")/{l,"ddddd","444444"},{l,"eeeee","555555"}};intk;k=fun(s);if(k==l){printf("Succeed!");check();}elseprintf("Fail!");}voidcheck(){FILE{FILE*fp;inti;STYPEs[10];if((fp=fopen("myfile5.dat","rb"))==NULL){printf("Fail!!\n");exit(O);}printf("\nReadfileandoutputtoscreen:\n");printf("\nnumnametel\n");for(i=0;i<N;i++){fread(&s[i],sizeof(STYPE),l,fp);printf("%6d%s %s\n",s[i].num,s[i].name,s[i].tel);}fclose(fp);}解析:填空是比较容易的,先将found后面一句数字和下划线删掉。intfun(1*std)不懂?没关系前后看看,特别是main后。这题好像主要考格式,记ー下。答案如下:填空:(1)STYPE(2)FILE(3)fp二、程序改错题给定程序M0DI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,底后把s中的字符按逆序连接到t串的后面。破口:当s市的宅住里为:"ABCDE”时,应为:"ABCDEEDCBA”。贝リt中的字符串应为:应为:"ABCDEEDCBA”。 = = 一…使它能卷出正确的结果。注意:不要改动main函数,不椁增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>voidfun(char*s,char*t){inti,si;si=strlen(s);j************f°n************for(i=0;i<=sl;i++)t[i]=s[i];for(i=0;i<sl;i++)I************f〇 ************t[sl]='\0';main(){chars[100],t[100];printf("\nPleaseenterstrings:");scanf("%s",s);fun(s,t);printf("Theresultis:%s\n",t);}解析:一般是found后那句错了(99%),有字母大小写,格式,分号,《》=问题,n+1(-1),没有先定义 等问题。个人认为比填空容

易。答案如下:改错: ⑴for(i=0;i〈=sl;i++) ⑵t[2*sl]='\0'或t[sl+sl]=‘、〇’函数fun的功熊是:将两个两位数的正整数函数fun的功熊是:将两个两位数的正整数a、b合合并的方式是:灌破的十位和个位数依次放在c数的イ和个位装裱次放れc数的吉位えロ个位上。,位上,b数的例如,当a=45,b=12时,调用该函数后,c=4152。注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不待修改。请勿改动主函薮其它函数中的任何幡,仅在函数fun的花括导中填入你编写的若干语句。#include<stdio.h>voidfun(inta,intb,long*c)main(){inta,b;longc;voidNONO();printf("lnputab:");scanf("%d%d"/&a,&b);fun(a,b,&c);printf("Theresultis:%d\n"/c);NONO();voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*rf,*wf;inti,a,b;longc;rf=fopen(''K:\\k01\\2401000l\\in.daビJT');wf=fopen("K:\\k01\\2401000l\\out.daビJw");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}解析:我叫这题做“4512”问题,考试・题・库中有几道类题,如果你遇到了,我要说你真走运,太简单了!按他意思来,其他的也是,一定要看清题,要你做什么算法,输出什么,格式?,数组?包括前两道,要运行检验,切记不要因太易而忘形。时间足够了(30min绝对搞定,不会做2小时也没用)。答案如下:编程:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套题ー、程序填空题给定程序里,函数fun的懲E是:将自然麴〜10以及它们的平方根写到名为myfile3.txt的文本文件中,然后即阿匠读出显示在屏嘉上。果。请在程序的下划枝处填入正赢内容并把デ划线礪,使程序得出正确的结果。注意:源皆序存放在考生文件隽下的BLANK1.C中。不得增若或删行,也不建更改程序的结构!#include <math.h>#include <stdio.h>intfun(char*fname){FILE*fp;inti,n;floatx;if((fp=fopen(fname,"w"))==NULL)return0;for(i=l;i<=10;i++)I**********f°n**********fprintf(1 ,"%d%f\n",i,sqrt((double)i));printf("\nSucceed!!\n");/**********f°n**********printf("\nThedatainfile:\n");if((fp=fopen(3,"r"))==NULL)return0;fscanf(fp,"%d%f"z&n,&x);while(!feof(fp)){printf("%d%f\n",n,x);fscanf(fp,"%d%f",&n,&x);}fclose(fp);return1;}main(){charfname[]="myfile3.txt";fun(fname);}二、程序改错题给定程序M0DI1.C中fun函数的功能是:猫n个无序整数从小到大排序。清改正後序中的错误,使它能債出正确あ结果。注意:不要改动main函数,不容增行或删行,也不得更改程序的结构!#include<stdio.h>#include<stdlib.h>voidfun(intn,int*a){inti,j,p,t;for(j=0;j<n-l;j++){P=j;/************found************/for(i=j+l;i<n-l;i++)/************f〇undt=i;if(p!=j){t=a[j];a[j]=a[p];a[p]=t;}voidputarr(intn,int*z){inti;for(i=1;i<=n;i++,z++){printf("%4d",*z);if(1(i%10))printf("\n");}printf("\n");)main(){intaa[20]={9,3,0,4,L2,5,6,8,10,7},n=ll;

printf("\n\nBeforesorting%dnumbers:\n,n);putarr(n,aa);fun(n,aa);printf("\nAftersorting%dnumbers:\n",n);putarr(n,aa);}三、程序编写题-二」チa饗檄的。絹在45源函句的:放台分主语噌疋次当曹干fur式依,:改若数方数如意勿的函的位豐请写田的-二」チa饗檄的。絹在45源函句的:放台分主语噌疋次当曹干fur式依,:改若数方数如意勿的函的位豐请写田的榛C数在一渊峰辻対OG数吼册述用PR函5M^^:它好出丸,文其解:时在兩此在か^I仅后I任数C的函L中。入改填修中醤节不括据花数的的皿軸#include<stdio.n>voidfun(inta,intb,long*c)}main(){inta,b;longc;voidNONO();printf("lnputab:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*rf,*wf;inti,a,b;longc;rf=fopen("K:\\k01\\2401000l\\in.daビ,ケ’);wf=fopen("K:\\k01\\24010001\\out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定

的目标文件中,复制成功时函数返回值为1,失败时返回值为。。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。第4套题.堂旗静懑送3里陋狂嘯啓譚發?.堂旗静懑送3里陋狂嘯啓譚發?1的ゆ套冨副理营雷的島;手中,复制虜功时函数返回值为1,失败时返回值为〇。在复制的过程中,把ウ内容输出動终端屏幕。主函数中源文件名放在变量sfname' ---件名在变至tfname中〇请在程序南下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意:源皆序存放在考生文件隽下的BLANK1.C中。不編增旺或删行,也不奮更改程序的结构!#include<stdio.h>#include<stdlib.h>intfun(char*source,char*target){FILE*fs,*ft;charch;/**********foundif((fs=fopen(source,1))==NULL)return0;if((ft=fopen(target,"w"))==NULL)return0;printf("\nThedatainfile:\n");ch=fgetc(fs);********fZ-XII»»> **********while(!feof(2)){putchar(ch);!**********f〇 **********fputc(ch,3);ch=fgetc(fs);}fclose(fs);fclose(ft);printf("\n\n");return1;}main(){charsfname[20]=,,myfilel,,/tfname[20]="myfile2";FILE*myf;inti;charc;myf=fopen(sfname,"w");printf("\nTheoriginaldata:\n");for(i=l;i<30; i++){ c=,A,+rand()%25;fprintf(myf,"%c',?c);printf("%c",c);}fclose(myf);printf("\n\n");if(fun(sfname,tfname))printf("Succeed!");elseprintf("Fail!");

二、程序改错题次取出,给定ぎ序M0DI1.C中函数fun的功能是:将长整型数中每一位上为偶数的数依:,:,椅表ー个瓶数放在t中。高位仍在商行,低位仍在低位。次取出,请改正程序中的错误,使它能黄岀正确的结果。注意:不要改动main函数,不售增行或删行,也不得更改程序的结构!例如,当s请改正程序中的错误,使它能黄岀正确的结果。注意:不要改动main函数,不售增行或删行,也不得更改程序的结构!#include<stdio.h>voidfun(longs,long*t){intd;longsl=l;*t=0;while(s>0){d=s%10;/************folind************if(d%2=0)*t=d*sl+*t;si*=10;I************folind************s\=10;}main(){longs,t;printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}函数fun的功能是:将s所指数的字符外,其余的全都删除;串三、程序编写题函数fun的功能是:将s所指数的字符外,其余的全都删除;串中。°例如,若S所指字符串中的内容为:"ABCDEFG123456”,其史字符A的ASCIH3值为奇数,因此应当删除;其中钠B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而実存2的ASCI咽值为离数,所在数组中的下标也为偶藪,因此不应当删除,其它东曲类推。最片t所指的数组中的内容应是:"246”。注意:多分源程序存在文件PR0G1.C中。请勿改新主函薮mai痛!其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>#include<string.h>voidfun(char*s,chart[])main()(chars[100],t[100];voidNONO();printf("\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッchars[100],t[100];FILE*rf,*wf;inti;rf=fopen("K:\\k01\\24010001\\in.dat","r");wf=fopen("K:\\k01\\240100Ol\\out.daビ,"w");for(i=0;i<10;i++){fscanf(rf,"%s",s);fun(s,t);fprintf(wfz"%s\n";t);}fclose(rf);fclose(wf);第5套题已建立一个带有头结点的单向链表,链表中的各结点按结点数ー、程序填空题已建立一个带有头结点的单向链表,链表中的各结点按结点数域中的数:入到链極ー竅罐讓物聯徐齊斂值放入一个新结点并请在座序葯下划线处填入正确的内容并把下崩聂删除,使程序得出正确的结域中的数:注意:源程序存放在考生文件隽下的BLANK1.C中。不容增杆或删行,也不备更改程序的结构!#include <stdio.h>#include <stdlib.h>#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h,intx){SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST));/**********f°n**********s->data=1;q=h;p=h->next;while(p!=NULL&&x>p->data){I**********f°n**********q=_2p=p->next;}s->next=p;i**********f〇 **********q->next=3;}SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=O;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf("\nThelistisNULL!\n");else{printf("\nHead");do{printf("->%d"zp->data);p=p->next;}while(p!=NULL);printf("->End\n");}}main(){SLIST*head;intx;inta[N]={ll,12,15,18,19,22,25,29};head=creatlist(a);printf("\nThelistbeforeinserting:\n");outlist(head);printf("\nEnteranumber:");scanf("%d",&x);

fun(head,x);printf("\nThelistafterinserting:\n");outlist(head);)正整数num正整数num的各位上的数字之积。给定野序MODI1.C中函数fun的功能是:V, 例如,若筋人:252,则鲍岀应该是:20o若输入:202.则输岀应该是:〇。请改正程序中的错貳使它能甕出正确的ノ吉果。注意:不要改动main函数,不信增行或删行,也不得更改程序的结构!ffinclude<stdio.h>longfun(longnum)************found************longk;do{k*=num%10;/************f〇und************num\=10;}while(num);return(k);main(){longn;printf("\nPleaseenteranumber:");scanf("%ld",&n);printf("\n%Id\n",fun(n));}三、程序编写题適编写ー个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值退回。例如:若有5门牌程的成绩是:90.5,72,80,61.5,55则畐敎的值为:71.80«注意:部分源程序存在文件PR0G1.C中。请勿改动主函薮main^其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>floatfun(float*a,intn)main(){floatscore[30]={90.5,72,80,61.5,55},aver;voidNONO();aver=fun(score,5);printf("\nAveragescoreis:%5.2f\n",aver);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*fp,*wf;inti,j;floataver,score[5];fp=fopen("K:\\k01\\24010001\\in.dat","r");wf=fopen("K:\\k01\\240100Ol\\out.daビ,"w");for(i=0;i<10;i++){for(j=0;j<5;j++)fscanf(fp,"%f,",&score[j]);aver=fun(score,5);fprintf(wf,"%5.2f\n",aver);)fclose(fp);fclose(wf);第6套题ー、程序填空题函数:調弱電器飜徽舞崎端!晦應讓缩短。果。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意:源程序存放在考生文件隽下的BLANK1.C中。不編增若或删行,也不龍更改程序的结构!#include <stdio.h>#include <stdlib.h>#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*p){SLIST*t,*s;t=p->next;s=p;while(t->next!=NULL)s=t;!**********f°n**********t=t->1)!**********f〇 **********printf("%d", 2);s->next=NULL;i**********f〇 **********free(3);}SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=O;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf("\nThelistisNULL!\n");else{printf("\nHead");do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End\n");}}main(){SLIST*head;inta[N]={ll,12/15/18,19,22,25,29};head=creatlist(a);printf("\nOutputfromhead:\n");outlist(head);printf("\nOutputfromtail:\n");while(head->next!=NULL){fun(head);printf("\n\n");printf("\nOutputfromheadagain:\n");outlist(head);二、程序改错题M0内停要孱若程不程中,证:定串如改意给篇请注年DIM0内停要孱若程不程中,证:定串如改意给篇请注年DI書中改输:应^果则它,,使数cd,函ab误in为错Ina。的行ba确删de正或..出行出竈#include<stdio.h>/************found************/#include<stdio.h>/************found************/fun(chara){if(*a){fun(a+l);/************found************/printf("%c"*a);))main(){chars[10]="abcd";printf("处理前字符串=%s\n处理后字符串=",s);fun(s);printf("\n");}三、程序编写题供返提则数度串ijan费〇函长符besh源函句供返提则数度串ijan费〇函长符besh源函句个豊え回分主语ー符个L干写字ー,将:改若编求第如数意勿的请的回例函注请写.•回是返功函物,它物器0・!shR><c。nh符串字符个字两的串。#include<stdio.n>char*fun(char*s,char*t)}main(){chara[20],b[20];voidNONO();printf("lnput1thstring:");gets(a);printf("lnput2thstring:");gets(b);printf("%s\n",fun(a,b));NONO();voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*fp,*wf;inti;chara[20],b[20];fp=fopen("K:\\k01\\24010001\\in.dat","r");wf=fopen("K:\\k01\\2401000l\\out.daビJw");for(i=0;i<10;i++){fscanf(fp,"%s%s",a,b);fprintf(wf,"%s\n",fun(a,b));}fclose(fp);fclose(wf);第フ套题ー、程序填空题给定程序中己建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只操留一请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结°注意:源程序存放在考生文件隽下的BLANK1.C中。不得增存或删行,也不奮更改程序的结构!#include <stdio.h>#include <stdlib.h>#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h){SLIST*p,*q;p=h->next;if(p!=NULL){q=p->next;while(q!=NULL){if(p->data==q->data){p->next=q->next;I**********fond**********free(1);I**********f°n**********q=p->2;else{p=q;!**********f〇 **********q=q->3;}}}}SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=O;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf("\nThelistisNULL!\n");else{printf("\nHead");do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End\n");}}main(){SLIST*head;inta[N]={l,2,2,3,4,4,4,5};head=creatlist(a);printf("\nThelistbeforedeleting:\n");outlist(head);fun(head);printf("\nThelistafterdeleting:\n");outlist(head);}二、程序改错题给定程序M0DI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺底进行秘匠。请祢改相存ノ的错误,使它能書岀正确的结果。注意:不要改动main函数,不容增行和删行,也不得更改程序的结构!#include<stdio.h>#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=0;j<n-1;j++){!************f〇nd************p=jfor(i=j+l;i<n;i++)if(a[i]<a[p])I************f〇lind************p=j;t=a[p];a[p]=a[j];a[j]=t;}}main()(inta[N]={9,6,8,3,-l},i,m=5;printf("排序前的数据:");for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");fun(a,m);printf("排序后的数据:");for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");

请编用ー个函数请编用ー个函数fun,它的功能是:求出1到m之i史含m)能在整数放在数组a中,通过越回这專数的个数。制如,吉传送给m输出:711142122283335424449注意:部分源程序存在文件PR0G1.C中。请勿改親主函薮mai向]其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>#defineM100voidfun(intm,int*a,int*n)}main(){intaa[M],n,k;voidNONO();fun(50,aa,&n);for(k=0;k<n;k++)if((k+l)%20==0)printf("\n");elseprintf("%4d",aa[k]);printf("\n");NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*fp,*wf;inti,n,j,k,aa[M],sum;fp=fopen("K:\\k01\\24010001\\in.dat","r");wf=fopen("K:\\k01\\24010001\\out.dat"/"w");for(i=0;i<10;i++){fscanf(fp,"%d,",&j);fun(j,aa,&n);sum=0;for(k=0;k<n;k++)sum+=aa[k];fprintf(wf,"%d\n",sum);}fclose(fp);fclose(wf);第8套题给定程序中,函数fun的功熊是:在差有头结点的手向链表为ch的2给定程序中,函数fun的功熊是:在差有头结点的手向链表为ch的2吉瓦找到后通过函我值返回表结点在链表帀所处而.:中,查找数巾I页序号;若果。为ch的结点,函数返回唯。请在程序的下划线处地入正确的内容并把下划线删除,使程序得出正确的结注意:源程序存放在考生文件隽下的BLANK1.C中。不得增杼或删行,也不奮更改程序的结构!#include <stdio.h>#include <stdlib.h>#defineN8typedefstructlist{intdata;structlist*next;}SLIST;SLIST*creatlist(char*);voidoutlist(SLIST*);intfun(SLIST*h,charch){SLIST*p;intn=0;p=h->next;!**********f°n**********while(p!=1){ n++;!**********f〇 **********if(p->data==ch)return2elsep=p->next;return0;}main(){SLIST*head;intk;charch;chara[N]={'m7p,/,g,,'a,,'w,,,x7r7d'};head=creatlist(a);outlist(head);printf("Enteraletter:");scanf("%c",&ch);!**********f°n**********k=fun(3);if(k==0)printf("\nNotfound!\n");elseprintf("Thesequencenumberis:%d\n",k);elseSLIST*creatlist(char*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=O;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf("\nThelistisNULL!\n");else{printf("\nHead");do{printf("->%c",p->data);p=p->next;}while(p!=NULL);printf("->End\n");二、程序改错题给定程序M0DI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制款誨符继囈书改走 错误,使な能揄出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include<string.h>#include<stdio.h>#include<ctype.h>fun(char*p){inti,t;charc[80];I************f°n************For(i=0,t=0;p[i];i++)if(!isspace(*(p+i)))c[t++]=p[i];I************f°n************strcpy(p,c);main(){charc,s[80];inti=0;printf("lnputastring:");c=getchar();while(c!='#'){s[i]=c;i++;c=getchar();}s[i]='\O';fun(s);puts(s);}三、程序编写题请编写ー个函数fun,它的功能是:将请编写ー个函数fun,它的功能是:将ss直指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则米转换)。例如,

注意:»入"abc4EFg”,则应输出"aBc4EFg”。请勿改动主函キ你编写的若干语句。望序存在文件PROG1.C中。皮mai楊口其它函数中的任何内容,仅在函数fun的花括号中填入#include<stdio.h>#include<string.h>voidfun(char*ss)main(){chartt[81];voidNONO();printf("\nPleaseenteranstringwithin80characters:\n");gets(tt);printf("\n\nAfterchanging,thestring\nヾ%sヾ",tt);fun(tt);printf("\nbecomes\n\"%s\"\n",tt);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*fp,*wf;chartt[81];inti;fp=fopen("K:\\k01\\24010001\\in.dat"/"r");wf=fopen("K:\\k01\\24010001\\out.daビ,"w");for(i=0;i<10;i++){fscanf(fp,"%s"ztt);fun(tt);

fprintf(wfz"%s\n",tt);fclose(fp);fclose(wf);}第9套题给定程序中&函数fun给定程序中&函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n麻指的存储单元中。果。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意:源皆序存放在考生文件隽下的BLANK1.C中。果。不容增注或删行,也不律更改程序的结构!#include <stdio.h>#include <stdlib.h>#defineN8typedefstructlist{intdata;structlist*next;}SLIST;SLIST*creatlist(int*a);voidoutlist(SLIST*);voidfun(SLIST*h,int*n){SLIST*p;!**********f〇 **********—1—=0;p=h->next;while(p){(*n)++;!**********f°n**********P=p->2;)}main(){SLIST*head;inta[N]={12,87/45/32,91,16,20,48},num;head=creatlist(a);outlist(head);!**********f°n**********fun( 3,&num);printf("\nnumber=%d\n",num);SLIST*creatlist(inta[]){SLIST*h,*p,*q; inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;)p->next=O;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf("ThelistisNULL!\n");else{printf("\nHead");do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End\n");二、程序改错题时

ab勺目驟出勺驟岀函求王..在是,能回功返物值,Un数C

ab函。容da」正行bcInd出增时

ab勺目驟出勺驟岀函求王..在是,能回功返物值,Un数C

ab函。容da」正行bcInd出增aoul*:f能不为be它,容t使数内no歯的..误in卩,为中む£心错Ina

L址值串cd建的动DI地数符ab符到中改M0的函字.•字找序要室则当是当索不藩:应

定字.果出正・.發意给子.F指未岀程星Iff注#include<stdio.n>#include<string.h>char*fun(char*s,char*t)char*p,*r,*a;!************f〇nd************a=Null;while(*s){P=s;r=t;while(*r)/************f〇 ************if(r==p){r++;p++;}elsebreak;if(*r=='\0')a=s;

S++;}returna;}main()(chars[100],t[100],*p;printf("\nPleaseenterstringSscanf("%s",s);printf("\nPleaseentersubstringtscanf("%s",t);p=fun(s,t);if(p)printf("\nTheresultis:%s\n",p);elseprintf("\nNotfound!\n");}三、程序编写题,当a=4/b=12时,调用该函数后,c=5142。、一“源程序存在文件PR0G1.C中。数齡件IN.DAT中的数据不售修改。西,当a=4/b=12时,调用该函数后,c=5142。、一“源程序存在文件PR0G1.C中。数齡件IN.DAT中的数据不售修改。西薮mai痛!其它函数中的任何橢,仅在函数fun的花括导中填入注意:即分L请勿改动主函気你编写的若干语句。#include<stdio.h>voidfun(inta,intb,long*c)main(){inta,b;longc;voidNONO();printf("lnputab:");scanf("%d%d"/&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。ッFILE*rf,*wf;inti,a,b;longc;rf=fopen("K:\\k01\\2401000l\\in.daビ,"r");wf=fopen("K:\\k01\\24010001\\out.daビ,"w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}第10套题ー、程序填空题给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论