c语言相关练习学习有感2

c语言相关练习学习有感2

1.

int main()
{
	char a = 0, ch;
	while ((ch = getchar()) != '\n')//当getchar输入的不是一个回车时就会进入到while函数里面,
	{
		if (a % 2 != 0 && (ch >= 'a' && ch <= 'z'))
			ch = ch - 'a' + 'A';
		a++;
		putchar(ch);
	}
	printf("\n");
	return 0;
}

 

 2.

//int main()
//{//以下哪个选项一定可以将 flag 的第二个 bit 位置 0,且其它 bit 位不变
//
//	int flag = 15;//15是个正数原反补码相同
//	//15的二进制表示0000 0000 0000 0000 0000 0000 0000 1111
//	int a=flag &= ~2;//&按位与有个二进制数,两1为1,有0则0
//	//2 的二进制表示0000 0000 0000 0000 0000 0000 0000 0010
//	//结果为        0000 0000 0000 0000 0000 0000 0000 0010,第2个比特位不变,其他都变,不符合
//
//	int b=flag != 2;//!=,==是逻辑操作符,成立为1,不成立为0,15!=2成立,答案为1
//	//         
//	//         0000 0000 0000 0000 0000 0000 0000 0001只有第一个不变其他3位都变
//
//	int c=flag ^= 2;//^=是按位异或即两1为0,有0则1
//	//0000 0000 0000 0000 0000 0000 0000 1111
//	//0000 0000 0000 0000 0000 0000 0000 0010
//	//结果为
//	//0000 0000 0000 0000 0000 0000 0000 1101符合题目要求
//
//	int d=flag >>= 2;
//	
//	//>>=二进制向右移动两位,左边补符号位,正数补0,负数补1,若是向左移动,右边都是补0
//	//0000 0000 0000 0000 0000 0000 0000 1111
//	//0000 0000 0000 0000 0000 0000 0000 0011
//	printf("%d\n", a);//13
//	printf("%d\n", b);//1
//	printf("%d\n", c);//15
//	printf("%d\n", d);//3
//	
//	return 0;
//}

3.

int main()
{
	int x = 1;//do while语句是先执行再判断
	//
	do {
		printf("%2d\n", x++);//x++右置++,先使用再++,打印1,加加后得2
	} while (x--);//同理先使用再--,while(2)成立--得1进入循环,死循环
	return 0;
}

4.

int main()
{
	int a = -3;//        1000 0000 0000 0000 0000 0000 0000 0011
	//反码               1111 1111 1111 1111 1111 1111 1111 1100
	//补码               1111 1111 1111 1111 1111 1111 1111 1101
	unsigned int b = 2;//b位无符号整形0000 0000 0000 0000 0000 0000 0000 0010
	long c = a + b;//长整形 电脑使用补码进行相加减
	//                   0000 0000 0000 0000 0000 0000 0000 0010
	//                   1111 1111 1111 1111 1111 1111 1111 1101
	//                   1111 1111 1111 1111 1111 1111 1111 1111
	printf("%u\n", c);//%u是打印无符号整形数,即即使是负数也将其认为是无符号整形数,以十进制数表示
	//4294967295
	return 0;
}

5.

7-1 真睡还是装睡 (15 分)

你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一个人的呼吸频率与脉搏,请你判断他是真睡还是装睡(即至少一项指标不在正常睡眠范围内)。

输入格式:

在一行中输入空格隔开的两个整数,分别表示一个人的呼吸频率和脉搏(均为不超过100的正整数)。

输出格式:

如果判定此人真睡,则输出 T,否则为装睡,输出 F

输入样例 1:

18 55

结尾无空行

输出样例 1:

T

结尾无空行

int main()
{
	int breath, pulse;
	scanf("%d %d", &breath, &pulse);
	if (breath >= 15 && breath <= 20)
	{
		if (pulse >= 50 && pulse <= 70)
		{
			printf("T");
		}
		else
			(printf("F"));
	}
	else
	{
		printf("F");
	}
	return 0;
}

运行结果 

 

6.

题述:有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。

🍳 输入描述:

    第一行输入一个整数(0≤N≤50)。

    第二行输入N个升序排列的整数,输入用空格分隔的N个整数。

    第三行输入想要进行插入的一个整数。

🍳 输出描述:

    输出为一行,N+1个有序排列的整数。

💨 示例:

输入:
    5
    1 6 9 22 30
    8
输出:
    1 6 8 9 22 30
————————————————
版权声明:本文为CSDN博主「跳动的bit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wh128341/article/details/120677309

int sort_up(const void*e1, const void*e2)
{
	return (*(int*)e1 - *(int*)e2);
}
int main()
{
	int n;
	scanf("%d", &n);
	int arr[51];
	
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}

	int input;
	scanf("%d", &input);
	arr[n] = input;
	qsort(arr, n + 1, sizeof(arr[0]), sort_up);
	for (i = 0; i < n + 1; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

运行结果

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevin~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值