欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1326268       资源大小:93.50KB        全文页数:30页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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) 说明单键表是线性表的链式存储实现(分

    24、数:1.00)A. B.C.D.解析:解析 头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。5.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。A)调用语句 B)命令 C)N 令 D)消息(分数:2.00)A.B.C.D. 解析:解析 在面向对象方法中;对象之间通过消息进行通信。消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式完成所需的处理。6.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2

    25、.00)A.B.C.D. 解析:解析 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住 3种遍历的顺序:前序,访问根一按前序遍历左子树一按前序遍历右子树;中序,按中序遍历左子树一访问根一按中序遍历右子树;后序,按后序遍历左子树一按后序遍历右子树一访问根。7.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) N-S D) DFD(分数:2.00)A.B.C.D. 解析:解析 需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流

    26、程图)、 N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。8.下列说法不正确的是( )。A) C程序是以函数为基本单位的,整个程序由函数组成C) C语言程序的一条语句可以写在不同的行上B) C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C程序的每个语句都以分号结束(分数:1.00)A.B.C. D.解析:解析 本题涉及 C语言基本的 3个知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;c 语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释

    27、行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。9.计算机能直接执行的程序是_。A) 源程序 B) 目标程序 C) 汇编程序 D) 可执行程序(分数:1.00)A.B.C.D. 解析:评析 我们把由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它并不能直接识别由高级语言编写的程序,只能识别和执行由 0和 1组成的二进制指令。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句翻译成二进制的

    28、机器指令,这种具有翻译功能的软件称为“编译程序”。然后将编译后的目标程序与系统的函数库和其他目标程序连接起来,形成可执行程序由计算机直接执行。10.若函数中有定义语句:int k;,则_。A) 系统将自动绐 K赋初值 0 B) 这时 K中的值无定义C) 系统将自动绐 K赋初值-1 D) 这时 K中无任何值(分数:2.00)A.B. C.D.解析:评析 基本型的整型变量用类型名关键字 int进行定义,当定义时,编译程序仅为 K开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值是无意义的,称变量值“无定义”。11.以下不正确的转义字符是( )。 A) / B) /d C) /s D) 0

    29、88(分数:1.00)A.B.C.D. 解析:解析 /是反斜线符,/d是整型变量转义字符,/s是字符串型转义字符,C 语言中没有规定088为转义字符。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.解析:解析 条件表达式“a?b:c”的含义是:当 a为真时,其值等于表达式 b的值,当 a为假时,其值等于表达式 c的值。表达式运算过程:第 1个表达式:w-2x=3 为真,所以返回 w的值,

    30、即 m=w=2;第 2个表达式;m-2z=5为真,所以返回 m的值,即 m=2;第 3个表达式;w=2y=4 为真,所以返回 m的值,即 m=2。13.有以下程序:#includestdio.hmain()char a,b,c,d;scanf(“%c%c“,语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是(注:代表空格字符)A) 10X20YB) 10X20YC) 10X20YD) 10X20Y(分数:1.00)A.B.C.D. 解析:解析 本题中,scanf 函数的格式控制没有空格,所以,对于选项 A)、B)、C),输入的第一个

    31、空格会作为字符赋值给变量 c1,而不会被解释成分隔符。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);C)

    32、 while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D. 解析:解析 本题考查两个知识点:C 语言用/n这个字符常量表示换行;函数 getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。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,

    33、y)x,y); D) fun(x,y);(分数:2.00)A.B.C. D.解析:解析 本题考查函数调用时的参数传递。C 项中第一个参数的表达式不正确,因此不能得到正确的结果。18.有下列程序:fun(int x,int y)static 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.解析:解析 子

    34、函数 fun(int x,int y),将变量 m和 i声明为局部静态变量,因此第 1次调用主函数后,局部静态变量 m和 i的值为 5和 3,第 1次函数调用结束时,它们的值不释放保持不变,所以第 2次调用时,局部静态变量 m和 i的初始值分别为 5和 3,即在执行“i+=m+1”时,i 的值为 9,因此最终 m的值为 11。19.表达式8-2的值是( )。A) 整数 6 B) 字符 6 C) 表达式不合法 D) 字符 8(分数:2.00)A. B.C.D.解析:解析 在 C语言中,虽然字符都是变为其对应的 ASCII 码值来参与算术运算的,但字符间的相对位置关系还是不变的,字符 8和字符 2

    35、的 ASCII码值相差仍是 6。20.下列选项中不是字符常量的是( )。A) /v B) /x2aC) a D) “/0/(分数:1.00)A.B.C.D. 解析:解析c 语言规定,一个字符常量代表 ASCII码字符集里的一个字符,在程序中用单引号括起来,以便区分。“/v”表示的是竖向跳格:“/x2a”表示的是两位十六进制数;“a”表示的是字符 a对应的ASCII码值。21.已有定义:char a=“xyz“, b=x, y, z;,下列叙述中正确的是( )。A) 数组 a和 b的长度相同 B) a 数组长度小于 b数组长度C) a数组长度大于 b数组长度 D) 上述说法都不对(分数:2.00

    36、)A. B.C.D.解析:解析 字符数组现)中用字符串常量“xyz”进行初始化,字符数组 a的长度为宁符的个数,所以其值为 3,并不包括字符串结束标记/0;字符串数组 b用 3个字符x、y、z来初始化,所以其字符串的长度等于 3。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) struct R

    37、EC;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.解析:解析 定义结构体类型的一般形式为:struct 结构体名成员列表:struct 结构体名后不能加“:”号,所以选项 B)、C)错误,选项 D)中定义无名称的结构体类型同时定义结构体变量形式应为struet t1,t2;选项 A)为用户自定义类型,其为正确的定义形式。26.以下程序运行后的输出结果是#includestdio.hma

    38、in( )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.解析:解析 本程序的功能是从 5(i的初值为 5)开始,打印满足条件“i%3 等于 1同时 i%5等于 2”的i值。第一个满足条件的 i是 7,因此输出*7。27.以下程序运行后的输出结果是int f(int n)if(n=1)return 1;else return f(n-1)+1;main( )int i,j=0;for(i=1;i3;

    39、i+) j+=f(i);printf(“%d/n“,j);A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B. C.D.解析:解析 在 main函数中,j 的值是对 f(1)和 f(2)的值进行累加的结果。本题中,f(1)=1,f(2)=f(1)+1=2,j 的值为 1+2=3。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-)f*=i;(分数:2

    40、.00)A.B.C.D. 解析:解析 要正确计算函数 f=n!,由 n!的数学定义可知 n!=n*(n-1)*(n-2)*1。在选项 A)中,由于 f的初值为 0,在 for循环语句中, f 依次乘以 1,2,3,n。最后计算 f=n!=O,所以选项 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-

    41、1,n-2,2。最后计算 f=n!,所以选项 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. 解析:解析 double *p,a;语句表示定义了一个指向双精度型的指针变量 p和双精度型变量 a,而语句p=A) 10 B) 1 C) 6 D) 7(分数:1.00)A.B.C. D.解析:解析 strlen(s)返回 s字符串中字符

    42、的个数,若 s是个数组,则返回数组元素的个数。32.有以下程序:#define f(x)(x*x)main()int i1,i2;i1=f(8)/f(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.解析:解析 根据题意,il=f(8)/f(4)进行宏替换后i1=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以输出结果为 4、3。33.以下程序的输出结果是char

    43、 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.解析:解析 变量 r的值为 8,其二进制为 00001000,右移 1位后为 00000100,即十进制数 4,所以输出结果为 4。36.有以下程序 #includestdio.h main() short c=124; c=c_; printf(“%d/n“,c); 若要使程序的运行结果为 248,应在下划线处填入的是( )。 A) 2 B) |248 C) 0248 D) 1(分数:2.00)A.B.C.D. 解析:解析 函数的执

    44、行结果显示;所要填的语句使得 c的值翻倍,乘以 2即可达到这种效果,乘以 2也即左移 1位。37.设 fp已定义,执行语句 fp=fopen(“file“, “w“);后,以下针对文本文件 file操作叙述的选项中正确的是_。A) 写操作结束后可以从头开始读 B) 只能写不能读C) 可以在原有内容后追加写 D) 可以随意读和写(分数:1.00)A.B. C.D.解析:解析 用“w”方式打开的文件只能用于向该文件写数据,而不能用来向计算机输入。如果原来不存在该文件,则在打开时新建立一个以指定的名字命名的文件。如果原来已存在一个以该文件名命名的文件,则在打开时将原文件删去,然后重新建立一个新文件。

    45、38.读取二进制文件的函数调用形式为:fread(buffer,size,count,pf);,其中 buffer代表的是_。A) 一个文件指针,指向待读取的文件B) 一个整型变量,代表待读取的数据的字节数C) 一个内存块的首地址,代表读入数据存放的地址D) 一个内存块的字节数(分数:2.00)A.B.C. D.解析:解析 本题考查的重点是对 fread函数的理解。fread 函数中,buffer 是接收读入数据的内存区域的指针,因此选项 C是正确的。39.标准库函数 fgets(s,n,file)的功能是( )。A) 从文件 file中读取长度为 n的字符串存入字符数组 s中B) 从文件 f

    46、ile中读取长度不超过 n-1个字符的字符串放到字符数组 s中C) 从文件 file中读取 n个字符串存入字符数组 s中D) 从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中(分数:2.00)A.B. C.D.解析:解析 字符串输入函数 fgets()的调用形式为:fgets(s,n,fp)。fgets 函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件的文件型指针。fgets函数的功能是:从 fp所指向的文件中读取长度不超过 n-1个字符的字符串,并将该字符串放到字符数组 s中;读入字符串后会自动在字符串末尾加入“/0”结束符,表示字符串结束。40.下面判断正确的是( )。A) char *a=“china“;等价于 char *a;*a=“ghina“;B) char str5=“china“;等价于 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.解析:解析 选项 A) char * a;*a=“china“应改为 char*a;a=“ch


    注意事项

    本文(【计算机类职业资格】二级C语言笔试-457及答案解析.doc)为本站会员(amazingpat195)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开