【计算机类职业资格】福建省二级C语言-4及答案解析.doc
《【计算机类职业资格】福建省二级C语言-4及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】福建省二级C语言-4及答案解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、福建省二级 C语言-4 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:18,分数:40.00)1.以下叙述中,错误的是_。(分数:2.00)A.结构类型的成员可以是数组B.结构数组是类型为结构的数组C.函数的返回值类型可以是结构类型D.数组的类型不可以是枚举类型2.设有如下语句:则下面叙述错误的是_。 struct TT int num; char name20; worker;(分数:2.00)A.struct是结构类型的关键字B.struct TT是结构类型C.worker是结构类型名D.name是结构成员名3.若有以下的结构类型别名定义: typedef st
2、ruct stu int num; char name20; STU; 则下面定义结构数组并进行初始化的语句中正确的是_。(分数:2.00)A.STU aa2=1, “wen“, 2, “que“;B.struct stu bb2=1, wen, 2, que;C.STU cc2=1, “wen“, 2, “que“;D.struct stu dd2=1, “wen“; 2, “que“;4.在声明一个结构变量时,系统分配给它的内存大小是_。(分数:2.00)A.该结构变量中第一个成员所需内存量B.该结构变量中最后一个成员所需内存量C.该结构变量的成员中占内存量最大者所需的容量D.该结构变量各
3、成员所需内存量的总和5.设有枚举类型定义语句: enum t1a1, a2=7, a3, a4=15; 则枚举常量 a2和 a3的值分别为_。(分数:2.00)A.7和 8B.2和 3C.7和 2D.1和 26.下列关于结构变量成员的引用,正确的是_。 struct init int a; char c; ; struct init*x;(分数:2.00)A.x*-aB.x*aC.x-aD.xa7.设有以下关于联合变量和结构变量的声明: typedef union int age; char name12; float weight; CLASS; CLASS one; 则语句: printf
4、(“%d“, sizeof(CLASS); 的执行结果是_。(分数:2.00)A.9B.20C.4D.128.阅读以下程序段,其中表达式(p+)+1)-m 的值是_。 struct S int m; int*q; ; int a6=1, 2, 3, 4, 5, 6; struct S n3=2, p=n; (p+)+1)-m; (分数:2.00)A.2B.4C.6D.89.设有如下程序段: (分数:2.00)A.第一条语句中,在声明变量 x1和 x2时,对 x1其的成员进行初始化是合法的B.变量 x1中不能同时存放其成员 a、b、c 的值C.赋值语句 x1=x2;是合法的D.成员变量 x1.a
5、和 x1.c具有相同的首地址10.以下程序的输出结果是_。 #includestdio.h int main() structchar x1; int x2; a3=“A“, 1, “B“, 2, “C“, 3; printf(“%d/n“, a0.x1-a1.x1/a2.x2); return 0; (分数:2.00)A.40B.43C.55D.8011.若 fp是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是_。(分数:2.00)A.EOFB.0C.1D.NULL12.若 fp为文件指针,且文件已正确打开,i 为 int型变量,以下程序段的输出结果是_。 fsee
6、k(fp, 0, SEEK_END) i=ftell(fp); printf(“i=%d/n“, i);(分数:2.00)A.-1B.fp所指文件的长度,以字节为单位C.0D.213.若执行 fopen函数时发生错误,则函数的返回值是_。(分数:2.00)A.地址值B.0C.1D.EOF14.若要用:fopen 函数打开一个新的二进制文件,该文件要既能读也能写,则文件打开方式字符串应是_。(分数:2.00)A.“ab+“B.“wb+“C.“rb+“D.“ab“15.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是_。(分数:3.00)A.只写B.追加C.读或读写D.选项 B
7、和 C都正确16.在执行 fopen函数时,ferror 函数的初值是_。(分数:3.00)A.TUREB.-1C.1D.017.以下程序的运行结果是_。 #includestdio.h int main() FILE*fp; int i, a4=1, 2, 3, 4, b; fp=fopen(“data.dat“, “wb“); for(i=0; i4; i+) fwrite( felose(fp); fp=fopen(“data.dat“, “rb“); fseek(fp, -2L*sizeof(int), SEEK_END); fread( /*从文件中读取 sizeof(int)字节的
8、数据到变量 b中*/ fclose(fp); printf(“%d/n“, b); return 0; (分数:3.00)A.2B.1C.4D.318.以下程序的功能是_。 #includestdio.h int main() FILE*fp1, *fp2; fp1=fopen(“filel“, “r“); fp2=fopen(“file2“, “w“); while(!feof(fp1) fputc(fgetc(fp1), fp2); fclose(fp1); fclose(fp2); return 0; (分数:3.00)A.将磁盘文件的内容显示在屏幕上B.将两个磁盘文件合为一个C.将一个
9、磁盘文件复制到另一个磁盘文件中D.将两个磁盘文件合并后送屏幕二、填空题(总题数:30,分数:60.00)19.若自定义函数要求返回一个值,则在该函数体中应有一条 1 语句;若自定义函数要求不返回值,则在该函数说明时加一类型说明符 2。 (分数:2.00)20.为了使下面程序能够正确运行,程序的第 2行应填写的内容是 _ ,当输入的数值为 66和 99时,该程序输出的结果是 _ 。 #includestdio.h _ int main() double x1, x2; scanf(:%lf, %lf“, printf(“%lf/n“, max(x2, x1); return 0; double
10、max(double y1, double y2) return(y1y2?y1-y2:y2-y1); (分数:2.00)21.以下程序是输入 m、n 的值,求(m+n)/3+(m-n)/3 的值,请把程序补充完整。 #includestdio.h int main() int m, n; 1 printf(“Please input m, n:“); scanf(“%d, %d“, printf(“The sum=%d/n“, sum(m, n); return 0; int sum(int i, int j) int k; k= 2; return k; (分数:2.00)22.下面程序功
11、能是求两个浮点数的和,请把程序补充完整。 #includestdio.h void add(double x, double y, double*p) 1=x+y; int main() double a=55.44, b=44.55; double k; add(a, b, 2); printf(“%.2lf/n“, k); return 0; (分数:2.00)23.下面程序的运行结果是 1。 #includestdio.h void func(int*p) while(*p=10) printf(“%5d“, *p); p+; int main() int ar=2, 4, 8, 10,
12、 7, 9, 11, 5, 3; func(ar+1); printf(“/n“); return 0; (分数:2.00)24.下面程序的输出结果为 1。 #includestdio.h int func(int m, int n) return(m*n); int main() int a=3, b=11, c=8, d; d=func(func(a, b), c); printf(“%d/n“, d); getchar(); return 0; (分数:2.00)25.以下程序的功能是从二维数组中找出主对角线上元素的最小值,请把程序补充完整。 #includestdio.h int sm
13、all(int a55) int i, vm; vm=a00; for(i=1; i5; i+) if(vmaii) /*主对角线上元素为 aii*/ vm= 1 return(vm); int main() int i, j, vmin; int array55; for(i=0; i5; i+) for(j=0; j5; j+) scanf(“%d“, /*为数组各元素赋值*/ vmin=small( 2); printf(“vmin=%d/n“, vmin); return 0; (分数:2.00)26.下面程序的运行结果是 1,函数 strcat()的功能是 2。 #includest
14、dio.h char*streat(char*s1, char*s2) char*p=s1; while(*p!=“/0“)p+; while(*p+=*s2+)!=“/0“); return s1; int main() char str130=“I learn“; char*str2=“C language.“; char*s; s=strcat(str1, str2); printf(“/n%s/n%s/n“, s, str1); return 0; (分数:2.00)27.下面程序的功能是求 1!+2!+3!+9!,请把程序补充完整。 #includestdio.h float fra
15、csum(int n) /*求 n!*/ if(n=1) return(1); /*递归结束条件,当 n=1时,n!=1*/ else return(n* 1); /*递归调用*/ int main() int i=1; float int, sum; sum= 2; while(i=9) sum+= 3; i+; printf(“%.of/n“, sum); return 0; (分数:2.00)28.下面程序的运行结果是 1。 int n=10; int func(int*p) n+=*p; *p+=n; printf(“%d, %d/n“, *p, n); return(n); int
16、main() int m=6, pand=8; pand=func( printf(“/n%d, %d, %d/n“, m, pand, n); return 0; (分数:2.00)29.下面程序的运行结果是 1。 int m, n; int fun() m=88; n=99; return(n); int main() int m=55, n=66; printf(“/n%d, %d, %d, %d/n“, m, fun(), m, n); return 0; (分数:2.00)30.下面程序的运行结果是, 。 #includestdio.h void fun(int*s) static
17、int i=0; do si+=si+1; while(+i3); int main() int i, a10=0, 1, 2, 3, 4; for(i=1; i3; i+) fun(a); for(i=0; i5; i+) printf(“%d“, ai); printf(“/n“); return 0; (分数:2.00)31.结构类型定义中的成员列表给出 n个成员的声明,成员可以是基本类型变量、数组、指针,也可以是 1。 (分数:2.00)32.结构变量的成员如果是基本类型数据,可以以“结构变量名.成员名”的形式参加各种运算,而结构变量一般不能直接参加各种运算,但取地址和 1 运算除外。
18、 (分数:2.00)33.函数的参数是结构类型指针,则调用该函数时所提供的对应的实参可以是同类型结构变量的地址、结构指针以及 1。 (分数:2.00)34.结构变量的长度等于所有成员长度之和,而联合变量的长度等于 1。 (分数:2.00)35.联合变量有以下三个主要用途:(1)节省内存空间;(2)在数据处理问题中,可以用一个数据域存放不同类型的对象; 1 2。 (分数:2.00)36.定义枚举类型时,必须给出枚举值表,该值表包含若干个命名的整型常量,它定义了该类型的 1。 (分数:2.00)37.下面的语句定义了结构类型 stu,并说明了结构变量 person: struct stu int
19、num; char name20; person; 若要定义 stu的别名 PERSON,其正确的定义形式为: 1。 (分数:2.00)38.以下程序运行后的输出结果是 1。 #includestdio.h struct porb char*name; int count; x=“li ning“, 19, “lang ping“, 21, “zhu jian hua“, 20; int main() int j; for(j=0; j3; j+) printf(“%s:%d/n“, xj.name, xj.count); return 0; (分数:2.00)39.以下程序运行后的输出结果是
20、 1。 #includestdio.h int main() struct time int h; int m; int s; ; struct time*p, audit=8, 30, 0; p= printf(“/naudition time is %2d:%2d:%2d“, p-h, p-m, p-s); return 0; (分数:2.00)40.以下程序运行后的输出结果是 1。 #includestdio.h typedef struct int no; double score; REC; void fun(REC x) x.no=20; x.score=92.5; int mai
21、n() REC a=10, 80.0; fun(a); printf(“%d, %lf/n“, a.no, a.score); return 0; (分数:2.00)41.文件操作步骤通常是:打开、操作和 1。 (分数:2.00)42.按指定格式输出数据到文件中的函数是 1,按指定格式从文件输入数据的函数是 2,判断文件指针到文件末尾的函数是 3。 (分数:2.00)43.输出一个数据块到文件中的函数是 1,从文件中输入一个数据块的函数是 2;输出一个字符串到文件中的函数是 3,从文件中输入一个字符串的函数是 4。 (分数:2.00)44.将文件指针移到文件当前位置前 40个字节的 C语言语句
22、是 1,将文件指针移到文件当前位置后 10个字节的 C语言语句是 2,将文件指针移到文件开始的函数是 3,将文件指针移到文件结束的函数是 4,得到当前文件指针的函数是 5。 (分数:2.00)45.在 C程序中,数据可用 1 和 2 两种代码形式存放。 (分数:2.00)46.以下程序的功能是将文件 stud_data中第 i个学生的姓名、学号、年龄、性别输出,请把程序补充完整。 #includestdio.h struct student_type char name10; int num; int age; char sex; stud10; int main() int i; FILE
23、1; if(fp1=fopen(“stud_data“, “rb“)=NULL) printf(“error!/n“); exit(0); scanf(“%d“, fseek( 2); fread( 3, sizeof(struct student_type), 1, fp1); printf(“%s%d%d%c/n“, studi.name, studi.num, studi.age, studi.sex); fclose(fp1); return 0; (分数:2.00)47.以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件中形成文本文件,并将字符的个数写到
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 福建省 二级 语言 答案 解析 DOC
