国家计算机二级C语言上机题库(一).docx
《国家计算机二级C语言上机题库(一).docx》由会员分享,可在线阅读,更多相关《国家计算机二级C语言上机题库(一).docx(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、t=*n%_1_;result*=n-retumx*t;/* nd */relumresult;)if(t%2!=_2_)main。/*主函数*/x=x+t*i;i=i*10;main()(chars6J;*n=*n/10;(intn;longn;)printfCInputN:);printfCEnterastringAn);/*R)und*/scanf(d”,&n);gets(s);*n=_3_;printf(nn%d!=%lfnn,n,fun(n);n=fun(s);)printf(kin”,n);main()解题思路:unsignedlongn=-1;第一处:条件语句书写格式错误,应改为
2、:NONOO;while(n99999999lln0)if(n=0)o)(printf(,Pleaseinput(Onl(X)(X)(X)(X):,);sca第二处:语句后缺少分号。NONOOnf(M%ldMt&n);/*本函数用于打开文件,输入数据,调用fun(&n);函数,输出数据,关闭文件。*/printf(MnTheresultis:%ldn,n);HLE*fp,*wf;)*inti;解题思路:*chars|20;第一处:t是通过取模的方式来得到*n的个请编写个函数fun,它的功能是:将一个longn;二级C语言上机试题汇编第01套:给定程序中,函数fun的功能是:将形参n 所指变量中
3、,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组 成一个新的数,并通过形参指针n传回 所指变量。例如,输入一个数;27638496,新的数: 为 739。请在程序的下划线处填入正确的内容并把 下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK 1.C 中。不得增行或删行,也不得更改程序的结构! 给定源程序:#includevoidfun(unsignedlong*n) unsigncdlongx=Oj;intt;i=l;while(*n)位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0。第三处:最后通形参n来返回新数x,所以 应填:Xo给定程序M
4、ODI1.C中函数fun的功能是:计算n!o例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确 的结果。注意:不要改动main函数,不得增行或删 行,也不得更改程序的结构!给定源程序:#includedoublefun(inln)doubleresult=1.0;ifn=Oreturn 1.0;while(n I&n 170) 数字字符串转换为一个整数(不得 调用C语言提供的将字符串转换为整数的 函数)。例如,若输入字符串-1234”,则函数把它转换为整数值-1234。函数fun中 给出的语句仅供参考.注意:部分源程序存在文件PROG1.C文件 中。请勿改动主函
5、数main和其它函数中的任何 内容,仅在函数fun的花括号中填 入你编写的若干语句。给定源程序:#include#include longfun(char*p) (产以下代码仅供参考*/为串长,t为正负标识*/longx=0;len=strlen(p);if(pO=-) t=-l;len-;p+;elset= 1;/*以下完成数字字符串转换为一个数字*/fp=fopen(c:testin.dat,/r);fprintf(fp/%s%d%An,s,a,f);wf=fopen(,c:testout.dat,w);FILE*fp,*wf;fclose(fp);for(i=0;i10;i+)(inti
6、;fp=fopen(,filel.txt;rH);fscanf(fp,H%s,s);chars 20;printfCAnlheresult :nnM);n=fun(s);longn;ch=fgetc(fp);fp=fbpen(Hc:teshin .datM,rM);/*foun(j* */wf=fopcn(,c:testout.dat,wH);while(!feof(_2_)fclose(fp);for(i=0;i10;i+)/*foun(j* */fclose(wf);fscanf(fp,%sH,s);putchar(_3_);ch=fgetc(fp);)n=fun(s);putcharCX
7、n);解题思路:fprintf(wf,%ldn,n);fclose(fp);本题是将一个数字字符串转换为一个整)数。fclose(fp);main()参考答案:fclose(wf);chara|10=Hello!,;intb=12345;#include)doublec=98.76;#includefun(a,b,c);longfun(char*p)注意:由于NONO0这个函数是改卷人用(的,与考生没有什么关系,故下面从第2芦以下代码仅供参考*/inti,len,ty*len为串长,t为正负标识*/套试题开始均省略NONO0longx=();Ien=strlen(p);if(p01=-)els
8、et= 1;/*以下完成数字字符串转换为一个数字*/ while(*p)x=x* l(L48+(*p+);retumx*t;)main(y*主函数*/chars6;longn;printf(MEnterastring:n);gets(s);n=fun(s);printf(,%ldn,n);NONO();)NONO()/*本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。*/第02套:给定程序中,函数fun的功能是将形参给定 的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐 个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把 下划线删除,使程序得出正确的
9、结果。注意:源程序存放在考生文件夹下的BLANK 1.C 中。不得增行或删行,也不得更改程序的结构! 给定源程序:#includevoidfun(char*s,inta.doublef)(charch;fp=fopen(filel.txt,w);解题思路:本题是考察先把给定的数据写入到文本文 件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量,所以应 填:FILE*。第二处:判断文件是否结束,所以应填:fp。 第三处:显示读出的字符,所以应填:ch。给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符,形 成新的字符串,并取代原字符串.请改正函数fun中指定
10、部位的错误,使它能 得出正确的结果。注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构!给定源程序:#includevoidfun(char*s)intij;for(i=0j=0;si!=0;i-H-)if(si=,0&si=9)voidfun(charsN,char*b)/* found * * */()sU=si;inti,j,n=O;bn=AO;/* fou nd*/for(i=0;iN;i+)/*请填写相应语句完成其)sU=M0;功能*/11main()charitem80;bn=V);第03套:printf(nEnterastring:);gets(item);程序通
11、过定义学生结构体变量,存储了学printf(,nnThestringis:%sn,item);main()生的学号、姓名和3门课的成绩。所fun(item);chara100LwMN=,W;,W1,W,;W4,S,有学生数据均以二进制方式输出到文件printf(,nnThestringofchangingis:V,%sVni中。函数fun的功能是重写形参filenametern);所)printfCThematrixAn*);指文件中最后一个学生的数据,即用新的解题思路:fbr(i=0;iM;i+)学生数据覆盖该学生原来的数据,其它学第一处:要求是取出原字符串中所有数字字for(j=0;jN
12、;j+)printf(M%3cM,wij);生的数据不变。符组成一个新的字符串,程序中是使用变printf(MnM);请在程序的下划线处填入正确的内容并把量j下划线删除,使程序得出正确的结来控制新字符串的位置,所以应改为:fiin(w,a);果。s|j+=si;printf(ThcAstring:n);puts(a);第二处:置新字符串的结束符,所以应改为:printf(nnH);NONOO;注意:源程序存放在考生文件夹下的*)BLANK 1.C 中。*不得增行或删行,也不得更改程序的结构!请编写函数fun,函数的功能是:将M行N列解题思路:给定源程序:的二维数组中的字符数据,按列的本题是把二
13、维数组中的字符数据按列存放#include顺序依次放到一个字符串中。到一个字符串中。#(JefineN5例如,二维数组中的数据为:1.计算存放到维数组中的位置。ty pedefstructstudent WWWW2.取出二维数组中的字符存放到一维数组longsno;SSSS(已计算出的位置)中。chamame| 10;HHHH参考答案:floatscore3;则字符串中的内容应是:WSHWSHWSH。voidfun(charsN,char*b)(STU;注意:部分源程序在文件PROG 1.C中。(voidfun(char*filename,STUn)请勿改动主函数main和其它函数中的任何FI
14、LE*fp;内容,仅在函数fun的花括号中填入/*found*/你编写的若干语句。inli,j,n=();fp=fopen(_l_;rb+H);给定源程序:for(i=0;iN;i+)/*请填写相应语句完成其/*f()u nd* */#include功能*/fseek(_2_rl L*sizeof(STU),SEEK_END);#defineM3(/*f()und* */#defineN4for(j=0;j _3_);bn=sji;fclose(fp);n=i*M+j+l;main()STUtN= (10001:MaChao,9K92J7h 1OOOZ/CaoKai,75,60,88),100
15、03;LiSi,85,70,78M 10004,FangFang ,90,82,87,IOOO5,ZhangSan,95,8O,88;STUn=10006;ZhaoSi;5570,68),ssN;intij;FILE*fp;fp=fopen(,student.datwb);fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopcn(student.dat,rb);fread(ss,sizeof(STU),N,fp);fclose(fp);printftnTheoriginaldataAnVn);for(j=0;jN;j+)printf(nNo:%ldName:
16、%-8sScores:,ssj.s no,ssj.name);for(i=0;i3;i+)printf(M%6.2r,ssj.scorei);printf(Mn);)fun(student.dat,n);printf(,nThedataaftermodifing:nn,);fp=fopen(,student.dat,rb);fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;jN;j+)printf(nNo:%klName:%8sScores:,ssjls no,ssj.name);for(i=0;i3;i+)printf(,%6.2fssj.score
17、(i);printRAn);解题思路:本题是考察如何从文件中读出数据,再把 结构中的数据写入文件中。第一处:从指定的文件中读出数据,所以 应填:filename o第二处:读取文件fp的最后一条记录,所 以应填:fpo第三处:再把读出的记录,写入文件fp指 定的位置上,所以应填:fp。给定程序MODI 1 .C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构!给定源程序:#include#includetypcdefs
18、tructaa(intdata;structaa*next;JNODE;NODE*Creatlink(intnjnlm)NODE*h=NULL,*p,*s;inti;p=(NODE)malloc(sizeof(NODE);h=p;p-next=NULL;fbr(i=l;idata=rand()%m;s-next=p-next;p-next=s;p=p-next;retump;outlink(NODE*h)(NODE*p;p=h-next;printf(nnTHELJST:nnHEAD);while(p)(printf(-%d,p-data);p=p-next;)pnntf(n);)main()
19、(NODE*hcad;head=CreatIink(8,22);outlink(head);)解题思路:第一处:指向刚分配的结构指针,所以应改 为:p=(NODE*)malloc(sizeof(NODE);第二处:在动态分配内存的下一行语句是, 使用临时结构指针变量h保存p指针的初 始位置,最后返回不能使用p,是因为p的位置已经 发生了变化,所以应改为返回h。请编写函数fun.函数的功能是:统计一行字 符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有 单词由小写字母组成,单词之间由若干 个空格隔开,一行的开始没有空格。注意:部分源程序在文件PROG1.C中。请勿改动主函数m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 计算机 二级 语言 上机 题库
限制150内