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

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

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

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

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

    1、二级 C语言笔试-257 及答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列选项中不属于结构化程序设计方法的是( )。(分数:1.00)A.自顶向下B.逐步求精C.模块化D.可复用2.下列叙述中,正确的是( )。(分数:1.00)A.用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B.用 E-R图只能表示实体集之间一对一的联系C.用 E-R图只能表示实体集之间一对多的联系D.用 E-R图表示的概念数据模型只能转换为关系数据模型3.以下合法的十六进制数是( )。(分数:1.00)A.0xB.0x4deC.0x1hD.0X7

    2、74.Visual FoxPro关系数据库管理系统能够实现的三种基本关系运算是( )。(分数:1.00)A.索引、排序、查找B.建库、录入、排序C.选择、投影、连接D.显示、统计、复制5.以下程序的运行结果是( )。#define MAX(A,B)((分数:1.00)A.(B.(A):(B)#define PRINT(Y)printf(“Y=%d/t“,Y)main()int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);A)Y=3B)存在语C.Y=7D.Y=06.有定义语句:int b;char c10;,则正确的输入语句是( )。(分数:1.00)A.

    3、scanf(“%d%s“,B.scanf(“%d%s“,C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,7.以下叙述不正确的是( )。(分数:1.00)A.一个 C源程序可由一个或多个函数组成B.一个 C源程序必须包含一个 main函数C.C程序的基本组成单位是函数D.在 C程序中,注释说明只能位于一条语句的后面8.以下程序的输出结果是( )。struct HARint x,y;struct HAR *p; h2;main()h0 x=1;h0.v=2;h1.x=3;h1.y=4;h0.p=h1.p=h;(分数:1.00)A.12B.23C.14D.329.有以下程序

    4、:void f(int*q)int i=0;for(;i5;i+)(*q)+;main()int a5=1,2,3,4,5,i;f((分数:1.00)A.;for(i=0;i=5;i+)printf(“%d10.有以下程序:main()int a=666,b=888;printf(“%d/n“,a,b);程序运行后的输出结果是( )。(分数:1.00)A.错误信息B.666C.888D.666.88811.下述关于数据库系统的叙述中正确的是( )。(分数:1.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理

    5、更多的数据12.下列叙述中正确的是( )。(分数:1.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构13.下列选项中 C语言中不合法的字符串常量的是( )。(分数:1.00)A.“)1“B.“2y1“C.“)n/n“D.“ABCD/x6d“14.有以下程序:main()int x=102,y=012;printf(“%2d,%2d/n“,x,y);执行后输出结果是( )。(分数:1.00)A.10,01B.02,12C.102,10D.02,1015.若有定义:int x=0,*p=B.char A=65+1,b=b;C.float a=1,*b

    6、=D.double a=0.0;b=1.1;17.若运行以下程序时,从键盘输入 ADescriptorc(表示回车),则下面程序的运行结果是( )。#includemain()char c;int v0=1,v1=0,v2=0;doswitch(c=getchar()case a:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1;default:v0+=1;v2+=1;while(c!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);(分数:1.00)A.V0=7,v1=4,v2=7B.

    7、v0=8,v1=4,v2=8C.V0=11,v1=4,v2=11D.v0=13,v1=4,v2=1218.下面关于对象概念的描述中,错误的是( )。(分数:1.00)A.对象就是 C语言中的结构体变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的19.有如下程序:main()float x=20,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=10;printf(“%f/n“,y);该程序的输出结果是( )。(分数:1.00)A.0.000000B.0.250000C.0.500

    8、000D.1.00000020.设树 T的度为 4,其中度为 1、2、3、4 的结点个数分别为 4、2、1、1,则 T中的叶子结点数为( )。(分数:1.00)A.8B.7C.6D.521.设有以下说明语句:struct exinc x;float y;char z;example;则下面的叙述中不正确的是( )。(分数:1.00)A.struct结构体类型的关键字B.example是结构体类型名C.x、y、z 都是结构体成员名D.struct ex是结构体类型名22.设有如下定义:struct skint n;float x;data,*p;若要使 P指向 data中的 n域,正确的赋值语句

    9、是( )。(分数:1.00)A.P=B.*P=data.n;C.P=(struct sk*)D.P=(struct sk,)data.n;23.若变量已正确定义为 int型,要通过语句 scanf(“%d,%d,%d,scanf(“%d%d“,s=a;if(ab)s=b;s*=s;printf(%d“,s);(分数:1.00)A.36B.64C.48D.以上都不对25.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是( )。(分数:1.00)A.可行性分析B.需求分析C.详细设计D.程序编码26.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,a1,a2);f

    10、printf(fp,%c1%d%d/n,a3,a4,a5);fdosefp);fp=fopen(d2.dat,r);fscanf(fp,%d%d,(y0)x+,y-);则下面叙述中正确的是( )(分数:1.00)A.是无限循环B.循环次数不定C.循环执行 4次D.循环执行 3次29.栈通常采用的两种存储结构是( )。(分数:1.00)A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构30.阅读下列程序,则运行结果为( )。#include “stdio.h“fun()static int x=5;x+;return x;main()int

    11、 i,x;for(i=0;i3;i+)x=fun();printf(%d/n“,x)(分数:1.00)A.5B.6C.7D.831.数字字符 0的 ASC值为 48,若有以下程序:main()char a=1,b=2;printf(“%c“,b+);printf(%d/n“,b-(分数:1.00)A.;32.有以下程序:fun(int X)int p;if(x=0|x=1)return(3);P=x-fun(x-2);return p;main()printf(%d/n“,fun(7)执行后的输出结果是( )。(分数:1.00)A.7B.3C.2D.033.运行下面程序时,从键盘输入字母 H,

    12、则输出结果是( )。#include main()char ch;ch=getchar();switch(ch)case H:printf(“Hello!/n“);case G:printf(“Good morning/n“);default:printf(“Bye Bye!/n“);(分数:1.00)A.Hello!B.Hello!Good Moring!C.Hello!Good morning!Bye Bye!D.Hello!Bye Bye!34.若有以下函数首部:int fun(double x10,int *n)则下面针对此函数的函数声明语句中正确的是( )。(分数:1.00)A.in

    13、t fun(double x,int *n);B.int fun(double int);C.int fun(double *x,int n);D.int fun(double *,int *);35.在结构化程序设计中,模块划分的原则是( )。(分数:1.00)A.各模块应包括尽量多的功能B.备模块的规模应尽量大C.备模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度36.有以下程序段:int a,b,c;a=10;b=50;c=a;if(ab)a=b,b=c;c=a;printf(“a=%d b=%d c=%d/n“,a,b,c);程序的输出结果是( )。(分数:1.00)

    14、A.a=10 b=50 c=10B.a=10 b=50 c=30C.a=10 b=30 c=10D.a=50 b=30 c=5037.若有定义:char *s=“how are you“;,下列程序段中正确的是( )。(分数:1.00)A.char a11,*p;strcpy(p=a+1,B.char a11;strcpy(+a,st);C.char a11;strcpy(a,st);D.char a,*p;strcpy(p=38.以下 4个程序中,完全正确的是( )。(分数:1.00)A.#include main()/*programming*/printf(“programming!/n

    15、“);B.#include main()/*/programming/*/printf(programming!/n“);C.#include main()/*/*programming*/*/printf(“programming!/n“);D.include main()/*programming*/printf(“programming!/n“);39.以下正确的程序段是( )。(分数:1.00)A.char str1()=“12345“,str2()=abcdef“;strcpy(str1 str2);B.char str10,*st=“abcde“;strcat(str,sf);C.

    16、char str10=“ “,*st=“abcde“;strcat(str,sf);D.char*st1=“12345“,st2=“abcde“;strcat(st1,st2);40.以下程序的输出结果是( )。main()int c=35;printf(%d/n“,cprintf(%d%d/n,+m,n+);(分数:2.00)填空项 1:_47.有以下程序:main()int m,n,p;Scanf(“m=%d n=%d p=%d,printf(%d%d%d/n,m,n,p);若想从键盘上输入数据,使变量 m中的值为 123,n 中的值为 456,p 中的值为 789,则正确的输入是 7 。

    17、(分数:2.00)填空项 1:_48.有以下程序:main()int m=0256,n=256;prinf(“%o%o/n“m,n);程序运行后的输出结果是 8 。(分数:2.00)填空项 1:_49.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三个条件:a+b,c,a+cb,b+ca。请填空。main()float a,b,c;scanf(“%f%f%f“,if( 9 )printf(“YES/n“); /*a、b、c 能构成三角形*/else printf(“NO“

    18、); /*a、b、c 不能构成三角形*/(分数:2.00)填空项 1:_50.已定义 char ch=$;inf i=1,j;,执行 j=!ch for(i=1;ic=5;i+)f=i+ 11 ;s=s+t;printf(“s=%d/n“,s);(分数:2.00)填空项 1:_52.有以下程序段:int a0=(1,2,3,4,5,6,7,8,9,10),*P=b=p5;b中的值是 12 。(分数:2.00)填空项 1:_53.以下程序运行后的输出结果是 13 。main()char c1,c2;for(c1=0,c2=9;c1c2;c1+,c2-)printf(“%c%c“,c1,c2);p

    19、rintf(“/n“);(分数:2.00)填空项 1:_54.以下程序中函数 fun的功能是:统计 person所指结构体数组中所有性别(sex)为 M的记录的个数,存入变量 n中,并作为函数值返回。请填空。#include #define N 3typedef structint num;char nam10;char sex;SS;int fun(SS personint i,n=0;for(i=0;iN;i+)if( 14 =M)n+;return n;(分数:2.00)填空项 1:_55.设 fP为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为 15 。

    20、(分数:2.00)填空项 1:_二级 C语言笔试-257 答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列选项中不属于结构化程序设计方法的是( )。(分数:1.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则是:自顶向下,逐步求精,模块化,限制使用 goto语句。可复用性是指软件元素不加修改和稍加修改可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法。面向对象的程序设计具有可复用性的优点。2.下列叙述中,正确的是( )。(分数:1.00)A

    21、.用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 B.用 E-R图只能表示实体集之间一对一的联系C.用 E-R图只能表示实体集之间一对多的联系D.用 E-R图表示的概念数据模型只能转换为关系数据模型解析:解析 两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。3.以下合法的十六进制数是( )。(分数:1.00)A.0xB.0x4de C.0x1hD.0X77解析:解析

    22、考查十六进制数的表示方法。十六进制数以 0x开头,后面跟着若干位 1-f的数,所以正确答案为 B)。4.Visual FoxPro关系数据库管理系统能够实现的三种基本关系运算是( )。(分数:1.00)A.索引、排序、查找B.建库、录入、排序C.选择、投影、连接 D.显示、统计、复制解析:解析 关系数据库管理系统能够实现的三种基本关系运算是选择(从关系中找出满足给定条件的元组的操作称为选择)、投影(从关系模式中指定若干个属性组成新的关系)、连接(是关系的横向组合)。5.以下程序的运行结果是( )。#define MAX(A,B)((分数:1.00)A.(B.(A):(B)#define PRI

    23、NT(Y)printf(“Y=%d/t“,Y)main()int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);A)Y=3B)存在语C.Y=7 D.Y=0解析:解析 考查带参数的宏替换。宏替换不像函数调用要进行参数值的计算、传递等,而只是简单按照原格式进行字符串的替换。6.有定义语句:int b;char c10;,则正确的输入语句是( )。(分数:1.00)A.scanf(“%d%s“,B.scanf(“%d%s“, C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,解析:解析 本题考查的是标准输入函数 scanf()的运用。sc

    24、anf 函数的第一个参数是格式控制字符串,该字符串中所出现的格式控制符必须与 scanf函数的第二个及其后面的参数一一对应。本题中四个选项的格式控制字符串都是“%d%s”,其中包括两个格式控制符%d 和%s,它们分别表示输入一个十进制整数和输入一个字符串,其对应的参数应该分别为一个整型变量的地址和一个字符型数组的首地址。变量的地址可以通过对变量做取地址(struct HAR *p; h2;main()h0 x=1;h0.v=2;h1.x=3;h1.y=4;h0.p=h1.p=h;(分数:1.00)A.12B.23C.14D.32 解析:解析 本题考查的是 C语言中结构体与链表。本题中是一个含有

    25、两个结点的循环链表。C 语言中结构体的定义为:struct结构体类型名成员项表;9.有以下程序:void f(int*q)int i=0;for(;i5;i+)(*q)+;main()int a5=1,2,3,4,5,i;f((分数:1.00)A.;for(i=0;i=5;i+)printf(“%d解析:解析 本题首先定义了一个数组 a并初始化。然后用数组名 a作为实参调用函数 f()。在 f()中,只有一个 for循环,循环变量 i从 0递增至 4,共循环 5次,而每次执行的语句是(*q)+;,即让形参 q所指内容连续增 1了 5次。所以调用结束后,数组 a的第 1个元素被加 5,故输出的结

    26、果为6,2,3,4,5,。应该选择 B)。10.有以下程序:main()int a=666,b=888;printf(“%d/n“,a,b);程序运行后的输出结果是( )。(分数:1.00)A.错误信息B.666 C.888D.666.888解析:解析 本题考核的知识点是 printf()函数的简单应用。程序中的 printf()函数的输出格式部分只说明了一个%d,而输出成员列表却有 a和 b两个成员,在这里将只输出第一个成员 a值为 666,所以,4个选项中选项 B)符合题意。11.下述关于数据库系统的叙述中正确的是( )。(分数:1.00)A.数据库系统减少了数据冗余 B.数据库系统避免了

    27、一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据解析:解析 数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。12.下列叙述中正确的是( )。(分数:1.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 根据数据结构中备数据元素之间前后件关系的复杂程度,一股将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线

    28、性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。13.下列选项中 C语言中不合法的字符串常量的是( )。(分数:1.00)A.“)1“B.“2y1“ C.“)n/n“D.“ABCD/x6d“解析:解析 字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项 A)、C)、D)都是合法的字符串常量,而选项 B)是一个字符常量。14.有以下程序:main()int x=102,y=012;printf(“%2d,%2d/n“,x,y);执行后输出结果是( )。(分数:1.00)A.10,01B.02,12C.102,10 D.02,10解析:

    29、解析 本题考核的知识点是输出函数 printf()的应用。本题中,printf(“%2d,%2d/n”,x,y)表示输出形式是十进制整数,域宽是 2,而在 C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出因此最后的输出值为 102和 10,所以选项 C)符合题意。15.若有定义:int x=0,*p=B.char A=65+1,b=b; C.float a=1,*b=D.double a=0.0;b=1.1;解析:解析 本题主要考查的是变量定义的基本概念。选项 A)中定义变量时用了连续的赋值语句,这在定义变量中是不正确的,故选项 A)不正确。选项 C)中 b被定义为一个指针变量,

    30、接着又定义了一个同样的指针变量 c,并让 c初始化为 b的地址,这是错误的。c 被定义为 float类型的指针变量,因此只能指向 float类型变量的地址而不是指向 float类型指针变量的地址,所以选项 C)不正确。17.若运行以下程序时,从键盘输入 ADescriptorc(表示回车),则下面程序的运行结果是( )。#includemain()char c;int v0=1,v1=0,v2=0;doswitch(c=getchar()case a:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1;default:v0+=

    31、1;v2+=1;while(c!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);(分数:1.00)A.V0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.V0=11,v1=4,v2=11D.v0=13,v1=4,v2=12 解析:解析 本题考查 swicch语句的掌握。必须掌握以下内容:首先应该明白 Switch语句的语法格式:Switch语句的语法格式为:switch(表达式)case常量表达式 1:语句组 1;case常量表达式 2:语句组 2;case常量表达式 n:语句组 n;default:语句组 n+1;另外,以下几点关于 Swi

    32、tch语句的重点:系统在执行时计算开关表达式的值;根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是 caseA;);找到匹配后执行后面相应的语句表,顺序往下执行;如果无相匹配的标号,若存在 default标号,则执行该语句标号后面的语句表 n+1;当不存在 default标号时,不执行 Switch中的任何一个语句表。一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入 default程序段,作统一处理。default标号是可选性的,不必每次都有,视需要而定。Switch 语句中还可以包含 Switch语句,形成Switch的嵌套。18.下面关

    33、于对象概念的描述中,错误的是( )。(分数:1.00)A.对象就是 C语言中的结构体变量 B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的解析:解析 对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之间通过传递消息互相联系,从而模拟现实世界中不同事物彼此之间的联系,B)、C)、D)是正确的,对象的思想广泛应用于 C+、Java 等语言中,因此 A)错误。19.有如下程序:main()float x=20,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=10;p

    34、rintf(“%f/n“,y);该程序的输出结果是( )。(分数:1.00)A.0.000000B.0.250000C.0.500000 D.1.000000解析:解析 该题目测验考生对 ifelse if结构的理解,比较简单。x 的值满足 x10.0 的关系,所以程序将执行 y=10/x;语句,y 的值应该等于 0.5。最后,用 printf函数输出时,%f 的输出格式为小数点后保留 6位。20.设树 T的度为 4,其中度为 1、2、3、4 的结点个数分别为 4、2、1、1,则 T中的叶子结点数为( )。(分数:1.00)A.8 B.7C.6D.5解析:解析 将题中所述的树用图形表示即可得到

    35、叶子结点的数目,另外还可用公式n0=1n2+2n3+3n4+1来计算,其中 n0表示叶子结点;1n 2中的 n,表示度为 2的结点。此题中度为 1的结点有 4个;度为 2的结点有 2个;度为 3的结点有 1个;度为 4的结点有 1个,计算过程如下:n0=1n2+2n3+3n4+1n0=12+21+31+1n0=821.设有以下说明语句:struct exinc x;float y;char z;example;则下面的叙述中不正确的是( )。(分数:1.00)A.struct结构体类型的关键字B.example是结构体类型名 C.x、y、z 都是结构体成员名D.struct ex是结构体类型名

    36、解析:解析 本题中,struct ex 是结构体类型名,example 是结构体变量名。22.设有如下定义:struct skint n;float x;data,*p;若要使 P指向 data中的 n域,正确的赋值语句是( )。(分数:1.00)A.P=B.*P=data.n;C.P=(struct sk*) D.P=(struct sk,)data.n;解析:解析 本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:结构体变量名,成员名或结构体指针*成员名的方法来引用结构体成员。23.若变量已正确定义为 int型,要通过语句 scanf(“%d,%d,%d,scanf(“%d%d“

    37、,s=a;if(ab)s=b;s*=s;printf(%d“,s);(分数:1.00)A.36B.64 C.48D.以上都不对解析:解析 本题中 a的值为 6,b 的值为 8,最后 s的值为 8,s*=s 等价于 s=s*s。25.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是( )。(分数:1.00)A.可行性分析B.需求分析 C.详细设计D.程序编码解析:解析 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。本题答案为 B)。26.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,a1,a2

    38、);fprintf(fp,%c1%d%d/n,a3,a4,a5);fdosefp);fp=fopen(d2.dat,r);fscanf(fp,%d%d,(y0)x+,y-);则下面叙述中正确的是( )(分数:1.00)A.是无限循环B.循环次数不定C.循环执行 4次 D.循环执行 3次解析:解析 本题考查的知识点是:for 循环语句的应用。本题首先要看出 for循环条件的基本形式(;)当循环执行 4次时,x+使 x变为 4,此时不满足判断条件,结束循环。故 C)为正确答案。29.栈通常采用的两种存储结构是( )。(分数:1.00)A.顺序存储结构和链式存储结构 B.散列方式和索引方式C.链表存

    39、储结构和数组D.线性存储结构和非线性存储结构解析:解析 和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针 top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。30.阅读下列程序,则运行结果为( )。#include “stdio.h“fun()static int x=5;x+;return x;main()int i,x;for(i=0;i3;i+)x=fun();printf(%d/n“,x)(分数:1.00)A.5B.6C.7D.8 解析:解析 在整个

    40、程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数 fun(),三次对静态变量 x进行操作,x 的值应依次为 6,7,8。31.数字字符 0的 ASC值为 48,若有以下程序:main()char a=1,b=2;printf(“%c“,b+);printf(%d/n“,b-(分数:1.00)A.;解析:解析 本题考查了字符型变量的运算及输出。在 C语言中,字符型变量可以看作整型变量来对待,与整型所不同的是字符型变

    41、量在内存中只占 1个字节,而整型是 2个字节。字符型变量中所存的数值是它所表示字符的 ASC码值。ASC码中的一些相关字符是顺序排列的,如0的 ASC码值为 48,1。为49,依次类推,一直到9;A的 ASC码值为 65,B为 66,依次类推,一直到z。本题程序一开始就定义了两个字符型变量 a和 b,并初始化为字符。1和2,由于题目已经告知。0的 ASC值为48,所以变量 a、b 中所存1、2的 ASC值为 49和 50。32.有以下程序:fun(int X)int p;if(x=0|x=1)return(3);P=x-fun(x-2);return p;main()printf(%d/n“,

    42、fun(7)执行后的输出结果是( )。(分数:1.00)A.7B.3C.2 D.0解析:解析 因为 fun(int x)是一个递归函数,所以主函数中 fun(7)经过三次递归调用,其过程可以描述为“fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(5-(3-3)=7-5=2”,所以最后的输出结果为2。33.运行下面程序时,从键盘输入字母 H,则输出结果是( )。#include main()char ch;ch=getchar();switch(ch)case H:printf(“Hello!/n“);case G:printf(“Good morni

    43、ng/n“);default:printf(“Bye Bye!/n“);(分数:1.00)A.Hello!B.Hello!Good Moring!C.Hello!Good morning!Bye Bye! D.Hello!Bye Bye!解析:解析 本题主要对 Switch语句进行了考查。Switch 语句的执行过程为:进入 Switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的 case,以此作为入口,执行 Switch结构中后面的各语句,直到遇到 break语句,则跳出 Switch语句,如果各 case都不匹配时,则执行default后面的语句。本题中 ch为字

    44、符。H,所以 case H条件中的语句将被执行,由于没有 break语句,所以 case G后的语句也被执行,由于同样的缺少 break语句,所以 default后的语句也被执行了。34.若有以下函数首部:int fun(double x10,int *n)则下面针对此函数的函数声明语句中正确的是( )。(分数:1.00)A.int fun(double x,int *n);B.int fun(double int);C.int fun(double *x,int n);D.int fun(double *,int *); 解析:解析 本题考查的是函数的声明。函数声明的一股形式为:函数类型函数

    45、名(参数类型 1,参数名 1,参数类型 2 ,参数名 2);其中,参数名也可以省略。本题中的 fun函数有两个参数,一个类型是 double型一维数组,另一个是int型指针。而在 C语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所以本题的正确答案是选项 D)。35.在结构化程序设计中,模块划分的原则是( )。(分数:1.00)A.各模块应包括尽量多的功能B.备模块的规模应尽量大C.备模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度 解析:解析 在结构化程序设计中,一股较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。36

    46、.有以下程序段:int a,b,c;a=10;b=50;c=a;if(ab)a=b,b=c;c=a;printf(“a=%d b=%d c=%d/n“,a,b,c);程序的输出结果是( )。(分数:1.00)A.a=10 b=50 c=10 B.a=10 b=50 c=30C.a=10 b=30 c=10D.a=50 b=30 c=50解析:解析 本题考查的是 if语句。本题是一道陷阱题,语句 if(ab)a=b,b=c;c=a;看上去好像a=b,b=c;c=a;都是 if的子句,其实只有第 1个分号及其之前的语句 a=b,b=c;是 if的子句,c=a;是紧接着的语句,跟 if的条件无关,始

    47、终会被运行的。题目中,a=10,b=50,所以 ab 条件为假,那么a=b,b=c;不会被执行,而 c=a;会被执行。所以最终输出结果是 a=10 b=50 c=10,应该选择 A)。37.若有定义:char *s=“how are you“;,下列程序段中正确的是( )。(分数:1.00)A.char a11,*p;strcpy(p=a+1, B.char a11;strcpy(+a,st);C.char a11;strcpy(a,st);D.char a,*p;strcpy(p=解析:解析 本题综合考查字符数组的赋值和 strcpy函数的用法。C 语言不允许用赋值表达式对字符数组赋值,如下

    48、面的语句就是非法的:str1=“China”,如果想把“China”这 5个字符放到数组 str1中,除了逐个输入外,还能使用 strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,China“)或 strcpy(str1,str2);。注意,不能企图用以下语句来实行赋值(将 str2的值传给 str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。strcpy函数的结构是:strcpy(字符数组 1,字符串 2)。其中,需要注意的是,字符数组 1的长度不应小于字符串 2的长度,“字符数组 1”必须写成数组名形式,如(str1),“字


    注意事项

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




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

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

    收起
    展开