资源描述:
《全国计算机等级考试二级C机试试题.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、全国计算机等级考试二级C机试试题2一、填空题下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include/**********found**********/___1___fu
2、n(charch){/**********found**********/if(ch>='0'&&___2___)/**********found**********/return'9'-(ch-___3___);returnch;}main(){charc1,c2;printf("Theresult:");c1='2';c2=fun(c1);printf("c1=%cc2=%c",c1,c2);c1='8';c2=fun(c1);printf("c1=%cc2=%c",c1,c2);c1='a';c2=fu
3、n(c1);printf("c1=%cc2=%c",c1,c2);}二、改错题下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#includevoidfun(char*p,char*b){inti,k=0;while
4、(*p){i=1;while(i<=3&&*p){/**********found**********/b[k]=p;k++;p++;i++;}if(*p){/**********found**********/b[k++]="";}}b[k]=' ';}main(){chara[80],b[80];printf("Enterastring:");gets(a);printf("Theoriginalstring:");puts(a);fun(a,b);printf("Thestringafterinsertspace
5、:");puts(b);printf("");}三、编程题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#include#defineN8struct
6、slist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h){}STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(is=s[i];i++;p->next=q;p=q;}p->next=0;returnh;}outlist(STREC
7、*h){STREC*p;p=h->next;printf("head");do{printf("->%4.1f",p->s);p=p->next;}while(p!=0);printf("");}main(){doubles[N]={85,76,69,85,91,72,64,87},ave;voidNONO();STREC*h;h=creat(s);outlist(h);ave=fun(h);printf("ave=%6.3f",ave);NONO();}voidNONO(){/*本函数用于打开文件,输入数据,调
8、用函数,输出数据,关闭文件。*/FILE*in,*out;inti,j;doubles[N],ave;STREC*h;in=fopen("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){for(j=0;j