2011东北电力C语言答案
答案:1 悬赏:0 手机版
解决时间 2021-01-19 11:38
- 提问者网友:我是女神我骄傲
- 2021-01-18 10:54
2011东北电力C语言答案
最佳答案
- 五星知识达人网友:不甚了了
- 2021-01-18 11:05
1、分段函数。输入一个x,输出y的值。
分段函数{y=4x-5 x<0
y=3 x=0
y=2x+1 x>0
main()
{float x,y;
scanf("%f",&x);
if(x>0) y=2*x+1;
if(x==0) y=3;
if(x<0) y=4*x-5;
printf("%f\n",y);}
附加:
main()
{float x,y;
scanf("%f",&x);
if(x>0) y=2*x+1;
else if(x==0) y=3;
else y=4*x-5;
printf("%f\n",y);}
2、输入a,b,c;求一元二次方程ax2+bx+c=0的值。(a≠0,b2-4ac≥0)。求方程 y=ax*x+bx+c的根。
#include"math.h"
main()
{float a,b,c,x1,x2,d;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("%f,%f\n",x1,x2);}
3、输入三个整数,输出其中最大的数。求a,b,c中最大的数。
main()
{int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(a>b)d=a;else d=b;
if(c>d)d=c;
printf("%d\n",d);}
4、求1+2+3+……+n。
(1)for语句
main()
{int i,n,long sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++) sum=sum+i;
printf("sum=%d\n",sum);}
(2)do while 语句
main()
{int i,n,sum=0;
scanf("%d",&n);
i=1;
do {sum=sum+i;i++;} while (i<=n);
printf("sum=%d\n",sum);}
(3)goto语句
main()
{int i,n,sum=0;
scanf("%d",&n);
i=1;
loop:if(i<=n) {sum=sum+i;i++;goto loop;}
printf("sum=%d\n",sum);}
(4)while语句
main()
{int i,n,sum=0;
scanf("%d",&n);
i=1;
while(i<=n) {sum=sum+i;i++;}
printf("sum=%d\n",sum);}
5、求1*2*3*……*n。
(1)main()
{int i,n;long sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("%ld\n",sum);}
(2)main()
{int i,n;long sum;
i=1;sum=1
scanf("%d",&n);
while(i<=n) {sum=sum*i;i++;}
printf("%ld\n",sum);}
6、求1!+2!+3!+……+n!。
main()
{int n,i;long s,f;s=0;f=1;
scanf("%d",&n);
for(i=1;i<=n;i++) {f=f*i;s=s+f;}
printf("%ld\n",s);}
7、输出100以内(不含100)能被3整除且个位数为6的所有整数。
main()
{int i,j;
for(i=0;i<10;i++)
{j=i*10+6;if(j%3!=0)continue;
printf("%d",j);}}
8、求调和级数中第多少项的值大于10。
(调和极数第n项为:1+1/2+1/3+……+1/n)
#define LIMIT 10
main()
{int n;float sum;
sum=0.0;n=1;
for(;;)
{sum=sum+1.0/n;if(sum>LIMIT) break;n++;}
printf("n%d\n",n);}
9、输出100~200间的全部素数。
main()
{int m,i,n=0;
for(m=101;m<=200;m=m+2)
{if(n%10==0) printf("\n");
for(i=2;i if(m%i==0) break;
if(i>=m) {printf("%d",m);n=n+1;}}
printf("\nprime number=%d\n",n);}
10、求Fabonacci数列的前20项,每5个数一换行。
main()
{int i,f1,f2,f3;
f1=0;f2=1;
printf("%10d%10d",f1,f2);
for(i=3;i<=20;i++)
{f3=f1+f2;
printf("%10d",f3);
if(i%5==0) printf("\n");
f1=f2;
f2=f3;}
printf("\n");}
11、百钱买百鸡。(教材92页)
main()
{int x,y,z;
for(x=0;x<=20;x++)
for(y=1;y<=33;y++)
{z=100-x-y;
if((z%3==0)&&(5*x+3*y+z/3==100))
printf("cock=%d\t hen=%d\t chicken=%d\n",x,y,z);}}
12、输出三角形式的九九乘法表。
main()
{int m,n;
for(m=1;m<10;m++) printf("%4d",m);
printf("\n");
for(m=1;m<10;m++) printf(" _");
printf("\n");
for(m=1;m<10;m++)
{for(n=1;n<=m;n++) printf("%4d",m*n);
printf("\n");}
13、将一个整数的各位数字颠倒后输出。
main()
{int i,r;
printf("input an integer\n");
scanf("%d",&i);
do{r=i%10;printf("%d",r);}while((i/=10)!=0);
printf("\n");}
14、输出任意两个正整数的最大公约数和最小公倍数。
main()
{int m,n,r,p;
printf("please type in two positive integers\n");
scanf("%d%d",&m,&n);
p=m*n;
while(n) {r=m%n;m=n;n=r;}
printf("their greatest common divisor and lease common multiple are %d,%d\n",m,p/m);}
15、输出1000以内的完全数。
main()
{int i,a,m;
for(i=1;i<1000;i++)
{for(m=0,a=1;a<=i/2;a++)
if(!(i%a)) m+=a;
if(m==i) printf("%4d",i);}}
16、冒泡法排序。
main()
{int i,j,t,a[9];
printf("Input 8 numbers:\n");
for(i=1;i<=18;i++) scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=7;j++)
for(i=1;i<=8-j;i++)
if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers:\n");
for(i=1;i<=8;i++) printf("%d",a[i]);}
17、比较交换法排序。
#define N 6
main()
{int i,j,t,a[N+1];
printf("Input 6numbers:\n");
for(i=1;i<=N;i++) scanf("%d",&a[i]);
printf("\n");
for(i=1;i<=N-1;i++)
for(j=i+1;j<=N;j++)
if(a[i]printf("the sorted numbers:\n")
for(i=1;i<=N;i++) printf("%d",a[i]);}
18、选择法排序。
#define N 6
main()
{int i,j,k,t,a[N+1];
printf("Input 6numbers:\n");
for(i=1;i<=N;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1;i<=N-1;i++)
{k=i;
for(j=i+1;j<=N;j++)
if(a[j]>a[k]) k=j;
if(k!=i) {t=a[i];a[i]=a[k];a[k]=t;}
}
printf("the sorted numbers:\n");
for(i=1;i<=N;i++) printf("%d",a[i]);}
19、求3*4矩阵第i行第j列元素的值。
main()
{int i,j;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,5,2}};
printf("input integer i:");
scanf("%d",&i);
printf("input integer j:");
scanf("%d",&j);
printf("a[%d][%d]=%d",i-1,j-1,a[i-1][j-1]);}
20、有序数组的插入。(有序数组任意插入一个数,使之仍然有序)
main()
{int a[10]={0,12,17,20,25,28},x,i,n=5;
scanf("%d",&x);
a[0]=x;i=n;
while(a[i]>x) {a[i+1]=a[i];i--;}
a[++i]=x;n++;
for(i=1;i<=n;i++) printf("%4d",a[i]);
printf("\n");}
21、数组元素的逆序存放。(将一个数组逆序后输出)
#define N 5
main()
{int a[N]={98,16,25,47,163},i,temp;
for(i=0;i printf("\n");
for(i=0;i for(i=0;i printf("\n");}
22、求3*3矩阵主对角线元素之和。
main()
{int a[3][3],sum=0;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("\n");
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("%d\n",sum);}
23、求3*4矩阵最大元素及其位置。
main()
{int a[3][4]={1,2,3,5,6,7,8,9,41,25,36,55},i,j,max,m,n;
m=0;n=0;max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max) {max=a[i][j];m=i;n=j;}
printf("%d,%d,%d\n",a[m][n],m,n);}
24、二维数组按行求平均值。
main()
{int a[3][4]={1,2,3,4,5,6,7,8,9,0,11,22},i,j;
float s;
for(i=0;i<3;i++)
{s=0;
for(j=0;j<4;j++) s=s+a[i][j];
s=s/4;
printf("%f\n",s);}}
25.删除数列中值为x的元素,将其他元素前移,不重复。
#include
main()
{
int w[10]={-3,0,1,5,7,99,10,15,30,90},x,i,p=0;
scanf("%d",&x);
while(x!=w[p])
p=p+1;
for(i=p;i<10;i++)
w[i]=w[i+1];
for(i=0;i<9;i++)
printf("%5d",w[i]);
}
26.有N*N矩阵,以对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置0。例如:若N=3,有下列矩阵:
1 2 3 计算结果为 1 0 0
4 5 6 6 5 0
7 8 9 10 14 9
#include
#define N 4
main( )
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;
for(i=1;i for(j=0;j {
t[i][j]=t[i][j]+t[j][i];
t[j][i]=0;
}
for(i=0;i { for(j=0;j printf("\n");
}
}
27. 将a所指4*3矩阵中第k行元素与第0行元素交换。例如k=2时,第2行元素与第0行元素交换。
#include
#define M 4
#define N 3
main()
{ int x[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j,k,temp;
scanf("%d",&k);
for(i=0;i<3;i++)
{ temp=x[0][i];
x[0][i] = x[k][i];
x[k][i] = temp;
}
for(i=0;i { for(j=0;j printf("\n");
}
}
28.把str1中非空格字符串拷贝至str2中。
#include
main()
{ char str1[80]="Nice to meet you!";
char str2[80];
int i=0,j=0;
puts(str1);
while(str1[i])
{if(str1[i]!=' ') str2[j++]=str1[i]; i++;}
str2[j]='\0';
for(i=0;i<=j;i++) printf("%c",str2[i]);
}
29.找出串中指定字符个数。
#include
#include
main()
{char a[80], ch;
int n=0, i=0;
gets(a); ch=getchar();
while(a[i]!='\0')
{if(a[i]==ch) n++;i++;}
printf("%d\n", n );
}
30.依次取出某字符串中所有数字字符,形成新的字符串,并取代原字符串。
main()
{char s[80];
int num=0,i,j=0;
gets(s);
while(s[num]) num++;
for(i=0; i if(s[i]>='0'&&s[i]<='9')
{s[j++]=s[i];}
s[j]='\0';
puts(s);
}
分段函数{y=4x-5 x<0
y=3 x=0
y=2x+1 x>0
main()
{float x,y;
scanf("%f",&x);
if(x>0) y=2*x+1;
if(x==0) y=3;
if(x<0) y=4*x-5;
printf("%f\n",y);}
附加:
main()
{float x,y;
scanf("%f",&x);
if(x>0) y=2*x+1;
else if(x==0) y=3;
else y=4*x-5;
printf("%f\n",y);}
2、输入a,b,c;求一元二次方程ax2+bx+c=0的值。(a≠0,b2-4ac≥0)。求方程 y=ax*x+bx+c的根。
#include"math.h"
main()
{float a,b,c,x1,x2,d;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("%f,%f\n",x1,x2);}
3、输入三个整数,输出其中最大的数。求a,b,c中最大的数。
main()
{int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(a>b)d=a;else d=b;
if(c>d)d=c;
printf("%d\n",d);}
4、求1+2+3+……+n。
(1)for语句
main()
{int i,n,long sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++) sum=sum+i;
printf("sum=%d\n",sum);}
(2)do while 语句
main()
{int i,n,sum=0;
scanf("%d",&n);
i=1;
do {sum=sum+i;i++;} while (i<=n);
printf("sum=%d\n",sum);}
(3)goto语句
main()
{int i,n,sum=0;
scanf("%d",&n);
i=1;
loop:if(i<=n) {sum=sum+i;i++;goto loop;}
printf("sum=%d\n",sum);}
(4)while语句
main()
{int i,n,sum=0;
scanf("%d",&n);
i=1;
while(i<=n) {sum=sum+i;i++;}
printf("sum=%d\n",sum);}
5、求1*2*3*……*n。
(1)main()
{int i,n;long sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("%ld\n",sum);}
(2)main()
{int i,n;long sum;
i=1;sum=1
scanf("%d",&n);
while(i<=n) {sum=sum*i;i++;}
printf("%ld\n",sum);}
6、求1!+2!+3!+……+n!。
main()
{int n,i;long s,f;s=0;f=1;
scanf("%d",&n);
for(i=1;i<=n;i++) {f=f*i;s=s+f;}
printf("%ld\n",s);}
7、输出100以内(不含100)能被3整除且个位数为6的所有整数。
main()
{int i,j;
for(i=0;i<10;i++)
{j=i*10+6;if(j%3!=0)continue;
printf("%d",j);}}
8、求调和级数中第多少项的值大于10。
(调和极数第n项为:1+1/2+1/3+……+1/n)
#define LIMIT 10
main()
{int n;float sum;
sum=0.0;n=1;
for(;;)
{sum=sum+1.0/n;if(sum>LIMIT) break;n++;}
printf("n%d\n",n);}
9、输出100~200间的全部素数。
main()
{int m,i,n=0;
for(m=101;m<=200;m=m+2)
{if(n%10==0) printf("\n");
for(i=2;i
if(i>=m) {printf("%d",m);n=n+1;}}
printf("\nprime number=%d\n",n);}
10、求Fabonacci数列的前20项,每5个数一换行。
main()
{int i,f1,f2,f3;
f1=0;f2=1;
printf("%10d%10d",f1,f2);
for(i=3;i<=20;i++)
{f3=f1+f2;
printf("%10d",f3);
if(i%5==0) printf("\n");
f1=f2;
f2=f3;}
printf("\n");}
11、百钱买百鸡。(教材92页)
main()
{int x,y,z;
for(x=0;x<=20;x++)
for(y=1;y<=33;y++)
{z=100-x-y;
if((z%3==0)&&(5*x+3*y+z/3==100))
printf("cock=%d\t hen=%d\t chicken=%d\n",x,y,z);}}
12、输出三角形式的九九乘法表。
main()
{int m,n;
for(m=1;m<10;m++) printf("%4d",m);
printf("\n");
for(m=1;m<10;m++) printf(" _");
printf("\n");
for(m=1;m<10;m++)
{for(n=1;n<=m;n++) printf("%4d",m*n);
printf("\n");}
13、将一个整数的各位数字颠倒后输出。
main()
{int i,r;
printf("input an integer\n");
scanf("%d",&i);
do{r=i%10;printf("%d",r);}while((i/=10)!=0);
printf("\n");}
14、输出任意两个正整数的最大公约数和最小公倍数。
main()
{int m,n,r,p;
printf("please type in two positive integers\n");
scanf("%d%d",&m,&n);
p=m*n;
while(n) {r=m%n;m=n;n=r;}
printf("their greatest common divisor and lease common multiple are %d,%d\n",m,p/m);}
15、输出1000以内的完全数。
main()
{int i,a,m;
for(i=1;i<1000;i++)
{for(m=0,a=1;a<=i/2;a++)
if(!(i%a)) m+=a;
if(m==i) printf("%4d",i);}}
16、冒泡法排序。
main()
{int i,j,t,a[9];
printf("Input 8 numbers:\n");
for(i=1;i<=18;i++) scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=7;j++)
for(i=1;i<=8-j;i++)
if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers:\n");
for(i=1;i<=8;i++) printf("%d",a[i]);}
17、比较交换法排序。
#define N 6
main()
{int i,j,t,a[N+1];
printf("Input 6numbers:\n");
for(i=1;i<=N;i++) scanf("%d",&a[i]);
printf("\n");
for(i=1;i<=N-1;i++)
for(j=i+1;j<=N;j++)
if(a[i]printf("the sorted numbers:\n")
for(i=1;i<=N;i++) printf("%d",a[i]);}
18、选择法排序。
#define N 6
main()
{int i,j,k,t,a[N+1];
printf("Input 6numbers:\n");
for(i=1;i<=N;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1;i<=N-1;i++)
{k=i;
for(j=i+1;j<=N;j++)
if(a[j]>a[k]) k=j;
if(k!=i) {t=a[i];a[i]=a[k];a[k]=t;}
}
printf("the sorted numbers:\n");
for(i=1;i<=N;i++) printf("%d",a[i]);}
19、求3*4矩阵第i行第j列元素的值。
main()
{int i,j;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,5,2}};
printf("input integer i:");
scanf("%d",&i);
printf("input integer j:");
scanf("%d",&j);
printf("a[%d][%d]=%d",i-1,j-1,a[i-1][j-1]);}
20、有序数组的插入。(有序数组任意插入一个数,使之仍然有序)
main()
{int a[10]={0,12,17,20,25,28},x,i,n=5;
scanf("%d",&x);
a[0]=x;i=n;
while(a[i]>x) {a[i+1]=a[i];i--;}
a[++i]=x;n++;
for(i=1;i<=n;i++) printf("%4d",a[i]);
printf("\n");}
21、数组元素的逆序存放。(将一个数组逆序后输出)
#define N 5
main()
{int a[N]={98,16,25,47,163},i,temp;
for(i=0;i
for(i=0;i
22、求3*3矩阵主对角线元素之和。
main()
{int a[3][3],sum=0;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("\n");
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("%d\n",sum);}
23、求3*4矩阵最大元素及其位置。
main()
{int a[3][4]={1,2,3,5,6,7,8,9,41,25,36,55},i,j,max,m,n;
m=0;n=0;max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max) {max=a[i][j];m=i;n=j;}
printf("%d,%d,%d\n",a[m][n],m,n);}
24、二维数组按行求平均值。
main()
{int a[3][4]={1,2,3,4,5,6,7,8,9,0,11,22},i,j;
float s;
for(i=0;i<3;i++)
{s=0;
for(j=0;j<4;j++) s=s+a[i][j];
s=s/4;
printf("%f\n",s);}}
25.删除数列中值为x的元素,将其他元素前移,不重复。
#include
main()
{
int w[10]={-3,0,1,5,7,99,10,15,30,90},x,i,p=0;
scanf("%d",&x);
while(x!=w[p])
p=p+1;
for(i=p;i<10;i++)
w[i]=w[i+1];
for(i=0;i<9;i++)
printf("%5d",w[i]);
}
26.有N*N矩阵,以对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置0。例如:若N=3,有下列矩阵:
1 2 3 计算结果为 1 0 0
4 5 6 6 5 0
7 8 9 10 14 9
#include
#define N 4
main( )
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;
for(i=1;i
t[i][j]=t[i][j]+t[j][i];
t[j][i]=0;
}
for(i=0;i
}
}
27. 将a所指4*3矩阵中第k行元素与第0行元素交换。例如k=2时,第2行元素与第0行元素交换。
#include
#define M 4
#define N 3
main()
{ int x[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j,k,temp;
scanf("%d",&k);
for(i=0;i<3;i++)
{ temp=x[0][i];
x[0][i] = x[k][i];
x[k][i] = temp;
}
for(i=0;i
}
}
28.把str1中非空格字符串拷贝至str2中。
#include
main()
{ char str1[80]="Nice to meet you!";
char str2[80];
int i=0,j=0;
puts(str1);
while(str1[i])
{if(str1[i]!=' ') str2[j++]=str1[i]; i++;}
str2[j]='\0';
for(i=0;i<=j;i++) printf("%c",str2[i]);
}
29.找出串中指定字符个数。
#include
#include
main()
{char a[80], ch;
int n=0, i=0;
gets(a); ch=getchar();
while(a[i]!='\0')
{if(a[i]==ch) n++;i++;}
printf("%d\n", n );
}
30.依次取出某字符串中所有数字字符,形成新的字符串,并取代原字符串。
main()
{char s[80];
int num=0,i,j=0;
gets(s);
while(s[num]) num++;
for(i=0; i
{s[j++]=s[i];}
s[j]='\0';
puts(s);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯