当前位置:主页 > 查看内容

【C语言学习笔记——2】

发布时间:2021-06-09 00:00| 位朋友查看

简介:声明由于作者水平有限本文难免有错误和不准确之处本人也很想知道这些错误恳望读者批评指正。 【联系方式】1583598623qq.com 【更新记录】2021年4月10日第一次更新 【勘误记录】暂无 1.局部变量优先 # define _CRT_SECURE_NO_WARNINGS 1 # include stdio.h in……

声明:由于作者水平有限,本文难免有错误和不准确之处,本人也很想知道这些错误,恳望读者批评指正。

【联系方式】1583598623@qq.com
【更新记录】2021年4月10日(第一次更新 )
【勘误记录】暂无

1.局部变量优先

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int a = 100;
int main()
{
	int a = 10;
	printf("a=%d\n", a);
	return 0;	
}

在这里插入图片描述

2.数组结束标志是"\n",如下程序没有给出具体\n位置,所以输出是随机值。

strlen是用来获取字符串的有效长度的,结尾标记’\0’不包含在内。strlen获取的规则非常简单:从前往后一次检测,直到遇到’\0’是就终止检测。而arr是一个字符数组,不是一个有效的字符串,因为后面没有放置’\0’,因此strlen在求解时,将有效字符检测完之后,还会继续向后检测,直到遇到’\0’是才终止。

int main()
{
char arr[] = { 'b','i','t' };
printf("%d\n", strlen(arr));
return 0;
}

在这里插入图片描述

3.一般写代码不建议把函数的名字全大写,最多首字母

int Max(int x, int y)//一般写代码不建议把函数的名字全大写
{
	if (x > y)
		return x;
	else
		return y;
}
int main()
{

	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int m=Max(a, b);
	printf("%d\n", m);
	return 0;

4.c语言中由";"隔开的就是一条语句。

5.switch语句当中,switch里边可以接常变量,case不能接

int main()
{
	int n =  1;
	int m =  2;
	switch (n)//没问题
	{
	case 1:m++;
	}
	printf("m=%d\n", m);
	return 0;
}

在这里插入图片描述

int main()
{
	int n =  1;
	int m =  2;
	switch (1)
	{
	case n:m++;//编译器报错
	}
	printf("m=%d\n", m);
	return 0;
}

在这里插入图片描述

6.没有break的switch语句

int func(int a)
{
    int b;
    switch (a)
    {
        case 1: b = 30;
        case 2: b = 20;
        case 3: b = 16;
        default: b = 0;
    }
    return b;
}

switch的每个case之后如果没有加break语句,当前case执行结束后,会继续执行紧跟case中的语句。 func(1)可知,在调用func时形参a的值为1,switch(a)<==>switch(1),case 1被命中,因为该switch语句中所有分支下都没有增加break语句,因此会从上往下顺序执行,最后执行default中语句返回。

7.输入三个数,从大到小输出(真的自己动手写下,想着很简单,有时候自己敲下发现各种错误)


void Max(int *x, int *y)
	{
		int a = 0;
		
		a = *x;
		*x = *y;
	    *y = a;
		 
		
	}
	int main()
	{
		int x = 0;
		int y=  0;
		int z = 0;
		scanf("%d%d%d", &x,& y,& z);
		if (x < y)
			Max(&x,&y);
		if (x < z)
			Max(&x, &z);
		if (y < z)
			Max(&y, &z);
		printf("%d %d %d", x, y, z);
		return 0;

	}

8.写代码将三个整数数按从大到小输出。

例如:

输入:2 3 1

输出:3 2 1

void Max(int *x, int *y)
	{
		int a = 0;
		
	      a = *x;
		 *x = *y;
	     *y = a;
		 
		
	}
	int main()
	{
		int x = 0;
		int y=  0;
		int z = 0;
		scanf("%d%d%d", &x,& y,& z);
		if (x < y)
			Max(&x,&y);
		if (x < z)
			Max(&x, &z);
		if (y < z)
			Max(&y, &z);
		printf("%d %d %d", x, y, z);
		return 0;

	}

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

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int x = 0;
	
	for (x = 0; x <= 100; x++)
	{
		if (x % 3 == 0)


		  printf("%d\n", x);
	}
	return 0;
}

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

例如:

输入:20 40

输出:20

int Gys(int a, int b)
{
	int i = a;
	for (i = a; i > 0; i--)
		if (a % i == 0 && b % i == 0)
			return i;


}
int main()
{
	int a, b, ret;
	printf("请输入俩个数");
	scanf("%d%d", &a, &b);
	if (a > b)
	{
		int ret=Gys(b, a);
		printf("最大公约数是%d\n", ret);
	}
	if (a < b)
	{


		int ret=Gys(a, b);
		printf("最大公约数是%d\n", ret);
	}
	return 0;
}

11.打印1000年到2000年之间的闰年

int main()
{
	int a = 1000;
	for (a = 1000; a <= 2000; a++)
	{
		if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0);
		printf("1000至2000之间的闰年有%d年\n", a);
	}
	return 0;
}
;原文链接:https://blog.csdn.net/weixin_48953972/article/details/115582272
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐