【计算机类职业资格】二级C语言笔试-207及答案解析.doc
《【计算机类职业资格】二级C语言笔试-207及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-207及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-207 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.如下程序的输出结果是( )。#includestdio.hmain()float x=20,y;if(x0.0)y=0.0;else if (x10.0)y=1.0/x;else y=110;printf(“%f,y);(分数:2.00)A.0.000000B.0.250000C.0.500000D.1.0000002.有以下程序:#includestdio.hmain()char c1=1,c2=2;c1=getchar( );c2=getchar( ):putch
2、ar(c1):putchar(c2);当运行时输入 a回车后,以下叙述正确的是( )。(分数:2.00)A.变量 c1被赋予字符 a,c2 被赋予回车符B.程序将等待用户输入第 2个字符C.变量 c1被赋予字符 a,c2 中仍是原有字符 2D.变量 c1被赋予字符 a,c2 中将无确定值3.下列叙述中,不属于软件需求规格说明书的作用的是( )。(分数:2.00)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析4.有以下程序:#includestring.hmain()char p=a,b,c,
3、q10=a,b,c;printf(“%d%d/n“,strlen(p),strlen(q);以下叙述中正确的是( )。(分数:2.00)A.在给 p和 q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B.由于 p数组中没有字符串结束符,长度不能确定,但 q数组中字符串长度为 3C.由于 q数组中没有字符串结束符,长度不能确定,但 P数组中字符串长度为 3D.由于 p和 a数组中都没有字符串结束符,故长度都不能确定5.阅读下列程序,当运行函数时,输入 asd af aa z67,则输出为( )。#includestdio.h#includectype.h#includestrin
4、g.hint fun(char *str)int i,j=0;for(i=0;stri!=/0;i+)if(stri!=“)str1+=stri;strj=/0;main()char str81;int n;printf(“Input a string:“);gets(str);puts(str);fun(str);printf(“%s/n“,str);(分数:2.00)A.asdafaaz67B.asd af aa z67C.asdD.z676.下列程序的运行结果是( )。#include“stdio.h“main()inc x=-9,y=5,z=8:if(xy)if(y0)z=0;else
5、 z+=1;printf(:%d/n“,z):(分数:2.00)A.6B.7C.8D.97.现有以下结构体说明和变量定义,如下图所示,指针 p、q、r 分别指向一个链表中连续的三个结点。struct nodechar data;struct node *next;*p,*q,*r;(分数:2.00)A.q-next=r-next;p-next=r;r-next=q;B.p-next=r;q-next=r-next;r-next=q;C.q-next=r-next;r-next=q;p-next=r;D.r-next=q;p-next=r;q-next=r-next;8.以下 4个选项中,不能看
6、成一条语句的是( )。(分数:2.00)A.;B.a=5,b=2.5,c=3.6;C.if(a5);D.if(b!=5)x=2;y=6;9.下面程序中有错误的行是(每行程序前面的数字表示行号)( )。1 main()2 3 int a3=(1);4 int i;5 scanf(“%d,(分数:2.00)A.;B.a=5,b=2.5,c=3.6;C.if(a5);D.if(b!=5)x=2;y=6; 解析:解析 选项 D)为两条语句。9.下面程序中有错误的行是(每行程序前面的数字表示行号)( )。1 main()2 3 int a3=(1);4 int i;5 scanf(“%d,(分数:2.0
7、0)A.;&解析:解析 主要考查了一维数组的定义、初始化及元素的引用方法。第 5行代码中 seanf输入数据时,要求输入项为地址,而数组名即为数组的首地址,所以不应该再在前面加取地址符号。10.如果需要打开一个已经存在的非空文件“Demo”进行修改,下面选项中正确的是( )。(分数:2.00)A.fp=fopen(“Demo“,r);B.fp=fopen(“Demo“,“ab+“);C.fp=fopen(“Demo“,“w+“);D.fp=fopen(“Demo“,“r+“); 解析:解析 此题考查文件打开方式对文件操作的影响。由于打开文件进行修改,可见选项 A)是错误的,因为此种方式打开时,
8、只能读,不能写,当然无法修改;选项 B)是以追加方式“ab+”打开文件读写,以这种方式打开时,新写入的数据只能追加在文件原有内容之后,但可以对以前的数据读出。换言之,“ab+”或“a+”方式打文件后,对于写操作,文件指针只能定位在文件的原有内容之后,但对于读操作,文件指针可以定位在全文件范围内,可见,按此种方式打开文件不能实现文件内容的修改;选项 C)以“w+”方式打开文件,此时,原文件中已存在的内容都被清除,但新写入文件的数据可以被再次读出或再次写入,故也不能实现对文件的修改。只有以“r+”方式打开文件时,才允许将文件原来数据读出,也允许在某些位置上再写入,从而实现对文件的修改。11.下列叙
9、述中,正确的是( )。(分数:1.00)A.用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 B.用 E-R图只能表示实体集之间一对一的联系C.用 E-R图只能表示实体集之间一对多的联系D.用 E-R图表示的概念数据模型只能转换为关系数据模型解析:解析 两个实体之间的联系实际上是实体集合的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向备种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。12.线性表是( )。(分数:1.00)A.有限序列,可以为空 B.有
10、限序列,不能为空C.无限序列,可以为空D.无限序列,不能为空解析:解析 如果一个非空的数据结构满足下列两个条件:第一,有且只有一个根结点;第二,每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构。线性结构又称线性表。13.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是( )。(分数:1.00)A.数组 a和 b的长度相同B.a数组长度小于 b数组长度C.a数组长度大于 b数组长度 D.以述说法都不对解析:解析 本题考查的是字符型一维数组的初始化。对字符型一维数组在定义时初始化,既可以使用初始化列表,也可以使用字符串常量。不过由于字符串常量会自动在结尾
11、添加/0字符做结束标志,所以用字符串常量的初始化列表项个数是字符串的长度加 1。因此题目中的 char a=“xyz“;等价于 char a=x,y,z,/0;,所以 a数组长度大于 b数组长度,应该选 C)。14.结构化程序设计主要强调的是( )。(分数:1.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性 解析:解析 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。15.以下叙述中正确的是( )。(分数:1.00)A.用 C程序实现的算法必须要有输入和输出操作B.用 C程序实现
12、的算法可以没有输出但必须要有输入C.用 C程序实现的算法可以没有输入但必须要有输出 D.用 C程序实现的算法可以既没有输入也没有输出解析:解析 算法具有的 5个特性是:有穷性;确定性;可行性;有 0个或多个输入;有一个或多个输出。所以说,用 C程序实现的算法可以没有输入但必须要有输出。16.在数据管理技术的发展过程中,可实现数据共享的是( )。(分数:1.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段 D.系统管理阶段解析:解析 数据库技术的主要目的是有效地管理和存取数据资源,包括提供数据的共享性,使多个用户能够同时访问数据库中的数据;减少数据的冗余度,以提交数据的一致性和完整性;提
13、供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。17.下面的程序段运行后,输出结果是( )。int i,j,x=0;static int a88;for(i=0;i3;i+)for(j=0;j3;j+)aij=2*i+j;for(i=0;i8;i+)x+=aij;printf(“%d“,x);(分数:1.00)A.9B.不确定值C.0 D.18解析:解析 本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:0 1 22 3 44 5 6由于数组的下标是从 0开始的,所以二维数组元素 aij表示的是二维数组 a的第
14、i+1行、第 j+1列对应位置的元素。18.以下程序中调用 scanf函数给变量 a输入数值的方法是错误的,其错误原因是( )。main()int *p,*q,a,b;p=a;printf“input a;“;scanf(“%d“,*p);(分数:1.00)A.*p表示的是指针变量 p的地址B.*p表示的是变量 a的值,而不是变量 a的地址 C.*p表示的是指针变量 p的值D.*p只能用来说明 p是一个指针变量解析:解析 考查格式输入语句 scanf的使用。本题经过定义语句和赋值后,p 表示的是变量 a的地址,*p表示的是变量 a的值。19.有以下程序:#includestdio.hint f
15、(int x)inc y;if(x=0|x=1)return(3);y=x*x-f(x-2);return y;main()int z;z=f(3);printf(“%d/n“,z);程序的运行结果是( )。(分数:1.00)A.0B.9C.6 D.8解析:解析 函数 int f(int x)是一个递归函数调用,当 x的值等于 0或 1时,函数值等于 3,其他情况下 y=x2-f(x-2),所以在主函数中执行语句 z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。20.下列选项中,不属于模块间耦合的是( )。(分数:1.00)A.数据耦合B.标记耦合C.异构耦合 D.公共耦合
16、解析:解析 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。21.以下选项中可作为 C语言合法常量的是( )。(分数:2.00)A.-80 B.-080C.-8e1.0D.-80.0e解析:解析 选项 B)中,以 0开头表示是一个八进制数,而八进制数的取值范围是 07,所以-080 是不合法的;选项 C)和 D)中,e 后面的指数必须是整数,所以也不合法。22.有如下程序:main()char ch25=“6937“,“8254“,*p2;int i,j
17、,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij,/0;j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是( )。(分数:2.00)A.69862358B.5825C.6385 D.693825解析:解析 该题稍微难一点。主要要搞清楚以下几点:定义了一个指针数组 char *p2后,程序中第一个循环 for(i=0;i2;i+)pi=chi;的作用,是使指针数组的 p0元素(它本身是一个指针)指向了二维数组 ch的第一行字符串,并使指针数组的 p1元素指向二维数组 ch的第二行字符串,这样,就使指针数组
18、 p和二维数组 ch建立起了一种对应关系,以后对二维数组 ch的某个元素的引用就有两种等价的形式:chij或 pij。于对二维数组 ch的初始化,使其第一行 ch0中存入了字符串“6937”,第二行 ch1中的内容为字符串“8254”。程序中第二个循环中的循环体 s=s*10+pij-0;的功能是这样的,每执行一次,将 s中的值乘以 10(也即将 s中的数值整体向左移动一位,并在空出来的个位上添一个 0),再将当前 pij中的字符量转换为相应的数字,然后把这个数字加到 s的个位上。注意到内层循环的循环条件 pij/0是指 pij中的字符只要不是字符串结束标志/0就继续循环,语句j+=2;是使下
19、标 j每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串“6937”中一个隔一个地取出字符,分别是6和3,然后从 D1所指向的字符串“8254”中一个隔一个地取出字符,分别是8和5,同时经过转换和相加运算后,结果 s中的值应该是 6385。23.有定义语句:char s10;,若要从终端给 s输入 5个字符,错误的输入语句是( )。(分数:2.00)A.gets(s0);B.scanf(“%s“,s+1);C.gets(s);D.scanf(“%s“,s1); 解析:解析 在格式输入中,要求给出的是变量的地址,而 D)答案
20、中给出的 s1是一个值的表达式。24.若变量均已正确定义并赋值,以下合法的 C语言赋值语句是( )。(分数:2.00)A.x=y; B.x=n5%2.5;C.x+n=i;D.x=5=4+1;解析:解析 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项 C)和 D)错误。“%”运算符两侧都应当是整型数据,选项 B)错误。25.当变量 C的值不为 2、4、6 时,值也为“真”的表达式是( )。(分数:2.00)A.(c=2)(c=4)(c=6)B.(c=2c=6)(c!=3)(c!=5) C.(c=2c=6)!(c%2)D.(c=2c=6)(c%2!=1)解析:解析 本题主要考查
21、的是逻辑表达式。选项 A)中表达式的意思是:当 c等于 2或 4或 6时,表达式的值为真,苔则为假。所以不满足题意。选项 C)中表达式的意思是:当 c大于等于 2且小于等于 6,并且 c不是奇数时,表达式的值为真,否则为假。这样,满足该表达式的 c,只能取值为 2、4、6 了,所以也不满足题意。选项 D)中后面一个子表达式(c%2!=1)和选项 C)中的!(c%2)是等价的。都是判断 c不是奇数。因此也不满足题意。故本题正确答案为 B)。26.以下选项中,不能作为合法常量的是( )。(分数:2.00)A.1.234e04B.1.234e0.4 C.1.234e+4D.1.234e0解析:解析
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 207 答案 解析 DOC
