【计算机类职业资格】二级C语言程序设计-7及答案解析.doc
《【计算机类职业资格】二级C语言程序设计-7及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言程序设计-7及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言程序设计-7 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.构成 C 程序的三种基本结构是 A.顺序结构、转移结构、递归结构 B.顺序结构、嵌套结构、递归结构 C.顺序结构、选择结构、循环结构 D.选择结构、循环结构、嵌套结构(分数:2.00)A.B.C.D.2.C 语言编译程序的功能是 A.执行一个 C 语言编写的源程序 B.把 C 源程序翻译成 ASCII 码 C.把 C 源程序翻译成机器代码 D.把 C 源程序与系统提供的库函数组合成一个二进制执行文件(分数:2.00)A.B.C.D.3.下列形式中不合法的常量是
2、 A.2.E8 B.-.28 C.-028 D.2e-8(分数:2.00)A.B.C.D.4.以下不是 C 语言字符型或字符串常量的是 A.“Its“ B.“0“ C.a=0 D./010(分数:2.00)A.B.C.D.5.C 语言程序中,若函数无返回值,则应该对函数说明的类型是 A.int B.double C.char D.void(分数:2.00)A.B.C.D.6.若变量已正确定义并赋值,则错误的赋值语句是 A.a+=a+1; B.a=sizeof(double); C.a=dc; D.a+1=a;(分数:2.00)A.B.C.D.7.若有定义:int a=1,b=2,c=3;,则执
3、行表达式(a=b+c)(+b)后 a,b,c 的值依次为 A.1,2,3 B.5,3,2 C.5,2,3 D.5,3,3(分数:2.00)A.B.C.D.8.有以下程序#include stdio.hmain() int k=10;printf(“%4d, %o, %x/n“, k, k, k);程序的运行结果是(代表一个空格) A.10,12,a B.10,012,a C.010,12,a D.10,12,a(分数:2.00)A.B.C.D.9.设有:char s5, c;,则调用函数 scanf 能正确给 s 和 c 读入数据的是 A.scanf(“%s%c“, s, c); B.scan
4、f(“%d%c“, C.scanf(“%d%c“, s, D.scanf(“%s%c“, s, (分数:2.00)A.B.C.D.10.设 x,y,z 均为实型变量,代数式 (分数:2.00)A.B.C.D.11.有以下程序#includestdio.hmain() int i, j, k, a=5, b=6;i=(a=b)?+a: -b;j=a+; k=b; printf(“%d, %d, %d/n“, i, j, k);程序的运行结果是 A.7,6,5 B.5,5,5 C.7,5,5 D.5,6,5(分数:2.00)A.B.C.D.12.设变量 x 为 long int 型并已正确赋值,以
5、下表达式中能将 x 的百位上的数字提取出的是 A.x/10%100 B.x%10/100 C.x%100/10 D.x/100%10(分数:2.00)A.B.C.D.13.有以下程序#includestdio.hmain() int i, j, x=0;for(i=0; i2; i+) x+;for(j=0; j=3; j+)if(j%2=0) continue; x+; x+;printf(“x=%d/n“, x);程序的运行结果是 A.x=4 B.x=6 C.x=8 D.x=12(分数:2.00)A.B.C.D.14.有以下程序#includestdio.hmain() int sum=0
6、, x=5;dosum+=x; while(!-x);printf(“%d/n“, sum);程序的运行结果是 A.0 B.5 C.14 D.15(分数:2.00)A.B.C.D.15.有以下程序#includestdio.hmain() char ch=Z;ch=(ch-A+1)%26+A; putchar(ch);程序的运行结果是 A.Z B.Y C.B D.A(分数:2.00)A.B.C.D.16.以下函数的功能是:计算 a 的 n 次方作为函数值返回double fun(double a, int n) int i; double s=1.0;for(i=1; i=n; i+) s=_
7、;return 8;为实现上述功能,函数中下划线处应填入的是 A.s*i B.s*a C.s+i*i D.s+a*a(分数:2.00)A.B.C.D.17.在 C 语言程序中,下列说法正确的是 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和调用均不可以嵌套 D.函数的定义和调用均可以嵌套(分数:2.00)A.B.C.D.18.若主函数中有定义语句:int a10,b10,c;,在主函数前定义的 fun 函数首部为:void fun(int x),则以下选项中错误的调用语句是 A.fun(b); B.fun( char c, st
8、r=“teach“;for(k=0; strk; k+) c=strk;switch(k)case 1: case 3: case 5: putchar(c); printf(“%d“, +n); break;default: putchar(N);程序的运行结果是 A.Ne1NN B.e1a2e3 C.Ne1Nc2N D.Na1NNNN(分数:2.00)A.B.C.D.20.以下叙述中错误的是 A.同一个数组中所有元素的类型相同 B.不可以跳过前面的数组元素,给后面的元素赋初值 C.定义语句:int a10=0;,给 a 数组中所有元素赋初值 0 D.若有定义语句:int a4=1, 2,
9、3, 4, 5;,编译时将忽略多余的初值(分数:2.00)A.B.C.D.21.执行以下程序段后,s 的值为int a=1, 2, 3, 4, 5, 6, 7, 8, 9, s=0, k;for(k=0; k8; k+=2) s+=*(a+k); A.13 B.16 C.17 D.45(分数:2.00)A.B.C.D.22.有以下程序#includestdio.h#define N 4void fun(int aN, int b) int i; for(i=0; iN; i+) bi=aiN-1-i;main() int xNN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1
10、1, 12, 13, 14, 15, 16, yN, i;fan(x, y);for(i=0; iN; i+) printf(:%d,“, yi);printf(“/n“);程序的运行结果是 A.1,2,3,4, B.3,6,9,12, C.4,7,10,13, D.1,5,9,13,(分数:2.00)A.B.C.D.23.有以下程序#include stdio.h#includestring.hmain()char str=“Hello, Beijing“;printf(“%d, %d/n“, strlen(str), sizeof(str);程序的运行结果是 A.13,13 B.13,14
11、 C.13,15 D.14,15(分数:2.00)A.B.C.D.24.有以下程序#includestdio.hvoid fun(char(*p)6) int i;for(i=0; i4; i+) prinff(“%c“, pii);printf(“/n“); main() char s66=“ABCDE“, “abcde“, “12345“, “FGHIJ“, “fghij“, “54321“;fun(s);程序的运行结果是 A.A a 1 F B.A b 3 I C.A B C D D.f g h i j(分数:2.00)A.B.C.D.25.有以下程序#includestdio.hint
12、 fun(int n) if(n) return fun(n-1)+n;else return 0;main()printf(“%d/n“, fun(3); 程序的运行结果是 A.4 B.5 C.6 D.7(分数:2.00)A.B.C.D.26.有以下程序#includestdio.h#define M 5#define f(x, y) x*y+Mmain() int k;k=f(2, 3)*f(2, 3);printf(“%d/n“, k);程序的运行结果是 A.22 B.41 C.100 D.121(分数:2.00)A.B.C.D.27.有以下定义struet data int i; ch
13、ar c; double d; x;以下叙述中错误的是 A.x 的内存地址与 x.i 的内存地址相同 B.struct data 是一个类型名 C.初始化时,可以对 x 的所有成员同时赋初值 D.成员 i、c 和 d 占用的是同一个存储空间(分数:2.00)A.B.C.D.28.有以下程序#include stdio.h#includestring.htypedef struet char name9; char sex; float score2; STU;void f(STU *a) strcpy(a-name, “Zhao“);a-sex=m; a-score1=90.0;main()
14、STU c=“Qian“, f, 95.0, 92.0, *d=f(d); printf(“%s, %c, %2.0f, %2.0f/n“, d-name, c.sex, c.seore0, c.score1);程序的运行结果是 A.Qian,f,95,92 B.Zhao,f,95,90 C.Zhao,m,95,90 D.Zhao,f,95,92(分数:2.00)A.B.C.D.29.若有以下定义struet ttchar name10; char sex; aa=“aaaa“, F, *p=则错误的语句是 A.scanf(“%c“, aa.sex); B.aa.sex=getchar();
15、C.printf(“%c/n“, (*p).sex); D.printf(“%c/n“, p-sex);(分数:2.00)A.B.C.D.30.若有说明:typedef struet int a; char c; W;则以下叙述正确的是 A.编译后系统为 W 分配 5 个字节 B.编译后系统为 W 分配 6 个字节 C.编译后系统为 W 分配 8 个字节 D.编译后系统不为 W 分配存储空间(分数:2.00)A.B.C.D.二、B程序填空题/B(总题数:2,分数:20.00)31.程序通过定义学生结构体变量,存储了学生的学号、姓名和 3 门课的成绩。所有学生数据均以二进制方式输出到文件中。函数
16、 fun 的功能是重写形参 filename 所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构! 源程序如下: #includestdio.h #define N 5 typedef struct student long sno; char name10; float score3; STU; void fun(char*filename, STU n) FILE*fp; /*found*
17、/ fp=fopen(_, “rb+“); /*found*/ fseek(fp, -1L*sizeof(STU), _); /*found*/ fwrite(_,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, 10005, “ZhangSan“, 95, 80, 88; STU n=10006, “ZhaoSi“, 5
18、5, 70, 68, ssN; int i,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( “ /nThe original data : /n/n“ ); for (j=0; jN; j+) printf( “/nNo: % ld Name: %
19、 -8s Scores: “, ssj. sno, ssj, name); for (i=O; i3; i+)printf(“%6.2f“ ,ssj. scorei ); printf( “/n“ ); fun( “student, dat“ , n); printf( “/nThe data after modifing : /n/n“ ); fp = fopen( “student, dat“, “ rb“ ); fread ( ss, sizeof( STU ), N, fp ); fclose ( fp ); for (j=0; jN; j+) printf( “/nNo: % ld
20、Name: %-8s Scores: “, ssj. sno, ssj, name); for (i=0; i3; i+) printf(“%6.2f“ , ssj. scorei ); printf( “/n“ ); (分数:10.00)填空项 1:_32.给定程序中,函数 fun 的功能是:找出 100999 之间(含 100 和 999)所有整数中各位上数字之和为x(x 为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当 x 值为 5 时,100999 之间各位上数字之和为 5 的整数有:104、113、122、131、140、203、212、221、230、30
21、2、311、320、401、410、500。共有 15 个。当 x 值为 27 时,各位数字之和为 27 的整数是:999。只有 1 个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构! 源程序如下: #includestdio.h fun(int x) int n, s1, s2, s3, t; n=0; t=100; /*found*/ while(t=_) /*found*/ s1=t%10; s2=(_)%10; s3=t/100; /*found*/ if(s1+s
22、2+s3=_) printf(“%d“, t); n+; t+; return n; main() int x=-1; while(x0) printf(“Please input(x0): “); scanf(“%d“, printf(“/nThe result is: %d/n“, fun(x); (分数:10.00)填空项 1:_三、B程序修改题/B(总题数:2,分数:20.00)33.给定程序 MODI1.C 中函数 fun 的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数 30800,则数字值
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言程序设计 答案 解析 DOC
