2014年无纸化二级C模拟题2-答案_第1页
2014年无纸化二级C模拟题2-答案_第2页
2014年无纸化二级C模拟题2-答案_第3页
2014年无纸化二级C模拟题2-答案_第4页
2014年无纸化二级C模拟题2-答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1下面不属于对象基本特点的是A可复用性B标识唯一性C封装性D多态性对象的基本特点:(1)标识惟一性;(2)分类性;(3)多态性;(4)封装性;(5)模块独立性好。2某系统结构图如下图所示功能2.1功能2.2功能n.1功能n.2功能1功能2功能n某系统该系统结构图的宽度是A 2B nC 4D 3分析:该图形是一个倒置的树状结构,这是用层次图表示的一种软件结构。结构图中同一层次模块的最大模块个数称为结构的宽度。从图中可以看到第3层模块个数最多,即为4。因此这个系统结构图宽度就是4,另外题目如果问的是深度,深度指的是最大层次数,即为33关系数据模型A可以表示实体间m:n联系B 只能表示实体间1:m联

2、系C 只能表示实体间1:1联系4在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于A物理设计阶段B概念设计阶段C逻辑设计阶段D需求分析阶段概念设计就是把概念性的东西用图形化表示出来逻辑设计就是把E-R图转换成关系模型数据则是把图形分析出来的联系到数据库中,即设计出表。5有两个关系R,S如下,由关系R和S得到关系T,则所使用的操作为 R BCDa0K1SBCDf3K2n2X1TBCDa0K1f3K2n2X1A自然连接B并C差D交E笛卡尔积6下列叙述中正确的是A带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针B带链队列的存储空间可以不连续,但队头指针必须大于队尾指针C带

3、链队列的存储空间可以不连续,但队头指针必须小于队尾指针分析:队列是一种特殊的线性结构数据。循环队列是队列在计算机内顺序存储。带链队列是队列在计算机内链式存储。 无论哪种存储,队列的运算是队头删除,队尾添加。这样可能导制队列前越来越空,尾越加越长。为了改善这种情况,将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。7设栈的顺序存储空间为s(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为A20B29C19D30【解析】与一般的线性表一样,在程序设计语言中,用一维数组S(1,m)作为栈的顺序存储空间,其中m为栈的最大容量。通常,栈底指

4、针指向栈空间的栈中的元素个数等于(栈底指针-栈顶指针+1),即49-30+1=20。 8某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的深度(根结点在第1层)为A5B4C3D29下列叙述中正确的是A没有根结点的非空数据结构一定是线性结构B具有两个根结点的数据结构一定是非线性结构C存储空间不连续的数据结构一定是非线性结构D存储空间连续的数据结构一定是线性结构分析: 一个数据结构中数据的组合,无论计算机内外,我们根据各数据元素之间前后件的复杂程度,分线性结构和非线性结构。 线性结构的特点:有且只有一个根结点,前后件是一对一的关系。 比如生活中我们说一年四季的数据结构是说春

5、夏秋冬,那我们不会说秋夏春冬(也不顺),这时春就是启点,即根结点,春过了只是夏,夏进了只是秋,即前后件只是一对一关系。不可越级。又比如说一年12个月的数据结构也是典型的线性结构。 而家庭成员关系比如父亲儿子女儿就不会是一对一的前后件关系,这里父亲是根结点,父亲之后有两个后件,即儿子和女儿,这种一对多的关系就是非线性结构。 数据存储结构在计算机内有2种形式:顺序与链式。 顺序特点是:所有元素所占存储空间连续,且各元素在存储空间的物理位置与逻辑位置必须一致。(即在外是春夏秋冬的顺序,在计算机内就也保持春夏秋冬的顺序位置) 而链式特点为:存储空间可以不连续或连续,物理逻辑顺序可以不一致。 无论这个数

6、据结构是线性结构还是非线性结构,都有可能在计算机内顺序存储,也有可能是链式存储。不固定存储,数据好比房间的物品,各人喜好各人不同放置。10下面不能作为软件需求分析工具的是A PAD图B 数据字典(DD)C 判定树D 数据流图(DFD图)需求分析阶段用的工具有:数据流图(DFD图)、数据字典、判定树、判定表。11若有定义和语句: Int a ,b; Scanf(“%d,%d,”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A3,5,B3,5C3 ,5D3,5,412c语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A在标识符中大写字母和小写字母被

7、认为是相同的字符B用户标识符可以由字母和数字任意顺序组成C关键字可用作用户标识符,但失去原有含义D预定义标识符可用作用户标识符,但失去原有含义解析:C语言允许把预定义标识符重新定义另作他用,但这将失去预先定义的愿意。用户标识符需要遵守标识符明明规则,C语言标识符中,大写字母和小写字母被认为是两个不同的字符。关键字不能另作他用。13以下选项中合法的常量是A 123E 0.2B 9 9 9C 2.7eD 0Xab选项中E 后面的指数必须为整型数据0xab 表示的是十六进制常量14以下叙述中错误的是A 常量可以用一个符号名来代表B 数值型常量有正值和负值的区分C 常量是在程序运行过程中值不能被改变的

8、量D 定义符号常量必须用类型名来设定常量的类型【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常 量。符号常量在使用之 前要先定义,定义格式如下: #define(常量) 其中,符号常量名)用标识符,习惯上用大写字母,可以是数字常量, 也可以是字符15以下叙述中正确的是A 每个后缀为.C的C语言源程序都应该包含一个main函数B 在C语言程序中,只有main函数才可单独进行编译C 在C语言程序中,main函数必须放在其他函数的最前面D 每个后缀为.C的C语言源程序都可以单独进行编译【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。C语言是一种成功的系

9、统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。16C语言主要是借助以下哪种手段来实现程序模块化A 定义常量和外部变量B 使用丰富的数据类型C 使用三种基本结构语句D 定义函数【解析】C语言用函数实现软件的模块化设计。17有以下程序段 scanf(“%d%d%d”,&a,&b,&c); if(ab) a=b; if(ac) a=c: printf(“%dn”,a); 该程序段的功能是A 输出a,b,c中的最大值B 输出a,b,c中值相等的数值C 输出a,b,c中的最小值D 输出a的原始值18有以下程序 #include int ml(int x,int y) re

10、turn x=y ? x :y; int m2(int x,int y) return x=y ? y :x; int fun(int a,int b) return a+b; main() int x=2,y=3,z=1; Printf(“%dn”, fun(m1(x,y),m2(y,z); 程序的运行结果是A 3B 4C 6D 5m1(x,y)- m1(2,3) -2=3 -return x 2m2(y,z)- m2(3,1) -3=1 -return x 3fun(2,3) 2+3=519有以下程序 #include main() int x=0,y=6; do while(-y) x+

11、; While(y-); printf(“%d,%dn”,x,y); 程序的运行结果是A 5,-1B 6,0C 6,-1D 5,0第一次 外循环 内循环 while(-y) y=6-1=5 5非0 x+ x=0+1=1 while(-y) y=5-1=4 4非0 x+ x=1+1=2while(-y) y=4-1=3 3非0 x+ x=2+1=3while(-y) y=3-1=2 2非0 x+ x=3+1=4while(-y) y=2-1=1 1非0 x+ x=4+1=5while(-y) y=1-1=0 0 退出内循环y=0 退出外循环20以下程序段中,不能实现条件“如果ab则x=10,否则

12、x=-10“的是A if(ab) x=10; If(b=b)? -10:10;C x=-10; if(ab) x=10;D if(ab) x=10; else x=-10; A a=b未考虑21有以下程序 #include main() char *s=”; Int n0,n1,n2,nn,I; n0=n1=n2=nn=i=0; do switch(si+) default : nn+; case0: n0+; case1: n1+; case2: n2+; While(si); Printf(“n0=%d,n1=%d,n2=%d,nn=%dn”,n0,n1,n2,nn);程序运行结果是A n

13、0=2,n1=5,n2=1,nn=1B n0=4,n1=8,n2=9,nn=1C n0=2,n1=7,n2=10,nn=1D n0=3,n1=8,n2=9,nn=1 char *s=”; s0=1 s1=2 s2=0 s3=1 s4=1 s5=9 s6=1 s7=1 s8=0 switch(si+) switch(s0) switch(1)case1: n1+;n1=0+1=1 case2: n2+; n2=0+1=2由于没有break,执行case 1 后,仍然要做case 2利用排除法,9 属于其他 default : nn+; nn=0+1=1s2=0 s5=9 s8=0 case0:

14、n0+; n0=0+1+1+1=322 以下能够实现计算5!的程序段是A int fac=1,k=1; dok+;fac*=k; while(k=5);B int fac=0,k=1; do fac*=k;k+; while(k5);C int fac=1,k=0; Dofac*=k;k+; while(k5);D int fac=1,k=0;Dok+;fac*=k; while(k5);23 若要使用C数学库中的sin函数,需要在源程序的头部加上#include关于引用数学库,以下叙述正确的是A将数学库中sin函数的源程序插入到引用处,以便进行编译链接B将数学库中sin函数链接到编译生成的可

15、执行文件中,以便能正确运行C通过引用math.h文件,说明sin函数的参数个数和类型,以及函数返回值类型D实际上,不引用math.h文件也能正确调用sin函数24 有以下程序 #include Int *f(int *s,int *t) if (*s*t)s=t;return s; main() int i=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf(“%d,%d,%d,%d,%dn”,i,j,*p,*q,*r);程序的运行结果是A 5,5,5,5,5B 5,3,3,3,5C 3,5,3,5,5D 3,5,5,5,525以下关于地址和指针的叙述中正确的是A 可以取

16、变量的地址赋值给同类型的指针变量B 所有指针变量如果未赋初值,则自动赋空值NULLC 可以取一个指针变量的地址赋给本指针变量,这样就使得指针变量指向自身D 可以取常量的地址赋值给同类型的指针变量26有以下程序 #include void fun(int a,int n ) int i,j=0,k=n-1,b10; for(i=0;in/2;i+) bi=aj; bk=aj+1; j+=2;k-; for (i=0;in;i+) ai=bi; main() int c10=10,9,8,7,6,5,4,3,2,1,i; fun (c,10); for (i=0;i10;i+) printf(%d

17、,ci); printf(n);程序运行结果是A 10,8,6,4,2,1,3,5,7,9,B 1,2,3,4,5,6,7,8,9,10,C 1,3,5,7,9,10,8,6,4,2,D 10,9,8,7,6,5,4,3,2,1,27 有以下程序 #include int k=5; void f(int *s) *s=k; main() int m=3,*p=&m; f(p);printf(%d,%d,m,*p);程序运行结果是A 5,5B 5,3C 3,5D 3,328 有以下程序 #include #define N 4 void fun(int aN) int bNN,i,j; for(

18、i=0;iN;i+) for(j=0;jN;j+) bij=aN-1-ji; for(i=0;iN;i+) for(j=0;jN;j+) aij=bij;main() int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j=0; fun(x); for(i=0;iN;i+) printf(%d,xij); printf(n);程序的运行结果是A 4,7,10,13,B 1,5,9,13,C 13,10,7,4,D 1,6,11,16,29有以下程序 #includeint fun(int x) int p; if(x=0 | x=1)return(

19、3); p=x-fun(x-2); return(p);main() printf(%dn,fun(9);程序运行后的输出结果是A 4B 9C 5D 730 以下选项中,能正确进行字符串赋值的是 A char s45=“ABCDE”;B char *s; gets(s);C char *s=”ABCDE”;D char s5=A,B,C,D,E;31 有以下程序 #include void fun(char *p) int i;for(i=0;i4;i+) printf(%s,pi); main() char *s6=ABCD,EFGH,IJKL,MNOP,QRST,UVWX; fun(s);

20、 printf(n);程序运行后的输出结果是A AEIMB ABCDEFGHIJKLC ABCDD ABCDEFGHIJKLMNOP评析:pO指向ABCD的首地址;p1指向EFGH的首地址;p2指向IJKL的首地址,依此类推。当执行p=S后,p指向指针数组s的首地址。for循环中输出了4个字符串。 p与s的类型相同,故顺次输出4个字符串。32 以下fun函数的功能是将形参S所指字符串内容颠倒过来 Void fun(char *s) int i,j,k; For(i=0,j=strlen(s)_;ij;i+,j-) k=si;si=sj;sj=k;在横线处应填入的内容是A ,k=0B +1C -

21、1D +033有以下程序 #include void fun(char *p,int n) char b6=abcde; int i; for(i=0,p=b;in;i+) pi=bi; main() char a6=ABCDE; fun(a,5); printf(%sn,a); 程序运行后的输出结果是A abcdeB ABCDEC EDCBAD edcba34 有以下程序 #include fun(int a, int b) int static m=0,i=2; i=i+m+1; m=i+a+b; return m; main () int k=4,m=1,p; p=fun(k,m); p

22、rintf(%d,p); p=fun(k,m); printf(%dn,p); 程序运行后的输出结果是A 7,16B 7,17C 8,8D 8,17函数里的static声明只赋值变量一次,第二次的话就跳过。所以第一次p=func(k,m);printf (%d,p);调用函数func(4,1),此时a=4,b=1:static int m,i=2; / 此时m=0,i=2i+=m+1; / i = i+m+1=2+0+1=3m=i+a+b; / m=3+4+1=8return (m); / 返回 p=8并输出。第二次调用func函数p=func(k,m);printf (%dn,p);此时a=

23、4,b=1static int m,i=2; / 跳过此句,因为static只赋值一次,此时m和i的值为上述的8和3i+=m+1; / i=i+m+1=3+8+1=12 m=i+a+b; / m=i+a+b=12+4+1=17return (m); / 返回p=17并输出。35 有以下程序 #include Struct tt int x; struct tt *y; *p; Struct tt a4=20,a+1,15,a+2,30,a+3,17,a; Main() int I; p=a; For(i=1;ix); p=p-y; 程序的运行结果是A 15,30,B 20,30,C 30,17

24、D 20,15,解析:题目中定义了一个全局结构体数组a,结构体中包含两个成员:一个int型变量x和一个自身类型指针y。所以,结构体数组a的初始化列表中每两个初始化一个结构体元素。主函数通过一个for循环,连续调用了两次输出函数printf(),每次输出p所指元素的x成员值。p初始化时指向数组a的首地址,即a0的位置,所以第1次输出的值为20。然后又将a0的成员y的值赋给p,y在初始化时是a+1,所以p在第2次输出时指向的元素是a1,故第2次输出的值为15。所以本题最终输出结果是“20,15,”,应该选择D。36 以下叙述中错误的是A 在程序中凡是以”#”开始的语句行都是预处理命令行B 预处理命

25、令行的最后不能以分号表示结束C #define MAX 是合法的宏定义命令行D c程序对预处理命令行的处理是在程序执行的过程中进行的预处理命令是在正式编译之前先行被处理的37 有以下程序 #include Main() FILE *f; f=fopen(“filea.txt”,”w”); Fprintf(f,”abc”); Fclose(f); 若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.text中的内容为 A abchello B abclo C helloabc D abc首先定义一文件指针,用w方式打开filea.txt,而以w方式打开的文件,

26、如果已经存在,则删掉它,重新建立一个文件,所以该文件原来不管什么内容都是没用的重新建立一个新文件后,用fprintf函数把字符串abc写入该文件,然后关闭文件故文件内容为abc38 有以下程序#include Main() Struct STU char name9; char sex;double score2; ; Stuct STU a=“zhao”,m,85.0,90.0,b=“Qian”,f,95.0,92.0; b=a; Printf(“%s,%c,%2.0f,%2.0fn”,,b.sex,b.score0,b.score1);程序的运行结果是A Zhao,f,95,9

27、2B Qian,m,85,90C Qian,f,95,92D Zhao,m,85,9039 有以下定义和语句 Struct workers int num; char name20; char c; Struct int day ; int month ; int year; s; ; Struct workers w,*pw; pw=&w; 能给w中year成员赋1980的语句是 A w.s.year=1980; B *pw.year=1980 C w.year=1980; D pw-year=1980;结构变量w共有4个成员:w.num、、w.c、w.s 其中s又是一个无名结构

28、型的成员项,它的3个成员为: s.day、s.mont、s.year 故访问year成员的形式应为: w.s.year 40 以下叙述中错误的是A 可以用typedef将已存在的类型用一个新的名字来代表B 可以通过typedef增加新的类型C 用typedef可以为各种类型起别名,但不能为变量其别名D 用typedef定义新的类型名后,原有类型名仍有效1.给定义程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!给定源程序:#includetypedef struct int num;char name9;float score3;STU;voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论