C语言的高手请进!!!!跪求几道题的答案!!!!

(1) 用数组处理Fibonacci数列,要求输出Fibonacci数列前40个数,每行输出5个数。(文件名存为sy4-1.c)
(2) 用选择法对10个数实现递增排序。(文件名存为sy4-2.c)
(3) 写一程序,其功能是:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。输出结果。(文件名存为sy4-3.c)
(4) 写一程序,其功能是:输入m的值(2<=m<=9),在m行m列的二维数组中存放如下所示的数据,将结果输出在显示上。(文件名存为sy4-4.c)
例如:输入3 输入5
则输出: 则输出:
1 2 3 1 2 3 4 5
2 4 6 2 4 6 8 10
3 6 9 3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
(5) 编写程序实现对4个字符串的升序排序。(文件名存为sy4-5.c)
(6) 写一程序,要求将字符串a的第n个字符之后的内容由字符串b替代,a,b,n由运行时输入。(文件名存为sy4-6.c)
(7) 写一程序,输入一个字符串,要求将该字符串所有奇数位置上的字母转换为大写字母(若该位置上不是小写字母则不转换),结果输出到显示器。(文件名存为sy4-7.c)
(8) 写一程序,要求将一个数字字符串转换为一个整数。例如,有字符串“-1234567”程序将它转换为整数 -1234567。(文件名存为sy4-8.c)
(9) 任意建立一个10个元素的数组,要求按逆序重新存放。(文件名存为sy4-9.c)
(10) 用筛选法求出200以内的素数,每行输出10个数。(文件名存为sy4-10.c)
(11) 在一个5个元素的升序排列的数组中,任意输入一个数插入其中,要求保持原来的排列顺序。输出结果。(文件名存为sy4-11.c)
(12) 10个元素的数组中存放升序排列的10个数,任意输入一个数,要求用折半查找法找出该数在数组中的位置,如果没有找到,则输出“Not found.”。( 文件名存为sy4-12.c)
(13) 输入一行字符,输出其中单词最长的长度。(文件名存为sy4-13.c )
(14) 编写程序,其功能是把从键盘上输入的十进制数以非十进制(二进制、八进制或十六进制)形式输出,变量n为待转换的十制制整数。变量base确定转换后的类型,若转换成二进制,则输入base的值为2;若转换成十六进制,则base的值为16。(文件名存为sy4-14.c)
(15) 编写程序,其功能是:由25人坐成圆圈,先从任一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1,2,3,4,…),数到5的倍数的出圈,剩下的继续报数,求最后出圈的编号。(文件名存为sy4-15.c)

第1个回答  推荐于2016-05-12
//我写了几个,都经过dev-c调试通过。
//第一题:
#include<stdio.h>
#include<stdlib.h>
int fib(int n){
if(n==1||n==2)
return 1;
else
return(fib(n-1)+fib(n-2));
}
int main(){
int a[40],i;
printf("前40个数为:\n");
for(i=0;i<40;i++)
{
a[i]=fib(i+1);
printf("%-10d",a[i]);
if((i+1)%5==0)
printf("\n");
}
system("PAUSE");
return 0;
}

//第二题:
include<stdio.h>
#include<stdlib.h>
int main(){
int a[10],i,j,temp;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("排序后:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
system("PAUSE");
return 0;
}
//第三题:
#include<stdio.h>
#include<stdlib.h>
int change(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(){
int a[10],i,j,k=0,m=0;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=1;j<10;j++)
{
if(a[k]>a[j]) k=j;
if(a[m]<a[j]) m=j;
}
change(&a[0],&a[k]);
change(&a[9],&a[m]);
printf("排序后:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
system("PAUSE");
return 0;
}
//第四题:
#include<stdio.h>
#include<stdlib.h>
int main(){
int m=0,i,j;
while(m<2||m>9){
printf("请输入一个2到9的数:\n");
scanf("%d",&m);
}
int a[m][m];
for(i=0;i<m;i++)
for(j=0;j<m;j++)
a[i][j]=(i+1)*(j+1);
printf("output:\n");
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
printf("%4d",a[i][j]);
if(j==m-1)
printf("\n");}
system("PAUSE");
return 0;
}
//第五题:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char a[4][10],b[10];
int i,j ;
printf ("input:\n");
for(i=0;i<4;i++)
scanf("%s",a[i]);
for(i=0;i<4;i++)
for(j=0;j<3-i;j++)
if(strcmp(a[j],a[j+1])>0)
{
strcpy(b,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],b);
}
j=0;
printf("排序后:\n");
for(i=0;i<4;i++)
{
while(a[i][j])
{
printf("%c",a[i][j]);
j++;
}
printf("\n");
j=0;
}
system("PAUSE");
return 0;
}
//第七题:
#include<stdio.h>
#include<stdlib.h>
int main(){
char a[20];
int i=0;
printf("请输入:\n");
gets(a);
while(a[i]){
if(i%2==0)
if(a[i]>'a'&&a[i]<'z')
a[i]-=32;
i++;
}
puts(a);
system("PAUSE");
return 0;
}

//余下的下次再发给你吧!本回答被提问者采纳
第2个回答  2010-05-14
太复杂拉
第3个回答  2010-05-15
同感~
第4个回答  2010-05-15
一次不要问的太多
第5个回答  2010-05-16
先回答第三题哈
#include <stdio.h>

int main(void)

{
int num[10], max, min, m = 0, n = 0, temp1, temp2, i;

printf("please input ten numbers:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &num[i]);
}
max = num[0];
min = num[0];
for (i = 0; i < 10; i++)
{
if (num[i] > max)
{
max = num[i];
m = i;
}
if (num[i] < min)
{
min = num[i];
n = i;
}
}
temp1 = num[0];
num[0] = min;
num[n] = temp1;
temp2 = num[9];
num[9] = max;
num[m] = temp2;
for (i = 0; i < 10; i++)
{
printf("%d,", num[i]);
}
return 1;
}
相似回答