C初阶测试

目录

1 知识点

2 求a的值

3 求n的值

4 求最大公倍数

5 倒置字符串


1 知识点

(1)当看到i++,++i等 要考虑一下前置还是后置,不要一味地只知道加一多思考。

(2)switch语句中的defaule语句可以不写

(3)C程序的基本组成单位是函数。

(4)注释想写哪里写哪里,但是不要写的奇奇怪怪。

(5)C语言每行可以写多条语句,但是我们习惯一行写一条语句。

(6)C语言本身没有输入输出语句,c语言的库函数,并不是官方提供的,是编译器的厂商提供的。

(7)在对一个c程序的编译过程中,是无法发现注释中的错误的。

(8)*p++ 是p++,再解引用,因为是后置++,所以使用再++,*p,然后++

(9)10|11, | 是按位或

(10)整数之间的变换 整形提升,浮点型之间的变换 算数转换 ,整形和浮点型之间 算数转换

2 求a的值

代码展示:

#include <stdio.h>
#include <stdlib.h>
int a = 1;
void test()
{
	int a = 2;
	a += 1;
}
int main()
{
	test();
	printf("%d\n", a);
	return 0;
}

函数体的局部变量a,出了函数就被销毁了,所以打印a的值为1全局变量。

3 求n的值

代码展示:

#include <stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	int n = 0;
	for (i = 0, j = 0; (j = 123) && (i < 4); i++)
	{
		n++;
	}
	printf("%d", n);
	return 0;
}

注意:j的值被赋成123,而不是判断。所以n = 4.

4 求最大公倍数

代码1展示:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int c = (a > b) ? (a) : (b);
	int i = c;
	while (i % a != 0 || i % b != 0)
	{
		i++;
	}
	printf("%d", i);
	return 0;
}

代码2展示:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int i = 1;
	while ((i * a) % b != 0)
	{
		i++;
	}
	printf("%d", i * a);
	return 0;
}

思路: 一个数(从1开始)乘以a,然后整除b,就是最小公倍数。

5 倒置字符串

将一句话的单词倒置,标点不倒置。例如: I like beijing. 经过函数后为 beijing. like I

(以空格分隔)

代码展示:

#include <stdio.h>
#include <assert.h>
#include <string.h>
void reverse(char* left, char* right)
{
	assert(left && right);
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
int main()
{
	char arr[100] = { 0 };
	gets(arr);//输入
	int len = strlen(arr);//倒置
	char* start = arr;
	char* end = arr;
	while (*end != '\0')//单个单词逆序
	{
		while (*end != ' ' && *end != '\0')
		{
			end++;
		}
		reverse(start, end - 1);
		while (*end == ' ')
		{
			start = end + 1;
			end = end + 1;
		}
	}
	reverse(arr, arr + len - 1);//输出
	printf("%s", arr);
	return 0;
}

思路:先把每个单词逆序,空格不变,最后一个单词把标点符号带上,把标点符号看做是单词的一部分,然后集体逆序。

逆序单词  逆序一句话  ,都是在逆序字符串。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是小刘同学啦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值