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

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

1、二级 C语言笔试-403 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是A) 带链队列 B) 循环队列 C) 带链栈 D) 二叉树(分数:1.00)A.B.C.D.2.下列叙述中正确的是A) 数据的逻辑结构与存储结构是一一对应的B) 算法的时间复杂度与空间复杂度一定相关C) 算法的效率只与问题的规模有关,而与数据的存储结构无关D) 算法的时间复杂度是指执行算法所需要的计算工作量(分数:1.00)A.B.C.D.3.在结构化程序设计中,模块划分的原则是A) 各模块应包括尽量多的功能B) 各模块的规模应尽量大

2、C) 各模块之间的联系应尽量紧密D) 模块内具有高内聚度、模块间具有低耦合度(分数:1.00)A.B.C.D.4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是A) 浏览器 B) 操作系统 C) 编译程序 D) 汇编程序(分数:1.00)A.B.C.D.5.在 E-R图中,用来表示实体集的图形是A) 矩形 B) 椭圆形 C) 菱形 D) 三角形(分数:1.00)A.B.C.D.6.结构化分析可以使用的工具是A) N-S图 B) DFD 图 C) PAD 图 D) 程序流程图(分数:1.00)A.B.C.D.7.下面不属于软件设计原则的是A) 抽象 B) 模块

3、化C) 自底向上 D) 信息隐蔽(分数:1.00)A.B.C.D.8.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中,数据独立性最高的阶段是A) 数据库系统 B) 文件系统 C) 人工管理 D) 数据项管理(分数:1.00)A.B.C.D.9.数据库设计包含四个阶段,它们是需求分析、_、逻辑设计和物理设计。A) 编码设计 B) 测试阶段 C) 运行阶段 D) 概念设计(分数:1.00)A.B.C.D.10.有两个关系 R,S 如下图,由关系 R通过运算得到关系 S,则所使用的运算是(分数:1.00)A.B.C.D.11.C语言规定,在一个源程序中,main

4、函数的位置A) 必须在最开始 B) 必须在系统调用的库函数的后面C) 可以任意 D) 必须在最后(分数:1.00)A.B.C.D.12.下列可用于 C语言用户标识符的一组是A) void, define, WORD B) a3_3, _123, CarC) For, -abc, IF Case D) 2a, DO, sizeof(分数:1.00)A.B.C.D.13.以下符合 C语言语法的实型常量是A) 8E -2 B) 3.14.159E C) E14 D) 2.2E0.5(分数:1.00)A.B.C.D.14.若函数中有定义语句:int a;,则A) 系统将自动给 a赋初值为 0 B) 系

5、统将自动给 a赋初值-1C) 这时 a中的值无意义 D) 这时 a中无任何值(分数:1.00)A.B.C.D.15.以下不能正确表示代数式 4cd/ab的 C语言表达式是A) 4*c*d/a/b B) c*d/a/b*4 C) c/a/b*d*4 D) 4*c*d/a*b(分数:1.00)A.B.C.D.16.下列关于单目运算符+,-的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量C) 它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D) 它们的运算对象可以是 ch

6、ar型变量、int 型变量和 float型变量(分数:1.00)A.B.C.D.17.有以下程序:#include stdio.hmain()int c;while(c=getchar()!=/n)switch(c-2)case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);case 4:putchar(c+3);break;printf(/n);从第一列开始输入以下数据(CR代表一个回车符):2743CR程序的输出结果是A) 66877 B) 668966 C) 6677877 D) 6688766(分

7、数:1.00)A.B.C.D.18.有以下程序段:int j;float y;char name50;scanf(“%2d%f%s“,当执行上述程序段,从键盘上输入 55566 7777abc后,y 的值为A) 55566.0 B) 566.O C) 7777.O D) 566777.0(分数:1.00)A.B.C.D.19.程序段:int x=12;double y=3.141593;printf(“%d%08.6f“,x,y);的输出结果是A) 123.141593 B) 12 3.141593 C) 12, 3.141593 D) 123.1415930(分数:1.00)A.B.C.D.

8、20.以下叙述中不正确的是A) 在 C程序中,逗号运算符的优先级最低B) 在 C程序中,APH 和 aph是两个不同的变量C) 若 a和 b类型相同,在计算赋值表达式 a=b后,b 中的值将放入 a中,而 b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(分数:1.00)A.B.C.D.21.有如下程序段:int a=14, b=15, x;char c=A;x=(a执行该程序段后,x 的值为A) true B) false C) 0 D) 1(分数:1.00)A.B.C.D.22.有如下程序:main()float x=2.0, y;if(x0

9、.0)y=0.0;else if(x10.0)y=1.0/x;else y=1.0;printf(“%f/n“,y);该程序的输出结果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000(分数:1.00)A.B.C.D.23.有以下程序:main()char a7=“a0/0a0/0“;int i, j;i=sizeof(a);j=strlen(a);printf(“%d%d/n“, i, j);程序运行后的输出结果是A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:1.00)A.B.C.D.24.以下描述中正确的是A) 由于 do-wh

10、ile循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B) do-while循环由 do开始,用 while结束,在 while(表达式)后面不能写分号C) 在 do-while循环体中,是先执行一次循环,再进行判断D) do-while循环中,根据情况可以省略 while(分数:1.00)A.B.C.D.25.以下能正确定义一维数组的选项是A) int a5=0,1,2,3,4,5; B) char a=0, 1, 2, 3, 4, 5,/0;C) char a=A,B,C; D) int a5=“0123“;(分数:1.00)A.B.C.D.26.下面的程序段运行后,输出

11、结果是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);A) 9 B) 不确定值 C) 0 D) 18(分数:1.00)A.B.C.D.27.若有定义:char *st=“how are you“;,下列程序段中正确的是A) char a11,*p; strcpy(p=a+1,B) char a11; strcpy(+a, st);C) char a11; strcpy(a, st);D) char a,*p; strcpy(p=(分数

12、:1.00)A.B.C.D.28.以下程序的输出结果是void f(int b)int i;for(i=2; i6; i+) bi*=2;main()int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, , i;f(a);for(i=0; i10; i+) printf(“%d,”, ai);A) 1,2,3,4,5,6,7,8,9,10, B) 1,2,3,4,10,12,14,16,9,10,C) 1,2,6,8,10,12,7,8,9,10, D) 1,2,6,8,10,12,14,16,9,10,(分数:1.00)A.B.C.D.29.若函数调用时的实参为变量时

13、,以下关于函数形参和实参的叙述中正确的是A) 函数的实参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数:1.00)A.B.C.D.30.以下程序运行后的输出结果是#include stdio.hint f(int x);main()int n=1, m;m=f(f(f(n);printf(“%d/n“, m);int f(int x)return x*2;A) 1 B) 2 C) 4 D) 8(分数:1.00)A.B.C.D.31.若变量均已正确定义并赋值,以下属于合法的 C语言

14、赋值语句的是A) x=y=5; B) x=n%2.5; C)x+n=i; D) x=5=4+1;(分数:1.00)A.B.C.D.32.有以下程序:main()int a33,*p,i;p= i9; i+) pi=i+1;printf(“%d/n“, a1 2);程序运行后的输出结果是A) 3 B) 6 C) 9 D) 2(分数:1.00)A.B.C.D.33.有以下程序:#include stdio.h#include stdlib.hint fun(int n)int *p;p=(int*)malloc(sizeof(int);*p=n; return *p;main()int a;a=f

15、un(10); printf(“%d/n“,a+fun(10);程序的运行结果是A) O B) 10 C) 20 D) 出错(分数:1.00)A.B.C.D.34.设有以下定义和语句:char str25=“Program“,*p;p=str;则以下叙述中正确的是A) str数组长度和 p所指向的字符串长度相等B) *p与 str0的值相等C) str与 p的类型完全相同D) 数组 str中存放的内容和指针变量 p中存放的内容相同(分数:1.00)A.B.C.D.35.设有如下定义:struct skint n;float x; data, *p;若要使 p指向 data中的 n域,正确的赋值

16、语句是A) p= B) *p=data.n;C) p=(struct sk*) D) p=(struct sk*)data.n;(分数:1.00)A.B.C.D.36.以下程序的输出结果是#include stdio.hmain()char ch25=“6937“, “8254“, *p2;int i, j, 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;A) 69825 B) 63825 C) 6385 D) 693825(分数:1.00)A.B.C.D.37.有以下程序:#includ

17、e stdio.hmain()FILE *fp; int i, a6=1,2,3 ,4,5,6;fp=fopen(“d3.dat“,“w +b“);fwrite(a,sizeof(int), 6, fp);fseek(fp, sizeof(int)*3, SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动 3个 int型数据*fread(a, sizeof(int), 3, fp); fclose(fp);for(i=0; i6; i+) printf(“%d,“, ai);程序运行后的输出结果是A) 4,5,6,4,5,6, B) 1,2,3,4,5,6,C) 4,5,6,1,

18、2,3, D) 6,5,4,3,2,1,(分数:1.00)A.B.C.D.38.若有定义语句:int a410,*p,*q4;且 0i4,则错误的赋值是A) p=a B) qi=ai C) p=ai D) p=程序运行后的输出结果是A) 4 3 B) 7 3 C) 7 0 D) 4 0(分数:1.00)A.B.C.D.二、填空题(总题数:14,分数:60.00)41.一个栈的初始状态为空。首先将元素 1、2、3、4、5 依次入栈,然后退栈一次,再将元素 A、B、C、D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为 1。(分数:4.00)填空项 1:_42.已知二

19、叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是 1。(分数:4.00)填空项 1:_43.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 1 的联系。(分数:4.00)填空项 1:_44.软件测试可分为白盒测试和黑盒测试。逻辑覆盖测试属于 1 测试。(分数:4.00)填空项 1:_45.在最坏情况下,简单插入排序需要 1 次比较。(分数:4.00)填空项 1:_46.下面程序的功能是:计算 110 之间的奇数之和与偶数之和。请填空。#include stdio.hmain()int a,b,c,i;a=c=0;f

20、or(i=0;1=10;i+=2)a+=i;_;c+=b;printf(“偶数之和=%d/n“,a);printf(“奇数之和=%d/n“,c-11);(分数:4.00)填空项 1:_47.以下程序的输出结果是_。fun (int x,int y,int z)z=x*x+y*y;main()int a=31;fun(6,3,a)printf(“%d”,a)(分数:4.00)填空项 1:_48.以下程序运行后的输出结果是_。fun (int a)int b=0;static int c=3;b+;c+;return(a+b+c);main()int i,a=5;for(i=0;i3;i+)pri

21、ntf(“%d%d“, i, fun(a);printf(“/n“);(分数:4.00)填空项 1:_以下函数用来求出数组的最大元素在数组中的下标并存放在 k所指的存储单元中。请填空。#include conio.h#include stdio.hint fun(int *s, int t, int *k)int i;*k=0;_if(s*ksi) *k=i;return _;main()int a10=876,675,896,101,301,401,980,431,451,777,k;fun(a,10,(分数:8.00)填空项 1:_填空项 1:_49.以下定义的结构体类型拟包含两个成员,其

22、中成员变量 info用来存入整型数据;成员变量 link是指向自身结构体的指针,请将定义补充完整。struct nodeint info;_ link; ;(分数:4.00)填空项 1:_50.若变量 a,b 已定义为 int类型并分别赋值 21和 55,要求用 printf函数以 a=21,b=55 的形式输出,请写出完整的输出语句 1。(分数:4.00)填空项 1:_51.以下程序的输出结果是_。main()char c=z;printf(“%c“,c-25);(分数:4.00)填空项 1:_52.有以下程序#define f(x) x*xmain()int i;i=f(6+6)/f(2+

23、2);printf(“%d/n“,i);执行后的输出结果是_。(分数:4.00)填空项 1:_53.设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件“readme.txt”的最后续写内容。fw=fopen(“readme.txt“, _);(分数:4.00)填空项 1:_二级 C语言笔试-403 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是A) 带链队列 B) 循环队列 C) 带链栈 D) 二叉树(分数:1.00)A.B.C.D. 解析:解析 根据数据结构中各数据元素之间前

24、后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。根据各种结构的定义可知二叉树是一种非线性结构。2.下列叙述中正确的是A) 数据的逻辑结构与存储结构是一一对应的B) 算法的时间复杂度与空间复杂度一定相关C) 算法的效率只与问题的规模有关,而与数据的存储结构无关D) 算法的时间复杂度是指执行算法所需要的计算工作量(分数:1.00)A.B.C.D. 解析:解析 根据时间复杂度和空间复杂度的定义可知,算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上

25、描述数据元素之间的关系,是独立于计算机的;数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示的,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。3.在结构化程序设计中,模块划分的原则是A) 各模块应包括尽量多的功能B) 各模块的规模应尽量大C) 各模块之间的联系应尽量紧密D) 模块内具有高内聚度、模块间具有低耦合度(分数:1.00)A.B.C.D. 解析:解析 耦合性和内聚性是模块独立的两个定性标准。一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。4.软件按功能可以分为应用软件、系统软件和支撑软件(或

26、工具软件)。下面属于应用软件的是A) 浏览器 B) 操作系统 C) 编译程序 D) 汇编程序(分数:1.00)A. B.C.D.解析:解析 操作系统属于系统软件,编译程序和汇编程序都属于支撑软件,而浏览器属于应用软件。5.在 E-R图中,用来表示实体集的图形是A) 矩形 B) 椭圆形 C) 菱形 D) 三角形(分数:1.00)A. B.C.D.解析:解析 E-R 图中用矩形表示实体集,用椭圆形表示属性,用菱形表示联系。6.结构化分析可以使用的工具是A) N-S图 B) DFD 图 C) PAD 图 D) 程序流程图(分数:1.00)A.B. C.D.解析:解析 数据流图(DFD)、数据字典、判

27、定表和判定树是结构化分析常用的工具。程序流程图、N-S图、PAD 图是详细设计过程中常用的图形工具。7.下面不属于软件设计原则的是A) 抽象 B) 模块化C) 自底向上 D) 信息隐蔽(分数:1.00)A.B.C. D.解析:解析 软件设计遵循软件工程的原则,包括抽象、模块化、局部化、信息隐蔽、确定性、一致性、完备性和可验证性。8.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中,数据独立性最高的阶段是A) 数据库系统 B) 文件系统 C) 人工管理 D) 数据项管理(分数:1.00)A. B.C.D.解析:解析 在数据管理技术的发展过程中,经历了人工管理阶段

28、、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统。数据库阶段用数据模型表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式操作数据库。数据库管理系统提供了数据控制功能。9.数据库设计包含四个阶段,它们是需求分析、_、逻辑设计和物理设计。A) 编码设计 B) 测试阶段 C) 运行阶段 D) 概念设计(分数:1.00)A.B.C.D. 解析:解析 数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。它们是需求分析阶段、概念设计阶段、逻辑设计阶段和物理设计阶段。10.

29、有两个关系 R,S 如下图,由关系 R通过运算得到关系 S,则所使用的运算是(分数:1.00)A.B.C. D.解析:解析 专门的关系运算有 3种:投影、选择和连接。选择运算是从关系中找出满足给定条件的那些元组,其中的条件是以逻辑表达式给出的,值为真的元组将被选取,这种运算是从水平方向抽取元组。投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解。连接运算是二目运算,需要两个关系作为操作对象。11.C语言规定,在一个源程序中,main 函数的位置A) 必须在最开始 B) 必须在系统调用的库函数的后面C) 可以任意 D) 必须在最后(分数:1.00)

30、A.B.C. D.解析:解析 不论 main()函数在整个过程中的位置如何,一个 C程序总是从 main()函数开始执行的。12.下列可用于 C语言用户标识符的一组是A) void, define, WORD B) a3_3, _123, CarC) For, -abc, IF Case D) 2a, DO, sizeof(分数:1.00)A.B. C.D.解析:解析 C 语言规定标识符只能由字母、数字和下划线 3种字符组成,且第一个字符必须为字母或下划线,排除选项 C)和 D);C 语言中还规定标识符不能为 C语言的关键字,而选项 A)中 void为关键字,故排除选项 A)。13.以下符合

31、C语言语法的实型常量是A) 8E -2 B) 3.14.159E C) E14 D) 2.2E0.5(分数:1.00)A. B.C.D.解析:解析 实型常量又称为实数或浮点数,在 C语言中可以表示为小数形式和指数形式。其中用“e或 E+整数”表示以 10为底的幂,字母 e或 E之前必须有数字,后面必须是整数。因此正确答案为选项 A)。14.若函数中有定义语句:int a;,则A) 系统将自动给 a赋初值为 0 B) 系统将自动给 a赋初值-1C) 这时 a中的值无意义 D) 这时 a中无任何值(分数:1.00)A.B.C. D.解析:解析 用 int方法定义变量时,编译器仅为变量开辟存储单元,

32、并没有在存储单元中放任何值,此时变量中的值是不确定的,称变量值“无意义”。因此,本题的正确答案为 C)。15.以下不能正确表示代数式 4cd/ab的 C语言表达式是A) 4*c*d/a/b B) c*d/a/b*4 C) c/a/b*d*4 D) 4*c*d/a*b(分数:1.00)A.B.C.D. 解析:解析 C 语言中算术运算符的结合性均为自左向右。选项 D)中表达式的计算结果是 4cdb/a,和题目要求的代数式不一致,因此选项 D)不能正确表示题目所给代数式的内容。16.下列关于单目运算符+,-的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是 char型

33、变量和 int型变量,但不能是 float型变量C) 它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D) 它们的运算对象可以是 char型变量、int 型变量和 float型变量(分数:1.00)A.B.C.D. 解析:解析 +(或-)的运算结果是使运算对象增 1(或减 1);运算对象可以是整型变量、实型变量,也可以是字符型变量,但不能是常量或表达式。+(或-)的结合方向是“自右向左”。17.有以下程序:#include stdio.hmain()int c;while(c=getchar()!=/n)switch(c-2)case 0:case 1:pu

34、tchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);case 4:putchar(c+3);break;printf(/n);从第一列开始输入以下数据(CR代表一个回车符):2743CR程序的输出结果是A) 66877 B) 668966 C) 6677877 D) 6688766(分数:1.00)A. B.C.D.解析:解析 本题主要考查字符输入输出函数 getchar和 putchar的使用。getchar 函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量 c中的字符输出到标准输出设备上,并且字符可以看

35、作整数参与运算。18.有以下程序段:int j;float y;char name50;scanf(“%2d%f%s“,当执行上述程序段,从键盘上输入 55566 7777abc后,y 的值为A) 55566.0 B) 566.O C) 7777.O D) 566777.0(分数:1.00)A.B. C.D.解析:解析 本题考查通过 scanf函数输入数据时的格式控制问题。变量 j的格式控制为“%2d”,即只接收输入数据的前两位,从第 3位开始直到空格之间的输入都会被保存到变量 y中,因为 y为浮点型数据,所以输出结果为选项 B)。19.程序段:int x=12;double y=3.1415

36、93;printf(“%d%08.6f“,x,y);的输出结果是A) 123.141593 B) 12 3.141593 C) 12, 3.141593 D) 123.1415930(分数:1.00)A. B.C.D.解析:解析 本题考查 printf函数的输出格式控制符,%m.nf 表示指定输出的实型数据的宽度为 m(包含小数点),并保留 n位小数。当输出数据的小数位大于 n时,截去右边多余的小数,并对截去部分的第一位做四舍五入处理;当输出数据小数位小于 n时,在小数的最右边补 0,输出数据的小数部分宽度为 n。若给出的总宽度 m小于 n加上整数位数和小数点,则自动突破 m的限制;反之,数字

37、右对齐,左边补空格。本题中 3.141593数值长度为 8,小数位数是 6,因此左端没有空格,故正确答案为 A)。20.以下叙述中不正确的是A) 在 C程序中,逗号运算符的优先级最低B) 在 C程序中,APH 和 aph是两个不同的变量C) 若 a和 b类型相同,在计算赋值表达式 a=b后,b 中的值将放入 a中,而 b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(分数:1.00)A.B.C.D. 解析:解析 在 C语言所有的运算符中,逗号运算符的优先级最低。C 语言中区分大小写,所以 APH和aph是两个不同的变量。赋值表达式 a=b表示将

38、b的赋付给 a,而 b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项 D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。21.有如下程序段:int a=14, b=15, x;char c=A;x=(a执行该程序段后,x 的值为A) true B) false C) 0 D) 1(分数:1.00)A.B.C.D. 解析:解析 在 C语言中,逻辑运算符有 4个,它们分别是:!(逻辑非)、|(逻辑或)、if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=1.0;printf(“%f/n“,

39、y);该程序的输出结果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000(分数:1.00)A.B.C.D. 解析:解析 本题考查 if语句的嵌套。if 语句中的一种表达方式,即:ifelse if。该表达式的语句是:if(表达式 1)语句 1else if(表达式 2)语句 2else if(表达式 3)语句 3else语句 4本题执行 else y=1.0,并且以“%f”输出。23.有以下程序:main()char a7=“a0/0a0/0“;int i, j;i=sizeof(a);j=strlen(a);printf(“%d%d/n“, i,

40、 j);程序运行后的输出结果是A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:1.00)A.B.C. D.解析:解析 字符数组的元素数量在定义时已经确定,与其存储的内容无关,本题中语句 char a7定义了由 7个字符元素组成的字符数组,其 sizeof(a)=7。字符数组常常存储字符串,但其存储的字符串长度与数组长度没有直接关联。C 语言规定,字符串从首字符开始,以第一个值为 ASC码 0的字符结尾,其中的非 0字符数量就是字符串的长度。在本题中,a0=a,a1=0,a2=0,从首字符位置 a0到第一个 ASC值为 0的字符 a2,其中共有 2个非 0字符,因此 strlen(

41、a)=2。24.以下描述中正确的是A) 由于 do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B) do-while循环由 do开始,用 while结束,在 while(表达式)后面不能写分号C) 在 do-while循环体中,是先执行一次循环,再进行判断D) do-while循环中,根据情况可以省略 while(分数:1.00)A.B.C. D.解析:解析 do while 语句的一般形式为:do 循环体语句 while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while 后必须要有分号作为语句的结束,在 do-while循环中,不

42、可以省略 while。25.以下能正确定义一维数组的选项是A) int a5=0,1,2,3,4,5; B) char a=0, 1, 2, 3, 4, 5,/0;C) char a=A,B,C; D) int a5=“0123“;(分数:1.00)A.B. C.D.解析:解析 选项 A)中,定义的初值个数大于数组的长度;选项 C)中,数组名后少了中括号;选项 D)中,整型数组不能赋予字符串。26.下面的程序段运行后,输出结果是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+

43、=aij;printf(“%d“, x);A) 9 B) 不确定值 C) 0 D) 18(分数:1.00)A.B.C. D.解析:解析 本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:0 1 22 3 44 5 6由于数组的下标是从 0开始的,所以二维数组元素 aij表示的是二维数组 a的第 i+1行、第 j+1列对应位置的元素。27.若有定义:char *st=“how are you“;,下列程序段中正确的是A) char a11,*p; strcpy(p=a+1,B) char a11; strcpy(+a, st)

44、;C) char a11; strcpy(a, st);D) char a,*p; strcpy(p=(分数:1.00)A. B.C.D.解析:解析 本题综合考查字符数组的赋值和 strcpy函数的用法。C 语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1=“China”,如果想把“China”这 5个字符放到数组 str1中,除了逐个输入外,还能使用 strcpy函数,该函数的功能是将一个字符串复制到一个字符数组中。例如:strcpy( str1,“China”)或 strcpy(str1,str2);注意,不能企图用以下语句来进行赋值(将 str2的值传给 str1)

45、:str1=str2;不能用赋值语句将一个字符串常量或字符数组直接赋值给一个字符数组。strcpy函数的结构是:strcpy(字符数组 1,字符串 2),其中,需要注意的是,字符数组 1的长度不应小于字符串 2的长度,“字符数组 1”必须写成数组名形式,如(str1),“字符串 2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。28.以下程序的输出结果是void f(int b)int i;for(i=2; i6; i+) bi*=2;main()int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, , i;f(a);

46、for(i=0; i10; i+) printf(“%d,”, ai);A) 1,2,3,4,5,6,7,8,9,10, B) 1,2,3,4,10,12,14,16,9,10,C) 1,2,6,8,10,12,7,8,9,10, D) 1,2,6,8,10,12,14,16,9,10,(分数:1.00)A.B.C. D.解析:解析 函数 f的功能是将数组中第 3、4、5、6 个元素乘以 2,因此 f(a)操作的结果是将元素(3,4,5,6)乘以 2,操作结束后,数组 a为(1,2,6,8,10,12,7,8,9,10)。29.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

47、A) 函数的实参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数:1.00)A.B.C.D. 解析:解析 在内存中,实参单元与形参单元是不同的单元。在 C语言中,仅在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。30.以下程序运行后的输出结果是#include stdio.hint f(int x);main()int n=1, m;m=f(f(f(n);printf(“%d/n“, m);int f(int x)return x*2;A) 1 B) 2 C) 4 D) 8(分数:1.00)A.B.C.D. 解析:解析 第一次调用的是最内层的 f(n),即 f(1)返回值是 2。第二次调用中间的 f(f(n),即 f(2)返回值是 4。最后调用最外层的 f(f(f(n),即 f(4)返回值是 8。最后打印输出。31.若变量均已正确定义并赋值,以下属于合法的 C语言赋值语句

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

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

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