C语言挑选小白鼠健康指数,2014级下学期中国石油大学华东c语言上机题.docx

44cb7578e1df5412b94317daaa3307ba.gif2014级下学期中国石油大学华东c语言上机题.docx

下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。

2.下载的文档,不会出现我们的网址水印。

3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。

文档包含非法信息?点此举报后获取现金奖励!

下载文档到电脑,查找使用更方便

20

积分

还剩页未读,继续阅读

关 键 词:2014

下学

中国石油

大学

华东

语言

上机

资源描述:

【研究创新型】8.1 谁能出线

【题目描述】

电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。

【输入】

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

【输出】

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

【样例输入】

98

98

100

97

95

94

90

94

93

92

【样例输出】

2#include #include int main()

{

int score[10];

int i,j=0;

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

{

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

if (score[i]>j) j=score[i];

else ;

}

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

{

if (score[i]==j)

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

else ;

}

system("pause");

return 0;

}

【设计型】8.2 挑选小白鼠

【题目描述】

实验室有一批小白鼠,为了评估他们的健康程度,我们为每一只小白鼠都设定了一个“健康指数”。现在我们需要进一步的评估这批小白鼠的健康均衡程度,因此我们需要从中找到健康指数差距最大的两只小白鼠的编号,以此来进一步的进行评估。

【输入】

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

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

【输出】

输出健康指数差距最大的两只小白鼠的编号。第一个数是健康指数较大的小白鼠的编号,第二个数是健康指数较小的小白鼠的编号。

【样例输入】

10

1 2 3 4 5 6 7 8 9 11

【样例输出】

10 1

#include #include int main()

{

int n,i,j=0,k=100000,x=0,y=0;

scanf("%d",&n);

int s[100];

for(i=0;ij) j=s[i];

if (s[i]#include int main()

{

int m,i,j,k=0,t=2,n=0,l;

int a[1000];

scanf("%d",&m);

printf("%4d",t);

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

{

for(j=2;j#include int main()

{

int n,i;

scanf("%d",&n);

int s[n];

for(i=0;i0;i--)

{

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

}

printf("%d\n",s[0]);

system("pause");

return 0;

}

【设计型】8.5 二维数组

【问题描述】

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

【输入】

一个44的二维数组,以及一个整数n

【输出】

变化之后的二维数组

【样例输入】

1 2 3 4

2 2 3 4

3 2 3 4

4 2 3 4

0

【样例输出】

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

0 2 3 4

0 0 3 4

0 0 0 4

0 0 0 0

#include #include int main()

{

int s[4][4];

int i,j,n;

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

{

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

{

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

}

}

scanf("%d",&n);

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

{

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

{

if(i>=j)

{

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

}

}

}

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

{

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

{

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

}

printf("\n");

}

system("pause");

return 0;

}

【设计型】8.6 在屏幕上显示杨辉三角形

【题目描述】

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

其实,中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。中国古代数学史曾经有自己光辉灿烂的篇章,而贾宪三角的发现就是十分精彩的一页。

杨辉三角有如下性质:

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

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

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

【输入】

一个正整数n

【输出】

按照指定格式输出对应的杨辉三角形(注意数据之间的空格)。

【样例输入】

5

【样例输出】

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

#include #include int main()

{

int a[100][100];

int i,j,n;

scanf("%d",&n);

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

{

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

{

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

a[i][j]=1;

}

}

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

{

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

{

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

}

}

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

{

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

{

if(j<=i) printf("%3d",a[i][j]);

}

printf("\n");

}

system("pause");

return 0;

}

【设计型】8.7 插入法排序

【题目描述】

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

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

【输入】

共两行,第一行为10个从小到大排列的整数;第二行为要插入的数

【输出】

插入后的顺序

【样例输入】

1 2 3 4 5 6 7 8 9 10

11

【样例输出】

1 2 3 4 5 6 7 8 9 10 11

#include #include int main()

{

int a[11];

int i,k,t;

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

{

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

}

scanf("%d",&k);

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

{

if(a[i]>k)

{

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

{

a[t+1]=a[t];

}

a[i]=k;

goto END;

}

else if(a[9]<=k)

{

a[10]=k;

goto END;

}

else ;

}

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

{

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

}

printf("\n");

system("pause");

return 0;

}

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

【题目描述】

任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。

【输入】

自然数 n

【输出】

各位数字组成的最大数

【样例输入】

1593

【样例输出】

9531

#include #include int main()

{

int a[20];

int i,n,t,j,m=0;

scanf("%d",&n);

while(n!=0)

{

a[m]=n%10;

m++;

n=n/10;

}

for(i=0;ia[i])

{

t=a[j];

a[j]=a[i];

a[i]=t;

}

}

}

for(j=0;j#include int main()

{

int a[70];

int b[70];

int c[70];

int k=0,t,i,j,m,w=0;

do

{

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

k++;

}while(a[k-1]>=0&&b[k-1]>=0);

for(i=0;ib[i])

{

t=b[j];

b[j]=b[i];

b[i]=t;

}

}

for(i=0;i#include int main()

{

int n,a[1000][1000],i,j,s=0;

scanf("%d",&n);

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

{

for(j=0;j#include int main()

{

int a[4][5];

int i,j,s=0;

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

{

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

{

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

}

}

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

{

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

{

if(i==0||j==0||i==3||j==4) s=s+a[i][j];

}

}

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

system("pause");

return 0;

}

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

【题目描述】

按照指定格式输出图形

【输入】

一个正整数n

【输出】

指定格式输出的图形

【样例输入】

5

【样例输出】

1 2 3 4 5

1 1 2 3 4

1 1 1 2 3

1 1 1 1 2

1 1 1 1 1

#include #include int main()

{

int a[100][100];

int i,n,j;

scanf("%d",&n);

for(i=0;i#include int main()

{

int a[10];

int i,j,t=1;

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

{

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

}

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

{

for(j=0,t=1;j<10;j++)

{

if(i!=j)

{

if (a[i]>a[j]) t++;

}

}

printf("%3d",t);

}

printf("\n");

system("pause");

return 0;

}

【设计型】8.14 矩阵加法

【题目描述】

方阵阶数为n(n<100),例如当n=3时,矩阵int a[3][3],矩阵int b[3][3]。 矩阵的数据由用户输入。输出新的矩阵c=a+b。 输出格式: c00 c01 c02 c10 c11 c12 c20 c21 c22 每两个数字之间有1个空格

【输入】

第一行为方阵的阶数

接下来为两个n阶方阵a和b

【输出】

方阵的和c

【样例输入】

3

1 2 3

4 5 6

7 8 9

7 8 9

4 5 6

1 2 3【样例输出】

8 10 12

8 10 12

8 10 12

#include #include int main()

{

int a[100][100],b[100][100];

int i,j,n;

scanf("%d",&n);

for(i=0;iint main()

{

int n,m,a[10],b[10]={0},i,j,max,t,q,count,c[10];

scanf("%d",&n);

for(i=0;i#define n 1000

int main()

{ int a[n],b[n],i=0,j,x,max=1;

scanf("%d",&x);

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

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

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

b[j]=100;

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

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

{

if(b[j]-a[i]>=0)

{

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

b[j]=b[j]-a[i];

if(max#include int main()

{

int t,i,j,k,x,cnt=0;

scanf("%d",&t);

for(i=0;i=x)

{

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

goto end;

}

}

k=k/10;

}while(k!=0);

}

if(j==10000) printf("zzz\n");

end:cnt=0;

}

system("pause");

return 0;

}

【设计型】8.18 The Himalayas

【Description】

As an artist, Bob usually need to travel around the world. He made a lot of sketch of scenery on his journey. A famous spot he have visited recently is the Himalayas. The Himalayas is a mountain range in South Asia separating the plains of the Indian subcontinent from the Qinghai-Tibet Plateau. The Himalayas include over a hundred mountains exceeding 7,200 meters in elevation.

One day, Bob came up with an strange idea. He wanted to know the number of mountain peaks in his paintings. As his best friend, he turned to you for help. You are given a list of N height sampling values Hi. You should determine how many peaks are there. For all i which satisfies 2 <= i <= N - 1, Hi is defined as a peak if and only if Hi-1 < Hi > Hi+1.

【Input】

There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:

The first line contains one integer N (1 <= N <= 50). The next line contains N integers Hi (1 <= Hi <= 8844). It is guaranteed that any two adjacent height sampling values will be different.

【Output】

For each test case, output the number of peaks.

【Sample Input】

2

9

1 3 2 4 6 3 2 3 1

5

1 2 3 4 5

【Sample Output】

3

0

#include #include int main()

{

int a[50][50],b[50];

int t,n,i,j;

scanf("%d",&t);

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

{

b[i]++;

}

}

}

for(i=0;i#include int main()

{

int y,t,i,s=0;

int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};

scanf("%d %d",&y,&t);

if((y%4!=0)||((y%100==0)&&(y%400!=0))) month[1]=28;

else month[1]=29;

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

{

s=s+month[i];

if(t<=s)

{

printf("%d-%d-%d\n",y,i+1,t-(s-month[i]));

goto END;

}

else ;

}

END:system("pause");

return 0;

}

【设计型】8.20百灯熄灭

【题目描述】

有M盏灯,编号为1~M,分别由相应的M个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方向拨一次开关,......,直到是M的倍数的灯又方向拨一次开关。请从键盘输入一个整数n代表灯的数量,求出最后为熄灭状态的灯(不亮)的数量以及编号并输出。

【输入】

输入一个整数n(1<=n<=100)。

【输出】

输出为两行,第一行是熄灭状态的灯的数量;第二行是最后为熄灭状态的灯的编号(每个数据以4列的域宽显示)。

【样例输入】

100

【样例输出】

10

1 4 9 16 25 36 49 64 81 100

【提示】

输出控制为%4d

#include #include int main()

{

int a[100]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};

int n,i,j,cnt=0;

scanf("%d",&n);

for(i=0;i#include int main()

{

int n,i;

int a[30]={1,1};

scanf("%d",&n);

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

{

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

}

printf("%d\n",a[n-1]);

system("pause");

return 0;

}

【设计型】8.22 查找整数

【题目描述】

从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。

【输入】

输入在第1行中给出2个正整数N(<=20)和X,第2行给出N个整数。数字均不超过长整型,其间以空格分隔。

【输出】

在一行中输出X的位置,或者“Not Found”。

【样例输入】

5 7

3 5 7 1 9

【样例输出】

2

【设计型】8.25折半插入排序

【题目描述】

排序是程序设计中的重要内容之一,据不完全统计,在一般的数据处理程序中,排序占去了处理机时间的四分之一,而在典型的安装程序中,一半以上的时间用在对表的排序上

常用的排序算法有:直接插入排序,折半插入排序,希尔排序,起泡排序,快速排序,选择排序,堆排序等。其中直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。在直接插入排序中,为了找到插入位置,采用了顺序查找的方法。为了提高查找速度,可以采用折半查找,这种排序称折半插入排序。

折半查找法先取有序数组的中间元素与查找值相比较。如相等则查找成功;如查找值大于中间元素,则再取高半部的中间元素与查找值相比较。如查找值小于中间元素,则再取低半部

展开阅读全文

温馨提示:

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。

2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。

3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。

4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。

5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。

6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。

7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

bb6249c6567dd4384e6ab3556cfc22ed.gif 

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:2014级下学期中国石油大学华东c语言上机题.docx

链接地址:https://www.renrendoc.com/p-40528386.html

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值