【计算机类职业资格】二级C语言笔试-478及答案解析.doc
《【计算机类职业资格】二级C语言笔试-478及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-478及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-478 及答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.支持子程序调用的数据结构是A) 栈 B) 树 C) 队列 D) 二叉树(分数:2.00)A.B.C.D.2.对线性表进行二分法检索,其前提条件是( )。A) 线性表以顺序方式存储,并按关键码值排好序B) 线性表以顺序方式存储,并按关键码的检索频率排好序C) 线性表以链式方式存储,并按关键码值排好序D) 线性表以链式方式存储,并按关键码的检索频率排好序(分数:2.00)A.B.C.D.3.设有表示学生选课的三张表,学生表(学号,姓名,性别),课程表(课程号,课程名),选课
2、成绩表(学号,课程号,成绩),则选课成绩表的关键字为( )。A) 课程号,成绩 B) 学号,成绩C) 学号,课程号 D) 学号,课程号,成绩(分数:2.00)A.B.C.D.4.数据流程图(DFD 图)是( )。A软件概要设计的工具 B软件详细设计的工具C结构化方法的需求分析工具 D而向对象方法的需求分析工具(分数:1.00)A.B.C.D.5.数据流程图(DFD 图)是A) 软件概要设计的工具 B) 软件详细设计的工具C) 结构化方法的需求分析工具 D) 面向对象方法的需求分析工具(分数:2.00)A.B.C.D.6.下列对于软件测试的描述中正确的是_。A) 软件测试的目的是证明程序是否正确
3、 B) 软件测试的目的是使程序运行结果正确C) 软件测试的目的是尽可能地多发现程序中的错误 D) 软件测试的目的是使程序符合结构化原则(分数:1.00)A.B.C.D.7.数据结构中,与所使用的计算机无关的是数据的A) 存储结构 B) 物理结构 C) 逻辑结构 D) 物理和存储结构(分数:2.00)A.B.C.D.8.下列不属于软件工程的 3个要素的是A) 工具 B) 过程 C) 方法 D) 环境(分数:2.00)A.B.C.D.9.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。A提高耦合性降低内聚性有利于提高模块的独立性B降低耦合性提高内聚性有利于提高模块的独立性C耦
4、合性是指一个模块内部各个元素间彼此结合接的紧密程度D内聚性是指模块间互相连接的紧密程度(分数:1.00)A.B.C.D.10.程序流程图(PFD)中的箭头代表的是( )。A) 数据流 B) 控制流 C) 调用关系 D) 组成关系(分数:1.00)A.B.C.D.11.在 E-R图中,用( )来表示实体之间联系。A) 矩形 B) 菱形 C) 椭圆形 D) 正方形(分数:2.00)A.B.C.D.12.数据的完整性是指数据的正确性、有效性和 _。A) 可维护性 B) 独立性 C) 安全性 D) 相容性(分数:2.00)A.B.C.D.13.按条件 f对关系 R进行选择,其关系代数表达式为( )。A
5、) R|X|R B) (分数:1.00)A.B.C.D.14.下列叙述中正确的是_。A) 为了建立一个关系,首先要构造数据的逻辑关系B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项C) 一个关系的属性名表称为关系模式D) 一个关系可以包括多个二维表(分数:2.00)A.B.C.D.15.结构化程序设计的 3种基本结构是( )。A) 过程、子程序和分程序 B) 顺序、选择和重复C) 递归、堆栈和队列 D) 调用、返回和转移(分数:2.00)A.B.C.D.16.以下选项中不能用做 C程序合法常量的是_。A) 1, 234 B) /123 C) 123 D) “/x7G/(分数:1.
6、00)A.B.C.D.17.若要用下面的程序片段使指针变量 P指向一个存储整型变量的动态存储单元int *p;p=_malloc(sizeof(int);则应填入_。A) int B) int* C) (*int) D) (int*)(分数:1.00)A.B.C.D.18.以下选项中非法的表达式是( )。A) 0=x100 B) i=j= =0 C) (char)(65+3) D) x+1=x+1(分数:1.00)A.B.C.D.19.有以下程序:main()int p8=11,12,13,14,15,16,17,18,i=0,j=0;while(i+7)if(pi%2)j+=pi;print
7、f(“%d/n“,j);程序运行后的输出结果是 _。A) 42 B) 45 C) 56 D) 60(分数:1.00)A.B.C.D.20.下列程序的输出结果是( )main()int a,b,d=25;a=d/10%9;b=aprintf(“%d,%d/n“,a,b);A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:2.00)A.B.C.D.21.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。main()int x;scanf(“%d“,B) while(ch = getehar() ! =N)printf(“%c“,ch);C) while (ch =
8、 getehar() = = N)printf( “%c“, ch);D) while (ch = getchar( ) = N)printf(“%c“, ch );(分数:1.00)A.B.C.D.25.要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,下列正确的程序段是( )A) while(ch=getchar()!=N)printf(“%c“,ch);B) while(ch=getchar()!=N) printf(“%c“,ch);C) while(ch=getchar()=N) printf(“%c“,ch);D) while(ch=getchar(
9、) =N)printf(%c,ch);(分数:2.00)A.B.C.D.26.以下函数 findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#define MIN-2147483647int findmax(int x,int n)int i,max;for(i=0;in;i+)max=MIN;if(maxxi)max=xi;return max;造成错误的原因是( )。A定义语句“int i,max;”中,max 未赋初值B赋值语句“max=MIN”;中,不应给 max赋 MIN值C语句“if(maxximax=xi)”中,判断条件设置错误D赋值语句“m
10、ax=MIN;”放错了位置(分数:1.00)A.B.C.D.27.请读程序:#includestdio.h#includestring.hmain()char*s1=“AbCdEf“,*s2=“aB“;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。A) 正数 B) 负数 C) 零 D) 不确定的值(分数:2.00)A.B.C.D.28.有以下程序:#includestring.hvoid f(char*s,char*t)char k;k=*s; *s=*t; *t=k;s+; t-;if(*s) f(s,t);main( )char str10
11、=“abcdefg“,*p;p=str+strlen(str)/2+1;f(p,p-2);printf(%s/n“,str);程序运行后的输出结果是 _。 A) abcdef B) gfedcba C) gbcdefa D) abedcfg(分数:2.00)A.B.C.D.29.对两个数组 a和 b进行下列初始化:char m=“1234567“;char n=1,2,3,4,5,6,7;则下列叙述正确的是( )。A) 数组 m与数组 n完全相同B) 数组 m与数组 n长度相同C) 数组 m比数组 n长 1D) 数组 m与数组 n中都存放字符串(分数:2.00)A.B.C.D.30.下列选项中
12、,能够满足“若字符串 s1等于字符串 s2,则执行 ST”要求的是 A) if(strcmp(s1, s2)=0) ST; B) if(s1=s2) ST; C) if(strcpy(s1, s2)=1) ST; D) if(s1-s2=0) ST;(分数:2.00)A.B.C.D.31.若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0i9,则对 a数组元素不正确的引用是( )。A) ap-a B) *(strcpy(str,strcat(p1,p2);printf(%s,str);A) xyzabcABC B) abcABC C) xyzabc D) xy
13、zABC(分数:2.00)A.B.C.D.35.下列程序的输出结果是( )。#includestdio.hmain()stmct stint y,x,z;unionlong i;int j;char k;un;printf(“%d,%d/n“,sizeof(stmct st),sizeof(un);A) 6,2 B) 6,4 C) 8,4 D) 8,6(分数:1.00)A.B.C.D.36.在 C语言中,下列关于文件操作的叙述正确的是( )。A) 对文件操作必须先关闭文件 B) 对文件操作必须先打开文件C) 对文件操作顺序没有统一规定 D) 以上全错(分数:2.00)A.B.C.D.37.设有
14、定义:int n1=0,n2,*p=,以下赋值语句中与 n2=n1;语句等价的是 _。A) *p=*q; B) p=q; C) *p=(分数:2.00)A.B.C.D.38.设 int x=7,则x 的值是( )。A) -8 B) -7 C) -1 D) 1(分数:1.00)A.B.C.D.39.以下程序中函数 scmp的功能是返回形参指针 s1和 s2所指字符串中较小字符串的首地址。#include stdio.h#include string.hchar *scmp(char*s1,char*s2)if(strcmp(s1,s2)0) return(s1);else return(s2);
15、main()int i; char string20,str320;for(i=0;i3;i+) gets(stri);strcpy(string,scmp(str0,str1); /*库函数 strcpy对字符串进行复制*/strcpy(string,scmp(string,str2);printf(“%s/n“,string);若运行时依次输入:abcd、abba 和 abc三个字符串,则输出结果为( )。A) abcd B) abba C) abc D) baca(分数:2.00)A.B.C.D.40.有以下程序:#include stdio.hchar fun(char x,char
16、y)if(xy) return x;return y;main()int a=9,b=8,c=7;printf(“%c/n“,fun(fun(a,b),fun(b,c);程序的执行结果是( )。A) 函数调用出错 B) 8 C) 9 D) 7(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:32.00)41.若按功能划分,软件测试的方法通常分为白盒测试方法和U /U测试方法。(分数:2.00)填空项 1:_42.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、U /U遍历和后序遍历。(分数:2.00)填空项 1:_43.有以下程序:void f(i
17、nt a,int i,int j)int t;if(ij)t=ai;ai=aj;aj=t;f(a,i+1,j-1);main()int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(“%d,“,aai);printf(“/n“);执行后的输出结果是U /U。(分数:2.00)填空项 1:_44.一个关系表的行称为 1。(分数:2.00)填空项 1:_45.设 x为 int型变量,请写出一个关系表达式 1,用以判断 x同时为 3和 7的倍数时,关系表达式的值为真。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回
18、车。输出结果是_。#includestdio.hmain()int i=0,j=0,k=0;scanf(“%d%*d%d“,i,j,k);printf(“%d%d%d/n“,i,j,k);(分数:2.00)填空项 1:_47.若有定义:int k;,则以下程序段的输出结果是_。for(k=2;k6;k+,k+) printf(“#%d“,k);(分数:2.00)填空项 1:_48.下列程序的输出结果是_。main()int a=1,b=2,c=3,t=0;if(aB) t=a;a=b;b=t;if(aC) t=a;a=c;c=t;printf(“%d,%d,%d/n“,a,b,c);(分数:2
19、.00)填空项 1:_49.已知字符A的 ASCII码为 65,以下程序运行后的输出结果是U /U。#include stdio.hmain( )char a,b;a=A+5-3; b=a+6-2;printf( “% d% c/n“, a, b);(分数:2.00)填空项 1:_50.以下程序的定义语句中,x1的初值是_,程序运行后输出的内容是_。 #includestdio.h main() int x=1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16,*p4,i; for(i=0;i4;i+) pi=printf(“Enter a number:“); sca
20、nf(“%d“,n);printf(“Output: “);dos=n%10; printf(“%d“,s); _;while(n!=0);printf(“/n“);(分数:2.00)填空项 1:_52.以下程序的输出结果是_。#includestdio.hvoid swap(int *a,int *b)int *t:t=a;a=b;b=t;main( )int i=3,j=5,*p=(分数:2.00)填空项 1:_54.在宏定义#define P13.14159 中,用宏名 PI代替一个_。(分数:4.00)填空项 1:_55.以下程序是求矩阵 a、b 的和,结果存入矩阵 c中,请填空。 #
21、includestdio.h main() int a44=1,2,6,7,0,4,2,-8,1,4,5,2,2,4,6,8; int b44=-4,0,7,9,2,-7,7,4),6,9,0,1),8,8,6,5); int i,j,c44; for(i=0;i4;i+) for(j=0;j4;j+) cij=_; for(i=0;i4;i+) for(j=0;j4;j+) printf(“%d“,cij); (分数:2.00)填空项 1:_二级 C语言笔试-478 答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.支持子程序调用的数据结构是A
22、) 栈 B) 树 C) 队列 D) 二叉树(分数:2.00)A. B.C.D.解析:解析 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。在主程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点。2.对线性表进行二分法检索,其前提条件是( )。A) 线性表以顺序方式存储,并按关键码值排好序B) 线性表以顺序方式存储,并按关键码的检索频率排好序C) 线性表以链式方式存储,并按关键码值排好序D) 线性表以链式方式存储,并按关键码的检索频率排好序(分数:2.00)A. B.C.D.解析:解
23、析 对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。3.设有表示学生选课的三张表,学生表(学号,姓名,性别),课程表(课程号,课程名),选课成绩表(学号,课程号,成绩),则选课成绩表的关键字为( )。A) 课程号,成绩 B) 学号,成绩C) 学号,课程号 D) 学号,课程号,成绩(分数:2.00)A.B.C. D.解析:解析 关键字是指属性或属性的组合,其值能够惟一地标识一个元组,而在选课成绩表中学号和课程号的组台可以对元组进行惟一的标识。所以学号与课程号组合作为选课成绩表的主4.数据流程图(DFD 图)是( )。A软件概要设计的工
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 478 答案 解析 DOC
