版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件设计师模拟题及答案解析第二十七套1. 廉价磁盘冗余阵列 (RAID) 是利用一台磁盘阵列控制器来管理和控制一组磁盘驱动器,组成一个高度可靠的、快速的大容量磁盘系统。以下关于 RAID的叙述中,不正确的是 () 。(1) A.RAID 采用交叉存取技术,提高了访问速度B.RAID0使用磁盘镜像技术,提高了可靠性C.RAID3利用一个奇偶校验盘完成容错功能,减少了冗余磁盘数量D.RAID6设置了一个专用的、可快速访问的异步校验盘参考答案: (1)B 。解析:廉价磁盘冗余阵列(RAID) 级别是指磁盘阵列中硬盘的组合方式,不同级别的 RAID为用户提供的磁盘阵列在性能上和安全性的表现上也有不同,
2、详见表 6。级 别描 述优 点缺 点没有容错设计磁盘的条带磁盘阵列,有效地提高RAID0系统的可仅提供并行交叉存磁盘 I/O 速度靠性不好取功能可利用并行读/ 写特性,将数磁盘具有磁盘镜像据块同时写入主RAID1利用率只和磁盘双工功能盘和镜像盘,故有50%比传统的镜像盘速度快增加了汉明码是早期为了由于进行即时数据校花费太校验与纠错RAID2验而研制的一种大,成本(Hamming Code技术,针对当时昂贵,目ECC)功能对数据安全敏感前己不用的领域,如金融服务等利用一台奇偶校验盘来完成具有并行传输容错功能。比起RAID3和校验功能磁盘镜像,减少了所需的冗余磁盘数具有独立的数 RAID4 据硬盘
3、与共享的校验硬盘具有独立的数RAID5 据磁盘和 分布式校验块的磁盘阵列具有独立的数 RAID6 据硬盘与两个独立的分布式校验方案与RAID 3相比, RAID 4是一种相对独立的形式每个驱动器都有独立的数据通路,独立地进行读 / 写,无专门的校验盘。用于纠错的校验信息以螺旋方式散布在所有的数据盘上。 RAB5常用于I/O 较频繁的事务处理上设置了一个专用的、可快速 其性访问的异步校验 能改进有盘。该盘具有独 限,价格立的数据访问通 却很昂贵路RAID7具有最优化的异步高 I/O 速率和高数据传输率的磁盘阵列是对 RAID 6级的改进。在这种阵列中的所有磁盘,都具有较高的传输速度,有着优异的性
4、能,是目前最高档次的磁盘阵列利用了 RAID 0极高的读写效率和RAID 1较高的数建立在 RAID 0和 据保护和恢复能RAID 1基础上的高可力,使 RAID 10成RAID10靠性与高性能的组为了一种性价比合较高的等级, 目前几乎所有的 RAID控制卡都支持该等级表6 几种 RAID级别的对比表2. Because Web Servers are platform and application (7) they cansend or request data from legacy or external applications includingdatabases. All rep
5、lies, once converted into (8) mark-up language, can then be transmitted to a (9) .Used in this way, Intranets can (10) lower desktop support costs , easy links with legacy applications and databases and,(11) all, ease of use.【供选择的答案】(7) A.related B.dependent C.coupled D.independent(8) A.supertext B.
6、plaintext C.hypertext D.ciphertext(9) A.client B.browser C.server D.router(10) A.get B.ignore C.require D.offer(11) A.above B.around C.about D.abort参考答案: (7) (11)D 、C、B、D、A。参考译文:由于 Web服务是基于独立的平台和应用程序,因此它能够从包含数据库的现有的 ( 或外部的 ) 应用软件发送和接收数据。所有返回的结果一旦转换成超文本标记语言,就能传送给浏览器。使用这种方式,企业内部网(Intranet)可以提供更低的桌面支持成
7、本,容易将现有的应用软件和数据库简单地连接起来,此外,它更容易使用。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;*x=*y;*y=p;D. fund(int*x,int*y)*x=*x+*y;*y=*x-*y;*x=*x-*y;参考答案: (12)A,B 。解析:设计实现交换两个变量值的函数。希望函数调用能改
8、变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的变量,或引用它们的值,或改变它们的值。从而实现从函数传回信息存于调用环境的变量中。以上所述是设计交换变量值函数的一般原则,具体编写函数时还需注意对上述原则的正确应用。对于函数 funa ,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。但是在函数体中定义了指针变量 p,并在 p宋明确设定它所指向的变量下,代码 *p=*x 企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。该函数因有错,不能
9、实现交换变量值的功能。对于函数 funb ,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。对于函数 func ,该函数正确定义了指针形参,函数体也正确通过指针形参间接引用环境中的变量,并正确定义了自己的局部变量。该函数能实现交换变量值的功能。对于函数 fund ,该函数也正确定义指针形参和函数体通过形参间接引用环境变量。特别要指出的是,该函数是利用*x 和*y 的 ; 日值与新值之间的关系实现问题要求的。其中第一个赋值使。 x存有原来未交换之前的 *x 与*y 之和 ; 第二个赋值从这个和中减去原来的 *y ,并将差赋给 *y ,使
10、 *y 的值是交换之前的 *x 的值 ; 第三个赋值再次从和中减去新的 *y ,即减去交换之前的 *x ,这个差就是交换之前的 *y ,并将差赋给 *x 。经以上三个赋值,实现两变量之间的值交换。所以不能正确执行交换变量值的函数是 funa 和funb ,即正确选择是 A,B。4. 设有定义“ chara10="abcd" , *p=a;" ,则 *(p+4) 的值是 (123) (13) A. "abCd"B. dC. 0 D. 不能确定参考答案: (13)C 。解析:若有 chara10="abcd",*p=a,则指针变
11、量 p指向 a0 。在表达式 *(p+4) 中, p+4指向 a4 , *(p+4) 就是 a4 。由于用字符 "abcd" 给字符数组 a赋初值, a4 的值是字符串结束标记符0 。所以解答是 C。5. 设有代码 "int(*ptr)10;”,其中的 ptr 是 (124)(14)A. 10 个指向整型变量的指针B. 指向 10个整型变量的函数指针C. 一个指向具有 10个元素的一维数组的指针D.具有 10个指针元素的一维数组参考答案: (14)C 。解析:代码“ int(*ptr)10;”的分析过程是,因圆括号,括号内的ptr 先与字符 * 结合,字符 * 修
12、饰标识符 ptr 是一种指针 ; 接着与后面的一对方括号结合,表示是这样的一种指针,是指向一维数组的 ; 再有方括号中的 10,说明这种数组有 10个元素。至此, ptr 是指向含 10个元素的一维数组的指针。最后,是最前面的 int ,表示数组元素是 int 类型的。所以, ptr 是一个指向具有 10个int型元素的一维数组的指针。所以解答是 C。另外,要是 A,10个指向整型变量的指针,就是一个指针数组,上述代码应写成“int*ptr10;”,即 ptr 是一个有10个指向整型变量的数组。要是B,返回值是指向 10个整型变量的函数的指针,上述代码应写成“ int(*(*ptr)()10;
13、 ”,即 ptr 是指针,指向一种函数,函数的返回值又是一种指针,指向 10个元素的数组,数组的元素是整型的。下面的代码是这样的函数指针和函数的例子:#includeinta10=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)10returna+n;voidmain()int(*p)10, *q;ptr=f;/*让ptr 指向函数 f*/P=(*ptr)(0);q=*p;printf("%d ",*p);P=(*ptr)(l);q=*p;printf("%d &qu
14、ot;,*q);在上述代码中,函数有一个 int 型的形参。要是 D,其意义与 A相同,上述代码应写成“ int*ptr10; ”,即 ptr 是一个有 10个元素的数组,数组元素是指向整型变量的指针。6. 若有以下定义,则数值为 4的表达式是 (15) intw34=0 ,1 , 2 ,4 ,5 , 8 ,(*p)4=W; (15)A. *w1+lB. p+ ,*(p+1)C. w22D. p11参考答案: (15)D 。解析:二维数组定义有多种赋初值的办法,问题给出的代码是按行给数组的部分元素赋初值。它们分别是w00=0.w01=1、w11=2.w11=4,w20=5,w21=8。根据约定
15、,未指定初值的元素自动置全 0值。指针变量 p是一个指向具有四个 int 型元素的一维数组的指针,定义时的初值使它指向数组 W的第一行。 A的代码, *w1+1 中的 Wl 是指向 wl0的指针, *w1 就是 w10 ,其值是 2,*w1+l 的值是 3。 B的代码是逗号表达式,“ p+, *(p+1) ”先使 p指向数组 w的第二行, *(p+l) 中的 p+l 是指向数组 w的第三行, *(p+1) 是指针值,指向数组 w的第三行的第一个元素,即 &w20.C 的代码 w22 引用数组 W第三行的第三列元素,其值是 0。D的代码 p1l 引用数组 W第二行的第二列元素 w11 ,
16、其值是 4。所以解答是 D。7. 若有下面的程序片段,则对数组元素的错误的引用是 (16)inta12=0,*p3,*pp ,i; for(i=0;i<3;i+)pi=&ai+4; pp=P;16)A. pp01B. a10C. p3lD. *(*(p+2)+2)参考答案: (16)C 。解析:上述代码定义变量a是有 12个整型元素的数组,它的初值全是0。p是有三个元素的指针数组,每个指针能指向整型变量。哪是指针的指针,它能指向一个指向整型变量的指针,i 是一个整型变量。执行代码for(i=0;i<3;i+)Pi=&ai+4使指针数组p的元素 p0指向 a4,pl指
17、向a5,p2指向 a6。代码 pp=p使指针变量pp指向 p0。A代码 pp0l用指针表达可等价地写成*(*pp+l)。其中 *pp 就是 p0, p0的值是 &a4, *pp+1的值是 &a4+1=&a5 ,*(*pp+1) 就是 a5 。B代码 al0 当然是引用数组 a的元素。 C代码 p31数组 p只有三个元素,没有p3,所以是错误的。D代码 *(*(p+2)+2)中的 (p+2)是 &p2,*(p+2)是p2,其值是 &a6,*(p+2)+2的值是 &a8,*(*(p+2)+2)引用的是 a8。所以解答是C。8. 若有如下定义和语句,则
18、输出结果是 (17) int*pp ,*p ,a=10,b=20; PP=&p;P=&a;P=&b;printf("%d%d " , *p ,*PP); (17)A.10 ,20B. 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,不再指向
19、 a。所以。 p是引用 b,其值为 20。 *pp 是通过 pp间接引用 p,再通过 p间接引用 b,所以也是 20。所以解答是 D。9. 若有以下定义和语句,则对 w数组元素的非法引用是 (18) intw23 ,(*pw)3;pw=w;(18)A. *(w0+2)B. *pw2C. pw00D. *(pwl+2)参考答案: (18)B 。解析:上述代码定义 2行3列的二维数组 w,定义能指向有 3个整型元素一维数组的指针 pw,并让 pw指向数组 w的第一行。 A代码 *(w0+2)中的 w0 是&w00 ,w0+2 是&w02 ,所以 *(w0+2) 就是 w02 。 B
20、代码 *pw2 中的 pw2 是&w20 ,该数组 w只有 2行,没有 w20 ,所以代码 *pw2 是对数组 W元素的非法引用。 C代码 pw00就是 w00。D代码 *(pwl+2)是 *(pw+l) ,即 &wl0,pwl+2 就是 &wl2,所以 *(pw1+2)中的 pw1 就就是w12。所以解答是B。10. 若有下列说明,则数值为 4的表达式是 (19)inta12=l ,2,3,4,5,6,7,8,9,10,11,12; charc= a, d,g;(19)A. ag-cB. a4C. a d- cD. a d-c参考答案: (19)D 。解析:数组元素的
21、下标自 0开始顺序编号,值为 4的元素是 a3 。所以只有下标表达式的值为 3的才是正确的。下标表达式 g-C中的的变量 g和c的值是还未被设定的,其值不确定。 a4 的值为 5,下标为 4是不对的。 d- c的值为 1,al的值是 2,所以也是不对的。变量c的值为 a, d-c=3 ,所以正确解答是 D。11. 设有定义: "chars12="string""则printf("%d ",strlen(s);的输出是 (20)(20)A. 6B. 7C. 11D. 12参考答案: (20)A 。解析:在 C语言中,字符串是指在有效字符
22、之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“ string”,该字符串的长度为 6,所以输出该字符串的长度应是6。正确的解答是 A。解析: A错误的原因是整数数组不可以用字符串对其初始化。B错误的原因是,数组初始化时,初始化指定的值的个数多于数组的元素个数。C错误的原因是,能用字符串初始化的只; 有字符指针变量,或字符数组。字符率不能对其它类型的变量初始化,包括字符变量。D是正确的,因为字符数组可以用小整数 ( 作为字符的 ASCII代码值 ) 对其元素初始化。12. 语句 "printf(&qu
23、ot;%d "strlen("ats ol21");"的输出结果是 (21)(21)A. 11B. 10C. 9D. 8参考答案: (21)C 。解析:字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转义字符。在字符串"abs o1211"中,有三个转义字符,它们是、1 、,所以该字符串的有效字符个数是9。所以正确的回答是C。13. 函数调用“strcat(strcpy(strl,str2), str3)”的功能是(22)(22)A.将字符串 strl复制到字符串 str2 中后再连接到字符串 str3 之后B. 将字符
24、串 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) 是先执行
25、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 。解析:不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给
26、出的值的个数确定。字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初始化。但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符率结束字符。但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需要的字节个数会比用同样多的字符初始化多1个字节。所以只有 C才是正确的。 117. 设a=3, b=4执厅 printf(”%d,%d, (a ,b) ,(b , a); ”的输出是 (23)(23)A. 3 ,4B. 4 , 3C. 3 , 3D. 4 , 4参考答案: (23)C 。解析:在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符 d要求输出项内容以
27、十进制整数形式输出。第一个输出项(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 ,C. x=1.25 , y=1.25 D. X=1.25y=1.25参考答案: (24)C 。 解析:格式输入函数的格式字符串中的字符可以分成三类:空格类字符、其它普通字符和格式转换说明。其中
28、空格类字符用来跳过一个空格类字符序列,直至下一个非空格类字符。普通字符要求输入字符与其完全相同。格式转换说明对输入字符列按格式转换说明进行转换,得到内部值存储到对应输入项所指定的存储位置中。函数调用scanf( “x=%f,y=%f,&x,&y) 以普通字符 X=开头,输入时也要先输入X=。接着是一个浮点数输入格式,所有能构成一个浮点数1.25 的字符序列都能满足要求。接着是普通字符列“, y=”,在输入的浮点数之后也要有字符列“,y=”。最后又是浮点数输入格式,同样所有能构成一个浮点数1.25 的字符序列都能满足要求。问题给出的供选择答案中只有 x=1.25 ,y=1.25
29、是能满足上述要求的。所以正确选择是C。16. 设有 inti=010 , j=10; 则执行“ printf("%d,%dn", +i ,j-);”的输出是 (25)(25)A. ll, 10B. 9 ,10C. 010 ,9D. 10 ,9参考答案: (25)B 。解析:变量 i 和j 的初值分别为八进制数 010和十进制数 10,函数调用 Printf( “%d,%dn”, +i ,j-) 中, +i 的值是变量 i 增1后的值,原来值是八进制数 010,等于十进制数 8,输出 9。j- 的值是变量 j 减1之前的值,输出 10。格式字符申中的逗号是普通字符照原样输出。
30、所以问题给出的格式输出函数调用将输出 9, 10。正确的解答是 B。17. 设a,b为字符型变量,执行 "scanf("a=%c ,b=%c",&a, &b)" 后使 a为 A, b为 B,从键盘上的正确输入是(26)(26)A.A”BB. A, BC. A=A,B=BD. a=Ab=B参考答案: (26)D 。解析:函数调用 scanf("c=%c ,b=%c",&c,&b)中,普通字符必须按格式字符串要求照原样输入, c格式对紧接的任何字符都输入。所以实现问题的要求,输入字符列应为“ a=A, b=
31、B”。另外要特别指出,在程序中,为表示字符常量,字符前后需加单引号。但用字符格式输入字符时,在要输入字符前后不必另键人单引号。若键人单引号,则这个单引号也将作为字符被输入。正确的解答是 D。18. 设 X、 y、Z、t 均为 int 型变量,则执行以下语句后, t 的值为 (139)x=y=z=1;t=+x|+y&&+z;(27)A.不定值B. 2C. lD. 0参考答案: (27)C 。解析:语句序列“ x=y=z=l;t=+x|+y&&+z;”使变量 x的值为 1,变量 t 是赋一个逻辑表达式的值。在 C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规
32、则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时,就立即结束逻辑表达式的计算,不再计算后继逻辑子表达式。本题的逻辑表达式是两个运算分量的逻辑或,而且左运算分量 +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 、3B. 2 、0、3C. 2 、 l 、3D. 2 、1、2参考答案: (28)D 。解析:语句序列“ x=l;y=0;z=2;y+&
33、;&+z|+x;”先使变量 x的值为1,变量 y的值为 0,变量 Z的值为 2。由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑子表达式的结果时,就立即结束逻辑子表达式的计算,不再计算该逻辑子表达式。计算y+因y的值为 0,使 y+&&+z的结果为 0,立即去计算 +X,这次计算使变量 y的值变成1,而变量 Z的值本改变。接着计算 +X,使 X的值变为 2。所以经上述语句执行后, X、y、Z的值依次为 2、1、Z。确解答为 D。20. 假定所有变量均已正确定义,下列程序段运行后 X的值是 (29) a=b=c=0;x=35;if
34、(!a)x-;elseif(b);if(c)x=3;elsex=4; A.34B.4C.35D.3参考答案: (29)B 。解析:以变量 a,b,c的值均为 0,变量 x的值为 35,语句:if(!a)x-;elseif(b);if(c)x=3;elsex=4;由两个证语句组成。首先执行前一个if 语句“ if(!a)x-;elseif(b); ”,因变量 a的值为 0,条件 !a 成立,执行 x- 使 x的值变为 34。接着执行后继的 if 语句“ if(c)x=3;elseX=4; ”,因变量 c的值为 0,条件不成立而执行 X=4,最终使变量 X的值为 4。正确解答是 B。注意前一个 i
35、f 语句的 else 部分的成分语句只有“ if(b); ”,这是一个单分支 if 语句,且其成分语句为空语句。21. 下面的程序段所表示的数学函数关系是 (30) y=-l;if(x!=0)if(x>0)y=l;elsey=0;1(x<0)1(x<0) (30)A. y=0(x=0)B. y=-l(X=0) 1(X>0)0(X>0) o(X<0)-l(X<0)C. y=-1(x=0)D. y=1(X=0)1(X>0)0(X>0)参考答案: (30)C 。解析:程序段首先置变量 y的值为一 l ,接着按变量 x值的不同情况重置变量 y的值。
36、重置的首要条件是 x!=0 ,若变量 x的值为 0,则不再重置变量 y的值,所以在 X值为 0情况下, y的值是 -l 。在变量 X的值不等于 0的条件下,若 X的值大于 0,重置变量 y的值为 1; 若变量 X的值小于 0,重置变量 y的值为 0。所以程序段实现当变量 x的值为 0时,变量 y的值为 -1; 当变量 X的值大于 0时,置变量 y的值为 1; 当变量 X的值小于 0时,置变量 y的值为 0。正确解答为 C。22. 下列语句中,句法错误的是 ( 不考虑语义 )(31)(31)A. while(x=y)5;B. dox+while(x=10); C. while(0);D. do2
37、;while(a=b);参考答案: (31)B 。解析: while 语句的一般形式是:while( 表达式 ) 语句这里的表达式可以是任何合理的表达式,语句可以是任何语句,包括空语句,或表达式语句。可能书写的 while 语句没有任何意义,如供选择的 A while(x=y)5; 和 C while(0); ,但这两个语句的句法没有任何错误。 do-While 语句的一般形式是:do语句 while( 表达式 );其中的成分语句也可以是任何语句,但供选择答案Bdox+while(x=10);中的代码 x+是一个表达式,不是语句,所以是错误的。正确解答是 B。23,循环语句“ for(x=0,
38、y=0;(y!=123)|(x<4);x+);”的循环执行(32)(32)A.无限次B. 不确定次C. 4 次D. 3 次参考答案: (32)A 。解析: for 循环语句的初始化部分置变量 x和y的初值为 0,循环条件是(y!=123)|(x<4),每次循环后变量 X的值增 1。由于循环过程中变量 y的值本被修改过,循环条件又是一个逻辑或,其左分量(y!=123) 永远成立,也就是循环条件永远成立。所以该循环语句将循环执行无限次。正确解答是A。NextPage24. 若i 、j 已定义为 int 类型,则以下程序段中的内循环体的执行次数是 (33)for(i=5;i;i-)for
39、(j=0;j<4;j+)(33)A. 20B. 24C. 25D. 30参考答案: (33)A 。解析:问题所给的程序段的外循环是一个阶循环语句,它的初始化部分置变量 i 的初值为 5,循环条件简写成 i ,即 i!=0 ,每次循环后变量 i 的值减 1。所以外循环共控制 5次循环。内循环也是一个 for 循环语句,它的初始化部分置变量 j 的初值为 0,循环条件是 j<4 ,每次循环后变量 j 的值增 1。所以内循环共控制 4次循环。这样,如内循环的体内未曾对变量 i 和j 有修改,在内、外循环一起控制下,内循环的体共被重复执行 20次。正确解答是 A。25. 假定 a和b为in
40、t 型变量,则执行以下语句后 b的值为 (34) a=1;b=10;dob-=a;a+; while<(b-<0); (34)A. 9B. -2C. -1D. 8参考答案: (34)D 。解析:在这个程序段中,循环开始前变量a的值为 1, b的值为 10,每次循环从变量 b减去 a,并让 a增 1,并在循环条件判定时,又让 b减去 1。第一次循环后,变量 b的值变成 9,变量 a的值变为 2,循环判断时,因 b的值大于 0,循环条件不成立,结束循环。但在循环判断时,让 b减去了 1,所以循环结束时,变量 b的值为 8。正确的解答是 D。26. 设x和y为 int 型变量,则执行下面
41、的循环后, y的值为 (35) for(y=l ,x=l;y<=50;y+)if(x>=10)break;if(x%2=1)x+=5;continue; X-=3;(35)A. 2B. 4C.6D.8参考答案: (35)C 。解析: for 循环语句的初始化部分置变量x和y的初值为 1,循环条件是(y<=50) ,每次循环后变量 y的值增 1,控制循环最多执行 50次。循环体有三个语句:首先在发现变量 X的值大于等于 10时,结束循环 ; 接着是当变量 X除2的余数为 1( 即变量 X是奇数 ) 时,让变量 X值增 5,让 X变成偶数,并直接进入下一轮循环 ; 如变量 X是偶
42、数,则从变量 X减去 3,让变量 X变成奇数。由上述分析知,每两次循环使变量 X的值增加 2. 第一次循环后,变量 X的值变成 6。第二次循环后,变量X的值变成 3。第三次循环后,变量 X的位变成 8。第四次循环后,变量 X的值变成5。第五次循环后,变量 X的值变成 10。第六次循环时,因变量 X的位大于等于10,直接跳出循环,这次循环是非正常结束,对变量y的修正只执行了 5次。所以循环结束后,变量 y的值增至 6。正确的解答是 C。27. 在C语言中,下列说法中正确的是 (36) 不能使用“ do语句 while( 条件 ) ”的循环“ do语句 While( 条件 ) ”的循环中必须使用“
43、 break ”语句退出循环 “ do语句 while( 条件 ) ”的循环中,当条件非 0时将结束循环“ do语句 while( 条件 ) ”的循环中,当条件为 0时将结束循环参考答案: (36)C 。解析: do-while 语句的一般形式是:do语句while( 表达式 );其语义是重复执行其成分语句,直至表示条件的表达式值为0时结束。do-while 语句是正常使用的一种循环结构之一。do-while 语句的循环结束条件由 while 后的表达式值为 0所控制,并不一定要有 break 语句跳出循环来结束循环。 do-while 语句在条件值非 0时,将继续循环,而不是结束循环。条件值
44、为 0时,才结束循环。所以正确的选择是。28. 若有以下程序段, W和 k都是整型变量,则不能与该程序段等价的循环语句是 (37)W=k;LB:if(w=0)gotOLE; w-;printf("*");gotoLB;LE:(37)A. for(w=k;w!=0;W-)printf("*");B. w=k;While(W-!=0)Prinif(”* ”);C. w=k;dow-;prinif(“* ”); while(W!=0);D. for(w=k;W;-W)printf("*");参考答案: (37)C 。解析:问题所给出的程序段用 goto 语句构造一个循环控制结构,该循环结构的初值是让变量 W的值为 k的值,循环结束条件是 W的情等于 0,循环体是让变量 W的值减 1,并输出一个字符 * 。上述循环控制过程用 for 循环可描述如下:for=(w=k;W!=0;W-)printh("*");或写成:for(w=k;w;-w)printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆生产建设兵团兴新职业技术学院《专业科创指导与实践》2023-2024学年第一学期期末试卷
- 公司涉密人员管理办法
- 二零二五年度农业现代化项目合作合同书3篇
- 2025金诚音响电脑售后合同
- 二零二五年度商业地产免租租赁合同3篇
- 2025年度供应链金融合同模板3篇
- 2025关于商铺转让的合同范本
- 2025蔬菜配送公司车辆运输配送合同
- 2025企业申请借款合同
- 耐柴油木地板安装合同
- GB/T 42623-2023安装于办公、旅馆和住宅建筑的乘客电梯的配置和选择
- 高中英语新课程标准试题含答案(四套)
- 当前中国个人极端暴力犯罪个案研究
- 食品欺诈预防控制程序分享
- 员工辞职报告下载(6篇)
- 建筑节能PPT 课件
- GB/T 17906-2021消防应急救援装备液压破拆工具通用技术条件
- GB/T 16674-1996六角法兰面螺栓小系列
- GB/T 13436-2008扭转振动测量仪器技术要求
- 高低压配电柜-福建宁德核电站投标书
- 干燥综合症护理课件
评论
0/150
提交评论