中国石油大学c语言.docx

上传人:b****2 文档编号:3150782 上传时间:2023-05-05 格式:DOCX 页数:110 大小:44.87KB
下载 相关 举报
中国石油大学c语言.docx_第1页
第1页 / 共110页
中国石油大学c语言.docx_第2页
第2页 / 共110页
中国石油大学c语言.docx_第3页
第3页 / 共110页
中国石油大学c语言.docx_第4页
第4页 / 共110页
中国石油大学c语言.docx_第5页
第5页 / 共110页
中国石油大学c语言.docx_第6页
第6页 / 共110页
中国石油大学c语言.docx_第7页
第7页 / 共110页
中国石油大学c语言.docx_第8页
第8页 / 共110页
中国石油大学c语言.docx_第9页
第9页 / 共110页
中国石油大学c语言.docx_第10页
第10页 / 共110页
中国石油大学c语言.docx_第11页
第11页 / 共110页
中国石油大学c语言.docx_第12页
第12页 / 共110页
中国石油大学c语言.docx_第13页
第13页 / 共110页
中国石油大学c语言.docx_第14页
第14页 / 共110页
中国石油大学c语言.docx_第15页
第15页 / 共110页
中国石油大学c语言.docx_第16页
第16页 / 共110页
中国石油大学c语言.docx_第17页
第17页 / 共110页
中国石油大学c语言.docx_第18页
第18页 / 共110页
中国石油大学c语言.docx_第19页
第19页 / 共110页
中国石油大学c语言.docx_第20页
第20页 / 共110页
亲,该文档总共110页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

中国石油大学c语言.docx

《中国石油大学c语言.docx》由会员分享,可在线阅读,更多相关《中国石油大学c语言.docx(110页珍藏版)》请在冰点文库上搜索。

中国石油大学c语言.docx

中国石油大学c语言

小明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,Wed,Thu,Fri,Sat

输入

一个整数(0-6)

输出

所表示的英文

ASCII

SinceallweknowtheASCIIcode,yourjobissimple:

inputnumbersandoutputcorrespondingmessages.

Input

ThefirstlinecontainsoneintegerT(1<=T<=1000).

TheinputwillcontainTpositiveintegersseparatedbywhitespaces.

Theintegerswillbenolessthan32.

Output

Outputthecorrespondingmessageinjustoneline.

Warning:

noextracharactersareallowed.

Hint

Character

ASCIIcode

A

65

a

97

Whitespace

32

校庆纪念品

六十载弦歌不辍,一甲子薪火相传。

2013年10月,中国石油大学迎来了60周年华诞。

校庆期间对每位荣归母校的校友都将提供一份完全立方体包装的纪念品,志愿者将其堆放在墙角,具体堆放形状如下图所示:

因为纪念品堆得实在是太有规律了,你只要知道它的层数就可以计算所有纪念品的数量了。

输入

输入数据只有一个整数n,表示这堆纪念品的层数(1<=n<=100)。

输出

一个整数,表示这堆纪念品的总数量。

电梯

正在建设的工科楼E座将会成为校内最高建筑,假设该建筑内只有一个电梯。

现在有一个由N个正整数组成的请求列表,每个数字表明了电梯将依次停留的楼层顺序。

电梯每上行1层将花费6秒,下行1层将花费4秒。

电梯在每一层停留一次,将花费5秒。

对于一个给定的请求列表,请计算出按照顺序途径每一层楼所花费的总时间。

电梯一开始停留在第0层,并且在完成请求队列之后不需要返回地面(第0层)。

输入

输入共2行。

第一行为一个正整数N,表示请求队列中需要经过的楼层数目;第二行为N个正整数,表示电梯依次经过的楼层数,每个数都少于30。

输出

花费的总时间

吃巧克力

2013年12月8日,ACM俱乐部的小武代表学校参加了在吉林大学举办的第38届ACM国际大学生程序设计竞赛现场赛,返校时带了一盒好吃又精美的巧克力给滨滨(盒内共有N块巧克力,20>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谁能出线(课内完成)

背景:

电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。

按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。

输入:

按顺序给出一个小组10个人的最后得分(int)。

输出:

能够出线的学生序号(0~9)。

#include

#include

#definesize10

intmain()

{

intscore[size];

inti;

intmax=0;

for(i=0;i<10;i++)

{

scanf("%d",&score[i]);

if(max

{

max=score[i];

}

}

for(i=0;i<10;i++)

{

if(max==score[i])

{

printf("%d\n",i);

}

}

return0;

}

 

【设计型】8.2挑选小白鼠

描述

实验室有一批小白鼠,为了评估他们的健康程度,我们为每一只小白鼠都设定了一个“健康指数”。

现在我们需要进一步的评估这批小白鼠的健康均衡程度,因此我们需要从中找到健康指数差距最大的两只小白鼠的编号,以此来进一步的进行评估。

关于输入

第一行是一个整数n(2<=n<=100),表示的是一共有n只小白鼠。

第二行是n个整数(互不相同),分别表示n只小白鼠的健康指数,同时根据输入顺序,从1开始为其编号1,2…n。

也就是说第一个整数是第一只小白鼠的健康指数,第二个整数是第二只小白鼠的健康指数,依次类推。

关于输出

输出健康指数差距最大的两只小白鼠的编号。

第一个数是健康指数较大的小白鼠的编号,第二个数是健康指数较小的小白鼠的编号。

#include

#include

intmain()

{

intn;

scanf("%d",&n);

inthealth[2][n];

inti,a,b,max,min;

for(i=0;i

{

scanf("%d",&health[1][i]);

}

max=health[1][0];

min=health[1][0];

for(i=0;i

{

if(max<=health[1][i])

{

max=health[1][i];

a=i+1;

}

if(min>=health[1][i])

{

min=health[1][i];

b=i+1;

}

}

printf("%d%d\n",a,b);

return0;

}

【设计型】8.3统计素数的个数

求出2到m之间(含m,m<=1000)所有素数并放在数组a中。

输入:

正整数m

输出:

从小到大的所有素数,及个数(素数输出的时候用%4d来控制)

如:

输入:

10

输出:

23574

#include

#include

#defineza

intmain()

{

intk,i,m,a,d;

scanf("%d",&a);

intprime[z];

m=0;

for(i=1;i

{

prime[i]=i+1;

}

for(i=1;i

{

d=1;

for(k=2;k<=prime[i]&&(d!

=0);k++)

{

d=prime[i]%k;

if(d==0&&(prime[i]!

=0))

{

if(k==prime[i])

{

printf("%4d",prime[i]);

m=m+1;

}

}

}

}

printf("\n");

printf("%d\n",m);

return0;

}

 

【设计型】8.4交换理发师傅

描述

王师傅的发廊距开张已经有10年之久了!

由于王师傅以及其他理发师傅洗剪吹技术娴熟,发廊有了许多常客,连毕业多年的学生也会不时回来学校,到王师傅的发廊做洗剪吹.常客们都有自己喜欢理发师,然而随着运营规模的扩张,理发师的分配时常会出现问题.现在你的任务就是为顾客们交换理发师傅.

假设有0...n-1共n名顾客,他们的理发师傅恰巧安排反了.也就是说n-1的理发师傅安排给了0,n-2的理发师傅安排给了1...请帮助他们找到喜欢的理发师傅吧!

输入

第一行一个整型n(1<=n<=1000),表示顾客的人数

第二行n个整型,分别表示现在安排给每位顾客的理发师傅的编号

输出

以此输出为0...n-1位顾客正确安排理发师傅之后的,师傅们的编号每个数字由空格隔开,最后一个数字后无空格。

#include

#include

#definesizen

intmain()

{

inti,n,a,b;

scanf("%d",&n);

intnumber[2][size];

for(i=0;i

{

scanf("%d",&number[1][i]);

}

a=number[1][0];

for(i=0;i

{

b=number[1][n-1-i];

printf("%d",b);

}

printf("%d\n",a);

}

设计型】8.5二维数组(课内完成)

问题描述:

程序定义了4×4的二维数组,请编写程序,给二维数组赋值,并使数组下半三角元素中的值乘以n。

例如:

数组中的值为

假设n为10,则输出结果如下:

(输出的数按照4位宽度来输出,即%4d)

#include

#include

intmain()

{

intnumber[4][4],i,j,n;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

{

scanf("%d",&number[i][j]);

}

}

scanf("%d",&n);

for(i=0;i<4;i++)

{

for(j=0;j<=i;j++)

{

number[i][j]=n*number[i][j];

}

}

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

{

printf("%4d",number[i][j]);

}

printf("\n");

}

return0;

}

【设计型】8.6在屏幕上显示杨辉三角形(课内完成)

杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。

  其实,中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。

中国古代数学史曾经有自己光辉灿烂的篇章,而贾宪三角的发现就是十分精彩的一页。

杨辉三角有如下性质:

1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。

2、第n行的数字个数为n个。

3、每个数字等于上一行的左右两个数字之和。

编写程序,输入正数n,将所有数据存储到二维数组中,并在屏幕上显示对应的杨辉三角形(注意数据之间的空格)。

例如:

n=5图形如下:

1

11

121

1331

14641

15101051

 

#include

#include

#defineN100

#defineM100

intmain()

{

intn,i,j,number[N][M];

scanf("%d",&n);

for(i=0;i<=n;i++)

{

for(j=0;j<=i;j++)

{

if(j==0||j==i)

{

number[i][j]=1;

}

}

}

for(i=2;i<=n;i++)

{

for(j=1;j

{

number[i][j]=number[i-1][j-1]+number[i-1][j];

}

}

for(i=0;i<=n;i++)

{

for(j=0;j<=i;j++)

{

printf("%3d",number[i][j]);

}

printf("\n");

}

return0;

}

 

【设计型】8.7插入法排序

如果一个数组中保存的元素是有序的(由小到大),向这个数组中插入一个数,使得插入后的数组元素依然保持有序。

定义一个数组,长度为11,初始元素为10个,按照从小到大的方式输入,然后输入一个要插入的元素,使得插入后仍然有序

#include

#include

intmain()

{

inti,number[11],m,b=0;

for(i=0;i<10;i++)

{

scanf("%d",&number[i]);

}

scanf("%d",&m);

for(i=0;i<10;i++)

{

if(number[9]<=m)

{

b=10;

}

if(number[0]>=m)

{

b=0;

}

elseif(number[i]>=m&&m>=number[i-1])

{

b=i;

break;

}

}

for(i=9;i>=b;i--)

{

number[i+1]=number[i];

}

number[b]=m;

for(i=0;i<11;i++)

{

printf("%d",number[i]);

}

printf("\n");

return0;

}

 

【设计型】8.8求各位数字组成的最大数

任意输入一个自然数,输出该自然数的各位数字组成的最大数。

例如,输入1593,则输出为9531。

输入:

自然数n

输出:

各位数字组成的最大数

#include

#include

#defineN100

intmain()

{

intn,i,a,m=0,j,temp,number[N];

scanf("%d",&n);

do

{

a=n%10;

number[m]=a;

n=n/10;

m++;

}while(n!

=0);

for(i=0;i

{

for(j=i+1;j

{

if(number[i]

{

temp=number[j];

number[j]=number[i];

number[i]=temp;

}

}

}

for(i=0;i

{

printf("%d",number[i]);

}

printf("\n");

}

 

【设计型】8.9排序与查找

问题描述:

上学期,化工13级1-3班同学的C语言考试成绩(人数最多不超过90人)比较理想。

现要求从键盘输入每位学生的成绩,编程将成绩按从高到低的顺序进行排序输出,并同时输入指定学生的学号和成绩。

输入:

有多行。

从第一行开始,每行输入两个空格分隔的整数,分别表示每个学生的学号和成绩,当输入负值时,表示输入结束。

最后一行输入需要查找的学生学号。

输出:

有两行。

第一行是按由高到低排好序的学生成绩。

第二行输出查找到的学生学号和成绩,若没有找到指定学生,则输出未找到信息。

#include

#defineN1000

intmain()

{

inta[N],b[N];

inti,j,h,k,m,n,p,flag=0;

scanf("%d%d",&a[0],&b[0]);

for(i=1;a[i-1]>=0&&b[i-1]>=0;i++)

{

scanf("%d%d",&a[i],&b[i]);

}

scanf("%d",&n);

for(j=0;j

{

k=j;

for(h=j+1;h<=i;h++)

{

if(b[h]>b[k])

k=h;

}

if(k!

=j)

{

m=b[k];

b[k]=b[j];

b[j]=m;

p=a[k];

a[k]=a[j];

a[j]=p;

}

}

for(j=0;j

{

printf("%d",b[j]);

}

printf("%d\n",b[j]);

for(j=0;!

flag&&j<=i;j++)

{

if(a[j]==n)

{

printf("%d%d\n",a[j],b[j]);

flag=1;

}

}

if(!

flag)

printf("notfind!

\n");

return0;

}

 

【设计型】8.10导弹速度

描述

我叫王大锤,是一个刚找到工作的程序员。

万万没想到,刚开始工作的第一天,就发生了大事。

某市高校P大与T大由于长期矛盾的积累,终于在这天爆发了全面战争。

T大的导弹是突破了次元之壁的导弹,它会先在n维空间中运动,抵达目标后出现在P大相应的位置。

P大及时的发明了在n维空间中阻截的方法,并找到了导弹的方向,现在我需要做的是计算出导弹的速度大小。

P大找到了我所在的公司,而这个任务竟然落到了刚加入公司的我身上。

现在公司的谍报人员已经获知,T大的导弹的速度大小是由先发出的两颗信号弹的速度矢量决定的,他们还顺便帮我捕获到了最终发射出的导弹的速度大小与信号弹速度矢量之间的关系为v(-)=v1·v2(v1,v2分别为2颗信号弹与v(-)为导弹的速度大小,·为矢量内积)。

我的同事们会告知我信号弹的速度信息,展现我高深莫测的专业技术的时刻到了!

计算出导弹的速度吧!

矢量内积公式:

(a1,...,an)·(b1,...,bn)=a1b1+...+anbn

关于输入

第一行一个整数n(1<=n<=1000),表示导弹所在空间的维度

第二行n个整数,表示第一颗信号弹的速度矢量

第三行n个整数,表示第二颗信号弹的速度矢量

关于输出

一个整数,表示导弹的速度大小,结果保证在int表示范围之内(结果可为负,此时表示导弹在远离P大)

#include

#include

#defineN1000

intmain()

{

intn,i,s=0,p[N],t[N],a[N];

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&p[i]);

}

for(i=0;i

{

scanf("%d",&t[i]);

}

for(i=0;i

{

a[i]=p[i]*t[i];

s=s+a[i];

}

printf("%d\n",s);

return0;

}

【设计型】8.11求二维数组周边元素之和

成绩

100

开启时间

2014年03月10日星期一00:

00

折扣

0.8

折扣时间

2014年04月2日星期三23:

00

允许迟交

关闭时间

2014年04月6日星期日23:

00

编写一个程序,求出4×5的二维数组周边元素之和。

输入:

二维数组元素

输出:

周边元素之和

如:

输入:

13579

29994

69998

13570

输出:

61

#include

#include

intmain()

{

intn,i,j,s=0,m=0,a[4][5];

for(i=0;i<4;i++)

{

for(j=0;j<5;j++)

{

scanf("%d",&a[i][j]);

s=s+a[i][j];

}

}

for(i=1;i<3;i++)

{

for(j=1;j<4;j++)

{

m=m+a[i][j];

}

}

printf("%d\n",s-m);

return0;

}

【设计型】8.12存储并输出一个矩阵

编程,输入n,存储并输出如下例(n=5)所示的图形。

12345

11234

11123

11112

11111

#include

#include

#defineN100

intmain()

{

intn,i,j,a[N][N];

scanf("%d",&n);

for(i=0;i

{

for(j=0;j<=i;j++)

{

a[i][j]=1;

}

}

for(i=0;i

{

for(j=i+1;j

{

a[i][j]=a[i][j-1]+1;

}

}

for(i=0;i

{

for(j=0;j

{

printf("%d",a[i][j]);

}

printf("\n");

}

return0;

}

 

【设计型】8.13给数组中的元素按顺序编号

对数组a[10]中的十个整数从小到大进行连续编号,输出各个元素的编号。

要求不能改变数组a中元素的顺序,且相同的整数要具有相同的编号。

例如数组是:

A=(5,3,4,7,

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2