中国石油大学c语言.doc

上传人:风**** 文档编号:988328 上传时间:2024-03-20 格式:DOC 页数:88 大小:239.50KB
下载 相关 举报
中国石油大学c语言.doc_第1页
第1页 / 共88页
中国石油大学c语言.doc_第2页
第2页 / 共88页
中国石油大学c语言.doc_第3页
第3页 / 共88页
中国石油大学c语言.doc_第4页
第4页 / 共88页
中国石油大学c语言.doc_第5页
第5页 / 共88页
点击查看更多>>
资源描述

1、小明A+B 小明今年3岁了,现在他已经能够认识100以内的非负整数,并且能够进行100以内的非负整数的加法计算。对于大于等于100的整数,小明仅保留该数的最后两位进行计算。如果计算结果大于等于100,那么小明也仅保留计算结果的最后两位。 例如,对于小明来说: 1)1234和34是相等的。 2)35+80=15。 现给定非负整数A和B,你的任务是代表小明计算出A+B的值。 输入 一行,包含两个非负整数A和B(A和B均在int类型可表示的范围内)。 输出 输出小明A+B的结果。星期几输入今天是星期几的序号(星期天的序号为0),输出明天是星期几的英文单词。周日到周六的英文表示:Sun,Mon,Tue

2、,Wed,Thu,Fri,Sat输入一个整数(0-6)输出所表示的英文ASCIISince all we know the ASCII code, your job is simple: input numbers and output corresponding messages.InputThe first line contains one integer T (1=T=1000).The input will contain T positive integers separated by whitespaces .The integers will be no less than 3

3、2.OutputOutput the corresponding message in just one line.Warning: no extra characters are allowed.HintCharacterASCII codeA65a97Whitespace32校庆纪念品六十载弦歌不辍,一甲子薪火相传。2013年10月,中国石油大学迎来了60周年华诞。校庆期间对每位荣归母校的校友都将提供一份完全立方体包装的纪念品,志愿者将其堆放在墙角,具体堆放形状如下图所示:因为纪念品堆得实在是太有规律了,你只要知道它的层数就可以计算所有纪念品的数量了。输入输入数据只有一个整数n,表示这堆纪

4、念品的层数(1=n N 0)。小武告诉滨滨每天可以吃一块或者两块巧克力。假设滨滨每天都吃巧克力,问滨滨共有多少种不同的吃完巧克力的方案。例如:如果N=1,则滨滨第1天就吃掉它,共有1种方案;如果N=2,则滨滨可以第1天吃1块,第2天吃1块;也可以第1天吃2块,共有2种方案;如果N=3,则滨滨第1天可以吃1块,剩2块;也可以第1天吃2块剩1块,共有2+1=3种方案;如果N=4,则滨滨可以第1天吃1块,剩3块;也可以第1天吃2块,剩2块,共有3+2=5种方案。输入一个正整数N。输出滨滨吃巧克力的方案数目【研究创新型】8.1 谁能出线(课内完成)背景:电视台举办“超级学生”才艺大赛,由于报名人数狂多

5、,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。输入: 按顺序给出一个小组10个人的最后得分(int)。输出: 能够出线的学生序号(09)。#include #include #define size 10 int main() int score size; int i; int max=0; for(i=0;i10;i+) scanf(%d,&scorei); if(maxscorei) max=scorei; for(i=0;i10;i+) if(max=scorei

6、) printf(%dn,i); return 0; 【设计型】8.2 挑选小白鼠描述实验室有一批小白鼠,为了评估他们的健康程度,我们为每一只小白鼠都设定了一个“健康指数”。现在我们需要进一步的评估这批小白鼠的健康均衡程度,因此我们需要从中找到健康指数差距最大的两只小白鼠的编号,以此来进一步的进行评估。关于输入第一行是一个整数n(2= n = 100),表示的是一共有n只小白鼠。 第二行是n个整数(互不相同),分别表示n只小白鼠的健康指数,同时根据输入顺序,从1开始为其编号1,2n。也就是说第一个整数是第一只小白鼠的健康指数,第二个整数是第二只小白鼠的健康指数,依次类推。关于输出输出健康指数差

7、距最大的两只小白鼠的编号。第一个数是健康指数较大的小白鼠的编号,第二个数是健康指数较小的小白鼠的编号。#include #include int main() int n; scanf(%d,&n); int health2n; int i,a,b,max,min; for(i=0;in;i+) scanf(%d,&health1i); max=health10; min=health10; for(i=0;in;i+) if(max=health1i) min=health1i; b=i+1; printf(%d %dn,a,b); return 0; 【设计型】8.3 统计素数的个数求出

8、2 到 m 之间 ( 含 m,m=1000) 所有素数并放在数组 a 中。输入:正整数m输出:从小到大的所有素数,及个数(素数输出的时候用%4d来控制)如:输入:10输出:2 3 5 7 4#include #include #define z a int main() int k,i,m,a,d; scanf(%d,&a); int primez; m=0; for(i=1;ia;i+) primei=i+1; for(i=1;ia;i+) d=1; for(k=2;k=primei&(d!=0);k+) d=primei%k; if(d=0&(primei!=0) if(k=primei)

9、 printf(%4d,primei); m=m+1; printf(n); printf(%dn,m); return 0; 【设计型】8.4 交换理发师傅描述王师傅的发廊距开张已经有10年之久了! 由于王师傅以及其他理发师傅洗剪吹技术娴熟, 发廊有了许多常客, 连毕业多年的学生也会不时回来学校, 到王师傅的发廊做洗剪吹. 常客们都有自己喜欢理发师, 然而随着运营规模的扩张, 理发师的分配时常会出现问题. 现在你的任务就是为顾客们交换理发师傅. 假设有0.n-1共n名顾客, 他们的理发师傅恰巧安排反了. 也就是说n-1的理发师傅安排给了0, n-2的理发师傅安排给了1.请帮助他们找到喜欢的理

10、发师傅吧! 输入第一行一个整型n(1=n=1000), 表示顾客的人数 第二行n个整型, 分别表示现在安排给每位顾客的理发师傅的编号输出以此输出为0.n-1位顾客正确安排理发师傅之后的, 师傅们的编号每个数字由空格隔开, 最后一个数字后无空格。#include #include #define size n int main() int i,n,a,b; scanf(%d,&n); int number2size; for(i=0;in;i+) scanf(%d,&number1i); a=number10; for(i=0;in-1;i+) b=number1n-1-i; printf(%d

11、 ,b); printf(%dn,a); 设计型】8.5 二维数组(课内完成)问题描述:程序定义了 4 4 的二维数组,请编写程序,给二维数组赋值,并使数组下半三角元素中的值乘以n 。例如:数组中的值为假设n为10,则输出结果如下:(输出的数按照4位宽度来输出,即%4d)#include #include int main() int number44,i,j,n; for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&numberij); scanf(%d,&n); for(i=0;i4;i+) for(j=0;j=i;j+) numberij=n*numberij

12、; for(i=0;i4;i+) for(j=0;j4;j+) printf(%4d,numberij); printf(n); return 0; 【设计型】8.6 在屏幕上显示杨辉三角形(课内完成)杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。其实,中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。中国古代数学史曾经有自己光辉灿烂的篇章,而贾宪三角的发现就是十分精彩的一页。杨辉三角有如下性质:1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。2、第n行的数字个数为n个。3、每个数字等于上一行的左右两个数字之和。编写程序,输入正数n, 将所有数

13、据存储到二维数组中,并在屏幕上显示对应的杨辉三角形(注意数据之间的空格)。例如:n=5 图形如下:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1#include #include #define N 100 #define M 100 int main() int n,i,j,numberNM; scanf(%d,&n); for(i=0;i=n;i+) for (j=0;j=i;j+) if(j=0|j=i) numberij=1; for(i=2;i=n;i+) for(j=1;ji;j+) numberij=numberi-1j-1+numberi-1j;

14、for(i=0;i=n;i+) for(j=0;j=i;j+) printf(%3d,numberij); printf(n); return 0; 【设计型】8.7 插入法排序如果一个数组中保存的元素是有序的(由小到大),向这个数组中插入一个数,使得插入后的数组元素依然保持有序。定义一个数组,长度为11,初始元素为10个,按照从小到大的方式输入,然后输入一个要插入的元素,使得插入后仍然有序#include #include int main() int i,number11,m,b=0; for(i=0;i10;i+) scanf(%d,&numberi); scanf(%d,&m); fo

15、r(i=0;i10;i+) if(number9=m) b=0; else if(numberi=m&m=numberi-1) b=i; break; for(i=9;i=b;i-) numberi+1=numberi; numberb=m; for(i=0;i11;i+) printf( %d,numberi); printf(n); return 0; 【设计型】8.8 求各位数字组成的最大数任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。输入: 自然数 n输出: 各位数字组成的最大数#include #include #define

16、N 100 int main() int n,i,a,m=0,j,temp,numberN; scanf(%d,&n); do a=n%10; numberm=a; n=n/10; m+; while(n!=0); for(i=0;im-1;i+) for(j=i+1;jm;j+) if(numberinumberj) temp=numberj; numberj=numberi; numberi=temp; for(i=0;im;i+) printf(%d,numberi); printf(n); 【设计型】8.9 排序与查找问题描述:上学期,化工13级1-3班同学的C语言考试成绩(人数最多不

17、超过90人)比较理想。现要求从键盘输入每位学生的成绩,编程将成绩按从高到低的顺序进行排序输出,并同时输入指定学生的学号和成绩。输入:有多行。从第一行开始,每行输入两个空格分隔的整数,分别表示每个学生的学号和成绩,当输入负值时,表示输入结束。最后一行输入需要查找的学生学号。输出:有两行。第一行是按由高到低排好序的学生成绩。第二行输出查找到的学生学号和成绩,若没有找到指定学生,则输出未找到信息。#include #define N 1000 int main() int aN , bN; int i,j,h,k,m,n,p,flag=0; scanf(%d %d,&a0,&b0); for(i=1

18、;ai-1=0&bi-1=0;i+) scanf(%d %d,&ai,&bi); scanf(%d,&n); for(j=0;ji;j+) k=j; for(h=j+1;hbk) k=h; if(k!=j) m=bk; bk=bj; bj=m; p=ak; ak=aj; aj=p; for(j=0;ji-2;j+) printf(%d ,bj); printf(%dn,bj); for(j=0;!flag&j=i;j+) if(aj=n) printf(%d %dn,aj,bj); flag=1; if(!flag) printf(not find!n); return 0; 【设计型】8.1

19、0 导弹速度描述我叫王大锤,是一个刚找到工作的程序员。万万没想到,刚开始工作的第一天,就发生了大事。某市高校P大与T大由于长期矛盾的积累,终于在这天爆发了全面战争。 T大的导弹是突破了次元之壁的导弹,它会先在n维空间中运动,抵达目标后出现在P大相应的位置。P大及时的发明了在n维空间中阻截的方法,并找到了导弹的方向,现在我需要做的是计算出导弹的速度大小。 P大找到了我所在的公司,而这个任务竟然落到了刚加入公司的我身上。现在公司的谍报人员已经获知,T大的导弹的速度大小是由先发出的两颗 信号弹的速度矢量决定的,他们还顺便帮我捕获到了最终发射出的导弹的速度大小与信号弹速度矢量之间的关系为v(-)=v1

20、v2(v1,v2分别为2颗信 号弹与v(-)为导弹的速度大小,为矢量内积)。 我的同事们会告知我信号弹的速度信息,展现我高深莫测的专业技术的时刻到了!计算出导弹的速度吧! 矢量内积公式: (a1,.,an)(b1,.,bn)= a1b1 + . + anbn关于输入第一行一个整数n(1=n=1000),表示导弹所在空间的维度 第二行n个整数,表示第一颗信号弹的速度矢量 第三行n个整数,表示第二颗信号弹的速度矢量关于输出一个整数,表示导弹的速度大小,结果保证在int表示范围之内(结果可为负,此时表示导弹在远离P大)#include #include #define N 1000 int main

21、() int n,i,s=0,pN,tN,aN; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&pi); for(i=0;in;i+) scanf(%d,&ti); for(i=0;in;i+) ai=pi*ti; s=s+ai; printf(%dn,s); return 0; 【设计型】8.11 求二维数组周边元素之和成绩100开启时间2014年03月10日 星期一 00:00折扣0.8折扣时间2014年04月2日 星期三 23:00允许迟交否关闭时间2014年04月6日 星期日 23:00编写一个程序,求出45的二维数组周边元素之和。输入:二维数组元素输出

22、:周边元素之和如:输入:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0输出:61#include #include int main() int n,i,j,s=0,m=0,a45; for(i=0;i4;i+) for(j=0;j5;j+) scanf(%d,&aij); s=s+aij; for(i=1;i3;i+) for(j=1;j4;j+) m=m+aij; printf(%dn,s-m); return 0; 【设计型】8.12 存储并输出一个矩阵编程,输入 n ,存储并输出如下例( n=5 )所示的 图形。1 2 3 4 51 1 2 3 41 1 1

23、2 31 1 1 1 21 1 1 1 1#include #include #define N 100 int main() int n,i,j,aNN; scanf(%d,&n); for(i=0;in;i+) for(j=0;j=i;j+) aij=1; for(i=0;in;i+) for(j=i+1;jn;j+) aij=aij-1+1; for(i=0;in;i+) for(j=0;jn;j+) printf( %d,aij); printf(n); return 0; 【设计型】8.13 给数组中的元素按顺序编号对数组 a10 中的十个整数从小到大进行连续编号,输出各个元素的编号

24、。要求不能改变数组 a 中元素的顺序,且相同的整数要具有相同的编号。例如数组是: A=(5,3,4,7,3,5,6,8,9,10) 则输出为: (4,1,3,7,1,4,6,8,9,10)#include int main() int a11,c11; int i,j,t,m; for(i=1;i11;i+) scanf(%d,&ai); ci=ai; for(j=1;j=10;j+) for(i=1;i=ai+1) t=ai; ai=ai+1; ai+1=t; for(m=1;m11;m+) for(i=1;i11;i+) if(cm=ai) printf(%3d,i); break; pr

25、intf(n); return 0; 【设计型】8.14 矩阵加法方阵阶数为n(n100),例如当n=3时,矩阵int a33,矩阵int b33。 矩阵的数据由用户输入。输出新的矩阵c=a+b。 输出格式: c00 c01 c02 c10 c11 c12 c20 c21 c22 每两个数字之间有1个空格 关于输入方阵阶数n矩阵a:a00 a01 a02a10 a11 a12a20 a21 a22矩阵b:b00 b01 b02b10 b11 b12b20 b21 b22关于输出矩阵c:c00 c01 c02c10 c11 c12c20 c21 c22 注意:输出时每行最后不能有空格01.#in

26、clude 02.#include 03.#define N 100 04.int main() 05. 06. int n,i,j,aNN,bNN,cNN; 07. scanf(%d,&n); 08. for(i=0;in;i+) 09. 10. for(j=0;jn;j+) 11. 12. scanf(%d,&aij); 13. 14. 15. for(i=0;in;i+) 16. 17. for(j=0;jn;j+) 18. 19. scanf(%d,&bij); 20. 21. 22. for(i=0;in;i+) 23. 24. for(j=0;jn;j+) 25. 26. cij=

27、aij+bij; 27. 28. 29. 30. 31. for(i=0;in;i+) 32. 33. for(j=0;j1;j+) 34. 35. printf(%d,cij); 36. 37. 38. for(j=1;jn;j+) 39. 40. printf(% d,cij); 41. 42. printf(n); 43. 44. 45. return 0; 46. 【设计型】8.15 求一系列整数中出现最多的数字给定一系列整数,对每个整数的每一位数字统计09各个数字的出现次数,求出现次数最多的数字。输入:有两行,第一行是整数n(1=n=100),表示有n个整数;第二行是n个整数值输出:

28、出现次数最多的数字d(如果d不唯一,要列出全部)及其出现的次数输入样例:11233输出样例:出现次数最多2次的数字是 3#include #include int main() int a100 ,i,j,x,max,n; int b10=0,0,0,0,0,0,0,0,0,0; scanf(%d,&n); x=0; for(i=0;in;i+) scanf(%d,&ai); for(i=0;in;i+) for(j=0;ai!=0;j+) x=ai%10; ai=ai/10; bx=bx+1; max=0; for(i=0;ibmax) max=i; printf(出现次数最多%d次的数字是

29、,bmax); for(i=0;i10;i+) if(bi=bmax) printf( %d,i); printf(n); return 0; 【探索型】8.16 装箱问题假设有n项物品,大小分别为s1,s2,.,sn,其中si是整数且满足:1=si=100。要把这些物品装入到容量为100的一批箱子(序号1n)中。装箱方法是:对每项物品si,依次扫描所有这些箱子,把si放入足以能够容下它的第一个箱子中(first-fit策略)。写一个程序来模拟这个装箱的过程。输入:有两行。第一行是整数n(n=1000),表示物品的个数;第二行是n个整数si(si=100),分别表示n个物品的大小输出:每个物品

30、所在的箱子序号,并输出所需的箱子数目输入样例:860 70 80 90 30 40 10 20输出样例:60 170 280 390 430 140 510 120 2所需的箱子数目为5#include #include int main() int a100,b100,n,i,j; scanf(%d,&n); for(i=0;in;i+); scanf(%d,&ai); for(i=0;in;i+) for(j=0;j=ai) bi=bi-ai; printf(%d %dn,ai,j+1); break; for(i=0;in+1;i+) if(bi=100) printf(所需的箱子数目为

31、%dn,i); break; return 0; 【设计型】9.1 数的合并(课内完成)成绩100开启时间2014年04月11日 星期五 08:00折扣0.8折扣时间2014年04月18日 星期五 18:00允许迟交否关闭时间2014年04月27日 星期日 23:00请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a的十位和个位依次存放在c数的十位和千位上,b的十位和个位依次存放在c数的个位和百位上。例如:当a=45,b=12,调用该函数后,c=5241。部分源程序如下,只需要完成Fun函数的编写即可。 前置代码/* PRESET CODE BE

32、GIN - NEVER TOUCH CODE BELOW */#include /* PRESET CODE END - NEVER TOUCH CODE ABOVE */后置代码/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */int main() int a,b,c; scanf(%d,%d,&a,&b); Fun(a,b,&c); printf(%dn,c); return 0;/* PRESET CODE END - NEVER TOUCH CODE ABOVE */#include void Fun(int a,int b,int *pc

33、) *pc=(a%10)*1000+(a/10)*10+(b/10)+(b%10)*100; 【设计型】9.2 生成新数(课内完成)给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。注意:本题只需提交Fun函数即可预设代码后置代码/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */int main( ) int n=-1; while(n99999999|n0) scanf(%d,&n); Fun

34、(&n); printf(%dn,n); return 0;/* PRESET CODE END - NEVER TOUCH CODE ABOVE */前置代码/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include /* PRESET CODE END - NEVER TOUCH CODE ABOVE */void Fun(int *pc) int a,b=0,c=1; do a=*pc%10; if(a%2!=0) b=b+a*c; c=c*10; *pc=*pc/10; while(*pc!=0); *pc=b; 【设计型】9.3 浮点数四舍五入请编一个函数Fun ,其功能是

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

当前位置:首页 > 建筑施工 > 建筑节能

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922