早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C语言程序编程5.给定一个一维数组a有N个元素,求最大值。6.用选择法对10个数按从小到大的顺序排列。7.有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号

题目详情
C语言程序编程
5. 给定一个一维数组a有N个元素,求最大值。
6. 用选择法对10个数按从小到大的顺序排列。
7. 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
8. 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
9. 从键盘输入20个整数,统计其中正数、负数及零的个数。
10. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33
11.10个学生,每个学生3门课成绩,要求计算出每个同学的平均成绩并输出。
12.编写函数void sort(int a[],int n),其功能是对a数组中前n个元素从小到大排序。要求:在main中输入a数组的10个元素,调用函数sort实现对a数组的排序。(10分)
13.输入一个不多于5位的正整数,将其各位数输出。
14.输入10个整数,找出其中的最大值、最小值。
15.编写一个函数int prime(int x),其功能是判断x是否为素数,如是返回1,否则返回0。在main函数中输入一个整数,判断其是否为素数。例如若输入17,则输出“17:yes”,若输入12,则输出“12:no”。
16.编程:求3*3的矩阵的主对角线之和。
17.编程:将一个数组中的数值按逆序重新存放。例如,原来顺序为8, 6, 5, 4, 1;要求改为1, 4, 5, 6, 8。
18. 编程:对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
19.求分数序列 …的前20项之和
20.写一函数使给定的3*3的二维整型数组转置,在主函数中输出转置后的数组。如:a= 转置后b=
▼优质解答
答案和解析
1:最大公约最小公倍
#include
int main()
{
int a(int,int);
int b(int,int,int);
int u,v,h,l;
scanf("%d%d",&u,&v);
h=a(u,v);
printf("最大公约:%d\n",h);
l=b(u,v,h);
printf("最小公倍:%d\n",l);
return 0;
}
int a(int u,int v)
{
int t,r;
if(v>u)
{t=u;u=v;v=t;}
while((r=u%v)!=0)
{
u=v;
v=r;}
return v;
}
int b(int u,int v,int h)
{
return u*v/h;
}
2: 有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…,求这个数列的前20项和
#include
int main()
{
int i;
float a=2,b=1,t,s=0;
for(i=1;i<=20;i++)
{
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("%17.15f\n",s);
return 0;
}
3,:输入一行字符号,分别统计出其中英文字母、空格、数字和其它字符的个数
#include
int main()
{
char c;
int word=0,number=0,gap=0,other=0;
while((c=getchar())!='\n')
{
if(c>='A'&&c<='Z'||c>='a'&&c<='z')
word++;
else if(c>='0'&&c<='9')
number++;
else if(c==' ')
gap++;
else
other++;
}
printf("word:%d\tnumber:%d\tgap:%d\tother:%d\n",word,number,gap,other);
return 0;
}
4:输出九九加法表
#include
int main()
{
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
printf("%d+%d=%d\t",i,j,i+j);
}
printf("\n");
}
} //(不需要return 0;)
5:求300以内能被17整除的最大的数
#include
int main()
{
int max(int x,int y);
int b[300],i,m;
for(i=0;i<300;i++)
b[i]=i+1;
for(i=0,m=b[0];i<300;i++)
{if(b[i]%17==0)
if(max(m,b[i])>m)
{m=max(m,b[i]);
}
}
printf("%d",m);
return 0;
}
int max(int x,int y)
{int z;
if(x>y)
z=x;
else
z=y;
return z;}
6:编制图形
#include
int main()
{
int i,j,k,h;
printf("输出的图形:\n");
for(i=0;i<=3;i++)
{ for(j=0;j<=2-i;j++)
printf(" ");
for(k=0,h=1;k<=2*i;k++,h++)
{if(h%2==0)
printf("*");
else
printf("+");
}
printf("\n");}
for(i=0;i<=2;i++)
{for(j=0;j<=i;j++)
printf(" ");
for(k=0,h=1;k<=4-2*i;k++,h++)
{if(h%2==0)
printf("*");
else
printf("+");
}
printf("\n");}
return 0;
}
:7:输出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身
#include
int main()
{
int i;
int a,b,c;
for(i=100;i<1000;i++)
{
a=i/100;
b=i/10-a*10;
c=i%10;
if(i==(a*a*a+b*b*b+c*c*c))
printf("%d\n",i);}
return 0;
}
8:一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?
#include
int main()
{
int i;
float s=100,h=50;
for(i=2;i<=10;i++)
{s=s+2*h;
h=h/2;
}
printf("总路程:%f\n",s);
printf("第10次高度:%f\n",h);
return 0;
}
9:猴子第一天摘下若干个桃子,当即吃了一半,又多吃了一个。以后每天早晨猴子都吃掉前一天剩下的一半多一个。到第5天时,猴子再去吃桃子时发现只剩下1个桃子。问第一天猴子摘了多少个桃子?
#include
int main()
{
int d=4;
int a,b=1,i;
while(d>0)
for(i=1;i<=4;i++)
{
a=(b+1)*2;
b=a;
d--;
}
printf("猴子一共摘桃子:%d\n",a);
return 0; }
10:求出Fabonacci数列的前20项。Fabonacci数列的规律是:前两项为1和1,其余各项为该项前两项之和,即1,1,1,2,3,5,8,13,…
#include
int main()
{
int i;
int a=1,b=1;
for(i=1;i<=10;i++)
{
printf("%5d\t%5d\t",a,b);
if(i%2==0)printf("\n");
a=a+b;
b=a+b;
}
printf("\n");
return 0; }
11:编写程序,已知华氏温度F,根据公式C=5/9(F-32),求摄氏温度(结果保留两位小数)】
#include
int main()
{
float F,C;
scanf("%f",&F);
C=5.0/9*(F-32);
printf("%0.2f\n",C);
return 0; }
12:3个最大素数
#include
#include
int main()
{int n,k,i,m=0;
for(n=1000;n>=2;n--)
{ k=sqrt(n);
for (i=2;i<=k;i++)
if (n%i==0) break;
if (i>k)
{printf("%d ",n);
m=m+1;
if(m==3) break;
}

}
printf ("\n");
return 0;
}
13:有一个4×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
#include
int main()
{
int a[4][4],max=a[0][0];
int i,j,c,d;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];
c=i;
d=j;
}}
printf("max:%d\n",max);
printf("行:%d\n列:%d\n",c,d);
return 0; }
14:有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分。#include
int main()
{
float a(float b[10]);
int max(int x,int y);
int min(int x,int y);
float aver=0,g,b[10],m,n;
int i;
for(i=0;i<=9;i++)
scanf("%f",&b[i]);
for(i=1,m=b[0];i<=9;i++)
{
if(max(m,b[i])>m)
{m=max(m,b[i]);}
}
printf("max:%0.2f\n",m);
for(i=1,n=b[0];i<=9;i++)
{
if(min(n,b[i]){n=min(n,b[i]);}
}
printf("min:%0.2f\n",n);
g=a(b);
printf("average:%0.2f\n",g);
return 0;
}
float a(float b[10])
{
int f;
float c,s=0;
for(f=0;f<10;f++)
s=s+b[f];
c=s/10;
return c;
}
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else
z=y;
return z;
}
int min(int x,int y)
{
int z;
if(xz=x;
else
z=y;
return z; }
15:对10元素数组排序(起泡法)
#include
int main()
{void t(int a[10]);
int a[10],i,j;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
t(a);
for(j=0;j<=9;j++)
printf("%d ",a[j]);
return 0;}
void t(int a[10])
{
int c,b,t;
for(c=0;c<=9;c++)
for(b=0;b<=9-c;b++)
if(a[b]>a[b+1])
{
t=a[b];
a[b]=a[b+1];
a[b+1]=t;
}
}
return 0; }
16:将一个3×4的整形矩阵转置
#include
int main()
{printf("please input new data:\n");
int a[3][4];
int b[4][3],i,j;
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=2;i++)
{for(j=0;j<=3;j++)
b[j][i]=a[i][j];
}
printf("output new data:\n");
for(i=0;i<=3;i++)
{for(j=0;j<=2;j++)
printf("%d",b[i][j]);
printf("\n");}
return 0; }
17:求一个4×4的整形矩阵对角线元素之和
#include
int main()
{
int a[4][4];
int i,j,s=0,d=0;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=3;i++)
{for(i=0;i<=3;i++)
s=s+a[i][i];
}
printf("一个和为:%d\n",s);
for(i=0;i<=3;i++)
{
d=d+a[i][3-i];}
printf("另一个和为:%d\n",d);
return 0; }
18:将一个的数组中的值按逆序重新存放
#include
#define N 10 //当想输入较多数时只需改动N即可
int main()
{ void t(int a[N]);
int i,a[N];
for(i=0;iscanf("%d",&a[i]);
t(a);
for(i=0;iprintf("%d ",a[i]);
return 0;
}
void t(int a[N])
{
int d,c;
for(c=0;c{d=a[c];
a[c]=a[N-1-c];
a[N-1-c]=d;
}}
19:用函数实现6!
#include
int main()
{ int t(int n);
int a,n;
printf("please input a number:\n");
scanf("%d",&n);
a=t(n);
printf("%d!=%d\n",n,a);
return 0;
}
int t(int n)
{
int b;
if(n==1||n==0)
b=1;
else b=t(n-1)*n;
return b;
}
20:输出如下8行杨辉三角
#include
int main()
{
int i,j;
int a[8][8];
for(i=0;i<=7;i++)
{a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<=7;i++)
for(j=1;j<=i-1;j++)
{a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<=7;i++)
{for(j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return 0; }
21:托运某货物。若货重不超过40千克,按每千克0.30元收费;若货重超过40千克而不超过60千克,则超出40千克部分按每千克0.60元收费;若货重超过60千克。则超出部分按每千克1.00元收费。设货物重量为x千克,编写程序求出运费y(保留2位小数)。
#include
int main()
{
float x,y;
scanf("%f",&x);
if(x<=40)
y=0.30*x;
else
if(x>40&&x<=60)
y=0.60*(x-40)+12;
else
y=1.00*(x-60)+24;
printf("%0.2f\n",y);
return 0; }
22:22、给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~89分为’B’ ,70~79分为’C’ ,60~69分为’D’ ,60分以下’E’
#include
int main()
{
float c;
scanf("%f",&c);
switch(int(c/10))
{
case 10:printf("A\n");break;
case 9:printf("A\n");break;
case 8:printf("B\n");break;
case 7:printf("C\n");break;
case 6:printf("D\n");break;
case 5:printf("E\n");break;
case 4:printf("E\n");break;
case 3:printf("E\n");break;
case 2:printf("E\n");break;
case 1:printf("E\n");break;
default:printf("enter data error please try again\n");
}
return 0; }
23:判别某一年是否闰年
#include
int main()
{int year;
scanf("%d",&year);
if((year%4==0&&year%100!=0)||year%400==0)
printf("year is leap\n");
else
printf("year is not leap\n");
return 0; }
24:输入3个数a,b,c,要求按由小到大的顺序输出。
#include
int main()
{int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{t=b;
b=c;
c=t;
}
printf("%d %d %d\n",a,b,c);
return 0; }
25:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
#include
int main()
{
char c;
scanf("%c",&c);
if(c>='A'&&c<='Z')
printf("%c",c+32);
else
printf("%c\n",c);
return 0;}
这是我平常留下的题你看看有一样的没 ,希望可以帮到你
看了 C语言程序编程5.给定一个一...的网友还看了以下: