【计算机类职业资格】二级C语言笔试-365及答案解析.doc

上传人:roleaisle130 文档编号:1326171 上传时间:2019-10-17 格式:DOC 页数:38 大小:123KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-365及答案解析.doc_第1页
第1页 / 共38页
【计算机类职业资格】二级C语言笔试-365及答案解析.doc_第2页
第2页 / 共38页
【计算机类职业资格】二级C语言笔试-365及答案解析.doc_第3页
第3页 / 共38页
【计算机类职业资格】二级C语言笔试-365及答案解析.doc_第4页
第4页 / 共38页
【计算机类职业资格】二级C语言笔试-365及答案解析.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、二级 C 语言笔试-365 及答案解析(总分:103.00,做题时间:90 分钟)一、选择题(总题数:50,分数:68.00)1.以下选项中,能定义 s 为合法的结构体变量的是A) typedef struct ABCdouble a; char b10; s; B) structdouble a; char b10; s; C) struct ABCdouble a; char b10; ABC s; D) typedef ABCdouble a; char b10; ABC s;(分数:2.00)A.B.C.D.2.对两个数组 a 和 b 进行下列初始化:char m=“1234567“;

2、char n=1,2,3,4,5,6,7; 则下列叙述正确的是( )。A) 数组 m 与数组 n 完全相同 B) 数组 m 与数组 n 长度相同C) 数组 m 比数组 n 长 1 D) 数组 m 与数组 n 中都存放字符串(分数:1.00)A.B.C.D.3.有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向此链表中的三个连续节点。struct nodeint data;struct node*next;*P,*q,*r;现要将 q 所指节点从链表中删除,同时要保持链表的连续,(分数:2.00)A.B.C.D.4.有以下程序:main()int a=0,b=0;a=10; /*给

3、 a 赋值b=20; /*给 b 赋值*/printf(“a+b=%d/n”,a+b);/*输出计算结果*/程序运行后的输出结果是( )。A) a+b=10 B) a+b=30 C) 30 D) 出错(分数:1.00)A.B.C.D.5.下列对于软件测试的描述中正确的是_。A) 软件测试的目的是证明程序是否正确B) 软件测试的目的是使程序运行结果正确C) 软件测试的目的是尽可能地多发现程序中的错误D) 软件测试的目的是使程序符合结构化原则(分数:2.00)A.B.C.D.6.在 16 位编译系统上,若有定义 int a=10,20,30,*p=while(iN)scanf(“%d“, _);在

4、下划线处应填入的是A) x+i B) scanf(“%c,%c,%d,%d“,printf(%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入 6,5,65,66回车。则输出结果是( )。A) 6,5,A,B B) 6,5,65,66 C) 6,5,6,5 D) 6,5,6,6(分数:1.00)A.B.C.D.9.以下 4 个程序中,完全正确的是( )。A) #include stdio.hmain(); /*programming*/printf(“programming!/n“); B) #include stdio.hmain() /*/programming/*/pr

5、intf(“programming!/n“); C) #include stdio.hmain() /*/*programming*/*/printf(“programming!/n“); D) include stdio.hmain() /*programming*/printf(“programming!/n“);(分数:1.00)A.B.C.D.10.有以下程序main()char s=“/n123/“;printf(“%d,%d/n“,strlen(s),sizeof(s);执行后输出结果是A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6(分数:1.00)A.B.C.

6、D.11.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。A) 2 B) 3 C) 4 D) 5(分数:2.00)A.B.C.D.12.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 ( )A) 地址传递 B) 单向值传递C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定(分数:1.00)A.B.C.D.13.下列叙述中,错误的是。A) 数据的存储结构与数据处理的效率密切相关B) 数据的存储结构与数据处理的效率无关C) 数据的存储结构在计算机中所占的空间不一定是连续的D) 一种数据

7、的逻辑结构可以有多种存储结构(分数:1.00)A.B.C.D.14.下面程序的功能是输出以下形式的金字塔图案:*#include stdio.hmain()int i,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+) printf(“ “);for(j=1;j=_;j+) printf(“*“);printf(“/n“);在下划线处应填入的是( )。A) i B) 2*i-1 C) 2*i+1 D) i+2(分数:1.00)A.B.C.D.15.属于 C 语言中合法的常量是_。A) 1.52e B) 100 C) x D) “xt“y(分数:1.00)A.B.C.D.16.

8、有定义语句:iht b;char c10;,则正确的输入语句是A) scanf(“%d%s“,printf(“%d“,j-40);A) i=1;i4;+i B) i=1;i3;+i C) i=4;i2;i- D) i=2;i4;+i(分数:1.00)A.B.C.D.18.下列程序的输出结果是( )。main()int a=1,b=2;printf(“%d,%d/n“,-a,+b);A) 1,2 B) 1,3 C) 0,2 D) 0,3(分数:1.00)A.B.C.D.19.下列叙述中正确的是( )。A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库技术的根本目标是要解决数据的共

9、享问题C) 数据库管理系统就是数据库系统D) 以上三种说法都不对(分数:1.00)A.B.C.D.20.下面程序的运行结果是( )。#include“stdio.h“main()int i;for(i=1;i=5;i+)if(i%2)printf(“*“);elseprintf(“#“);A) *#*#* B) #*#*#* C) *#*# D) #*#*(分数:2.00)A.B.C.D.21.有以下程序:#includestdio.hvoid fun (int *a, int n)/ *fun 函数的功能是将 a 所指数组元素从大到小排序*/int t, i, j;for(i=0; in-1

10、; i+)for(j=i+1; jn; j+)if(aiaj) t=ai; ai=aj; aj=t;main()int c10=(1, 2, 3, 4, 5, 6, 7, 8, 9, 0),i;fun(c+4, 6);fori=0; i10; i+) printf(“%d, “, ci);printf(“/n“);程序的运行结果是( )。A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, B) 0, 9, 8, 7, 6, 5, 1, 2, 3, 4, C) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, D) 1, 2, 3, 4, 9, 8, 7, 6, 5, 0

11、,(分数:2.00)A.B.C.D.22.以下程序的输出结果是main()int a=0,i;for(i=1;i5 i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(“%d/n“,A) ;A) 31 B) 13 C) 10 D) 20(分数:1.00)A.B.C.D.23.以下变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子 x/(y*2)的 C 语言表达式是_。A) x/y*2 B) x*(1/(y*z) C) x/y*1/z D) x/y/z(分数:1.00)A.B.C.D

12、.24.有定义语句:int *P4; ,以下选项中与此语句等价的是 A) int p4; B) int *P; C) int *(P4); D) int(*P)4;(分数:2.00)A.B.C.D.25.数据库的故障恢复一般是由 ( )A) 数据流图完成的 B) 数据字典完成的 C) DBA 完成的 D) PAD 图完成的(分数:1.00)A.B.C.D.26.有以下程序: #includestdio.h main() int x; scanf (“%d“,t=c00;c00=c10;c10=t;void swap2 (int *c0,int *c1)int t;t-*c0;*c0=*c1;*

13、c1=t;main()int a2=3,5, b2=3,5swapl(a,a+1);swap2(printf(“%d %d %d %d/n“,a0,a1,b0,b1);程序运行后的输出结果是A) 3 5 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 5 3 5 3(分数:1.00)A.B.C.D.33.有以下程序:main()char str10=“China“,“Beijing“),*P=str;printf(“%s/n“,p+10);程序运行后的输出结果是 _。A) China B) Beijing C) ng D) ing(分数:2.00)A.B.C.D.34.下面的 for

14、 语句:for(int x=0, y=10; (y0)(x4); x+, y-) ; 则下面叙述中正确的是( )。A) 是无限循环 B) 循环次数不定C) 循环执行 4 次 D) 循环执行三次(分数:1.00)A.B.C.D.35.请读程序:#includestdio.h#includestring.hmain()char*s1=“AbCdEf“,*s2=“aB“;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。A) 正数 B) 负数 C) 零 D) 不确定的值(分数:1.00)A.B.C.D.36.如果进栈序列为 A,B,C,D,则可能的出栈序

15、列是( )。 A) C,A,D,B B) B,D,C,A C) C,D,A,B D) 任意顺序(分数:2.00)A.B.C.D.37.数据库系统的核心是( )。A) 数据模型 B) 数据库管理系统C) 数据库 D) 数据库管理员(分数:2.00)A.B.C.D.38.以下不合法的数值常量是( )。A) 011 B) lel C) 8.0E0.5 D) 0xabcd(分数:1.00)A.B.C.D.39.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为_。(假设根结点在第 1 层)A) 3 B) 4 C) 6 D) 7(分数:2.00)A.B.C.D.40.以下关于字符串的

16、叙述中正确的是A) C 语言中有字符串类型的常量和变量B) 两个字符串中的字符个数相同时才能进行字符串大小的比较C) 可以用关系运算符对字符串的大小进行比较D) 空串一定比空格打头的字符串小(分数:1.00)A.B.C.D.41.有以下程序:#include stdio.hmain()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d %d /n“,*p,*q);程序运行后的输出结果是( )。A) 运行后报错 B) 66 C) 611 D) 510(分数:1.00)A.B.C.D.42.有三个关系 R、S 和

17、 T 如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系 R 和 S 通过运算得到关系 T,则所使用的运算为A) 并 B) 自然连接 C) 笛卡尔积 D) 交(分数:2.00)A.B.C.D.43.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是 ( )。abs(int x)if(x=0)return x:else return -x;main()int y,z,(*p)(int x)=abs;scanf(“ d“ , float s;seanf(“%d“,s=*r*r;printf(

18、“s=%f/n“,s);出错的原因是( )。A) 注释语句书写位置错误B) 存放圆半径的变量 r 不应该定义为整型C) 输出语句中格式描述符非法D) 计算圆面积的赋值语句中使用了非法变量(分数:2.00)A.B.C.D.49.下列选项可以正确表示字符型常量的是A) /r B) “a“ C) “/897“ D) 296(分数:1.00)A.B.C.D.50.下列不是合法的 C 语言语句是( )。A) a=5 B) int i;i+;C) ; D) ;(分数:2.00)A.B.C.D.二、填空题(总题数:19,分数:35.00)51.下列程序的输出结果是_。#includestdio.hint t

19、(int x,int y,int cp,int dp)cp=x*x+y*y;dp=x*x-y*y;main()int a=1,b=8,c=7,d=9;t(a,b,c,d);printf(“%d %d/n“,c,d);(分数:2.00)填空项 1:_52.数据字典是各类数据描述的集合,它通常包括 5 个部分,即数据项、数据结构、数据流、 1 和处理过程。(分数:1.00)填空项 1:_53.以下程序运行后的输出结果是_。#include stdio.hmsin()int i,n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1*2+1;printf(“%d“,ni);(分数:2.

20、00)填空项 1:_54.在算法的 4 个特征中,算法必须能在执行有限个步骤之后终止,指的是算法的 1 性。(分数:2.00)填空项 1:_55.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main()int t=0,s=0,i;for(i=1;i=5;i+)t=i+_;s=s+t;printf(“s=%d/n“,s);(分数:2.00)填空项 1:_56.软件结构是以 1 为基础而组成的一种控制层次结构。(分数:1.00)填空项 1:_57.#define 命令出现在程序中函数的外面,宏名的有效范围为 1。(分数:2.00)填空项 1:_58.软件设计模块化的目

21、的是 1。(分数:2.00)填空项 1:_59.数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像和 1。(分数:2.00)填空项 1:_60.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_61.有以下定义和语句,则 sizeof(a)的值是_,而 sizeof(a.share)的值是_。struct dateint day;int mouth;int year;unionint share1;float share2;share;a;(分数

22、:4.00)填空项 1:_62.在 scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是跳过对应的输入数据;当输入以下数据时,100 200 300 400 500回车,下面语句的执行结果为_。main()int a,b,C;scanf(“%d%*d%d%d“,b5=0;printf(“%s/n“,b);(分数:1.00)填空项 1:_二级 C 语言笔试-365 答案解析(总分:103.00,做题时间:90 分钟)一、选择题(总题数:50,分数:68.00)1.以下选项中,能定义 s 为合法的结构体变量的是A) typedef struct ABCdouble a;

23、char b10; s; B) structdouble a; char b10; s; C) struct ABCdouble a; char b10; ABC s; D) typedef ABCdouble a; char b10; ABC s;(分数:2.00)A.B. C.D.解析:解析 本题的考查点是结构体变量的定义。定义一个结构体类型的变量,可采用 3 种方法:先定义结构体类型再定义变量;在定义类型的同时定义变量;直接定义结构体类型变量,即不出现结构体名。选项 B)符合第 3 种定义方法。2.对两个数组 a 和 b 进行下列初始化:char m=“1234567“;char n=1

24、,2,3,4,5,6,7; 则下列叙述正确的是( )。A) 数组 m 与数组 n 完全相同 B) 数组 m 与数组 n 长度相同C) 数组 m 比数组 n 长 1 D) 数组 m 与数组 n 中都存放字符串(分数:1.00)A.B.C. D.解析:解析 在 m 数组中赋值的是字符串,其长度为 7,末尾有结束符“/0”,故字节数为 8,而 n 数组中赋的是字符,其长度为 7,故 C 选项正确。3.有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向此链表中的三个连续节点。struct nodeint data;struct node*next;*P,*q,*r;现要将 q 所指节点从

25、链表中删除,同时要保持链表的连续,(分数:2.00)A.B.C.D. 解析:解析 本题的考点是链表的指针操作。要想将 q 所指节点从链表中删除,同时要保持链表的连续,从图上看,应该将 p-next=r,由于 q-next、p-next-next 都指向 r,因此 p-next=q-next、p-next=p-next-next 同样可以实现指定的操作。因此选项 A、B、C 都能完成指定操作。而选项 D“p=q-next”只是将指针 p 指向了 r,不能完成指定的操作。因此正确选项是 D。4.有以下程序:main()int a=0,b=0;a=10; /*给 a 赋值b=20; /*给 b 赋值

26、*/printf(“a+b=%d/n”,a+b);/*输出计算结果*/程序运行后的输出结果是( )。A) a+b=10 B) a+b=30 C) 30 D) 出错(分数:1.00)A. B.C.D.解析:解析 本题是一道陷阱题,主要考查的是注释的格式。在 C 程序中,使用/*/表示注释,注释只是给人看的,对编泽和运行不起作用。在本题程序中,从第 3 行右边的/*开始到第 4 行末尾的*/结束都属于注释部分,故 b=20;语句不起作用。所以程序运行后的输出结果是 a+b=10,应该选择 A)。5.下列对于软件测试的描述中正确的是_。A) 软件测试的目的是证明程序是否正确B) 软件测试的目的是使程

27、序运行结果正确C) 软件测试的目的是尽可能地多发现程序中的错误D) 软件测试的目的是使程序符合结构化原则(分数:2.00)A.B.C. D.解析:解析 软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误,软件测试是一个发现错误而执行程序的过程。软件调试的目的是发现错误的位置,并改正错误。6.在 16 位编译系统上,若有定义 int a=10,20,30,*p=while(iN)scanf(“%d“, _);在下划线处应填入的是A) x+i B) scanf(“%c,%c,%d,%d“,printf(%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入 6,

28、5,65,66回车。则输出结果是( )。A) 6,5,A,B B) 6,5,65,66 C) 6,5,6,5 D) 6,5,6,6(分数:1.00)A. B.C.D.解析:解析 主函数中首先定义了 4 个字符变量 a、b、c、d,然后通过 scanf()函数输入a、b、c、d。a 和 b 是按字符格式输入,c 和 d 是按带符号整型格式输入,并要求 a、b、c、d 都按字符输出。故 a 和 b 原样输出为 6、5,c 和 d 将把 ASCII 码值分别为 65 和 66 的字符输出,A 的 ASCII 码值为65,B 的 ASCII 码值为 66,故最后的输出为 6,5,A,B。所以,4 个选

29、项中选项 A 符合题意。9.以下 4 个程序中,完全正确的是( )。A) #include stdio.hmain(); /*programming*/printf(“programming!/n“); B) #include stdio.hmain() /*/programming/*/printf(“programming!/n“); C) #include stdio.hmain() /*/*programming*/*/printf(“programming!/n“); D) include stdio.hmain() /*programming*/printf(“programmin

30、g!/n“);(分数:1.00)A.B. C.D.解析:解析 选项 A)main(); 的分号是错误的,不能有分号;选项 C)的注释语句多了两个*/号;选项 D)include 前面没有#。10.有以下程序main()char s=“/n123/“;printf(“%d,%d/n“,strlen(s),sizeof(s);执行后输出结果是A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6(分数:1.00)A.B.C. D.解析:解析 本题在定义字符数组时没有定义数组长度,但是给数组赋了初值,这时初值的个数即为数组的长度,故数组长度为 6(包括/0)。字符串的长度为有效字符的个数

31、 5。因此 printf 语句中输出的结果为 5,6。11.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。A) 2 B) 3 C) 4 D) 5(分数:2.00)A.B.C. D.解析:解析 二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与 11 比较的关键码为 15,8,10,12 四个。12.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 ( )A) 地址传递 B) 单向值传递C) 由实参传给形参,再由形参

32、传回实参 D) 传递方式由用户指定(分数:1.00)A.B. C.D.解析:13.下列叙述中,错误的是。A) 数据的存储结构与数据处理的效率密切相关B) 数据的存储结构与数据处理的效率无关C) 数据的存储结构在计算机中所占的空间不一定是连续的D) 一种数据的逻辑结构可以有多种存储结构(分数:1.00)A.B. C.D.解析:14.下面程序的功能是输出以下形式的金字塔图案:*#include stdio.hmain()int i,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+) printf(“ “);for(j=1;j=_;j+) printf(“*“);printf(“/

33、n“);在下划线处应填入的是( )。A) i B) 2*i-1 C) 2*i+1 D) i+2(分数:1.00)A.B. C.D.解析:解析 本题是找出打印“*”号的条件,从图中我们可以找到规律,第一行 1 个“*”,第二行 3个“*”,第三行 5 个*,即每行中。的个数恰好是行数的 2 倍减一个,由此不难得出,横线处应当填入 2*i-1。15.属于 C 语言中合法的常量是_。A) 1.52e B) 100 C) x D) “xt“y(分数:1.00)A.B.C. D.解析:解析 实数的指数形式中,e 后面必须有一个整数,所以 A 错;B 项错在无13 这种形式的数;字符串常量是用双引号括起来

34、的字符序列,所以 D 项错误。16.有定义语句:iht b;char c10;,则正确的输入语句是A) scanf(“%d%s“,printf(“%d“,j-40);A) i=1;i4;+i B) i=1;i3;+i C) i=4;i2;i- D) i=2;i4;+i(分数:1.00)A.B.C.D. 解析:解析 要想使程序输出是 25,则 j-40=25,j=65,而 j 初值是 50,所以填入 for 循环中的语句,使引用的数组元素累加为 65-5015 即可。18.下列程序的输出结果是( )。main()int a=1,b=2;printf(“%d,%d/n“,-a,+b);A) 1,2

35、 B) 1,3 C) 0,2 D) 0,3(分数:1.00)A.B.C.D. 解析:解析 本题主要考查自加(+)、自减(-)运算符的使用。“+i,-i”在使用 i 之前,先使 i 的值加 1 或者减 1,然后再使用 i 此时的值参与运算;“i+,i-”是在使用 i 参与表达式运算之后,再使 i的值加 1 或者减 1。本题中-a 和+b 是先执行 a 减 1 和 b 加 1 操作,再输出表达式的值。19.下列叙述中正确的是( )。A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上三种说法都不对(分数:

36、1.00)A.B. C.D.解析:解析 数据库、数据库管理系统、数据库管理员、硬件平台、软件平台这 5 部分共同构成了一个以数据库为核心的完整的运行宾体,称为数据库系统。数据库技术的根本目的是要解决数据的共享问题。数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等,是数据库系统的核心,它是数据库系统的一部分,二者不能等同。20.下面程序的运行结果是( )。#include“stdio.h“main()int i;for(i=1;i=5;i+)if(i%2)printf(“*“);elseprintf(“#“);A) *#*#* B) #*#*#*

37、C) *#*# D) #*#*(分数:2.00)A. B.C.D.解析:解析 分析程序呵知程序循环 5 次,然后利用 if 语句决定每次循环时输出的字符。当 i 为奇数时,i%2=1,if(i%2)为真,输出“*”;当 i 为偶数时,i%2=0,if(i%2)为假,执行 else 语句,输出“#”,所以当 i 取 1、3、5 值时输出“*”,当 i 取 2、4 值时输出“#”。21.有以下程序:#includestdio.hvoid fun (int *a, int n)/ *fun 函数的功能是将 a 所指数组元素从大到小排序*/int t, i, j;for(i=0; in-1; i+)f

38、or(j=i+1; jn; j+)if(aiaj) t=ai; ai=aj; aj=t;main()int c10=(1, 2, 3, 4, 5, 6, 7, 8, 9, 0),i;fun(c+4, 6);fori=0; i10; i+) printf(“%d, “, ci);printf(“/n“);程序的运行结果是( )。A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, B) 0, 9, 8, 7, 6, 5, 1, 2, 3, 4, C) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, D) 1, 2, 3, 4, 9, 8, 7, 6, 5, 0,(分数:2

39、.00)A.B.C.D. 解析:解析 在本题中,主函数在调用 fun()函数进行排序时,传递的参数是 c+4 和 6,fun()函数实现的功能是将数组 c 的第 5 个元素开始的 6 个元素依次进行从大到小的顺序排列。排序之后,数组 c 的内容变为1, 2, 3, 4, 9, 8, 7,6, 5.0。22.以下程序的输出结果是main()int a=0,i;for(i=1;i5 i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(“%d/n“,A) ;A) 31 B) 13 C) 10 D) 20(分数:1

40、.00)A. B.C.D.解析:解析 本题考核的知识点是 for 语句与 switch 语句地综合运用。switch 语句的执行过程是:在switch 后面的表达式的值和 case 后面常量表达式的值吻合时,就执行该 case 分支的语句。如果在该语句的后面没有 break 语句,则按顺序继续执行下一个 case 分支,直到遇到 break 语句或 switch 多分支语句结束,在 switch 语句中,break 语句的作用是使流程跳出 switch 结构,终止 switch 语句的执行在本题中,因为每个 case 语句后面都没有 break 语句,所以,第一轮循环(i=1)执行过后 a 的

41、值为 8,第2 轮(i=2)执行过后 a 的值为 16,第 3 轮(i=3)执行过后 a 的值为 26,第 4 轮(i=4)执行过后 a 的值为31,然后执行“i+”语句,这时循环条件为假,循环结束所以,4 个选项中 A 为所选。23.以下变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子 x/(y*2)的 C 语言表达式是_。A) x/y*2 B) x*(1/(y*z) C) x/y*1/z D) x/y/z(分数:1.00)A. B.C.D.解析:解析 按照自左向右的运算逻辑,选项 A 是先做 x/y,然后再乘以 x,显然与题意不符。24.有定义语句:int *P

42、4; ,以下选项中与此语句等价的是 A) int p4; B) int *P; C) int *(P4); D) int(*P)4;(分数:2.00)A.B.C. D.解析:解析 程序中“int *p4;“定义了一个指针数组,该数组包含 4 个指针变量 p0p3。而选项A 定义了一个整型数组 p,选项 B 定义的是一个指向指针的指针,选项 D 定义的是一个指向一维数组(有 4个元素)的指针 p。所以选项 A、B、D 和题目中的定义不等价。25.数据库的故障恢复一般是由 ( )A) 数据流图完成的 B) 数据字典完成的 C) DBA 完成的 D) PAD 图完成的(分数:1.00)A.B.C.

43、D.解析:26.有以下程序: #includestdio.h main() int x; scanf (“%d“,t=c00;c00=c10;c10=t;void swap2 (int *c0,int *c1)int t;t-*c0;*c0=*c1;*c1=t;main()int a2=3,5, b2=3,5swapl(a,a+1);swap2(printf(“%d %d %d %d/n“,a0,a1,b0,b1);程序运行后的输出结果是A) 3 5 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 5 3 5 3(分数:1.00)A.B.C.D. 解析:解析 本题考查的是数组名和指针

44、用作函数的参数。在 C 语言中,函数参数使用数组形式和指针形式两者毫无差别。因此两个函数 swap1()和 swap2()的作用是完全一样的,都是交换两个参数所指的内容。主函数中分别使用 swap1 和 swap2 交换数组 a2和 b2中两个元素的位置。因此最终输出为:5 3 5 3。故应该选择 D。33.有以下程序:main()char str10=“China“,“Beijing“),*P=str;printf(“%s/n“,p+10);程序运行后的输出结果是 _。A) China B) Beijing C) ng D) ing(分数:2.00)A.B. C.D.解析:解析 本题中 p+

45、10 表示字符串“Beijing“的地址,故正确答案为 B。34.下面的 for 语句:for(int x=0, y=10; (y0)(x4); x+, y-) ; 则下面叙述中正确的是( )。A) 是无限循环 B) 循环次数不定C) 循环执行 4 次 D) 循环执行三次(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是 for 循环语句的应用。本题首先要看出 for 循环条件的基本形式(; ; ),当循环执行 4 次时,x+使 x 变为 4,此时不满足判断条件,结束循环。故 C)为正确答案。35.请读程序:#includestdio.h#includestring.hmain

46、()char*s1=“AbCdEf“,*s2=“aB“;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。A) 正数 B) 负数 C) 零 D) 不确定的值(分数:1.00)A. B.C.D.解析:解析 strcmp(X1,X2)是串比较函数,本题中“s1”、“s2”分别表示这两个串中第一个字符的地址,s1+和 s2+是将指针指向串的第二个字符,则*s1 为“bCdEf”,*s2 为“B”。在字符串比较中,划、的确定是各个字符串相应位置字符的 ASCII 码值的大小决定的, s1s2,返回值为正数。36.如果进栈序列为 A,B,C,D,则可能的出栈

47、序列是( )。 A) C,A,D,B B) B,D,C,A C) C,D,A,B D) 任意顺序(分数:2.00)A.B. C.D.解析:解析 栈的操作原则为后进先出。选项 B)中出栈顺序可按“A 进,B 进,B 出,C 进,D 进,D 出,C 出,A 出”实现。37.数据库系统的核心是( )。A) 数据模型 B) 数据库管理系统C) 数据库 D) 数据库管理员(分数:2.00)A.B. C.D.解析:解析 数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台 (硬件)、软件平台 5 个部分构成。其中数据库管理系统是数据库系统的核心,它负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等工作。38.以下不合法的数值常量是( )。A) 011 B) lel C) 8.0E0.5 D) 0xabcd(分数:1.00)A.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1