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;
}

C语言高手请进啊,高分哦,详细的解释!!!
第三题 考 二维数组 以及 数组概念 数组的行列是从 0 开始的, 即 第一个元素为 p[0][0]定义的数组为二维。所以 p[1] 是第二行的全部元素 即 France 另外它不是省略的 p[1][0],两者不同,前者是一行,后者是一个 另外,你可以从c语言的打印方式看出,前者 %s ...

高分C语言问题~~·高手请进
A[n]中,n代表有多少堆果子,A中的元素代表各堆的果子数目 int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n=n-1...

c语言问题,高手请进谢谢!!!
1、++i 时i加1得到i,此时的i=2;2、++i 时i加1得到i,此时的i=2+1=3;3、此时前面有两个i等待运行,即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式...

C语言高手 请告诉我几道简单的题! 我想搞明白 谢谢
1 . 首先我们定义的是一个指针数组,pt[3] 它和数组类似,数组名表示的是第一个字符,而指针名则表示第一个指针,所以pt应该是pt[0],而pt[0]对应的是t[0][]在 *(*(pt+l)+2) 中 先看pt+l 对于数组来说,每一行的内存是连续分配的, 所以pt+l就是pt当前这一行的下一行,即t[1][]...

几道c语言题目,还请高手不吝赐教,谢谢!不要嫌烦哈……
5.有以下程序段:int a,b,c;a=10;b=50;c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\\n",a,b,c);程序的输出结果是()。A.a=10 b=50 c=10 B.a=10 b=50 c=30 C.a=10 b=30 c=10 D.a=50 b=30 c=50 答案:A 我认为是C,求教……if(a>b) 是不...

在线跪求C语言试题答案,请高手帮帮我~~~
19.C(short占用2字节,char占用1字节,double看起来是8字节,但其实double是个指针,指针都是4字节,不看类型。如此相加看起来应该是7个字节,但其中有个字节对齐的问题,所以char后面要空出来一个字节作为对齐,最终结果是8个字节)20.A(NULL为结束符,EOF应该是结束函数用的,BOF不清楚,\/0啥都不是...

几道C语言题,跪求高手详细帮助
\/\/第二题: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;}...

C语言高手请进~~~
&a[1],2,&a[2],3,&a[0]},这里定义了一个 结构数组a ,并且将其初始化了,其中a[0]={1,&a[1]},a[1]={2,&a[2]} a[2]={3,&a[0]},后面ptr = &a[1];就是让ptr指向a[1],所以ptr的值就是{2,&a[2]},也就是ptr->i1=2,答案d又给他做了自增1,结果为3了。

C语言编程问题.请高手进(附源码)!!!HELP
for(c=0;c!=b;c++)sr();break;case 2:;break;case 3:;break;default:printf("输入错误,请重新打开程序输入!");} } void sr(void){ int b=0,d=0,f=0;float e=0.0;char A[20],c[20];FILE *g;g=fopen("fdsj.dat","a+");\/\/---a方式好,是追加 printf("请输入菜的类别...

c语言高手请进
include <stdio.h> int main(){ int i,j,k;for(i=0;i<9;i++){ for(j=0;j<9;j++){ for(k=0;k<9;k++){ if((i+j+k)<10 && i!=0)printf("%d%d%d ",i,j,k);} } } return 0;} 都类似的,只要改改if里的条件就可以了...q币啊.....

相似回答