[IT认证]二级C语言上机题库100套最新.doc

上传人:音乐台 文档编号:1967262 上传时间:2019-01-27 格式:DOC 页数:314 大小:1.40MB
返回 下载 相关 举报
[IT认证]二级C语言上机题库100套最新.doc_第1页
第1页 / 共314页
[IT认证]二级C语言上机题库100套最新.doc_第2页
第2页 / 共314页
[IT认证]二级C语言上机题库100套最新.doc_第3页
第3页 / 共314页
亲,该文档总共314页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[IT认证]二级C语言上机题库100套最新.doc》由会员分享,可在线阅读,更多相关《[IT认证]二级C语言上机题库100套最新.doc(314页珍藏版)》请在三一文库上搜索。

1、上机题库国家计算机等级考试二级C语言上机题库目 录【填空】3【计算】3【结构体、学生编号】14【矩阵】21【链表】26【其他】33【数组】38【填空】48【字符串】120【最值、排序】144【改错】150【字符串】150【整除】170【找大小】171【找0】172【素数】173【数组】176【删除】182【三角】183【奇偶】185【链表】190【交换、转换】194【积】197【公约公倍】197【公式】199【改错】208【编程】274【被除数、素数】274【公式求值】277【矩阵、数组】285【删除字母】290【学生成绩】299【字符串】305【最值】312【填空】【计算】26.下列给定程序

2、中,函数fun的功能是:找出100999之间(含100和999)所有整数中各位上数字之和为x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。#include int fun(int x) int n, s1, s2, s3, t; n=0; t=100;/*found*/ while(t=999)/*found*/ s1=t

3、%10; s2=(t/10)%10; s3=t/100;/*found*/ if(s1+s2+s3=x) printf(%d ,t); n+; t+; return n;main() int x=-1; while(x0): ); scanf(%d,&x); printf(nThe result is: %dn,fun(x);31.下列给定程序中,函数fun的功能是:计算下式前n项的和,并作为函数值返回。例如,若主函数从键盘给n输入50后,则输出为S=1.960784。#include double fun(int n) int i,j; double sum=0.0,t; for(i=1;i

4、=n;i+) t=0.0;for(j=1;j=i;j+)t+=j;sum+=(double)1/t; return sum;void main() int n; double s; printf(nInput n: ); scanf(%d,&n); s=fun(n); printf(nns=%fnn,s);46.下列给定程序中,函数fun的功能是:将自然数110及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。#include #include int fun(char *fname ) FILE *fp; int i,n; float x; if(fp=fop

5、en(fname, w)=NULL) return 0; for(i=1;i=10;i+)/*found*/ fprintf(fp,%d %fn,i,sqrt(double)i); printf(nSucceed!!n);/*found*/ fclose(fp); printf(nThe data in file :n);/*found*/ if(fp=fopen(fname,r)=NULL) return 0; fscanf(fp,%d%f,&n,&x); while(!feof(fp) printf(%d %fn,n,x); fscanf(fp,%d%f,&n,&x); fclose(fp

6、); return 1;main() char fname=myfile3.txt; fun(fname);44.下列给定程序中,函数fun的功能是:找出100到x(x999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。#include int fun(int x) int n, s1,

7、s2, s3, t;/*found*/ n=0; t=100;/*found*/ while(t999|x0) printf(Please input(0x=999): ); scanf(%d,&x); printf(nThe result is: %dn,fun(x);56.给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:Sr2,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:19.527,输出为:s598.949991#include double fun( double r) return 3.14159*r*r

8、/2.0;void main()double x;printf(Enter x: );scanf(%lf,&x);printf(s=%lfn,fun(x);57.请补充main函数,该函数的功能是:计算两个自然数n和m(m10000)之间所有数的和(n和m从键盘输入)。例如,当n1,m100时,sum5050;当n100,m1000时,sum495550。#include #include #include void main() int n,m; long sum; sum=0; system(CLS); printf(nInput n,mn); scanf(%d,%d,&n,&m); wh

9、ile(n=m) sum+=n;n+; printf(sum=%dn,sum);60.请补充函数fun,该函数的功能是:判断某一个年份是否为闰年。例如,1900年不是闰年,2004是闰年。#include #include #include int fun(int n) int flag=0; if(n%4=0) if (n%100)flag=1; if (n%400=0)flag=1; return flag;void main() int year; system(CLS); printf(Input the year:); scanf(%d,&year); if (fun(year)pr

10、intf(%d is a leap year. n,year); elseprintf(%d is not a leap year.n,year);61.给定程序的功能是:计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,并返回人数。例如,当score10,20,30,40,50,60,70,80,90,m9时,函数返回的人数应该是4,below10,20,30,40#include #include int fun(int score,int m, int below) int i,j=0; float aver =0.0; for(i=0;im;i+)aver

11、+=scorei; aver/=(float)m; for(i=0;im;i+)if(scoreiaver)belowj+=*(score+i); return j; main() int i, n, below9; int score9=10,20,30,40,50,60,70,80,90; n=fun(score, 9, below); printf(nBelow the average score are: ); for(i=0;in;i+) printf(%d ,belowi);62.函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、c3

12、返回主函数。例如,当n123114350时,结果应该为:c13 c21 c32。#include int c1,c2,c3;void fun(long n) c1=c2=c3=0; while(n) switch(n%10)case 1:c1+;break;case 2:c2+;break;case 3: c3+;n/=10;main() long n=123114350L; fun(n); printf(nThe result: n); printf(n=%ld c1=%d c2=%d c3=%dn,n,c1,c2,c3); 63.请补充函数fun,该函数的功能是:整除x且是偶数的数,把这些

13、数保存在数组bb中,并按从大到小的顺序输出。例如当x20时,依此输出:201042。#include #include #include void fun(int k,int bb) int i; int j=0; for(i=1;i=0;i-)printf(%d ,bbi);void main() int k=1; int bb100; system(CLS); printf(nPlease input X=); scanf(%d,&k); fun(k,bb);67.请补充main函数,该函数的功能是:求n!。例如,7!5040。#include #include #include void

14、 main() int i,n; long f=1; system(CLS); printf(Input n: ); scanf(%d,&n); for(i=1;i=n;i+)f*=i; printf(%d!=%ldn,n,f);68. 程序的功能是计算s=k0+k1+kn 。#include long fun(int n)int i;long s;s=1;for(i=1;i=n;i+)s=i*s;return s;void main()long s;int k,n;scanf(%d,&n);s=0;for(k=0;k=n;k+)s=s+fun(k);printf(%ldn,s);69.给定程

15、序的功能是:计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。例如,若q的值为50.0,则函数值为50.416687。#include double fun(double q) int n; double s,t; n=2; s=2.0; while(s=q) s=s+(double)(n+1)/n; n+; printf(n=%dn ,n); return (s);void main() printf(%fn ,fun(50);70.请补充main函数,该函数的功能是:求12!3!N!的和。例如,12!3!5!6!的和为873。#include #include v

16、oid main() int i, n; long s=0, t=1; system(CLS); printf(nInput n:n); scanf(%d,&n); for(i=1;i=n;i+) t=t*i;s=s+t; printf(1!+2!+3!.+%d!=%ldn,n,s);71.请在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输出n对应的斐波那契数列。斐波那契数列是一整数数列,该数列自第三项开始,每数等于前面两数之和,即0,1,1,2,3,5,8,13,21,34,55,#include int fun(int n);void main() int i,n=0; s

17、canf(%d,&n); for(i=0;in;i+)printf(%d ,fun(i);int fun(int n) if(n=0)return 0; elseif(n=1)return 1;elsereturn fun(n-1)+fun(n-2);73.请补充函数fun,该函数的功能是:判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回yes!,否则返回no!。#include #include #include char *fun(int n)int g,s,b;g=n%10;s=n/10%10;b=n/100%10;if(g+b)=s)return yes!;elser

18、eturn no!;void main()int num=0;system(CLS);printf(*Input data *n);scanf(%d,&num);printf(nnn);printf(* The result *n);printf(nnn%s,fun(num);91.请补充main函数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组bb中。例如,当scoreNM83.5,82,86,65,67,80,91.5,84,99,95,90.5,95,86,95,97时,三个学生的平均分为76.7,89.9,92.7。#include #define N 3#define

19、 M 5void main() int i,j; static float scoreNM=83.5,82,86,65,67,80,91.5,84,99,95,90.5,95,86,95,97; float bbN; system(CLS); for(i=0;iN;i+)bbi=0; for(i=0;iN;i+) for(j=0;jM;j+)bbi+=scoreij;bbi/=M; for(i=0;iN;i+)printf(nstudent%dtaverage=%5.1f,i+1,bbi);95.请补充函数fun,该函数的功能是:求一维数组xN的平均值,并对所得结果进行四舍五入(保留两位小数)

20、。例如,当x1015.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0,结果为:avg15.030000。#include #include #include double fun(double x10) int i; long t; double avg=0.0; double sum=0.0; for(i=0;i10;i+)sum+=xi; avg=sum/10; avg=avg*1000; t=(avg+5)/10; avg=(double)t/100; return avg;void main() double avg,x10=15.6,19

21、.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0; int i; system(CLS); printf(nThe original data is :n); for(i=0;i10;i+)printf(%6.1f,xi); printf(nn); avg=fun(x); printf(average=%fnn,avg);100.请补充main函数,该函数的功能是求方程ax2bxc0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(discb24ac)小于0,则要求重新输入a、b、c的值。例如,当a1,b2,c1时,方程的两个根分别是x11.00,x

22、21.00。#include #include #include void main() float a,b,c, disc,x1,x2; system(CLS); do printf(Input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);disc=b*b-4*a*c;if(disc0)printf(disc=%fn Input again!n,disc); while(disc0); printf(*the result*n); x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(nx1=%6.2fnx2=

23、%6.2fn,x1,x2);【结构体、学生编号】19.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001、ZhangSan、95、80、88,则修改后输出b中的数据应为:10002、LiSi、95、80、88。#include #include struct student long sno; char name10; float score3;void fun(struct student a)

24、struct student b; int i;/*found*/ b = a; b.sno = 10002;/*found*/ strcpy(b.name, LiSi); printf(nThe data after modified :n); printf(nNo: %ld Name: %snScores: ,b.sno, b.name);/*found*/ for (i=0; i3; i+) printf(%6.2f , b.scorei); printf(n);main() struct student s=10001,ZhangSan, 95, 80, 88; int i; prin

25、tf(nnThe original data :n); printf(nNo: %ld Name: %snScores: ,s.sno, s.name); for (i=0; i3; i+) printf(%6.2f , s.scorei); printf(n); fun(s);24.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。例如,a所指变量s中的学号、姓名和三门课的成绩依次是:10001、ZhangSan、95、80、88,修改后输出t中的数据应为:

26、10002、LiSi、96、81、89。#include #include struct student long sno; char name10; float score3;/*found*/struct student * fun(struct student *a) int i; a-sno = 10002; strcpy(a-name, LiSi);/*found*/ for (i=0; iscorei += 1;/*found*/ return a ;main() struct student s=10001,ZhangSan, 95, 80, 88, *t; int i; pri

27、ntf(nnThe original data :n); printf(nNo: %ld Name: %snScores: ,s.sno, s.name); for (i=0; isno, t-name); for (i=0; iscorei); printf(n);27.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。例如,若b所指变量t中的学号、姓名和三门课的成绩依次是:10002、ZhangQi、93、85、87,修改后输出t中的数据应为:10004、LiJie、93、85、87。#

28、include #include struct student long sno; char name10; float score3;void fun( struct student *b)/*found*/ b-sno = 10004;/*found*/ strcpy(b-name, LiJie);main() struct student t=10002,ZhangQi, 93, 85, 87; int i; printf(nnThe original data :n); printf(nNo: %ld Name: %snScores: ,t.sno, t.name); for (i=0

29、; i3; i+) printf(%6.2f , t.scorei); printf(n);/*found*/ fun(&t); printf(nThe data after modified :n); printf(nNo: %ld Name: %snScores: ,t.sno, t.name); for (i=0; i3; i+) printf(%6.2f , t.scorei); printf(n);30.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是:从文件中找出指定学号的学生数据,读入

30、此学生数据,对该学生的分数进行修改,使每门课的分数加3分,修改后重写文件中学生的数据,即用该学生的新数据覆盖原数据,其它学生数据指定不变;若找不到,则不做任何操作。#include #define N 5typedef struct student long sno; char name10; float score3; STU;void fun(char *filename, long sno) FILE *fp; STU n; int i; fp = fopen(filename,rb+);/*found*/ while (!feof(fp) fread(&n, sizeof(STU),

31、1, fp);/*found*/ if (n.sno=sno) break; if (!feof(fp) for (i=0; i3; i+) n.scorei += 3;/*found*/ fseek(fp, -(long)sizeof(STU), SEEK_CUR); fwrite(&n, sizeof(STU), 1, fp); fclose(fp);main() STU tN= 10001,MaChao, 91, 92, 77, 10002,CaoKai, 75, 60, 88, 10003,LiSi, 85, 70, 78, 10004,FangFang, 90, 82, 87, 10

32、005,ZhangSan, 95, 80, 88, ssN; int i,j; FILE *fp; fp = fopen(student.dat, wb); fwrite(t, sizeof(STU), N, fp); fclose(fp); printf(nThe original data :n); fp = fopen(student.dat, rb); fread(ss, sizeof(STU), N, fp); fclose(fp); for (j=0; jN; j+) printf(nNo: %ld Name: %-8s Scores: ,ssj.sno, ssj.name); f

33、or (i=0; i3; i+) printf(%6.2f , ssj.scorei); printf(n); fun(student.dat, 10003); fp = fopen(student.dat, rb); fread(ss, sizeof(STU), N, fp); fclose(fp); printf(nThe data after modifing :n); for (j=0; jN; j+) printf(nNo: %ld Name: %-8s Scores: ,ssj.sno, ssj.name); for (i=0; i3; i+) printf(%6.2f , ssj

34、.scorei); printf(n); 35.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是:10001、ZhangSan、95、80、88,修改后的数据应为:10002、LISi、96、81、89。#include #include struct student long sno; char name10; float score3;/*found*/struct student fun(struct student a) in

35、t i; a.sno = 10002;/*found*/ strcpy(a.name, LiSi);/*found*/ for (i=0; i3; i+) a.scorei+= 1; return a;main() struct student s=10001,ZhangSan, 95, 80, 88, t; int i; printf(nnThe original data :n); printf(nNo: %ld Name: %snScores: ,s.sno, s.name); for (i=0; i3; i+) printf(%6.2f , s.scorei); printf(n); t = fun(s); printf(nThe data after modified :n); printf(nNo: %ld Name: %snScores: ,t.sno, t.name); for (i=0; i3; i+) printf(%6.2f , t.scorei); printf(n);54.下列给定程序的功能是调用fun函数建立班级

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1