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

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

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

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

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

    1、二级 C 语言笔试-456 及答案解析(总分:101.50,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.下列叙述中正确的是( )。A) 线性链表的各元素在存储空间中的位置必须是连续的B) 线性链表的头元素一定存储在其他元素的前面C) 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.2.下列叙述中正确的是( )。A) 线性链表的各元素在存储空间中的位置必须是连续的B) 线性链表的头元素一定存储在其他元素的前面C)

    2、线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.3.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.4.在 E-R 图中,用来表示实体的图形是( );A) 矩形 B) 椭圆形 C) 菱形 D) 三角形(分数:1.00)A.B.C.D.5.下列选项中,不属于模块间耦合的是( )。 A) 内容耦合 B) 异构耦合 C) 控制耦合 D) 数据耦合(分数:2.00)A.B.C.D.6.关于结构化程序设计原则和方法

    3、描述错误的是( )。A) 选用的结构只准许有一个入口和一个出口B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C) 不允许使用 GOTO 语句D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数:2.00)A.B.C.D.7.数据库管理系统中负责数据模式定义的语言是( )。A数据定义语言 B数据管理语言C数据操纵语言 D数据控制语言(分数:1.00)A.B.C.D.8.数据存储和数据流都是_,仅仅是所处的状态不同。A) 分析结果 B) 事件 C) 动作 D) 数据(分数:2.00)A.B.C.D.9.设有定义:int k=1,m=2; float f=7;则以下选项中错误的

    4、表达式是 _。A) k=k=k B) -k+ C) k% int(f) D) k=f=m(分数:2.00)A.B.C.D.10.在数据库设计中,将 E-R 图转换为关系模式的过程属于( )。A) 需求分析阶段 B) 逻辑设计阶段C) 概念设计阶段 D) 物理设计阶段(分数:2.00)A.B.C.D.11.以下有 4 组用户标识符,其中合法的一组是_。A) FOR -subCaseB) 4dDOSizeC) f2_G3IFabcD) WORDvoiddefine(分数:1.00)A.B.C.D.12.下列程序的执行结果是( )#includestdio.hmain() int a,b,c;a=b

    5、=2;c=(a+) -1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);A) 3,14,1 B) 3,14,2 C) 2,04,1 D) 2,14,1(分数:2.00)A.B.C.D.13.以下叙述中错误的是A) 计算机不能直接执行用 C 语言编写的源程序B) C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D.14.下列正确的实型常量是( )

    6、。A) E3.4 B) -12345C) 2.2eO.8 D) 4(分数:1.00)A.B.C.D.15.以下叙述中错误的是 A) C 程序在运行过程中所有计算都以二进制方式进行 B) C 程序在运行过程中所有计算都以十进制方式进行 C) 所有 C 程序都需要编译链接无误后才能运行 D) C 程序中整型变量只能存放整数,实型变量只能存放浮点数(分数:1.00)A.B.C.D.16.以下叙述中正确的是( )。A) 构成 C 程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main 函数必须放在其他函数之前D) 所有被调用函数一定要在调用之前进行定义(分数:1.00)A.B.C.D.

    7、17.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。A) 26 B) 28 C) 29 D) 24(分数:1.00)A.B.C.D.18.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是(

    8、 )。main()int x;scanf(“%d“,if(x+2) printf(“%d“,x);elseprintf(“%d/n“,x-);A) 4 和 2 B) 4 和 1 C) 4 和 0 D) 3 和 1(分数:2.00)A.B.C.D.19.若有下列定义(设 int 类型变量占 2 个字节):int i=8,j=9;则下列语句:printf(“i=%u,j=%x/n“,i,j);输出的结果是( )。A) i=8,j=9 B) 8.9 C) 8 9 D) i=8,j=8(分数:1.00)A.B.C.D.20.有以下程序#includestdio.hmain()int x=8;for(;

    9、x0;X-)if(x%3)printf(“%d,“,x-);continue;printf(“%d,“,-x);程序的运行结果是( )。A7,4,2 B8,7,5,2 C9,7,6,4 D8,5,4,2(分数:1.00)A.B.C.D.21.若变量已正确定义,下列正确的程序段是( )。A) while(ch=getchar()=/NN)putchar(ch);B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.

    10、00)A.B.C.D.22.以下选项中值为 1 的表达式是_。(A) 1-0(B) 1-/0(C) 1-0(D) /0-0(分数:2.00)A.B.C.D.23.若要求从键盘读入含有窄格字符的字符串,应使用函数( )。 A) getc() B) gets() C) getchar() D) scanf()(分数:2.00)A.B.C.D.24.已有定义“char c;”,程序前面已在命令行中包含 ctype.h 文件,不能用于判断 c 中的字符是否为大写字母的表达式是( )。Aisupper(c) BA-c=ZCA=cfor(i=9;i=0;i-)ai=1O-i;printf(“%d%d%d“

    11、,a2,a5,a8);A) 258 B) 741 C) 852 D) 369(分数:2.00)A.B.C.D.26.有以下程序#include stdiohmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是A) 0 B) 1 C) 2 D) 3(分数:1.00)A.B.C.D.27.恢复系统默认菜单的命令是_。A) SET MENU TO DEFAULT B) SET SYSMENU TO DEFAULTC) SET SYSTEM MENU TO DEFAULT D) SET SYST

    12、EM TO DEFAULT(分数:2.00)A.B.C.D.28.若有说明语句: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.29.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是( )。A) p1=p2=p1;(分数:1.00)A.B.C.D.30.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。A) f=0; f

    13、or(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.00)A.B.C.D.31.以下程序运行后的输出结果是fun(int x,int y,int z) z=x*y;main( )int a=4,b=2,c=6;fun(a,b,c);printf(“%d“,c);A) 16 B) 6 C) 8 D) 12(分数:2.00)A.B.C.D.32.有以下程序#include stdioh#define N 8void fun(int*x,int

    14、i*x=*(x+1);main()int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=0;iN/2;i+)printf(“%d“,ai);printf(“/n“);程序运行后的输山结果是A) 1 3 1 3 B) 2 2 3 4 C) 3 2 3 4 D) 1 2 3 4A.B.C.D.33.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为( )。A) EOF B) 非 0 值C) 0 D) NULL(分数:2.00)A.B.C.D.34.若有以下程序:#includestdiohint a=2,4,6,8;main()in

    15、t i;int *p=a;for(i=0;i4;i+) ai=*p;printf(“%d/n“,a2);上面程序的输出结果是( )。A) 6 B) 8 C) 4 D) 2(分数:1.00)A.B.C.D.35.下列叙述中错误的是( )。A) 在 C 语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B) 在 C 语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容C) 在 C 语言中,外部变量的隐含类型是自动存储类别D) 在 C 语言中,函数形参的存储类型是自动(auto)类型的变量(分数:1.00)A.B.C.D.36.有以下程序:struct Sint n;int a20;voi

    16、d f(int*a,int n)int i;for(i=0;in-1;i+)ai+=i;mainf()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;if(s.a,s.n);for(i=0;is.n;i+)printf(“%d“,s.ai);程序运行后的输出结果是_。A) 2,4,3,9,12,12,11,11,18,9 B) 3,4,2,7,9,8,6,5,11,10C) 2,3,1,6,8,7,5,4,10,9 D) 1,2,3,6,8,7,5,4,10,9(分数:2.00)A.B.C.D.37.下面程序的输出结果为_。#includestring.hmai

    17、n()char p17=“abc“,p2=“ABC“,str50=“xyz“;strcpy(str,strcat(p1,p2);printf(“%s“,str);A) xyzabcABC B) abcABC C) xyzabc D) xyzABC(分数:2.00)A.B.C.D.38.有以下程序#includestdio.hvoid fun(char*t,char*s)while(*t!=0)t+;while(*t+=*s+)!=0);main()char ss10=“ace“,aa10=“bbxxyy“;fun(ss,aa);printf(“%s,%s“,ss,aa);程序运行结果是( )。

    18、Aacexyy,bbxxyy Bace,bbxxyyCaccxxyy,bbxxyy Daccbbxxyy,bbxxyy(分数:1.00)A.B.C.D.39.设有下列说明语句:Strcut Strint x;float y;char z;st;则下列的叙述中不正确的是( )。A) struct 是结构体类型的关键字 B) st 是结构体类型名C) x、y、z 都是结构体成员名 D) struct str 是结构体类型名(分数:2.00)A.B.C.D.40.执行以下程序后,test.txt 文件的内容是(若文件能正常打开)_。#includestdio.hmain()FILE*fp;char*

    19、s1=“Fortran“,*s2=“Basic“;if(fp=fopen(“test.txt“,“wb“)=NULL)printf(“Cant open test.txt file/n“);exit(1);fwrite(s1,7,1,fp);/*把从地址 s1 开始的 7 个字符写到 fp 所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/fwrite(s2,5,1,fp);fclose(fp);A) Basican B) BasicFortran C) Basic D) FortranBasic(分数:2.00)A.B.C.D.二、填空题(总题数:15

    20、,分数:39.50)41.测试用例包括输入值集和U /U值集。(分数:1.50)填空项 1:_42.深度为 5 的满二叉树中,叶子结点的个数为 1。(分数:2.00)填空项 1:_43.设二叉树如下:(分数:4.00)填空项 1:_44.最简单的交换排序方法是 1。(分数:2.00)填空项 1:_45.45.U /U是数据库设计的核心。(分数:2.00)填空项 1:_46.在 E-R 图中,矩形表示 1。(分数:2.00)填空项 1:_47.设 Y 是 int 型变量,请写出判断 Y 为奇数的关系表达式U /U。(分数:2.00)填空项 1:_48.在关系模型中,把数据看成是二维表,每一个二维

    21、表称为一个_。(分数:4.00)填空项 1:_49.下列程序的循环次数是_。x=2;dox=x*x;while(!x);(分数:2.00)填空项 1:_50.已有定义: double * p; 请写出完整的语句,利用 malloc 函数使 p 指向一个双精度型的动态存储单元:U /U。(分数:2.00)填空项 1:_51.下列的 for 语句的循环次数为_。for(x=1,y=0;(y!=19)x+);(分数:2.00)填空项 1:_52.以下程序中函数 f 的功能是在数组 x 的 n 个数(假定 n 个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请

    22、填空。#include stdio.hvoidf(int x,int n)int p0,p1,i,j,t,m;i=j=x0; p0=p1=0;for(m=0;mn;m+)if(xmi i=xm;p0=m;else if(xmj j=xm;p1:m;t=xp0;xp0=xn-1;xn-1)=tt=xp1;xp1=U /U;U /U=t;main()int a10,u;for(u=0;u10;u+) scanf(“%d“,a=b=2;c=(a+) -1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);A) 3,14,1 B) 3,14,2 C)

    23、 2,04,1 D) 2,14,1(分数:2.00)A. B.C.D.解析:解析 本题主要考查自加运算符(+、-)的使用。前缀变量“+i、-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算:后缀变量“i+、i-”,先使用此时的表达式的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。题中计算表达式 c=(a+)-1 时先使用 a 的值进行计算,结果为 c=2-1=1,然后将 a 的值加 1,即执行完此语句后 a 的值是 3;表达式 c+=-a+(+b)等价于 c=c+(-a+)+(+b),c=1+(-3)+3=1,此时 a=4,b=3。13

    24、.以下叙述中错误的是A) 计算机不能直接执行用 C 语言编写的源程序B) C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D. 解析:解析 一个 C 语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为.obj) ,目标程序不可以直接运行,它要和库函数或其他目标程序连接成可执行文件(后缀名为.exe) 后方可运

    25、行。14.下列正确的实型常量是( )。A) E3.4 B) -12345C) 2.2eO.8 D) 4(分数:1.00)A.B. C.D.解析:解析 实型常量有两种书写形式:小数形式,它由符号、整数部分、小数点及小数部分组成;指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数 e 指数或十进制小数 E 指数。注:e 或 E 后面的指数必须是整数,并且在 e 或 E 的前面必须有数字。本题中,选项 A)中 E 的前面没有数字,因此错误。选项 C)中 0.8 不是整数,因此错误。选项 D)中 4 是整型常量而不是实型常量。15.以下叙述中错误的是 A) C 程序在运行过程中所有计算都以

    26、二进制方式进行 B) C 程序在运行过程中所有计算都以十进制方式进行 C) 所有 C 程序都需要编译链接无误后才能运行 D) C 程序中整型变量只能存放整数,实型变量只能存放浮点数(分数:1.00)A.B. C.D.解析:解析 所有的 C 程序都必须经过编译链接无误后才能运行。在运行过程中,由计算机完成程序中所有的运算。由于计算机只能识别二进制,所以所有的运算都以二进制方式进行,而不是十进制。16.以下叙述中正确的是( )。A) 构成 C 程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main 函数必须放在其他函数之前D) 所有被调用函数一定要在调用之前进行定义(分数:1.00

    27、)A. B.C.D.解析:解析 C 程序是由函数构成的,A) 正确;main 函数可以放在其他函数之前,也可以放在其他函数之后,C) 错误;函数可以嵌套调用,但不能嵌套定义,B) 错误;被调用函数可以在调用之后定义,但需要在调用前声明,D) 错误。17.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+

    28、)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。A) 26 B) 28 C) 29 D) 24(分数:1.00)A.B.C. D.解析:解析 在函数外面定义的变量 a 是全局变量,其作用范围从定义该变量的位置开始到本文件的结束;在 f 函数中的 if 子句(复合语句)和 else 子句中定义的变量 a 是局部变量,其作用范围只在其所在的复合语句内;在 f 函数中定义的第一个变量 a 是静态局部变量,其作用范围只限于函数 f 内部,无论被调用多少次都只初始化一次,并且保留上次函数调用结束时的值,该变量不对复合语句产生作用,所以,f函数的返回值是这个

    29、a 变量和 t 值相加的结果。18.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是( )。main()int x;scanf(“%d“,if(x+2) printf(“%d“,x);elseprintf(“%d/n“,x-);A) 4 和 2 B) 4 和 1 C) 4 和 0 D) 3 和 1(分数:2.00)A. B.C.D.解析:解析 本题考查 ifelse 语句。首先 scanf 函数通过键盘读入 x 的值。当 x=3 时,第一个 if 语句,先判断条件,取 x 的值 3 和 2 比较,然后将 x 的值加 1,发现条件成立,执行下列的 printf 语句,输出x 的

    30、值 4。当 x=1 时,第一个汀语句,先判断条件,取 x 的值 1 和 2 比较,然后将 x 的值加 1(x 的值变为2),发现条件不成立,执行下列的 else 语句,先输出 x 的值 2,再将 x 的值减 1。19.若有下列定义(设 int 类型变量占 2 个字节):int i=8,j=9;则下列语句:printf(“i=%u,j=%x/n“,i,j);输出的结果是( )。A) i=8,j=9 B) 8.9 C) 8 9 D) i=8,j=8(分数:1.00)A. B.C.D.解析:解析 本题考查函数 printf()的格式。“%x”表示以十六进制输出整型数据;“%u”表示以十进制无符号型输

    31、出整型数据。printf 函数中格式说明符之前插入的任何字符都原样输出。20.有以下程序#includestdio.hmain()int x=8;for(;x0;X-)if(x%3)printf(“%d,“,x-);continue;printf(“%d,“,-x);程序的运行结果是( )。A7,4,2 B8,7,5,2 C9,7,6,4 D8,5,4,2(分数:1.00)A.B.C.D. 解析:解析 “x-”表示先执行程序,再令 x 的值减 1;而“-x”表示令 x 的值减 1,再执行程序。21.若变量已正确定义,下列正确的程序段是( )。A) while(ch=getchar()=/NN)

    32、putchar(ch);B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D. 解析:解析 本题考查两个知识点:C 语言用n/这个字符常量表示换行;函数 getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。22.以下选项中值为 1 的表达式是_。(A) 1-0(B) 1-/0(C) 1-0(D) /0-0(分数:2.00)A.B. C.D.解析:23.若要求从键盘读入含有窄格

    33、字符的字符串,应使用函数( )。 A) getc() B) gets() C) getchar() D) scanf()(分数:2.00)A.B. C.D.解析:解析scanf()语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用 scanf()函数不能输入空格;getchar()函数用于输入字符,其调用形式为:ch=getchar(),getchar()函数从终端读入一个字符作为函数值,把读入的字符赋给变量 ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入 Enter 键时,读入才开始执行。gets()函数的调用形式为:gets(str_adr),其中 str_ad

    34、r是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。gets 函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc()函数的调用形式为:ch=getc(pf)其中 pf 是文件指针。函数的功能是从 pf 指定的文件中读入一个字符,并把它作为函数值返回。24.已有定义“char c;”,程序前面已在命令行中包含 ctype.h 文件,不能用于判断 c 中的字符是否为大写字母的表达式是( )。Aisupper(c) BA-c=ZCA=cfor(i=9;i=0;i-)ai=1O-i;printf(“%d%d%d“,a2,a5,a8);A) 258

    35、 B) 741 C) 852 D) 369(分数:2.00)A.B.C. D.解析:评析 在本题运行时主要注意的是当 i=9 时,ai=l0-9=1;ai=8 时,ai=10-8=2;i=7 时,ai=10-7=3;依此类推,直到 i=O 时,ai=10-0=10;此时,i 的值已变为-1,判断 for 的循环条件,不成立,然后输出 a2,a5,a8分别为 8,5,2。26.有以下程序#include stdiohmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是A) 0 B) 1 C

    36、) 2 D) 3(分数:1.00)A.B. C.D.解析:解析 本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为“ji”,而 j 的初值为 3,故当 i 的值为 1 和 2 时,内层循环体都不会被执行。只有当 i 和 j 都等于3 时才会执行一次。m 的值为 55 对 3 取模,计算结果为 1。27.恢复系统默认菜单的命令是_。A) SET MENU TO DEFAULT B) SET SYSMENU TO DEFAULTC) SET SYSTEM MENU TO DEFAULT D) SET SYSTEM TO DEFAULT(分数:2.00)A.B. C.D.解析:解

    37、析 本题考查的知识点是菜单命令。SET SYSMENU TO DEFAULT 命令将系统菜单恢复为默认配置,SET SYSMENU TO 命令将屏蔽系统菜单,使系统菜单不可用。28.若有说明语句: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=p

    38、2=p1;(分数:1.00)A.B.C.D. 解析:解析本题考查指针变量的赋值。选项 A)中,p1、p2 本身都是地址变量,不能再将 p1 取地址赋给 p2:选项 B)中,不能将整型数据直接赋值给指针型数据;选项 C)中,*p2 代表了一个整型变量,而*p2=p1 这个语句试图把一个地址值放入一个整犁变量中是错误的;选项 D)中指针问的赋值是正确的。30.设变量已正确定义,则下列能正确计算 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

    39、(i=n;i=2;i-)f*=i;(分数:2.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!=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 的初值为

    40、 1,在 for 循环语句中,f 依次乘以n,n-1,n-2,2。最后计算 f=n!,所以选项 D)正确。31.以下程序运行后的输出结果是fun(int x,int y,int z) z=x*y;main( )int a=4,b=2,c=6;fun(a,b,c);printf(“%d“,c);A) 16 B) 6 C) 8 D) 12(分数:2.00)A.B. C.D.解析:解析 本题考查的函数形参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改变不能影响实参值的改变,即本题中 c 的值未改变,仍然是 6。32.有以下程序#include stdioh#define N 8voi

    41、d fun(int*x,int i*x=*(x+1);main()int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=0;iN/2;i+)printf(“%d“,ai);printf(“/n“);程序运行后的输山结果是A) 1 3 1 3 B) 2 2 3 4 C) 3 2 3 4 D) 1 2 3 4A.B.C. D.解析:解析 fun 函数的功能是把数组下标为 i 的值赋值给 a0,所以执行 fun(a,2)后,数组前 4 个数字为 3、2、3、 4,故选择 C。33.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为(

    42、)。A) EOF B) 非 0 值C) 0 D) NULL(分数:2.00)A.B. C.D.解析:解析 ANSI C 提供的 feof 函数的功能是判断 fp 所指的文件的位置是否已达到文件尾,如果达到文件尾,则 feof 函数的值为 1,否则为 0,表示文件尚未结束。34.若有以下程序:#includestdiohint a=2,4,6,8;main()int i;int *p=a;for(i=0;i4;i+) ai=*p;printf(“%d/n“,a2);上面程序的输出结果是( )。A) 6 B) 8 C) 4 D) 2(分数:1.00)A.B.C.D. 解析:解析 在 C 语言中,数

    43、组元素的下标是从 0 开始的。for 循环语句中,指针变量 p 始终指向数组a 的首地址,因而执行循环赋值语句后数组各元素的值均变为 2。35.下列叙述中错误的是( )。A) 在 C 语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B) 在 C 语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容C) 在 C 语言中,外部变量的隐含类型是自动存储类别D) 在 C 语言中,函数形参的存储类型是自动(auto)类型的变量(分数:1.00)A.B.C. D.解析:解析 外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。36.有以下程序:struct Sint

    44、n;int a20;void f(int*a,int n)int i;for(i=0;in-1;i+)ai+=i;mainf()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;if(s.a,s.n);for(i=0;is.n;i+)printf(“%d“,s.ai);程序运行后的输出结果是_。A) 2,4,3,9,12,12,11,11,18,9 B) 3,4,2,7,9,8,6,5,11,10C) 2,3,1,6,8,7,5,4,10,9 D) 1,2,3,6,8,7,5,4,10,9(分数:2.00)A. B.C.D.解析:解析 在主函数中定义了一个整型变量

    45、 i 和一个结构体变量 s。在 f()函数中定义了一个结构体指针类型的指针 a,用它来引用数组中的元素;通过 for 循环语句将数组中最后一个元素外的其他元素分别加上由 0 开始的递增数据;最后输出。37.下面程序的输出结果为_。#includestring.hmain()char p17=“abc“,p2=“ABC“,str50=“xyz“;strcpy(str,strcat(p1,p2);printf(“%s“,str);A) xyzabcABC B) abcABC C) xyzabc D) xyzABC(分数:2.00)A.B. C.D.解析:评析 strcpy(str1,s1):作用是

    46、将字符串 s1 拷贝到字符数组 str1 中去。strcat(字符数组 1,字符数组 2):把字符串 2 接到字符串 1 的后面,结果放在字符数组 1 中,函数调用后返回字符数组 1 的地址。本题定义了三个字符数组 p1,p2,sir,strcat(p1,p2)函数的作用是将字符串数组 p2 接到字符串 p1 的后面,结果放在字符数组 p1 中,再通过 strcpy()函数将该字符串拷贝到 str 数组中,原 str 数组中的字符串 xyz 被覆盖,因此打印输出字符串 str 即可得到 abcABC。38.有以下程序#includestdio.hvoid fun(char*t,char*s)w

    47、hile(*t!=0)t+;while(*t+=*s+)!=0);main()char ss10=“ace“,aa10=“bbxxyy“;fun(ss,aa);printf(“%s,%s“,ss,aa);程序运行结果是( )。Aacexyy,bbxxyy Bace,bbxxyyCaccxxyy,bbxxyy Daccbbxxyy,bbxxyy(分数:1.00)A.B.C.D. 解析:解析 主函数中语句 fun(ss,aa)的功能是将字符串 aa 连接到字符串 ss 的末尾。39.设有下列说明语句:Strcut Strint x;float y;char z;st;则下列的叙述中不正确的是( )。A) struct 是结构体类型的关键字 B) st 是结构体类型名C) x、y、z 都是结构体成员名 D) struct str 是结构体类型名(分数:2.00)A.B. C.D.解析:解析 本题主要考查结构类型的定义:struct 是结构


    注意事项

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




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

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

    收起
    展开