C/C++教程

C语言练习题

本文主要是介绍C语言练习题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

代码在最下方

// 1、根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。
/*
该题注意事项,因为当x大于10的时候,要进行sin计算并且与0.5相加,故此才用float
*/
// one(-99);
// one(5);
// one(66);
//2:题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写)
// two();

//3: 题目:编写程序将用户输入的字母进行大小写转换。
// three();
//4: 编程判断输入的正整数是否即是5的倍数又是7的倍数。若是则输出该数;否则输出-1。
// four();
//5:题目:输入一个整数,判断它是奇数还是偶数并输出。
//five();
//6: 题目:从键盘输入二个整数a、b,将其按大到小排列
//six();
//7:题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等
//seven();//注意事项:利用%取到个位数的值
//8:题目:输入一个整数,判断该数是否能被3,5,7整除,并输出以下信息之一:
//eight();,注意事项:可以来个变量判断被那个数整除
// 9: 输入一个5位的正整数,判定该正整数是否为一个回文数。(所谓回文素数是指正读和反读都相同的数,例如12321)。
//nine(); //主要是拿到每个位置上的数进行比较
//10: 题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。
//ten(); //switch判断即可
//11、从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般)。
//eleven();
//12、 给出一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,然后再按逆序打印出各位数字。
// twelve();
//13、 题目:从键盘输入三个整数a、b、c,输出其中最大的数。
//thirteen();

//14、 题目:从键盘输入三个整数a、b、c,将其按大到小排列。
//fourteen();

// 15、题目:利用键盘输入某年某月某日,判断并输出这一天是这一年的第几天。

//fifteen();//注意事项:switc判断时候,第一月份sum赋值为0

//16、题目:打印出所有的“水仙花”数(提示:“水仙花” 数是指一个三位数,其各位数字的立方和等于该数本身,例如:153=13 + 53 + 33)
//sixteen();
//17、题目:从键盘上输入一个不多于四位的正整数,编写一个程序,完成下列功能:求出该数是几位数;分别打印出各位数字;按逆序打印各位数字。
//seventeen();
// 18、题目:计算 S=1!+2!+3!+…+20!的值并输出
//printf("%ld\n",eveighteen(20));
//19、题目:利用公式e=1/1!+1/2!+1/3!+…+1/n!计算e的值并输出(要求:误差小于10-5)
//printf("%ld\n",nineteen(5)); //1 2 6 24 120 |||
// 20、题目:计算并输出自然数1到n的平方和。
//printf("%d\n",twenty(3)); //
//21、题目:计算并输出1至n之间的奇数之和以及偶数之和(其中n由键盘输入)
//ershiyi(4);
//22、题目:计算并输出用数字0~9可以组成多少个没有重复的三位偶数。
//ershier();
//23、假设猴子第一天摘下若干桃子,并吃了一半又加一个,第二天早上又将剩下的桃子吃掉一半又加一个,以后每天早上都吃了前一天剩下的一半又加一个。到第 10 天早上时,只剩下一个桃子。计算并输出猴子第一天共摘多少桃子。
//ershisan();

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

double one(float x)
{
	if(x<=0)printf("%f\n",0);else if(x<=10){
		printf("%f\n",x);
	}else{
		printf("%f\n",0.5+sin(x));
	}
}

void two()
{
	int x;
	printf("请输入一个整数:");
	scanf("%d",&x);
	getchar();
	printf("\n"); 
	switch(x){
		case 65:
			printf("A");
			break;
		case 66:
			printf("B");
			break;
		case 68:
			printf("C");
			break;
		default:
			printf("END");
			break;
	}
} 

void three()
{
	char x,y;
	printf("请输入一个英文字符:\n");
	scanf("%c",&x);
	if(x>=65&&x<=90){
		y=x+32;
	}else if(x>=97&&x<=122){
		y=x-32;
	}
	printf("\n");
	printf("元字符:%c--转换字符:%c\n",x,y);

}
void four()
{
	int a;
	printf("请输入一个整数:\n");
	scanf("%d",&a);
	(a%5==0&&a%7==0)?printf("\n%d\n",a):printf("\n%d\n",-1); 
	
	
	
}

void five()
{
		int a;
	printf("请输入一个整数:\n");
	scanf("%d",&a);
	a%2==0?printf("\n偶数"):printf("\n奇数");
}

void six()
{
			int a,b;
	printf("请输入两个整数,用逗号分割:\n");
	scanf("%d,%d",&a,&b);
	a>b?printf("\n%d\t%d\n",a,b):printf("\n%d\t%d\n",b,a);
}

void seven()
{
	int i;
	for(i=0;i<=1000;i++){
		if(i<10){
			if(i==3||i==7)printf("%d\t",i);
		}else {
			if(i%10==3||i%10==7){
				printf("%d\t",i);
			}
		}
	}
}

void eight()
{
	
	int x=1;
	while(x=1){
		int a,b=0;
	printf("请输入一个整数:\n");
	scanf("%d",&a);
	if(a%3==0)b+=3;
	if(a%5==0)b+=5;
	if(a%7==0)b+=7;
	switch(b){
		case 0:
			printf("\n不能被3,5,7任一个整除。\n");
			break;
		case 3:
			printf("\n能被3整除。\n");
			break;
		case 5:
			printf("\n能被5整除。\n");
			break;
		case 7:
			printf("\n能被7整除。\n");
			break;
		case 8:
			printf("\n能被3,5整除。\n");
			break;
		case 10:
			printf("\n能被3,7整除。\n");
			break;
		case 12:
			printf("\n能被5,7整除。\n");
			break;			
		case 15:
			printf("\n能被3,5,7整除。\n");
			break;
	}
	}
}

void nine()
{
	int a;
	printf("请输入一个五位整数:\n");
	scanf("%d",&a);
	int g,s,b,q,w;//对应个十百千万位置上的数
	g=a%10;
	s=a/10%10;
	b=a/100%10;
	q=a/1000%10;
	w=a/10000%10; 
	(s==q&&g==w)?printf("\n是一个回文数\n"):printf("\n不是\n");
}
void ten()
{
while(1){
		int a,b,c;
	printf("请输入a,b,c的值:\n");
	scanf("%d,%d,%d",&a,&b,&c);
	getchar();
	printf("\n");
	switch(a)
	{
		case 1:
			printf("%d+%d=%d\n",b,c,b+c); 
			break;
		case 2:
			printf("%d-%d=%d\n",b,c,b-c);
			break;
			 
		case 3:
			printf("%d x %d=%d\n",b,c,b*c); 
			break;			
		case 4:
			printf("%d/%d=%d\n",b,c,b/c); 
			break;
	}
}
}

void eleven()
{
	while(1){
		int a,b,c;
	printf("请输入三角形的a,b,c变长:\n");
	scanf("%d,%d,%d",&a,&b,&c);
	printf("\n");
	if(a+b>=c&&a+c>=b&&b+c>=a){
		if(a==b&&b==c&&a==c){
			printf("等边三角形\n");
		}else if(a==b||b==c||a==c){
			printf("等腰三角形\n");
		}else{
			printf("一般三角形\n");
		}
	}else{
		printf("不能组成三角形\n");
	}
	}
}
void twelve()
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) 
printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
else if (b!=0) 
printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0) 
printf(" there are 3,%ld %ld %ld\n",e,d,c);
else if (d!=0)
printf("there are 2, %ld %ld\n",e,d);
else if (e!=0)
printf(" there are 1,%ld\n",e);	
}

void thirteen()
{
while(1){
		int a,b,c,i,j,t;
	printf("请输入a,b,c的值:\n");
	scanf("%d,%d,%d",&a,&b,&c);
	int arr[] = {a,b,c};
	for(i=0;i<2;i++){
		for(j=0;j<2-i;j++){
			if(arr[j]<arr[j+1]){
				t=arr[j];
				arr[j] = arr[j+1];
				arr[j+1]=t;
			}
		}
	}
	printf("最大数为:%d\n",arr[0]);
}
}

void fourteen()
{
			int a,b,c,i,j,t;
	printf("请输入a,b,c的值:\n");
	scanf("%d,%d,%d",&a,&b,&c);
	int arr[] = {a,b,c};
	for(i=0;i<2;i++){
		for(j=0;j<2-i;j++){
			if(arr[j]<arr[j+1]){
				t=arr[j];
				arr[j] = arr[j+1];
				arr[j+1]=t;
			}
		}
	}
	printf("最大数为:%d\t%d\t%d\n",arr[0],arr[1],arr[2]);
}

void fifteen()
{
	while(1){
		int year,month,day,sum=0;
	printf("请输入年-月-日:\n");
	scanf("%d-%d-%d",&year,&month,&day);
	getchar();
	switch(month){
		case 1:
			sum=0;
			break;
		case 2:
			sum+=31;
			break;
		case 3:
			sum= sum + 31+28;
			break;
		case 4:
			sum= sum + 31+28 +31;
			break;
		case 5:
			sum= sum + 31+28 +31 + 30;
			break;
		case 6:
			sum= sum + 31+28 +31 + 30 + 31;
			break;
		case 7:
			sum= sum + 31+28 +31 + 30 + 31 + 30;
			break;
		case 8:
			sum= sum + 31+28 +31 + 30 + 31 + 30 + 31;
			break;
		case 9:
			sum= sum + 31+28 +31 + 30 + 31 + 30 + 31 + 31;
			break;
		case 10:
			sum= sum + 31+28 +31 + 30 + 31 + 30 + 31 + 31 + 30;
			break;
		case 11:
			sum= sum + 31+28 +31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
			break;
		case 12:
			sum= sum + 31+28 +31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
			break;
	} 
	if((year%4==0&&year%100!=0)||year%400==0){
		if(month>2){
			sum+=1;
		}
	}
	printf("是该年的第%d天\n",sum+=day);
	}
}

void sixteen()
{
	int i,g,s,b;
	printf("水仙花数为:\n");
	for(i=100;i<1000;i++){
		g=i%10;
		s=i%100/10;
		b=i%1000/100;
		if((g*g*g)+(s*s*s)+(b*b*b)==i){
			printf("%d\t",i);
		}
	}
}

void seventeen(){
	while(1)
	{
		int var,g,s,b,q;
	printf("请输入小于等于9999的一个数\n");
	scanf("%d",&var);
	g = var%10;
	s = var%100/10;
	b = var%1000/100;
	q = var/1000;
	if(var>=999){
		printf("四位数\n%d,%d,%d,%d",g,s,b,q);
	}
	else if(var>=99){
		printf("三位数\n%d,%d,%d",g,s,b);
	}
	else if(var>=10){
		printf("两位数\n%d,%d",g,s);
	}else{
		printf("一位数\n%d",g);
	}
	}
	
}

unsigned long long eveighteen(unsigned long long x)
{
	if(x==0)return 1;
	else return x*eveighteen(x-1);
	
}
long mYnineteen(long var){
	if(var==0||var==1)return 1;
	else return var*mYnineteen(var-1);
}
long nineteen(int n){
	int i=0;long e;
	for(i=0;i<=n;i++){
		e+=n/mYnineteen(n);
	}
	return e;
}
int tq(int n){
	return n*n;
}
int twenty(int n)
{
//if(n==0)return 1;
//else {
//	return tq(n)+twenty(n-1);
int i,sum=0;
for(i=1;i<=n;i++)
{
	sum+=i*i;
 } 
 return sum;
	
}

void ershiyi()
{
	while(1)
	{
		int i,n,odd=0,even=0;
	printf("请输入n值:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		if(i%2==0){
			even+=i;
		}else{
			odd+=i;
		}
	}
	printf("奇数和:%d\t偶数和:%d\n",odd,even);

	}
}

void ershier()
{
	int a,b,c,tag=0;
	for(a=1;a<=9;a++)
	for(b=0;b<=9;b++)
	for(c=0;c<=9;c++){
		if(a!=b&&b!=c&&a!=c)
		if(c%2==0)tag++;
	}
	printf("%d个\n",tag);
}
void ershisan()
{
	int x=0,i=1;
for(;i<10;i++){
	x=2*x+1;
}
printf("%d\n",x);
}

int main()
{
	// 1、根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。 
	/*
		该题注意事项,因为当x大于10的时候,要进行sin计算并且与0.5相加,故此才用float 
	*/ 
//	one(-99);
//	one(5);
//	one(66);

	//2:题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写)            
// two();

//3: 题目:编写程序将用户输入的字母进行大小写转换。
//	three();
//4:	编程判断输入的正整数是否即是5的倍数又是7的倍数。若是则输出该数;否则输出-1。
//	four();
//5:题目:输入一个整数,判断它是奇数还是偶数并输出。
//five();
//6: 题目:从键盘输入二个整数a、b,将其按大到小排列
//six();
//7:题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等
//seven();//注意事项:利用%取到个位数的值 
//8:题目:输入一个整数,判断该数是否能被3,5,7整除,并输出以下信息之一: 
//eight();,注意事项:可以来个变量判断被那个数整除 
// 9: 输入一个5位的正整数,判定该正整数是否为一个回文数。(所谓回文素数是指正读和反读都相同的数,例如12321)。
//nine(); //主要是拿到每个位置上的数进行比较 
//10: 题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。
//ten(); //switch判断即可 
//11、从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般)。 
//eleven();
//12、 给出一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,然后再按逆序打印出各位数字。 
//	twelve();
//13、 题目:从键盘输入三个整数a、b、c,输出其中最大的数。 
//thirteen(); 

//14、 题目:从键盘输入三个整数a、b、c,将其按大到小排列。 
//fourteen(); 

// 15、题目:利用键盘输入某年某月某日,判断并输出这一天是这一年的第几天。 

//fifteen();//注意事项:switc判断时候,第一月份sum赋值为0
 
//16、题目:打印出所有的“水仙花”数(提示:“水仙花” 数是指一个三位数,其各位数字的立方和等于该数本身,例如:153=13 + 53 + 33)
//sixteen(); 
//17、题目:从键盘上输入一个不多于四位的正整数,编写一个程序,完成下列功能:求出该数是几位数;分别打印出各位数字;按逆序打印各位数字。
//seventeen(); 
// 18、题目:计算 S=1!+2!+3!+…+20!的值并输出
//printf("%ld\n",eveighteen(20));
//19、题目:利用公式e=1/1!+1/2!+1/3!+…+1/n!计算e的值并输出(要求:误差小于10-5)
//printf("%ld\n",nineteen(5)); //1  2  6 24 120 ||| 
// 20、题目:计算并输出自然数1到n的平方和。
//printf("%d\n",twenty(3)); // 
//21、题目:计算并输出1至n之间的奇数之和以及偶数之和(其中n由键盘输入)
//ershiyi(4); 
//22、题目:计算并输出用数字0~9可以组成多少个没有重复的三位偶数。
//ershier();
//23、假设猴子第一天摘下若干桃子,并吃了一半又加一个,第二天早上又将剩下的桃子吃掉一半又加一个,以后每天早上都吃了前一天剩下的一半又加一个。到第 10 天早上时,只剩下一个桃子。计算并输出猴子第一天共摘多少桃子。
//ershisan(); 

 

	return 0;
}
这篇关于C语言练习题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!