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

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

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

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

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

    1、二级 C 语言笔试-447 及答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:40,分数:67.00)1.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。A) bdgcefha B) gdbecfha C) bdgaechf D) gdbehfca(分数:1.00)A.B.C.D.2.下列叙述中错误的是( )。A) 线性表是由 n 个元素组成的一个有限序列B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表可以是空表(分数:2.00)A.B.C.D.3.树是结点的集合

    2、,它的根结点的数目是( )。A) 有且只有 1 个 B) 1 或多于 1C) 0 或 1 D) 至少有 2 个(分数:2.00)A.B.C.D.4.结构化程序设计方法的 3 种基本控制结构中不包括A) 循环结构 B) 递归结构 C) 顺序结构 D) 选择结构(分数:2.00)A.B.C.D.5.下列叙述中正确的是( )。A) 在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B) 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C) 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D) 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方

    3、法(分数:2.00)A.B.C.D.6.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。A) DB 包括 DBS 和 DBMS B) DBMS 包括 DB 和 DBSC) DBS 包括 DB 和 DBMS D) 没有任何关系(分数:2.00)A.B.C.D.7.下列叙述中正确的是_。A) 为了建立一个关系,首先要构造数据的逻辑关系B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项C) 一个关系的属性名表称为关系模式D) 一个关系可以包括多个二维表(分数:2.00)A.B.C.D.8.以下符合 C 语言语法的实型常量是( )。A) 1.2E0.5 B)

    4、 3.14159E C) .5E-3 D) E15(分数:1.00)A.B.C.D.9.有以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D.10.已知 i、j、k 为 int 型变量,若要从

    5、键盘输入 2、3、4CR,使 i、j、k 的值分别为 2、3、4,下列正确的输入语句是( )。A) scanf(“%3d,%3d,%3d“,B) scanf(“%d,%d,%d“,C) scanf(“%d%d%d“,D) scanf(“i=%d,j=%d,k=%d“,(分数:1.00)A.B.C.D.11.设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,while(i+7)if(pi%2)j+=pi;printf(“%d/n“,j);程序运行后的输出结果是 _。A) 42 B) 45 C) 56 D) 60(分数:1.00)A.B.C.D.13.若 a 是数值类型,则逻辑表达式

    6、(a=1)|(a!=1)的值是A) 1 B) 0C) 2 D)不知道 a 的值,不能确定(分数:1.00)A.B.C.D.14.下列程序的输出结果是( )#includestdio.hmain() int a=3,b=2,c=1;if(ab) if(b0) c=0;else c+;printf(“%d/n“,c);A) 0 B) 2 C) 1 D) 3(分数:2.00)A.B.C.D.15.下列条件语句中,输出结果与其他语句不同的是( )。A)if(a)printf(“%d/-n“,x); else printf(“%d/n“,y);B)if(a=0)printf(“%d/n“,y); els

    7、e printf(“%d/n“,x);C)if(a!=0)printf(“%d/n“,x); else printf(“%d/n“,y);D)if(a=0)printf(“%d/n“,x); else printf(“%d/n“,y);(分数:2.00)A.B.C.D.16.若执行下列的程序时,从键盘上输入 1 和 2,则输出结果是( )。#includestdio.hmain()int a,b,s;scanf(“%d%d“,S=a;if(aB) s=b;s=s*s;printtf(“%d/n“,s);A) 1 B) 4 C) 2 D) 9(分数:2.00)A.B.C.D.17.设变量 x 为

    8、 float 型且已经赋值,则以下语句中能够将 x 中的数值保留到小数点后面两位,并将第三位四舍五入的是_。A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0(分数:1.00)A.B.C.D.18.有以下程序#includestdio.hmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d“,m);程序的运行结果是( )。A0 B1C2 D3(分数:1.00)A.B.C.D.19.以

    9、下程序的输出结果是_。main()int i,a10;for(i=9;i=0;i-)ai=10-i;printf(“%d%d%d“,aa,a5,a8);A) 258 B) 741 C) 852 D) 369(分数:2.00)A.B.C.D.20.下列选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是( )。A) x%2=1 B) x/2C) x%2!=0 D) x%2=0(分数:2.00)A.B.C.D.21.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是_。(A) *p=a; scanf(“%1f“,p);(B) *p=a; scanf

    10、(“%f“,p);(C) p=a; scanf(“%1f“,*p);(D) p=a; scanf(“%1f“,p);(分数:2.00)A.B.C.D.22.有以下程序:main()char k: int i;for(i=1:i3;i+)scanf(“%c“,while(n-) printf(“%d “,-n);A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0(分数:1.00)A.B.C.D.下列说法正确的是( )。A在 C 语言中,可以使用动态内存分配技术,定义元素个数可变的数组B在 C 语言中,数组元素的个数可以不确定,允许随机变动C在 C 语言中,数组元素的数据类型可以不一致

    11、D在 C 语言中,定义一个数组后,就确定了它所容纳的元素的个数(分数:3.00)A.B.C.D.A.B.C.D.有以下程序:int fun(int n)if(n=1) return 1;else return(n+fun(n-1);main()int x;scanf(“%d“,P0=a1;则*(p0+1)所代表的数组元素是_。A) a01 B) a10 C) a11 D) a12(分数:1.00)A.B.C.D.27.设有变量说明 int(*p)m,其中的标识符 p 是( )。A)m 个指向整型变量的指针 B)指向 m 个整型变量的指针C)一个指向具有 m 个整型元素的一维数组的指针D)具有

    12、m 个指针元素的一维指针数组,每个元素都指向整型变量(分数:1.00)A.B.C.D.28.下列程序的输出结果是( )。#includestdio.h#includestring.hmain()char a=“/n123/“;printf(“%d,%d/n“,strlen(a),sizeof(a);A) 5,6 B) 5,5 C) 6,6 D) 6,5(分数:2.00)A.B.C.D.29.以下叙述中正确的是_。A) 全局变量的作用域一定比局部变量的作用域范围大B) 静态(statiC) 类别变量的生存期贯穿于整个程序的运行期间C) 函数的形参都属于全局变量D) 未在定义语句中赋初值的 aut

    13、o 变量和 static 变量的初值都是随机值(分数:2.00)A.B.C.D.30.设定义下列结构体,结构体变量 p 的出生年份赋值正确的语句是( )。Struct stint x;inty;int z;Struct workerchar name20;char sex;struct st birth;p;A) x=1987 B) birth.x=1987; C) p.birth.x=1987;D) p.x=1987;(分数:1.00)A.B.C.D.31.有以下程序#includestdiu.hmain()FILE*fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat

    14、“,“w“);for(i=0;i3;i+)fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“):fscanf(fp,“%d“, int a20;void f(struct S *P)int i,j,t;for(i=0;in-1;i+)for(j=j+1;jn-1;j+)if(p-aip-aj)t=p-ai;p-ai=p-aj;p-aj=tmain()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;f(s);for(i=0;iS.N;i+)NBSP;PRINTF(“%D“,S.

    15、AI);程序运行后的输出结果是_。(A) 3(B) 4(C) 5(D) 6(分数:2.00)A.B.C.D.33.已知函数的调用形式为 fread(buf,size,count,fp),参数 buf 的含义是A) 一个整型变量,代表要读入的数据项总数 B) 一个文件指针,指向要读的文件C) 一个指针;指向要读入数据的存放地址 D) 一个存储区,存放要读的数据项(分数:2.00)A.B.C.D.34.下列程序的输出结果是( )。#include stdio.hmain()struct stint y,x,z;unionlong i;int j;char k;un;printf(“%d,%d/n“

    16、,sizeof(struct st),sizeof(un);A) 6, 2 B) 6, 4 C) 8, 4 D) 8, 6(分数:2.00)A.B.C.D.35.以下程序运行后的输出结果是#includestdio.hmain( )FILE *fp;int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d%d“, printf(“%d%d/n“, a, b); (分数:2.00)填空项 1:_

    17、45.语句:x+;+x;x1/x;执行后都使变量 x 中的值增 1,请写出一条同一功能的赋值语句 1。(分数:2.00)填空项 1:_46.下面程序的输出结果是_。maim( )char b=“Hello you“;b5=0;printf(“%s/n“,b);(分数:2.00)填空项 1:_47.要求使下列程序输出 5 个整数,请填空。for(i=0;i=_;printf(“%d/n“,i+=2);(分数:2.00)填空项 1:_48.在 C 语言中,while 和 dowhile 循环的主要区别是 1 的循环至少被执行一次。(分数:2.00)填空项 1:_49.下列程序的运行结果是_。#in

    18、cludestdio.hlong func(int x)long p;if(x=Ox=1)return(1);p=x*func(x-1);return(p);main()printf(“%d/n“,func(4);(分数:2.00)填空项 1:_50.下列程序舶输出结果是U /U。#include stdio.hmain()int a5=2,4,6,8,10,*p;p=a;p+;printf(“%d“,*p);(分数:1.50)填空项 1:_51.以下程序运行后的输出结果是U /U。main()int i,j,a3=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)for(j=i

    19、+1;j3;j+)aji=0;for(i=0;i3;i+)for(j=0;j3;j+)printf(“%d“,aij);printf(“/n“);(分数:2.00)填空项 1:_52.以下程序段打开文件后,先利用 fseek 函数将文件位置指针定位在文件末尾,然后调用 ftell 函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。FILE * myf;long f1;myf=U /U(“test.t“,“rb“);fseek(myf,0,SEEK END) ;f1=ftell(myf);fclose(myf);printf(“%d/n“,f1);(分数:2.00)填空项 1:_二级

    20、 C 语言笔试-447 答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:40,分数:67.00)1.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。A) bdgcefha B) gdbecfha C) bdgaechf D) gdbehfca(分数:1.00)A.B.C.D. 解析:解析 前序遍历的第一个结点 a 为树的根结点;中序遍历中 a 左边的结点为 a 的左子树, a 右边的结点为 a 的右子树;再分别对 a 的左右子树进行上述两步处理,直到每个结点都找到正确的位置。2.下列叙述中错误的是

    21、( )。A) 线性表是由 n 个元素组成的一个有限序列B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表可以是空表(分数:2.00)A.B.C. D.解析:解析 线性表是一种线性结构,由 n(nO)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项 C)是错误的。3.树是结点的集合,它的根结点的数目是( )。A) 有且只有 1 个 B) 1 或多于 1C) 0 或 1 D) 至少有 2 个(分数:2.00)A.B.C. D.解析:解析 树具有明显的层次关系,即树是一种层次结构。在树

    22、结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为 0。4.结构化程序设计方法的 3 种基本控制结构中不包括A) 循环结构 B) 递归结构 C) 顺序结构 D) 选择结构(分数:2.00)A.B. C.D.解析:命题目的 本题考查了程序的基本结构。解题要点 程序由一些基本结构组成。任何一个大型的程序都由 3 种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这 3 种基本结构为:顺序结构、选择结构和循环结构。考点链接 条件语句和分支语句。5.下列叙述中正确的是( )。A) 在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B)

    23、 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C) 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D) 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法(分数:2.00)A.B.C. D.解析:解析 在模块化程序设计中,模块之间的联系可以通过程序的控制结构来实现,在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。6.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。A) DB 包括 DBS 和 DBMS B) DB

    24、MS 包括 DB 和 DBSC) DBS 包括 DB 和 DBMS D) 没有任何关系(分数:2.00)A.B.C. D.解析:解析 数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台 5 个部分组成,可见 DB 和 DBMS 都是 DBS 的组成部分。7.下列叙述中正确的是_。A) 为了建立一个关系,首先要构造数据的逻辑关系B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项C) 一个关系的属性名表称为关系模式D) 一个关系可以包括多个二维表(分数:2.00)A. B.C.D.解析:解析 关系中的每一个属性都是不可分解的,所以表示关

    25、系的二维表中各元组的每一个分量不能分成若干数据项。关系模式是命名的属性集合。一个关系就是一张二维表。为了建立一个关系,首先需要构造数据的逻辑关系。8.以下符合 C 语言语法的实型常量是( )。A) 1.2E0.5 B) 3.14159E C) .5E-3 D) E15(分数:1.00)A.B.C. D.解析:解析 实数在 C 语言中又称浮点数,它有两种表示形式:十进制数形式。它由数字和小数点组成(注意必须有小数点)。0.123,.123,123.0, 123.,0.0 都是十进制数形式。指数形式。如 123e3 或 123E3 都代表 123*103。要注意字母 e(或 E)之前必须有数字,且

    26、 e 后面的指数必须为整数,如 e3,2.1e3.5,.e3,e 等都不是合法的指数形式。9.有以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D. 解析:解析 本题考查 switch 语句。

    27、x=1,因此第一个 switch 语句是执行 case 1:后面的语句,进入嵌入的 switch 语句;y=0,执行 case 0:后面的语句,得 a=1,遇到 break 语句退出嵌入的 switch 语句。由于第一个 switch 语句的 case 1:后面没有 break 语句,因此继续执行 case 2:后面的语句,得a=2,b=1,遇到 break 语句退出第一个 switch 语句。结果为 a=2,b=1。10.已知 i、j、k 为 int 型变量,若要从键盘输入 2、3、4CR,使 i、j、k 的值分别为 2、3、4,下列正确的输入语句是( )。A) scanf(“%3d,%3d

    28、,%3d“,B) scanf(“%d,%d,%d“,C) scanf(“%d%d%d“,D) scanf(“i=%d,j=%d,k=%d“,(分数:1.00)A.B. C.D.解析:解析 函数 scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。11.设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,while(i+7)if(pi%2)j+=pi;printf(“%d/n“,j);程序运

    29、行后的输出结果是 _。A) 42 B) 45 C) 56 D) 60(分数:1.00)A.B. C.D.解析:解析 此程序实现了将 p1)p7中的奇数求和的功能,因此,最后的输出结果是j=13+15+17=45。13.若 a 是数值类型,则逻辑表达式(a=1)|(a!=1)的值是A) 1 B) 0C) 2 D)不知道 a 的值,不能确定(分数:1.00)A. B.C.D.解析:解析 表达式:(a=1)|(a!=1)的含义是无论 a 是什么值,即 a 等于 1 或不等于 1,结果均为“真”。14.下列程序的输出结果是( )#includestdio.hmain() int a=3,b=2,c=1

    30、;if(ab) if(b0) c=0;else c+;printf(“%d/n“,c);A) 0 B) 2 C) 1 D) 3(分数:2.00)A.B.C. D.解析:解析 本题考查 if 语句。第一个 if 语句,先判断条件,发现 ab 不成立,不再执行下列的语句,直接执行最后的 printf 输出语句,然后结束程序,整个过程 c 的值没有发生变化。15.下列条件语句中,输出结果与其他语句不同的是( )。A)if(a)printf(“%d/-n“,x); else printf(“%d/n“,y);B)if(a=0)printf(“%d/n“,y); else printf(“%d/n“,x

    31、);C)if(a!=0)printf(“%d/n“,x); else printf(“%d/n“,y);D)if(a=0)printf(“%d/n“,x); else printf(“%d/n“,y);(分数:2.00)A.B.C.D. 解析:解析 选项 A)、B)、C)这三条语句都是在变量不等于 0 的情况下,输出 x;等于 0 的情况下输出y,而选项 D)则正好相反。16.若执行下列的程序时,从键盘上输入 1 和 2,则输出结果是( )。#includestdio.hmain()int a,b,s;scanf(“%d%d“,S=a;if(aB) s=b;s=s*s;printtf(“%d/

    32、n“,s);A) 1 B) 4 C) 2 D) 9(分数:2.00)A.B. C.D.解析:解析 本题考查 if 语句。scanf 函数通过键盘读入 a、b 的值,a=1,b=2。第一个 if 语句,先判断条件,发现 ab 条件成立,则 s=b=2,s=s*s=4。17.设变量 x 为 float 型且已经赋值,则以下语句中能够将 x 中的数值保留到小数点后面两位,并将第三位四舍五入的是_。A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0(分数:1.00)A

    33、.B. C.D.解析:解析 选项 A 的功能是将 x 的值放大 100 倍,然后与 0.0005 相加;选项 C 的功能是将 x 中的数值保留到小数点后面两位后强制转换为整型;选项 D 的功能是将 x 与 50 相加;正确答案为选项 B。18.有以下程序#includestdio.hmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d“,m);程序的运行结果是( )。A0 B1C2 D3(分数:1.00)A.B. C.D.解析:解析 内层循环条件要求“j=i”,因此只有当 i 和 j 都等于 3 时循环才会执行一次。

    34、因此 m 的值为 55 对 3 求余,结果为 1。19.以下程序的输出结果是_。main()int i,a10;for(i=9;i=0;i-)ai=10-i;printf(“%d%d%d“,aa,a5,a8);A) 258 B) 741 C) 852 D) 369(分数:2.00)A.B.C. D.解析:评析 在本题运行时主要注意的是当 i=9 时,ai=10-9=1;i=8 时,ai=10-8=2;i=7 时,ai=10-7=3;依此类推,直到 i=0 时,ai=10-0=10;此时,i 的值已变为-1,判断 for 的循环条件,不成立,然后输出 a2,a5,a8分别为 8,5,2。20.下

    35、列选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是( )。A) x%2=1 B) x/2C) x%2!=0 D) x%2=0(分数:2.00)A.B.C.D. 解析:解析 因为 x 的值为大于 1 的奇数,所以 x 除以 2 的余数等于 1。所以选项 D)等于关系表达式的结果为假,即等于 0。21.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是_。(A) *p=a; scanf(“%1f“,p);(B) *p=a; scanf(“%f“,p);(C) p=a; scanf(“%1f“,*p);(D) p=a; scanf(“%1f“,p

    36、);(分数:2.00)A.B.C.D. 解析:22.有以下程序:main()char k: int i;for(i=1:i3;i+)scanf(“%c“,while(n-) printf(“%d “,-n);A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0(分数:1.00)A. B.C.D.解析:解析 n-是先使用后自减,-n 是先自减后使用。n=4 时,执行 n-后,n 变为 3,执行-n 后,n 变为 2,所以,第一次输出时,n 为 2;同上过程,第二次输出时,n 为 0。下列说法正确的是( )。A在 C 语言中,可以使用动态内存分配技术,定义元素个数可变的数组B在 C 语言

    37、中,数组元素的个数可以不确定,允许随机变动C在 C 语言中,数组元素的数据类型可以不一致D在 C 语言中,定义一个数组后,就确定了它所容纳的元素的个数(分数:3.00)A.B.C.D. 解析:解析 在 C 语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。A. B.C.D.解析:解析 转义字符/n表示换行,/表示反斜杠,函数 strlen()是计算字符串的长度,不包括文件结束标志(/0),函数 sizeof()统计字符串所占的字节数。有以下程序:int fun(int n)if(n=1) return 1;el

    38、se return(n+fun(n-1);main()int x;scanf(“%d“,P0=a1;则*(p0+1)所代表的数组元素是_。A) a01 B) a10 C) a11 D) a12(分数:1.00)A.B.C. D.解析:解析 指针 p0指向了数组 a 的第二行,即 a1,此时指针地址加 1,即指向了 a 数组第二行的第二个元素,因此,所代表的元素就是 a11。27.设有变量说明 int(*p)m,其中的标识符 p 是( )。A)m 个指向整型变量的指针 B)指向 m 个整型变量的指针C)一个指向具有 m 个整型元素的一维数组的指针D)具有 m 个指针元素的一维指针数组,每个元素都

    39、指向整型变量(分数:1.00)A.B.C. D.解析:解析 本题考查指向数组的指针变量的声明。这里的 p 表示一个指向数组的指针;*p 表示指针 p指向地址的内容。28.下列程序的输出结果是( )。#includestdio.h#includestring.hmain()char a=“/n123/“;printf(“%d,%d/n“,strlen(a),sizeof(a);A) 5,6 B) 5,5 C) 6,6 D) 6,5(分数:2.00)A. B.C.D.解析:解析 转义字符/n表示换行,/表示反斜杠,函数 strlen()是计算字符串的长度,不包括文件结束标志(/0),函数 size

    40、of()统计字符串所占的字节数。29.以下叙述中正确的是_。A) 全局变量的作用域一定比局部变量的作用域范围大B) 静态(statiC) 类别变量的生存期贯穿于整个程序的运行期间C) 函数的形参都属于全局变量D) 未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值(分数:2.00)A.B. C.D.解析:解析 函数的形参是局部变量,只在函数内部起作用,调用函数时为形参分配存储空间,调用结束后释放形参的存储空间,因此选项 C 错误。未在定义语句中赋初值的 static 变量的初值是 0,选项 D错误。局部静态变量也是全局变量,选项 A 错误。30.设定义下列结构体,结构

    41、体变量 p 的出生年份赋值正确的语句是( )。Struct stint x;inty;int z;Struct workerchar name20;char sex;struct st birth;p;A) x=1987 B) birth.x=1987; C) p.birth.x=1987;D) p.x=1987;(分数:1.00)A.B.C. D.解析:解析 本题主要考查怎样为嵌套定义的结构中的成员赋值:由于 worker 中的 birth 是一个 st 型的结构,在给 birth 赋值时,不能将 birth 作为一个整体,要用“.”运算再深入一层访问到最基本的成员 x、y、z。31.有以下

    42、程序#includestdiu.hmain()FILE*fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+)fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“):fscanf(fp,“%d“, int a20;void f(struct S *P)int i,j,t;for(i=0;in-1;i+)for(j=j+1;jn-1;j+)if(p-aip-aj)t=p-ai;p-ai=p-aj;p-aj=tmain()int i;struct S

    43、s10,2,3,1,6,8,7,5,4,10,9;f(s);for(i=0;iS.N;i+)NBSP;PRINTF(“%D“,S.AI);程序运行后的输出结果是_。(A) 3(B) 4(C) 5(D) 6(分数:2.00)A. B.C.D.解析:33.已知函数的调用形式为 fread(buf,size,count,fp),参数 buf 的含义是A) 一个整型变量,代表要读入的数据项总数 B) 一个文件指针,指向要读的文件C) 一个指针;指向要读入数据的存放地址 D) 一个存储区,存放要读的数据项(分数:2.00)A.B.C. D.解析:解析 这是一道考查 fread 函数的题。buf 是一个指

    44、针,fread 是读入数据的存放地址;fwrite是输出数据的地址(以上指的是起始地址)。34.下列程序的输出结果是( )。#include stdio.hmain()struct stint y,x,z;unionlong i;int j;char k;un;printf(“%d,%d/n“,sizeof(struct st),sizeof(un);A) 6, 2 B) 6, 4 C) 8, 4 D) 8, 6(分数:2.00)A.B. C.D.解析:解析 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大

    45、小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。35.以下程序运行后的输出结果是#includestdio.hmain( )FILE *fp;int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d%d“,&k,&n);printf(“%d%d/n“,k,n);fclose(fp);A) 20 30 B) 20 50 C) 30 50 D) 30 20(分数:2

    46、.00)A. B.C.D.解析:解析 本题主要考查有关文件操作的函数的应用。其中:函数 fopen 的功能是打开一个文件,调用方式是:FILE *fp;fp=fopen(文件名,使用文件方式);函数 fprintf 的功能是将格式化数据输出到一个文件中,调用方式是:fprintf(文件指针,格式字符串,输出表列);函数 fclose 的功能是关闭一个文件,调用方式是:fclose(文件指针);函数 fscanf 的功能是从磁盘文件执行格式化输入,调用方式是:fscanf(文件指针,格式字符串,输入表列)。36.利用 fseek 函数可实现的操作是( )。A) 实现文件的顺序读写 B) 改变文件

    47、的位置指针C) 实现文件的随机读写 D) 以上答案均正确(分数:2.00)A.B.C.D. 解析:解析 改变文件位置指针函数 fseek()的功能是:改变文件的位置指针;辅助实现文件的顺序读写:辅助实现文件的随机读写。37.设有以下定义union data(int d1;float d2;)demo;则下面叙述中错误的是( )。A变量 demo 与成员 d2 所占的内存字节数相同B变量 demo 中各成员的地址相同C变量 demo 和各成员的地址相同D若给 demo.d1 赋 99 后,demo.d2 中的值是 99.0(分数:1.00)A.B.C.D. 解析:解析 共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。二、填空题(总题数:15,分数:29.50)38.栈中允许进行插入和删除的一端叫做 1。(分数:2.00)填空项


    注意事项

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




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

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

    收起
    展开