2011计算机二级c语言填空题

举报
资源描述
第01套给定程序MODILC中 函 数 fu n 的功能是:计算n!。例如,给 n 输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include double fun(int n)double result=1.0;/*字 字*fou nd*,字*/if n=0改为:if(n=0)return 1.0;while(n 1&n 170)/*/result*=n 改为:result*=n-;return result;)main()int n;printf(Input N:);scanf(u%du,&n);printf(,nn%d!=%lfnnH,n,fun(n);)解题思路:第一处:条件语句书写格式错误,应改为:if(n=0)o第二处:语句后缺少分号。第0 2套给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include void fun(char*s)int i,j;for(i=0,j=0;si!=0;i+)if(si=0,&sij=,9,)/*found*/sj=si;改为:sj+=si;sj=O;改为:sj=,O,;.)main()char item80;printf(MnEnter a string:);gets(item);printf(nnThe string is:,%s,n,item);fun(item);printf(nnThe string of changing is:%sn,item);)解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j来控制新字符串的位置,所以应改为:sj+=si;。第二处:置新字符串的结束符,所以应改为:sj=,(r;.第 03套给定程序M 0DI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0 到 m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#include typedef struct aa int data;struct aa*next;NODE;NODE*Creatlink(int n,int m)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;idata=rand()%m;s-next=p-next;p-next=s;p=p-next;)/*found*/return p;改为:return h;)outlink(NODE*h)NODE*p;p=h-next;printf(HnnTHE LIST:nn HEAD);while(p)printf(-%d,p-data);p=p-next;)printf(n);)main()NODE*head;head=Creatlink(8,22);outlink(head);)解题思路:第一处:指向刚分配的结构指针,所以应改为:p=(NODE*)ma I I oc(s i zeof(NODE);第二处:在动态分配内存的下一行语句是,使用临时结构指针变量h 保 存 p 指针的初始位置,最后返回不能使用P,是因为P 的位置已经发生了变化,所以应改为返回h。第04套给定程序M O D I L C 中函数fun的功能是:在字符串的最前端加入n 个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#include void fun(char s,int n)(char a80,*p;int i;/*found*/S=p;改为:p=s;for(i=0;in;i+)ai=*;do ai=*p;i+;while(*p+)ai=0;改为:while(*p+);strcpy(s,a);)main()int n;char s80;printf(nnEnter a string:”);gets(s);printf(nnThe string V%snnn,s);printf(nEnter n(number of*):);scanf(%d,&n);fun(s,n);printf(nThe string after insert:V%s n,s);)解题思路:第一处:指针P应指向S,所以应改为:p=s;。第二处:死循环,当 do w hile循环执行一次,临时变量p 应该指向字符串的下一位置,所以应改为:while(*p+);第05套给定程序MODI1.C中函数fun的功能是:对 N 名学生的学习成绩,按从高到低的顺序找出前 m(mW10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#include#define N 10typedef struct ss char numllOJ;int s;STU;STU*fun(STU a,int m)STU bN,*t;int i,j,k;/*found*/t=(STU*)calloc(sizeof(STU),m)改为:t=(STU*)calloc(sizeof(STU),m);for(i=0;iN;i+)bij=aij;for(k=0;km;k+)for(i=j=0;ibj.s)j=i;/*found*不/t(k)=b(j);改为:tk=bj;bjJ.s=O;return t;outresult(STU a,FILE*pf)int i;for(i=0;i10)printf(nnGive the number of the students who have better score:”);scanf(n%d,&m);)pOrder=fun(a,m);printf(*THE RESULT*n”);printf(nThe top:n);for(i=0;im;i+)printf(M%s%dnn,pOrderi.num,pOrderi.s);free(pOrder);解题思路:第一处:语句最后缺少分号。第二处:应该使用方括号,而不是圆括号。像此类,使用编译,即可发现。第06套给定程序MODILC中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include char fun(char*s,char*t)改为:char*fun(char*s,char*t)int sl=0,d=0;char*ss,*tt;ss=s;tt=t;while(*ss)S1+;/*fou nd*字 字 字 字/(*ss)+;改为:SS+;while(*tt)tl+;/*found*/(*tt)+;)if(tlsl)return t;else return s;改为:tt+;main()char a80,b80,*p,*q;int i;printf(nEnter a string:);gets(a);printf(MnEnter a string again:);gets(b);printf(MnThe longer is:nn,%sn,fun(a,b);解题思路:第一处:试题要求返回字符串的首地址,所以应改为:char*fun(char*s,char*t)第二处:取字符串指针ss的下一个位置,所以应改为:SS+;。第三处:取字符串指针t t的下一个位置,所以应改为:第0 7套给定程序M O D ILC中 函 数fu n的功能是:求出数组中最大数和次最大数,并把最大数和a0中的数对调、次最大数和al中的数对调。请改正程序中的错误,使它能得出正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#define N 20int fun(int*a,int n)int i,m,t,k;for(i=0;i2;i+)/*found*/m=0;for(k=i+l;kam)k=m;t=ai;aij=atmj;almj=t;改为:m=i;改为:if(akam)m=k;main()int x,bN=11,5,12,0,3,6,9,7,10,8,n=10,i;for(i=0;in;i+)printf(%d u,bi);printf(nnn);fun(b,n);for(i=0;iam)m=k:1)第 08套给定程序MODU.C中函数fun的功能是:求 k!(k 1 3),所求阶乘的值作为函数值返回。例如:若 k=1 0,则应输出:3628800.请改正程序中的错误,使它能得出正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include long fun(int k)(/*字 字*nd*不*/ifk 0改为:if(k0)return(k*fun(k-l);/*und*/else if(k=0)改为:else if(k=0)return IL;)main()int k=10;printf(,%d!=%ldnn,k,fun(k);解题思路:第一处:条件判断缺少圆括号。第二处:判断相等的符号是=。第 09套给定程序MODU.C中函数fun的功能是:将 s 所指字符串中的字母转换为按字母序列的后续字母(但Z 转换为A,z 转换为a),其它字符不变。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#include void fun(char*s)(/*字*found*豕 字 字 字*/while(*s!=)改为:while(*s)if(*s=A&*s=a,&*sv=z)if(*s=Z)*s=A;else if(*s=,z*)*s=a;else*s+=1;(*s)+;改为:s+;main()char s80;printf(Mn Enter a string with length 80.:nn);gets(s);printf(nn The string:nn”);puts(s);fun(s);printf(nn The Cords:nn);puts(s);)解题思路:第一处:使用w hile循环来判断字符串指针s 是否结束,所以应改为:while(*s)o第二处:取字符串指针s 的下一个位置,所以应改为:SH;。第10套给定程序MODI1.C中 fun函数的功能是:根据整型形参m,计算如下公式的值。2 3 m例如,若主函数中输入5,则应输出-0.283333。请改正函数fu n 中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include double fun(int m)double t=1.0;int i;for(i=2;i=m;i+)/*字*found*亭 亭/t=1.0-1/i;/*found*/改为:t-=l./i;应填 return t;)main
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号