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

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

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

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

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

    1、二级 C 语言笔试 316 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.在执行下述程序时,若从键盘输入 6 和 8,则结果为 main( ) int a,b,s; scanf(“%d%d“, S=a if(ab) s=b; S*=s; printf(“%d“,s); A)36 B)64 C)48 D)以上都不对(分数:2.00)A.B.C.D.2.C 语言规定,在一个源程序中,main 函数的位置(分数:2.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3.算法的空间复杂度是指(分数:2.00)A

    2、.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间4.以下程序的输出结果是#include int a33=1,2,3,4,5,6,7,8,9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *s=p11;A)1 B)4 C)7 D)5(分数:2.00)A.B.C.D.5.若有说明:int *p,m=5,n;,以下正确的程序段是(分数:2.00)A.p=scanf(“%d“,&;B.p=scanf(“%d“,*C.scan

    3、f(“%d:,&;*p=n;D.p=*p=m;6.有以下程序 main( ) int k=5,n=0; do switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4:n+=2;k-;break; printf(“%d“,n); while(k0 for(i=0;i4;i+) for(j=0;j3;j+) fof(k=j+1;k4;k+) if(ajiaki)t=aji;aki;aki=t;/*按列排序*/ for(i=0;i4;i+)printf(“%d,aii); 程序运行后的输出结果是(分数:2.00)A

    4、.B.C.D.8.下列叙述中,不属于测试的特征的是(分数:2.00)A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性9.请选出正确的程序段 A)int *p; scanf(“%d“,p); B)int *s,k; *s=100; C)int *s,k; char *p,c; s=k; p= *p=a; D)int *s,k; char *p,e; s= p= s=p; *s=1; (分数:2.00)A.B.C.D.10.下列有关数据库的描述,正确的是(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.

    5、关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字11.有如下程序 main() int n=9; while(n6) n-;printf(“%d“,n); 该程序的输出结果是 A)987 B)876 C)8765 D)9876(分数:1.00)A.B.C.D.12.有以下程序#include main( ) FILE *fp;int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclo

    6、se(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(分数:1.00)A.B.C.D.13.某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点数为(分数:1.00)A.n+1B.n-1C.2nD.n/214.下面程序输出的结果是 main( ) int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d“,a2-ii); A)1

    7、 5 9 B)7 5 3 C)3 5 7 D)5 9 1(分数:1.00)A.B.C.D.15.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,语句为变量 a1 和 a2 赋数值 10和 20,为变量 c1 和 c2 赋字符 X 和 Y。以下所示的输入形式中正确的是(注:代表空格字符)(分数:1.00)A.10X20YB.10X20YC.10X20YD.10X20Y16.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是(分数:1.00)A.x%2=1B.x/2C.x%2!=0D.x%2=017.在 C 语言中,函数返回值的类型最终取决于(分数:1.00)A.函数定

    8、义时在函数首部所说明的函数类型B.return 语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型18.有以下程序 main( ) int x=0,y=0,i; for(i=1;+i) if(i%2=0)x+;continue; if(i%5=0)y+;break; printf(“%d,%d“,x,y); 程序的输出结果是 A)2,1 B)2,2 C)2,5 D)5,2(分数:1.00)A.B.C.D.19.在 C 语言中,变量的隐含存储类别是(分数:1.00)A.autoB.staticC.externD.无存储类别20.已知大写字母 A 的 ASCII 码

    9、是 65,小写字母 a 的 ASCII 码是 97。以下不能将变量 c 中的大写字母转换为对应小写字母的语句是(分数:1.00)A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(A+%26-a21.以下合法的字符型常量是(分数:2.00)A./x13B./081C.65D.“/n“22.若执行下面的程序时,从键盘输入 5 和 2,则输出结果是 main( ) int a,b,k; scanf(“%d,%d“, k=a; if(ab)k=a%b; else k=b%a; printf(“%d/n“,k); A)5 B)3 C)2 D)0(分数:2.00)A.B.C.D.23

    10、.现有如下程序段 #include “stdio.h“ main( ) int a56=23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1; int i=0,j=5; printf(“%d/n“,*( 则程序的输出结果为 A)21 B)78 C)23 D)28(分数:2.00)A.B.C.D.24.以下叙述中错误的是(分数:2.00)A.计算机不能直接执行用 C 语言编写的源程序B.C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.obj 的文件,经连接程序生成后缀为.

    11、exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以直接运行25.下列叙述中,正确的是(分数:2.00)A.用 E-R 图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B.用 E-R 图只能表示实体集之间一对一的联系C.用 E-R 图只能表示实体集之间一对多的联系D.用 E-R 图表示的概念数据模型只能转换为关系数据模型26.下面程序段的运行结果是 char a =“lanuage“,*p; p=a; while(*p!=u)printf(“%c“,*p-32);p+;A)LANGUAGE B)language C)LAN D)langUAGE(分数:2.

    12、00)A.B.C.D.27.在结构化程序设计中,模块划分的原则是(分数:2.00)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度28.下面关于对象概念的描述中,错误的是(分数:2.00)A.对象就是 C 语言中的结构体变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的29.有以下程序 int f(int n) if(n=1) return 1; else return f(n-1) +1; main( ) int i,j=0; for(i=1;

    13、i3;i+) j+=f(i); printf(“%d/n“,j); 程序运行后的输出结果是 A)4 B)3 C)2 D)1(分数:2.00)A.B.C.D.30.有以下程序#include main( ) char p20=a,b,c,d,q =“abc“,r =“abcde;strcat(p,r) ;strcpy(p+strlen(q),q);printf(“%d/n“,strlen(p);程序运行后的输出结果是A)9 B)6 C)11 D)7(分数:2.00)A.B.C.D.31.以下程序的输出结果是 main( ) int c=35;printf(“%d/n“,cc); A)0 B)70

    14、 C)35 D)1(分数:2.00)A.B.C.D.32.以下叙述中正确的是(分数:2.00)A.构成 C 程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main( )函数必须放在其他函数之前D.C 函数定义的格式是 Kint i=0;scanf(“%s“,s);while(si!=/n) if(si=c)si-32;else if(si=c-32)si=si+32;i+;puts(s);A)ahaMa B)AbAMa C)AhAMa空格ahA D)ahAMa空格ahA(分数:2.00)A.B.C.D.34.有以下程序#include main( ) int c;while(c=g

    15、etchar()!=/n) switch(c-2) case0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);case 4:putchar(c+3);break;printf(“/n“)从第一列开始输入以下数据代表一个回车符。2743程序的输出结果是A)66877 B)668966 C)6677877 D)6688766(分数:2.00)A.B.C.D.35.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是(分数:2.00)A.acbedB.decabC.deabcD.ce

    16、dba36.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表37.下列选项可以正确表示字符型常量的是(分数:2.00)A./rB.“a“C.“/897“D.29638.有以下语句,则对 a 数组元素的引用不正确的是(0i9) int a10=0,1,2,3,4,5,6,7,8,9,*p=a; A)ap-a B)*(ai) C)pi D)*(*(a+i)(分数:2.00)A.B.C.D.39.有以下程序 void f(int *q) int i=0; for(;iA.B.C.D.40.设有如下三个关

    17、系表 (分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S二、B填空题/B(总题数:13,分数:30.00)41.设一棵完全二叉树共有 700 个结点,则在该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_42.常用的黑箱测试有等价类划分法、 1 和错误推测法 3 种。(分数:2.00)填空项 1:_43.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:2.00)填空项 1:_44.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:2.00)填空项 1:_45.数据库保护分为:安全性控制、 1、并发性控制和数据的恢复。

    18、(分数:2.00)填空项 1:_46.执行以下程序后的输出结果是_。 main( ) int a=10; a=(3*5,a+4);printf(“a=%d/n“,a); (分数:2.00)填空项 1:_47.以下程序的输出结果是_。 #include string.h main( ) printf(“%d/n“,strlen(“IBM/n012/1/“);(分数:2.00)填空项 1:_48.已定义 char ch=$;int i=1,j;,执行 j!=ch case 1: case 2:return 1; return(fib(g-1) +fib(g-2); main( ) long k;

    19、k=fib(5); printf(“k=%51d/n“,k);(分数:2.00)填空项 1:_50.下面程序的功能是输出数组 s 中最大元素的下标,请填空。 main( ) int k,p,s =1,-9,7,2,-10,3; for(p=0,k=p;p6;p+) if(spsk)_ printf(“%d/n“,k);(分数:2.00)填空项 1:_51.以下程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。 main( ) int x10,a9,i; for(i=0;i10;i+) scanf(“%d“,xi); for(U 11 /U;i10;i+)

    20、 ai-1=xi+U 12 /U; for(i=0;i9;i+) printf(“%d“,ai); printf(“); (分数:4.00)填空项 1:_52.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me() 函数在a:/myfile.txt 中有定义。) _ main( ) printf(“/n“); try_me( ); printf(“/n“);(分数:2.00)填空项 1:_53.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1 时,表示输入结束(链表头结点的 data 域不放数据,表空的条件是 ph-nex

    21、t=NULL),请填空。 #include stdio.h struct list int data;struct list *next; struct list *creatlist( ) struct list *p,*q,*ph;int a;ph=(struct list*)malloc(sizeof(struct list); p=q=ph;printf(“Input an integer number;entre-1 to end:/n“); scanf(“%d“,a); while(a!=-1) p=(struct list*)malloc(sizeof(struct list);

    22、 U 14 /U=a;q-next=p;U 15 /U=p;scanf(“%d“,a); p-next=/0;return(ph); main( ) stuct list * head;head=creatlist();(分数:4.00)填空项 1:_二级 C 语言笔试 316 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.在执行下述程序时,若从键盘输入 6 和 8,则结果为 main( ) int a,b,s; scanf(“%d%d“, S=a if(ab) s=b; S*=s; printf(“%d“,s); A)36 B)64

    23、 C)48 D)以上都不对(分数:2.00)A.B. C.D.解析:解析 本题中 a 的值为 6,b 的值为 8,最后 s 的值为 8,s*=s 等价于 s=s*s。2.C 语言规定,在一个源程序中,main 函数的位置(分数:2.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意 D.必须在最后解析:解析 不论 main 函数在整个过程中的位置如何,一个 C 程序总是从 main 函数开始执行的。3.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间 解析:解析 算法的复杂度主要包括算法的时间复

    24、杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。4.以下程序的输出结果是#include int a33=1,2,3,4,5,6,7,8,9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *s=p11;A)1 B)4 C)7 D)5(分数:2.00)A.B.C.D. 解析:解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,

    25、然后指针 p 指向了这段内存,函数 f( )中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a 的元素 5,所以输出结果为 5。5.若有说明:int *p,m=5,n;,以下正确的程序段是(分数:2.00)A.p=scanf(“%d“,&;B.p=scanf(“%d“,*C.scanf(“%d:,&;*p=n;D.p=*p=m; 解析:解析 “”是求址运算符,“*”是指变量说明符。选项 A)、B)应改为 scanf(“%d“,p);选项 C)中指针变量 p 未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。6.有以下程序 main( ) in

    26、t k=5,n=0; do switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4:n+=2;k-;break; printf(“%d“,n); while(k0int 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);程序运行后

    27、的输出结果是A)20 30 B)20 50 C)30 50 D)30 20(分数:1.00)A. B.C.D.解析:解析 本题中,最主要的是掌握几个有关文件函数的应用。 函数名:fopen 功能:打开一个文件 调用方式 FILE *fp; fp=fopen(文件名,使用文件方式); 函数名:fprintf 功能:传送格式化输出到一个文件中 调用方式:fprintf(文件指针,格式字符串,输出表列); 函数名:fclose 功能:关闭一个文件 调用方式:fclose(文件指针); 函数名:fscanf 功能:从磁盘文件执行格式化输入 调用方式:fscanf(文件指针,格式字符串,输入列表)。13

    28、.某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点数为(分数:1.00)A.n+1 B.n-1C.2nD.n/2解析:解析 对于任何一棵二叉树 T,如果其终端结点(叶子)数为 n1,度为 2 的结点数为 n2,则n1=n2+1,所以该二叉树的叶子结点数等于 n+1。14.下面程序输出的结果是 main( ) int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d“,a2-ii); A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1(分数:1.00)A.B. C.D.解析:解析 本题用循环的方法考查对数组概念

    29、的掌握。首先,当 i=0 时,数组中的位置是 a20=7,当然,如果用排除法,就不用考虑后面的循环,因为在 4 个选项中,第 1 个数为 7 的选项只有 B)。本题执行第 2 次循环时,i 的值为 1,则 printf 函数中的数组指向为 a11=5,依次循环,可求出答案。15.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,语句为变量 a1 和 a2 赋数值 10和 20,为变量 c1 和 c2 赋字符 X 和 Y。以下所示的输入形式中正确的是(注:代表空格字符)(分数:1.00)A.10X20YB.10X20YC.10X20YD.10X20Y 解析:解析 本题中,scanf

    30、 函数的格式控制没有空格,所以,对于选项 A)、B)、C),输入的第一个空格会作为字符赋值给变量 c1,而不会被解释成分隔符。16.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是(分数:1.00)A.x%2=1B.x/2C.x%2!=0D.x%2=0 解析:解析 因为 x 的值为大于 1 的奇数,所以 x 除以 2 的余数等于 1,因此,选项 A)、C)中表达式的结果为真,不为 0;对于选项 B)来说,x 除以 2 的商不会等于 0;选项 D)中表达式的结果为假,即等于0。17.在 C 语言中,函数返回值的类型最终取决于(分数:1.00)A.函数定义时在函数首部所说明的函数类型

    31、 B.return 语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型解析:解析 在 C 语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该和 return 语句中的表达式类型一致。如果函数值的类型和 return 语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。18.有以下程序 main( ) int x=0,y=0,i; for(i=1;+i) if(i%2=0)x+;continue; if(i%5=0)y+;break; printf(“%d,%d“,x,y);

    32、 程序的输出结果是 A)2,1 B)2,2 C)2,5 D)5,2(分数:1.00)A. B.C.D.解析:解析 本题考查了 continue 和 break 语句在循环语句中的作用。break 语句的作用是结束本层循环,而 continue 语句的作用是结束本次循环直接进入到下次循环。19.在 C 语言中,变量的隐含存储类别是(分数:1.00)A.auto B.staticC.externD.无存储类别解析:解析 auto 变量:无 static 声明的局部变量。用 auto 作存储类别的声明时,可以不写 auto,存储类别隐含确定为 auto(自动存储类别),是动态存储方式。大多数变量是自

    33、动变量。用 static 声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用 extern 声明外部变量,外部变量即全局变量,可以用 extern 声明来改变全局变量的作用域,实际上,关键字“auto”可以省略,auto 不写则隐含确定为“自动存储类别”,属于动态存储方式。20.已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。以下不能将变量 c 中的大写字母转换为对应小写字母的语句是(分数:1.00)A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(

    34、A+%26-a 解析:解析 C 语言中,字符数据参加运算时,实际上是其 ASCII 码参与运算。大写字母的 ASCII 码比其对应的小写字母的 ASCII 码小 32。因此大写字母转化为小写字母只需将其加上 32 即可。所以选项 B)、C)都符合条件,因为变量 c 中存储的是大写字母,所以“c-A”的值一定小于 26,故选项 A)与选项 C)的含义相同。21.以下合法的字符型常量是(分数:2.00)A./x13 B./081C.65D.“/n“解析:解析 C 语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在 C 语言中还允许用一个“/”开头的字符序列来表示字符常量。其中,形式“

    35、/ddd“表示 1 到 3 位 8 进制数所代表的字符;形式“/xhh“表示 1 到 2 位 16 进制数所代表的字符。在本题中,/x13表示回车符,是一个字符常量;/081用 8 进制数所代表的字符,但形式不正确,因为 8 进制数所代表的字符中不会出现数字 8;65不是一个字符,而是一个十进制数字;“/n”是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。22.若执行下面的程序时,从键盘输入 5 和 2,则输出结果是 main( ) int a,b,k; scanf(“%d,%d“, k=a; if(ab)k=a%b; else k=b%a; printf(“%d/n“,k); A

    36、)5 B)3 C)2 D)0(分数:2.00)A.B.C. D.解析:解析 本题考查简单的 ifelse 语句。先执行条件 if(ab),显然不成立,再执行 else 语句。23.现有如下程序段 #include “stdio.h“ main( ) int a56=23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1; int i=0,j=5; printf(“%d/n“,*( 则程序的输出结果为 A)21 B)78 C)23 D)28(分数:2.00)A. B.C.D.解析:解析 通过地址来引用二维数组,

    37、若有以下定义:int a34,i,j;且当 0i#include main( ) char s80,c=a;int i=0;scanf(“%s“,s);while(si!=/n) if(si=c)si-32;else if(si=c-32)si=si+32;i+;puts(s);A)ahaMa B)AbAMa C)AhAMa空格ahA D)ahAMa空格ahA(分数:2.00)A. B.C.D.解析:解析 本题主要考查的知识点是大写字母比它对应的小写字母 ASCII 码值小 32,并且字符可以看作整数进行算术运算等操作。34.有以下程序#include main( ) int c;while(

    38、c=getchar()!=/n) switch(c-2) case0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);case 4:putchar(c+3);break;printf(“/n“)从第一列开始输入以下数据代表一个回车符。2743程序的输出结果是A)66877 B)668966 C)6677877 D)6688766(分数:2.00)A. B.C.D.解析:解析 本题主要考查了字符输入输出函数 getchar 和 putchar 的使用。getchar 函数用来从标准输入设备上读入一个字符,putc

    39、har(c)函数是将字符变量 c 中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。35.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是(分数:2.00)A.acbedB.decabC.deabcD.cedba 解析:解析 依据后序遍历序列可确定根结点为 c;再依据中序遍历序列可知其左子树由 deba 构成,右子树为空;又由左子树的后序遍历序列可知其根结点为 e,由中序遍历序列可知其左子树为 d,右子树由ba 构成,如下图所示,求得该二叉树的前序遍历序列为选项 D)。 36.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B

    40、.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。37.下列选项可以正确表示字符型常量的是(分数:2.00)A./r B.“a“C.“/897“D.296解析:解析 C 语言中,一个字符常量代表 ASCII 字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的的范围是 0127。由于字符常量用单引号括起来,所以选项 B),

    41、C)错误,选项 D)超过了字符常量的表示范围。38.有以下语句,则对 a 数组元素的引用不正确的是(0i9) int a10=0,1,2,3,4,5,6,7,8,9,*p=a; A)ap-a B)*(ai) C)pi D)*(*(a+i)(分数:2.00)A.B.C.D. 解析:解析 本题考查数组指针的应用。选项 D)第一层括号中为数组 a 中第 i 项元素的值,外面再加指针运算符没有意义。39.有以下程序 void f(int *q) int i=0; for(;iA.B. C.D.解析:解析 调用函数 f( )时,将数组 a 的地址传递给了指针 q,此时 q 指向的就是数组 a 的第一个元

    42、素 a0。在 5 次循环过程中,q 始终指向 a0,因此 a0的值增加了 5。最后的输出结果为“6,2,3,4,5”。40.设有如下三个关系表 (分数:2.00)A.T=RSB.T=RSC.T=RS D.T=R/S解析:解析 对于两个关系的合并操作可以用笛卡尔积表示。设有 n 元关系 R 和 m 元关系 S,它们分别有 p 和 g 个元组,则 R 与 S 的笛卡尔积记为 RS,它是一个 m+n 元关系,元组个数是 pq,由题意可得,关系 T 是由关系 R 与关系 S 进行笛卡尔积运算得到的。二、B填空题/B(总题数:13,分数:30.00)41.设一棵完全二叉树共有 700 个结点,则在该二叉

    43、树中有 1 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:350)解析:解析 完全二叉树中,设高度为 n,则除 A 层外其他层结点数都到达最大,可以算出 h=10,1 至 9 层结点个数为 29-1=511,最后一层结点个数为 700-511=189 个,189/2=95,除最后一层外共有结点 29-1-95=161 个,所以所有的结点个数为:189+161=350 个。42.常用的黑箱测试有等价类划分法、 1 和错误推测法 3 种。(分数:2.00)填空项 1:_ (正确答案:边界值分析法)解析:解析 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例

    44、。常用的黑箱测试有等价类划分法、边界值分析法和错误推测法 3 种。43.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:2.00)填空项 1:_ (正确答案:关系模型)解析:解析 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,属于系统软件,是用户与数据库之间的一个标准接口,其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。44.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:2.00)填空项 1:_ (正确答案:软件生命周期)解析:解析 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般

    45、包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等活动。45.数据库保护分为:安全性控制、 1、并发性控制和数据的恢复。(分数:2.00)填空项 1:_ (正确答案:完整性控制)解析:解析 安全性控制:防止未经授权的用户有意或无意存取数据库中的数据,以免数据被泄露、更改或破坏;完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作;并发控制:正确处理好多用户、多任务环境下的并发操作,防止错误发生;恢复:当数据库被破坏或数据不正确时,使数据库将其恢复到正确的状态。46.执行以下程序后的输出结果是_。 main( ) int a=10; a=(3*5,a+4);

    46、printf(“a=%d/n“,a); (分数:2.00)填空项 1:_ (正确答案:a=14)解析:解析 本题考查的是表达式的优先级问题。先计算表达式 3*5=15,再计算 a+4=14,将数据 14 赋值给 a,根据 printf( )函数内的输出格式控制串,最后的输出结果应为“a=14”。47.以下程序的输出结果是_。 #include string.h main( ) printf(“%d/n“,strlen(“IBM/n012/1/“);(分数:2.00)填空项 1:_ (正确答案:9)解析:解析 本题的字符串中共有 9 个字符,它们分别是I、B、M、/n、0、1、2、/1、/,其中,“/n”表示换行,“/”表示反斜杠字符“/”,所以本题的最后输出结果为 9。48.已定义 char ch=$;int i=1,j;,执行 j!=ch case 1: case 2:return 1


    注意事项

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




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

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

    收起
    展开