【计算机类职业资格】二级C语言-12-1及答案解析.doc
《【计算机类职业资格】二级C语言-12-1及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-12-1及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-12-1 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:1.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系2.下列选项中不是 C 语句的是_。(分数:1.00)A.int i; i+; printf(“%d/n“, i); B.;C.a=5, c=10D.;3.设有定义语句:char a=“/72“;,则变量 a_。(分数:1.00)A.包含 1 个字符B.
2、包含 2 个字符C.包含 3 个字符D.定义不合法4.设 x、y 和 z 是 int 型变量,且 x=4,y=6,z=8,则下列表达式中值为 0 的是_。(分数:1.00)A.xC.a=58, b=58D.-1;7.对如下二叉树进行后序遍历的结果为_。 (分数:1.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指_。(分数:1.00)A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程9.以下叙述中正确的是_。(分数:1.00)A.a 是实型变量,C 允许进行赋值 a=1
3、0,但不可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a 中的值为 5,b 中的值为 310.下列描述错误的是_。(分数:1.00)A.继承分为多重继承和单重继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.面向对象的设计方法与传统的面向过程的
4、方法有本质不同,它的基本原理是_。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念12.下列合法的声明语句是_。(分数:1.00)A.int _abc=50;B.double int=3+5e2.5;C.long do=1L;D.float 3_asd=3e-3;13.关于结构化程序设计原则和方法的描述错误的是_。(分数:1.00)A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用 GOTO 语句D
5、.语言中若没有控制结构,应该采用前后一致的方法来模拟14.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为_。 ch=“b“; k=10; printf(“%x, %o, “, ch, ch, k); printf(“k=%d/n“, k);(分数:1.00)A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为 0 值或不定值C.62, 142, k=%dD.62, 142, k=%1015.有下列程序: fun(int x, int y)return(x+y); main()
6、int a=1, b=2, c=3, sum; sum=fun(a+, b+, a+b), c+); printf(“%d/n“, sum); 执行后的输出结果是_。(分数:1.00)A.6B.7C.8D.916.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是_。(分数:1.00)A.3.500000B.3C.2.000000D.3.00000017.有下列程序: int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(“%d“, x=fun(x); printf(
7、“%d/n“, x); 执行程序时,给变量 x 输入 10,程序的输出结果是_。(分数:1.00)A.55B.54C.65D.4518.下列程序的输出结果是_。 main() int i=1, j=2, k=3; if(i+=1 (分数:1.00)A.1 2 3B.2 3 4C.2 2 3D.2 3 319.下列程序的输出结果是_。 #includestdio.h main() int a=0, i; for(i=1; i5; i+) switch(i) case 0: case 3: a+=1; case 1: case 2: a+=2; default: a+=3; printf(“%d“
8、, i); (分数:1.00)A.19B.1C.6D.820.有以下程序: main() int x, i; for(i=1; i=50; i+) x=i; if(x%2=0) if(x%3=0) if(x%7=0) printf(“%d, i)“; 输出结果是_。(分数:1.00)A.28B.27C.42D.4121.设 x=011050,则 x=x while(-k) printf(“%d“, k=1); printf(“n“); 执行后的输出结果是_。(分数:1.00)A.1B.2C.4D.死循环23.若有定义:“int a23;”,则对 a 数组的第 i 行第 j 列元素的正确引用为_
9、。(分数:1.00)A.*(*(a+i)+j)B.(a+i)jC.*(a+i+j)D.*(a+i)+j24.下列能正确进行字符串赋值的是_。(分数:1.00)A.char s5=“ABCDE“;B.char s5=“A“, “B“, “C“, “D“, “E“;C.char*s; s=“ABCDE“;D.char*s; printf(“%s“, s);25.在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用(双引号)括起时,寻找被包含文件的方式是_。(分数:1.00)A.直接按系统设定的标准方式搜索目录B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索C.
10、仅仅搜索源程序所在目录D.仅仅搜索当前目录26.有下列程序: main() int i, j, x=0; for(i=0, i2; i+) x+; for(j=0; j=3; j+) if(j%2)continue; x+; x+; printf(“x=%d/n“, x); 程序执行后的输出结果是_。(分数:1.00)A.x=4B.x=8C.x=6D.x=1227.有下列程序: int fun1(double a)return a*=a; int fun2(double x, double y) double a=0,b=0; a=funl(x); b=fun1(y); return(int)
11、(a+b); main() double w; w=fun2(1.1, 2.0), 程序执行后变量 w 中的值是_。(分数:1.00)A.5.21B.5C.5.0D.0.028.有下列程序: main() int i, s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i9; i+=2)s+=*(t+i); printf(“%d/n“, s); 程序执行后的输出结果是_。(分数:1.00)A.45B.20C.25D.3629.有如下程序: main() int x=1, a=0, b=0; switch(x) case 0: b+; case 1: a+;
12、case 2: a+; b+; printf(“a=%d, b=%d/n“, a, b); 该程序的输出结果是_。(分数:1.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=230.有下列程序: int fun(int x, int n) static int sum=0, i; for(i=0; in; i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是_。(分数:1
13、.00)A.45B.50C.60D.5531.有下列程序: main() char*p=“3697“, “2584“; int i, j; long num=0; for(i=0; i2; i+) j=0; while(pij!=“/0“) if(pij-“/0“)%2)num=10*num+pjj-“0“; j+=2“ printf(“%d/n“, num); 程序执行后的输出结果是_。(分数:1.00)A.35B.37C.39D.397532.以下程序的输出结果是_。 main() char st20=“hello/0/t/“; printf(“%d%d/n“, strlen(st), s
14、izeof(st); (分数:1.00)A.9 9B.5 20C.13 20D.20 2033.若有以下的定义:“int t32;”,能正确表示 t 数组元素地址的表达式是_。(分数:1.00)A. for(i=1; i=10; i+) if(i*i=20) printf(“%d/n“, i*i); (分数:1.00)A.49B.36C.25D.6436.若有定义“int b8, *p=b;”,则 p+6 表示_。(分数:1.00)A.数组元素 b6的值B.数组元素 b6的地址C.数组元素 b7的地址D.数组元素 b0的值加上 637.设变量已正确定义,则以下能正确计算 f=n!的程序是_。(
15、分数:1.00)A.f=0;for(i=1; i=n; i+) f*=i;B.f=1;for(i=1; in; i+)f*=i;C.f=1;for(i=n; i1; i+)f*=i;D.f=1;for(i=n; i=2; i-)f*=i;38.下述程序执行的输出结果是_。 #includestdio.h main() char a24; strcpy(a, “are“); strcpy(a1, “you“); a03=“ printf(“%s/n“, a); (分数:1.00)A.are for(i=1; i3; i+) for(j=0; j=i; j+)s+=aij; printf(“%d/
16、n“, s); (分数:1.00)A.18B.19C.20D.2140.现有以下结构体说明和定义变量,如图所示,指针 p、q、r 分别指定一个链表中连续的 3 个结点。 (分数:1.00)A.q-next=r-next; p-next=r; r-next=q;B.q-next=r; q-next=r-next; r-next=q;C.q-next=r-next; r-next=q; p-next=r;D.q-next=q; p-next=r; q-next=r-next;二、程序填空题(总题数:1,分数:18.00)41.请补充函数 proc(),函数 proc()的功能是求 7 的阶乘。 注
17、意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h long proc(int n) if( 1) return(n*proc( 2); else if( 3) return 1; void main() int k=7; printf(“%d!=%ld/n“, k, proc(k); (分数:18.00)三、程序改错题(总题数:1,分数:24.00)42.下列给定的程序中,函数 proc()的功能是:用选择法对数组中的 m 个元素按从小到大的顺序进行排序。例如,排
18、序前的数据为:11 32 -5 2 14 则排序后的数据为:-5 2 11 14 32 请修改程序中的错误,使它能得到正确结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h #define M 20 void proc(int a, int n) int i, j, t, p; /*found* for(j=0; jn-1; j+); p=j; for(i=j; in; i+) if(aiap) p=i; t=ap; ap=aj; /*found* ap=t; void main() int arrM=11, 32, -
19、5, 2, 14, i, m=5; printf(“排序前的数据:“); for(i=0; im; i+) printf(“%d“, arri); printf(“/n“); proc(arr, m); printf(“排序后的顺序:“); for(i=0; im; i+) printf(“%d“, arri); printf(“/n“); (分数:24.00)_四、程序设计题(总题数:1,分数:18.00)43.请编写函数 proc(),该函数的功能是:将放在字符串数组中的 M 个字符串(每串的长度不超过 N),按顺序合并组成一个新的字符串。 例如,若字符串数组中的 M 个字符串为: ABC
20、D BCDEFG CDEFGHI 则合并后的字符串内容应该是 ABCDBCDEFGCDEFGHI。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includeconio.h #define M 3 #define N 20 void proc(char arrMN, char*b) void main() char strMN=“ABCD“, “BCDEFG“, “CDEFGHI“, i; char arr100=“#“; printf(“The string
21、: /n“); for(i=0; iM; i+) puts(stri); printf(“/n“); proc(str,arr); printf(“The A string: /n“); printf(“%s“, arr); printf(“/n/n“); (分数:18.00)_二级 C 语言-12-1 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:1.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和
22、DBMS D.没有任何关系解析:解析 数据库系统由如下 5 个部分组成:数据库(DB)、数据库管理系统(DBMS)、数据库管理员(人员)、系统平台之一硬件平台(硬件)、系统平台之二软件平台(软件)。其中 DB(DataBase)即数据库,是统一管理的相关数据的集合;DBMS 即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问 DB 的方法。由以上可知,选项 C 为正确答案。2.下列选项中不是 C 语句的是_。(分数:1.00)A.int i; i+; printf(“%d/n“, i); B.;C.a=5, c=10 D.;解析:解析 C 项缺少分号。因为
23、赋值语句两个标志:赋值(就是“=”)和语句(加上“;”)。3.设有定义语句:char a=“/72“;,则变量 a_。(分数:1.00)A.包含 1 个字符 B.包含 2 个字符C.包含 3 个字符D.定义不合法解析:解析 “是转义字符,但是“/72“表示 ASCII 码里的一个字符。4.设 x、y 和 z 是 int 型变量,且 x=4,y=6,z=8,则下列表达式中值为 0 的是_。(分数:1.00)A.xC.a=58, b=58D.-1; 解析:解析 赋值语句的两个标志:赋值(就是“=”)和语句(加上“;”)。选项 A,缺少分号,应该改为 a=b=58;选项 B,错误,类型转换不是这么写
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 121 答案 解析 DOC
