软件设计师模拟题及答案解析第二十七套Word文件下载.docx

上传人:b****5 文档编号:16245671 上传时间:2022-11-21 格式:DOCX 页数:18 大小:26.41KB
下载 相关 举报
软件设计师模拟题及答案解析第二十七套Word文件下载.docx_第1页
第1页 / 共18页
软件设计师模拟题及答案解析第二十七套Word文件下载.docx_第2页
第2页 / 共18页
软件设计师模拟题及答案解析第二十七套Word文件下载.docx_第3页
第3页 / 共18页
软件设计师模拟题及答案解析第二十七套Word文件下载.docx_第4页
第4页 / 共18页
软件设计师模拟题及答案解析第二十七套Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

软件设计师模拟题及答案解析第二十七套Word文件下载.docx

《软件设计师模拟题及答案解析第二十七套Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件设计师模拟题及答案解析第二十七套Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

软件设计师模拟题及答案解析第二十七套Word文件下载.docx

其性能改进有限,价格却很昂贵

RAID7

具有最优化的异步高I/O速率和高数据传输率的磁盘阵列

是对RAID6级的改进。

在这种阵列中的所有磁盘,都具有较高的传输速度,有着优异的性能,是目前最高档次的磁盘阵列

RAID10

建立在RAID0和RAID1基础上的高可靠性与高性能的组合

利用了RAID0极高的读写效率和RAID1较高的数据保护和恢复能力,使RAID10成为了一种性价比较高的等级,目前几乎所有的RAID控制卡都支持该等级

  表6几种RAID级别的对比表

 2.BecauseWebServersareplatformandapplication(7)theycansendorrequestdatafromlegacyorexternalapplicationsincludingdatabases.Allreplies,onceconvertedinto(8)mark-uplanguage,canthenbetransmittedtoa(9).Usedinthisway,Intranetscan(10)lowerdesktopsupportcosts,easylinkswithlegacyapplicationsanddatabasesand,(11)all,easeofuse.

  【供选择的答案】

  (7)A.relatedB.dependentC.coupledD.independent

  (8)A.supertextB.plaintextC.hypertextD.ciphertext

  (9)A.clientB.browserC.serverD.router

  (10)A.getB.ignoreC.requireD.offer

  (11)A.aboveB.aroundC.aboutD.abort

(7)~(11)D、C、B、D、A。

  参考译文:

由于Web服务是基于独立的平台和应用程序,因此它能够从包含数据库的现有的(或外部的)应用软件发送和接收数据。

所有返回的结果一旦转换成超文本标记语言,就能传送给浏览器。

使用这种方式,企业内部网(Intranet)可以提供更低的桌面支持成本,容易将现有的应用软件和数据库简单地连接起来,此外,它更容易使用。

  3.设函数的功能是交换X和y的值,且通过正确调用返回交换结果。

不能正确执行此功能的函数是(12)

  (12)A.funa(int*x,int*y)

  {int*p;

  *p=*x;

*x=*y;

*y=*p;

  }B.funb(intx,inty)

  {intt;

  t=x;

x=y;

y=t;

  }

  C.func(int*x,int*y)

  {intp;

  p=*x;

*y=p;

  D.fund(int*x,int*y)

  {

  *x=*x+*y;

*y=*x-*y;

*x=*x-*y;

(12)A,B。

设计实现交换两个变量值的函数。

希望函数调用能改变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。

函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的变量,或引用它们的值,或改变它们的值。

从而实现从函数传回信息存于调用环境的变量中。

以上所述是设计交换变量值函数的一般原则,具体编写函数时还需注意对上述原则的正确应用。

  对于函数funa,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。

但是在函数体中定义了指针变量p,并在p宋明确设定它所指向的变量下,代码*p=*x企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。

该函数因有错,不能实现交换变量值的功能。

  对于函数funb,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。

  对于函数func,该函数正确定义了指针形参,函数体也正确通过指针形参间接引用环境中的变量,并正确定义了自己的局部变量。

该函数能实现交换变量值的功能。

  对于函数fund,该函数也正确定义指针形参和函数体通过形参间接引用环境变量。

特别要指出的是,该函数是利用*x和*y的;

日值与新值之间的关系实现问题要求的。

其中第一个赋值使。

x存有原来未交换之前的*x与*y之和;

第二个赋值从这个和中减去原来的*y,并将差赋给*y,使*y的值是交换之前的*x的值;

第三个赋值再次从和中减去新的*y,即减去交换之前的*x,这个差就是交换之前的*y,并将差赋给*x。

经以上三个赋值,实现两变量之间的值交换。

所以不能正确执行交换变量值的函数是funa和funb,即正确选择是A,B。

  4.设有定义“chara[10]={"

abcd"

},*p=a;

"

,则*(p+4)的值是(123)

  (13)A."

abCd"

  B.’d’

  C.’\0’

  D.不能确定

(13)C。

若有chara[10]="

,*p=a,则指针变量p指向a[0]。

在表达式*(p+4)中,p+4指向a[4],*(p+4)就是a[4]。

由于用字符"

给字符数组a赋初值,a[4]的值是字符串结束标记符’\0’。

所以解答是C。

  5.设有代码"

int(*ptr)[10];

”,其中的ptr是(124)

  (14)A.10个指向整型变量的指针

  B.指向10个整型变量的函数指针

  C.一个指向具有10个元素的一维数组的指针

  D.具有10个指针元素的一维数组

(14)C。

代码“int(*ptr)[10];

”的分析过程是,因圆括号,括号内的ptr先与字符*结合,字符*修饰标识符ptr是一种指针;

接着与后面的一对方括号结合,表示是这样的一种指针,是指向一维数组的;

再有方括号中的10,说明这种数组有10个元素。

至此,ptr是指向含10个元素的一维数组的指针。

最后,是最前面的int,表示数组元素是int类型的。

所以,ptr是一个指向具有10个int型元素的一维数组的指针。

另外,要是A,10个指向整型变量的指针,就是一个指针数组,上述代码应写成“int*ptr[10];

”,即ptr是一个有10个指向整型变量的数组。

要是B,返回值是指向10个整型变量的函数的指针,上述代码应写成“int(*(*ptr)())[10];

”,即ptr是指针,指向一种函数,函数的返回值又是一种指针,指向10个元素的数组,数组的元素是整型的。

下面的代码是这样的函数指针和函数的例子:

  #include

  inta[][10]={{1,2,3,4,5,6,7,8,9,0},{0,1,2,3,4,5,6,7,8,9}};

  int(*(*ptr)(int))[10];

  int(*f(intn))[10]

  {returna+n;

  voidmain()

  {int(*p)[10],*q;

  ptr=f;

/*让ptr指向函数f*/

  P=(*ptr)(0);

  q=*p;

  printf("

%d"

*p);

  P=(*ptr)(l);

*q);

  在上述代码中,函数有一个int型的形参。

要是D,其意义与A相同,上述代码应写成“int*ptr[10];

”,即ptr是一个有10个元素的数组,数组元素是指向整型变量的指针。

6.若有以下定义,则数值为4的表达式是(15)

  intw[3][4]={{0,1},{2,4},{5,8}},(*p)[4]=W;

  (15)A.*w[1]+l

  B.p++,*(p+1)

  C.w[2][2]

  D.p[1][1]

(15)D。

二维数组定义有多种赋初值的办法,问题给出的代码是按行给数组的部分元素赋初值。

它们分别是w[0][0]=0.w[0][1]=1、w[1][1]=2.w[1][1]=4,w[2][0]=5,w[2][1]=8。

根据约定,未指定初值的元素自动置全0值。

指针变量p是一个指向具有四个int型元素的一维数组的指针,定义时的初值使它指向数组W的第一行。

A的代码,*w[1]+1中的W[l]是指向w[l][0]的指针,*w[1]就是w[1][0],其值是2,*w[1]+l的值是3。

B的代码是逗号表达式,“p++,*(p+1)”先使p指向数组w的第二行,*(p+l)中的p+l是指向数组w的第三行,*(p+1)是指针值,指向数组w的第三行的第一个元素,即&

w[2][0].C的代码w[2][2]引用数组W第三行的第三列元素,其值是0。

D的代码p[1][l]引用数组W第二行的第二列元素w[1][1],其值是4。

所以解答是D。

  7.若有下面的程序片段,则对数组元素的错误的引用是(16)

  inta[12]={0},*p[3],**pp,i;

  for(i=0;

i<

3;

i++)p[i]=&

a[i+4];

  pp=P;

  16)A.pp[0][1]

  B.a[10]

  C.p[3][l]

  D.*(*(p+2)+2)

(16)C。

上述代码定义变量a是有12个整型元素的数组,它的初值全是0。

p是有三个元素的指针数组,每个指针能指向整型变量。

哪是指针的指针,它能指向一个指向整型变量的指针,i是一个整型变量。

执行代码for(i=0;

i++)P[i]=&

a[i+4]使指针数组p的元素p[0]指向a[4],p[l]指向a[5],p[2]指向a[6]。

代码pp=p使指针变量pp指向p[0]。

A代码pp[0][l]用指针表达可等价地写成*(*pp+l)。

其中*pp就是p[0],p[0]的值是&

a[4],*pp+1的值是&

a[4]+1=&

a[5],*(*pp+1)就是a[5]。

B代码a[l0]当然是引用数组a的元素。

C代码p[3][1]数组p只有三个元素,没有p[3],所以是错误的。

D代码*(*(p+2)+2)中的(p+2)是&

p[2],*(p+2)是p[2],其值是&

a[6],*(p+2)+2的值是&

a[8],*(*(p+2)+2)引用的是a[8]。

  8.若有如下定义和语句,则输出结果是(17)

  int**pp,*p,a=10,b=20;

  PP=&

p;

P=&

a;

b;

printf("

%d%d"

,*p,**PP);

  (17)A.10,20

  B.10,10

  C.20,10

  D.20,20

(17)D。

上述代码定义变量pp是指针的指针,它能指向一个指向整型变量的指针。

定义变量p是指针,它能指向一个整型变量。

a是一个整型变量,它有初值10。

b也是一个整型变量,它有初值20。

代码pp=&

p使pp指向p,p=&

a使p指向a,p=&

b又使p指向b,不再指向a。

所以。

p是引用b,其值为20。

**pp是通过pp间接引用p,再通过p间接引用b,所以也是20。

  9.若有以下定义和语句,则对w数组元素的非法引用是(18)

  intw[2][3],(*pw)[3];

pw=w;

  (18)A.*(w[0]+2)

  B.*pw[2]

  C.pw[0][0]

  D.*(pw[l]+2)

(18)B。

上述代码定义2行3列的二维数组w,定义能指向有3个整型元素一维数组的指针pw,并让pw指向数组w的第一行。

A代码*(w[0]+2)中的w[0]是&

w[0][0],w[0]+2是&

w[0][2],所以*(w[0]+2)就是w[0][2]。

B代码*pw[2]中的pw[2]是&

w[2][0],该数组w只有2行,没有w[2][0],所以代码*pw[2]是对数组W元素的非法引用。

C代码pw[0][0]就是w[0][0]。

D代码*(pw[l]+2)中的pw[1]就是*(pw+l),即&

w[l][0],pw[l]+2就是&

w[l][2],所以*(pw[1]+2)就是w[1][2]。

所以解答是B。

10.若有下列说明,则数值为4的表达式是(19)

  inta[12]={l,2,3,4,5,6,7,8,9,10,11,12};

  charc=‘a’,d,g;

  (19)A.a[g-c]

  B.a[4]

  C.a[’d’-’c’]

  D.a[’d’-c]

(19)D。

数组元素的下标自0开始顺序编号,值为4的元素是a[3]。

所以只有下标表达式的值为3的才是正确的。

下标表达式g-C中的的变量g和c的值是还未被设定的,其值不确定。

a[4]的值为5,下标为4是不对的。

’d’-’c’的值为1,a[l]的值是2,所以也是不对的。

变量c的值为’a’,’d’-c=3,所以正确解答是D。

  11.设有定义:

chars[12]={"

string"

};

则printf("

,strlen(s));

的输出是(20)

  (20)A.6

  B.7

  C.11

  D.12

(20)A。

在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。

存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。

正确的解答是A。

A错误的原因是整数数组不可以用字符串对其初始化。

B错误的原因是,数组初始化时,初始化指定的值的个数多于数组的元素个数。

C错误的原因是,能用字符串初始化的只;

有字符指针变量,或字符数组。

字符率不能对其它类型的变量初始化,包括字符变量。

D是正确的,因为字符数组可以用小整数(作为字符的ASCII代码值)对其元素初始化。

  12.语句"

strlen("

atsol2\1\\"

));

的输出结果是(21)

  (21)A.11

  B.10

  C.9

  D.8

(21)C。

字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转义字符。

在字符串"

abso12\11\\"

中,有三个转义字符,它们是、\1、\\,所以该字符串的有效字符个数是9。

所以正确的回答是C。

  13.函数调用“strcat(strcpy(strl,str2),str3)”的功能是(22)

  (22)A.将字符串strl复制到字符串str2中后再连接到字符串str3之后

  B.将字符串strl连接到字符串str2中后再复制到字符率str3之后

  C.将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后

  D.将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中

(22)C。

函数调用strcat(s1,s2)是将s2字符串复制连接到s1字符串之后,使s1字符串变得更长。

函数调用strcpy(s1,s2)是将s2字符串复制到s1,使s1字符串的内容与s2字符串的内容相同。

函数调用strcat(strcpy(strl,str2),str3)是先执行strcpy(strl,str2),然后再执行strcat(strl,str3),所以其功能是将字符串str2复制到字符串strl中,然后再将字符串str3复制连接到字符串strl之后。

正确的选择是C。

14.设有如下定义,则正确的叙述为(23)

  charx[]={"

abcdefg"

  chary[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’};

  (23)A.数组x和数组y等价

  B.数组x和数组y长度相同

  C.数组X的长度大于数组y的长度

  D.数组X的长度小于数组y的长度

(23)C。

不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给出的值的个数确定。

字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初始化。

但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符率结束字符。

但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需要的字节个数会比用同样多的字符初始化多1个字节。

所以只有C才是正确的。

117.设a=3,b=4执厅‘printf(”%d,%d’,(a,b),(b,a));

”的输出是(23)

  (23)A.3,4

  B.4,3

  C.3,3

  D.4,4

在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符d要求输出项内容以十进制整数形式输出。

第一个输出项(a,b)是一个逗号表达式,该表达式的值是b的值,输出4。

接着输出字符逗号。

第二个输出项(b,a)的值是a的值,输出3。

所以语句执行将输出4,3。

正解的选择是C。

  15.使用“Scanf("

X=%f,y=%f"

,&

x,&

y)”,要使X,y均为1.25,正确的输入是(24)

  (24)A.1.25,1.25

  B.1.251.25

  C.x=1.25,y=1.25

  D.X=1.25y=1.25

(24)C。

解析:

格式输入函数的格式字符串中的字符可以分成三类:

空格类字符、其它普通字符和格式转换说明。

其中空格类字符用来跳过一个空格类字符序列,直至下一个非空格类字符。

普通字符要求输入字符与其完全相同。

格式转换说明对输入字符列按格式转换说明进行转换,得到内部值存储到对应输入项所指定的存储位置中。

函数调用scanf(“x=%f,y=%f,&

y)以普通字符X=开头,输入时也要先输入X=。

接着是一个浮点数输入格式,所有能构成一个浮点数1.25的字符序列都能满足要求。

接着是普通字符列“,y=”,在输入的浮点数之后也要有字符列“,y=”。

最后又是浮点数输入格式,同样所有能构成一个浮点数1.25的字符序列都能满足要求。

问题给出的供选择答案中只有x=1.25,y=1.25是能满足上述要求的。

所以正确选择是C。

  16.设有inti=010,j=10;

则执行“printf("

%d,%d\n"

,++i,j--);

”的输出是(25)

  (25)A.ll,10

  B.9,10

  C.010,9

  D.10,9

(25)B。

变量i和j的初值分别为八进制数010和十进制数10,函数调用Printf(“%d,%d\n”,++i,j--)中,++i的值是变量i增1后的值,原来值是八进制数010,等于十进制数8,输出9。

j--的值是变量j减1之前的值,输出10。

格式字符申中的逗号是普通字符照原样输出。

所以问题给出的格式输出函数调用将输出9,10。

正确的解答是B。

  17.设a,b为字符型变量,执行"

scanf("

a=%c,b=%c"

a,&

b)"

后使a为’A’,b为’B’,从键盘上的正确输入是(26)

  (26)A.’A”B’

  B.’A’,’B’

  C.A=A,B=B

  D.a=Ab=B

(26)D。

函数调用scanf("

c=%c,b=%c"

c,&

b)中,普通字符必须按格式字符串要求照原样输入,c格式对紧接的任何字符都输入。

所以实现问题的要求,输入字符列应为“a=A,b=B”。

另外要特别指出,在程序中,为表示字符常量,字符前后需加单引号。

但用字符格式输入字符时,在要输入字符前后不必另键人单引号。

若键人单引号,则这个单引号也将作为字符被输入。

正确的解答是D。

 18.设X、y、Z、t均为int型变量,则执行以下语句后,t的值为(139)

  x=y=z=1;

t=++x||++y&

&

++z;

  (27)A.不定值

  B.2

  C.l

  D.0

(27)C。

语句序列“x=y=z=l;

”使变量x的值为1,变量t是赋一个逻辑表达式的值。

在C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时,就立即结束逻辑表达式的计算,不再计算后继逻辑子表达式。

本题的逻辑表达式是两个运算分量的逻辑或,而且左运算分量++X的值为非0,立即得到逻辑或运算的结果为1,并将1赋给变量t,所以变量t的值为1。

正确解答为C。

  19.设x、y、z均为int型变量,则执行以下语句后,x、y,z的值为(140)

  X=1;

y=0;

Z=2;

y++&

++Z||++X;

  (28)A.2、l、3

  B.2、0、3

  C.2、l、3

  D.2、1、2

(28)D。

语句序列“x=l;

z=2;

++z||++x;

”先使变量x的值为1,变量y的值为0,变量Z的值为2。

由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑子表达式的结果时,就立即结束逻辑子表达式的计算,不再计算该逻辑子表达式。

计算y+

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

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1