《Linux学习笔记》:案例?

本文通过实例介绍了C语言的基础知识,包括输出语句、字符大小写转换、计算字符串长度、进制转换、宏函数、全局与局部变量、extern的用途以及static的作用。还涉及到了如何判断闰年。每个主题都包含相关概念和代码示例,适合初学者入门。
摘要由CSDN通过智能技术生成

一、小试牛刀

本文将通过使用案例来进行c语言的快速入门(本教程是以目的性为导向的学习目录),及通过可以运行的案例,并在开始说出能够完全自行敲出代码所需要的知识面,以此来帮助我们自行查找相关的资料进行针对性学习。

在最先的开始,我们要知道“注释”这个东西,只要在注释后面写入的东西都不会被计算机识别(编译器)识别,注释有两种,一种是“//”单行注释,一种就是 多行注释,他们分别如下形式

//单行注释:计算机看不见我

/*多行注释
*计算机看不见我
*计算机看不见我
*/

首先先来一个非常简单的入门程序,输出“hello!world”!

#include <stdio.h>

int main()
{
    printf("Hello! World!");//输出语句:printf("你要输入的文本");_
    return 0;
}

其中为了确保能将其输出就必须有一个大框架,这个大框架是一个万金油,之后在C语言的很多程序都可以看见它,这个大框架如下:

#include

int main()
{
    //"添加您所需要的功能语句"
    return 0;
}

由此我们可以输出更多你想要输出的

#include <stdio.h>
int main()
{
    printf("1111\n");
    return 0
}

二、字符大小写转换

这里涉及到的知识为:

1.变量、常量

2.循环语句while

3.条件语句if_else

4.输入语句getchar();

5.标准化输入输出语句

#include<stdio.h>
int main()

{
	int i=1;//int 是一种数据类型,表示整形,在这里用作循环变量
	while(i<=3)//重复循环3次,大写转小写 
	{	
		printf("please input you want to %d turn chars:\n  ",i);
	
		char c1;
		scanf("%c",&c1);
		getchar();
		/*这里getchar的作用是吃掉垃圾字符回车键,
		*因为printf函数确定输入需要按下一个回车键,
		*这个回车键回残留在缓冲区,
		*当i=0第一次循环过后,
		*第二次循环回scanf会读取缓冲区的数据,
		*就把我们本不想输入的回车吃了进去。
		*导致输出结果与我们想想的不一样*/

		if(c1>='A'&&c1<='Z')//这里确定是大写的字符,'a'会被机器识别成为ascii码即a是65
		{
			char cAtoa=c1+32;//a是65 +32 将会转换程大写的A,同理b->B
			printf("c1=%c,turn=%c\n",c1,cAtoa);
		}
		else if(c1>='a'&&c1<='z')//这里确定是小写字符
		{
			char catoA=c1-32;
			printf("c1=%c,turn=%c\n",c1,catoA);
		}
		else
		{
			printf("input error!\n");
	
		}
	
		i++;
	}

	return 0;
}

 三、求字符串大小

1.标准化输出语句printf

2.运算符sizeof

3.string.h头文件

4.数据类型

#include <stdio.h>
#include<string.h>
int main()
{
	//各种类型数据在内存中所占的内存空间
	printf("sizeof(char)=%ld个Byte=8bit)\n",sizeof(char));
	printf("sizeof(short)=%ld个(Byte=8bit)\n",sizeof(short));
	printf("sizeof(int)=%ld个(Byte=8bit)\n",sizeof(int));
	printf("sizeof(long)=%ld个(Byte=8bit)\n",sizeof(long));
	printf("sizeof(float)=%ld个(Byte=8bit)\n",sizeof(float));
	printf("sizeof(double)=%ld个(Byte=8bit)\n",sizeof(double));
	
	//转义字符长度
	printf("该字符有%ld个(Byte=8bit)\n",sizeof("\\\n\?\r"));
	printf("该字符有%ld个(Byte=8bit)\n",sizeof("\\\n\456\r"));
	return 0;
}

 三、进制转换(C语言实现好麻烦,没来得及去思考如何去实现,逻辑思维转换如下图)

四、计算圆 的周长和半径

1.数据类型 float

2.宏定义

3.运算符

4.标准化输入、输出语句

#include <stdio.h>
#define PI 3.14//宏定义
int main()
{	
	float area=0;
	float r=0;
	float SumSide=0;


	printf("请输入圆的半径:\n");
	scanf("%f",&r);

	area=PI*r*r;
	SumSide=2*PI*r;

	printf("该圆的边长为:%f\n该圆打面积为:%f\n",SumSide,area);

	return 0;
	


}

 五、宏函数01

1.宏函数

2.标准化输出语句

#include <stdio.h>
#define ADD(a,b) a+b//不加括号的运算
#define MUL(a,b) a*b
#define ImADD(a,b) ((a)+(b))//处处加括号的运算
#define ImMUL(a,b) ((a)*(b))

int main()
{

	printf("和为%d\n",ADD(2,3)*ADD(1,4));
	printf("积为%d\n",MUL(1+2,3));
	printf("和为%d\n",ADD(2,3)*ADD(1,4));
	printf("积为%d\n",MUL(1+2,3));
	return 0;
}

六、输出未初始化的全局变量和局部变量

1.数据类型 int

2.全局变量、局部变量

3.标准化输入输出函数

4.计算机的存储结构

//全局和局部变量:Global and local
#include <stdio.h>
int b;//未初始化打全局---.bss 未初始化 0
int C = 0;//初始化的全局---.date 初始化 0
int main()
{

	int a;//局部 栈区 未初始化 随机
	printf("局部变量未初始化(32bit是随机数):%d\n全局变量未初始化:%d\n",a,b);
	return 0;

}

六、extern有啥用

1.标准化输入输出语句

2.extern的使用

注意这里要在同一个文件夹内,新建2个.c文件

名字为 va.c

int a =10;//对,你没看错只有一行代码

名字为Test.c的文件

#include <stdio.h>
int a;//告诉编译器a,在其他文件中定义了
int main()
{
	printf("%d\n",a);
	return 0;

}

之后同时编译运行

gcc a.c Test.c//编译
./a.out//运行

结果:在高版本的Ubuntu中,如果Test.c中没有extern将会报错,低版本则不会。

七、static有啥用

1.标准化输出函数

2.存储类型 static

3.循环结构:for循环

#include <stdio.h>
int main()
{
	int i= 0;
	static int b;
	for(i=0;i<5;i++)
	{
		//1.延长局部变量打生命周期:直到程序结束
		//2.如果局部变量没有初始化,他的值为
		//3.如果初始化了,只能初始化1次:初始化这条语句只执行一次

		static int a=0;
		a++;
		printf("%d\n",a);
	}
	printf("static没有初始化的值为:%d\n",b);
	return 0;

}

八、类型转换规则

1.标准化输出语句

2.数据类型:char、short、int、unsigned、float、double 

强制类型转换:由我们字自行进行转换

隐式类型转换:横着的箭头不需要进行混合运算就可以进行转化

#include <stdio.h>
int main()
{
	printf("=====强制类型转换(由我们自己转换的)=====\n");
		float a=3.14;
		int b=0;
		b=(int)a;
		printf("%f强制转换后的结果:%d\n",a,b);
	
       	printf("==========隐式类型转换(编译器自己转换的)============\n");
  	printf("=====1.char->int(不需要进行混合运算,就会进行转化)=====\n");
		char a1='a';
		printf("%d\n",a1);//char可以当作当int(%d)类型去用
	printf("=====2.short->int(不需要进行混合运算,就会进行转化)=====\n");
		short a2=20;
		printf("%d\n",a2);//short可以当做int(%d)类型去用
	printf("=====3.float->double(不需要进行混合运算,就会进行转化)=====\n");
		float a3=3.14;
		printf("%lf\n",a3);//float可以当作double(%lf)类型去用	
	printf("==========4.int*long->unsigned==========\n");
		unsigned int a4=2;
		int b4=-10;
		printf("%d\n",a4+b4);//%u、%d

	printf("==========5.unsigned*long->long==========\n");
		 long a5=3;
		 unsigned b5=5;
		 printf("%ld\n",a5+b5);//%ld
	printf("==========6.long*double->double==========\n");
		double a6 = 11;
		long b6 = 22;
		printf("%lf\n",a6+b6);//%f、%lf

	printf("==========7.int*float->double==========\n");
		float a7=6.66;
		int b7=23;
		printf("%lf\n",a7*b7);//%f、%lf
		
	printf("==========8.char*float->double==========\n");
		float b8=3.33;
		char a8='a';
		printf("%lf",a8*b8);//%f、%lf






	return 0;
}

九、判断闰年与否

1.if_else语句

2.输出语句

#include <stdio.h>

//世纪闰年、普通闰年

int main()

{	int year=0;
	printf("请输入您要判断的年份:\n");
	scanf("%d",&year);
	if((0==year%4&&0!=year%100)||(0==year%400))
	{
		printf("%d年为闰年\n",year);
	}
	else
	{
		printf("%d年不是闰年\n",year);
	}
	return 0;
}

 未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小囧豆豆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值