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

上传人:周芸 文档编号:1326020 上传时间:2019-10-17 格式:DOC 页数:29 大小:85.50KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-209及答案解析.doc_第1页
第1页 / 共29页
【计算机类职业资格】二级C语言笔试-209及答案解析.doc_第2页
第2页 / 共29页
【计算机类职业资格】二级C语言笔试-209及答案解析.doc_第3页
第3页 / 共29页
【计算机类职业资格】二级C语言笔试-209及答案解析.doc_第4页
第4页 / 共29页
【计算机类职业资格】二级C语言笔试-209及答案解析.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、二级 C 语言笔试-209 及答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.设有以下宏定义:#define N 3#define Y(n) (N+1)*n)则执行以下语句后,z 的值为_。z=2*(N+Y(3+2);(分数:2.00)A.出错B.34C.46D.542.下列程序的输出结果是_。int b=2;int func(int*(分数:2.00)A.b+=*a;return(B.;for(j=0;j4;j+) pj=aj;则能表示数组元素的表达式是_。(分数:2.00)A.*(p1)B.a43C.a1D.*(p+4)16.以下程序运行后

2、,输出结果是_。fun(int*s,int p23)*s=p11;main()int a23=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fun(int i,s=0;for(i=0;chi=0i+=2)s=10*s+chi-0;printf(“%d/n“,s);(分数:1.00)A.1B.1256C.12ab56D.125612.执行以下程序后输出的结果是_。main()int y=10;doy-;while(-y);printf(“%d/n“,y-);(分数:1.00)A.-1B.1C.8D.013.下面程序的输出结果是_。void prty(in

3、t *x)printf(“%d/n“,+ *x);main()int a=25;prty(14.在关系型的数据库管理系统中,3 种基本关系运算是_。(分数:1.00)A.选择、投影和连接B.选择、删除和复制C.创建、修改和合并D.统计、连接和分类15.以下程序片段的输出结果是_。char str=“abc/n/012/“;printf(“%d“,strlen(str);(分数:1.00)A.4B.5C.6D.716.以下正确的数组定义语句是_。(分数:1.00)A.int y14=1,2,3,4,5;B.float x2=1,2),3;C.long s23=1,1,2,1,2,3;D.doub

4、le t3=0;17.以下程序的输出结果是_。main()char a10=1,2,3,4,5,6,7,8,9,*p;int i;i=8;p=a+i;printf(“%s/n“,p-2);(分数:1.00)A.6B.789C.6D.678918.以下程序的输出结果是_。main()char*s=“121“;int k=0,a=0,b=0;dok+;if(k%2=0)a=a+sk-/0;continue;b=b+sk-/0;a=a+sk-/0;while(sk+1);printf(“k=%d a=%d b=%d/n“,k,a,b);(分数:1.00)A.k=3 a=98 b=49B.k=3 a=

5、99 b=50C.k=2 a=99 b=50D.k=2 a=98 b=4919.在 C 语言中,合法的字符常量是_。(分数:1.00)A./081B./x43C.abD.“/0“20.要把数组元素中的最大值放入 a0中,则在 if 语句中的条件表达式应该是_。main()int a10=6,7,2,9,1,10,5,8,4,3,*p=a,i;for(i=0;i10;i+,p+)if(_) *a=*p;printf(“%d“t,*(分数:1.00)A.;A) paB) *pa0C)21.以下程序运行后,如果从键盘上输入 ABCDEF回车,则输出结果为_。#includestdio.h#inclu

6、destring.hfunc(char str)int num=0;while(*(str+num)!=/0) num+;return(num);pmain()char str10,*p=str;gets(p);printf(“%d/n“,func(P);(分数:1.00)A.8B.7C.6D.522.已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=142;则以下不符合 c 语言语法的表达式是_。(分数:1.00)A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)23.将二进制数 10100

7、101 转换为十六进制数应该是_。(分数:1.00)A.245B.A5C.B5D.16524.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是 200,每一个元素的长度是2,则第 6 个元素的地址是_。(分数:1.00)A.208B.210C.211D.21225.与十六进制数 CD 相等的十进制数是_。(分数:1.00)A.205B.206C.207D.20826.函数 fun 的返回值是_。fun(char *a,char*b)int num=0,n=0;while( *(a+num)!=/0)num+;while(bn)*(a+num)=bn;num+;n+;return

8、 num;(分数:1.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和27.语句“printf(“%d/n“, 12”的输出结果是_。(分数:1.00)A.12B.8C.6D.01228.假定有以下变量定义,则能使值为 3 的表达式是_。int k=7,x=12;(分数:1.00)A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)29.要正确定义并初始化一个数组 a,它含有 5 个元素,则正确的语句是_。(分数:1.00)A.int a5=(0,0,0,0,0);B.int a5

9、=;C.int a=0,0,0,0,0;D.int a=5*0;30.以下运算符中优先级最高的运算符是_。(分数:1.00)A.+B.?:C.!=D.则数值为 9 的表达式是_。(分数:1.00)A.*p+9B.*(p+8)C.*p+=9D.p+832.Turbo C 将对以下程序_。main()int x,y;y=creat(creat(int(分数:1.00)A.return a+;A) 编译时会给出出错信33.以下程序的输出结果是_。main()char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;

10、i+)for(j=0;pij/0;j+=2)s=10*s+pij-/0;printf(“%d/n“,s);(分数:1.00)A.69825B.59713C.6385D.69382534.以下程序的输出结果是_。main()int x=10,y=10,i;for(i=0;x8;y=+i)printf(“%d %d “,x-,y);(分数:1.00)A.10192B.9876C.10990D.10109135.下面程序的运行结果是_。main()unsigned a=3,b=10;printf(“%d/n“,a2|b1);(分数:1.00)A.3B.10C.13D.1436.下面语句中不能定义一个

11、数组,元素值依次分别为 1,1,1,0,0 的是_。(分数:1.00)A.static int a5=1,1,1,0,0;B.static int a5=1,1,1;C.static int a=1,1,1,0,0;D.static int a5=1*2,0*3;37.若二维数组 a 有 m 列,且设 a00位于数组的第一个位置上,则计算任意元素 aij在数组中位置的公式为_。(分数:1.00)A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+138.表达式 18/4*sqrt(4.0)/8 值的数据类型为_。(分数:1.00)A.intB.floatC.doubleD.不确定39

12、.以下程序的输出结果是_。main()unsigned short a=65536;int b;printf(“%d/n“,b=(分数:1.00)A.;struct date*next;double b;too;printf(“%d“,sizeof(too);(分数:1.00)A.20B.16C.14D.1243.在以下选项中,操作不合法的一组是_。(分数:1.00)A.int x6,*p;p=B.int x6,*p;*p=x;C.int x6,*p;p=x;D.int x5,p;p=x0;44.数据字典是对数据定义信息的集合,它所定义的对象都包含于_。(分数:1.00)A.程序框图B.软件结

13、构C.数据流图D.方框图45.软件系统生命周期的第一个阶段是_。(分数:1.00)A.软件分析阶段B.软件设计阶段C.软件运行阶段D.软件维护阶段46.下面程序运行的结果是_。main()int x,y,z;x=0;y=z=-1;x+=-z-y;printf(“x=%d/n“,x);(分数:1.00)A.x=4B.x=0C.x=2D.x=347.以下程序的运行结果是_。#includestdio.hmain()int a=1,2,3,4,5,6,7,8,9,10,11,12;int*p=a+5,*q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);(分数:1.00)

14、A.运行后报错B.6 6C.6 12D.5 548.设有以下程序段;int a5=0,*p,*q;p=a;q=a;则合法的运算是_。(分数:1.00)A.p+qB.p-qC.p*qD.p%q49.下面程序的输出结果是_。main()enum team my,your=4,his,her=his+10;printf(“%d %d %d %d/n“,my,your,his,her);(分数:1.00)A.0 1 2 3B.0 4 0 10C.0 4 5 15D.1 4 5 1550.若定义了以下函数:void f(.)*p=(double*)malloc(10*sizeof(double);p 是

15、该函数的形参,要求通过 p 把动态分配存储单元的地址传回主调函数,则形参 p 的正确定义应当是_。(分数:1.00)A.double *pB.float *pC.double *pD.float *p二、填空题(总题数:14,分数:28.00)51.二叉树按某顺序线索化后,其结点均有指向其前趋和后继的线索,该说法是 【1】 的。(分数:2.00)填空项 1:_52.对存储器按字节进行编址,若某存储器芯片共有 8 根地址线,则该存储器芯片的存储容量为 【2】 字节。(分数:2.00)填空项 1:_53.软件是由两部分组成的,一部分是 【3】 ,另一部分是文档资料。(分数:2.00)填空项 1:_

16、54.软件工程学把软件从开始研制到最终软件被废弃的整个阶段叫做软件的 【4】 。(分数:2.00)填空项 1:_55.软件测试的方法有动态测试、静态测试和 【5】 13 种。(分数:2.00)填空项 1:_56.程序的运行结果为 【6】 。main()char c1=a,c2=b,c3=c;printf(“a%cb%c/tc%c/n“,c1,c2,c3);(分数:2.00)填空项 1:_57.执行下面程序段后,k 值是 【7】 。k=1;n=263;dok*=n%10;n/=10;while(n);(分数:2.00)填空项 1:_58.函数 mystrlen(char *s)的功能是求字符串

17、s 的长度,请填空。mystrlen(char *s)char *t:t=s;while( 【8】 )t+;return(t-s);(分数:2.00)填空项 1:_59.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是 【9】 函数。(分数:2.00)填空项 1:_60.设有以下定义的语句:int a32=10,20,30,40,50,60,(*p)2;p=a;则*(*(P+2)+1)值为 【10】 。(分数:2.00)_61.下列程序的输出结果是 【11】 。void fun(int *n)while(*n)printf(“%d“,(*n)-);main()int

18、a=10;fun((分数:2.00)填空项 1:_62.下面程序是把从终端读入的 20 个字符作为字符串放在字符数组中,然后利用指针变量输出上述字符串,请填空。#includestdio.hmain()int i;char s21,*p;for(i=0;i20;i+)si=getchar();si= 【12】 ;p= 【13】 ;while(*p) putchar( 【14】 );(分数:2.00)填空项 1:_63.阅读程序,填空补充程序。#define 【15】 30main()【16】 ;num=10;total=num*PRICE;printf(“total=%d,num=%d/n“,

19、 【17】 );(分数:2.00)填空项 1:_64.funl 函数的调用语句为 funl(。它将 3 个整数按由大到小的 JI 匣序调整后依次放入a,b,c 三个变量中,a 中放最大数,请填空。void fun2(int *x,int *y)int t;t=*x;*x;*y;*y=t;void funl(int *pa,int *pb,int *pc)if(*pc*pb) fun2( 【18】 );if(*pa*pc) fun2( 【19】 );if(*pa*pb) fun2( 【20】 );(分数:2.00)填空项 1:_二级 C 语言笔试-209 答案解析(总分:88.00,做题时间:9

20、0 分钟)一、选择题(总题数:50,分数:60.00)1.设有以下宏定义:#define N 3#define Y(n) (N+1)*n)则执行以下语句后,z 的值为_。z=2*(N+Y(3+2);(分数:2.00)A.出错B.34 C.46D.54解析:解析 注意 C 语言中宏定义是先替换再参与运算,因此:z=2*(N+(N+1)*3+2)=2*(3+(3+1)*3+2)=34。2.下列程序的输出结果是_。int b=2;int func(int*(分数:2.00)A.b+=*a;return(B.;for(j=0;j4;j+) pj=aj;则能表示数组元素的表达式是_。(分数:2.00)A

21、.*(p1) B.a43C.a1D.*(p+4)1解析:解析 B 项错在越界,下标最大的元素只到 a32;C 项错在 a1只表示第 2 行;*(p+4)1的错误也在于越界,p+4 相当于 a4,实际上是不存在的。6.以下程序运行后,输出结果是_。fun(int*s,int p23)*s=p11;main()int a23=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fun(int i,s=0;for(i=0;chi=0i+=2)s=10*s+chi-0;printf(“%d/n“,s);(分数:1.00)A.1 B.1256C.12ab56D.125

22、6解析:解析 for 语句中的条件表达式决定了循环体只执行一次。因此 s=0*10+1,于是输出结果为 1。12.执行以下程序后输出的结果是_。main()int y=10;doy-;while(-y);printf(“%d/n“,y-);(分数:1.00)A.-1B.1C.8D.0 解析:解析 执行第 1 次循环体,y-使得 y=9,然后 y 减 l 后判断条件为真,此时 y=8。继续执行 4 次循环,直到 y=0 时条件为假退出循环,然后输出 y=0 后再减 1。因此输出的结果为 0。13.下面程序的输出结果是_。void prty(int *x)printf(“%d/n“,+ *x);m

23、ain()int a=25;prty(解析:14.在关系型的数据库管理系统中,3 种基本关系运算是_。(分数:1.00)A.选择、投影和连接 B.选择、删除和复制C.创建、修改和合并D.统计、连接和分类解析:解析 在关系型数据库管理系统中,基本的关系运算有选择、投影和联接 3 种操作。选择,指的是从二维关系表的全部记录中,把那些符合指定条件的记录挑选出来。对于投影,是指从所有字段中选取一部分字段及其值进行操作,它是一种纵向操作。投影操作可以改变关系的结构。而联接运算则通常是对两个关系进行投影操作来连接生成一个新的关系。当然,这个新的关系可以反映出原来两个关系之间的联系。15.以下程序片段的输出

24、结果是_。char str=“abc/n/012/“;printf(“%d“,strlen(str);(分数:1.00)A.4B.5C.6D.7 解析:解析 abc 后的四个字符都是由反斜线引出的转义字符,/n 是换行符,/012 也是换行符,/表示反斜线本身,/“表示双引号,因此,一共是 7 个字符。16.以下正确的数组定义语句是_。(分数:1.00)A.int y14=1,2,3,4,5;B.float x2=1,2),3;C.long s23=1,1,2,1,2,3;D.double t3=0; 解析:解析 A、B、C 项均存在行或列上赋初值越界问题,所以都不正确。17.以下程序的输出结

25、果是_。main()char a10=1,2,3,4,5,6,7,8,9,*p;int i;i=8;p=a+i;printf(“%s/n“,p-2);(分数:1.00)A.6B.789 C.6D.6789解析:解析 p-2=a+8-2=a+5,则 p 指向 a6,则 p 指向 7,所以输出如 B 所示结果。18.以下程序的输出结果是_。main()char*s=“121“;int k=0,a=0,b=0;dok+;if(k%2=0)a=a+sk-/0;continue;b=b+sk-/0;a=a+sk-/0;while(sk+1);printf(“k=%d a=%d b=%d/n“,k,a,b

26、);(分数:1.00)A.k=3 a=98 b=49B.k=3 a=99 b=50C.k=2 a=99 b=50 D.k=2 a=98 b=49解析:解析 第 1 次循环中,k=1,不执行 if 分支,sk=2,因此 b=2,a=2 因 sk+1=1进入第 2 次循环,k=2,执行 if 分支,sk=1,使 a=3,进而提前结束本次循环,sk+1=/0,则退出循环,所以 k=2,a=3,b=2。19.在 C 语言中,合法的字符常量是_。(分数:1.00)A./081B./x43 C.abD.“/0“解析:解析 选项 A 错在表示转义字符的三位八进制数中不能出现 8,选项 C 错在字符串要用双引

27、号括起,选项 D 错在单个字符应用单引号括起。选项 B 表示用两位 16 进制数代表转义字符。20.要把数组元素中的最大值放入 a0中,则在 if 语句中的条件表达式应该是_。main()int a10=6,7,2,9,1,10,5,8,4,3,*p=a,i;for(i=0;i10;i+,p+)if(_) *a=*p;printf(“%d“t,*(分数:1.00)A.;A) paB) *pa0C)解析:解析 p 是指向整型的指针,初始指向数组 a 的首地址,a0本来就表示数组 a 的第 1 个元素,不是表示地址,因此选项 C、D 中的*a0是错误的。选项 A 语法上没有错,但是不合乎题意,没有

28、比较数组元素和指针变量 p 当前指向单元的内容。21.以下程序运行后,如果从键盘上输入 ABCDEF回车,则输出结果为_。#includestdio.h#includestring.hfunc(char str)int num=0;while(*(str+num)!=/0) num+;return(num);pmain()char str10,*p=str;gets(p);printf(“%d/n“,func(P);(分数:1.00)A.8B.7C.6 D.5解析:解析 本题通过函数 gets()从键盘接收一个字符串,并通过调用 fune()函数,统计串中字符的个数。22.已知各变量的类型说明

29、如下:int k,a,b;unsigned long w=5;double x=142;则以下不符合 c 语言语法的表达式是_。(分数:1.00)A.x%(-3) B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)解析:解析 求余运算符“%”为双目运算符,要求两个操作数都是整型。23.将二进制数 10100101 转换为十六进制数应该是_。(分数:1.00)A.245B.A5 C.B5D.165解析:解析 (1010010) 2=(165)10=(A5)16。24.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是 200,每一个元素的长度是2

30、,则第 6 个元素的地址是_。(分数:1.00)A.208B.210 C.211D.212解析:解析 顺序结构中,第 n 个元素的地址为 An=A0+(n-1)*L (A 为地址,L 为元素长度)。25.与十六进制数 CD 相等的十进制数是_。(分数:1.00)A.205 B.206C.207D.208解析:解析 CD=12*16+13=192+13=205。26.函数 fun 的返回值是_。fun(char *a,char*b)int num=0,n=0;while( *(a+num)!=/0)num+;while(bn)*(a+num)=bn;num+;n+;return num;(分数:

31、1.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差 D.字符串 a 和 b 的长度之和解析:解析 本题首先通过第一个 while 循环计算字符串 a 的长度,再通过第二个 while 循环,将字符串 a 和 b 相连,最后返回连接后的总长度。27.语句“printf(“%d/n“, 12”的输出结果是_。(分数:1.00)A.12B.8 C.6D.012解析:解析 012 是八进制数,转换成十进制为 10,12(分数:1.00)A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5) 解析:解析 选项 A,(k%=5

32、)=2,(x%=2)=0;选项 B,(k-k%5)=7-2=5,(x%=5)=2:选项 C,(k%5)=2,k-2=7-2=5,(x%5)=2;选项 D,(x%=7)=5,(k%=5)=2,5-2=3。29.要正确定义并初始化一个数组 a,它含有 5 个元素,则正确的语句是_。(分数:1.00)A.int a5=(0,0,0,0,0);B.int a5=;C.int a=0,0,0,0,0; D.int a=5*0;解析:解析 A 项是错误的,赋值时用的是花括号而不是圆括号。B 项错在不能初始化时在花括号内为空。D 项错在不可以用表达式对数组一一赋值。C 项虽然没有直接定义数组的大小,但是初始

33、化时只赋了 5 个元素的值,系统会自动定义数组的大小为 5,这种形式是正确的。30.以下运算符中优先级最高的运算符是_。(分数:1.00)A.+ B.?:C.!=D.则数值为 9 的表达式是_。(分数:1.00)A.*p+9B.*(p+8) C.*p+=9D.p+8解析:解析 p 是指向整型变量的指针,并赋初值指向了数组 a 的首地址,*p=1,选项 A 中 *p+9=10;选项 C 中*p=*p+9=10。而 p+8 是指向数组 a 的第 9 个元素的地址,只有*(p+8)才是数组 a 的第 9 个元素。32.Turbo C 将对以下程序_。main()int x,y;y=creat(cre

34、at(int(分数:1.00)A.return a+;A) 编译时会给出出错信解析:解析 本题传送的实参是变量 x 的存储地址,但程序会把它当做实际传递的值来处理,不会报错。33.以下程序的输出结果是_。main()char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-/0;printf(“%d/n“,s);(分数:1.00)A.69825B.59713C.6385 D.693825解析:解析 p 是指向字符的指针数组。执行第 1 个循环后

35、,p0指向字符数组 ch 的第 1 行“6937“, p1指向字符数组 ch 的第 2 行“8254“,那么 p00其实就对应着 ch00,表示第 1 行的第 1 个元素“6”。第 2 个循环中,外层 i 循环是控制指针数组 p 的,内层 j 循环则是对每一行内的各个元素进行处理,特别注意循环变量 j 的改变“j+=2“。这样就可以看出是对 ch00、ch02、ch10和 ch12进行处理。34.以下程序的输出结果是_。main()int x=10,y=10,i;for(i=0;x8;y=+i)printf(“%d %d “,x-,y);(分数:1.00)A.10192B.9876C.1099

36、0D.101091 解析:解析 第 1 次循环,i=0,x=10,y=10,先输出 x=10,y=10,再执行 x-使得 x 变为 9,其次再执行 y=+i(i 加 1 后参与赋值)使得 y 变为 1:第 2 次循环,i=1,x=9,y=1,先输出 x=9,y=1,再执行 x-使得 x 变为 8,其次再执行 y=+i(i 加 1 后参与赋值)使得 y 变为 2。 x=8,不满足 x8,循环结束。35.下面程序的运行结果是_。main()unsigned a=3,b=10;printf(“%d/n“,a2|b1);(分数:1.00)A.3B.10C.13 D.14解析:解析 本题考查移位运算和按

37、位或运算,注意按位或运算时只要对应的二进制位中有一个为 1,结果为 1;若都为 0,结果为 0036.下面语句中不能定义一个数组,元素值依次分别为 1,1,1,0,0 的是_。(分数:1.00)A.static int a5=1,1,1,0,0;B.static int a5=1,1,1;C.static int a=1,1,1,0,0;D.static int a5=1*2,0*3; 解析:解析 不可能用表达式的方式来给数组元素一一赋值。37.若二维数组 a 有 m 列,且设 a00位于数组的第一个位置上,则计算任意元素 aij在数组中位置的公式为_。(分数:1.00)A.i*m+jB.j*

38、m+iC.i*m+j-1D.i*m+j+1 解析:解析 aij的位置应该是第 i+1 行,第 j+1 列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。38.表达式 18/4*sqrt(4.0)/8 值的数据类型为_。(分数:1.00)A.intB.floatC.double D.不确定解析:解析 根据数据类型转换时的就长转换规则,可以得到最后的结果应是实型。39.以下程序的输出结果是_。main()unsigned short a=65536;int b;printf(“%d/n“,b=(分数:1.00)A.;struct date*next;double b;too;print

39、f(“%d“,sizeof(too);(分数:1.00)A.20B.16C.14D.12 解析:解析 指针类型占 2 个字节,双精度型占 8 个字节,因此 sizeof(too)=2+2+8=1243.在以下选项中,操作不合法的一组是_。(分数:1.00)A.int x6,*p;p=B.int x6,*p;*p=x; C.int x6,*p;p=x;D.int x5,p;p=x0;解析:解析 对于 A 和 C 都可使 p 指向数组 x 的首地址。D 是把数组元素 x0赋给 p。44.数据字典是对数据定义信息的集合,它所定义的对象都包含于_。(分数:1.00)A.程序框图B.软件结构C.数据流图

40、 D.方框图解析:解析 数据字典是对数据定义的信息的集合,是对数据流图中包含的所有元素定义的集合。数据流图和数据字典共同构成系统的逻辑模型,没有数据流图则数据字典难以发挥作用,没有数据字典则数据流图就不严格。45.软件系统生命周期的第一个阶段是_。(分数:1.00)A.软件分析阶段 B.软件设计阶段C.软件运行阶段D.软件维护阶段解析:解析 软件工程的第一个阶段是软件分析阶段。软件分析阶段的工作是由软件分析员和用户一起来做的。软件分析的结果是分析人员写出的分析报告,该分析报告实际上就是软件系统的系统总体设计方案。46.下面程序运行的结果是_。main()int x,y,z;x=0;y=z=-1

41、;x+=-z-y;printf(“x=%d/n“,x);(分数:1.00)A.x=4B.x=0C.x=2 D.x=3解析:解析 表达式“x+=-z-y”等价于“x=x+(-z-(-(-y)=0+(1-(-1)=2”。47.以下程序的运行结果是_。#includestdio.hmain()int a=1,2,3,4,5,6,7,8,9,10,11,12;int*p=a+5,*q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);(分数:1.00)A.运行后报错 B.6 6C.6 12D.5 5解析:解析 用指针变量 p+5 对指针变量 q 进行赋值的正确方法为 p=q+

42、5。48.设有以下程序段;int a5=0,*p,*q;p=a;q=a;则合法的运算是_。(分数:1.00)A.p+qB.p-q C.p*qD.p%q解析:解析 指向同一字符串的指针可以、也只能进行减运算,返回一个整型数。49.下面程序的输出结果是_。main()enum team my,your=4,his,her=his+10;printf(“%d %d %d %d/n“,my,your,his,her);(分数:1.00)A.0 1 2 3B.0 4 0 10C.0 4 5 15 D.1 4 5 15解析:解析 本题考查枚举型变量的定义及其赋初值。第一个变量默认为 1,中间可任意赋值,赋

43、值后其后面的变量依次加 1。50.若定义了以下函数:void f(.)*p=(double*)malloc(10*sizeof(double);p 是该函数的形参,要求通过 p 把动态分配存储单元的地址传回主调函数,则形参 p 的正确定义应当是_。(分数:1.00)A.double *pB.float *pC.double *p D.float *p解析:解析 从上面程序中对指针变量 p 值的定义可见,p 所指单元的内容又是一个地址,这个地址是申请分配内存空间后的返回首地址,而分配的空间中又存放 double 型的数据,因此 p 是指向指针的指针变量,通过两层间接寻址对 double 型的数据

44、操作,故正确答案应该是选项 C。二、填空题(总题数:14,分数:28.00)51.二叉树按某顺序线索化后,其结点均有指向其前趋和后继的线索,该说法是 【1】 的。(分数:2.00)填空项 1:_ (正确答案:错误)解析:解析 线索二叉树是利用二叉链表存储结构中的空链域来存放其前趋或后继。由于二叉树度为 2的非终端结点无空链域,因此它没有空链域用来存放前趋和后继。52.对存储器按字节进行编址,若某存储器芯片共有 8 根地址线,则该存储器芯片的存储容量为 【2】 字节。(分数:2.00)填空项 1:_ (正确答案:256)解析:解析 本题考查对存储器按字节进行编址的规则及其寻址范围(2 n),其中

45、 n 为存储器芯片中地址线的条数。53.软件是由两部分组成的,一部分是 【3】 ,另一部分是文档资料。(分数:2.00)填空项 1:_ (正确答案:程序)解析:解析 按照软件工程学的观点,一个完整的软件系统不仅包括一整套供计算机系统执行所必须的计算机化了的数据信息(简称为程序),还应包括一整套供计算机领域的技术人员和用户使用的非计算机化的文档资料。54.软件工程学把软件从开始研制到最终软件被废弃的整个阶段叫做软件的 【4】 。(分数:2.00)填空项 1:_ (正确答案:生命期)解析:解析 软件的生存周期是软件工程最基本的重要概念。软件产品和其他产品的生产一样,都要经过分析、设计、制造、检测和运行使用几个阶段。通常,把软件从开始研制(形成概念)到最终软件被废弃这整

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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