二级C语言上机题库--100题.pdf
《二级C语言上机题库--100题.pdf》由会员分享,可在线阅读,更多相关《二级C语言上机题库--100题.pdf(164页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、二级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
2、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(
3、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
4、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:);换为整数的函数)。例如,若输
5、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);的花括号中填l
6、ong 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(
7、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
8、,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
9、套试题开始均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”;
10、点数写到文本)文件中,再用字符方式从此文本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);
11、不得增行或删行,也不得更改程量,所以应填: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
12、.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*/给定
13、源程序:S S S SH H H Hprintf(The A string:n,);puts(a);出到文件中。函数fun的功能是则 字 符 串 中 的 内 容 应 是:printf(nn);重写形参filename所WSHWSHWSHoNONO();指文件中最后一个学生的数据,注 意:部 分 源 程 序 在 文 件即用新的学生数据覆盖该学生PROG1.C+o原来的数据,其它学请勿改动主函数m ain和其它函解题思路:生的数据不变。数中的任何内容,仅 在 函 数 fun本题是把二维数组中的字符数请在程序的下划线处填入正确的花括号中填入据按列存放到一个字符串中。的内容并把下划线删除,使程序你编写
14、的若干语句。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+)/
15、*请填写相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);f
16、or(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(
17、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(
18、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);的内
19、容并把下划线删除,使程序*)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 st
20、ruc 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_);请勿改动主函数
21、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*/(出到文件中。函
22、数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,L
23、iSi,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);
24、于,则进行交换,所以应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%
25、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,f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 题库 100
限制150内