【计算机类职业资格】二级C语言-117及答案解析.doc
《【计算机类职业资格】二级C语言-117及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-117及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-117 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.数据流程图(DFD)是_。(分数:1.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具2.软件(程序)调试的任务是_。(分数:1.00)A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质3.以下选项中正确的实型常量是_。(分数:1.00)A.0B.3.1415C.0.329102D.8714.在学生管理的关系数据库中,存取一个学生信息的数据单位是_。(
2、分数:1.00)A.文件B.数据库C.字段D.记录5.若有定义:int x,*pb;则正确的赋值表达式是_。(分数:1.00)A.pb= scanf(“%c%c“, c=getchar(); d=getchar(); printf“%c%c%c%c/n“, a, b, c, d; 当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:回车也是一个字符) 12CR 34CR 则输出结果是_。(分数:1.00)A.1234B.12C.123D.123416.有以下程序: #includestdio.h int f(int t, int n); main() int a4=1, 2
3、, 3, 4, s; s=f(a, 4); printf(“%d/n“, s); int f(int t, int n) if(n0) return tn-1+f(t, n-1); else return 0; 程序运行后的输出结果是_。(分数:1.00)A.4B.10C.14D.617.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;18.若 a 是数值类型,则逻辑表达式(a=1)|(a!=1)的值是_。(分数:1.00)A.1B.0C.2D
4、.不知道 a 的值,不能确定19.有如下嵌套的 if 语句: if(ab) if(ac) k=a; else k=c; else if(bc) k=b; else k=c; 以下选项中与上述 if 语句等价的语句是_。(分数:1.00)A.k=(ab)? a:b;k=(bc)?b:c;B.k=(ab)?(bc)?a:b):(bc)?b:c);C.k=(ab)?(ac)?a:c):(bc)?b:c);D.k=(ab)?a:b; k=(ac)?a:c;20.有以下程序: #includestdio.h main() int i, j, m=1; for(i=1; i3; i+) for(j=3;
5、j0; j-) if(i*j3) break; m*=i+j; printf(“m=%d/n“, m); 程序运行后的输出结果是_。(分数:1.00)A.m=6B.m=2C.m=4D.m=321.有以下程序: #includestdio.h main() int a=1, b=2; for(; a8; a+)b+=a; a+=2; printf(“%d, %d/n“, a, b); 程序运行后的输出结果是_。(分数:1.00)A.9,18B.8,11C.7,11D.10,1422.有以下程序,其中 k 的初值为八进制数: #includestdio.h main() int k=011; pr
6、intf“%d/n“, k+; 程序运行后的输出结果是_。(分数:1.00)A.12B.11C.10D.923.若有定义:“double a=22; int i=0, k=18;”,则不符合 C 语言规定的赋值语句是_。(分数:1.00)A.a=a+, i+;B.i=(a+k)=(i+k);C.i=a%11;D.i=!a;24.下列语句组中,正确的是_。(分数:1.00)A.char*s; s=“Olympic“;B.char s7; s=“Olympic“;C.char*s; s=“Olympic“;D.char s7; s=“Olympic“;25.有以下程序: #includestdio
7、.h #define SUB(a)(a)-(a) main() int a=2, b=3, c=5, d; d=SUB(a+b)*c; printf(“%d/n“, d); 程序运行后的输出结果是_。(分数:1.00)A.0B.-12C.-20D.1026.有以下程序: #includestdio.h void fun(char*c, int d) *c=*c+1, d=d+1; printf(“%c, %c“, *c, d); main() char b=“a“, a=;A“; fun( printf(“%c, %c/n“, b, a); 程序运行后的输出结果是_。(分数:1.00)A.b,
8、B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B27.有以下程序: #includestdio.h main() FILE*fp; char str10; fp=fopen(“myfile, dat“, “ “); fputs(“abc“, ip); fclose(fp); fp=fopen(“myfile.dat“, “a*“); fprintf(fp, “%d“, 28); rewind(fp); fscanf(fp, “%s“, str); puts(str); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.abcB.28cC.abc28D.内类
9、型不一致而出错28.设有定义“double a10, *s=a;”,以下能够代表数组元素 a3的是_。(分数:1.00)A.(*s)3B.*(s+3)C.*s3D.*s+329.有以下程序: #includestdio.h main() int a5=1, 2, 3, 4, 5, b5=0, 2, 1, 3, 0, i, s=0; for(i=0; i5; i+) s=s+abi; printf(“%d/n“, s); 程序运行后的输出结果是_。(分数:1.00)A.6B.10C.11D.1530.有以下程序: #includestdio.h main() int b33=0, 1, 2, 0
10、, 1, 2, 0, 1, 2), i, j, t=1; for(i=0; i3; i+) for(j=1; j=i; j+)t+=bibji; printf(“%d/n“, t); 程序运行后的输出结果是_。(分数:1.00)A.1B.3C.4D.031.若有以下定义和语句: char s 10=“abcd!“, *s2=“/n123/“; printf(“%d %d/n“, strlen(s1), strlen(s2); 则输出结果是_。(分数:1.00)A.5 5B.10 5C.10 7D.5 832.有以下程序: #includestdio.h #define N 8 void fun
11、(int*x, int i) *x=*(x+i); main() int aN=1, 2, 3, 4, 5, 6, 7, 8, i; fun(a, 2); for(i=0; iN/2; i+) printf(“%d“, ai); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1313B.2234C.3234D.123433.以下 C 语言用户标识符中,不合法的是_。(分数:1.00)A._1B.AaBcC.a_bD.a-b34.有以下程序: #includestdio.h int fun() static int x=1; x*=2; return x; main
12、() int i, s=1; for(i=1; i=2; i+) s=fun(); printf%d/n“, s; 程序运行后的输出结果是_。(分数:1.00)A.0B.1C.4D.835.以下选项中与“if(a=1)a=b; else a+;”语句功能不同的 switch 语句是_。(分数:1.00)A.switch(a) case 1: a=b; break;default: a+;B.switch(a=1) case 0: a=b; break;case 1: a+;C.switch(a)default: a+; break;case 1: a=b;D.switch(a=1) case
13、1: a=b; break;case 0: a+;36.设有定义: struct complex int real, unreal; datal=1, 8, data2; 则以下赋值语句中错误的是_。(分数:1.00)A.data2=data1;B.data2=2, 6;C.data2.real=datal.real;D.data2.real=datal.unreal;37.有以下程序: #includestdio.h #includestring.h struct A int a; char b10; double c; ; void f(struct A t); main() struct
14、 A a=“1001, “ZhangDa“, 1098.0; f(a); printf(“%d, %s, %6.1f/n“, a.a, a.b, a.c); void f(struct A t) t.a=1002; strcpy(t.b, “ChangRong“); t.c=1202. 0; 程序运行后的输出结果是_。(分数:1.00)A.1001, ZhangDa, 1098.0B.1002, ChangRong, 1202.0C.1001, ChangRong, 1098. 0D.1002, ZhangDa, 1202. 038.有以下定义和语句: struct workers int n
15、um; char name20; char c; struct int day; int month; int year; s; ; struct workers w, *pw; pw= 能给 w 中 year 成员赋 1980 的语句是_。(分数:1.00)A.*pw.year=1980;B.w.year=1980;C.pw-year=1980D.w.s.year=1980;39.有以下程序: #includestdio.h main() int a=2, b=2, c=2; printf(“%d/n“, a/b 程序运行后的输出结果是_。(分数:1.00)A.0B.1C.2D.340.若有
16、定义“int(*pt)3;”,则下列说法正确的是_。(分数:1.00)A.定义了基类型为 int 的三个指针变量B.定义了基类型为 int 的具有三个元素的指针数组 ptC.定义了一个名为*pt、具有三个元素的整型数组D.定义了一个名为 pt 的指针变量,它可以指向每行有三个整数元素的二维数组二、程序填空题(总题数:1,分数:18.00)41.给定程序的功能是计算 score 中 m 个人的平均成绩 aver,将低于 aver 的成绩放在 below 中,通过函数名返回人数。 例如,当 score=10,20,30,40,50,60,70,80,90,m=9 时,函数返回的人数应该是4,bel
17、ow=10,20,30,40。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h #includestring.h int fun(int score, int m, int below) int i, j=0; float aver=0. 0; for(i=0; im; i+) aver+=scorei; aver/=(float)m; for(i=0; im; i+) if(scoreiaver) belowj+= 1; return j; void main() int i,
18、 n, below9; int score9=10, 20, 30, 40, 50, 60, 70, 80, 90; n=fun(score, 9, 2); printf(“/n Below the average score are:%d/n“, n); for(i=0; in; i+) printf(“%d“, 3); (分数:18.00)三、程序改错题(总题数:1,分数:24.00)42.下列给定程序中函数 fun()的功能是:用递归算法计算斐波拉契数列中第 n 项的值。从第 1 项起,斐波拉契数列为:1,1,2,3,5,8,13,21, 例如,若给 n 输入 7,则该项的斐波拉契数值为
19、 13。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h long fun(int g) /*found* switch(g); case 0: return 0; /*found* case 1: case 2: return 1; return(fun(g-1)+fun(g-2); void main() long fib; int n; printf(“Input n:“); scanf(“%d“, printf(“n=%d/n“, n); fib=fun(n); printf
20、(“fib=%d/n/n“, fib); (分数:24.00)_四、程序设计题(总题数:1,分数:18.00)43.某学生的记录由学号、8 门课程成绩和平均分组成,学号和 8 门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的 ave 成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为 78.875。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 fun()部位中填入你编写的若干语句。 试题程序: #includestdio.h #define N 8 typ
21、edef struet char nnm10; double sN; double ave; STREC; void fun(STREC*a) void main() STREC s=“GA005“, 85.5, 76, 69.5, 85, 91, 72, 64.5, 87.5; int i; fun( printf(“The%s“s student data:/n“, s.num); for(i=0; iN; i+) printf(“%4.1fkn“, s.si); printf(“/nknave=%7.3fkn“, s.ave); printf(“/n“); (分数:18.00)_二级 C
22、 语言-117 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.数据流程图(DFD)是_。(分数:1.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具 D.面向对象方法的需求分析工具解析:解析 数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。2.软件(程序)调试的任务是_。(分数:1.00)A.诊断和改正程序中的错误 B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质解析:解析 调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 117 答案 解析 DOC
