【计算机类职业资格】二级C语言笔试-457及答案解析.doc
《【计算机类职业资格】二级C语言笔试-457及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-457及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-457 及答案解析(总分:103.50,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.程序流程图中带有箭头的线段表示的是( )。A) 图元关系 B) 数据流 C) 控制流 D) 调用关系(分数:2.00)A.B.C.D.2.下列描述中正确的是( )。A) 程序就是软件 B) 软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体 D) 软件是程序、数据与相关文档的集合(分数:1.00)A.B.C.D.3.以下数据结构中,属于非线性数据结构的是( )。 A) 栈 B) 线性表 C) 队列 D) 二叉树(分数:2.00)A.B.C.D.4.在单链
2、表中,增加头结点的目的是( )。A) 方便运算的实现B) 使单链表至少有一个结点C) 标识表结点中首结点的位置D) 说明单键表是线性表的链式存储实现(分数:1.00)A.B.C.D.5.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。A)调用语句 B)命令 C)N 令 D)消息(分数:2.00)A.B.C.D.6.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.7.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) N-S D) DFD(分数:2.00)A.B.C.D.8.下列说法不正确的是( )。A) C程序是以
3、函数为基本单位的,整个程序由函数组成C) C语言程序的一条语句可以写在不同的行上B) C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C程序的每个语句都以分号结束(分数:1.00)A.B.C.D.9.计算机能直接执行的程序是_。A) 源程序 B) 目标程序 C) 汇编程序 D) 可执行程序(分数:1.00)A.B.C.D.10.若函数中有定义语句:int k;,则_。A) 系统将自动绐 K赋初值 0 B) 这时 K中的值无定义C) 系统将自动绐 K赋初值-1 D) 这时 K中无任何值(分数:2.00)A.B.C.D.11.以下不正确的转义字符是( )。 A) / B)
4、/d C) /s D) 088(分数:1.00)A.B.C.D.12.若 w、x、y、z、m 均为 int型变量,则执行下列的语句后 m的值是( )。w=2,x=3,y=4,z=5;m=(wx)?w:x;m=(mz)?m:z;m=(my)?m:y;A) 2 B) 3 C) 5 D) 4(分数:1.00)A.B.C.D.13.有以下程序:#includestdio.hmain()char a,b,c,d;scanf(“%c%c“,语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是(注:代表空格字符)A) 10X20YB) 10X20Y
5、C) 10X20YD) 10X20Y(分数:1.00)A.B.C.D.15.设有定义 int a; float b;执行 scanf(“%2d%f“,a,b);语句时,若从键盘输入 876 543.0回车,a 和 b的值分别是_。(A) 876和 543.000000(B) 87和 6.000000(C) 87和 543.000000(D) 76和 543.000000(分数:1.00)A.B.C.D.16.若变量已正确定义,下列正确的程序段是( )。A) while(ch=getchar()=/N)putchar(ch);B) while(ch=getchar()=/n)putchar(ch
6、);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D.17.有下列函数定义:int fun(double a,double b)return a*b;若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。A) if(fun(x,y) B) z=fun(fun(x,y),fun(x,y);C) z=fun(fun(x,y)x,y); D) fun(x,y);(分数:2.00)A.B.C.D.18.有下列程序:fun(int x,int y)static
7、 int m=0,i=2;i+=m+1;m=i+x+y;return m;main()int j=1,m=1,k;k=fun(j,m);printf(“%d,“,k);k=fun(j,m);printf(“%d/n“.k);执行后的输出结果是( )。A) 5,5 B) 5,11 C) 11,11 D) 11,5(分数:2.00)A.B.C.D.19.表达式8-2的值是( )。A) 整数 6 B) 字符 6 C) 表达式不合法 D) 字符 8(分数:2.00)A.B.C.D.20.下列选项中不是字符常量的是( )。A) /v B) /x2aC) a D) “/0/(分数:1.00)A.B.C.D
8、.21.已有定义:char a=“xyz“, b=x, y, z;,下列叙述中正确的是( )。A) 数组 a和 b的长度相同 B) a 数组长度小于 b数组长度C) a数组长度大于 b数组长度 D) 上述说法都不对(分数:2.00)A.B.C.D.22.设有定义:char s10;int i=0;,以下不能将一行(不超过 100个字符)带有空格的字符串正确读入的语句或语句组是( )。 A) gets(s); B) scanf(“%s“,s); C) while(si+=getchar()!=/n);si=/0; D) doscanf(“%c“, char c;REC; REC t1,t2;B)
9、 struct REC;int n; char c;REC t1,t2;C) typedef struct REC; int n=0; char c=A; t1,t2; D) stmctint n; char c; REC;REC t1,t2;(分数:2.00)A.B.C.D.26.以下程序运行后的输出结果是#includestdio.hmain( )int i=5;doif(i%3=1 if(i%5=2)printf(“*%d“,i);break;i+:while(i!=0);printf(“/n“);A) %7 B) *3*5 C) *5 D) *2*6(分数:2.00)A.B.C.D.2
10、7.以下程序运行后的输出结果是int f(int n)if(n=1)return 1;else return f(n-1)+1;main( )int i,j=0;for(i=1;i3;i+) j+=f(i);printf(“%d/n“,j);A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B.C.D.28.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。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-
11、)f*=i;(分数:2.00)A.B.C.D.29.若有说明语句: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.30.有以下程序,其中函数 f的功能是将多个字符串按字典顺序排序:#includestringhvoidf(char*p,intn)char*t;int i,j;for(i=0;in-1;i+)for (j=i+1;jn;j+)if(strcmp(
12、pi,pj)0)t=pi;pi=pj;pj=t;main()char*p5=“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“;f(p,5);printf(“%d/n“,strlen(p1);程序运行后的输出结果是_。A) 2 B) 3 C) 6 D) 4(分数:2.00)A.B.C.D.31.对于下列字符串,说明表达式 strlen(s) 值的是( )char s10=(a,/n,a,b,/t,c;A) 10 B) 1 C) 6 D) 7(分数:1.00)A.B.C.D.32.有以下程序:#define f(x)(x*x)main()int i1,i2;i1=f(8)/f(
13、4);i2=f(4+4)/f(2+2);printf(“%d,%d/n“,i1,i2);程序运行后的输出结果是_。A) 64,28 B) 4,4 C) 4,3 D) 64,64(分数:2.00)A.B.C.D.33.以下程序的输出结果是char cchar(char ch)if(ch=A printf(“%d/n“, r 1);A) 16 B) 8 C) 4 D) 2(分数:2.00)A.B.C.D.36.有以下程序 #includestdio.h main() short c=124; c=c_; printf(“%d/n“,c); 若要使程序的运行结果为 248,应在下划线处填入的是( )
14、。 A) 2 B) |248 C) 0248 D) 1(分数:2.00)A.B.C.D.37.设 fp已定义,执行语句 fp=fopen(“file“, “w“);后,以下针对文本文件 file操作叙述的选项中正确的是_。A) 写操作结束后可以从头开始读 B) 只能写不能读C) 可以在原有内容后追加写 D) 可以随意读和写(分数:1.00)A.B.C.D.38.读取二进制文件的函数调用形式为:fread(buffer,size,count,pf);,其中 buffer代表的是_。A) 一个文件指针,指向待读取的文件B) 一个整型变量,代表待读取的数据的字节数C) 一个内存块的首地址,代表读入数
15、据存放的地址D) 一个内存块的字节数(分数:2.00)A.B.C.D.39.标准库函数 fgets(s,n,file)的功能是( )。A) 从文件 file中读取长度为 n的字符串存入字符数组 s中B) 从文件 file中读取长度不超过 n-1个字符的字符串放到字符数组 s中C) 从文件 file中读取 n个字符串存入字符数组 s中D) 从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中(分数:2.00)A.B.C.D.40.下面判断正确的是( )。A) char *a=“china“;等价于 char *a;*a=“ghina“;B) char str5=“china“;等
16、价于 char str=“china“;C) char*s=“china“;等价于 char*s;s=“china“;D) charc4=“abc“,d4=“abc“;等价于 char c4=d4=“abc“;(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:35.50)41.某二叉树中度为 2的结点有 18个,则该二叉树中有U /U个叶子结点。(分数:2.00)填空项 1:_42.在关系数据库中,把数据表示成二维表,每一个二维表称为U /U。(分数:2.00)填空项 1:_43.数据库系统的三级模式分别为U /U模式、内部级模式与外部级模式。(分数:2.00)填空项 1:_4
17、4.某二叉树中度为 2的结点有 18个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_45.一个关系表的行称为 1。(分数:2.00)填空项 1:_46.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三个条件:a+bc,a+cb,b+ca。请填空。main()float a,b,c;scanf(“%f%f%f“,i+)if(a%i=0)U /U;U /U;(分数:4.00)填空项 1:_填空项 1:_下面程序的功能是:将 N行 N列二维数组中每一行的元素
18、进行排序,第 0行从小到大排序,第 1行从大到小排序,第 2行从小到大排序,第 3行从大到小排序,例如:*请填空。#define N 4void sort(int aN)int i,j,k,t;for(i=0;iN;i+)for(j=0;jN-1;j+)for(k=U /U;kN;k+)/*判断行下标是否为偶数来确定按升序或降序来排序*/if(U /U?aijaik:aijaik)t=aij;aij=aik;aik=t;void outarr(int aNN)main()int aNN=2,3,4,1),8,6,5,7,11,12,10,9,15,14,16,13;outarr(aa);/*以
19、矩阵的形式输出二维数组*/sour(aa);outarr(aa);(分数:4.00)填空项 1:_填空项 1:_48.设有以下结构体类型:Struct stchar name8;int num;float s4;student50;并且结构体数组 student中的元素都已有值,若要将这些元素写到硬盘文件 fp中。请将以下 fwrite语句补充完整:fwrite(student,_,1,fp);(分数:2.00)填空项 1:_49.以下 sstrcpy()函数实现字符串复制,即将 t所指字符串复制到 s所指内存空间中,形成一个新字符串 s。请填空。void sstrcpy(char *s,ch
20、ar *t)while( *s+=U /U);main()char strl100,str2=“abcdefgh“;sstrcpy(str1,str2);printf(“%s/n“,str1);(分数:2.00)填空项 1:_50.设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件 read metxt 的最后续写内容。fw=fopen(“readme.txt“,“_“)(分数:2.00)填空项 1:_51.下面程序的运行结果是_。 #define P(a)printf(“%d“,a) main() int j,a=1,2,3,4,5,6,7,i=5; for(j=
21、3;j1;j-) switch(j) case 1: case 2:P(ai+);break; case 3:P(a-i); (分数:2.00)填空项 1:_52.以下程序运行后的输出结果是_。main()char c1,c2;for(c1=0,c2=9;c1c2;c1+,c2-) printf(“%c%c“,c1,c2);printf(“/n“);(分数:2.00)填空项 1:_二级 C语言笔试-457 答案解析(总分:103.50,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.程序流程图中带有箭头的线段表示的是( )。A) 图元关系 B) 数据流 C) 控制流 D)
22、 调用关系(分数:2.00)A.B.C. D.解析:解析 程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件,2.下列描述中正确的是( )。A) 程序就是软件 B) 软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体 D) 软件是程序、数据与相关文档的集合(分数:1.00)A.B.C.D. 解析:解析 计算机软件是包括程序、数据及相关文档的完整集合。它具有的特点有:软件是一种逻辑实体,而不是物理实体,具有抽象性。软件的生产过程与硬件不同,它没有明显的制作过程。软件在运行、使用期间不存在磨损
23、、老化问题。软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题。软件复杂性高,成本昂贵。软件开发涉及诸多的社会因素。3.以下数据结构中,属于非线性数据结构的是( )。 A) 栈 B) 线性表 C) 队列 D) 二叉树(分数:2.00)A.B.C.D. 解析:解析 二叉树属于非线性结构。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作;队列可看作是插入在一端进行,删除在另一端进行的线性表。4.在单链表中,增加头结点的目的是( )。A) 方便运算的实现B) 使单链表至少有一个结点C) 标识表结点中首结点的位置D) 说明单键表是线性表的链式存储实现(分
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 457 答案 解析 DOC
