C语言入门级保姆教程(二)

C语言基础(二)

为什么要学C语言。首先,C语言作为计算机的通用语言,其功能是无比强大的。C语言简洁、紧凑、灵活,表达方式简练、实用。具有丰富的数据类型。具有低级语言的特点。是一种结构化语言,适合于大型程序的模块化设计。生成的目标代码质量高。C语言语法限制不严,程序设计自由度大等等。这里不做多解释了,接下来让我们进入新一期的学习之路。

一、运算符与表达式

1.1赋值运算符与表达式:

首先,列出C语言支持的运算符。

在这里插入图片描述
赋值运算符支持的是C语言的基本数据类型,包括char、int和double,字符串(字符数组)不能使用赋值运算符。
这里给大家演示一下

#include <stdio.h>

int main()
{
  int    a=0;     // 定义变量C并初始化
  int    b=21;    // 定义变量A并初始化

  a=b;
  printf("运算符  = 演示,a的值 = %d\n",a);

  a+=b;  // a=a+b;
  printf("运算符 += 演示,a的值 = %d\n",a);

  a-=b;  // a=a-b;
  printf("运算符 -= 演示,a的值 = %d\n",a);

  a*=b;  // a=a*b;
  printf("运算符 *= 演示,a的值 = %d\n",a);

  a/=b;  // a=a/b;
  printf("运算符 /= 演示,a的值 = %d\n",a);

  a=200;
  a%=b;  // a=a%b;
  printf("运算符 %= 演示,a的值 = %d\n",a);

  return 0;
}

将上述一一列举后的运行结果如下

C:\Users\15865\开发集成\CLion\第一个项目.exe
运算符  = 演示,a的值 = 21
运算符 += 演示,a的值 = 42
运算符 -= 演示,a的值 = 21
运算符 *= 演示,a的值 = 441
运算符 /= 演示,a的值 = 21
运算符 %= 演示,a的值 = 11

进程已结束,退出代码0

1.2算术运算符与表达式

在这里插入图片描述
这里演示一下

#include <stdio.h>

int main()
{
  double    A=20;      // 定义变量A,赋值10
  double    B=6;       // 定义变量B,赋值6

  printf("A的值是:%lf\n",A);
  printf("B的值是:%lf\n",B);

  printf("A+B的值是:%lf\n",A+B);
  printf("A-B的值是:%lf\n",A-B);
  printf("A*B的值是:%lf\n",A*B);
  printf("A/B的值是:%lf\n",A/B);

  //printf("A除B的余数是:%lf\n",A%B);

  A++;  // 自增1
  printf("A自增后的值是:%lf\n",A);

  B--;  // 自减1
  printf("B自减后的值是:%lf\n",B);

  return 0;
}
C:\Users\15865\开发集成\CLion\第一个项目.exe
A的值是:20.000000
B的值是:6.000000
A+B的值是:26.000000
A-B的值是:14.000000
A*B的值是:120.000000
A/B的值是:3.333333
A自增后的值是:21.000000
B自减后的值是:5.000000

进程已结束,退出代码0

注:这里值得一提的是,C语言规定的是小数后一般加六个零。
对于这一块的重点是学会自加自减思维:

变量的自增或自减有两种写法:
变量名++; // 表示在本次使用变量后再自增;

++变量名; // 表示在本次使用变量前自增;

变量名–; // 表示在本次使用变量后再自增;

–变量名; // 表示在本次使用变量前自减;
示例:

#include <stdio.h>

int main()
{
  int    a=0;      // 定义变量a并初始化

  a=10;
  printf("a++的值是:%d\n",a++);  // 在使用后自增
  printf("a的值是:%d\n",a);

  a=10;
  printf("++a的值是:%d\n",++a);  // 在使用前自增
  printf("a的值是:%d\n",a);

  return 0;
} 

运行结果如下

C:\Users\15865\开发集成\CLion\第一个项目.exe
a++的值是:10
a的值是:11
++a的值是:11
a的值是:11

进程已结束,退出代码0

1.3关系运算符与表达式

关系运算符大概率适用于条件判断,之后会多做解释。
在这里插入图片描述
注:
(1)运算符中“=”和“==”不要混淆,“=”是用于对对象赋值,而“ ==”则是用于判断相等。
(2)用于表达范围,可以用关系运算符表示,例如:16岁之后才算是成年可以用:name大于等于16.

例如:
只有16岁以上才可以玩游戏,如果小于16岁则规定每天只能玩两个小时。
示例

#include <stdio.h>

int main()
{
  int    age=0;   // 定义一个整数变量age,存放用户输入的年龄

  printf("请输入您的年龄:");    // 提示用户输入
  scanf("%d",&age);              // 接受从键盘输入的年龄数据

  if (age >= 16)
  {
    // 如果用户已满16岁,执行这段代码
    printf("亲,您已成年,欢迎来到王者峡谷,祝您旅途愉快!\n");
  }
  else
  {
    // 如果用户小于16岁,执行这段代码
    printf("这位拖孩,非常抱歉,基于健康系统!您只能游玩2个小时哦!\n");
  }
}

运行结果如下

C:\Users\15865\开发集成\CLion\第一个项目.exe
请输入您的年龄:16
亲,您已成年,欢迎来到王者峡谷,祝您旅途愉快!
请输入您的年龄:10
这位拖孩,非常抱歉,基于健康系统!您只能游玩2个小时哦!

进程已结束,退出代码0

1.4逻辑运算符与表达式

1.首先是书写格式:

if(表达式1)
{
	代码段1;
}
else if(表达式2)
{
	代码段2;
}
else
{
	断码段n;
}

2.示例
首先,制作一个买车案例。如果年底存款到达30万,则买宝马;到达15万,买二手车;到达10万,买摩托车;到达5万,算了,共享单车挺好。

#include <stdio.h>

int main()
{
    int  age=0;        // 余额,单位万

    printf("请输入余额(万):");
    scanf("%d",&age);

    if (age >= 30)     // 买宝马
    {
        printf("可以买宝马喽。耶比耶比!\n");
    }
    else if((age>=15)&&(age<30))
    {
        printf("还行吧!反正有的开。\n");
    }
    else if((age>=10)&&(age<15))
    {
        printf("其实速度与激情才是男人的浪漫!。\n");
    }
    else if((age>=5)&&(age<10))
    {
        printf("呜呜呜,都起开,我想俺老婆静静了。\n");
    }
    else {
        printf("哈哈哈,重开!\n");
    }
}
C:\Users\15865\开发集成\CLion\第一个项目.exe
请输入余额(万):31
可以买宝马喽。耶比耶比!
请输入余额(万):15
还行吧!反正有的开。
请输入余额(万):10
其实速度与激情才是男人的浪漫!。
请输入余额(万):5
呜呜呜,都起开,我想俺老婆静静了。
请输入余额(万):1
哈哈哈,重开!

进程已结束,退出代码0

3.逻辑非:not(非) and(与) or(或)
运算规则
1)&&(或):当且仅当两个运算量的值都为"真"时,运算结果为"真",否则为"假"。
2) || (与):当且仅当两个运算量的值都为"假"时,运算结果为"假",否则为"真"。
3) !(非) :当运算量的值为"真"时,运算结果为"假";当运算量的值为"假"时,运算结果为"真"。

1.5、特殊运算符

1. 分隔符:C语言中,分隔符有逗号、空白符、分号和冒号。
(1)逗号作为分隔符用来分隔多个变量和函数参数;
(2)空白符常用来作为多个单词间的分隔符,也可以作为输数据时自然输入项的缺省分隔符;
(3)分号常用于for循环语中for后面,圆括号内的三个表达式之间;
(4)冒号用于语句标号与语句之间。
2.三目运算符:C语言中的三目运算符是:“?:”。
三目运算符连接三个对象,是C语言中唯一一个三目运算符,又称为条件运算符。
它的一般形式是:【表达式a?表达式b:表达式c】。
C语言中的三目运算符是:“?:”,该运算符连接3个对象,是C语言中唯一一个三目运算符,又称为条件运算符。

二、语句与控制流

一共有三种语句:
其中循环控制流有(while语句、do—while语句、for语句等)
分支控制流语句有(if 语句、if—else语句、switch语句等)
跳转语句有(continue语句、break语句、goto语句等)
接下来将一一介绍,首先是

1.循环控制流

1)while语句
语法格式:
while(表达式){ //表达式值为逻辑值(真假值)
//需要循环执行的某一段代码}
执行过程:
①判断表达式真假值
②如果表达式为真,则执行循环体,执行完调到①
③如果表达式为假,则退出while语句
例如

int main(void)
		{
			int i;
			i = 0;
			while(i < 10){
				printf("hello world\n");
				i++;
			}   
			return 0;
		}

2)do—while语句
语法格式:
do{
//需要循环执行的某一段代码(循环体)


}while(表达式);//表达式值为逻辑值(真假值)

执行过程:
①先执行循环体
②判断表达式是否为真
③如果表达式为真,则跳到①
④如果表达式为假,则结束循环
例如

#include <stdio.h>
		int main(void)
		{
			int i;
			i = 0;
			do{ 
				printf("hello world\n");
				i++;
			}while(i < 10);
			return 0;
		}

3)for语句
语法格式:
for(表达式1 ; 表达式2 ; 表达式3){ //只有表达式2的值为真假值
//需要循环执行的某一段代码(循环体)}

执行过程:
①执行表达式1
②判断表达式2是否为真,如果为假,则退出循环
③如果表达式2为真,跳转到④
④执行循环体
⑤执行表达式3,跳转到②
例如

int main(void)
		{
			int i;
			for(i = 0;i < 10;i++)
				printf("hello world\n");   //当循环体中只有一条语句时,{}可以省略		
			return 0;
		}

2.分支控制流语句

1)if 语句
语法格式:
if(表达式){ //逻辑值:真假值
//需要执行的代码块}
//如果表达式为真,则执行代码块,否则不执行。
例如

int main(void)
		{
			int i;
			for(i = 0;i < 10;i++)
				printf("hello world\n");   //当循环体中只有一条语句时,{}可以省略			
			return 0;
		}

2)if—else语句
语法格式:
if(表达式){ //逻辑值:真假值
//代码块A
}else{
//代码块B
}
//表达式为真,执行代码块A,否则,执行代码块B
例如

int main(void)
		{
		   int age;
		   printf("请输入您的年龄:");
		   scanf("%d",&age);
		   if(age < 0){
				printf("您真会开玩笑!\n");
		   }else if(age < 18){
				printf("小屁孩,喜喜!\n");
		   }else if(age < 45){
				printf("您是三十而立了!\n");
		   }else{
			   printf("您是长寿着呢!\n");
		   }
			return 0;
		}

3)switch语句
语法格式:
switch(表达式){ //表达式结果为整形的数值
case 整型常量:
代码块A;
case 整型常量:
代码块B;
case 整型常量:
代码块C;
case 整型常量:
代码块D;
default:
代码块E
}
执行过程:
①计算表达式的值
②用表达式的值与第一个case后的常量比较
③如果相等,则从此处开始执行下面所有代码块
④如果不相等,则与下一个case后的常量比较,跳转到①

3、跳转语句

1)continue语句
(1).只能用于循环语句中
(2).跳出当前这次的循环,执行下一次循环
例如

int main(void)
		{
			int i;	
			i = 0;
			while(i < 10){
				i++;
				if(i%2 == 1)
					continue;
				printf("i = %d\n",i);
			}   
			return 0;
		}

2)break语句
(1).用于循环中,表示跳出一层循环
(2).用于switch语句,表示跳出switch语句
例如

int main(void)
		{
			int day;
			printf("请输入天数:");
			scanf("%d",&day);
			switch(day){
				case 1:
					printf("今天是星期一\n");
					break;		//用于switch中
				case 2:
					printf("今天是星期二\n");
					break;
				case 3:
					printf("今天是星期三\n");
					break;
				case 4:
					printf("今天是星期四\n");
					break;
				case 5:
					printf("今天是星期五\n");
					break;
				case 6:
					printf("今天是星期六\n");
					break;
				case 7:
					printf("今天是星期天\n");
			}   
			return 0;
		}
		int main(void)
		{
			int i;
			i = 0;
			while(i < 10){
				i++;
				if(i == 6)
					break;			//用于循环中
				printf("i = %d\n",i);
			}   
			return 0;
		}

3)goto语句
(1).可以在一个函数中随意跳转
例如

int main(void)
		{
			int i;			
			i = 0;
		//label:
			while(i < 10){
				i++;
				if(i%2 == 1)
					goto label;
		label:
				printf("i = %d\n",i);
			}   
		//label:	   
			return 0;
		}

日后做一些大型项目,需要结合实际,灵活应用!
在这里插入图片描述

每日坚持,都会离成功更进一步!提前祝大家元宵节快乐。
瑞斯拜!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

苏皓辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值