【C语言实验】简单语法题Ⅰ

1.三数比较大小并按序输出

(1)源代码

#include <stdio.h>
	
int main()
 	
{
	int x,y,z,t;
	
	scanf("%d %d %d",&x,&y,&z);
	
 	if(x>y)
 	{
		t=x;x=y;y=t;
	} 
 	
 	if(x>z)
 	{
		t=x;x=z;z=t;
	} 

	if(y>z)
	{
		t=y;y=z;z=t;
	}
	    
 	printf("small to big: %d %d %d\n",x,y,z);
 	   
	return 0;
}
 	
	

(2)思路

        定义一个额外变量让x,y,z进行值的交换,让x,y,z互相都进行比较,然后按从小到大的顺序依次输出。

2.输出n行星号三角形
 

(1)源代码

#include<stdio.h> 	

int main()	
{
	int n,a,b,c; 
 	    
	scanf("%d",&n);
	 
	for(a=1;a<=n;a++)
	{
 		for(b=13;b>=a;b--)
		{
			printf(" ");
		} 
		for(c=1;c<=2*a-1;c++)
		{
			printf("*");
		} 
	  
 		printf("\n");
	}
 	
	return 0;
}

(2)思路

        每一行的空格逐级递减,星号逐级递增,利用嵌套循环实现。最外层循环的遍历每一行,内层第一个循环遍历每一行的空格,内层第二个循环遍历每一行的星号。

3.计算点到线的距离

(1)源代码

#include<stdio.h>
#include<math.h>
 	
int main()
{
 	double x0,y0,A,B,C;
 	
	scanf("%lf%lf",&x0,&y0);//输入点P的坐标
	
    scanf("%lf%lf%lf",&A,&B,&C);//输入直线L的A、B和C
    
 	printf("%f",fabs((A*x0+B*y0+C)/sqrt(A*A+B*B)));//输出距离
 	
	return 0;
} 
	

(2)思路

        记得引用math头文件,才能调用fabs函数计算绝对值,sqrt函数计算平方根。

4.方程能否构成圆

(1)源代码

#include <stdio.h>
#include <math.h>

int main()
{
 	int flag=1;//flag=1,circular;flag=0,no circular
 	double A,B,D,E,F,d,e,f,s;
 	    
	scanf("%lf%lf%lf%lf%lf",&A,&B,&D,&E,&F); //输入方程的5个参数
	
	d=D/A;
 	e=E/A;
 	f=F/A;
	s=sqrt((d*d+e*e-4*f)/4);
	    
 	if(A!=B || A==0 && B==0)
 	{
		flag=0;
	}
	else
	{
 			
		if((d*d+e*e-4*f)/4>0)
 	    {
	        flag=1;
	    }
	else{
			flag=0;
		}
	}
 	    
	     
 	    
	if(flag==1)
	{
		printf("Center of a circle is(%.2f,%.2f)\n",-d/2,-e/2);
 		printf("Radius of the circle is %.2f\n",s);
	}
	
	if(flag==0)
	{
 		printf("No circle");
	}
	    
	return 0;
}

(2)思路

        与第三题类似。

5.斐波那契数列

(1)源代码

#include <stdio.h>
int feibo(int n)
{  
    int i;
    int a1=1;
    int a2=1;
    int a3=1;

    for(i=2;i<n;i++)
    {
        a3=a1+a2;
        a1=a2;
        a2=a3;
    }
    
    return a3;
}

int main()
{
    int n;
    
    scanf("%d",&n);

    printf("%d",feibo(n));

    return 0;
}

(2)思路

将斐波那契数列前三个数初始化为1,然后利用循环将前两个数相加,再把第二个数赋值给第一个数,第三个数赋值给第二个数,然后进行下一次循环。

       

 6.简单分段函数计算

#include <stdio.h>
int main()
{
	float x;
	float y=0;
	
	scanf("%f",&x);
	
	if(x>=3){
		y=3*x+2;
	}
	
	if(x>=0 && x<3){
		y=(x*x)/(x+1);
	}
	
	if(x<0){
		y=-x;
	}
	
	printf("y=%.1f",y);
	
	
	return 0;
}
#include <stdio.h>	
int main()
{
	double x,y;
 	
 	scanf("%lf",&x);

	if(x<=100){
				y=0.51*x;
 			}
		 
 	else if(x>100){y=0.65*x;

	printf("%.2f",y);
 	 
return 0;
}
 	 

        

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值