【计算机类职业资格】二级C语言笔试-456及答案解析.doc
《【计算机类职业资格】二级C语言笔试-456及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-456及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-456 及答案解析(总分:101.50,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.下列叙述中正确的是( )。A) 线性链表的各元素在存储空间中的位置必须是连续的B) 线性链表的头元素一定存储在其他元素的前面C) 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.2.下列叙述中正确的是( )。A) 线性链表的各元素在存储空间中的位置必须是连续的B) 线性链表的头元素一定存储在其他元素的前面C)
2、线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.3.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.4.在 E-R 图中,用来表示实体的图形是( );A) 矩形 B) 椭圆形 C) 菱形 D) 三角形(分数:1.00)A.B.C.D.5.下列选项中,不属于模块间耦合的是( )。 A) 内容耦合 B) 异构耦合 C) 控制耦合 D) 数据耦合(分数:2.00)A.B.C.D.6.关于结构化程序设计原则和方法
3、描述错误的是( )。A) 选用的结构只准许有一个入口和一个出口B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C) 不允许使用 GOTO 语句D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数:2.00)A.B.C.D.7.数据库管理系统中负责数据模式定义的语言是( )。A数据定义语言 B数据管理语言C数据操纵语言 D数据控制语言(分数:1.00)A.B.C.D.8.数据存储和数据流都是_,仅仅是所处的状态不同。A) 分析结果 B) 事件 C) 动作 D) 数据(分数:2.00)A.B.C.D.9.设有定义:int k=1,m=2; float f=7;则以下选项中错误的
4、表达式是 _。A) k=k=k B) -k+ C) k% int(f) D) k=f=m(分数:2.00)A.B.C.D.10.在数据库设计中,将 E-R 图转换为关系模式的过程属于( )。A) 需求分析阶段 B) 逻辑设计阶段C) 概念设计阶段 D) 物理设计阶段(分数:2.00)A.B.C.D.11.以下有 4 组用户标识符,其中合法的一组是_。A) FOR -subCaseB) 4dDOSizeC) f2_G3IFabcD) WORDvoiddefine(分数:1.00)A.B.C.D.12.下列程序的执行结果是( )#includestdio.hmain() int a,b,c;a=b
5、=2;c=(a+) -1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);A) 3,14,1 B) 3,14,2 C) 2,04,1 D) 2,14,1(分数:2.00)A.B.C.D.13.以下叙述中错误的是A) 计算机不能直接执行用 C 语言编写的源程序B) C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D.14.下列正确的实型常量是( )
6、。A) E3.4 B) -12345C) 2.2eO.8 D) 4(分数:1.00)A.B.C.D.15.以下叙述中错误的是 A) C 程序在运行过程中所有计算都以二进制方式进行 B) C 程序在运行过程中所有计算都以十进制方式进行 C) 所有 C 程序都需要编译链接无误后才能运行 D) C 程序中整型变量只能存放整数,实型变量只能存放浮点数(分数:1.00)A.B.C.D.16.以下叙述中正确的是( )。A) 构成 C 程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main 函数必须放在其他函数之前D) 所有被调用函数一定要在调用之前进行定义(分数:1.00)A.B.C.D.
7、17.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。A) 26 B) 28 C) 29 D) 24(分数:1.00)A.B.C.D.18.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是(
8、 )。main()int x;scanf(“%d“,if(x+2) printf(“%d“,x);elseprintf(“%d/n“,x-);A) 4 和 2 B) 4 和 1 C) 4 和 0 D) 3 和 1(分数:2.00)A.B.C.D.19.若有下列定义(设 int 类型变量占 2 个字节):int i=8,j=9;则下列语句:printf(“i=%u,j=%x/n“,i,j);输出的结果是( )。A) i=8,j=9 B) 8.9 C) 8 9 D) i=8,j=8(分数:1.00)A.B.C.D.20.有以下程序#includestdio.hmain()int x=8;for(;
9、x0;X-)if(x%3)printf(“%d,“,x-);continue;printf(“%d,“,-x);程序的运行结果是( )。A7,4,2 B8,7,5,2 C9,7,6,4 D8,5,4,2(分数:1.00)A.B.C.D.21.若变量已正确定义,下列正确的程序段是( )。A) while(ch=getchar()=/NN)putchar(ch);B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.
10、00)A.B.C.D.22.以下选项中值为 1 的表达式是_。(A) 1-0(B) 1-/0(C) 1-0(D) /0-0(分数:2.00)A.B.C.D.23.若要求从键盘读入含有窄格字符的字符串,应使用函数( )。 A) getc() B) gets() C) getchar() D) scanf()(分数:2.00)A.B.C.D.24.已有定义“char c;”,程序前面已在命令行中包含 ctype.h 文件,不能用于判断 c 中的字符是否为大写字母的表达式是( )。Aisupper(c) BA-c=ZCA=cfor(i=9;i=0;i-)ai=1O-i;printf(“%d%d%d“
11、,a2,a5,a8);A) 258 B) 741 C) 852 D) 369(分数:2.00)A.B.C.D.26.有以下程序#include stdiohmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是A) 0 B) 1 C) 2 D) 3(分数:1.00)A.B.C.D.27.恢复系统默认菜单的命令是_。A) SET MENU TO DEFAULT B) SET SYSMENU TO DEFAULTC) SET SYSTEM MENU TO DEFAULT D) SET SYST
12、EM TO DEFAULT(分数:2.00)A.B.C.D.28.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是 ( )。A) *p=scanf(“%1f“,p); B) *p=scanf(“%f“,p);C) p=scanf(“%1f“,*p);D) p=scanf(“%1f“,p);(分数:2.00)A.B.C.D.29.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是( )。A) p1=p2=p1;(分数:1.00)A.B.C.D.30.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。A) f=0; f
13、or(i=1;i=n;i+)f*=i;B) f=1;for(i=1;in;i+)f*=i;C) f=1;for(i=n;i1;i+)f*=i;D) f=1;for(i=n;i=2;i-)f*=i;(分数:2.00)A.B.C.D.31.以下程序运行后的输出结果是fun(int x,int y,int z) z=x*y;main( )int a=4,b=2,c=6;fun(a,b,c);printf(“%d“,c);A) 16 B) 6 C) 8 D) 12(分数:2.00)A.B.C.D.32.有以下程序#include stdioh#define N 8void fun(int*x,int
14、i*x=*(x+1);main()int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=0;iN/2;i+)printf(“%d“,ai);printf(“/n“);程序运行后的输山结果是A) 1 3 1 3 B) 2 2 3 4 C) 3 2 3 4 D) 1 2 3 4A.B.C.D.33.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为( )。A) EOF B) 非 0 值C) 0 D) NULL(分数:2.00)A.B.C.D.34.若有以下程序:#includestdiohint a=2,4,6,8;main()in
15、t i;int *p=a;for(i=0;i4;i+) ai=*p;printf(“%d/n“,a2);上面程序的输出结果是( )。A) 6 B) 8 C) 4 D) 2(分数:1.00)A.B.C.D.35.下列叙述中错误的是( )。A) 在 C 语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B) 在 C 语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容C) 在 C 语言中,外部变量的隐含类型是自动存储类别D) 在 C 语言中,函数形参的存储类型是自动(auto)类型的变量(分数:1.00)A.B.C.D.36.有以下程序:struct Sint n;int a20;voi
16、d f(int*a,int n)int i;for(i=0;in-1;i+)ai+=i;mainf()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;if(s.a,s.n);for(i=0;is.n;i+)printf(“%d“,s.ai);程序运行后的输出结果是_。A) 2,4,3,9,12,12,11,11,18,9 B) 3,4,2,7,9,8,6,5,11,10C) 2,3,1,6,8,7,5,4,10,9 D) 1,2,3,6,8,7,5,4,10,9(分数:2.00)A.B.C.D.37.下面程序的输出结果为_。#includestring.hmai
17、n()char p17=“abc“,p2=“ABC“,str50=“xyz“;strcpy(str,strcat(p1,p2);printf(“%s“,str);A) xyzabcABC B) abcABC C) xyzabc D) xyzABC(分数:2.00)A.B.C.D.38.有以下程序#includestdio.hvoid fun(char*t,char*s)while(*t!=0)t+;while(*t+=*s+)!=0);main()char ss10=“ace“,aa10=“bbxxyy“;fun(ss,aa);printf(“%s,%s“,ss,aa);程序运行结果是( )。
18、Aacexyy,bbxxyy Bace,bbxxyyCaccxxyy,bbxxyy Daccbbxxyy,bbxxyy(分数:1.00)A.B.C.D.39.设有下列说明语句:Strcut Strint x;float y;char z;st;则下列的叙述中不正确的是( )。A) struct 是结构体类型的关键字 B) st 是结构体类型名C) x、y、z 都是结构体成员名 D) struct str 是结构体类型名(分数:2.00)A.B.C.D.40.执行以下程序后,test.txt 文件的内容是(若文件能正常打开)_。#includestdio.hmain()FILE*fp;char*
19、s1=“Fortran“,*s2=“Basic“;if(fp=fopen(“test.txt“,“wb“)=NULL)printf(“Cant open test.txt file/n“);exit(1);fwrite(s1,7,1,fp);/*把从地址 s1 开始的 7 个字符写到 fp 所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/fwrite(s2,5,1,fp);fclose(fp);A) Basican B) BasicFortran C) Basic D) FortranBasic(分数:2.00)A.B.C.D.二、填空题(总题数:15
20、,分数:39.50)41.测试用例包括输入值集和U /U值集。(分数:1.50)填空项 1:_42.深度为 5 的满二叉树中,叶子结点的个数为 1。(分数:2.00)填空项 1:_43.设二叉树如下:(分数:4.00)填空项 1:_44.最简单的交换排序方法是 1。(分数:2.00)填空项 1:_45.45.U /U是数据库设计的核心。(分数:2.00)填空项 1:_46.在 E-R 图中,矩形表示 1。(分数:2.00)填空项 1:_47.设 Y 是 int 型变量,请写出判断 Y 为奇数的关系表达式U /U。(分数:2.00)填空项 1:_48.在关系模型中,把数据看成是二维表,每一个二维
21、表称为一个_。(分数:4.00)填空项 1:_49.下列程序的循环次数是_。x=2;dox=x*x;while(!x);(分数:2.00)填空项 1:_50.已有定义: double * p; 请写出完整的语句,利用 malloc 函数使 p 指向一个双精度型的动态存储单元:U /U。(分数:2.00)填空项 1:_51.下列的 for 语句的循环次数为_。for(x=1,y=0;(y!=19)x+);(分数:2.00)填空项 1:_52.以下程序中函数 f 的功能是在数组 x 的 n 个数(假定 n 个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请
22、填空。#include stdio.hvoidf(int x,int n)int p0,p1,i,j,t,m;i=j=x0; p0=p1=0;for(m=0;mn;m+)if(xmi i=xm;p0=m;else if(xmj j=xm;p1:m;t=xp0;xp0=xn-1;xn-1)=tt=xp1;xp1=U /U;U /U=t;main()int a10,u;for(u=0;u10;u+) scanf(“%d“,a=b=2;c=(a+) -1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);A) 3,14,1 B) 3,14,2 C)
23、 2,04,1 D) 2,14,1(分数:2.00)A. B.C.D.解析:解析 本题主要考查自加运算符(+、-)的使用。前缀变量“+i、-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算:后缀变量“i+、i-”,先使用此时的表达式的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。题中计算表达式 c=(a+)-1 时先使用 a 的值进行计算,结果为 c=2-1=1,然后将 a 的值加 1,即执行完此语句后 a 的值是 3;表达式 c+=-a+(+b)等价于 c=c+(-a+)+(+b),c=1+(-3)+3=1,此时 a=4,b=3。13
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 456 答案 解析 DOC
