模拟1答案09资料

上传人:E**** 文档编号:99970884 上传时间:2019-09-21 格式:DOC 页数:10 大小:92KB
返回 下载 相关 举报
模拟1答案09资料_第1页
第1页 / 共10页
模拟1答案09资料_第2页
第2页 / 共10页
模拟1答案09资料_第3页
第3页 / 共10页
模拟1答案09资料_第4页
第4页 / 共10页
模拟1答案09资料_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《模拟1答案09资料》由会员分享,可在线阅读,更多相关《模拟1答案09资料(10页珍藏版)》请在金锄头文库上搜索。

1、模拟练习一试题1阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】求 1 + 2/3 + 3/5 + 4/7 + 5/9 + 的前20项之和。 运行示例:sum = 11.239837【程序】#include void main( )int i, b = 1;double s; (1) ; for(i = 1; i = 20; i+) s = s + (2) ; (3) printf( (4) , s);【供选择的答案】(1)A、s = 0B、s = 1 C、s = -1D、s = 2求和时,变量的初值为0.(2) A、i/bB、double(i)/doubl

2、e(b) C、i/2*i-1D、(double)i/(double)bAC两项是整数相除,错误。B的转换格式不对。(3) A、;B、b = 2 * i 1; C、b = 1.0 * b; D、b = b + 2; B的步长为2。(4) A、sum = %dn B、s = %cnC、sum = %fn D、s = %sn根据上面的提示:运行示例:sum = 11.239837可以确定这里的格式。试题2阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入10个整数,将它们从大到小排序后输出。 运行示例:Enter 10 integers: 1 4 -9 99 1

3、00 87 0 6 5 34After sorted: 100 99 87 34 6 5 4 1 0 -9【程序】#include void main( ) int i, j, t, a10; printf(Enter 10 integers: ); for(i = 0; i 10; i+) scanf( (5) ); for(i = 1; i 10; i+) for( (6) ; (7) ; j+) if( (8) ) t = aj; aj = aj+1; aj+1 = t; printf(After sorted: ); for(i = 0; i i B、j 9 - i C、j i 1第i

4、个,总是和第10-i个相比,对称!(8) A、ai-1 ai B、aj+1 aj+2 C、aj aj+1 D、ai aj从下面的aj = aj+1;可以推断出与后面的一个进行比较,如果比后面的小,则交换。注意:这里到底是用aj aj+1,看结果是大的在前,还是小的在前。试题3阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个字符串中,再输出后一个字符串。运行示例1:Enter a string: 103+895=?Enter an integer: 6The new string is 103+

5、89运行示例2:Enter a string: 103+895=?Enter an integer: 60The new string is 103+895=?运行示例3:Enter a string: 103+895=?Enter an integer: 0The new string is 【程序】#include void main( ) char s80, t80, i, m;printf(Enter a string:); gets(s);printf(Enter an integer:);scanf(%d, &m); for(i = 0; (10) ; i+) (11) ; (12

6、) printf(The new string is );puts(t);【供选择的答案】(9) A、ctype.hB、math.h C、stdio.hD、string.h做这样的题目,要扫视下面,看出现了哪些库函数。本题中,主要出现了puts,这个函数属于stdio.h(10) A、i mB、si!= 0 C、si!= 0 & i mD、si!= 0 | i m这里的循环变量是i,需要i m。问题是还需要同时考虑S串的长度,如果m的值大于S串的长度(例如:Enter a string: 103+895=? Enter an integer: 60),则后面的部分没必要进行了。因此,这两个条件

7、必须同时满足。所以答案是C。A和B都只考虑了一种情况,D的逻辑表达不对。值得注意的是,题目中的运行示例2和运行示例3都提供了极端的情况,耐人寻味。(11) A、*s+ = *t+B、ti = si C、*t+ = *s+D、si = ti两个数组元素,逐一赋值而已。用到了For,就是逐一。问题是,如果选C、*t+ = *s+,则这一句把指针向后拨动一次,但循环中的for(i = 0; (10) ; i+)又拨动一次,这样就指针后移2次,错误!(12)A、ti = 0;B、; C、*+s = 0;D、*+t = 0;使得到的数组元素的最后一个为0.试题4阅读下列程序并回答问题,在每小题提供的若干

8、可选答案中,挑选一个正确答案。【程序】#include void main( ) int s, x1, y1, z1, x2, y2, z2; printf(Enter 6 integers:);scanf(%d%d%d%d%d%d, &x1, &y1, &z1, &x2, &y2, &z2);s = f(x2, y2, z2) - f(x1, y1, z1);printf(%dn, s); f(int x, int y, int z) int k, n; int tab213 = 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0, 31

9、, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;n = (x % 4 = 0 & x % 100 != 0 | x % 400 = 0); for(k = 1; k y; k+) z = z + tabnk;return z; 这道题的解题思路是把给定的数值带进去,分别求出f(x2, y2, z2)和f(x1, y1, z1)的值,然后再求它们的差。有趣的是,数组tab213的两行分别表示了非闰年和闰年各月的天数。注意,经过n = (x % 4 = 0 & x % 100 != 0 | x % 400 = 0);运算后,n的值要么是1,要么是0,因为

10、它是逻辑运算的结果。(13) 程序运行时,输入1 0 0 0 0 0,输出 (13) 。 A、29B、28C、0 D、-1f(x2, y2, z2)= f(0,0,0)=0f(x1, y1, z1)= f(1,0,0)=0所以,0-0=0(14) 程序运行时,输入0 0 1 0 0 0,输出 (14) 。 A、29B、28C、0 D、-1f(x2, y2, z2)= f(0,0,0)=0f(x1, y1, z1)= f(0,0,1)=1for(k = 1; k y; k+)中的条件k y不成立(10),所以循环没有执行z的值没有改变,还是1。所以,0-1=-1(15) 程序运行时,输入2000

11、 2 1 2000 3 1,输出 (15) 。 A、29B、28C、0 D、-1f(x2, y2, z2)= f(2000,3,1),此时:因为2000%400=0,所以n=1所以,z=z+tab11+tab12=0+31+29=60f(x2, y2, z2)= f(2000,3,1)=60f(x1,y1, z1)= f(2000,21),此时:因为2000%400=0,所以n=1所以,z=z+tab11=0+31=31f(x1,y1,z1)= f(2000,2,1)=31所以,60-31=29(16) 程序运行时,输入1981 2 1 1981 3 1,输出 (16) 。 A、29B、28C、0 D、-1f(x2, y2, z2)= f(1981,3,1),此时:n=0;所以,z=z+tab01+tab02=0+31+28=59f(x2, y2, z2)= f(1981,3,1)=59f(x1,y1, z1)= f(1981,2,1),此时:n=0所以,z=z+tab01=0+31=31f(x1,y1,z1)= f(1981,2,1)=31所以,59-31=28试题5阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】# include void main ( ) int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号