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

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

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

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

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

    1、二级 C 语言笔试-425 及答案解析(总分:98.50,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.下列对于线性链表的描述中正确的是 _。A) 存储空间不一定是连续,且各元素的存储顺序是任意的B) 存储空间不一定是连续,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A.B.C.D.2.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A) PAD 图 B) N-S 图 C) 结构图 D) 数据流图(分数:2

    2、.00)A.B.C.D.3.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。A) bdgcefha B) gdbecfha C) bdgaechf D) gdbehfca(分数:1.00)A.B.C.D.4.对下列二叉树(分数:2.00)A.B.C.D.5.数据库(DB) 、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是( )。A) DB 包含 DBS 和 DBMS B) DBMS 包含 DB 和 DBSC) DBS 包含 DB 和 DBMS D) 没有任何关系(分数:1.00)A.B.C.D.6.算法的

    3、时间复杂度是指A) 执行算法程序所需要的时间 B) 算法程序的长度C) 算法执行过程中所需要的基本运算次数 D) 算法程序中的指令条数(分数:2.00)A.B.C.D.7.数据流图中带有箭头的线段表示的是A) 控制流 B) 事件驱动 C) 模块调用 D) 数据流(分数:2.00)A.B.C.D.8.程序流程图中有箭头的线段表示的是_。A) 图元关系 B) 数据流C) 控制流 D) 调用关系(分数:2.00)A.B.C.D.9.下列选项中不属于软件生命周期开发阶段任务的是( )。A) 软件测试 B) 概要设计 C) 软件维护 D) 详细设计(分数:2.00)A.B.C.D.10.表达式5-1的值

    4、是( )。A整数 4 B字符 4C表达式不合法 D字符 6(分数:1.00)A.B.C.D.11.下列叙述中正确的是A) 构成 C 程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main( )函数必须放在其他函数之前D) C 函数定义的格式是 Kint fun2 ( double x, double y )double a=0,b=0;a = fun1 (x) ;b = fun1 (y); return(int) (a + b);main()doublew;w=fun2(1.1,2.0);程序执行后变量 w 中的值是( )。A) 5.21 B) 5 C) 5.0 D) 0.0(

    5、分数:1.00)A.B.C.D.15.设变量 a 是 int 型,f 是 float 型,i 是 double 型,则表达式 10+a+i*f 值的数据类型为A) int B) float C) double D) 不确定(分数:1.00)A.B.C.D.16.能正确表示逻辑关系“a)10 或 a0”的 C 语言表达式是( )。A) a =10 or a=0 B) a =0|a=10C) a=10 B) char a=0,1,2,3,4,5;C) char a=A,B,C; D) int a5=“0123“;(分数:1.00)A.B.C.D.19.有以下程序: #includestdio.h

    6、main() int i=0,a=0; while(i20) for(;) if(i%5)=0)break; else i-; i+=13,a+=i; pfintf(“%d/n“,a); 程序的输出结果是( )。 A) 62 B) 63 C) 23 D) 36(分数:1.00)A.B.C.D.20.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用 x 数组元素的是_。A) *p B) x5 C) *(p+1) D) *x(分数:2.00)A.B.C.D.21.有下列程序:fun(int x,int y)static int m=0,i=2;i+=m

    7、+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.22.有以下程序:main()int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(“%d“,d+ 1);elseprintf(“d“,+d+1);printf(“%d/n“,d);程序运行后的输出结果是 _。A) 2 B) 3 C) 43 D) 44(分数:2.

    8、00)A.B.C.D.23.有以下程序:main()int a=666, b=888;printf(“% d/n“, a, b);程序运行后的输出结果是_。A) 错误信息 B) 666 C) 888 D) 666,888(分数:2.00)A.B.C.D.24.有以下程序:void f(int b)int i;for(i=2;i6;i+)bi*=2;main()int a10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf(“%d,“,ai);程序运行后的输出结果是_。A) 1,2,3,4,5,6,7,8,9,10, B) 1,2,6,8,10

    9、,12,7,8,9,10C) 1,2,3,4,10,12,14,16,9,10, D) 1,2,6,8,10,12,14,16,9,10,(分数:2.00)A.B.C.D.25.以下叙述中正确的是( )。A) 用 C 程序实现的算法必须要有输入和输出操作B) 用 C 程序实现的算法可以没有输出但必须要有输入C) 用 C 程序实现的算法可以没有输入但必须要有输出D) 用 C 程序实现的算法可以既没有输入也没有输出(分数:1.00)A.B.C.D.26.下列说法不正确的是( )。A) 调用函数时,实参可以是表达式B) 调用函数时,实参与形参可以共用内存单元C) 调用函数时,将实参的值复制给形参,使

    10、实参变量和形参变量在数值上相等D) 调用函数时,实参与形参的类型必须一致(分数:2.00)A.B.C.D.27.有以下程序:int f1(double a)return a*a;int f2(int x,int y)double a,b;a=f1(x);b=f1(y);return a+b;main()double w;w=f2(2.1,4.0);程序执行后,变量 w 的值是( )。A) 20.21 B) 20 C) 20.0 D) 0.0(分数:2.00)A.B.C.D.28.有以下程序 #includestdio.h void main() int n=2,k=1; while(!(k0|

    11、n+); printf(“%d %d/n“,k,n); 程序运行后的输出结果是( )。 A) 0 2 B) 1 3 C) 5 7 D) 1 2(分数:2.00)A.B.C.D.29.下列程序的输出结果是( )。#includestdio.hmain()char a=a,b,c,d,e,f,/0;int i,j;i=sizeof(A) ;j=strlen(A) ;printf(“%d,%d“,i,j);A) 7,7 B) 7,6 C) 6,6 D) 6,7(分数:2.00)A.B.C.D.30.下面程序的输出是_。main()int x=3,y=6,a=0;while(x+!=(y-=1)a+=

    12、1if(yx)break;printf(“x=%d,y=%d,=%d/n“,x,y,a);A) x=4,y=4,a=1 B) x=5,y=5,a=1C) x=5,y=4,a=3 D) x=5,y=4,a=1(分数:2.00)A.B.C.D.31.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;A) example.x=10 B) example v2.x=10C) example.x=10 D) struct example v2=10;(分数:2.00)A.B.C.D.32.若有定义:char *x=“abcdefghi“;,以下选项中正

    13、确运用了 strcpy 函数的是_。(A) char y10;strcpy(y,x4);(B) char y10;strcpy(+y,x1);(C) char y10,*s;strcpy(s=y+5,x);(D) char y10,*s;strcpy(s=y+1,x+1);(分数:2.00)A.B.C.D.33.有下列函数:int fun(char*s)char*t=s;while(*t+);return(t-s);该函数的功能是( )。A) 比较两个字符串的大小B) 计算 s 所指字符串占用内存字节的个数C) 计算 s 所指字符串的长度D) 将 s 所指字符串复制到字符串 t 中(分数:2.

    14、00)A.B.C.D.34.有下列程序:#include stdio.hvoid fun(char *a, char *B) while(*a=*)a+;while(*b=*A) b+;a+;main()char *s=“*a*b*“,t80;fun(s,t);puts(t);程序的运行结果是( )。A) *a*b B) a*b C) a*b* D) ab(分数:2.00)A.B.C.D.35.在 C 语言中,变量的隐含存储类别是A) auto B) static C) extern D) 无存储类别(分数:2.00)A.B.C.D.36.设有下面的定义: struct st int a; f

    15、loat b; d; int*p; 要使 P 指向结构变量 d 中的 a 成员,正确的赋值语句是( )。 A) *p=d.a; B) p=int i,k,n;fp=fopen(“data.dat“,“w+“);for(i=1;i6;i+)fprimtf(fp,“%d“,i);if(i%3=0)fprintf(fp,“/n“);rewind(fp);fscanf(fp,“%d%d“,k,n);printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是_。A) 0 0 B) 123 45 C) 1 4 D) 1 2(分数:2.00)A.B.C.D.39.有下列程序:#i

    16、ncludestdio.hmain()FILE*pf;char*s1=“China“,*s2=“Beijing“;pf=fopen(“abc.dat“,“wb+“);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);以上程序执行后 abc.dat 文件的内容是( )。AChina BChinang CChinaBeijing DBeijingChina(分数:1.00)A.B.C.D.40.若 fp 是指向某文件的指针,且尚未读到文件末尾,则函数 feof(fp)的返回值是( )A) EOF B)

    17、 -1 C) 非零值 D) 0(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:33.50)41.一个队列的初始状态为空。现将元素 A,B,C,D,E,F,5,4,3,2,1 依次入队,然后再依次退队,则元素退队的顺序为 1。(分数:2.00)填空项 1:_42.设一棵完全二叉树共有 700 个结点,则在该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_43.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_44.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_45.软件测试分

    18、为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 1 测试。(分数:2.00)填空项 1:_46.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,U /U负责数据的模式定义与数据的物理存取构建。(分数:1.50)填空项 1:_47.有以下程序:int sub(int n) return(n/10+n%10); main()int x, y;scanf(“% d“, y=sub(sub(sub(x);printf(“% d/n“, y);若运行时输入:1234回车,程序的输出结果是U /U。(分数:2.00)填空项 1:_48.设变量已正确定义为整型,则表达式 n=i=2,+

    19、i,i+的值为U /U。(分数:2.00)填空项 1:_49.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是 1。(分数:2.00)填空项 1:_50.下列程序的输出结果是_。#includestdio.hmain()int a=2,b= 1,c=2;if(ab)if(b0) c=0;else c+;printf(“%d/n“,c);(分数:2.00)填空项 1:_51.在循环中,continue 语句与 break 语句的区别是: 1 语句只是结束本次循环,然后进行循环的条件判定。(分数:2.00)填空项 1:_52.下列程序运行后的输出结果是_。#includ

    20、estdio.hmain()int k=1,s=0;doif(k%2)!=0)continue;s+=k;k+;whiIe(k10);printf(“s=%d/n“,s);(分数:4.00)填空项 1:_以下程序按下面指定的数据给 x 数组的下三角置数,并按如下形式输出:请填空。43 72 6 91 5 8 10#includestdio.hmain( )int x44,n=0,i,j;for(j=0;j4;j+)for(i=3;i=j;U /U)n+;xij=U /U;for(i=0;i4;i+)for(j=0;j=i;j+) printf(“%3d“,xij);printf(“/n“);(

    21、分数:4.00)填空项 1:_填空项 1:_53.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型,请写出 fun 函数的首部U /U。要求形参名为 b。main()double s10 22;int n;fun(s);(分数:2.00)填空项 1:_54.深度为 5 的满二叉树有 1 个叶子结点。(分数:2.00)填空项 1:_二级 C 语言笔试-425 答案解析(总分:98.50,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.下列对于线性链表的描述中正确的是 _。A) 存储空间不一定是连续,且各元素的存储顺序是任意的B) 存储空间不一定是连续

    22、,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A. B.C.D.解析:解析 线性链表属于链式存储结构,在链式存储结构中,存储空间可以不连续,各元素的存储顺序是任意的,元素之间的逻辑关系是由指针域来决定的。2.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A) PAD 图 B) N-S 图 C) 结构图 D) 数据流图(分数:2.00)A.B. C.D.解析:解析 N-S 图是由 Nassi 和 Shneiderman 提出的一种

    23、符合程序化结构设计原则的图形描述工具。它的提出是为了避免流程图在描述程序逻辑时的随意性上灵活性。3.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。A) bdgcefha B) gdbecfha C) bdgaechf D) gdbehfca(分数:1.00)A.B.C.D. 解析:解析 前序遍历的第一个结点 a 为树的根结点;中序遍历中 a 左边的结点为 a 的左子树, a 右边的结点为 a 的右子树;再分别对 a 的左右子树进行上述两步处理,直到每个结点都找到正确的位置。4.对下列二叉树(分数:2.00)A.B.C

    24、. D.解析:5.数据库(DB) 、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是( )。A) DB 包含 DBS 和 DBMS B) DBMS 包含 DB 和 DBSC) DBS 包含 DB 和 DBMS D) 没有任何关系(分数:1.00)A.B.C. D.解析:解析 数据库系统由如下几部分组成:数据库、数据库管理系统、数据库管理员、系统平台(硬件平台和软件平台)。6.算法的时间复杂度是指A) 执行算法程序所需要的时间 B) 算法程序的长度C) 算法执行过程中所需要的基本运算次数 D) 算法程序中的指令条数(分数:2.00)A.B.C. D.解析:解析 算法的复杂度主要包括算

    25、法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。7.数据流图中带有箭头的线段表示的是A) 控制流 B) 事件驱动 C) 模块调用 D) 数据流(分数:2.00)A.B.C.D. 解析:解析 在数据流图中,矩形表示数据的外部实体,圆角矩形表示变换数据的处理逻辑,双横线表示数据的存储,箭头表示数据流。8.程序流程图中有箭头的线段表示的是_。A) 图元关系 B) 数据流C) 控制流 D) 调用关系(分数:2.00)A.B.C. D.解析:解析 程序流程图是软件过程设计中常用的

    26、图形描述工具之一。构成程序流程图的最基本符号有:或,表示控制流;表示加工步骤;表示逻辑条件。9.下列选项中不属于软件生命周期开发阶段任务的是( )。A) 软件测试 B) 概要设计 C) 软件维护 D) 详细设计(分数:2.00)A.B.C. D.解析:解析 软件的生命周期可分为软件定义、软件开发及软件运行维护 3 个阶段。其中软件定义阶段的主要工作有可行性研究与计划制定和需求分析等:软件开发阶段的主要工作有概要设计、详细设计和测试等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。10.表达式5-1的值是( )。A整数 4 B字符 4C表达式不合法 D字符 6(分数:1.00)A. B.

    27、C.D.解析:解析 在 C 语言中,字符都是变为其对应的 ASCII 码值来参加算术运算的,但字符间的相对位置关系还是不变的,字符 5 和字符 1 的 ASCII 码值相差仍是 4。11.下列叙述中正确的是A) 构成 C 程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main( )函数必须放在其他函数之前D) C 函数定义的格式是 Kint fun2 ( double x, double y )double a=0,b=0;a = fun1 (x) ;b = fun1 (y); return(int) (a + b);main()doublew;w=fun2(1.1,2.0);

    28、程序执行后变量 w 中的值是( )。A) 5.21 B) 5 C) 5.0 D) 0.0(分数:1.00)A.B.C. D.解析:解析 程序调用函数 fun2 时,通过 fun2 调用函数 fun1,第一次调用 fun1 返回的值为 1,然后将1 赋值给 a,由于 a 为 double 型,系统自动将 1 转换为 1.000000 赋给变量 a,以此类推可得 b 的值为4.000000;然后通过 return(int)(a+b);将 a+b 的值强制转换为 int 型返给主函数,由于 w 为 double 型,所以返回的整型值 5 被转换为 double 型,故输出结果为 5.0。15.设变量

    29、 a 是 int 型,f 是 float 型,i 是 double 型,则表达式 10+a+i*f 值的数据类型为A) int B) float C) double D) 不确定(分数:1.00)A.B.C. D.解析:解析 根据混合运算规则,如果有一个数据是 float 型或 double 型,则其他数据类型先转化为double 型,运算的结果最终也是 double 型。16.能正确表示逻辑关系“a)10 或 a0”的 C 语言表达式是( )。A) a =10 or a=0 B) a =0|a=10C) a=10 B) char a=0,1,2,3,4,5;C) char a=A,B,C;

    30、D) int a5=“0123“;(分数:1.00)A.B. C.D.解析:解析 在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项 A)错误;选项 C)中定义的是一个字符变量 C:选项 D)中整型数组 a 中只能存储整型数据,而不能存储字符串常量“0123”。19.有以下程序: #includestdio.h main() int i=0,a=0; while(i20) for(;) if(i%5)=0)break; else i-; i+=13,a+=i; pfintf(“%d/n“,a); 程序的输出结果是( )。 A) 62 B) 63 C) 23 D) 36(分

    31、数:1.00)A.B.C.D. 解析:解析 本题考查 while 循环。当 i20 时,进入 while 循环体,循环体内的 for 循环实现的功能是,当 i 值是 0 或 5 的倍数时,执行“i+=13;a+=i;”这两条语句:若 i 值不是 5 的倍数则一直执行for 循环。当 i=0 时,执行 i+=13;a+=i;i=13,a=13;判断 i=1320,进入 while 循环体,i=10 时,跳出 for 循环,执行 i+=13;a+=i;i=23,a=36;判断 i=2320,循环结束。20.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引

    32、用 x 数组元素的是_。A) *p B) x5 C) *(p+1) D) *x(分数:2.00)A.B. C.D.解析:评析 本题定义了一个有 5 个数组元素的维数组 x 和指针变量 p,且将 x 的首地址(即 x0)的地址)赋给了指针变量 p,即 p 指向了 x 数组的第 0 号元素,所以*p 的值为 x0的值,选项 A 的引用正确;由于 p+1 就是 x1的地址,所以*(p+1)所指向的数组元素为 x1,故选项 C 的引用正确;由于 x 就是数组 x 的首地址,所以*x 即对 x0的引用,所以选项 D 引用正确;由于数组最大下标是元素个数减一,所以选项 B 的引用越界。21.有下列程序:f

    33、un(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.解析:解析 子函数 fun(int x,int y),将变量 m 和 i 声明为局部静态变量,因此第 1 次调用主函数后,局部静态变量 m 和 i 的值为 5 和 3,第 1 次函数调用结束时,它们的值不释放保

    34、持不变,所以第 2 次调用时,局部静态变量 m 和 i 的初始值分别为 5 和 3,即在执行“i+=m+1”时,i 的值为 9,因此最终 m 的值为 11。22.有以下程序:main()int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(“%d“,d+ 1);elseprintf(“d“,+d+1);printf(“%d/n“,d);程序运行后的输出结果是 _。A) 2 B) 3 C) 43 D) 44(分数:2.00)A. B.C.D.解析:解析 本题考查嵌套 if 语句中 else 的配对。本题中 else 和第二个 if 即 if(bc)配对。由于ab 不成立,

    35、因此整个程序只输出 printf(“%d/n“,d),即输出 2。23.有以下程序:main()int a=666, b=888;printf(“% d/n“, a, b);程序运行后的输出结果是_。A) 错误信息 B) 666 C) 888 D) 666,888(分数:2.00)A.B. C.D.解析:解析 printf 如果实参个数多余,不算错,只输出前面的正确参数。24.有以下程序:void f(int b)int i;for(i=2;i6;i+)bi*=2;main()int a10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf(“

    36、%d,“,ai);程序运行后的输出结果是_。A) 1,2,3,4,5,6,7,8,9,10, B) 1,2,6,8,10,12,7,8,9,10C) 1,2,3,4,10,12,14,16,9,10, D) 1,2,6,8,10,12,14,16,9,10,(分数:2.00)A.B. C.D.解析:解析 本题在调用函数时,实参是数组名也是把数组 a 的首地址传递给形参,由条件 i=2 且 i6得出函数将列以 a2开始的 4 个元素(3、4、5、6)进行乘 2 操作,结果分别是 a2=6、a3=8、a4=10、a5=12。a0、a1、a6、a7、a8、a9的值没有发生变化。25.以下叙述中正确的

    37、是( )。A) 用 C 程序实现的算法必须要有输入和输出操作B) 用 C 程序实现的算法可以没有输出但必须要有输入C) 用 C 程序实现的算法可以没有输入但必须要有输出D) 用 C 程序实现的算法可以既没有输入也没有输出(分数:1.00)A.B.C. D.解析:解析 “有零个或多个输入”,“有一个或多个输出”是算法的两个特性。26.下列说法不正确的是( )。A) 调用函数时,实参可以是表达式B) 调用函数时,实参与形参可以共用内存单元C) 调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D) 调用函数时,实参与形参的类型必须一致(分数:2.00)A.B. C.D.解析:27.

    38、有以下程序:int f1(double a)return a*a;int f2(int x,int y)double a,b;a=f1(x);b=f1(y);return a+b;main()double w;w=f2(2.1,4.0);程序执行后,变量 w 的值是( )。A) 20.21 B) 20 C) 20.0 D) 0.0(分数:2.00)A.B.C. D.解析:解析 本题考查函数调用的使用。计算 w 的时候,先调用 f2 函数,f2 函数的公式是“a+b”,计算 a 和 b 的时候又调用到 f1 函数,f1 的函数是“a*a”,因此,w 的计算公式为:w=(double)(int)(

    39、2.1*2.1)+(int)(4.0*4.0)=20.0。28.有以下程序 #includestdio.h void main() int n=2,k=1; while(!(k0|n+); printf(“%d %d/n“,k,n); 程序运行后的输出结果是( )。 A) 0 2 B) 1 3 C) 5 7 D) 1 2(分数:2.00)A.B.C.D. 解析:解析 在程序中整型变量 n 的初始值等于 2,整型变最 k 的初始值等于 1,在执行 while 语句时,由于表达式 k 的值大于 0 为真,所以不再需要判断 n+是否为真,(k0|n+)表达式的值为真。!(k0|n+)表达式的值为假,

    40、所以 while 语句中的条件不满足,循环语句不会执行,变量 n 的值也不会加 1,所在输出变量 k 和 n 的值是 1 和 2。29.下列程序的输出结果是( )。#includestdio.hmain()char a=a,b,c,d,e,f,/0;int i,j;i=sizeof(A) ;j=strlen(A) ;printf(“%d,%d“,i,j);A) 7,7 B) 7,6 C) 6,6 D) 6,7(分数:2.00)A.B. C.D.解析:解析 sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中/0是一个转义字符,它占存储空间,但不

    41、计入串的长度。30.下面程序的输出是_。main()int x=3,y=6,a=0;while(x+!=(y-=1)a+=1if(yx)break;printf(“x=%d,y=%d,=%d/n“,x,y,a);A) x=4,y=4,a=1 B) x=5,y=5,a=1C) x=5,y=4,a=3 D) x=5,y=4,a=1(分数:2.00)A.B.C.D. 解析:评析 注意的是 x+中 x 值的引用时,这里应当是先引用,后自加,具体执行过程如下:第次 while 循环:条件为真,执行 a=a+1=1;此时,x 的值已为 4,判断 yx 不成立,继续执行循环;第二次 while 循环;条件为

    42、假,此时 x 的值已为 5,退出 while 循环,执行 printf。31.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;A) example.x=10 B) example v2.x=10C) example.x=10 D) struct example v2=10;(分数:2.00)A.B.C.D. 解析:评析 在定义结构体变量时,不能只用结构体名 example 或关键字 struct 进行定义,必需要用结构体类型名 struct example 定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。32.若有定义:

    43、char *x=“abcdefghi“;,以下选项中正确运用了 strcpy 函数的是_。(A) char y10;strcpy(y,x4);(B) char y10;strcpy(+y,x1);(C) char y10,*s;strcpy(s=y+5,x);(D) char y10,*s;strcpy(s=y+1,x+1);(分数:2.00)A.B.C.D. 解析:33.有下列函数:int fun(char*s)char*t=s;while(*t+);return(t-s);该函数的功能是( )。A) 比较两个字符串的大小B) 计算 s 所指字符串占用内存字节的个数C) 计算 s 所指字符串

    44、的长度D) 将 s 所指字符串复制到字符串 t 中(分数:2.00)A.B.C. D.解析:解析 在函数 fun(char*s)中,首先用字符指针变量 t 指向 s,而循环语句 while(*t+);的功能是使指针变量 t 指向字符串变量 s 的末尾,这时退出循环,因而语句 return(t-s);返回的就是字符串 s所指字符串的长度。34.有下列程序:#include stdio.hvoid fun(char *a, char *B) while(*a=*)a+;while(*b=*A) b+;a+;main()char *s=“*a*b*“,t80;fun(s,t);puts(t);程序的

    45、运行结果是( )。A) *a*b B) a*b C) a*b* D) ab(分数:2.00)A.B.C. D.解析:解析 主函数 main()定义了指向字符串的指针和一个字符数组,接着调用 fun(s,t)函数,进行实参向形参传递,函数 fun()第一个 while 语句判断*a 中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个 while 循环语句,将*a 中从“a”开始的后续所有字符都赋予*b,也就是 t80中的内容为“a*b*”,所以此题的运行结果为选项 C)。35.在 C 语言中,变量的隐含存储类别是A) auto B) static C) extern D) 无存储类别(

    46、分数:2.00)A. B.C.D.解析:解析 auto 变量:无 static 声明的局部变量。用 auto 作存储类别的声明时,可以不写 auto,存储类别隐含确定为 auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用 static 声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用 extern 声明外部变量,外部变量即全局变量,可以用 extern 声明来改变全局变量的作用域,实际上,关键字“auto”可以省略,auto 不写则隐含确定为“自动存储类别”,属于动态存储方式。36.设有下面的

    47、定义: struct st int a; float b; d; int*p; 要使 P 指向结构变量 d 中的 a 成员,正确的赋值语句是( )。 A) *p=d.a; B) p=int i,k,n;fp=fopen(“data.dat“,“w+“);for(i=1;i6;i+)fprimtf(fp,“%d“,i);if(i%3=0)fprintf(fp,“/n“);rewind(fp);fscanf(fp,“%d%d“,k,n);printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是_。A) 0 0 B) 123 45 C) 1 4 D) 1 2(分数:2.00)A.B.C.D


    注意事项

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




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

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

    收起
    展开