ImageVerifierCode 换一换
格式:DOC , 页数:38 ,大小:123KB ,
资源ID:1326171      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1326171.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C语言笔试-365及答案解析.doc)为本站会员(roleaisle130)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

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