收藏 分享(赏)

二级c语言上机题库100题.doc

上传人:无敌 文档编号:622110 上传时间:2018-04-15 格式:DOC 页数:127 大小:715.50KB
下载 相关 举报
二级c语言上机题库100题.doc_第1页
第1页 / 共127页
二级c语言上机题库100题.doc_第2页
第2页 / 共127页
二级c语言上机题库100题.doc_第3页
第3页 / 共127页
二级c语言上机题库100题.doc_第4页
第4页 / 共127页
二级c语言上机题库100题.doc_第5页
第5页 / 共127页
点击查看更多>>
资源描述

1、二级 C 语言上机试题汇编第 01 套:给定程序中,函数 fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。例如,输入一个数:27638496,新的数:为 739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(unsignedlong*n)unsignedlongx=0,i;intt;i=1;while(*n)/*found*/t=*n%_1_

2、;/*found*/if(t%2!=_2_)x=x+t*i;i=i*10;*n=*n/10;/*found*/*n=_3_;main()unsignedlongn=-1;while(n99999999|ndoublefun(intn)doubleresult=1.0;/*found*/ifn=0return1.0;while(n1/*len 为串长,t 为正负标识*/longx=0;len=strlen(p);if(p0=-)t=-1;len-;p+;elset=1;/*以下完成数字字符串转换为一个数字*/returnx*t;main()/*主函数 */chars6;longn;printf(

3、“Enterastring:n“);gets(s);n=fun(s);printf(“%ldn“,n);NONO();NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chars20;longn;fp=fopen(“c:testin.dat“,“r“);wf=fopen(“c:testout.dat“,“w“);for(i=0;i#includelongfun(char*p)/*以下代码仅供参考*/inti,len,t;/*len 为串长,t 为正负标识*/longx=0;len=strlen(p);if(p0=-)t=-1;le

4、n-;p+;elset=1;/*以下完成数字字符串转换为一个数字*/while(*p)x=x*10-48+(*p+);returnx*t;main()/*主函数 */chars6;longn;printf(“Enterastring:n“);gets(s);n=fun(s);printf(“%ldn“,n);NONO();NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chars20;longn;fp=fopen(“c:testin.dat“,“r“);wf=fopen(“c:testout.dat“,“w“);for(i=0;

5、ivoidfun(char*s,inta,doublef)/*found*/_1_fp;charch;fp=fopen(“file1.txt“,“w“);fprintf(fp,“%s%d%fn“,s,a,f);fclose(fp);fp=fopen(“file1.txt“,“r“);printf(“nTheresult:nn“);ch=fgetc(fp);/*found*/while(!feof(_2_)/*found*/putchar(_3_);ch=fgetc(fp);putchar(n);fclose(fp);main()chara10=“Hello!“;intb=12345;doubl

6、ec=98.76;fun(a,b,c);解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量,所以应填:FILE*。第二处:判断文件是否结束,所以应填:fp。第三处:显示读出的字符,所以应填:ch。*给定程序 MODI1.C 中函数 fun 的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数 fun 中指定部位的错误 ,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(char*s)inti,j;for(i=0,j=0;

7、si!=0;i+)if(si=0for(i=0;i#defineN5typedefstructstudentlongsno;charname10;floatscore3;STU;voidfun(char*filename,STUn)FILE*fp;/*found*/fp=fopen(_1_,“rb+“);/*found*/fseek(_2_,-1L*sizeof(STU),SEEK_END);/*found*/fwrite(fclose(fp);main()STUtN=10001,“MaChao“,91,92,77,10002,“CaoKai“,75,60,88,10003,“LiSi“,85

8、,70,78,10004,“FangFang“,90,82,87,10005,“ZhangSan“,95,80,88;STUn=10006,“ZhaoSi“,55,70,68,ssN;inti,j;FILE*fp;fp=fopen(“student.dat“,“wb“);fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen(“student.dat“,“rb“);fread(ss,sizeof(STU),N,fp);fclose(fp);printf(“nTheoriginaldata:nn“);for(j=0;j#includetypedefstruc

9、taaintdata;structaa*next;NODE;NODE*Creatlink(intn,intm)NODE*h=NULL,*p,*s;inti;/*found*/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*/returnp;outlink(NODE*h)NODE*p;p=h-next;printf(“nnTHELIST:nnHEAD“);while(p)printf(“-%d“,p-data);p=p-next;p

10、rintf(“n“);main()NODE*head;head=Creatlink(8,22);outlink(head);解题思路:第一处:指向刚分配的结构指针,所以应改为:p=(NODE*)malloc(sizeof(NODE);第二处:在动态分配内存的下一行语句是,使用临时结构指针变量 h 保存 p 指针的初始位置,最后返回不能使用 p,是因为 p 的位置已经发生了变化,所以应改为返回 h。*请编写函数 fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文

11、件 PROG1.C 中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。给定源程序:#include#include#defineN80intfun(char*s)main()charlineN;intnum=0;printf(“Enterastring:n“);gets(line);num=fun(line);printf(“Thenumberofwordis:%dnn“,num);NONO();解题思路:本题是统计字符串中的单词数。1.利用 while 循环语句和指针变量,当字符为空格时,则单词数 k 加 1。2.循环结束返回 k。参考答

12、案:intfun(char*s)intk=1;while(*s)if(*s=)k+;s+;returnk;第 04 套:程序通过定义学生结构体变量,存储了学生的学号、姓名和 3 门课的成绩。所有学生数据均以二进制方式输出到文件中。函数 fun 的功能是从形参 filename 所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到 filename 所指的文件中,覆盖原来的文件内容。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:#i

13、nclude#defineN5typedefstructstudentlongsno;charname10;floatscore3;STU;voidfun(char*filename)FILE*fp;inti,j;STUsN,t;/*found*/fp=fopen(filename,_1_);fread(s,sizeof(STU),N,fp);fclose(fp);for(i=0;i。第三处:把已排序的结构数据,重新写入文件,所以应填:fwrite。*给定程序 MODI1.C 中函数 fun 的功能是:在字符串的最前端加入 n 个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为 79

14、。请改正函数 fun 中指定部位的错误 ,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#includevoidfun(chars,intn)chara80,*p;inti;/*found*/s=p;for(i=0;i#defineN50#defineM11voidfun(int*a,int*b)doublernd()statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return(double)r/m);main()intageN,i,dM;for(i=0;i10)bM-1+;elsebj+

15、;doublernd()statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return(double)r/m);第 05 套:给定程序中,函数 fun 的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi 和 atof 将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#includevoidfun(char

16、*s,inta,doublef)/*found*/_1_fp;charstr100,str1100,str2100;inta1;doublef1;fp=fopen(“file1.txt“,“w“);fprintf(fp,“%s%d%fn“,s,a,f);/*found*/_2_;fp=fopen(“file1.txt“,“r“);/*found*/fscanf(_3_,“%s%s%s“,str,str1,str2);fclose(fp);a1=atoi(str1);f1=atof(str2);printf(“nTheresult:nn%s%d%fn“,str,a1,f1);main()char

17、a10=“Hello!“;intb=12345;doublec=98.76;fun(a,b,c);解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮点数显示在屏幕上。第一处:定义文本文件类型变量,所以应填:FILE*。第二处:关闭刚写入的文件,所以应填:fclose(fp)。第三处:从文件中读出数据,所以应填:fp。*给定程序 MODI1.C 中函数 fun 的功能是:对 N 名学生的学习成绩,按从高到低的顺序找出前 m(m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数 fun 中指定部位的错误

18、 ,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#include#defineN10typedefstructsscharnum10;ints;STU;STU*fun(STUa,intm)STUbN,*t;inti,j,k;/*found*/t=(STU*)calloc(sizeof(STU),m)for(i=0;ibj.s)j=i;/*found*/t(k)=b(j);bj.s=0;returnt;outresult(STUa,FILE*pf)inti;for(i=0;i10)printf(“nGiv

19、ethenumberofthestudentswhohavebetterscore:“);scanf(“%d“,pOrder=fun(a,m);printf(“*THERESULT*n“);printf(“Thetop:n“);for(i=0;i#defineN80intfun(inta,intn)main()intaN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20;printf(“Theoriginaldata:n“);for(i=0;idoublef1(doublex)returnx*x;doublef2(doublex,double

20、y)returnx*y;/*found*/_1_fun(inti,doublex,doubley)if(i=1)/*found*/return_2_(x);else/*found*/return_3_(x,y);main()doublex1=5,x2=3,r;r=fun(1,x1,x2);r+=fun(2,x1,x2);printf(“nx1=%f,x2=%f,x1*x1+x1*x2=%fnn“,x1,x2,r);解题思路:本题是根据给定的公式来计算函数的值。第一处:程序中使用双精度 double 类型进行计算,所以函数的返回值类型也为double,所以应填:double 。第二处:当 i 等

21、于 1 时,则返回 f1 函数的值,所以应填:f1。第三处:如果 i 不等于 1,则返回 f2 函数的值,所以应填:f2。*给定程序 MODI1.C 中函数 fun 的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数 fun 中指定部位的错误 ,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include/*found*/charfun(char*s,char*t)intsl=0,tl=0;char*ss,*tt;ss=s;tt=t;while(*ss)sl+;/*found*/(*ss)+;while(*t

22、t)tl+;/*found*/(*tt)+;if(tlsl)returnt;elsereturns;main()chara80,b80,*p,*q;inti;printf(“nEnterastring:“);gets(a);printf(“nEnterastringagain:“);gets(b);printf(“nThelongeris:nn“%s“n“,fun(a,b);解题思路:第一处:试题要求返回字符串的首地址,所以应改为:char*fun(char*s,char*t)第二处:取字符串指针 ss 的下一个位置,所以应改为:ss+;。第三处:取字符串指针 tt 的下一个位置,所以应改为:

23、tt+;。*请编写函数 fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1 到第 m 个字符,平移到字符串的最后,把第 m+1 到最后的字符移到字符串的前部。例如,字符串中原有的内容为:ABCDEFGHIJK,m 的值为 3,则移动后,字符串中的内容应该是:DEFGHIJKABC。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。给定源程序:#include#include#defineN80voidfun1(char*w)/*本函数的功能是将字符串中字符循环左移一个位置*/inti;c

24、hart;t=w0;for(i=0;itypedefstructintnum;charname9;charsex;structintyear,month,day;birthday;floatscore3;STU;/*found*/voidshow(STU_1_)inti;printf(“n%d%s%c%d-%d-%d“,tt.num,tt.name,tt.sex,tt.birthday.year,tt.birthday.month,tt.birthday.day);for(i=0;i#defineN20intfun(int*a,intn)inti,m,t,k;for(i=0;iam)k=m;t

25、=ai;ai=am;am=t;main()intx,bN=11,5,12,0,3,6,9,7,10,8,n=10,i;for(i=0;iam)m=k;。*请编写一个函数 unsignedfun(unsignedw),w 是一个大于 10 的无符号整数,若 w 是 n(n2)位的整数,函数求出 w 的低 n-1 位的数作为函数值返回。例如:w 值为 5923,则函数返回 923;w值为 923 则函数返回 23。注意:部分源程序存在文件 PROG1.C 中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。给定源程序:#includeunsign

26、edfun(unsignedw)main()unsignedx;printf(“Enteraunsignedintegernumber:“);scanf(“%u“,printf(“Theoriginaldatais:%un“,x);if(x10000)w%=10000;elseif(w1000)w%=1000;elseif(w100)w%=100;elseif(w10)w%=10;returnw;第 08 套:给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和 3 门课的成绩。函数 fun 的功能是将该学生的各科成绩都乘以一个系数 a。请在程序的下划线处填入正确的内容并

27、把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:#includetypedefstructintnum;charname9;floatscore3;STU;voidshow(STUtt)inti;printf(“%d%s:“,tt.num,tt.name);for(i=0;i_2_*=a;main()STUstd=1,“Zhanghua“,76.5,78.0,82.0;floata;printf(“nTheoriginalnumberandnameandscores:n“);show(std);printf(“nInputanumber:“);scanf(“%f“,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报