2011年二级C语言【上机】真题题库100道

举报
资源描述
说明:本题库是针对2008年 4 月份考试的上机考试题库,本题库共有100套题目(每套题目包含3 道题:一道程序填空题、一道程序修改题、一道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到时计算机会给你抽取哪一套题,所以大家只有把全部题库都理解才能万无一失)第 01套:给定程序中,函数fun的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。例如,输入一个数:27638496,新的数:为 739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i nclude voi d fun(unsi gned long*n)unsi gned long x=0,i;i nt t;i=l;whi le(*n)/*found*/t=*n%10;/*found*/i f(t%2!=0)x=x+t*i;i=i*10;*n=*n/10;)/*found*/*n=x;)mai n()unsi gned long n=-l;whi le(n99999999lln0)pri ntf(Please i nput(0n 100000000):);scanf(ld”,&n);fun(&n);pri ntf(nThe result i s:%ldn,n);)解题思路:第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0。第三处:最后通形参n 来返回新数x,所以应填:X。给定程序MODI 1.C中 函 数 fu n 的功能是:计算n!。例如,给 n 输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动mai n函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i nclude double fun(i nt n)double result=1.0;/*f)und*示*/i f(n=0)return 1.0;whi le(n 1&n 170)/*fou nd*求 */result*=n-;return result;mai n()i nt n;pri ntfCInputN:1 1);scanf(d”,&n);pri ntf(unn%d!=%lfnnn,n,fun(n);解题思路:第一-处:条件语句书写格式错误,应改为:i f(n=0)。第二处:语句后缺少分号。请编写一个函数fu n,它的功能是:将个数字字符串转换为一个整数(不得调用C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串-1234”,则函数把它转换为整数值-1234。函数fun中给出的语句仅供参考。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数mai n和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#i nclude#i nclude long fun(char*p)i nt i,len,t;/*len为串长,t 为正负标识*/long x=0;len=strlen(p);i f(pO=-)t=-l;len-;p+;else t=1;whi le(*p)x=x*10-48+(*p+);return x*t;mai n。/*主 函 数*/char s6;long n;pri ntf(Enter a stri ng:n);gets(s);n=fun(s);pri ntf(%ldnu,n);NONO();)NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;i nti ;char s20;long n;fp=fopen(”c:testi n.dat”T”);wf=fopen(,c:testout.dat,wu);for(i =0;i 10;i+)fscanf(fp,n%sn,s);n=fun(s);fpri ntf(wf,n%ldn,n);)fclose(fp);fclose(wf);)第 02套:给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i nclude voi d fi i n(char*s,i nt a,double f)(/*/FILE*fp;char ch;fp=fopen(fi le 1.txt1,w1);fpri ntf(fp,%s%d%fn s,a,f);fclose(fp);fp=fopenCfi lel.txt,r);pri ntf(nThe result:nn);ch=fgetc(fp);/*found*/whi le(!feof(fp)/字 *年 found*/putchar(ch);ch=fgetc(fp);putchar(n);fclose(fp);)mai n()char a10=Hello!;i nt b=12345;double c=98.76;fun(a,b,c);解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处第二处第三处定义文本文件类型变量,所以应填:FILE*。判断文件是否结束,所以应填:fp。显示读出的字符,所以应填:ch。给定程序MODI 1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动mai n函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i nclude voi d fun(char*s)i nti j;for(i=0J=0;si!=Of;i+)i f(si=10,&si=,9)/*Qund*/sj+=si;/*foun d*/sj=O;)mai n()char i tem80;pri ntf(unEnter a stri ng:n);gets(i tem);pri ntf(unnThe stri ng i s:%s”rT,i tem);fun(i tem);pri ntf(unnThe stri ng of changi ng i s:,%s,n,i tem);解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j来控制新字符串的位置,所以应改为:sg+=si;第二处:置新字符串的结束符,所以应改为:s|j=M);.请编写函数fu n,函数的功能是:将 M 行 N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:W W W WSSS SH H H H则字符串中的内容应是:WSHWSHWSHo注意:部分源程序在文件PROG1.C 中。请勿改动主函数mai n和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#i nclude#defi ne M 3#defi ne N 4voi d fun(char sN,char*b)(i nt i,j,n=O;for(i=0;i N;i+)/*请填写相应语句完成其功能*/(forG=0;jM;j+)bn=s|ji;n=i *M+j+1;bn=W;)mai n()char a100,wMN=,WWVW7W44,SVS7S,S,H7H,;H/H,;i nti,j;pri ntfCThe matri x:nn);for(i=0;i M;i+)for0=OyN;j+)pri ntf(n%3cu,wi j);pri ntf(nnH);)fun(w,a);pri ntf(The A stri ng:nH);puts(a);pri ntf(unn);NONO();)第 03套:程序通过定义学生结构体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参fi lename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i nclude#defi ne N 5typedef struct student long sno;char name10;float score 3;STU;voi d fun(char*fi lename,STU n)FILE*fp;/*萃*found*不*/fp=fopen(fi lename,rb+H);/*n)und*示*/fseek(fp,-lL*si zeof(STU),SEEK_END);/*Qund*/fwri te(&n,si zeof(STU),1,fp);fclose(fp);)mai n()STU tN=10001;MaChaon,91,92,77,10002,“CaoKai”,75,60,88,10003,Li Sin,85,70,78,10004,FangFang,90,82,87,10005,ZhangSan;95,80,88;STU n=10006,nZhaoSiM,55,70,68,ssN;i nti,j;FILE*fp;fp=fopenCtudent.dat1,nwb);fwri te(t,si zeof(STU),N,fp);fclose(fp);fp=fopen(,student.dat,rb);fread(ss,si zeof(STU),N,fp);fclose(fp);pri ntf(nnThe ori gi nal data:nnH);for(j=0;jN;j+)pri ntf(,nNo:%ld Name:%-8s Scores:,ssj.sno,ssj.name);for(i=0;i 3;i+)pri ntf(H%6.2f 0,ssj.scorei);pri ntf(nnn);fun(nstudent.datu,n);pri ntf(unThe data after modi fi ng:nnH);fp=fopen(ustudent.datH,nrbM);fread(ss,si zeof(STU),N,fp);fclose(fp);for(j=0;jN;j+)pri ntf(nnNo:%ld Name:%-8s Scores:n,ssj.sno,ssfj j.name);for(i=0;i 3;i+)pri ntf(n%6.2f,ssj.scorei);pri ntf(nnn);)解题思路:本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。第一处:从指定的文件中读出数据,所以应填:fi lenamec第二处:读取文件fp 的最后一条记录,所以应填:fp。第三处:再把读出的记录,写入文件fp指定的位置上,所以应填:fpo给定程序MODI 1.C中的函数Creatli nk的功能是创建带头结点的单向链表,并为各结点数据域赋0 到 m-1的值。请改正函数Creatli nk中指定部位的错误,使它能得出正确的结果。注意:不要改动mai n函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i nclude#i nclude typedef struct aa i nt data;struct aa*next;NODE;NODE*Creatli nk(i nt n,i nt m)NODE*h=NULL,*p,*s;i
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

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


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