2021-3-12C语言基础(1)

寄语:
我呢也是刚开始学C语言,在这里做笔记是为了方便自己以后查阅,同时希望能给大家提供一些帮助。在这些笔记里,我们主要依赖看代码来学习C语言,当然还有其他的方式,每次代码后我会用自己的理解进行一些总结,如果有什么不对的地方,还请大家能够慷慨的指出,我可高兴接受你们的意见了{😮},我以后要是意识到错误我一定会回来改掉的。如果你也不会的话,就细细的读吧,应该能帮你度过现在的困难。
下边就让我们进入正题吧。
请看如下代码:
1:

#include<stdio.h>
void main()
{
	int c1;
	char c2;
	c1='a';
	c2=65.5;
	printf("%d\n%d哈哈哈\n",c1,c2);
	printf("%c哈哈哈\n%c\n",c1,c2);	
}

第一行,就是说我们这段代码里包含一个文件,这个文件里的一些基本函数(例如:printf(输出),scanf(输入))我们就可以直接在这一段代码里使用。
第二行,main为主函数,是系统调入程序的入口点,程序从main开始执行。
当然还要注意格式,比如一行的#,二行的括号,还有要注意不能用中文的字符
后面就是你的程序了,必须用大括号括起来。

然后我们来分析一下这个程序

在这个程序刚开始,我们先定义了我们的数据类型int(整数),还有char(字符),

接着就是给这些变量赋值,赋值字符时要加单引号,赋值数字时不加单引号

在c语言中,每一条命令结束,都需要在后面加上分号。

然后就是最后的printf函数,要采用("",); 的格式
双引号内可以随意添加自己想输入的文本内容,

在一些位置加上换行命令\n,

就可以实现\n前后换行,

否则输出的时候就会挤在一起,十分难看。

printf里面必须要输入%d(取整数)%f(浮点数)%c(字符)来规定输出值的格式,

格式与后面的数据(c1,c2),是一一对应的,数量也是对应的,也就是说后面有几个变量我们前面就用几个%类型的格式

由于在最后的位置可以更改输出格式,所以可能这就是C语言的灵活性所在吧。

上述代码输出结果为:(a使用的是他的ASICC码)

97
65哈哈哈
a哈哈哈
A

2:与第一个代码十分类似
先定义变量
然后赋值
然后运算
最后输出(注意里面的文本内容)
试着自己读读看,想一下输出结果

#include<stdio.h>
void main()
{
char c1,c2,c3;
c1='a';
c2='A';
c1=c1-32;
c2=c2+32;
printf("我%c\n也%c\n想",c1,c2);

输出结果:

我A
也a
想

3:看代码如下:

#include<stdio.h>
void main()
{
	int a;float b,c;char d='D';
	a=(int)c;
	b=1.0+a*d+c;
	printf("a=%d\n,b=%f",a,b);
	printf("\n");
	printf("看看上下两种写法有没有区别");
	printf("\n");
	printf("a=%d,\nb=%f",a,b);
}

在这里我直接输出的printf(\n)就是直接换行。
简单分析一下,
第四行就是给我们的变量做个定义,下边才能使用这些变量,其实我觉得这样反而还有些麻烦。
第五行为强制命令,(类型)变量 ,然后再把新的值赋给另一个变量,比如:
a=(int)b; m=(float)n;k=(char)t
第六行就是一个简单的运算。
最后输出的浮点数默认保留六位小数
然后自己分析一下第七行与第九行\n的位置,预测一下结果
上述代码的输出结果为:

a=-107374176
,b=1181116449.000000
看看上下两种写法有没有区别
a=-107374176,
b=1181116416.000000

4:一些运算符号,代码如下:

#include<stdio.h>
void main()
{
	printf("你\n我\n%d你\n我\n",20/7);
	printf("世界\n很美好\n%f",20.7/7);
}

这一段相对难度较小只是用了较多的分行,可见,在双引号内%与\是不能乱用的,因为他的优先等级高,有他自己特定的用法。
输出结果为:

你
我
2你
我
世界
很美好
2.95714

②再看下一段代码(关于取余)

#include<stdio.h>
void main()
{
printf("百分号在运算的过程中表示取余,5/2余数就是1%d\n",5%2);
printf("注意区分上下两个式子的不同\n");
printf("百分号在运算的过程中表示取余,5/2余数就是1\n%d",5%2);
}

简单分析:取余就是除不尽的保留
注意一下分行符与%d的位置关系,
一个在前
一个在后
是两种不同的结果,
因此%d就是指代我们输出值在全部内容的位置(读不懂没关系,我也讲不明白这句话,但是很简单,自己操作一下很快就知道了)
输出结果:

百分号在运算的过程中表示取余,5/2余数就是11
注意区分上下两个式子的不同
百分号在运算的过程中表示取余,5/2余数就是1
1

③关于(自增自减)
自增:1

#include<stdio.h>
void main()
{
int i=9;
int j=i++;
printf("%d,%d",i,j);
} 

i++是先用后加,所以j输出的是9而不是10
i输出i的值是最终的值

输出结果

10,9

“自增:2”

#include<stdio.h>
void main()
{
int i=9;
int j=++i;
printf("%d,%d",i,j);
} 

++i是先加后用,所以j的结果是10
i输出的结果是最终的值
输出结果

1010

自减:1

#include<stdio.h>
void main()
{
int i=9;
int j=--i;
printf("%d,%d",i,j);
} 

–i为先减后用(两个减号)
i输出的值为最终值

88

自减:2

#include<stdio.h>
void main()
{
int i=9;
int j=i--;
printf("%d,%d",i,j);
} 

i–为先用后减,所以j输出8(两个减号)
i输出的结果为最终结果

89

自加的简单运算:

#include<stdio.h>
void main()
{
int a=1,b=2,c=3,k;
k=a+++b+++c;
printf("k=%d\nc=%d\n",k,c);

输出结果,从这个式子里我们能看到很多更加好的表达方式,比如最后一句,就非常好,让输出的结果有头有尾。

k=6,c=3

5:scanf的使用:

#include<stdio.h>
void main()
{
	char a,b,c;
	printf("input 3 char(系统提示):");
	scanf("%c,%c,%c",&a,&b,&c);
	a='a'-32;
	b='b'-32;
	c='c'-32;
	printf("%c,%c,%c",a,b,c);
}

一定是先定义!!!!!!!!!!!!!!!!!!!!
scanf就是让用户输入一些变量的赋值
然后运行程序,帮助客户得到最终值。
输出页面

input 3 char(系统提示):abc
A,B,C

6:运算符的简化
a+=5等同于a=a+5
a
=b-3等同于a=a
(b-3)**
需要注意的是如果我们定义的类型是c(char),那么最后输出的值不能大于256,如果大于就一直减256,直到结果小于256.

7:求三角形的面积(可以不看,还不完善)
已知三角形面积公式:
s=(1.0/2)(a+b+c)
S2=s
(s-a)(s-b)(s-c)

 #include<math.h>
void main()
{
float a,b,c,area,s;
printf("input 3 num:");
scanf("%f%f%f",&a,&b,&c);
s=(1.0/2)*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);
}

!!8:运算的优先等级(目前学的,从高到低)
++,–,!
*,/,%
+,-
>,<,>=,<=
!=,==
&&(与),||(或)

=
9:&&,||的运算
当我们让计算机判断2.>1时
它会输出1,表示正确

当我们让计算机判断2<1时
它会输出0,表示错误

当我们让计算机判断:2>1&&2<1时
&&表示的and,是和的意思,所以只有当两个条件都正确的时候才会输出1
否则输出2

所以上述判断结果为0

||表示的是or,是或的意思,所以只要有其中一个为正确时,就会输出1,只有两个条件都是假的时候才会输出0

10:判断下列的值

a=0,b=1,c=2
d=a++&&b++&&–c(两个减号连在一起了)
判断a,b,c,d

分析

&&表示和,全正确才输出1也就是说一个错直接输出0不需要浪费时间进行后面的判断

先判断a++&&
a++表示先用后加,b++也是先用后加

开始a为0,参与运算也就是0,

然后读到&&

他的规则是两边全是1能输出1(全真才真)

然而此时&&左边已经是0了

所以中止右边b++的程序,不用浪费资源计算了

前半段(a++&&b++)直接输出0

接着又往右读

又读到一个&&

还是同样的规则

左边已经为0

所以直接输出0

右边的–c(两个减号连在一起了)也不运行

因此输出结果就是:

a=1,b=1,c=2,d=0


a =0,b=1,c=2

d=a++||b++||–c(两个减号连在一起了)
判断a,b,c,d的值

分析:

a++为先用后加,所以参与运算的就为0

因为||(或)的规则是全错才错(全假才假)

所以需要继续往右读

读到b++时,b++为先用后加,所以参与运算的时1

这时左边为0,右边为1(全假才假)

所以会输出1

然后继续向右读

当读到||时

因为左边已经为1了,根据||的规则,全假才假,左边已经不为假了

所以不再往后读了

–c(两个减号连在一起了)的程序不运行

因此输出结果为
a=1,b=2,c=2,d=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值