栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

回顾C语言(二)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

回顾C语言(二)

回顾C语言(四) C语言流程控制语句20道练习题

1、break continue
使用 break 和 continue 来分别显示一个 4 之后函数就不再打印 i。(i 的变化范围是 0~10)

// problem 1.1

void Homework_Break(void)

{
  for(int i = 0;i <= 10;i++)
  {
​    if(i > 4)
​    {
​      printf("Problem1.1_result: %d n",i);
​      break;
​    }
  }
}

// problem 1.2
void Homework_Continue(void)
{
  for(int i = 0;i <= 10;i++)
  {
​    if(i > 4)
​    {
​      continue;
​    }
​    printf("Problem1.2_result: %d n",i);
  }
}

2、求 100 之内自然数中最大的能被 17 整除的数。

//problem 2
void MaxValue_OneHundred_Divided_Seventeen()
{
	int i = 1;

	while((i++)*17 < 100);
	printf("Problem2_result: %d n",(i-2)*17);
}

3、已知 a,b,c 都是 1 位整数,求当三位数 abc+cba 的值为 1333 时 a,b,c 的值。

void Conclusions_Of_A_B_C()
{
	int a,b = 1,c;

	for(a = 4; a < 10;a++)
		for(c = 1; c < 10;c++)
		{
			if((a + c == 13))
			{
				printf("Problem3_result: %d , %d ,%dn",a,b,c);
				printf("a = %d,b = %d,c = %d,  result: abc:%d + cba:%d = %dnn",a,b,c,(a*100+b*10+c),(c*100+b*10+a),(a*100+b*10+c)+(c*100+b*10+a));
			}
		}
}

4、输入年份,判断是否闰年。

//problem 4


void JudgeIntercalaryYear()
{
	int year;
	scanf("璇疯緭鍏ュ勾浠斤細 %d",&year);
	if((year%400 == 0) || ((year%4 == 0) && (year%100 != 0)))
	{
		printf("YESn");
	}
	else
	{
		printf("NOn");
	}
}

5、计算并输出 200—400 之间不能被 3 整除的整数的和

//problem 5
void BetweenTwoHundredAndThreeHundredSumNoDividedThree()
{
	int sum = 0;
	for(int i = 200; i <= 400; i++)
	{
		if(i%3 == 0)
		{
			continue;
		}
		sum += i;	
	}
}

6、编程计算 1! +2! +3! + …… +10!的值。

// problem 6
// 方式一:
int fun(int num)// 递归函数,求一个数的阶乘
{
	if(num == 1)
		return 1;

  	return num*fun(num - 1);
} 
void Sum() // 求和函数,将每个数的的阶乘相加
{
	int sum = 0;
	for(int i = 1;i <= 10;i++)
	{
		sum+=fun(i);
	}
	printf("Problem6_result: %dn",sum);
}



7、编程计算 1*2*3+3*4*5+…+99*100*101 的值。

//problem 7
void PrefixOddNumSum()
{
	int sum = 0,i;
	for(i = 1; i <= 99;i += 2)
	{
		sum += i*(i+1)*(i+2);
	}
	printf("Problem7_result: %dn",sum);
}

8、输出所有 200-400 以内能被 3 整除且个位数字为 7 的整数。

//problem 8
void BetweenTwoHundredAndThreeHundredSumDividedThree()
{
	printf("Problem8_result:");
	for(int i = 200; i <= 400; i++)
	{
		if((i%3 == 0) &&(i%10 == 7))
		{
			printf(":         %dn",i);
		}
	}
}

9、打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。

例如:153=1*1*1+5*5*5+3*3*3=1+125+27

//problem 9
void ThreedigitSumIsSelf()
{
	int a,b,c;
	printf("Problem9_result:n");
	for(int i = 100;i < 999;i++)
	{
		a = i / 100;
		b = (i % 100) /10;
		c = i % 10;
		if(i == (a*a*a + b*b*b + c*c*c)) 
		{
		   printf(":     %dn",i);
		}
	}
}

10、输出 100 到 200 以内的所有素数(只能被本身或则 1 整除的数)

//problem 10
void SUshu()
{
	printf("Problem10_result: n");
	int flag = 1;
	for(int i = 100;i <= 200;i++)
	{
		for(int j = 2;j <= i/2;j++)
		{
			if(i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if(flag == 1)
		{
			printf(":         %dn",i);
		}
		flag = 1;
	}
}

11、求 1-1/2+1/3-1/4+……+1/99-1/100 的值

// problem 11
// 方式一:直接相加,判断分母奇偶分母是偶数乘以 -1
void Problem11()
{
	double sum = 0;
	for(int i = 1; i <= 100;i++)
	{
		if(i%2 == 1)
		{
			sum += 1/(i*1.0);
		}
		else
		{
			sum += -1/(i*1.0); 
		}
	}
	printf("Problem11_result: %fn",sum);
}


12、用 1 元人民币兑换 5 分(20), 2 分(50), 1 分(100)的硬币共 50 枚, 每种硬币至少 1 枚,

问共有多少种兑换方案, 输出每一种方案三种硬币的数量。

// problem 12

void Problem12()
{
	int x,y,z;
	for(int i = 1;i <= 20;i++)
	{
		x = i;
		y = 50 - 4*x;
		z = 3*x;
		if((x >= 1) && (y >= 1) && (z >= 1))
		{
			printf("Problem12_result: x= %d,y= %d,z= %dn",x,y,z);
		}
	}
}

13、已知银行定期存款利率为 r=2.25%,输入存款本金 x, 存款年数 n,输出本利之和 r=x(1+r)
(1+r) …(1+r),共 n 个(1+r).

// problem 13
// 方式一:先求出 n 年的总利率,再乘以本金
void Problem13()
{
	double r = 0.0225;
	double result = 1;
	double x = 0;
	int year;
	scanf("%lf%d",&x,&year);


	for(int i = 1;i <= year;i++)
	{
		result *= (1 + r);
	}
	
	printf("Problem13_result: %fn",x*result);
}

14、输入正整数,将正整数分解质因数。质因数要满足两个条件:1)是这个数的因数;2)是质数(素数)
如: 6=2*3 12=2*2*3。

// problem 14
void Problem14()
{
	int num,temp = 2;
	printf("璇疯緭鍏ヤ竴涓鏁存暟锛?);
	scanf("%d",&num);
	printf("Problem14_result锛?);
	for(int i = 2;i <= num;i++)
	{
		while(num % i == 0)
		{
			printf("%d ",i);
			num /= i;
		}
	}
	printf("n");
}

15、输出 10000 以内的所有完全数, 各个小于它的约数(真约数, 列出某数的约数, 掉该数本身,
剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。
例如:第一个完全数是 6,它有约数 1、 2、 3、 6,除去它本身 6 外,其余 3 个数相加,
1+2+3=6。第二个完全数是 28,它有约数 1、 2、 4、 7、 14、 28,除去它本身 28 外,其余 5
个数相加, 1+2+4+7+14=28。

// problem 15
void Problem15()
{
    int sum;
    printf("Problem15_result:n");
	for(int i = 2;i < 10000;i++)
	{
		sum = 1;
		for(int j = 2; j < i;j++)
		{
			if(i % j == 0)
			sum += j;
		}
		if(sum == i)
		printf(":      %dn",i);
	}	
}

16、写一段程序,输入 x,输出 y 值。
x x<1
y= 2x-1 1≤x<10
3x-11 x≥10

// problem 16
void Problem16()
{
	int x,y;
	scanf("%d",&x);

	if(x < 1)
	{
	  y = x;
	}
	else if( x >= 1 && x < 10)
	{
	  y = 2*x - 1;
	}
	else if(x >= 10)
	{
	  y = 3*x - 11;
	}
	else
	printf("输入不合法n");
	printf("%dn",y);
}

17、求 Sn=a+aa+aaa+……+aa…aa(n 个 a)之值,其中 a 是一个数字,n 表示 a 的位数。
例如:2+22+222+2222+22222(此时 n=5),n 由键盘输入。

// problem 17
// 方式一:
int Pow(int n,int m) // 求n 的 m次方
{
	if(m == 0)
	{
		return 1;
	}
  	return n*Pow(n,m-1);
}

int Num(int a,int n)  求 n 位数均为 a 的数
{
   	int result = 0;
	for(int i = 0;i < n;i++)
	{
	    result += a*Pow(10,i);
	}
	return result;
}
void Problem17() // 求求 Sn=a+aa+aaa+……+aa..aa(n 个 a)之值
{
	int a,n,sum = 0;
	scanf("%d%d",&a,&n);
	for(int i = 1;i <= n;i++)
	{
		sum += Num(a,i);
	}
	printf("Problem17_result: %dn",sum);
}


void Problem18()
{
	int i = 20,temp;
	double a = 2,b = 1;
	double sum;
	while(i--)
	{
		sum += a/b;

		temp = a;
		a = a + b;
		b = temp;
	} 
	printf("Problem18_result: %fn",sum);
}

19、小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下去,到第
真十天吃前恰好还剩一个桃子。问第一天小猴摘了多少桃子?

// problem 19 


void Problem19()
{
	int i = 9;
	int n = 0;
	while(i--)
	{
		n = (n+1)*2;
	}
	
	printf("Problem19_result: %dn",n);
}

20、两个乒乓球队进行比赛,各出 3 人。甲对为 A、B、C 3 人,乙队为 X、Y、Z 3 人。已抽签决定比赛
名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比,编程找出 3 对赛手的
名单。

// problem 20

void Problem20()
{
	char xyz[] = {'X','Y','Z'};
	char A,B,C;
	for(int i = 0;i < 3;i++)
	{
		A = xyz[i%3];
		B = xyz[(i+1)%3];
		C = xyz[(i+2)%3];
		if((A != 'X') && (C != 'X') && (C != 'Z'))
		{
			printf("Problem20_result: A : %c, B : %c, C : %cn",A,B,C);
		}
	}
}




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/513340.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号