计算连续二个连续正整数之和立方差为什么是素数

扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
给定一个正整数n(n>100),计算n以内最大的10个素数之和.
七七系列26B
扫二维码下载作业帮
2亿+学生的选择
素数是否是无穷的呢!答案是肯定的最经典的证明由欧几里得证明在他的几何学原本中就有记载,虽然过去了2000多年但是至今仍然闪烁着智慧的光辉!证明如下 假设素数只有有限的n个,从小到大依次排列为p1,p2,...,pn,设 x = (p1·p2·...·pn)+1 如果x是和数,那么它被从p1,p2,...,pn中的任何一个素数整除都会余1,那么能够整除x的素数一定是大于pn素数,而如果说x是素数因为x>pn仍然和pn是最大的素数前提矛盾.因此说如果素数是有限个那么一定可以证明存在另一个更大素数在原来假设的素数范围之外,所以说素数是无限个的!所以当已知条件是n>100,那么n以内最大的10个素数之和是“无穷大”所以当已知条件是n
为您推荐:
其他类似问题
扫描下载二维码酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
最近看到一则颇为有趣的新闻,说北大一名大一新生,以素数为标准选手机号,受到广大网友膜拜。其实素数的检测算法是很有趣的,并且会涉及到数论、概率算法等诸多内容,一直觉得素数探测算法是了解概率算法很好的入口。本文和大家简单聊聊如何确定一个数是素数。
素数的定义
素数是这样被定义的:
一个大于1的整数,如果不能被除1和它本身外的其它正整数整除,则是素数(又称质数)。
与素数相关的定义还有合数:
一个大于1的整数,如果不是素数则是合数。其中能整除这个数的正整数叫做约数,不等于1也不等于合数本身的约数叫做非平凡约数。
注意1既不是素数又不是合数。
举几个例子:
2是素数,因为除1和2外没有其它正整数可以整除2。
3也是素数。
4不是素数,因为2可以整除4。
11是素数,除1和11外没有正整数可以整除它。
15不是素数,3和5可以整除15。
素数的性质
素数有一些有趣的性质,下面不加证明的列几条。
素数有无穷多个。
设f(n)为定义在大于1的整数集合上的函数,令f(n)的值为不大于n的素数的个数,则:
这个函数叫做素数分布函数,反映了素数的分布律。换言之,可以认为大于1的前n个正整数中,素数的个数大约是。
所谓素数检测,就是给定任意一个大于1的整数,判断这个数是否素数。
因子检测法
最直观的素数检测算法就是因子检测法。说白了,就是从2到n-1一个个拿来试,看能否整除n,如果有能整除的(找到一个因子),则输出不是质数,否则则认为n为质数。当然,实际上不需要试探到n-1,只要到就好了,原因如下:
设,且a、b均为n的非平凡约数,显然和不可能同时成立,因为同时成立时a*b就会大于n,所以,如果n存在非平凡约数,则至少有一个小于等于,因此只要遍历到就可以了。
因子检测法的实现代码如下(python):
def prime_test_factor(n):
if n == 1:
return False
for i in range(2, 1 + int(floor(sqrt(n)))):
if n % i == 0:
return False
return True
做几个测试:
print prime_test_factor(2)
print prime_test_factor(11)
print prime_test_factor(15)
print prime_test_factor()
很明显,因子检测法的时间复杂度为,一般来看,这个时间复杂度已经很不错了,不过对于超级大的数(例如加密中找几百位的素数是很正常的),这个复杂度还是太大了。
例如对于下面的整数:
哪位壮士可以试试用因子检测法检测这个数是质数还是合数,估计这辈子结果是出不来了,下辈子也悬。所以需要更高效的素数检测算法。
坦白说,对于大素数的探测,目前并没有非常有效的确定性算法。不过借助费马定理,可以构造一种有效的概率算法来进行素数探测。
首先看一下什么是费马定理。这条定理是发现的一条数论中的重要定理, 这条定理可以表述为:
如果p为素数,则对任何小于p的正整数a有
根据基本数理逻辑,一个命题正确,当且仅当其逆否命题正确。所以费马定理蕴含了这样一个事实:如果某个小于p的正整数不符合上述公式,则p一定不是素数;令人惊讶的是,费马定理的逆命题也&几乎正确&,也就是说如果所有小于p的正整数都符合上述公式,则p&几乎就是一个素数&。当然,&几乎正确&就意味着有出错的可能,这个话题我们后续再来讨论。至少从目前来看,费马定理给我们提供了一条检测素数的方法。
下面再通过例子说明一下费马定理表达的意义,例如我们知道7是一个素数,则:
其它素数可以可以用类似方法验证,关于这个定理的严格证明本文不再给出。
所以可以使用如下方法进行大素数探测:选择一个底数(例如2),对于大整数p,如果2^(p-1)与1不是模p同余数,则p一定不是素数;否则,则p很可能是一个素数。
至于出现假阳性(即合数被判定为素数)的概率,已有研究表明,随着整数趋向于无穷,这个概率趋向于零,在以2为底的情况下,512位整数碰到假阳性的概率为1/10^20,而在1024位整数中,碰到假阳性的概率为1/10^41。因此如果使用此法检测充分大的数,碰到错误的可能性微乎其微。
模幂的快速算法
仅有费马定理还不能写检测算法,因为对于大整数p来说,a^(p & 1) (mod p)不是一个容易计算的数字,例如上上面那个超大整数来说,直接计算2的那么多次幂真是要死人了,其效果一点不比因子分解法好。所以寻找一种更有效的取模幂算法。通常来说,重复平方法是一个不错的选择。下面通过例子介绍一下这个方法。
假设现在要求2的10次方,一种方法当然是将10个2连乘,不过还有这样一种计算方法:
10的二进制表示是1010,因此:
现初始化结果d=2^0=1,我们希望通过乘上某些数变换到2^10,变换序列如下:
可以看到这样一个规律:对中间结果d自身进行平方,等于在二进制指数的尾部&生出&一个0;对中间结果d自身进行平方再乘以底数,等于在二进制指数尾部&生出&一个1。靠这样不断让指数&生长&,就可以构造出幂。如果在每次运算时取模,就可以得到模幂了,下面是这个算法的python实现:
def compute_power(a, p, m):
result = 1
p_bin = bin(p)[2:]
length = len(p_bin)
for i in range(0, length):
result = result**2 % m
if p_bin[i] == '1':
result = result * a % m
return result
这个算法的复杂度正比于a、p和m中位数最多的数的二进制位数,要远远低于朴素的模幂求解法。
例如,下面的代码在我的机器上瞬间可以完成:
compute_power(2, 0, 1)
而用直观方法计算如此大指数的幂基本是不可能的。
费马检测的实现
有了上的铺垫,下面可以实现费马检测了:
def prime_test_fermat(p):
if p == 1:
return False
if p == 2:
return True
d = compute_power(2, p - 1, p)
if d == 1:
return True
return False
以下是一些测试:
print prime_test_fermat(7)
print prime_test_fermat(11)
print prime_test_fermat(15)
print prime_test_fermat(121)
print prime_test_fermat(561)
print prime_test_fermat(1)
需要注意的是,倒数第二个结果实际是错的,因为561可以分解为3和187。
相对来说,因子分解法适合比较小的数的探测,可以给出准确的结论,但是对于大整数效率不可接受,例如上面最后一个超大整数,因子分解法基本不可行;费马测试当给出否定结论时,是准确的,但是肯定结论有可能是错误的,对于大整数的效率很高,并且误判率随着整数的增大而降低。
Miller-Rabin检测
上文说,费马检测失误的概率随着整数不断增大而趋向于0,看似是对大素数检测很好的算法。那么我们考虑另外一个问题:如果一个数p是合数,a是小于p的正整数且a不满足费马定理公式,那么a叫做p是合数的一个证据,问题是,对于任意一个合数p,是否总存在证据?
答案是否定的。例如561这个数,可以分解为3乘以187,但是如果你试过会发现所有小于561的正整数均符合费马定理公式。这就意味着,费马检测对于561是完全失效的。类似561这样是合数但是可以完全欺骗费马检测的数叫做Carmichael数。Carmichael数虽然密度不大(前10亿个正整数中约600个),但是已经被证明有无穷多个。Carmichael数的存在迫使需要一种更强的检测条件配合单纯费马检测使用,其中Miller-Rabin检测是目前应用比较广泛的一种。
Miller-Rabin检测依赖以下定理:
如果p是素数,x是小于p的正整数,且x^2 = 1 mod p,则x要么为1,要么为p-1。
简单证明:如果x^2 = 1 mod p,则p整除x^2 & 1,即整除(x+1)(x-1),由于p是素数,所以p要么整除x+1,要么整除x-1,前者则x为p-1,后者则x为1。
以上定理说明,如果对于任意一个小于p的正整数x,发现1(模p)的非平凡平方根存在,则说明p是合数。
对于p-1,我们总可以将其表示为u2^t,其中u是奇数,t是正整数。此时:
也就是可以通过先算出a^u,然后经过连续t次平方计算出a^(p-1),并且,在任意一次平方时发现了非平凡平方根,则断定p是合数。
例如,560 = 35 * 2^4,所以可设u=35,t=4:
由于找到了一个非平凡平方根67,所以可以断言561是合数。因此2就成为了561是合数的一个证据。
一般的,Miller-Rabin算法的python实现如下:
def miller_rabin_witness(a, p):
if p == 1:
return False
if p == 2:
return True
t = int(floor(log(n, 2)))
while t & 0:
u = n / 2**t
if n % 2**t == 0 and u % 2 == 1:
b1 = b2 = compute_power(a, u, p)
for i in range(1, t + 1):
b2 = b1**2 % p
if b2 == 1 and b1 != 1 and b1 != (p - 1):
return False
if b1 != 1:
return False
return True
def prime_test_miller_rabin(p, k):
while k & 0:
a = randint(1, p - 1)
if not miller_rabin_witness(a, p):
return False
return True
其中miller_rabin_witness用于确认a是否为p为合数的证据,prime_test_miller_rabin共探测k次,每次随机产生一个1至p-1间的整数。只要有一次发现p为合数的证据就认为p为合数,否则认为p为素数。一些测试:
print prime_test_miller_rabin(7, 5)
print prime_test_miller_rabin(21, 5)
print prime_test_miller_rabin(561, 50)
print prime_test_miller_rabin(1, 50)
Miller-Rabin检测也同样存在假阳性的问题,但是与费马检测不同,MR检测的正确概率不依赖被检测数p(排除了Carmichael数失效问题),而仅依赖于检测次数。已经证明,如果一个数p为合数,那么Miller-Rabin检测的证据数量不少于比其小的正整数的3/4,换言之,k次检测后得到错误结果的概率为(1/4)^k,例如上面最后一个大整数,Miller-Rabin检测认为其实素数,我设k为50,也就是说它被误认为素数的概率为(1/4)^50。这个概率有多小呢,小到你不可想象。直观来说,大约等于一个人连续中得5次双色球头奖的概率。
& 相关主题:
本文来源:数学领域/7[自然数之一]
阿拉伯数字:7
罗马数字:VII
二进制:111
十六进制:7
六十进制:7
第4个素数第2对孪生素数之一(5,7)
第2个梅森素数(2^3-1):对应完全数为28
第4个阶乘素数(3!+1)
第1个胡道尔素数
第2个幸运素数
第4个陈质数(Chenprime)
第3个瓦格斯塔夫质数
第2个快乐数
7是两个数的立方差:7=2^3-1^3,并且7是满足此性质的最小正整数。
999,999除以7刚好是142,857,以7为分母的真分数的循环节为该六个数字的不同顺序。
正三边形、正四边形、正五边形、正六边形均可以以尺规作图的方式画出,但正七边形却不可。
西尔维斯特数列的第3项
Frieze群有七种
7维空间是除了3维空间外唯一能定义叉积的空间
7是八进制中最大的个位数字
佩兰数列的第8项倍数表乘数乘积172143214285356427498569631070117712841391149815105161121711918126191332014021147221542316124168251752618227189281962920330210……次方表次方次方数17249334342,401516,8076117,6497823,54385,764,801940,353,60710282,475,249111,977,326,7431213,841,287,2011396,889,010,40714678,223,072,849154,747,561,509,9431633,232,930,569,60117232,630,513,987,207181,628,413,597,910,4491911,398,895,185,373,143……除法123456789101112131415&&&&&7 ÷ x73.52.31.751.41.1610.8750.70.70.630.5830.5384610.50.46&&&&&x ÷ 70.1428570.2857140.4285710.5714280.7142850.85714211.1428571.2857141.4285711.5714281.7142851.85714222.142857&&&&&乘方123456789101112137x 7493432401168071176498235435764801x7 11282187163847812527993682354320971524782969Radix1510152025304050607080901001101201301401502002505001000100001000001000000&&x7151372172673474275571017114713071437156720272157231724472607303740475057131372626741104756435577
科学领域/7[自然数之一]
7在中,中性的pH为7氮的。主要由七颗亮星组成。经常被分为七种颜色:红、橙、黄、绿、靛、蓝、紫生物界分为七个等级:界、门、纲、目、科、属、种。
文化领域/7[自然数之一]
7七:象征权势和谐的数字,纪元年代,权利和名誉的象征。在基督(犹太)信仰中,上帝用六天创造世界,第七天休息,星期日被称为“安息日”从此而得。通用历法中的一周亦为七天。在西方文化中,七普遍被视为幸运数字,而有&Lucky&7&的说法。在生产力和科学都极度落后的古代社会,古人希望神秘的星空能告诉他们些什么。古人认为人与星星是有关系的,人的灵魂是天的一部分。因此,星占家在古代社会的地位非常显要。建立王国的闪米特人相信七曜皆神,对他们都加以崇奉。并确信他们轮流执政,主宰着人间的沧桑。于是,闪米特先人把对七星神的敬畏演化于他们古老的宗教中,他们造七座坛、献七份祭礼、行七次叩拜之礼……日复一日、年复一年,渐渐地,“七”从他们虔诚的图腾崇拜礼仪中抽象出来,成为一个隆重的符号,并最终融入新的一神宗教之中了。这种传统文化影响发展到现代,因此“7”字在英语国家里面成为一个神圣而又充满神秘色彩的数字,它对西方文化乃至整个世界的文化产生广泛而深远的影响,它影响着人们的工作和生活的方方面面。比如有“希腊七贤”、“七大主教”、“七大美德”、“七宗罪”、“”、“神的七大礼物”、“七大圣礼”、“七大守护神”、“七大善”等等。这些都充分体现了“七”在宗教文化中的广泛运用。“7=2+5”中国在天文学上成就更高闪米特诸民族把日、月和五大行星(古人以肉眼观测,只知道五大行星)都笼统地称为行星。显然,是因为这七大天体都相对于恒星背景不断运动的缘故。而中国由于天文学更为发达,已经将日、月与五大行星区别开来。这种差异,也体现在各自文化里。在巴比伦产生了“”,在中国则大兴“阴(太阴-月亮)阳(太阳)五行(金、木、水、火、土)”;闪米特人尊七曜为神,而中国古人把“金木水火土五大元素说”与五大行星附和在一起,以求“”;闪米特诸族尊“七”为大,以“七”为“多”、为“全”,而中国文化则把五行之说套用于社会的方方面面:“物有五行”、“人有五行属命”、“朝代有五行属相”、“方向有五行属位”等,几乎所有的一切都可以套用五行之说,长沙马王堆出土的帛书《五星占》中,已把五大行星与五方、五帝严整地对应在一起。在中国传统文化里,7其实是阴阳与五行之和,这是儒家所谓的“和”的状态,也是道家所谓的“道”或“气”,都与“善”、“美”有着密切的联系。重新认识生活中的“7”综观中国传统文化和西方文化中,“7”字的含义都是吉祥和吉利、尊贵博大的,它代表着古代自然科技与人文科学的一种结合。实际上,无论贵7还是贱7,其实并没有那么重要。数字毕竟只是一个为了方便生活的代号,7是如此,其他数字也是如此;而从科学的生活观出发,数字背后的物质实体才是更值得我们重视的东西。
其它领域/7[自然数之一]
Windows7是微软在2009年10月全球同步预售的新型视窗系统。Alt+小键盘55可以输入7。Submachine第一层有7个空间。
趣味知识/7[自然数之一]
在自然数中,7是一个最特殊、有趣的数字,在自然数中7是质数。在生活中,用7非常广泛,例如:生活方面:一个星期有七天,算盘每排有七粒算珠,彩虹有七种颜色、多变的七巧板有七块;一般的块状物品摔碎后裂成7大块,不信可以仔细注意一下生活中的细节,原因未知。文化艺术方面:一个八度的自然音阶,古琴有七根弦,诗,传说中的七仙女;数学方面:科学家认为,7是一个最特殊的数字,也发现,在计算中,分别用1、2、3、4、5、6去除以7,它们都是无限循环小数,例如:1÷7=0.142857……2÷7=0.285714……3÷7=0.428571……4÷7=0.571428……5÷7=0.714285……6÷7=0.857142……观察上面的计算结果,发现了很多有趣的地方:小数部位的循环节在第7位。小数部位里的数字不会改变,只不过位置交换。还有,相邻的7的倍数之间所有的数加起来是7的倍数,例如:1+2+3+4+5+6=2136+37+38+39+40+41=2318+9+10+11+12+13=63……文化娱乐方面:电影《》,《》《》。
各地翻译/7[自然数之一]
7中文翻译:小写:七大写:柒英文翻译:大写:SEVEN小写:seven日文翻译:平假名:なな片假名:ナナ汉字:七法文翻译:sept德文翻译:sieben
其他说法/7[自然数之一]
传统《》记载,上帝6天创造了世界,第7天安息。古代天文学家通过肉眼观察,认为太阳系中有七颗行星,它们分别为、、、、、和。在许多语言中,每个星期7天的不同名字就源于这些星球的名称。天主教列出七大罪,它们是傲慢、贪婪、淫欲、嫉妒、饕餮、暴怒和懒惰,犯有这七宗罪的罪人将万劫不复。在《圣经》和著名绘画作品中,这些罪行均被多次提及。中国传统节日有“”,源于牛郎织女每年相会的传说。民间还有七仙女与董永的传说。“7”是日本的传统幸运数字。七芒星1、很难被准确地画出,因为七芒星是“不平均却稳定的一体”。完美的七芒星是很漂亮的图案,而且可以被一笔画出。传说一笔画出过完美七芒星的人有的说看见了炽天使长米迦勒,有的说看见了地狱魔君路西法,也有人说看见了天堂的生命树,甚至有人说看见了末日。2、七芒星分为“正七芒星”与“逆七芒星”。但是,你很难区分开“正七芒星”和“逆七芒星”,因为有多种不同的说法,一种也是按顶角位置来分正逆,但代表的意思与五芒星相反;另一种说法则是说七芒星的正逆判断与五芒星刚好相反;也有人认为七芒星与五芒星在正逆上并没有不同。3、关于“七芒星魔法阵”也是众说纷纭。有人说七个顶点要写上七位大天使的名字,也有人说是写上地狱七君主的名字,还有说法是写上六种元素(或者是四元素加上光和暗)的名称,而空出的顶尖就代表“虚无”。关于魔法阵外面有没有环也是有争议的。魔法阵外面应该是有环的,但是有种说法说:如果在七芒星魔法阵外面加上环就限制了它力量,甚至会破坏完整性,所以不能画上环。4、七芒星魔法阵的功效被记载得不多,只知道大概可以用来召唤。一个人是没有办法发动魔法阵的,但是如果魔法阵被发动,被召唤出来的东西就都是重量级的,比如大天使或大恶魔,甚至是未知的存在或力量。不要高兴,这些重量级的家伙可不会费神去聆听一个“低贱的生物”的愿望,甚至你连看都看不到他们第二眼,不是因为他们看不见,而是召唤者的结局会很惨。据说有以下几种结局:召唤者什么都忘记了。(所知最好结局)召唤者在强光下失明。(比较好的结局)召唤者精神失常。(至少还活着)召唤者被吓死。(有个全尸)召唤者被烤焦、开膛、撕碎、断头等等……有东西吞掉召唤者。召唤者活着掉入地狱。召唤者完全消失(尸体和灵魂都没有了)。生活1、美国一项科学研究指出,每天7小时睡眠时间是最适合人体的睡眠时长。2、根据化学家定义,pH值为7代表溶液“中性”,即非酸亦非碱。纯净的水pH值即为7,人们日常生活用水的pH值则非常接近7。3、1899年,“”一词首次被记载。玛丽莲·梦露1955年出演美国电影《七年之痒》,讲述了一对夫妇结婚7年后出生活中的7现的感情危机。此后,七年之痒一词得到广泛应用,如今几乎成为婚姻坎的代名词。4、《高效人士的七个习惯》一书自1989年发行至今,已经被翻译为38种语言,销量超过500万册。书中提及的7个习惯给了无数人启发。5、在英国,银行开户人必须年满7岁才能从银行提款。6、此外,骰子相对两面的点数之和为7。世界最高级酒店为七星级酒店,它是位于阿拉伯联合酋长国第二大城市迪拜的“帆船酒店”。7、上海周末大型新闻采访栏目:1/7。8、七色海棠:武侠中常见的一种花,可制成毒药。9、传统色彩有七种:赤、橙、黄、绿、青、蓝、紫。10、音乐的七个音符:哆、瑞、咪、发、嗦、啦、西。历史1、,又称卢沟桥事变、七七卢沟桥事变,是日发生在中国北平的卢沟桥(亦称芦沟桥)的中日军事冲突,日本就此全面的进攻中国。七七事变是日本帝国主义为实现它鲸吞中国的野心而蓄意制造出来的,是它全面侵华的开始。同名影视作品由李前宽、肖桂云执导,于1995年出品。2、美国航天飞机“挑战者”号和“哥伦比亚”号失事,对美国航天事业造成严重打击。这两架航天飞机失事时,机上均载有7名乘客,他们或为宇航员,或为准备体验太空生活的志愿者。3、世界上仅有一对七胞胎活了下来,他们是“麦考伊七胞胎”,于1997年诞生于美国艾奥瓦州。4、“世界七峰”指的是世界七大洲中,每个洲上的最高峰。西班牙登山爱好者罗曼·布兰科在70岁高龄时,征服了这7座高峰的最后一座,成为攀登“世界七峰”的最年长登山者。5、1756年至1763年,英法等殖民者之间在美洲爆发了“七年战争”,由于参战的国家比较多,英国前首相温斯顿·丘吉尔认为这才是真正的第一次世界大战。名人身披7号球衣的1、在足球场上,曾经身披7号球衣的天才球星让多少球迷为之疯狂,他们有前英格兰国家队队长大卫·罗伯特·约瑟夫·贝克汉姆、前西班牙国家队队长劳尔.冈萨雷斯.布兰科、英国传奇球星乔治·贝斯特与肯尼·达格利什、法国球星埃里克·坎通纳和葡萄牙球星路易斯·菲戈,克里斯蒂亚诺·罗纳尔多等。2、美国著名影星伊丽莎白·泰勒和拉娜·特纳分别有过7个丈夫,她们步入结婚殿堂的次数则为8次。而美国有限电视新闻网(CNN)知名节目主持人拉里·金迄今结过7次婚,有过6位妻子。3、“007”系列最新影片《皇家赌场》的主演丹尼尔·克雷格是“007”系列影片中的第7位詹姆斯·邦德扮演者。4、自媒体第一人“鬼脚七”,2013年7月,“鬼脚七”出版第1本自媒体著作《做自己:鬼脚七自媒体第一季》。未来1、英国女作家J·K·罗琳的《》系列书籍已被翻译成63种语言,全球销量超过3亿册。《哈利·波特》系列第7部、也是该系列的终结篇《哈利·波特与死亡圣器》已于2007年出版。巧合的是剧中的大反派伏地魔赖以生存的“魂器”也有7个。2、到2007年,美国乡村歌手姬蒂·韦尔斯和她的丈夫约翰尼·赖特将携手走过70载婚姻生活,迎来白金婚。3、日,宣布“新世界七大奇迹”的仪式将在葡萄牙里斯本开幕。仪式开幕时间可能为当地时间7时7分。4、在2007年还有一些知名人物步入70岁殿堂,比如美国前国务卿科林·鲍威尔、英国足球名宿鲍比·查尔顿和美国影星安东尼·霍普金斯等。5、如今网络里,也用‘7’代表‘切’,表贬义。网络网友用“7”作为“切”的简略缩写,表示不屑的意思。日,卡芙迪荣获“大爱2008公益企业奖”,该奖项由精品购物指南报社联合中国扶贫基金会共同主办,旨在弘扬大爱精神,向社会传递公益慈善理念。2011年8月,世界著名雇主品牌调查机构Univrsum公布了针对大学生的“2010年度全球理想雇主排行榜”中国大陆地区榜单。卡芙迪也光荣上榜。日,瑞士达沃斯世界经济论坛年会发布了“全球可持续发展企业100强”名单(Global&100&Most&Sustainable&Corporations&in&the&World),卡芙迪集团位列其中。此名单由美国投资研究公司Innovest&Strategic&Value&Advisors与加拿大独立媒体公司Corporate&Knights共同合作,对全球1800多家大型公司的环境管理、社会管理、公司治理等进行可持续性发展综合评估,从而遴选出名列前茅的100家公司。这100家公司中的化妆品类行业中包括欧莱雅、兰蔻、雅诗兰黛、薇诗伶、香奈尔等8家国际或国内公司。自2005年以来,此项评选活动结果即100强名单,每年在瑞士达沃斯世界经济论坛年度总会上发布。日,卡芙迪荣膺“2008仁商企业”称号。此次“2008仁商慈善榜”评选活动是由广州日报联合广州市慈善会推出的,旨在褒扬2008年中国发生的大事件中具有突出贡献的企业公民,鼓励它们以典范的力量,推动慈善事业薪火相传、蓬勃发展。日,法国财经报纸《La&Tribune》公布了由著名咨询公司(Diversity&Conseil(多样性理事会)颁发的第三届“多样性奖”,卡芙迪集团荣获殊荣。卡芙迪分别通过ISO9001质量管理体系、HACCP食品安全管理体系ISO14001环境管理体系、OHSAS18001职业健康安全管理体系和国家AAAA级企业良好行为标准等多项先进管理体系认证,各系列产品分别获得获得QS食品质量安全生产许可证。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:25次
参与编辑人数:10位
最近更新时间: 10:39:27
申请可获得以下专属权利:
贡献光荣榜当前位置: >>
大一c语言考试试题
试卷一(参考答案在后面!) 1,有以下程序 #include &stdio.h& void f(int a[],int i,int j) { if(i<j) { t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } void main( ) { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); fo
r(i=0;i<5;i++) printf(&%d,&,aa[i]); printf(&\n&); } 执行后输出结果是 A)5,4,3,2,1, B)5,2,3,4,1 C)1,2,3,4,5, D)1,2,3,4,5 2,下面程序的输出结果是 ( ) #include &stdio.h& void main( ) { int x=2,y=1; void f(int x,int y); f(x,y); printf(“%d,%d”,x,y); } void f(int x,int y) { y=x+y; x=x-y; } A)3,1 B)2,1C)1,3D)1,23,以下程序的输出结果是 。 # include <stdio.h> void main() { int k=4,m=1,p; p=func(k,m); printf(&%d,&,p); p=func(k,m); printf(&%d\n&,p); } int a,b; func(a,b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } A) 8,17 B) 8,16 C) 8,20 4,以下()是不正确的转义字符。D) 8,8 A.'\\' B.'\' C.'081' D.'\0' 5,在C语言中,int,char,和short三种类型数据所占用的内存 A.均为2个字节 B.由用户自己定义 C.由所用机器的机器字长决定 D.是任意的 6,有以下程序 main( ) { int x=102,y=012; printf(&%2d,%2d\n&,x,y); } 执行后输出结果是 A)10,012 B)102,12 C)102,10 D),下列程序的输出结果是 main( ) { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(&%d\n&, d*y); } A)3 B)3.2 C)0 D)3.07 8,已知 那么 }a表示 (A)变量名 (B)变量a的地址(C)变量a的值 (D)其他9,以下程序段中与语句k=a〉b?(b〉c?1:0):0;功能等价的是( ) A) if((a〉b) }}(b〉c) ) k=1; else k=0; B) if((a〉b) ||(b〉c) ) k=1;else k=0; C) if(a〈=b) else k=0; k=0; else if(b〈=c) k=1; D) if(a〉b) k=1;else if(b〉c) k=1;10,当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 ??A) 1 B) 2 C) 3 D) 6 ?? if(a〈b) ?? if(c〈d) x=1; ?? else ?? if(a〈c) ?? if(b〈d) x=2; ?? else x=3; ?? else x=6; ?11,以下错误的if语句是 。 A) if(x〉y) z=x; B) if(x==y) z=0; C) if(x!=y) printf(&%d&,x) else printf(&%d&,y); D) if(x〈y) { x++;y--;} 12,有以下程序 main() { int i=10; printf(&%d\n&,i++); } 执行后输出结果是 A. 9 B. 10 C. 11 D. 8 ? 13,若x,i,j和k都是int型变量,则计算表达式x=(i=14,j=16,k=j)后,x的值为 A. 14 B. 16 C. 30 D. 56 14,设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf(&%d&,s); 则 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 15,以下程序执行后输出结果是________。 for(i=0;i<3;i++) switch(i) { case 1: printf(&%d&,i); case 2: printf(&%d&,i); default: printf(&%d&,i); } A) 011122 B) 012 C) 012020 D) 120 16,若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段_________。 A)for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;} D)i=1;p=1;do{p*=i; i++; }while(i<=5); 17,以下叙述不正确的是 A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main函数 C. C程序的基本组成单位是函数 D. 在C程序中,注释说明只能位于一条语句的后面18以下叙述不正确的是_________。 A. 分号是C语言的必要组成部分 B. C程序的注释可以写在句的后面 C. 函数是C程序的基本单位 D. 主函数的名字不一定用main表示19,源程序要正确地运行,必须要有什么函数? A. printf函数 B. 自定义的函数 C. main函数 D. 不需要函数 20,不能把字符串:Hello!赋给数组b的语句是 A.char b[10]={’H’,’e’,’l’,’l’,’o’,’!’}; B.char b[10];b=&Hello!&; C.char b[10];strcpy(b,&Hello!&); D.char b[10]=&Hello!&; 21在C语言中,一维数组的定义方法为 类型说明符 数组名 A.[常量表达式] B.[整型常量] C.[整型变量] D.[整型常量]或[整型表达式] 22,下列选项中错误的说明语句是 A. char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B. char a[]={&toyou\0&}; C. char a[]=&toyou\0&; D. char a[]=′toyou\0′; 23字符串常量不能直接赋值给字符数组,但可以通过____strcpy_____函数来实现。 24,下面程序段运行的结果__-1_____。 int y=2,a=1; do{ a*= a++ ; } while (y--); printf(&%d\n&,y); 25, 分析如下程序,此程序运行时输出结果是:20 #include&stdio.h& void test(int *x,int *y); void main() { int a=10,b=20; test(&a,&b); printf(&%d&,a); } void test( int *x,int *y) { t=*x;*x=*y;*y=t; }26分析如下程序,此程序运行时输出结果是:28 #include&stdio.h& void main() { struct u{ char * }s; s.name=&Wangling&; s.age=28; s.income=1000; printf(&%d\n&,s.age); } 27,以下程序输出的结果是( 0 ) #include &stdio.h& void main( ) { int a=5,b=4,c=3,d; d=(a&b&c); printf(&%d\n&,d); } 28,考生注意:先将源程序文件715.c复制到D盘中操作,操作完成后,将此文件复制回来(覆 盖)! 要求:补充程序使得程序运行时完成以下功能: 计算2个数的立方差(结果=第一个数的立方减去第二个数的立方) 要求: 1)2个数由键盘输入 2)通过函数调用实现(计算方法在子函数中,通过主函数调用实现) 3)将结果显示出来 29,考生注意:先将源程序文件113.c复制到D盘中操作,操作完成后,将此文件复制回来(覆 盖)! 要求:补充程序使得程序运行时完成以下功能: ******************** one dream one world! ******************** 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 30考生注意: 先将源程序文件208.c复制到D盘中操作, 操作完成后, 将此文件复制回来 (覆盖) ! 要求:补充程序使得程序运行时完成以下功能: 计算公式: [ x x&1 y=[ 2*x-1 1&=x&=10 [ 3*x-11 x&10 要求: 1)从键盘输入x的值,根据x的值求y的值 2)输出y的值 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 31,考生注意:先将源程序文件501.c复制到D盘中操作,操作完成后,将此文件复制回来(覆 盖)! 要求:补充程序使得程序运行时完成以下功能: 计算公式: s=1+3+...+(2n-1) 要求: 1)n的值由键盘输入; 2)将s的值显示出来。试卷 2 1,有以下程序 #include &stdio.h& char fun(char x , char y) { if(x<y) } void main( ) { int a='9',b='8',c='7'; printf(&%c\n&,fun(fun(a,b),fun(b,c))); } 程序的执行结果是 A)函数调用出错 B)8 C)9 D)7 2,请读程序: #include &stdio.h& void f(int b[],int n) {int i,r; r=1; for(i=0;i<=n;i)r=r*b[i];
} void main() {int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf(“%d、n”,x); } 上面程序输出结果是 A)720 B)120 C)24 D)6 3,以下程序有语法错误,有关错误原因的正确说法是 #include &stdio.h& void main() { int G=5,k; void prt_char(); ... k=prt_char(G); ... } A)语句 void prt_char();有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母 C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 4,以下叙述中,不正确的是( A、 x*=2.5 B、x%=2.5 5,以下叙述中,不正确的是( A、 x*=2.5 B、x%=2.5 ) C、x+=2.5 ) C、x+=2.5D、x-=2.5D、x-=2.56,以下程序的输出结果是 ?? A) 17,021,0x11 B) 17,17,17 ?? B) 17,0x11,021 D) 17,21,11 ?? main( ) ?? { int k=17; ?? printf(&%d,%o,%x \n&,k,k,k); ?? } 7,有以下程序 main() { char a,b,c,*d; a='\'; b='\xbc'; c='\0xab'; d=&\0127&; printf(&%c%c%c%c\n&,a,b,c,*d); } 编译时出现错误,以下叙述中正确的是 A) 程序中只有a='\';语句不正确 B) b='\xbc';语句不正确 C) d=&\0127&;语句不正确 D) a='\';和 c='\0xab';语句都不正确 8,以下程序的输出结果是 main() { char c='z'; printf(&%c&,c-25); } A) a B) Z C) z-25 D) y 9,以下程序的输出结果是 main() { char c='z'; printf(&%c&,c-25); } A) a B) Z C) z-25 D) y 10,当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 ??A) 1 B) 2 C) 3 D) 6 ?? if(a〈b) ?? if(c〈d) x=1; ?? else ?? if(a〈c) ?? if(b〈d) x=2; ?? else x=3; ?? else x=6; ?? 11,下列程序段运行后x的值是( ) #include &stdio.h& void main() { int a=0,b=0,c=0,x=35; if(!a)x--; else if(b); if(c)x=3; else x=4; printf(&%d\n&,x); } A)34 C)35 12,有以下程序 main() { int i=10; printf(&%d\n&,++i); }B)4 D)3 13,执行后输出结果是 A. 9 B. 10 C. 11 D. 8 设 int x=1, y=1; 表达式(!x||y--)的值是 A. 0 B. 1 C. 2 D. -1 14,有如下程序 main() {float x=2.0,y; if(0.0&x)y=0.0; else if(10.0&x)y=1.0/x; else y=1.0; printf(&%f\n&,y);} 该程序的输出结果是 A. 0.000000 B. 0.250000 C. 0.500000 D. 1.,假定a和b为int型变量,则执行以下语句后b的值为_______。 a=1,b=10; do{ b-=a; a++; }while(b--<0); A) 9 B) -2 C) -1 D) 8 16,以下程序中,while循环的循环次数是 #include &stdio.h& void main( ) { int i=0; while(i<10) { if(i==5) i++; } ...... } A) 1 B) 10 C) 6 D) 死循环,不能确定次数 17,一个C程序中必须包括 A.scanf函数 B.main函数 18以下叙述中正确的是 A 构成C程序的基本单位是函数C.变量D.#include 《math.h》 B C D可以在一个函数中定义另一个函数 main()函数必须放在其他函数之前 其他函数必须放在main函数之前19,一个C语言的程序总是从()开始的。 A.主过程 B.主函数 C.子程序 D.主程序 20,以下定义语句中,错误的是 A.int a[]={1,2}; B.char *a[3]; C.char s[10]=”test”; D.int n=5,a[n]; 21,判断字符串s1是否大于字符串s2,应当使用_______。 A)if(s1>s2) B)if(strcmp(s1,s2)) C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0) 22,下面判断正确的是 A. char *a=&china&;等价于 char *a;*a=&china&; B. char str[5]={&china&};等价于char str[]={&china&}; C. char *s=&china&;等价于 char *s;s=&china&; D. char c[4]=&abc&,d[4]=&abc&;等价于char c[4]=d[4]=&abc&; 23,下面程序运行结果是( #include &stdio.h& void main ( ) {int a[5],i,m; for(i=0;i<5;i++) scanf(&%d&,&a[i]); m=a[0]; for(i=1;i<5;i++) if(m<a[i]) m=a[i]; printf(&%d&,m); } 输入数据为:6 3 5 1 7(回车) )24,设有如下程序段: int i=0, sum=1; do { sum+=i++;} while(i<6); printf(&%d\n&, sum); 上述程序段的输出结果是________。 25,分析以下程序,写出此程序的运行结果: #include &stdio.h& int x,y; int s( ) { x=3; y=4; z=x+y; return(z); } void main( ) { x=1; y=2; n=s( ); printf(&n=%d&,n+x+y); } 26,分析如下程序,此程序运行时输出结果是: #include&stdio.h& typedef struct { char *c; }UN; void main() { static UN x={19,83.5,&zhang&}; UN * px=&x; printf(&%s&,px-&c); } 27,如果想输出字符“%”,则应该在“格式控制”字符串中用________表示。 28,用函数调用完成求一个数组{12,3,2,4,5,8,9,12,2,40}中的平均值 要求:通过函数调用实现(计算方法在子函数中,通过主函数调用实现) 29,在屏幕上显示以下内容: ****************** -----------------****************** 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 30. 要求:补充程序使得程序运行时完成以下功能: 计算公式: [ x+1 x&0 y=[ x*x+2 0&=x&=2 [ x*x*x+3 x&2 要求: 1)从键盘输入x的值,根据x的值求y的值 2)输出y的值 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 31,已知int a[10]={23,45,23,56,45,86,34,23,9,45},从键盘输入一个数,查找该数在数组中 出现的次数。 要求: 1)数组定义时初始化为给定数据; 2)从键盘输入一个待查找的数; 3)查找方法不限; 4)输出该数的出现次数 试卷 3 1,有以下程序 #include &stdio.h& int f(int a) { return a%2; } void main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s);i++) d+=s; printf(&%d\n&,d); }程序运行后的输出结果是 A)9 B)11 C)19 D)212,以下叙述中正确的是 ?? A)调用printf函数时,必须要有输出项 ?? B)使用putchar函数时,必须在之前包含头文件stdio.h ?? C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 ?? D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 3, 有以下程序 ??#include &stdio.h& ??int abc(int u,int v); ??void main () ??{ int a=24,b=16,c; ?? c=abc(a,b); ?? printf('%d\n&,c); ??} ??int abc(int u,int v) ??{ ?? while(v) ?? { w=u%v; u=v; v=w } ?? ??} ??输出结果是 ??A) 6 B) 7 C) 8 D) 94,设有int型变量a,b,c,a=9,b=4,则表达式c=a/b+1.25的值为( A、2 B、 3 C、3.5 D、 45, 不合法的字符常量是 . A) '\t' B) &A& C) 'a' D)'\x32' 6, 若有说明语句:,以下输入语句正确的是 。 A) scanf(&%f%f&,}a,}b); B) scanf(&%f%d&,}a,}b); C) scanf(&%d,%f&,}a,}b); D) scanf(&%6.2f%6.2f&,}a,}b);)7, 有以下程序 main() { char a,b,c,d; scanf(&%c,%c,%d,%d&,}a,}b,}c,}d); printf(&%c,%c,%c,%c\n&,a,b,c,d); } 若运行时从键盘上输入:6,5,65,66&回车&。则输出结果是() A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,68, 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以 下选项中正确的输入语句是______。 A) scanf(“%2d%2d%2d”,}i,}j,}k) B) scanf(&%d %d %d&,}i,}j,}k) C) scanf(&%d,%d,%d&,}i,}j,}k) D) scanf(&i=%d,j=%d,k=%d&,}i,}j,}k)9,若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) swich(a+b); B) switch(a*a+b*b) {case 1:y=a+b; {case 3: case 0:y=a-b; case 1:y=a+b; } case 3:y=b-a, } C)switch a D) switch(a-b) {case c1 :y=a-b; {default:y=a*b; case c2: x=a*d; case 3:case 4:x=a+b; default:x=a+b; case 10:case 11:y=a-b; } } 10, 有以下程序 #include &stdio.h& void main() { int a=5,b=4,c=3,d=2; if(a〉b〉c) printf(&%d\n&,d); else if((c-1&=d)==1) printf(&%d\n&,d+1); else printf(&%d\n&,d+2) } 执行后输出结果是( ) A) 2 C) 4B) 3 D) 编译时有错,无结果11, 下面程序运行结果为 。 main( ) { char c=′a′; if(′a′〈c〈=′z′)printf(&LOW&); else printf(&UP&); } A) LOW B) UP 不能通过 12,以下程序的输出结果是___。 #include &stdio.h& void main ( ) { int a=1; a+=(a=8); printf(&%d\n&,a;) } A. 8 B. 9 C. 16 D. 10C) LOWUPD) 语句错误,编译 13,设int x=1,y=1;表达式(!x||y)的值是____ A. 0 B. 1 C. 2 D. -1 14, 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。 for(i=0, j=10; j&=i; i++, j--) k=i+j; A. 10 B. 20 C. 8 D. 015,语句while(!E);中的表达式!E等价于________。 A)E==0 B)E!=1 C)E!=0 D)E==116, 有以下程序 int i,n=0; for(i=2;i<5;i++) { do { if(i%3) n++; } while(!i); n++; } 以上程序段执行后n的值是_______ A)n=5 B)n=2 C)n=3 D) n=4 17, 以下叙述中正确的是 A 构成C程序的基本单位是函数 B 可以在一个函数中定义另一个函数 C main()函数必须放在其他函数之前 D 其他函数必须放在main函数之前18, 所有C函数的结构都包括的三部分是 A. B. C. D.语句、花括号和函数体 函数名、语句和函数体 函数名、形式参数和函数体 形式参数、语句和函数体19 以下叙述中正确的是 A. 构成C程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其他函数之前 D. 所有被调用的函数一定要在调用之前进行定义 20, 以下能对一维数组a进行正确初始化的语句是__________ 。 A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[ ] = {0} ; D)int a[10]={10*1} ;21,以下程序的运行结果是_________。 int num=0; while (num<=2) {num++; printf(&%d\\n&,num); } A)1 B)1 2 C)1 2 3 D)1 2 3 4 22, 下面的程序中 ( ) 有错误(每行程序前面的数字是行号)。 1 #include 2 main() 3 { 4 float a[3]={0,0}; 5 6 for(i=0;i〈3;i + + ) scanf(&%d&,&a[i]); 7 for(i=1;i〈3;i + + ) a[0]=a[0]+a[i]; 8 printf(&%f\n&,a[0]); 9 } A.没有 B.第4行 C.第6行 D.第8行23,下面程序以每行3个数据的形式输出a数组,请填空。 #define N 9 main() {int a[N]={1,2,3,4,5,6,7,8,9},i; for(i=0;i<N;i++) {if(_____________) printf(&\n&); printf(&%3d&,a[i]); } } 24,下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0, 请为程序填空。 #include &stdio.h& void main ( ) { int i, x, y=1; scanf(&%d&, &x); for(i=2; i<=x/2; i++) if ( ________) { y=0; } printf(&%d\n&,y); } 25,分析如下程序,若此程序运行输出结果是: #include &stdio.h& void fun(int *x) { printf(&%d\n&,*x+10); } void main() { int a=25; fun(&a); } 26,分析如下程序,此程序运行时输出结果是: #include&stdio.h& typedef struct { char *c; }UN; void main() { static UN x={19,83.5,&zhang&}; UN * px=&x; printf(&%s&,px-&c); }27, ”%-ms”表示如果串长________m,在m列范围内,字符串向左靠,右补空格。 28,考生注意:先将源程序文件703.c复制到D盘中操作,操作完成后,将此文件复制回来 (覆盖)! 要求:补充程序使得程序运行时完成以下功能:用函数调用完成求一个数组{12,3,2,4,5,8,9,12,2,40}中的最小元素值 要求:通过函数调用实现(计算方法在子函数中,通过主函数调用实现)29要求:补充程序使得程序运行时完成以下功能: ** ****** ** 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 30输入一个整数,判断是否是2和3的公倍数,若是则输出:2&3yes,否则再判断是否是5的 倍数 ,若是7的倍数输出:7yes,若都不是输出:no 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 31,要求:补充程序使得程序运行时完成以下功能:用选择法对10个整数按由大到小顺序排列。 要求: 1)从键盘读入10个整数到数组; 2)用选择法进行排序; 3)显示排序后的数组。试卷 4 1,有如下程序 #include &stdio.h& ??int runc(int a,int b) ??{ return(a+b);} ??void main() ??{ int x=2,y=5,z=8,r; ??r=func(func(x,y),z); ??printf(“%\d\n”,r); ??} ??该程序的输出的结果是 ??A) 12 B) 13 C) 14D) 152, 有如下函数调用语句 ??func(rec1,rec2+rec3,(rec4,rec5)); ??该函数调用语句中,含有的实参个数是 ??A) 3 B) 4 C) 5 D) 有语法错3,在一个C源程序文件中若要定义一个只允许本源文件中所有函数使用的全局变量, 则该变量 需要使用的存储类别是( )。 A. register B.static C. auto D.extern4,下面哪个是合法的标识符。 A)3th B)_2fC)$25D)for5, 设int型变量a,b,c且初值分别1,2,3,则表达式c&b!=a的值为( A、 -1 B、0 C、T D、F 6, 若有说明语句:,以下输入语句正确的是 A) scanf(&%f%f&,}a,}b); B) scanf(&%f%d&,}a,}b); C) scanf(&%d,%f&,}a,}b); D) scanf(&%6.2f%6.2f&,}a,}b);)。7, 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是______。A) printf(&x=%d\n&,x); B) printf(&x=%ld\n&,x); C) printf(&x=%8dL\n&,x); D) printf(&x=%LD\n&,x);8, 若有定义:int x,y;char a,b,c;并有以下输入数据(此处&CR& 代表换行符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 A) scanf(&x=%d y+%d&,}x,}y);a=getchar();b=getchar();c=getchar(); B) scanf(&%d %d&,}x,}y);a=getchar();b=getchar();c=getchar(); C) scanf(&%d%d%c%c%c&,}x,}y,}a,}b,}c); D) scanf(&%d%d%c%c%c%c%c%c&,}x,}y,}a,}a,}b,}b,}c,}c); 9, 有以下程序 #include &stdio.h& void main() { int i=1,j=2,k=3; if(i++==1}}(++j==3||k++==3)) printf(&%d %d %d\n&,i,j,k); } 程序运行后的输出结果是( ) A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 310,若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) swich(a+b); B) switch(a*a+b*b) {case 1:y=a+b; {case 3: case 0:y=a-b; case 1:y=a+b; } case 3:y=b-a, } C)switch a D) switch(a-b) {case c1 :y=a-b; {default:y=a*b; case c2: x=a*d; case 3:case 4:x=a+b; default:x=a+b; case 10:case 11:y=a-b; } }11,下列程序段运行后x的值是( ) #include &stdio.h& void main() { int a=0,b=0,c=0,x=35; if(!a)x--; else if(b); if(c)x=3; else x=4; printf(&%d\n&,x); } A)34 C)3512, 已知int k=10,m=3,n;则下列语句输出结果是 printf(&%d\n&,n=(k%m,k/m)); A. 2B)4 D)3 B. 3 C. 4 D. 513,设 int x=1, y=1; 表达式(!x||y--)的值是 A. 0 B. 1 C. 2 D. -114, 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个 零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数, 请选择填空。 #include main() { for(i=100;200&i;i++) if((i-2)%4==0) if(!((i-3)%7)) if(_______) printf(&%d&,i); } A. i%9=5 B. i%9!=5 C. (i-5)%9!=0 D. (i-5)%9==0 15, 以下说法正确的是__________。 A) 不能使用 do-while 语句构成的循环。 B) do-while 语句构成的循环必须用 break 语句才能退出 。 C) do-while 语句构成的循环,当 while 语句中的表达式值为非零时结束循环。 D) do-while 语句构成的循环,当 while 语句中的表达式值为零时结束循环。 16, 下面程序的输出结果是_______。 #include &stdio.h& void main( ) { int n=9; while(n>6) printf(&%d&,n--); } A)987 B)876 C)8765 D)987617, 下列是用户自定义标识符的是 A. B. C. D._w1 3_xy int LINE-318, 关于C语言的主函数描述正确的是 A. C程序可以有多个main函数 B. C程序必有一个而且只能有一个main函数 C. C程序可以没有main函数 D. C程序的执行不一定在main函数开始执行 19, 下面四个选项中,均是不合法的用户标识符的选项是 A. A P_0 do B. float la0 _A C. b-a goto int D. _123 temp int 20, 函数调用:strcat(strcpy(str1,str2),str3)的功能是 A. 将串str1复制到串str2中后再连接到串str3之后 B. 将串str1连接到串str2之后再复制到串str3之后 C. 将串str2复制到串str1中后再将串str3连接到串str1之后 D. 将串str2连接到串str1之后再将串str1复制到串str3中 21, 以下能对一维数组a进行正确初始化的语句是__________ 。 A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[ ] = {0} ; D)int a[10]={10*1} ;22,合法的数组定义是 A.int a[]=&string&; B.int a[5]={0,1,2,3,4,5}; C.vhst s=&string&; D.char a[]={0,1,2,3,4,5};23,字符串常量不能直接赋值给字符数组,但可以通过_________函数来实现。 24,下面程序运行的结果________。 #include &stdio.h& void main ( ) { int k=1,n=263 ; do { k*= n%10 ; n/=10 ; } while (n) ; printf(&%d&,k); } 25,分析以下程序,写出此程序的运行结果: #include &stdio.h& int x,y; int s( ) { x=3; y=4; z=x+y; return(z); } void main( ) { x=1; y=2; n=s( ); printf(&n=%d&,n+x+y); } 26,分析如下程序,此程序运行时输出结果是: #include&stdio.h& void main() { struct u{ char * }s; s.name=&Wangling&; s.age=28; s.income=1000; printf(&%d\n&,s.age); }27, 以下程序的输出结果是 #include 〈stdio.h〉 void main() { char c1; c1='A'; printf(&%d&,++c1); }。28,考生注意:先将源程序文件715.c复制到D盘中操作,操作完成后,将此文件复制回来 (覆盖)! 要求:补充程序使得程序运行时完成以下功能: 计算2个数的立方差(结果=第一个数的立方减去第二个数的立方) 要求: 1)2个数由键盘输入 2)通过函数调用实现(计算方法在子函数中,通过主函数调用实现) 3)将结果显示出来29,要求:补充程序使得程序运行时完成以下功能:编写一个程序,向屏幕输出以下信息: Hello,everyone! 好好学习,天天向上!!30,要求:补充程序使得程序运行时完成以下功能: 输入一个整数,判断它是否是水仙花数,(水仙花数的个位、十位、百位三个数的立方和 等于 这个数本身) 要求: 1)从键盘输入整数,先判断用户输入的是不是3位数; 2)若用户输入的是3位数再判断它是不是水仙花数。 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。 31,补充程序使得程序运行时完成以下功能: 计算公式:s=1/1+1/2+1/3+....+1/n 要求: 1)n的值由键盘输入并存入一个一维数组中 2)将s的值显示出来。 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。参考答案题号:1 题号:2 题号:3 题号:4 题号:5 题号:6 题号:7 题号:8 题号:9 题号:10 题号:11 题号:12 题号:13 题号:14 题号:15 题号:16 题号:17 题号:18 卷一 答案:A 试卷: 分值:2 得分:0 答案:B 分值:2 得分:0 答案:A 分值:2 得分:0 答案:C 分值:2 得分:0 答案:C 分值:2 得分:0 答案:C 分值:2 得分:0 答案:C 分值:2 得分:0 答案:B 分值:2 得分:0 答案:A 分值:2 得分:0 答案:B 分值:2 得分:0 答案:C 分值:2 得分:0 答案:B 分值:2 得分:0 答案:B 分值:2 得分:0 答案:B 分值:2 得分:0 答案:A 分值:2 得分:0 答案:B 分值:2 得分:0 答案:D 分值:2 得分:0 答案:D 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 题号:19 题号:20 题号:21 题号:22 题号:23 题号:24 题号:25 题号:26 题号:27分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0答案:C 试卷: 答案:B 试卷: 答案:A 试卷: 答案:D 试卷: 答案:strcpy 试卷: 答案:-1 试卷: 答案:20 试卷: 答案:28 试卷: 答案:0 试卷:题号:1 题号:2 题号:3 题号:4 题号:5 题号:6 题号:7 题号:8 题号:9 题号:10 题号:11 题号:12 题号:13 题号:14 题号:15 题号:16 题号:17 题号:18 题号:19 题号:20 题号:21 题号:22 题号:23 题号:24 题号:25 题号:26 题号:27卷2 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 分值:2 得分:0 卷3 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2答案:D 试卷: 答案:B 试卷: 答案:C 试卷: 答案:B 试卷: 答案:A 试卷: 答案:D 试卷: 答案:D 试卷: 答案:A 试卷: 答案:A 试卷: 答案:B 试卷: 答案:B 试卷: 答案:C 试卷: 答案:B 试卷: 答案:C 试卷: 答案:D 试卷: 答案:C 试卷: 答案:B 试卷: 答案:A 试卷: 答案:B 试卷: 答案:D 试卷: 答案:C 试卷: 答案:C 试卷: 答案:1 试卷: 答案:16 试卷: 答案:14 试卷: 答案:zhang 试卷:题号:1 题号:2 题号:3 题号:4 题号:5 题号:6 题号:7得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0答案:A 答案:B 答案:C 答案:B 答案:B 答案:C 答案:A试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 题号:8 题号:9 题号:10 题号:11 题号:12 题号:13 题号:14 题号:15 题号:16 题号:17 题号:18 题号:19 题号:20 题号:21 题号:22 题号:23 题号:24 题号:25 题号:26 题号:27分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 卷4 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0答案:C 试卷: 答案:D 试卷: 答案:D 试卷: 答案:A 试卷: 答案:C 试卷: 答案:B 试卷: 答案:A 试卷: 答案:A 试卷: 答案:D 试卷: 答案:A 试卷: 答案:C 试卷: 答案:A 试卷: 答案:A 试卷: 答案:C 试卷: 答案:C 试卷: 答案:i%3==0 试卷: 答案:x%i==0 试卷: 答案:35 试卷: 答案:zhang 试卷: 答案:小于 试卷:题号:1 题号:2 题号:3 题号:4 题号:5 题号:6 题号:7 题号:8 题号:9 题号:10 题号:11 题号:12 题号:13 题号:14 题号:15 题号:16 题号:17 题号:18 题号:19 题号:20 题号:21 题号:22 题号:23 题号:24 题号:25得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0答案:D 试卷: 答案:A 试卷: 答案:B 试卷: 答案:B 试卷: 答案:B 试卷: 答案:C 试卷: 答案:B 试卷: 答案:D 试卷: 答案:D 试卷: 答案:D 试卷: 答案:B 试卷: 答案:B 试卷: 答案:B 试卷: 答案:D 试卷: 答案:D 试卷: 答案:A 试卷: 答案:A 试卷: 答案:B 试卷: 答案:C 试卷: 答案:C 试卷: 答案:A 试卷: 答案:D 试卷: 答案:strcpy试卷: 答案:36 试卷: 答案:14 试卷: 题号:26 题号:27 题号:15 题号:16 题号:17 题号:18 题号:19 题号:20 题号:21 题号:22 题号:23 题号:24 题号:25 题号:26 题号:27分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2 分值:2得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0 得分:0答案:28 答案:66 答案:A 答案:B 答案:C 答案:B 答案:B 答案:A 答案:D 答案:B 答案:12 答案:25 答案:35 答案:28 答案:B试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷: 试卷:}

我要回帖

更多关于 连续正整数之和 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信