C语言入门基础题(一)

1.有一个函数:y=2x-1 (1<=x<10);y=3x-11 (x>=10)写程序,输入x的值,输出y相应的值。

#include<stdio.h>
int main()
{
	int x,y;
	printf("输入一个数x:");
	scanf("%d",&x);
	if(x<1) 
	{
	   printf("请重新输入x值,使得x>=1:");
	   scanf("%d",&x);
	}
	if(x>=1&&x<10)
	{
		y=2*1-1;
		printf("%d\n",y);
	}
	if(x>=10)
	{
		y=3*x-11;
		printf("%d\n",y);
	}
	return 0;
}

2.有3个整数,由键盘输入,输出其中最大的数

#include <stdio.h>
int main()
{
int a,b,c,max;
printf("请输入三个整数:");
scanf("%d %d %d",&a,&b,&c);
max=a;
if(b>max)
	max=b;
if(c>max)
	max=c;
printf("这三个数的最大值为:%d\n",max);
return 0;
}

3.从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。

#include <stdio.h>
#include<math.h>
int main()
{
	int a;
	printf("输入一个小于1000的正整数:");
	scanf("%d",&a);
	if(a>1000||a<0)
		{
		printf("请重新输入:\n");
		scanf("%d",&a);
		}
	a=sqrt(a);
	printf("这个数的平方根为:%d\n",a);
	return 0;
}

4. 给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,60~69分为D,60分以下为E。

用if语句写的

#include <stdio.h>
int main()
{
	int grade;
	printf("输入一个百分制成绩:");
	scanf("%d",&grade);
	if(grade <0||grade>100)
	{
		printf("输入错误,请重新输入一个1~100的成绩:");
		scanf("%d",&grade);
	}
		if(grade>90)
			printf("等级为A\n");
		else if (grade<=90&&grade>80)
			printf("等级为B\n");
		else if (grade<=80&&grade>70)
			printf("等级为C\n");
		else if (grade<=70&&grade>=60)
			printf("等级为D\n");
		else if (grade<60)
			printf("等级为E\n");	
		else printf("输入错误,请重新输入一个1~100之间的成绩");
	return 0;
}

用switch方法


#include <stdio.h>
int main()
{
	int grade;
	printf("输入一个百分制成绩:");
	scanf("%d",&grade);
	if(grade <0||grade>100)
	{
		printf("输入错误,请重新输入一个1~100的成绩:");
		scanf("%d",&grade);
	}
	{
		switch(grade/10)
		{
		case 0:
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:printf("等级为E\n");break;
		case 6:printf("等级为D\n");break;
		case 7:printf("等级为C\n");break;
		case 8:printf("等级为B\n");break;
		case 9:
		case 10:printf("等级为A\n");break;
		}	
	}
	return 0;
}

5.输入4个整数,要求按由小到大的顺序输出

#include <stdio.h>
int main()
{
int a,b,c,d,t;
printf("输入四个数字:");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b) {t=a;a=b;b=t; }
if(a>c) {t=a;a=c;c=t; }
if(a>d) {t=a;a=d;d=t; }
if(b>c) {t=b;b=c;c=t; }
if(b>d) {t=b;b=d;d=t; }
if(c>d) {t=c;c=d;d=t; }
printf("从小到大一次为:%d %d %d %d",a,b,c,d);
return 0;
}

用循环和数组实现

#include <stdio.h>
int main()
{
	int a[4];
	printf("请输入四个数:");
	scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);
	int i,j,t;
	for(i=0;i<4;i++)
	{
	for(j=0;j<4-i;j++)
	{
		if(a[j]>a[j+1])
		{
	    t=a[j+1];
	    a[j+1]=a[j];
	    a[j]=t;
		}
	}
}
printf("从小到大一次为:%d %d %d %d",a[0],a[1],a[2],a[3]);
return 0;
}

6.给出一个不多于5位数的正整数;(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆顺序输出各位数,例如原有数为123,应输出321

#include <stdio.h>
int main()
{
	long i,k;
	int a,b,c,d,e;
	printf("输入一个数:");
	scanf("%ld",&i);{
	a=i/10000;
	b=i%10000/1000;
	c=i%1000/100;
	d=i%100/10;
	e=i%10;
	if(a>0)
	{
		printf("是五位数\n");
	    k=10000*e+1000*d+100*c+10*b+a;
	}
	else if(b>0) 
	{
		printf("是四位数\n");
		k=1000*e+100*d+10*c+b;
	}
	else if(c>0) 
	{
		printf("是三位数\n");
		k=100*e+10*d+c;
	}
	else if(d>0) 
	{
		printf("是二位数\n");
		k=10*e+d;
	}
	else if(e>0) 
	{
		printf("是一位数\n");

		k=e;
	}
	else printf("输入错误");
	printf("这几个数分别为:%d %d %d %d %d\n",a,b,c,d,e);
	printf("这个数逆序为:%ld\n",k);
	}
	return 0;
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值