ImageVerifierCode 换一换
格式:DOC , 页数:37 ,大小:116KB ,
资源ID:1326157      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1326157.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、二级 C语言笔试-352 及答案解析(总分:118.00,做题时间:90 分钟)一、选择题(总题数:50,分数:68.00)1.在设计程序时,应采纳的原则之一是( )。A) 不限制 goto语句的使用 B) 减少或取消注解行C) 程序越短越好 D) 程序结构应有助于读者理解(分数:1.00)A.B.C.D.2.若要求在 if后一对圆括号中表示 a不等于 0的关系,则能正确表示这一关系的表达式为 ( )A) a0B) ! aC) a0D) a(分数:1.00)A.B.C.D.3.己知 int i,x34;,则不能将 x11的值赋给变量 i的语句是_。A) i=*(*(x+1)+1) B) i=*

2、(*(x+1)C) i=x11 D) i=*(x1+1)(分数:1.00)A.B.C.D.4.以下程序的输出结果是( )。main()int i,x33=9,8,7,6,5,4,3,2,1,*p= int i,j;i=sizeof (a);j=strlen(a);print f (“ %d, %d/n“ i, j );程序运行后的输出结果是A) 9,9 B) 8,9 C) 1,8 D) 9,8(分数:1.00)A.B.C.D.7.以下选项中不合法的标识符是A) ptint B) FOR C) int s=1;s+=i; i+;return s;main ( )int i,a=0;for (i=

3、0;i5; i+) a+=f();printf ( “%d/n“ ,a);A) 20 B) 24 C) 25 D) 15(分数:1.00)A.B.C.D.10.有以下程序:main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(“%d,%d/n“m,k,m);程序运行后的输出结果是( )。A) 0,0 B) O,1 C) 1,0 D) 1,1(分数:1.00)A.B.C.D.11.关于下面的程序,正确的说法是( )。int a,i=1;while(i=0)scanf(“%d“,char c;double a;a;A) 8 B) 9 C) 10 D)

4、 11(分数:1.00)A.B.C.D.15.以下叙述中正确的是( )。AC 语言程序将从源程序中第一个函数开始执行B可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行CC 语言规定必须用 main作为主函数名,程序将从此开始执行,在此结束Dmain 可作为用户标识符,用以命名任意一个函数作为主函数(分数:1.00)A.B.C.D.16.下列合法的字符型常量是( )。A) /x13 B) /081 C) 65 D) “/n/(分数:2.00)A.B.C.D.17.设有定义:int m=0;。以下选项的 4个表达式中与其他 3个表达式的值不相同的是A) +m B) m+=1 C)

5、m+ D) m+1(分数:1.00)A.B.C.D.18.有以下程序main()int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0; i3 ; i+)for(j=2; j=i ; j-)if(xj+1xj) k=xj; xj=xj+1; xj+1=k; for(i=0; i3; i+)for(j=4; j7-i; j+)if(xjxj+1)k=xj; xj=xj+1; xj+1=k; for(i=0; i8; i+)printf(“%d“,xi);printf(“/n“);程序运行后的输出结果是_。A) 75310246 B) 01234567 C) 76310462 D)

6、 13570246(分数:1.00)A.B.C.D.19.有三个关系 R、S 和 T如下:(分数:2.00)A.B.C.D.20.有以下程序:#include stdlib.hstruct NODEint num; struct NODE *next; ;main()struct NODE *p,*q,*r;p=(struct NODE*)malloc(sizeof(struct NODE);q=(struct NODE*)mallloc(sizeof(struct NODE);r=(struct NODE*)malloc(sizeof(struct NODE);p-num=10;q-num=

7、20; r-num=30;p-next=q;q-next=r;printf(“%d/n“,p-num+q-next-num);程序运行后的输出结果是( )。A) 10 B) 20 C) 30 D) 40(分数:1.00)A.B.C.D.21.下面的程序执行后,文件 test.t中内容是_。#includestdio.hvoid fun(clar *fname,char *st)FILE*myf;int i;myf=fopen(fname,“w“);for(i=0;istden(st);i+)fputc(sti,myf);fclose(myf);main()fun(“test.t“,“new w

8、orld“); fur(“test.t“,“hello,“;A) hello, B) new worldhello C) new world D) hello,rld(分数:2.00)A.B.C.D.22.设有图书(图书编号,书名,第一作者,出版社)、读者(借书证号,姓名,单位,职称)和借阅(借书证号,图书编号,借书日期,还书日期)三张表,则表借阅的关键字(键或码)为A) 借书证号,图书编号 B) 图书编号,借书日期C) 借书日期,还书日期 D) 借书证号,借书日期(分数:2.00)A.B.C.D.23.若已建立下面的链表结构,指针 p、s 分别指向图中所示的结点,则不能将 s所指的结点插入到

9、链表末尾的语句组是 ( )(分数:1.00)A.B.C.D.24.现有如下程序段:#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“,*(i9;i+=2)s+=*(t+i);printf(“%d/n“,s);程序执行后的输出结果是_。A) 45 B) 20 C) 25 D) 36(分数:2.00)A.B.C.D.26.下列特征中不是面向对象方法的主要特征的是( )。A) 多态性 B) 继承

10、C) 封装性 D) 模块化(分数:2.00)A.B.C.D.27.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是( )。A) 每个元素都有一个直接前件和直接后件B) 线性表中至少要有一个元素C) 表中诸元素的排列顺序必须是由小到大或由大到小D) 除第一个元素和最后一个元素外,其余每个元素都有一个旦只有一个直接前件和直接后件(分数:1.00)A.B.C.D.28.在深度为 7的满二叉树中,叶子结点的个数为( )。A) 32 B) 31 C) 64 D) 63(分数:1.00)A.B.C.D.29.运行下面的程序,其输出结果为_。main()printf(“%d,%d“,5%-3,

11、-5%3);A) 2,-2 B) -2,2 C) -2,-2 D) 2,2(分数:1.00)A.B.C.D.30.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.31.假定 x和 y为 double型,则表达式 x=2,y=x+3/2 的值是( )。A) 3.500000 B) 3C) 2.000000 D) 3.000000(分数:1.00)A.B.C.D.32.C语言中,组成数据文件的成分是_。A) 记录 B) 数据行 C) 数据块 D) 字符 (字节) 序列(分数:1.00)A.B.C.D.33.下列能正确定义一维数组的选项是( )。A) int a5=

12、0,1,2,3,4,5; B) char a=0,1,2,3,4,5;C) char a=A,B,C; D) int a5=“0123“;(分数:2.00)A.B.C.D.34.冒泡排序在最坏情况下的比较次数是_。(A) n(n+1)/2(B) nlog2n(C) n(n-1)/2(D) n/2(分数:2.00)A.B.C.D.35.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。A) 函数的实参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不会占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数:2.00)A

13、.B.C.D.36.若有以下语句,则以下叙述中正确的是 typedef struct S int g; char h; T; A) 可用 S定义结构体变量 B) 可用 T定义结构体变量 C) S是 struct类型的变量 D) T 是 struct S类型的变量(分数:2.00)A.B.C.D.37.以下程序运行后,输出结果是_。#includestdio.h#define PT 5.5#difine S(x) PT*x*xmain()int a=1,b=2;printf(“%4.1f/n“,S(a+b);A) 49.5 B) 9.5 C) 22.0 D) 45.0(分数:1.00)A.B.C

14、.D.38.下列程序的输出结果是_。#define A100main()int i=0,sum=0;do if(i=(i/2)*2)continue;sum+=i;while(+iA) ;printf(“%d/n“,sum);A) 2500 B) 2050 C) 4 D) 0(分数:1.00)A.B.C.D.39.设有以下说明语句:struct exint x;float y;char z;example;在下面的叙述中,不正确的一条是_。A) struct是结构体类型的关键词 B) example 是结构体类型名C) x,y,2 都是结构体成员名 D) struct ex 是结构体类型(分数

15、:1.00)A.B.C.D.40.语句“printf(“a/bhow/are/y/bou/n“);”的输出结果是( )。A) a/bhow/are/y/bou B) a/bhow/are/y/bouC) howareyou D) ahowarey/bou(分数:2.00)A.B.C.D.41.下列叙述中错误的是_。(A) 计算机不能直接执行用 C语言编写的源程序(B) C程序经 C编译后,生成后缀为.obj 的文件是一个二进制文件(C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件(D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A

16、.B.C.D.42.下面对对象概念描述错误的是A) 任何对象都必须有继承性 B) 对象是属性和方法的封装体C) 对象间的通讯靠消息传递 D) 操作是对象的动态属性(分数:1.00)A.B.C.D.43.有以下程序:void ss(char *s,char t)while(*s)if(*s=t)*s=t-a+A;S+;main()char strl100=“abcddfefdbd“,c=d:ss(strl,c);printf(“% s/n“ ,strl);程序运行后的输出结果是()。A) ABCDDEFEDBD B) abcDDfeDbDC) abcAAfefAbA D) Abcddfefdbd

17、(分数:2.00)A.B.C.D.44.有以下程序:main()inta;char c=10;float f=100.0;double x;a=f/=c*=(x=6.5);printf(“%d %d %3.1f %3.1f/n“,a,c,f,x);程序运行后的输出结果是 _。A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(分数:2.00)A.B.C.D.45.设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是( )。A) k=k=k B) -k+ C) k%int(f) D) k=f=m(分

18、数:1.00)A.B.C.D.46.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,pf=fopen(“abc.dat“,“wb+“);fwrite(s2,7,1,pf);rewind(pf); /*文件位置指针回到文件开头*/fwrite(s1,5,1,pf); fclose(pf);以上程序执行后 abc.dat文件的内容是_。A) China B) Chinang C) ChinaBeijing D) BeijingChina(分数:2.00)A.B.C.D.50.下面描述中错误的是_。A) 系统总体结构图支持软件系统的详细设计 B) 软件设计是将软件需求转换为软件表示的

19、过程C) 数据结构与数据库设计是软件设计的任务之一 D) PAD 图是软件详细设计的表示工具(分数:2.00)A.B.C.D.二、填空题(总题数:19,分数:50.00)51.函数 my_cmp()的功能是比较字符串 s和 t的大小,当 s等于 t时返回 0,否则返回 s和 t的第一个不同字符的 ASCII码差值,即 st 时返回正值,当 st 时返回负值。请填空。my_cmp(char *s,char*t)while(*s=*t)if(*s=/0)return 0;+s; +t;return_;(分数:2.00)填空项 1:_52.若有定义语句:int a=5;,则表达式 a+的值是 1。(

20、分数:2.00)填空项 1:_53.设在主函数中有以下定义和函数调用语句,且 fun函数为 void类型,请写出 fun函数的首部_。要求形参名为 b。main()double s10 22;int n;fun(s);(分数:2.00)填空项 1:_54.按照软件测试的一般步骤, 1 测试应在集成测试之前进行。(分数:4.00)填空项 1:_55.软件的调试方法主要有:强行排错法、 1 和原因排除法。(分数:2.00)填空项 1:_56.下列语句能循环_次。int s=12;while(s);-s;(分数:2.00)填空项 1:_57.“print(“%d/n“,strlen(“/t/“/02

21、3/xABC/n“);”语句的输出结果是_。(分数:2.00)填空项 1:_58.在面向对象方法中,类之间共享属性和方法的机制称为 1。(分数:2.00)填空项 1:_59.以下程序运行后的输出结果是_。fun(int a)int b=0;static int c=3;b+; c+;return(a+b+c);main()int i,a=5;for(i=0;i3;i+)printf(“%d%d“,i,fun(a);printf(“/n“);(分数:4.00)填空项 1:_60.在一棵二叉树上第 6层的结点个数最多是 1。(分数:1.00)填空项 1:_61.下面 rotate函数的功能是:将

22、n行 n列的矩阵 A转置 A,例如(分数:8.00)填空项 1:_62.以下程序中,for 循环体执行的次数是_。# define N 2# define M N+1# define K M+1*M/2main()int i;for(i=1; iK; i+).(分数:2.00)填空项 1:_63.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中, 1 负责数据的模式定义与数据的物理存取构建。(分数:4.00)填空项 1:_64.以下程序运行后输入:3,abcde回车,则输出结果是_。# includestring.hmove(char *str,int n)char temp

23、int i;temp=strn-1);for(i=n-1;i0;i-)stri=stri-1;str0=tempmain()char s50;iht n,i,z;scanf(“%d,%s“,z=strlen(s);for(i=1;i=n;i+)move(s,z);printf(“s/n“,s);(分数:2.00)填空项 1:_65.下列程序的运行结果是_。#includestdio.hmain()int a,b,C;a=3;b=4;c=5;if(aB) if(aC) printf(“%d“,A) ;elseprintf(“%d“,B) ;printf(“%d/n“,C) ;(分数:2.00)填

24、空项 1:_66.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)#includestdio.h#includestring.hmain()char *str=“ABCDabcd“,temp;int n,i;n=strlen(str);while(n-1)for(i=0;in;i+)if(stristri+1)temp=_;stri=stri+1;_=temp;printf(_);(分数:1.00)填空项 1:_下面程序的运行结果是 1 和 2。#include#define N 10#define s(x)x*x#define f(x)(x*

25、x)void main3int i1,i2;i1=1000/s(N); i2=1000/f(N);couti1“ “i2;(分数:4.00)填空项 1:_填空项 1:_68.以下程序的输出结果是_。#includestdio.hvoid fun(int x)if(x/20) fun(x/2);printf(“%d“,x);main( )fun(3);printf(“/n“); (分数:2.00)填空项 1:_69.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中 1 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1

26、:_二级 C语言笔试-352 答案解析(总分:118.00,做题时间:90 分钟)一、选择题(总题数:50,分数:68.00)1.在设计程序时,应采纳的原则之一是( )。A) 不限制 goto语句的使用 B) 减少或取消注解行C) 程序越短越好 D) 程序结构应有助于读者理解(分数:1.00)A.B.C.D. 解析:解析 滥用 goto语句将破坏程序结构,可读性差,因此 A) 不对;注解行有利于对程序的理解,不应减少或取消,B) 不对;程序的长短要依实际情况而论,而不是越短越好,C) 不对。2.若要求在 if后一对圆括号中表示 a不等于 0的关系,则能正确表示这一关系的表达式为 ( )A) a

27、0B) ! aC) a0D) a(分数:1.00)A.B.C.D. 解析:3.己知 int i,x34;,则不能将 x11的值赋给变量 i的语句是_。A) i=*(*(x+1)+1) B) i=*(*(x+1)C) i=x11 D) i=*(x1+1)(分数:1.00)A.B. C.D.解析:4.以下程序的输出结果是( )。main()int i,x33=9,8,7,6,5,4,3,2,1,*p= int i,j;i=sizeof (a);j=strlen(a);print f (“ %d, %d/n“ i, j );程序运行后的输出结果是A) 9,9 B) 8,9 C) 1,8 D) 9,8

28、(分数:1.00)A.B.C.D. 解析:解析 本题中首先定义了字符数组 a,由于它的长度省略,所以其长度由初值个数确定,为 9。接着将 sizeof()函数返回的值赋给 i (SIZeof()函数的作用是返回运算对象占用的字符数),所以 i值为9。然后将 strlen()函数的返回值赋给 j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记/0),所以 j值为 8,所以最后输出的 i,j 的值为 9,8。所以 4个选项中 D正确。7.以下选项中不合法的标识符是A) ptint B) FOR C) int s=1;s+=i; i+;return s;main ( )int

29、i,a=0;for (i=0;i5; i+) a+=f();printf ( “%d/n“ ,a);A) 20 B) 24 C) 25 D) 15(分数:1.00)A.B.C.D. 解析:解析 本题考核的知识点是静态变量 static的应用。在 C语言中声明为 static型的变量,在整个程序运行期间,静态局部变量在内存的静态存储区中占据永久性的存储单元。即使退出函数后,下次再进入该函数时,静态局部变量仍使用原来的存储单元。由于并不释放这些存储单元,因此这些存储单元中的值得以保留; 因而可以继续使用存储单元中原来的值。本题中函数 f()中定义了一个 static型变量i,故每调用一次函数 f(

30、),i 的值加 1,返回 s的值等于 i,在主函数中用了一个 for循环,该循环执行了 5次,每次都调用 f()函数,将其返回值累加到变量 a中,故悬后 a的值为 1+2+3+4+5=15。所以,4 个选项中 D为所选。10.有以下程序:main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(“%d,%d/n“m,k,m);程序运行后的输出结果是( )。A) 0,0 B) O,1 C) 1,0 D) 1,1(分数:1.00)A.B.C. D.解析:解析 在|运算中当其左边的表达式为真,右边的表达式将不再执行。主函数中,|左边的表达式 k=(n=ba

31、),21 为真,所以 n被赋值为 1,接着 k被赋值 1,即|运算符左边表达式为真,此时不再计算|右边的表达式,因此 m的值没有被改变仍为 0,最后的输出结果 1,0。所以,4 个选项中选项 C符合题意。11.关于下面的程序,正确的说法是( )。int a,i=1;while(i=0)scanf(“%d“,char c;double a;a;A) 8 B) 9 C) 10 D) 11(分数:1.00)A.B.C.D. 解析:解析 结构体在内存中是连续存放的,一个结构体类型的变量所占用的空间是其所有成员所占空间的总和。double 类型所占的空间为 8个字节。15.以下叙述中正确的是( )。AC

32、 语言程序将从源程序中第一个函数开始执行B可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行CC 语言规定必须用 main作为主函数名,程序将从此开始执行,在此结束Dmain 可作为用户标识符,用以命名任意一个函数作为主函数(分数:1.00)A.B.C. D.解析:解析 C 语言规定必须以 main作为主函数名。程序要从 main()函数开始执行,最后在 main()函数中结束。16.下列合法的字符型常量是( )。A) /x13 B) /081 C) 65 D) “/n/(分数:2.00)A. B.C.D.解析:解析 C 语言的字符常量是用单引号()括起来的一个字符,也可以用以一

33、个“/”开头的字符序列来表示字符常量。其中形式/ddd 表示 1到 3位 8进制数所代表的字符;形式/xhh 表示 1到 2位 16进制数所代表的字符。在本题中/x13表示回车符,是一个字符常量;而/081用 8进制数所代表的字符形式不正确,因为 8进制数所表示的字符中不会出现数字“8”;65单引号(即撇号)括起来的不是一个字符,而是一个十进制数字;“/n“是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。17.设有定义:int m=0;。以下选项的 4个表达式中与其他 3个表达式的值不相同的是A) +m B) m+=1 C) m+ D) m+1(分数:1.00)A.B.C. D.解

34、析:解析 选项中的 4个表达式执行后,m 的值都递增 1。选项 C)中,表达式的值是 m递增前的值,为 0。选项 A)、B)、D)中,表达式的值都是 m递增后的值,为 1。18.有以下程序main()int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0; i3 ; i+)for(j=2; j=i ; j-)if(xj+1xj) k=xj; xj=xj+1; xj+1=k; for(i=0; i3; i+)for(j=4; j7-i; j+)if(xjxj+1)k=xj; xj=xj+1; xj+1=k; for(i=0; i8; i+)printf(“%d“,xi);prin

35、tf(“/n“);程序运行后的输出结果是_。A) 75310246 B) 01234567 C) 76310462 D) 13570246(分数:1.00)A. B.C.D.解析:解析 在程序中,第一个 for循环内部实现的是对数组中前四个元素进行降序排序,第二个 for循环内部实现的是对数组后四个元素进行升序排序,因此数组 x中的最后结果应该是前四个降序,后四个升序。最终结果为7,5,3,1,0,2,4,6。19.有三个关系 R、S 和 T如下:(分数:2.00)A.B.C.D. 解析:解析 关系代数运算评析 笛卡尔积:设关系 R和 S的元数分别是 r和 s,定义 R和 S的笛卡尔积是一个(

36、r+s)元元组集合,每一个元组的前 r个分量来自 R的一个元组,后 s个分量来自 S的一个元组。若 R有 k1个元组,s 有 k2个元组,则关系 R和关系 S的广义笛卡尔积有 k1k2个元组。交:设关系 R和关系 S具有相同的目 n,且相应的属性诹自同一个域,则关系 R与关系 S的交由属于 R又属于 S的所有元组组成。并:设关系 R和关系 S具有相同的目 n(即两个关系都有 n个属性),且相应的属性取自同一个域,则关系R与关系 S的并由属于 R或属于 S的元组组成。自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须有相同的属性组,并且要将结果中重复的属性去掉。20.有以下程序:

37、#include stdlib.hstruct NODEint num; struct NODE *next; ;main()struct NODE *p,*q,*r;p=(struct NODE*)malloc(sizeof(struct NODE);q=(struct NODE*)mallloc(sizeof(struct NODE);r=(struct NODE*)malloc(sizeof(struct NODE);p-num=10;q-num=20; r-num=30;p-next=q;q-next=r;printf(“%d/n“,p-num+q-next-num);程序运行后的输出

38、结果是( )。A) 10 B) 20 C) 30 D) 40(分数:1.00)A.B.C.D. 解析:解析 本题在主函数中首先定义了 3个结构体指针变量 p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量 p-num 的值为 10,指针变量 q-next 指向指针变量 r,r-num 的值为30,所以变量 q-next-num 的值为 30,因此,表达式 p-num+q-next-num 的值为 10+30=40。所以 4个选项中 D正确。21.下面的程序执行后,文件 test.t中内容是_。#includestdio.hvoid fun(clar *fname,char *st

39、)FILE*myf;int i;myf=fopen(fname,“w“);for(i=0;istden(st);i+)fputc(sti,myf);fclose(myf);main()fun(“test.t“,“new world“); fur(“test.t“,“hello,“;A) hello, B) new worldhello C) new world D) hello,rld(分数:2.00)A. B.C.D.解析:解析 C 语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。22.设有图书(图书编号,书名,第一作者,出版社)、读者(借书证号

40、,姓名,单位,职称)和借阅(借书证号,图书编号,借书日期,还书日期)三张表,则表借阅的关键字(键或码)为A) 借书证号,图书编号 B) 图书编号,借书日期C) 借书日期,还书日期 D) 借书证号,借书日期(分数:2.00)A. B.C.D.解析:解析 在二维表中凡能唯一标识元组的最小属性集称为关键字,关键字具有标识元组、建立元组间联系等重要作用。此题中,借书证号,图书编号是表借阅的主键,借书证号、图书编号分别是外键,借书证号是读者表的主关键字,图书编号是图书表的主关键字。23.若已建立下面的链表结构,指针 p、s 分别指向图中所示的结点,则不能将 s所指的结点插入到链表末尾的语句组是 ( )(

41、分数:1.00)A.B.C. D.解析:24.现有如下程序段:#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“,*(i9;i+=2)s+=*(t+i);printf(“%d/n“,s);程序执行后的输出结果是_。A) 45 B) 20 C) 25 D) 36(分数:2.00)A.B.C. D.解析:解析 通过 for循环语句 s=*(t+0)+*(t+2)+*(t+4)+*(t+6)+*(

42、t+8)=1+3+5+7+9=25。26.下列特征中不是面向对象方法的主要特征的是( )。A) 多态性 B) 继承 C) 封装性 D) 模块化(分数:2.00)A.B.C.D. 解析:解析 面向对象设计方法与面向过程设计方法有本质的不同,其基本原理:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。27.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是( )。A) 每个元素都有一个直接前件和直接后件B) 线性表中至少要有一个元素C) 表中诸元素的排列顺序必须是由小到大或由大到小D) 除

43、第一个元素和最后一个元素外,其余每个元素都有一个旦只有一个直接前件和直接后件(分数:1.00)A.B.C.D. 解析:解析 线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。28.在深度为 7的满二叉树中,叶子结点的个数为( )。A) 32 B) 31 C) 64 D) 63(分数:1.00)A.B.C. D.解析:解析 满二叉树是指除最后一层外,每层上的所有结点都有两个子结点;即在满二叉树中,每一层上的结点数都达到最大值,则在满二叉树的第 k层上有 2k-1个结点,月深度为 m的满二叉树有 2m-1个结点。深度为 7的满二叉树,

44、其叶子结点数为 27-1=26=64。29.运行下面的程序,其输出结果为_。main()printf(“%d,%d“,5%-3,-5%3);A) 2,-2 B) -2,2 C) -2,-2 D) 2,2(分数:1.00)A. B.C.D.解析:解析 在 C中,参与%运算的两个参数都必须为整型,在大多数 C编译器下(包括 TurboC) 都采用了“向 0靠近”的原则,即当两个运算量有一个为负数时,余数的符号由被除数的符号决定。故本题答案为 A。30.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C. D.解析:解析 对二叉树的前序遍历是指;先访问根结点,然后访问左子树

45、,最后访问右子树,并且,在访问左,右子树时,先访问根结点,再依次访问其左,右子树。31.假定 x和 y为 double型,则表达式 x=2,y=x+3/2 的值是( )。A) 3.500000 B) 3C) 2.000000 D) 3.000000(分数:1.00)A.B.C.D. 解析:解析 在 x=2,y=x+3/2 中,3/2=1,2+1=3,因此表达式的值为 3,因为 x,y 为 double型变量,故选择 D选项。32.C语言中,组成数据文件的成分是_。A) 记录 B) 数据行 C) 数据块 D) 字符 (字节) 序列(分数:1.00)A.B.C.D. 解析:解析 C 语言中的文件是

46、流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。33.下列能正确定义一维数组的选项是( )。A) int a5=0,1,2,3,4,5; B) char a=0,1,2,3,4,5;C) char a=A,B,C; D) int a5=“0123“;(分数:2.00)A.B. C.D.解析:解析 在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项 A)错误;选项 C 中定义的是一个字符变量 C;选项 D)中整型数组 a中只能存储整型数据,而不能存储字符串常量“0123”。34.冒泡排序在最坏情况下的比较次数是_。(A) n(n+1)/2(B) nlog2n(C) n(n-1)/2(D) n/2(分数:2.00)A.B.C. D.解析:35.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。A) 函数的实参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不会占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数:2.00)A.B.C.D. 解析:解析 本题考查的重点是形参与实参的存储单元是否一致。C 语言中,

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