C语言练习8.4

1.求s=1+(1+2)+(1+2+3)+.....+(1+2+3+4...+n)

int main()
{
	int n = 1;
	int j = 0;
	int sum1 = 0;
	int sum2 = 0;
	printf("请输入一个数:\n");
	scanf("%d", &n);

		for (j = 1; j <= n; j++)//不需要使用两次循环
		{
			sum1 = sum1 + j;
			sum2 = sum2 + sum1;
		}
		
		
	printf("%d\n", sum2);
	
	return 0;
}

2.判断结果

int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		if (i = 5)// =赋值 i始终等于5 
			printf("%d ", i);//死循环的打印5

	}
	return 0;
}

因为i=5是赋值 不是判断语句。

3.选择题

关于if语句说法正确的是:(C)
A.if语句后面只能跟一条语句   //跟大括号
B.if语句中0表示假,1表示真   //0表示假 非0表示真
C.if语句是一种分支语句,可以实现单分支,也可以实现多分支
D.else语句总是和它对齐的if语句匹配  //和他最近的if匹配

 4.选择题

关于switch说法不正确的是(C)
A.switch语句中的default子句可以放在任意位置
B.switch语句中case后的表达式只能是整型常量表达式
C.switch语句中的case子句必须放在default子句之前
D.switch语句中case表达式不要求顺序

5.下面代码执行结果是什么()


int func(int a)
{
	int b;
	switch (a)
	{
	case 1:b = 30;//没有break;所以一直往后执行 直到default 所以b=0;
	case 2:b = 20;
	case 3:b = 16;
	default:b = 0;
	}
	return b;
}
则func(1)=?

6.选择题

switch(c)语句中,c不可以是什么类型(D)//整型常量表达式

A.int 

B.long

C.char//字符对应的ASCII也是整型

D.float  //单精度浮点型
 

 7.下面代码执行结果是什么(hellothird)

int main()
{
	int x = 3;
	int y = 3;
	switch (x % 2)
	{
	case 1:
		switch (y)
		{
		case 0:
			printf("first");
		case 1:
			printf("second");
		default:printf("hello");//后面没有break; 所以运行到case 2:打印 hellothird
		}
	case 2:
		printf("third");

	}
	return 0;
}

8.从大到小输出三个数

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%d%d", &a, &b, &c);
	//算法实现
	//a放最大值
	//b次之
	//c放最小值
	if (a<b)//a里面放到较大值
	{
		int tmp = a;//tmp临时变量
		a = b;
		b = tmp;
	}
	if (a < c)
	{
		int tmp = a;
		a = c;
		c = tmp;
	}
	if (b < c)
	{
		int tmp = b;
		b = c;
		c = tmp;
	}
	printf("%d %d %d", a, b, c);
	return 0;
}

9.写一个代码打印1-100之间所有的3的倍数

int main()
{
	int i = 1;
	for (i = 1; i <= 100; i++)
	{
		if (i % 3 == 0)//  *重点*
			printf("%d ", i);
	}

	return 0;
}

10. 给定两个数 求最大公约数

int main()
{
	int m = 0;
	int n = 0;
	int r = 0;
	scanf("%d%d", &m, &n);
	while (m % n)//m%n 非0为真                 
	{
		r = m % n;//r=6
		m = n; //辗转相除法
		n = r;
	}
	printf("最大公约数为:%d", n);//m%n==0 跳出循环
	return 0;
}


//
//while (r=m % n)//m%n 非0为真
//{
//	m = n; //辗转相除法
//	n = r;
//}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值