国家计算机二级C语言上机100套题及答案.docx
《国家计算机二级C语言上机100套题及答案.docx》由会员分享,可在线阅读,更多相关《国家计算机二级C语言上机100套题及答案.docx(219页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、国家计算机二级c语言上机100套题答案一、填空题1.给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的去除,剩余的数 按原来从高到低的顺序组成一个新的数,并通过形参指针n传回所指变量。例如:输入一个数:27638496,新的数为:739。#include void fun(unsigned long *n) unsigned long x=0, i; int t;i=l;while(*n)/* found* */ t=*n % 10;/*d* */if(t%2!= 0) x=x+t*i; i=i*10; *n =*n /10;*n=x;main() unsigned long
2、n=-l;while(n99999999lln0) printf( Please input(0n 100000000): ); scanf(lcT,&n); fun(&n);printf(nnThe result is: %ldnM,n);2 .给定程序中涵数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用 字符方式从此文本文件中逐个读入并显示在终端屏幕上。#include void fun(char *s, int a, double f) /* Qund* */FILE * fp;char ch;fp = fopen(file 1.txt, w1);fjprintf(f
3、p, M%s %d %fnH, s, a, f);fclose(fp);fp = fopen(Mfilel.txt, Hrn);printf(unThe result :nnH);ch = fgetc(fp);/* und* */while (!feof(fp) /* *lound* */putchar(ch); ch = fgetc(fp); putcharCn);fclose(fp);main() char a10=,Hello!H; int b= 12345;double c= 98.76;fun(a,b,c);3 .程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有
4、学生数 据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个 学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。#include #define N 5 typedef struct student long char float STU;sno;name10;score3;void fun(char .filename, STU n) FILE *fp;/*/fp = fopen(filename, rb+”);/*d* */fseek(fp, -lL*sizeof(STU), SEEK_END);/*d*/fwrite(&n, si
5、zeof(STU), 1, fp);fclose(fp);)main() STU tN= 10001,MaChao 91, 92, 77, 10002,MCaoKai 75, 60, 88), 10003,LiSin, 85, 70, 78,10004,FangFangn, 90, 82, 87,10005,ZhangSanH, 95, 80, 88;STU n= 10006,ZhaoSiH, 55, 70, 68, ss|N;int i,j; FILE *fp;fp = fopen(student.dat, wb);fwrite(t, sizeof(STU), N, fp);fclose(f
6、p);fp = fopen(nstudent.datM, rb);fread(ss, sizeof(STU), N, fp);fclose(fp);printf(MnThe original data :nnM);for (j=0; jN; j+) printf(nnNo: %ld Name: %-8s Scores: n,ss|j.sno, ssj.name); for(i=0; i3; i+) printf(H%6.2fssj.scorei);printf(AnM);fun(Hstudent.datM, n);printfCAnThe data after modifing :nnM);f
7、p = fopen(,student.dat, nrbM);fread(ss, sizeof(STU), N, fp);fclose(fp);for(j=0; jN; j+) printf(nNo: %ld Name: %-8s Scores: n,ssj.sno, ssj.name); for (i=0; i3; i+) printf(H%6.2f, ssj.scorei);printfCAn*);4 .程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数 据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生 数据,并按照学号从小
8、到大排序后,再用二进制方式把排序后的学生数据输出到filename 所指的文件中,覆盖原来的文件内容。#include #define N 5typedef struct student long sno;char name10;float score3; STU;void fun(char * filename) FILE *fp; int i,j;STU sN, t;/* */fp = fopen(filename, rbn);fread(s, sizeof(STU), N, fp);fclose(fp);for(i=0; iN-l;i+)for (j=i+1; jsj.sno) t =
9、si; si = sj; s|j = t; fp = fopen(filename, Mwbn);/* */fwrite(s, sizeof(STU), N, fp);fclose(fp);main() STU tN= 10005,“ZhangSan”, 95, 80, 88, 10003,“LiSi”, 85, 70, 78),10002,CaoKai,; 75, 60, 88, 10004,FangFang*, 90, 82, 87,10001,MaChao, 91, 92, 77, ssN;int i,j; FILE *fp;fp = fopen(Mstudent.dat; MwbM);
10、fwrite(t, sizeof(STU), 5, fp);fclose(fp);printf(MnnThe original data :nnM);for(j=0; jN; j+) printf(MnNo: %ld Name: %-8s Scores: n,tjJ.sno, t|j|.name);for (i=0; i3; i+) printf(M%6.2ftj.scorei);printf(nH);)fun( student.dat*);printf(unnThe data after sorting :nn);fp = fopen(,student.datu, rb);fread(ss,
11、 sizeof(STU), 5, fp);fclose(fp);for(j=0; jN; j+) printf(HnNo: %ld Name: %-8s Scores: ssljl.sno, ssj.name);for (i=0; i3; i+) printf(n%6.2fssj.scorei);printf(,lnH);)5 .给定程序中,函数fun的功能是将参数给定的字符用、整数、浮点数写到文本文件中,再 用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof符字符串转换成相应的 整数、浮点数,然后将其显示在屏幕上。#include #include void fun(char
12、 *s, int a, double f)(/,* Qund* */FILE * fp;char str| 100, strl100|, str2100;int al; double fl;fp = fopen(Mfilel.txt; HwH);fprintf(fp, n%s %d %fn s, a, f);/* found* */fclose(fp);fp = fopen(filel.txt“,r);/* found* */fscanf(fp,M%s%s%sM, str, stri, str2);fclose(fp);al = atoi(strl);fl = atof(str2);print
13、f(nThe result :nn%s %d %fnM, str, al, fl); main() char a10=Heno!”; int b= 12345;double c= 98.76; fun(a,b,c);6 .给定程序中,函数fun的功能是根据形参i的值返回某个函数的值,当调用正确时,程序 输出:x 1=5.000000, x2=3.0()0000 xl*xl+xl*x2=40.000000#include double fl (double x) return x*x; double f2(double x, double y) return x*y; /豕* toun d */
14、double fun(int i, double x, double y) if (i=D /* found* */return fl(x); else/* )und* */ return f2(x, y);) main() double xl=5, x2=3, r;r = fun(l, xl, x2);r += fun(2, xl, x2);printf(nnxl=%f, x2=%f, xl*xl+xl*x2=%fnnM,xl, x2, r); )7 .程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能 是输出这位学生的信息。#include typedef s
15、truct int num;char name 9;char sex;struct int year,month,day ; birthday;float score 3;STU;/* found* */void show(STU tt) int i;printf(An%d %s %c %d-%d-%dM, tt.num, tt.name, tt.sex, tt. birthday, ye ar, tt.birthday.month, tt.birthday.day);for(i=0; i3; i+)/* * */printf(n%5.1f, tt.scorei);printf(MnM);ma
16、in() STU std= 1 /ZhanghuaVM; 1961,10,8,76.5,78.0,82.0 ;printfCAnA student data:nu);/* four) ci* */show(std);8 .给定程序通过赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成 绩。函数fun的功能是将该学生的各科成绩者乘以一个系数a。#include typedef struct int num;char name9;float score 3;STU;void show(STU tt) int i;printf(n%d %s : tt.num,tt.name);for
17、(i=0; i3; i+)printf(H%5. If tt.scorei);printf(nnn);/* found* */ void modify(STU *ss,float a) int i;for(i=0; iscorei *=a;)main() STU std= IJZhanghua”,76.5,78.0,82.0 ;float a;printf(AnThe original number and name and scores :nM);show(std);printf(nlnput a number:); scanf(M%f&a);/* found* */ modify(&std
18、,a);printf(AnA result of modifying :nn); show(std);9 .给定程序中,涵数fun的功能是将不带头结点的单向链表结点数据域中的数据从小到大排 序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从 头至尾为:2、4、6、8、10o#include #include #define N 6typedef struct node int data;struct node *next; NODE;void fun(NODE *h) NODE *p, *q; int t;p = h;while (p) * * found*
19、 */q = p-next;while (q)if (p-data q-data) t = p-data; p-data = q-data; q-data = t; q = q-next;p = p-next;)NODE *creatlist(int a) NODE *h,*p,*q; int i;h=NULL;for(i=0; idata=ai;q-next = NULL;if(h = NULL) h = p = q;else p-next = q; p = q; return h;void outlist(NODE *h) NODE *p;p=h;if(p=NULL) printf(HTh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 计算机 二级 语言 上机 100 答案
限制150内