二级C语言上机题库--100题.pdf
二级C语言上机试题汇编 t=*n%_ 1 _;/*仿u n d*/*i f(t%2!=_2_)*第01套:x=x+t*i;i=i*1 0;给定程序M O D I 1.C中 函 数f u n给定程序中,函数f u n的功能是:*n =*n/1 0;的功能是:计算n!。将形参n所指变量中,各位上为)例 如,给n输 入5,则输出偶数的数去/*S u n(j*/1 2 0.0 0 0 0 0 0 o除,剩余的数按原来从高位到低*n=_ 3 _;请改正程序中的错误,使程序能位的顺序组成一个新的数,并通)输出正确的结果。过形参指针n传回m a i n()注意:不要 改动m a i n函数,不所指变量。u n si g n e d l o n g n=-l;得增行或删行,也不得更改程序例如,输入一个数:2 7 6 3 8 4 9 6,w h i l e(n 9 9 9 9 9 9 9 9 l l n 0)的结构!新 的 数:为7 3 9。p r i n tf(nPl e a se给定源程序:请在程序的下划线处填入正确i n p u t(0 n 1 0 0 0 0 0 0 0 0):“);#i n c l u d e 的内容并把下划线删除,使程序sc a n f(M%l d,&n);)d o u b l e f u n (i n t n )得出正确的结f u n(&n);果。p r i n tf(n T h e r e su l t i s:%l d n,n);注意:源程序存放在考生文件夹)下的B L A N K 1.C中。解题思路:d o u b l e r e su l t=1.0 ;不得增行或删行,也不得更改程第一处:t是通过取模的方式来/*佑u n d*序的结构!得到*n的个位数字,所以应填:*/给定源程序:1 0 oi f n =0#i n c l u d e 第二处:判断是否是奇数,所以r e tu r n 1.0;v o i d f u n(u n si g n e d l o n g *n)应填:0 ow h i l e(n 1&n 1 7 0 )u n si g n e d l o n g x=0,i;i n t t;第三处:最后通形参n来返回新/*知u n d*i=l;数X,所以应填:X o*w h i l e(*n)/*f o u n d*/*/f u n(n);*r e su l t*=n-)*r e tu r n r e su l t;解题思路:请编写一个 函 数f u n,它的功能第一处:条件语句书写格式错是:将一个数字字符串转换为一m a i n ()误,应改为:i f(n=0)。个整数(不得 i n t n ;第二处:语句后缺少分号。调 用C语言提供的将字符串转p r i n tf C l n p u t N:);换为整数的函数)。例如,若输sc a n f(%d,&n);入 字 符 串1 2 3 4”,则p r i n tf(n n%d!=%l f n nu,n,函数把它转换为整数值-1 2 3 4.函 数 fu n 中给出的语句仅供参/*本函数用于打开文件,输入return x*t;考。数据,调用函数,输出数据,关)注 意:部 分 源 程 序 存 在 文 件闭文件。*/main()/*主函数*/PR0G1.C文件中。FILE*fp,*wf;c har s6;请勿改动主函数m ain和其它函int i;long n;数中的任何内容,仅在函数func har s20;printf(Enter a string:n);的花括号中填long n;gets(s);入你编写的若干语句。fp=fopenCc rWtestWin.datVr);n=fun(s);给定源程序:wf=printf(%ldnM,n);#inc lude fopen(,c:testout.dat/w);NONO();#inc lude for(i=0;i 10;i+)long fun(c har*p)fsc anf(fp,%s s);NONO()(n=fun(s);/*本函数用于打开文件,输入/*以下代码仅供参考*/fprintf(wf,%ldn n);数据,调用函数,输出数据,关inti,len,为串长,t 为正闭文件。*/负 标 识*/fc lose(fp);long x=0;fc lose(wf);len=strlen(p);)FILE*fp,*wf;if(pO=-)解题思路:inti;t=-l;len-;p+;)本题是将一个数字字符串转换c har s20;else t=l;为一个整数。long n;/*以下完成数字字符串转换为参考答案:fp=fopen(c:testin.dat,r);一个 数 字*/#inc lude wf=return x*t;#inc lude fopen(c:testout.datw);1long fun(c har*p)for(i=0;i 10;i+)main。/*主 函 数*/(fsc anf(fp,%sn,s);c har s6;/*以下代码仅供参考*/n=fun(s);long n;int i,len,t;/*len 为串长,t 为正fprintf(wf,%ldn;n);printf(Enter a string:nH);负 标 识*/)gets(s);long x=0;fc lose(fp);n=fun(s);len=strlen(p);fc lose(wf);printf(,%ldn,n);if(pO=-)t=-l;len-;p+:)else t=l;注意:由于NONO()这个函数是NONO();/*以下完成数字字符串转换为改卷人用的,与考生没有什么关)一个 数 字*/系,故下面从第2 套试题开始均NONO()while(*p)x=x*10-48+(*p+);省略NONO()pulc har(_ 3_);c h=fgetc(fp);#inc lude putc harCn);void fun(c har*s)fc lose(fp);int i,j;for(i=0,j=0;si!=0;i+)main()if(si=0&si=,9,)c har a10=Hello!”;int/*Cund*/第02套:b=12345:sj=si;给定程序中,函 数 fu n 的功能是double c=98.76;/*伯unc i*/将形参给定的字符串、整数、浮ftin(a,b,c);s|j=O”;点数写到文本)文件中,再用字符方式从此文本main()文件中逐个读入并显示在终端 c har item80;屏幕上。printf(nEnter a string:请在程序的下划线处填入正确);gets(item);的内容并把下划线删除,使程序解题思路:printf(nnThe string is:得出正确的结本题是考察先把给定的数据写%snn,item);果。入到文本文件中,再从该文件读fun(item);注意:源程序存放在考生文件夹出并显示在屏幕上。printf(nnThe string of c hanging下的BLANK 1.C中。第一处:定义文本文件类型变is:n%sn,item);不得增行或删行,也不得更改程量,所以应填:FILE*。)序的结构!第二处:判断文件是否结束,所解题思路:给定源程序:以应填:fp。第一处:要求是取出原字符串中#inc lude 第三处:显示读出的字符,所以所有数字字符组成一个新的字void fun(c har*s,int a,double f)应填:c h。符串,程序中是使用变量j(*来控制新字符串的位置,所以应/*found*/*改为:s|j+=si;._ 1 fp;给定程序M 0D I1.C中 函数f i r n第二处:置新字符串的结束符,c har c h;的功能是:依次取出字符串中所所以应改为:sUkO;.fp=fopen(filel.txt,nw);有数字字符,形*fprintf(fp,%s%d%fn,s,a,f);成新的字符串,并取代原字符*fc lose(fp);串。请编写函数fu n,函数的功能是:fp=fopen(filel.txt,V);请改正函数fun中指定部位的错将 M 行 N 列的二维数组中的字printf(nThe result:nnu);误,使它能得出正确的结果。符数据,按列的c h=fgetc(fp);注意:不要改动main函数,不得顺序依次放到一个字符串中。/*found*/增行或删行,也不得更改程序的例如,二维数组中的数据为:while(!feof(2)结构!W W W W/*found*/给定源程序:S S S SH H H Hprintf(The A string:n,);puts(a);出到文件中。函数fun的功能是则 字 符 串 中 的 内 容 应 是:printf(nn);重写形参filename所WSHWSHWSHoNONO();指文件中最后一个学生的数据,注 意:部 分 源 程 序 在 文 件即用新的学生数据覆盖该学生PROG1.C+o原来的数据,其它学请勿改动主函数m ain和其它函解题思路:生的数据不变。数中的任何内容,仅 在 函 数 fun本题是把二维数组中的字符数请在程序的下划线处填入正确的花括号中填入据按列存放到一个字符串中。的内容并把下划线删除,使程序你编写的若干语句。1.计算存放到一维数组中的位得出正确的结给定源程序:置。果。#inc lude 2.取出二维数组中的字符存放#define M 3到一维数组(已计算出的位置)#define N 4中。注意:源程序存放在考生文件夹参考答案:下的BLANK1.C中。void fun(c har sN,c har*b)不得增行或删行,也不得更改程void fun(c har sN,c har*b)(序的结构!(给定源程序:int i,j,n=O;#inc lude for(i=0;i N;i+)/*请填写相int i,j,n=O;#define N 5应语句完成其功能*/for(i=0;i N;i+)/*请填写相typedef struc t student(应语句完成其功能*/long sno;1(c har name10:bn=W;for(j=O;j M ;j+)float sc ore3;bn=sji:STU;main()n=i*M+j+1;void fiin(c har*filename,STU n)c har)FILE*fp;a100,wMN=W/WVW;)/*3und*/W S,S,S,S,bn=W;fp=fopen(_ 1_,rb+);;)/*nd*/int i,j;fseek(2,-lL*sizeof(STU),printf(The matrix:n);SEEK_END);for(i=0;iM;i+)/*Su nd*/for(j=0;jnext=NULL;STU n=lOOOb/haoSi;55,70,数据,再把结构中的数据写入文for(i=l;idata=rand()%m;fwrite(t,sizeof(STU),N,fp);第二处:读取文件f p的最后一s-next=p-next;fc lose(fp);条记录,所以应填:fp。p-next=s;p=p-next;fp=fopen(student.dat,rbn);第三处:再把读出的记录,写入)fread(ss,sizeof(STU),N,fp);文 件f p指定的位置上,所以应/*砧und*/fc lose(fp);填:fp。return p;printf(nThe original data:nn);*)for Q=O;jnext;for(i=0;i%d,p-data);fun(student.dat n);位的错误,使它能得出正确的结p=p-next;printf(nThe data after果。)modifing:nnH);注意:不要改动main函数,不得printfCV);fp=fopen(student.dat,rbn);增行或删行,也不得更改程序的)fread(ss,sizeof(STU),N,fp);结构!main()fc lose(fp);给定源程序:NODE*head;for(j=0;jN;j+)#inc lude head=Creatlink(8,22);printf(nNo:%kl Name:%-8s#inc lude Sc ores:H,ssj.sno,ss|j.nanie);typedef struc t aafor(i=0;i3;i+)printf(%6.2fn,int data;outlink(head);ssj.sc ore i);struc t aa*next;)printf(n);NODE;解题思路:NODE*Creatlink(int n,int m)第一处:指向刚分配的结构指针,所 以 应 改 为:p=(NODEis:%dnn*,num);的内容并把下划线删除,使程序*)malloc(sizeof(NODE);NONO();得出正确的结第二处:在动态分配内存的下一)果。行语句是,使用临时结构指针变注意:源程序存放在考生文件夹量 h 保存p 指针的初始位置,解题思路:下的BLANK 1.C中。最后返回不能使用p.是因为p本题是统计字符串中的单词数。不得增行或删行,也不得更改程的位置已经发生了变化,所以应1.利用while循环语句和指针变序的结构!改为返回ho量,当字符为空格时,则单词数给定源程序:*k 加 1。#inc lude*2.循环结束返回k。#define N 5请编写函数fu n,函数的功能是:参考答案:typedef struc t student 统计一行字符串中单词的个数,long sno;作为函数值返int fun(c har*s)c har name10;回。一行字符串在主函数中输入,(float sc ore3;规定所有单词由小写字母组成,int k=1 ;STU;单词之间由若干while(*s)void fun(c har*filename)个空格隔开,一行的开始没有空if(*s=)k+;FILE*fp;int i,j;格。s+;STU sN,t;注 意:部 分 源 程 序 在 文 件)/*3und*/PROGLC 中。return k;fp=fopen(filename,_ 1_);请勿改动主函数m ain和其它函)fread(s,sizeof(STU),N,fp);数中的任何内容,仅在函数funfc lose(fp);的花括号中填入for(i=0;iN-l;i+)你编写的若干语句。fbr(j=i+l;jN;j+)给定源程序:第 04套:/*Sund*/#inc lude 程序通过定义学生结构体变量,if(si.sno-2 s|j.sno)#inc lude 存储了学生的学号、姓名和3 门 t=si;si=sj;sj=t;#define N 80课的成绩。所fp=fopen(filename,wb);int fun(c har*s)有学生数据均以二进制方式输/*nd*/(出到文件中。函数fun的功能是_ 3 _(s,sizeof(STU),N,fp);/*)从形参filename所指二进制输出*/main()的文件中读入学生数据,并按照fc lose(fp);c har IineN;int num=0;学号从小到大排序后,再用二进)printf(HEnter a string:n);制方式把排序后的main()gets(line);学生数据输出到filename所指的 STUnum=fun(line);文件中,覆盖原来的文件内容.tN=10005,ZhangSan,95,printf(The number of word请在程序的下划线处填入正确80,88),10003,LiSi,85,70,78),ai=*p;10002,CaoKai 75,60,88,i+;10004,FangFang”,90,82,87),第一处:建立文件的类型,考虑)10001,MaChao;91,92,77,到是把结构中的数据(结构中的/*Sund*/ssN;数据包含不打印的字符)while(*p+)int i,j;FILE*fp;从文件中读出,所以应填:“rb”。ai=0;fp=fopen(student.dat,wbn);第二处:判断当前学号是否大于strc py(s,a);fwrite(t,sizeof(STU),5,fp);刚读出的学号进行相比,如果大)fc lose(fp);于,则进行交换,所以应main()printf(nnThe original填:。int n;c har s80;data:nn);第三处:把已排序的结构数据,printf(nEnter a string:);for(j=0;jN;j+)重 新 写 入 文 件,所 以 应 填:gets(s);printf(nNo:%ld Name:%-8sfwrite。printfCAnThe string V%sns);Sc ores:,tj.sno,tj.name);*printf(nEnter n(number of*):for(i=0;i3;i+)printf(H%6.2fM,*);sc anf(n%d,&n);t|j.sc orei);给定程序MODI1.C中 函数ftmftin(s,n);printf(n);的功能是:在字符串的最前端加printf(nThe string after insert:)入 n 个*号,形成V%s n,s);funCstudent.dat1);新串,并且覆盖原串。)printf(nnThe data after注意:字符串的长度最长允许为解题思路:sorting:nn);79o第一处:指 针 p 应指向s,所以fp=fopen(student.dat,rbn);请改正函数fun中指定部位的错应改为:P=S;ofread(ss,sizeof(STU),5,fp);误,使它能得出正确的结果。第二处:死循环,当 do while循fc lose(fp);注意:不要改动main函数,不得环执行一次,临时变量p 应该指for(j=0;jN;j+)增行或删行,也不得更改程序的向字符串的下一位置,所以 printf(nNo:%ld Name:%-8s结构!应改为:while(*p+);oSc ores:n,ssj.sno,ss|j.name);给定源程序:*for(i=0;i3;i+)printf(n%6.2f”,#inc lude*ssj.sc orei);#inc lude 请编写函数fun,函数的功能是:printf(n);void fun(c har s,int n)统计各年龄段的人数。N 个年龄)(通过调用随机c har a80,*p;函数获得,并放在主函数的age解题思路:inti;数组中;要求函数把0 至 9 岁年本题是考察把结构中的数据写/*於und*/龄段的人数放在d0入文件。s=p;中,把 10至 19岁年龄段的人数放for(i=0;in;i+)ai=*;在dl中,把20至 29岁年龄段的do人数放在仇2中,其余依此类推,把 1 0 0 岁(含NONO(d);数 atoi和 atof将100)以上年龄的人数都放在d10)字符串转换成相应的整数、浮点中。结果在主函数数,然后将其显示在屏幕上。解题思路:请在程序的下划线处填入正确本题是统计各年龄段的人数。的内容并把下划线删除,使程序中输出。1.初始化各年龄段人数为0。得出正确的结注 意:部 分 源 程 序 在 文 件2.使用for循环以及求出各年龄果。PROG1.C 中。的十位数字作为存放人数的地注意:源程序存放在考生文件夹请勿改动主函数m ain和其它函址,如果大于值大于1 0,则下的BLANK 1.C中。数中的任何内容,仅 在 函 数 fun存入d10中(大 于 110岁的人)。不得增行或删行,也不得更改程的花括号中填入参考答案:序的结构!你编写的若干语句。void fun(int*a,int*b)给定源程序:给定源程序:#inc lude#inc lude int i,j;#inc lude#define N 50for(i=0;i M;i+)bi=0;void fun(c har*s,ini a,double f)#define M 11(void fun(int*a,int*b)/*Sund*/(for(i=0;i 10)bM-1+;elseint al;double fl;static t=29,c=217,m=1024,r=0;bj+;fp=fopen(Hfilel.txt w);r=(r*t+c)%m;)return(double)r/m);)double rnd()fprintf(fp,n%s%d%fn,s,a,f);main()static t=29,c=217,m=1024,r=0;/*Sund*/int ageN,i,dM|;r=(r*t+c)%m;_ 2 _;for(i=0;return(double)r/rn);fp=fopen(,filel.txf r);iN;i+)agei=(int)(l 15*rnd();)/*Su nd*/printf(The original data:n);for(i=0;iN;i+)fsc anf(3,%s%s%sM,str,strl,str2);printf(i+l)%10=0?%4dn:%fc lose(fp);4d,agei);第05套:al=atoi(strl);printf(nn);给定程序中,函 数 fu n 的功能是fl=atof(str2);fun(age,d);将参数给定的字符串、整数、浮printf(nThefor(i=0;i10;i+)printf(H%4d%点数写到文本result:nn%s%d%fn str,al,4d:%4dn,i*10,i*10+9,di);文件中,再用字符串方式从此文fl);printf(Over 100:%4dn,d 10);本文件中逐个读入,并调用库函)m a in()t y p e d e f s t r u c t s sS T U *p Or d e r;c ha r a t l OK H e l l o!1;in t c ha r n u m 10;in t i,m;b=12345;in t s;p r in l f(*T he Or igin a l d a t ad o u b l e c=9 8.76;S T U;*”);f u n(a,b,c);S T U *f u n(S T U a ,in t m)o u t r e s u l t(a,s t d o u t);)S T U b l N,*t;p r in t f(n G iv e t he n u m b e r o f t he解题思路:in t i,j,k;s t u d e n t s w h o ha v e b e t t e r s c o r e:本题是考察先把给定的数据写/*C u n d */);入到文本文件中,再从该文件读t=(S T U *)c a l l o c(s iz e o f(S T U),m)s c a n f(%du,&m);出并转换成相应的整数、浮f o r(i=0;i 1 0)点数显示在屏幕上。f o r(k=0;k m;k+)p i in t f(n G iv e t he n u m b e r o f t he第一处:定义文本文件类型变 f o r(i=j=0;ib|j .s)j=i;);第二处:关闭刚写入的文件,所/*於u n d */s c a n f(%dH,&m);以应填:f c l o s e(f p)o)第三处:从文件中读出数据,所p Or d e r=f u n(a,m);以应填:f p。p r in t f C*THE R E S U L T*w”);*t(k)=b(j);p r in t f(T he t o p :n);给定程序MO DI1.C中函数f u nb j .s=O;f b r(i=O;i m;i+)的功能是:对N名学生的学习成)p r in t f(%s%d n,p Or d e r i.n u m ,绩,按从高到低的r e t u r n t;p Or d e r i.s);顺序找出前m(m W 1 0)名学生来,)f r e e(p Or d e r);并将这些学生数据存放在一个o u t r e s u l t(S T U a ,F I L E *p f)动态分配的连续存 in t i;解题思路:储区中,此存储区的首地址作为f o r(i=0;i N;i+)第一处:语句最后缺少分号。函数值返回。f p r in t f(p f,nN o =%s M a r k第二处:应该使用方括号,而不清改正函数f u n中指定部位的错=%d n a i.n u m,a i.s);是圆括号。误,使它能得出正确的结果。f p r in t f(p f,nn n);像此类,使用编译,即可发现。注意:不要改动m a in函数,不得)*增行或删行,也不得更改程序的m a in()*结构!S T U请编写函数f u n,函数的功能是:给定源程序:a N=,A 0 r,81,A02,89),(删去一维数组中所有相同的数,#in c l u d e A03,66,A 0 4,1,87,“A 0 5”,77使之只剩一#in c l u d e ,个。数组中的数已按由小到大的#in c l u d e A06,9 0,A07,79),A08,6顺序排列,函数返回删除后数组#d e f in e N 10l),A09,80,A10n,71;中数据的个数。例如,一维数组中的数据是:2 21.取出数组中的第1个数存放不得增行或删行,也不得更改程2 3 4 4 56 6 6 6 7 7 8 99 10 10在临时变量k中,再利用f o r循序的结构!10o环来依次判断所有的数。给定源程序:删除后,数组U 的内容应该是:22.如果取出的数和k相比,如果#in c l u d e 3 4 5 6 7 8 9 10。不相同,则仍存放在原数组中,d o u b l e f l (d o u b l e x)注 意:部 分 源 程 序 在 文 件其中存放的位置由j来控制,re t u rn x*x;P R O G 1.C 中。接着把这个数重新存入ko如果d o u b l e f 2(d o u b l e x,d o u b l e y)请勿改动主函数mai n和其它函相同,则取下一数。re t u rn x*y;数中的任何内容,仅 在 函 数f u n参考答案:/*Su n d*/的花括号中填入_1_ f u n(in t i,d o u b l e x,d o u b l e你编写的若干语句。in t f u n(in t a,in t n)y)给定源程序:(if(i=D#in c l u d e in t i,j=1,k =a 0;/*伯u n d */#d e f in e N 80f b r(i=1;i n ;i+)re t u rn _2 _(x);in t f u n(in t a,in t n)if(k !=a i)e l s ea j+=a i;/*Su n d*/k =a i;re t u rn _ 3 _(x,y);()1a U =O;m a in()m a in()re t u rn j;(d o u b l e x l=5,x 2=3,r;in t)r=f u n(l,x l,x 2);a N=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10),i,n=20;p rin t f(T h e o rig in a l d a t a :n );r+=f u n(2,x l,x 2);f o r(i=0;i n;第06套:p rin t f(n x l=%f,x 2=%f,i+)p rin t f(,%3d ,a i);给定程序中,函数f u n的功能是x 1*x 1+x 1*x 2=%f n n x 1,x 2,r);n=f u n(a,n);根据形参i的值返回某个函数的)p rin t f(n n T h e d a t a a f t e r值。当调用正解题思路:d e l e t e d :n );确时,程序输出:本题是根据给定的公式来计算f o r(i=0;i n;i+)p rin t f(H%3 dM,a i);x 1=5.000000,x 2=3.000000.函数的值。p rin t f(n n );x l*x l+x l*x 2=40.000000第 一 处:程序中使用双精度N O N O();清在程序的下划线处填入正确d o u b l e类型进行计算,所以函数1的内容并把下划线删除,使程序的返回值类型也为d o u b l e,所得出正确的结以应填:d o u b l e o解题思路:果。第二处:当i等 于1时,则返回本题是删除已排序过数组中的注意:源程序存放在考生文件夹fi函数的值,所以应填:f l o相同数。下的BLANK 1.C中。第三处:如 果i不等于1,则返回 f2 函数的值,所以应填:f2oprintfCXnThe longer#define N 80*is:nn,%sn,fun(a,b);void fun 1 (c har*w)/*本函数的*)功能是将字符串中字符循环左给定程序M 0D I1.C中函数fun解题思路:移一个位置*/的功能是:比较两个字符串,将第一处:试题要求返回字符串的(长的那个字符串首 地 址,所 以 应 改 为:c harint i;c har t;的首地址作为函数值返回。*fun(c har*s,c har*t)t=w0;请改正函数fun中指定部位的错第二处:取字符串指针ss的下一fbr(i=O;istrlen(w)-1 ;i+)误,使它能得出正确的结果。个位置,所以应改为:SS+;。wi=wi+l;注意:不要改动main函数,不得第三处:取字符串指针u 的下一wstrlen(w)-l=t;增行或删行,也不得更改程序的个位置,所以应改为:H+;。)结构!*void fun(c har*w,int m)/*可调给定源程序:*用 fu n l函数左移字符*/#inc lude 请编写函数fun,函数的功能是:(/*found*/移动字符串中的内容,移动的规)c har fun(c har*s,c har*t)则如下:把第main()int sl=O,tl=O:c har*ss,*tt;1 到第m 个字符,平移到字符串 c har aN=nABCDEFGHIJK;ss=s;tt=t;的最后,把 第 m+1到最后的字int m;while(*ss)符移到字符串的前部。printf(The original sl+;例如,字符串中原有的内容为:string:n);puts(a);/*found*/ABCDEFGHIJK,m 的值为 3,则printf(nnEnter m:(*ss)+;移动后,字符串);sc anf(%d,&m);)fun(a,m);while(*tt)printf(nThe string after tl+;moving:n);puts(a);/*found*/printf(nn);(*tt)+;中的内容应该是:NONO();)DEFGHIJKABC,)if(tlsl)return t;注 意:部 分 源 程 序 在 文 件else return s;PROG1.C 中。解题思路:)请勿改动主函数m ain和其它函本题是考察字符串的操作。main()数中的任何内容,仅 在 函 数 fun1.由于函数fu n l是将字符串中 c har a80,b80,*p,*q;int i;的花括号中填入字符循环左移一个位置,并通过printf(nEnter a string:);你编写的若干语句。实参w 返回循环左移一个位gets(a);给定源程序:置的字符串。printf(nEnter a string again:#inc lude 2.利用循环for语句来操作多少gets(b);#inc lude 个字符(m)需要循环左移。参考答案:v o i d f u n 1 (c h a r *w)/*本函数的功能是将字符串中字符循环左移 一 个 位 置*/(i n t i;c h a r t;t=w 0;f o r(i=0;i s t r i e n(w)-l ;i+)w i =w i+l ;w s t r l e n(w)-l =t;1v o i d f u n(c h a r *w,i n t m)/*可调用f u n l函 数 左 移 字 符*/(i n t i;f o r(i =0;i m;i+)f u n 1 (w);1 第07套:程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数f u n的功能是输出这位学生的信息。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下 的B L A NK 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e t y p e d e f s t r u c t i n t n u m;c h a r n a m e 9 :c h a r s e x;s t r u c t i n t y e a r,m o n t h,d a y ;b i r t h d a y;f l o a t s c o r e 3;S T U;v o i d s h o w(S T U _ _ _1_ _ _ _)i n t i;p r i n t f(M n%d%s%c%d-%d-%d t t.n u m,t t.n a m e,t t.s e x,t t.b i r t h d a y.y e a r,t t.b i r t h d a y.m o n t h,t t.b i r t h d a y.d a y);f o r(i=0;i 3;i+)/*仿 u n d*/p r i n t f(%5.1f;2);p r i n t f(n );)m a i n()S T Us t d=l,Z h a n g h u a,M,J9 61,10,87 6.5,7 8.0,8 2.0 ;p r i n t f CV n A s t u d e n t d a t a:nn);/*於u n d */s h o w(_ 3一);)解题思路:本题是利用结构体变量存储了一名学生的信息。第一处:t t变量在函数体f u n已经使用,所以应填:第二处:利用循环分别输出学生的 成 绩 数 据,所 以 应 填:t t.s c o r e i o第三处:函数的调用,所以应填:s t d o*给 定 程 序M0 D I 1.C中 函 数f u n的功能是:求出数组中最大数和次最大数,并把最大数和a 0中的数对调、次最大数和a l 中的数对调。请改正程序中的错误,使它能得出正确的结果。注意:不 要 改 动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e#d e f i n e N 20i n t f u n (i n t *a,i n t n )i n t i,m,t,k ;f o r(i=0;i 2;i+)/*f o u n d*/m=0;f o r(k=i+1;k a m )k=m;t=a i ;a i =a m ;a i n =t;)m a i n()i n t x,b N =(11,5,12,0,3,6,9,7,10,8),n=10,i;f o r (i=0;i n;i+)p r i n t f(H%d ,bi);main()请在程序的下划线