C语言课外程序设计基础题2
1.(论述题, 100 分)
以下三题,选做一题,鼓励有时间的同学都完成。将运行后的代码贴在下面框中。
1.打印立方数(提示:用for循环)
给定一个正整数n,打印出前n个立方数(第一个立方数为1,第二个立方数为8,第三个立方数为27)。
输入格式
第一行:单个正整数n
输出格式
共n行:每行一个立方数
数据范围
1≤n≤100
例子
输入
5
输出
1
8
27
64
125
2.寻找第二大值 (提示:用for循环)
给定n个整数a1,a2,⋯,an输出其中的第二大值。所谓第二大值,就是序列由大到小排列后,排名第二的数字,第二大值可能和最大值相等。
保证序列至少有两个整数。
输入格式
第一行:单个整数n
第二行:n个整数a1,a2,⋯,an
输出格式
第一行:给定序列中的第二大值
数据范围
2≤n≤100000
例子
输入
6
1 3 7 4 5 7
输出
7
输入
5
1 4 5 3 2
输出
4
3.蜗牛爬井 (提示:用while语句)
有一只蜗牛,在一口井的底部,它每天向上爬,白天可以爬 a厘米,然后晚上的时候,因为力气耗尽,会落下 b厘米。假设这口井的深度为 d厘米,则蜗牛需要几天才能爬到这口井的井口呢?
输入格式
第一行:三个整数表示 a,b和 d
输出格式
单个整数:表示答案
数据范围
1≤b<a≤1000
1≤d≤10000
例子
输入
10 1 30
输出
4
输入
2 1 10
输出
10
(前八天:每天前进一厘米;第九天:白天爬到了井口)
我的答案 :
#include<stdio.h>/打印立方和/
int main()
{
int n,i;
printf(“输入 “);
scanf(”%d”,&n);
if(1<=n&&n<=100)
{
for(i=1;i<=n;i++)
printf("%d\n",iii);
}
else
{
printf(“不符合限条件”);
}
return 0;
}
#include<stdio.h>/次大值/
#include<stdlib.h>
#define MAX 100000
#define MIN 2
int main(void)
{
int i,n,j,t;
int a[MAX];
printf(“输入 \n”);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
n=n-1;
for(j=0;j<n;j++)
for(i=0;i<n-j;i++)
if(a[i]<a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
n=n+1;
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n次大值为:%d",a[1]);
return 0;
}
#include<stdio.h>/蜗牛爬井/
int main()
{
int a,b,d;
printf(“输入 \n”);
scanf("%d %d %d",&a,&b,&d);
int h=0,i=0;
if(1<=b&&b<=a&&a<=1000&&1<=d&&d<=10000)
{
while(h<d)
{
h=h+a-b;
i++;
}
printf(“输出 \n%d”,i);
}
else
{
printf(“不符合限制条件”);
}
return 0;
}