【计算机类职业资格】二级C语言笔试-300及答案解析.doc
《【计算机类职业资格】二级C语言笔试-300及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-300及答案解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-300 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为( )。(分数:2.00)A.EOFB.非 0 值C.0D.NULL2.下列程序执行的输出结果是( )。#inCludestdio.hmain()char a24;strcpy(a,“are“);strcpy(a1,“you“);a03=printf(“%s/n“,(分数:2.00)A.;A) areB.double b=l+3e2.8;C.long do=0xfdaL;D.f
2、loat2_aaa=1e-3;4.若有定义血 b8,*p=b;则 p+6 表示( )。(分数:2.00)A.数组元素 b6的值B.数组元素 b6的地址C.数组元素 b7的地址D.数组元素 b0的值加上 65.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。(分数:2.00)A.f=0;for(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;6.对两个数组 a 和 b 进行下列初始化:char m=“1234567“;char n=1,2,3,4
3、,5,6,7;则下列叙述正确的是( )。(分数:2.00)A.数组 m 与数组 n 完全相同B.数组 m 与数组 n 长度相同C.数组 m 比数组 n 长 1D.数组 m 与数组 n 中都存放字符串7.下列程序的输出结果是( )。#includestdio.hint b=2;int func(int*(分数:2.00)A.b+=*a;retum b;main()int a=1,t=2;t+=func(printf(“%d/n“,t);A) 4B.5C.6D.88.若有下列定义(设 int 类型变量占 2 个字节):float x=123.4567;则下列语句:printf(“x=%5.2f“,
4、x);输出的结果是( )。(分数:2.00)A.x=123.46B.123.4567C.x=123.4567D.123.469.按照“先进先出”组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树10.下列所述中,是软件调试技术的是( )。(分数:2.00)A.错误推断B.集成测试C.回溯法D.边界值分析11.下列叙述中正确的是( )。(分数:2.00)A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空
5、间中的位置不一定是连续的,且各元素的存储顺序也是任意的12.已知函数 fread.的调用形式为 fread(buffer,size,count,fp);,其中 buffer 代表的是( )。(分数:2.00)A.存放读入数据项的存储区B.一个指向所读文件的文件指针C.一个指针,是指向输入数据存放在内存中的起始地址D.一个整型变量,代表要读入的数据项总数13.设有定义下列:inta=1,b=2,c=3,d=4,m=2,n=2;则表达式(m=aB) scanf(“%d%d“,S=a;if(aB) s=b;s=s*s;printtf(“%d/n“,s);(分数:2.00)A.1B.4C.2D.918
6、.设已包含头文件string.h,下列程序段的运行结果是( )。char s1=“ACDEF“;char s2=“ABC“;strcpy(s1,s2) ;printf(“%d“,strlen(s1) );(分数:2.00)A.3B.4C.6D.519.下列程序的输出结果是( )。void f(int*x,int*y)int t;t=*x,*x=*y;*y=t;main()int a8=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q=while(pq)f(p,q);p+;q-;for(i=0;i8;i+)printf(“%d,“,ai);(分数:2.00)A.8,2,3,4,5,6,
7、7,1B.5,6,7,8,1,2,3,4C.1,2,3,4,5,6,7,8D.8,7,6,5,4,3,2,120.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性21.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。(分数:2.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMSD.没有任何关系22.一个源文件中的外部变量的作用域为( )。(分数:2.00)A.本文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变
8、量的位置开始到本文件结束23.若有定义 float a=25,b,*p=,则下列对赋值语句*p=a;和 p=的正确解释为( )。(分数:2.00)A.两个语句都是将变量 a 的值赋予变量 pB.*p=a 是使 p 指向变量 a,而 p=float y;int a2;unsigned b3;char name10;B.structstuunsigneda3;unsigned b4;x;int*p=C.struc tsuint a;float x4;y=1,1.0;floatdat a=y.x;D.stmct ndint a,b;unsigned c2=5;26.结构化分析方法是面向( )的自顶向
9、下逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流D.目标27.简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序28.运行下列程序,若从键盘输入字母“a”,则输出结果是( )。Char c;c=getchar();if(c=aelse if(c=gelse printf(“input error!/n“);putchar(C) ;(分数:2.00)A.fB.tC.eD.d29.有下列程序:main()int t,a=1,b=5,C=-2;while(abC) t=a;a=b;b=t;c+;printf(“%d,%d,%d“
10、,a,b,C) ;程序的输出结果是( )。(分数:2.00)A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-230.下列程序的运行结果是( )。#includestdio.h#define ADD(x)x+xmain()int m=1,n=2,k=3;int s=ADD(m+n)*k;printf(“s=%d“,s);(分数:2.00)A.sum=18B.sum=10C.sum=9D.sum=2531.执行下列程序段后,变量 a,b,c 的值分别是( )。int x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+X;C=y;(分数:1.00)A.a=5,b=5
11、,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=632.下列程序的输出结果是( )。#includestdio.hmain()char a=a,b,c,d,e,f,/0;int i,j;i=sizeof((分数:1.00)A.;j=strlen(A) ;printf(“%d,%d“B.7,6C.6,6D.6,733.下列叙述中正确的是( )。(分数:1.00)A.C 程序由函数组成B.C 程序由主函数构成C.C 程序由函数和过程构成D.在 C 程序中无论是整数还是实数,都可以正确无误的表示出来34.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:1.
12、00)A.XZCYABB.XYZABCC.XYABCZD.XYAZBC35.已有定义:char a=“xyz“,b=x,y,z;,下列叙述中正确的是( )。(分数:1.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度D.上述三种说法都不对36.下列叙述中正确的是( )。(分数:1.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3 种说法都不对37.算法的空间复杂度是指( )。(分数:1.00)A.算法程序的
13、长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间38.下列程序的输出结果是( )。#includestdio.hmain()int i;for(i=1;i=10;i+)if(i*i=20) printf(“%d/n“,i*i);(分数:1.00)A.49B.36C.25D.6439.下列程序的输出结果是( )。main()int a=1,b=2;printf(“%d,%d/n“,-a,+B) ;(分数:1.00)A.1,2B.1,3C.0,2D.0,340.设有定义:int nl=0,n2,*p=,下列赋值语句中与 n2=n1;语句等价的是( )。(分数
14、:1.00)A.*p=*q;B.p=q;C.*p=D.p=*q;二、填空题(总题数:15,分数:30.00)41.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为 1。(分数:2.00)填空项 1:_42.在关系模型中,二维表的行称为 1。(分数:2.00)填空项 1:_43.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中, 1 是用户的数据视图,也就是用户所见到的数据模式。(分数:2.00)填空项 1:_44.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序。(分数
15、:2.00)填空项 1:_45.栈的 3 种基本运算是:入栈、退栈和 1。(分数:2.00)填空项 1:_46.若 a 的值为 1,则表达式!a+a 的值是 1。(分数:2.00)填空项 1:_47.若 a 是血型变量,且 a 的初值为 4,则计算 a+=a-=a*a 表达式后 a 的值为 1。(分数:2.00)填空项 1:_48.下列程序的输出结果是_。#includestdio.hmain()int a=2,b=-1,C=2;if(aB) if(bO)c=0;else c+;printf(“%d/n“,C) ;(分数:2.00)填空项 1:_49.下列程序的循环次数是_。x=2;dox=x
16、*x;while(!x);(分数:2.00)填空项 1:_50.下列程序段的运行结果是_。int x=0,y=0;while(x15) y+,x+=+y;printf(“%d,%d“,y,x);(分数:2.00)填空项 1:_51.下列程序的运行结果是_。main()int s=0,i=1;while(s=10)S=S+i*i;i+;bprintf(“%d“,-i);(分数:2.00)填空项 1:_52.下列程序的输出结果是_。10ng fun5(int n)long s;if(n=1) (n=2)s=2;elses=n+fun5(n-1) ;return(s);main()long x;x=
17、fun5(4);printf(“%1d/n“,x);(分数:2.00)填空项 1:_53.下列程序的输出结果是_。main()int a=2,b=4,c=6;int*p1=*(p=printf(“%d/n“,c);(分数:2.00)填空项 1:_54.下列程序运行后的输出结果是_。#includestdio.hmain()char s20;scanf(“%S“,S);printf(“%s“,s);运行程序,输入 HOW ARE YOU。(分数:2.00)填空项 1:_55.下列程序的运行结果是_。#define POW(r)(r)*(r)main()int x=3,y=2,t;t=POW(x+
18、y);printf(“%d/n“,t);(分数:2.00)填空项 1:_二级 C 语言笔试-300 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为( )。(分数:2.00)A.EOFB.非 0 值 C.0D.NULL解析:解析 ANSI C 提供的 feof 函数的功能是判断 fp 所指的文件的位置是否已达到文件尾,如果达到文件尾,则 feof 函数的值为 1,否则为 0,表示文件尚未结束。2.下列程序执行的输出结果是( )。#inCludestdio
19、.hmain()char a24;strcpy(a,“are“);strcpy(a1,“you“);a03=printf(“%s/n“,(分数:2.00)A.;A) are B.double b=l+3e2.8;C.long do=0xfdaL;D.float2_aaa=1e-3;解析:解析 解答本题需了解 3 个知识点:标识符是由字母、数字或下画线组成,并且它的第一个字符必须是字母或者下画线;do 是 C 语言中的一个关键字,不能再用做变量名和函数名:C 语言规定指数形式的实型常量 e 或 E 后面的指数必须是整数。4.若有定义血 b8,*p=b;则 p+6 表示( )。(分数:2.00)A
20、.数组元素 b6的值B.数组元素 b6的地址 C.数组元素 b7的地址D.数组元素 b0的值加上 6解析:解析 指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中将 p+6 指的是将指针向后移动了 6 个存储单元,指向 b6,存放的是 b6的地址。5.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。(分数:2.00)A.f=0;for(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;
21、 解析:解析 要正确计算函数 f=n!,由 n!的数学定义可知 n!=n*(n-1)*(n-2)*1。在选项 A 中,由于 f 的初值为 0,在 for 循环语句中,f 依次乘以 1,2,3, n。最后计算 f=n!=0,所以选项 A 不正确。在选项 B 中,f 的初值为 1,在 for 循环语句中,f 依次乘以 1,2, 3,(n-1)。最后计算得到 f=(n-1)!,所以选项 B 不正确。在选项 C)中,f 的初值为 1,在 for 循环语句中, f 依次乘以 n,n+1,n+2,,所以选项 C)不正确。在选项 D)中,f 的初值为 1,在 for 循环语句中,f 依次乘以 n,n-1,n
22、-2,2。最后计算 f=n!,所以选项 D)正确。6.对两个数组 a 和 b 进行下列初始化:char m=“1234567“;char n=1,2,3,4,5,6,7;则下列叙述正确的是( )。(分数:2.00)A.数组 m 与数组 n 完全相同B.数组 m 与数组 n 长度相同C.数组 m 比数组 n 长 1 D.数组 m 与数组 n 中都存放字符串解析:解析 本题考查字符数组和字符串赋值给数组的一些区别。.语句“char m=“1234567“;”定义了一个字符型数组并进行了初始化,C 语言规定,在字符串的末尾自动加上串结束标记/0,因此数组 m 的长度是 8;而数组 n 是按照字符方式
23、对数组进行初始化,系统不会自动加上串结束标记/0,因此数组 n 的长度是 7。7.下列程序的输出结果是( )。#includestdio.hint b=2;int func(int*(分数:2.00)A.b+=*a;retum b;main()int a=1,t=2;t+=func(printf(“%d/n“,t);A) 4B.5 C.6D.8解析:解析 本题考查函数调用时的参数传递。在执行函数 func 时,由于全局定义了一个变量 b,所以在函数体中执行时 b=2+1=3,最终 t=2+3=5。8.若有下列定义(设 int 类型变量占 2 个字节):float x=123.4567;则下列语
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 300 答案 解析 DOC
