考试题库-二级C语言题库.pdf
第1套题一、程序填空题段霹照善舞,使程序得出正确的结一件浅盘刘E T醐人da确海的及正fur级le入建fi填调。箱是码为线他西!p名划功话书的电写的序和块序程名置定姓数在给、个请号一 1的顺序乩程的改下更S文也生,考行在删放或序增s源不编为果通婚。崛霸2意注#include#include#define N 5typedef struct int num;char name10;char tel10;STYPE;void check();/*found*Iint fun(_STYPE _*std)/*found*/FILE_*fp;int i;if(fp=fopen(myfile5.dat;wbH)=NULL)return(O);printf(nOutput data to file!n);for(i=0;iN;i+)/*found*/fwrite(&stdiz sizeof(STYPE),1,_fp_);fclose(fp);return(1);)main()STYPE s10=l;,aaaaa,z llllll ,l/bbbbb,222222,l;ccccc,333333,l,ddddd;,444444*,l,eeeee,;,555555;int k;k=fun(s);if(k=l)printf(Succeed!);check();elseprintf(Fail!);void check()FILE*fp;int i;STYPE s10;if(fp=fopen(myfile5.dat,rb)=NULL)printf(Fail!n);exit(O);printf(nRead file and output to screen:n);printf(n num name teln);for(i=0;iN;i+)fread(&si,sizeof(STYPE),l,fp);printf(%6d%s%sn/si.num,si.name,si.tel);)fclose(fp);)二、程序改错题t到的序AB能不fun逆,它,初雌嬴使磁1目勺向田示Is攵DlmrrrrMo司需序要尊当则程不釐:正:定韬改意给鞭请注功连CDAB1能接丁CD出增是律EE正行冒,DC确或果,结好S中的字符按正序存放符串/include#include void fun(char*s,char*t)int i,si;si=strlen(s);/*found*/for(i=0;i=sl;i+)ti=si;for(i=0;isl;i+)tsl+i=ssl-i-l;/*found*/t2*sl=0;main()char s100,t100;printf(nnPlease enter string s:);scanf(%snz s);fun(s,t);printf(The result is:%snz t);)三、程序编写题嚼辱卜口口fE数改填修中膏方不括据花数的的Un此在糙仅41文乳数中的依。函数数上询住隹位用两个个调.m a-1。5,募句在=4源函语何.放a=分主干附是次当野若fur式依;改的数方数如意勿写函的位翟请编并个你合和入向向=,/YtD-#include void fun(int a,int b,long*c)*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);main()int a,b;long c;void NONO();printf(lnput a b:);scanf(%d%d,&a,&b);fun(a,b,&c);printf(The result is:%dn,c);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;int i,a,b;long c;rf=fopenCKiWkOlXWlOOOlWin.dat,r);wf=fopenCKiWkOlWAOlOOOlWout.datVw);for(i=0;i 10;i+)fscanf(rf,”%d,%cT,&a,&b);fun(a,b,&c);fprintf(wfz a=%d,b=%d,c=%ldn,a,b,c);)fclose(rf);fclose(wf);)第2套题一、程序填空题给定程序的功能是:从键盘输人若干行文本(每任不超过80个字假),写到文 件 喈 ile4.tx t电_ 用-1(独立一行)隹为宇符量输入结束的标志。然后将文件的内容篌出显示在屏蕙上。文件的读写为别由自定义函数R eadText和WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源矍序存放在考生文件看下的BLANKl.C中。不容增籽或删行,也不得更改程序的结构!#include#include#includevoid WriteText(FILE*);void ReadText(FILE*);main()FILE*fp;if(fp=fopen(Hmyfile4.txt,w)=NULL)printf(open fail!n);exit(O);WriteText(fp);fclose(fp);if(fp=fopen(myfile4.txtJr)=NULL)printf(open fail!n);exit(O);ReadText(fp);fclose(fp);)/*found*/void WriteText(FILE*fw)char str81;printf(nEnter string with-1 to end:n);gets(str);while(strcmp(strJ-l)!=O)/*found*/fputs(strffw);fputs(n,fw);gets(str);)void ReadText(FILE*fr)char str81;printf(nRead file and output to screen:n);fgets(str,81,fr);while(!feof(fr)/*found*/printf(%s,/str);fgets(strz81,fr);二、程序改错题量 S中奇数位上的数,给定程序M0DI1.C中函数fun的功能是:从低位开始取壮二 二二构成一个新数放在t 中。高位抬在高位,低位例如,当s币的数为:7654321时,t 币的数为:7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不博增行或删行,也不得更改程序的结构!#include/*found*/void fun(long s,long*t)long sl=10;*t=s%10;while(s 0)s=s/100;*t=s%10*sl+*t;/*found*/sl=sl*10;)main()long s,t;printf(nPlease enter s:);scanf(%ld,&s);fun(s,&t);printf(The result is:%ldn,t);)三、程序编写题学生的记录由学号和成绩组成,N名学生的数据己在主函数中以入结构体数组电.遹 编 警 数 f u n,它的功能是:把分数最低的学生数强放在b断指的数组中,注恚 务数金低的看生可熊不止一个,函数返回分数最低周学生的人数。注意:郃分源程序在女性PR 0G1.C文件中。请勿改翱主函薮mai向 箕它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#define N 16typedef struct char num10;int STREC;s;int fun(STREC*a,STREC*b)int ij=0/min=a0.s;for(i=0;iN;i+)if(ai.smin)j=O;bj+=ai;min=ai.s;else if(min=ai.s)bj+=ai;return j;)main()STREC sN=GA05,85,GA03,76/GA02,69,,GA04,85,GA01,91,GA07/72,GA08,z64,GA06,87,GA015z85zGA013,91/GA012,z64,GA014,91,GA011,91L,GA017,64/GA018/64,GA016,72;STREC hN;int i,n;FILE*out;n=fun(s,h);printf(The%d lowest score:n,n);for(i=0;in;i+)printf(%s%4dn,hi.num,hi.s);printf(n);out=fopenCKiWkOlWAOlOOOlWout.datVw);fprintf(out,u%dnzn);for(i=0;in;i+)fprintf(out,%4dnzhi.s);fclose(out);第3套题一、程序填空题给定程序,函数fun的 也 是:将自然数1 1 0 以及它们的平方根写到名为inyfi请le3在.tx程t的序 的 藉 谶 熊 睿 醯 器 曾 耨 厂 使 程 序 得 出 正 确 的 结果。注意:源矍序存放在考生文件房下的BLANKl.C中。不容增才亍或删行,也不宿更改程序的结构!#include/includeint fun(char FILE*fp;*fname)int i,n;float x;if(fp=fopen(fname,w)=NULL)return 0;for(i=l;i=10;i+)/*fQ(Jpcl*/fprintf_fp,%d%fnzizsqrt(double)i);printf(nSucceed!n);/*found*/fclose(fp);printf(nThe data in file:n);/*found*/if(fp=fopen(myfile3.txt,r)=NULL)return 0;fscanf(fp,%d%f,&n,&x);while(!feof(fp)printf(%d%fn,n,x);fscanf(fp,%d%f,&n,&x);fclose(fp);return 1;)main()char fname=myfile3.txt;fun(fname);二、程序改错题给定程序MODH.C中fun函数的功能是:翔n个无序整数从小到大排序。请改正建序中的错误,使它能空出正确的结果。注 意:不要改动main函数,不警增行或删行,也不得更改程序的结构!/include#include void fun(int n,int*a)int i,j,p,t;for(j=0;j n-l;j+)P=j;/*found*/for(i=j+l;iai)/*found*/P=i;if(p!=j)t=aj;aj=ap;ap=t;)void putarr(int n,int*z)int i;for(i=1;i=n;i+,z+)printf(%4d,*z);if(!(i%10)printf(n);printf(n);main()int aa20=9,3,0,4,l,2,5,6,8,10,7,n=ll;printf(nnBefore sorting%d numbers:nfun(n,aa);printf(nAfter sorting%d numbersAn,n),n);putarr(n,aa););putarr(n,aa);三、程序编写题并个编合和你内向1孑口:白白二予l azib翳。露在45源函句幅:放夺分王语用是次当野干fur式依,:改若数方数如意勿的函的位翟请写数在整放正次的依。41 3数数上整G1咐圈S3该蜘数徵翳Bri g将十十2B-铺4此在北怕仅251警JJX 仕 cb数的,。入改填修中膏方不括据花数的的,51b白/include void fun(int a,int b,long*c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;)main()int a,b;long c;void NONO();printf(lnput a b:);scanf(%d%d/&a,&b);fun(a,b,&c);printf(The result is:%ldn”,c);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;int,a,b;long c;rf=fopen(“K:k0124010001in.dat,r”);wf=fopenCKAXkOlWAOlOOOlWout.datVw);for(i=0;i 10;i+)fscanf(rf,%d,%d,&a,&b);fun(a,b,&c);fprintf(wf,a=%d,b=%d,c=%ldn,a,b,c);)fclose(rf);fclose(wf);)第4套题一、程序填空题给定程序的功能是:源用函数fun将揖定源文件中的内容募制副指定的目趣里复制燧功时函数位向窿为1,失咬时返回循为0。在复输的白林史,把意,由容输出到终端屏幕。主函数中源文件名放在变量sfna1rle中,目标支件名放:里 tfname 中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件房下的BLANKl.C中。不容增行或删行,也不痔更改程序的结构!#include/includeint fun(charsource,char*target)FILE*fs,*ft;char ch;/*found*/if(fs=fopen(source,_)=NULL)return 0;if(ft=fopen(target,w)=NULL)return 0;printf(nThe data in file:nH);ch=fgetc(fs);/*found*/while(!feof _ fs_)putchar(ch);/*found*/fputc(ch,_ft_);ch=fgetc(fs);)fclose(fs);fclose(ft);printf(nn);return 1;)main()char sfname20=myfilel/tfname20=myfile2;FILE*myf;int i;char c;myf=fopen(sfname,w);printf(nThe original data:n);for(i=l;i30;i+)c=,A,+rand()%25;fprintf(myf,%c,c);printf(%c,c);fclose(myf);printf(nn);if(fun(sfname,tfname)printf(Succeed!);else printf(HFail!);)二、程序改错题次取出,给定程序M0DI1.C中函数fun的功能是:粗长整型数中每一位上为偶数的数依 1,相庇一个瓶数放在t 中。高位仍在商社低位仍在低位。例如,当s中的数为:87653142时,数为:8642。请改正程序中的错误,使它能空出正南的结果。注意:不要改动main函数,不博增行或删行,也不得更改程序的结构!#include void fun(long s,long*t)int d;long sl=l;*t=0;while(s 0)d=s%10;/*found*/if(d%2=0)*t=d*sl+*t;si*=10;)/*found*/s/=10;)main()long s,t;printf(nPlease enter s:);scanf(%ld,&s);fun(s,&t);printf(The result is:%ldn,1);)三、程序编写题函数fu n 的功能是:将s 所指 为偶数、同数的字符外,其余的全都删除;串 的一个新串中。例如,若S所指字符串中的内答为:ABCDEFG1 2 3456”,其 匚值为奇数,因此应当删除;其中学将B的ASCII码值为偶数,但也一.r.,奇数,因此也应当删除;而定符2 的ASCI咽值为偶数,所在数组中的下标也为偶因此不应当删皤,其它壮曲类推。最看t 所指除)数组中的内容应是:2 46”。注意:鄢分源程序存在文件PR0G1.C中。请勿改副主函薮ma i痛 其它函数中的任何内容,仅在函数fu n 的花括号中填入你编写的若干语句。#include#include void fun(char*s,char t)(int i=0,j=0;while(si)(if(i%2=0&si%2=0)tj+=si;i+;)tj=0;)main()char 5(100,t100;void NONO();printf(nnPlease enter string S:);scanf(s”,s);fun(s,t);printf(nThe result is:%sn,t);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/chars100,t100;FILE*rf,*wf;int i;rf=fopen(K:k0124010001in.dat,r);wf=fopen(K:k0124010001out.dat,w);for(i=0;i 10;i+)fscanf(rf,%s,s);fun(s,t);fprintf(wf,%sn“,t);)fclose(rf);fclose(wf);)第5套题一、程序填空题给定矍序由已建立一个带有头结点的单向链表,链表中的各结点按结点数瑁域中的数携递喈有庄链技。函盘fu n 的功能是:盘形参而值放入一个新结点并根入到链表重,道只启各结点数据域的值仍保持阳槽有序。请在程序芮下划线处填入正确的内容并把下崩黑删除,使程序得出正确的结果。注意:源程序存放在考生文件隽下的BL ANKl.C中。不将增行或删行,也不偏更改程序的结构!#include/include#define N 8typedef struct list int data;struct list*next;SLIST;void fun(SLIST*h,int x)SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST);/*QUpJ*Is-data=_ x.q=h;p=h-next;while(p!=NULL&xp-data)/*found*jq=_p _;p=p-next;)s-next=p;/*found*/q-next=_ s_;)SLIST*creatlist(int*a)SLIST*h,*p,*q;int i;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;)p-next=0;return h;)void outlist(SLIST*h)SLIST*p;p=h-next;if(p=NULL)printf(nThe list is NULL!n);else printf(nHead);do printf(-%d,p-data);p=p-next;printf(-Endn);)main()SLIST*head;int x;int aN=ll,12,15,18,19,22,25,29);head=creatlist(a);while(p!=NULL);printf(nThe list before inserting:n);outlist(head);printf(nEnter a number:);scanf(%d,&x);fun(head,x);printf(nThe list after inserting:n);outlist(head);)二、程序改错题给定矍序M0DI1.C中函数fu n 的功能是:计笄正整数n u m的各位上的数字之积。例如,若输入:2 52,则输出应该是:2 0。若输入:2 02,则输出应该是:0,请改正程序中的错费,使它能黄出正确的2 吉果。注意:不要改动ma in 函数,不椁增行或删行,也不得更改程序的结构!#include long fun(long num)/*found*/long k=l;do k*=num%10;/*found*/Num/=10;while(num);return(k);)main()long n;printf(nPlease enter a number:);scanf(%ld,&n);printf(n%ldn,fun(n);)三、程序编写题道编写一个函数fu n,它的功能是:计算n 门课程的平均分,计算结果作为函数值遢回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55则 曷 致 的 隹 位 71.80。注意:部分源逑序存在文件PR0G1.C中。请勿改协 主函薮ma i冏)其它函数中的任何内容,仅在函数fu n 的花括号中填入你编写的若干语句。#include float fun(float*a,int n)int i;float aver=0.0;for(i=0;in;i+)aver+=ai;aver=aver/n;return aver;)main()float score30=90.5,72,80,61.5,55,aver;void NONO();aver=fun(score,5);printf(nAverage score is:%5.2fnz aver);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;int i,j;float aver,score5;fp=fopen(HK:k0124010001in.dat,r);wf=fopen(K:k0124010001out.dat;w);for(i=0;i 10;i+)for(j=0;j 5;j+)fscanf(fp,%f,&scorej);aver=fun(score,5);fprintf(wf,“%5.2fn”,aver);)fclose(fp);fclose(wf);)第6套题一、程序填空题给定程序中己建立一个带有兴结点的单向链帚在main函数中榜次得用fun函数,每制用一次fun函数,输出雍表尾部结点中晶数据,并释放该塔瓦 横链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源矍序存放在考生文件房下的BLANKl.C中。不替增存或删行,也不容更改程序的结构!#include/include#definetypedefN 8struct list int data;struct list*next;SLIST;void fun(SLIST*p)SLIST*t,*s;t=p-next;s=p;while(t-next!=NULL)S=t;/*found*/t=t-_ next_;)/*found*/printf(%d,t-data _);s-next=NULL;*nd*/free(_t_);)SLIST*creatlist(int*a)SLIST*h,*p,*q;int i;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;)p-next=0;return h;void outlist(SLIST*h)SLIST*p;p=h-next;if(p=NULL)printf(nThe list is NULL!n);else printf(nHead);do printf(-%d,p-data);p=p-next;while(p!=NULL);printf(-Endn);)main()SLIST*head;int aN卜11,12,15,18,19,22,25,29;head=creatlist(a);printf(nOutput from head:n);outlist(head);printf(nOutput from tail:n);while(head-next!=NULL)fun(head);printf(nn);printf(nOutput from head again:n);outlist(head);)二、程序改错题给定程序MODI 1.C中函数fu n 的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。.一.颁 E,fHS请改正程用中南为a b ed,则应输出:deb a o.错误,使它能计算出正确的结果。注意:不要改动ma in 函数,不得增行或删行,-不得更改程序的结构I#include/*foundVoid fun(char*a)if(*a)fun(a+l);/*found*I*Iprintf(”%c”,*a);)main()char s10=nabcd;printf(处理前字符串=%sn处 理 后 字 符 串 s);fun(s);printf(n);)三、程序编写题言SI,语晌s得串不符,(字度卜长两的若串。符串符个字两的比较.回曷返功函的,它痴fur的中一1 C&-haL中angOG数haJrPR函S件-匕R文其cDZX口于n。inLgh序ma球ffl句个史又回主语一符个也雪干写字一,将:改若编求第如数意勿的请的回例函在请写供返提则扁你#include char*fun(char*s,char*t)int i;char*p=s,*q=t;int n=Ozm=O;while(*p)/*计算串s的长度n,其中p为临时指针*/(n+;P+;while(*q)/*计算串t的长度m,其中q为临时指针*/(m+;q+;if(n=m)/*比较m和n的值,设置p指向较大的指针*/P=s;elseP=t;return p;)main()char a20,b20;void NONO();printfflnput 1th string:);gets(a);printf(lnput 2th string:);gets(b);printf(%sn,fun(a,b);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;int i;char a20,b20;fp=fopenCKWkOlWOlOOOlWin.datVr“);wf=fopen(K:k0124010001out.dat,w);for(i=0;i 10;i+)fscanf(fp,%s%s”,a,b);fprintf(wf,%sn,fun(a,b);)fclose(fp);fclose(wf);第7套题一、程序填空题给定程序中己建立一个带有头结点的单向链表,链表中的各结点按数据域递樊有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只探留一1 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源辑序存放在考生文件隽下的BLANKl.C中。不容增行或删行,也不编更改程序的结构!#include#include#define N 8typedef struct list int data;struct list*next;SLIST;void fun(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;/*found*/free(_q_);/*found*/q=p-_next_;)elsep=q;/*found*/q=q-_next_;)SLIST*creatlist(int*a)SLIST*h,*p,*q;int i;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;)p-next=O;return h;)void outlist(SLIST*h)SLIST*p;p=h-next;if(p=NULL)printf(nThe list is NULL!n);else printf(nHead);do printf(-%d/p-data);p=p-next;while(p!=NULL);printf(-Endn);main()SLIST*head;int aN=1,2,2,3,4,4,4,5;head=creatlist(a);printf(nThe list before deleting:n);outlist(head);fun(head);printf(nThe list after deleting:nn);outlist(head);)二、程序改错题构结的序程改更得不。也果,结好确和正行出增旨n o n a它,使数,函误in错maL。的动DI售改Mo饕要序一隹不程进改.定赛意给顺请注的大#include#define N 20void fun(int a,int n)int i,j,t,p;for(j=0;j n-1;j+)/*found*/P=j;for(i=j+l;i n;i+)if(aiap)/*found*7P=I;t=ap;ap=aj;aQ=t;)main()(intaN=9,6,8,3,-l,i,m=5;printf(排序前的数据:);for(i=0;i m;i+)printf(%d,ai);printf(n);fun(a,m);printf(排序后的数据;for(i=0;i m;i+)printf(%d,ai);printf(n);三、程序编写题请编写一个函数fun,它的功能是:求出1到m之i联含能被7或11整除的所有整数放在豆组a中,通过追回这些数的个数。谕如,着传送给1n的值为50,则愈序输出:7 11 14 21 22 28 33 35 42 44 49注意:部分源程序存在文件PROGL C中。请勿改翁主函薮mai痛其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/include#define M 100void fun(int m,int*a,int*n)*n=0;int i;for(i=l;i=m;i+)if(j%7=0|i%ll=O)a*n+=i;main()int aaM,n,k;void NONO();fun(50,aaz&n);for(k=0;k n;k+)if(k+l)%20=0)printf(n);else printf(aak);printf(n);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;int i,n,k,aaM,sum;fp=fopenCKWkOlWOlOOOlWin.datVr);wf=fopen(K:k0124010001out.dat,w);for(i=0;i 10;i+)fscanf(fp,%dz,&j);fun(j,aa,&n);sum=0;for(k=0;k n;k+)sum+=aak;fprintf(wf,%dnu,sum);)fclose(fp);fclose(wf);第8套题一、程序填空题给定程序中,函数fun的功熊是:在差有头垢尽2J为ch的维乩找到后通过函教值返回或菇点在链表为ch的结点,函数返回0值。点 鸳 懿 麟 请 找1耀果。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意:源矍序存放在考生文件房下的BLANK1.C中。不替增存或删行,也不容更改程序的结构!#include#include#define N 8typedef struct list int data;struct list*next;SLIST;SU ST*creatlist(char*);void outlist(SLIST*);int fun(SLIST*h,char ch)SLIST*p;int n=0;p=h-next;/*found*/while(p!=_ 0 或 NULL _)n+;*Iif(p-data=ch)return _ nelse p=p-next;)return 0;)main()SLIST*head;int k;charch;char aN=m,;p,;g7a7w,/,x,;r,;d,;head=creatlist(a);outlist(head);printf(Enter a letter:);scanf(%c,&ch);/*found*/k=fun(_ head,ch);if(k=0)printf(nNot found!n);else printf(nThe sequence number is:%dn,k);)SLIST*creatlist(char*a)SLIST*h,*p,*q;int i;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;)p-next=O;return h;)void outlist(SLIST*h)SLIST*p;p=h-next;if(p=NULL)printf(nThe list is NULL!n);else printf(nHead);do printf(-%c,p-data);p=p-next;while(p!=NULL);printf(-Endn);二、程序改错题给定程序M0DI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括 制 格 w请改正程序中的 输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#include#include fun(char*p)int i,t;char c80;/*found*/for(i=0,t=0;pi;i+)if(!isspace(*(p+i)ct+=pi;/*found*Ict=,O,;strcpy(p,c);)main()char c,s80;int i=0;printf(lnput a string:);c=getchar();while(c!-#)si=c;i+;c=getchar();si=O;fun(s);puts(s);三、程序编写题请编写一个函数f u n,它的功能是:将ss近趣字符串中所有下标为奇数位置上的字母唐换为大写(若该位置上不是字母,则聚得换)。例如,若输入abc4EFg”,则应输出aBc4EFg”。注意:郁务源程序存在文件PR 0G1.C中。请勿改凝主函薮mai际 其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include include void fun(char*ss)int i;for(i=l;i=a&ssi=z,)ssi-=32;main()char tt81;void NONO();printf(nPlease enter an string within 80 characters:n);gets(tt);printf(nnAfter changing,the stringn s”“,tt);fun(tt);printf(nbecomesn srT,tt);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;char tt81;int i;fp=fopen(K:k0124010001in.dat7r);wf=fopenCKAXkOlWAOlOOOlWout.datVw);for(i=0;i 10;i+)fscanf(fp,%sz tt);fun(tt);fprintf(wf,sn”,tt);fclose(fp);fclose(wf);第9套题一、程序填空题给定程序中自 函数fu n 的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参所指的存储单元中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果注意:源程序存放在考生文件隽下的BL ANK1.C中。不容增拧或删行,也不得更改程序的结构!/include#include#definetypedefN 8struct list int data;struct list*nex