0)printf("s=%f\nl=%f\n",s,l);elseprintf("error\n");return0;}2、输入三个整型数据,判断这三个整型数据能否围成三角形" />
编程题:
1、根据矩形面积的计算方法,编写一个输入圆半径r,计算园周长L和圆面积S的程序。注意判断圆半径r是否大于零。
#include
int main()
{
float r,s,l;
scanf("%f",&r );
s=3.14*r*r;
l=2*3.14*r;
if(r>0)
printf("s=%f\nl=%f\n",s,l);
else
printf("error\n");
return 0;
}
2、输入三个整型数据,判断这三个整型数据能否围成三角形,如果能组成三角形,计算并输出它的面积,如果不能围成三角形输出“三条边不能围成三角形”。
#include
#include
void main()
{
float P,S,a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
if((b+c)>a&&(a+c)>b&&(a+b)>c)
{
P=(a+b+c)/2;
S=sqrt(P*(P-a)*(P-b)*(P-c));
printf("S=%6.2f",S);
}
else
printf("it is not a trilateral");
}
3、输入一个百分制成绩,输出对应的等级。90·100:A,80~89:B,70~79:C,60~69D,不及格为E。
#include
int main()
{
int x;
printf("输入\n");
scanf("%d",&x);
if(x>100||x<0)
printf("error");
switch(x/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;
default:printf("e\n");
}
return 0;
}
4、编程实现 ??<--=>+=0100
012x x x x x y 。
#include
void main()
{
float x,y;
printf("输入x 值:");
scanf("%f",&x);
if(x>=0)
if(x>0)y=2*x+1;
else
y=0;
else
y=-x-1;
printf("x=%f,y=%f\n",x,y);
}
5、求10
1!n n =∑(即求1!2!3!10!++++ )
(程序代码和运行结果可写在指导书背面)。
#include
void main()
{
int score,number;
long int i,j,sum=1,total=0;
for(i=1;i<=10;i++)
{
for(j=1;j<=i;j++)
{
sum=sum*j;
}
printf("%d的阶乘是%1d\n",i,sum);
total=total+sum;
sum=1;
}
printf("%d阶乘的总和是%1d:\n",i,total);
}
6、输入10个数,用“冒泡法”对10个数排序(由小到大)。
#include
main()
{
int a[10],i,j,t;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("before sorting:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("\nafter sorting:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
7、有一篇文章,共有3行文字,每行80个字符。要求分别统计出其中英文字母和数字的个数。
#include
int main()
{int i,j,upp,low,dig,spa,oth;
char text[3][80];
upp=low=dig=spa=oth=0;
for (i=0;i<3;i++)
{ printf("please input line %d:\n",i+1);
gets(text[i]);
for (j=0;j<80 && text[i][j]!='\0';j++)
{if (text[i][j]>='A'&& text[i][j]<='Z')
upp++;
else if (text[i][j]>='a' && text[i][j]<='z')
low++;
else if (text[i][j]>='0' && text[i][j]<='9')
dig++;
else if (text[i][j]==' ')
spa++;
else
oth++;
}
}
printf("\nupper case: %d\n",upp);
printf("lower case: %d\n",low);
printf("digit : %d\n",dig);
printf("space : %d\n",spa);
printf("other : %d\n",oth);
return 0;
}
8、写一个函数,使给定的3*3的二维整型数组转置,即行列互换。要求输出转换之前和转换之后的结果。
#include
void zz(int (*a)[3]);
int main()
{
int b[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&b[i][j]);
}
zz(b);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d\t",b[i][j]);
printf("\n");
}
return 0;
}
void zz(int (*a)[3])
{
int t,i,j;
for(i=0;i<3;i++)
{
for(j=0;j
{
t=*(*(a+i)+j);
*(*(a+i)+j)=*(*(a+j)+i);
*(*(a+j)+i)=t;
}
}
return;
}
9、输入3个学生4门课的成绩,分别用函数实现以下功能:(1)计算每个学生的平均分。(2)计算每门课的平均分。(3)找出12个分数中最高分数所对应的学生和课程。
#include
int av(int a[3][4],int b)
{
int i,s=0;
for(i=0;i<4;i++)
s+=a[b][i];
s=s/4;
return s;
}
int av2(int a[3][4],int b)
{
int i,s=0;
for(i=0;i<3;i++)
s+=a[i][b];
return s/3;
}
int max(int a[][4],int *p1,int *p2)
{
int s,i,j;
s=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]>s)
s=a[i][j],*p1=i,*p2=j;
return s;
}
void main()
{
int i,j,b=0,c=0,d,a[3][4];
int *p1,*p2;
p1=&b,p2=&c;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
printf("请输入第%d个学生%d次成绩",i+1,j+1),
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
printf("第%d个学生的平均成绩为%d\n",i+1,av(a,i));
for(i=0;i<4;i++)
printf("第%d门课程的平均分为%d\n",i+1,av2(a,i));
d=max(a,p1,p2);
printf("分数最高的为%d是第%d学生的第%d门课程\n",d,b+1,c+1);
}
10、用函数实现两个变量值的交换,使其在主调函数和被调函数中的值一致,并且返回这两个变量的和以及乘积。要求用指针变量作为函数参数。
#include
void fun(int *a,int *b)
{
int temp ;
temp = *a ;
*a = *b ;
*b = temp ;
}
main()
{
int a=1;
int b=2;
fun(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
11、编写函数 int find(int *p,int n,int x),在指针 p 所指的数组中查找整型数 x,如果 x 在数组中,则该函数返回 1,否则返回 0。n 为数组的大小。编写主函数测试之。
#include
int find(int *p,int n,int x) /*如果在长度为n的整型数组p中找到了整数x,则返回0,否则返回1*/
{
int i;
for (i = 0; i if (p[i]==x) {return 0; } } return 1; } int main(void){ int a[5],i,x; for (i = 0;i<5; i++) { scanf("%d",a+i); } printf("输入一个要查找的整数:"); scanf("%d",&x); if (find(a,5,x)) { printf("%d不在这个数组中!\n",x); } else printf("%d在这个数组中!\n",x); return 0; } 12、编写并调试程序:功能是打印100以内个位数为6且能被3整除的所有数。 #include void main() { int i; for(i=1;i<=100;i++) { if(i%10==6&&i%3==0) printf("%d\n",i); } } 13、编写并调试程序:编写一函数,实现从大到小的冒泡法排序功能。主函数中从键盘上输入10个数,赋给一个数组,把该数组作为参数,调用刚才编写的函数,并在主函数中输出结果。 #include "stdio.h" #include "conio.h" void bubbleSort(int a[],int n) { int i,j,temp; for(i=0;i<9;i++) { for(j=9;j>=i+1;j--) {