note 2

变量

存储数据的容器或盒子。
定义:

数据类型 名字;
int num;
新定义的变量的默认值是不确定的,为了安全,一定要初始化。

使用:

1、赋值 num = 100;
2、参与运算 num*20-100;

变量的取名:

1、由数字、字母、下划线组成。
2、不能以数字开头
3、不能与关键字重名
4、长度不要超过30字符
5、见名知意

变量的输出printf函数:

C语言中以占位方式来告知数据的类型。
printf 类型 变量名

变量的输入scanf函数:

scanf 类型 地址=&变量名

练习1:定义各类型变量,使用scanf输入变量的值,使用printf显示变量的值。

#include <stdio.h>

int main()
{
    char num_c=0;
    short num_s=0;
    int num_i=0;
    long num_l=0;
    long long num_ll=0;
	scanf("%hhd""%hd""%d""%ld""%lld",&num_c,&num_s,&num_i,&num_l,&num_ll);
	printf("%hhd ""%hd ""%d ""%ld ""%lld",num_c , num_s, num_i, num_l, num_ll);
}	

练习2:已知sizeof可以计算类型的字节数,编程计算出各类型数据点的字节数。

#include <stdio.h>

int main()
{
    printf("%d\n",sizeof(char));
    printf("%d\n",sizeof(short));
	printf("%d\n",sizeof(int));
	printf("%d\n",sizeof(long));
	printf("%d\n",sizeof(long long));
	printf("%d\n",sizeof(float));
	printf("%d\n",sizeof(double));
	printf("%d\n",sizeof(long double));
}

常量:

在程序运算过程中不可以修改的数据。

字面值常量:
10—int、3.14—double、3.14f—float

被保护常量
const int num;

运算符

算术运算符:+ - * / %

/ % 除数不能为零,会出现:浮点数例外,(核心已转储)。
10/3 = 3
10%3 = 1

关系运算符:
> < >= <= ==(变量尽量放在右边,为了让出错时有提醒。)
!=计算的结果是0或1,可以转变为逻辑真或假。
5 < n < 10;
在C语言中会先计算5和n的关系结果为0或1,然后0或1再与10比较永远为真

注意:C语言中的关系运算与数学中的运算顺序不同。
num = 100; 变成了赋值语句
100 = num; 会有错误提醒

自变运算符:++/–

对变量的值自动加1或减1,只有变量才能使用。
前自变:++num,对变量立即加1或减
后自变:num++,变量值下一行才会加1或减1
不建议过多使用,不同的编译处理的顺序不同。

逻辑运算符:&& || !

会先把要运算的对象转换逻辑值,0值转为假,非零值转为真。
A && B 左右两边都为真,结果才为真。
A || B 左右两边都为假,结果才为假。
!A 对A的值求反。

它们的运算结果可以当作if、for、while等语句判断条件。

注意:&&、||具有短路特性,但可以利用短路特性写出精简的分支结构。
if(num < 10)
{
 num++;
}
num<10 && num++;

赋值运算符及扩展:= += -= *= /= %=

num += 10
num = num + 10;
num *= 10;
num = num * 10;

三目运算符:[1]?[2]:[3];

判断1的值为真计算2,为假则计算3,相当于简单的if/else语句。
在三目运算符中不能有流程控制语句,因为它始终是一个运算符,必须要有一个运算结果。

字节数运算符:

sizeof:不是函数,是C语言的32个关键字之一,可以计算出数据类型所占的字节数。
sizeof不会计算表达,但会推算表达式的结果是什么类型,然后再计算类型的字节数。
位运算符:讲完进制转换、原反补之后再说。

类型转换:

由于各数据类型的存储格式不同,那么运算规则也就不同,只有相同类型的数据才能在一起进行运算。

自动类型:不同类型的数据必须要先转换成同一类型然后再运算(由计算机自动完成),转换规则(以不丢失数据为基础):
1、字节少向字节多的转。
2、整型向浮点型转。
3、有符号向无符号转。
强制类型转换:(类型)数据。有数据丢失的风险,慎重使用。

流程控制

默认情况下,代码从上到下顺序执行,流程控制语句则可以改变这种执行顺序。

分支:
if(条件表达式)
{
条件表达式为真时执行。
}
if(条件表达式)
{
条件表达式为真时执行。
}
else
{
条件表达式为假时执行。
}
if(条件表达式1)
{
条件表达式1为真时执行。
}
else if(条件表达式2)
{
条件表达式2为真时执行。
}
else
{
条件表达式1、2都为假时执行。
}

练习3:输入一个整数,判断是奇数还是偶数。

#include <stdio.h>

int main()
{
	int num=0;
	printf("请输入一个整数\n");
	scanf("%d",&num);
	if(num % 2 == 0)
	{
		printf("该数是偶数");
	}
	else
	{
		printf("该数是奇数");
	}	
}

练习4:输入一个3位整数,判断是否是水仙花数。
abc == aaa+bbb+ccc

#include <stdio.h>

int main()
{
	printf("请输入一个三位数:\n");
	int num = 0;
	scanf("%d",&num);
	int c = num % 10 ;
	int b = (num/10) % 10 ;
	int a = num / 100 ;
	if(num == a*a*a+b*b*b+c*c*c)
	{
		printf("%d该数为水仙花数",num);
	}
	else
	{
		printf("%d该数不是水仙花数",num);
	}	
}

练习5:输入一个年份判断是否闰年。

#include <stdio.h>

int main()
{
	printf("请输入一个年份:\n");
	int year=0;
	scanf("%d",&year);
	if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		printf("%d年是闰年",year);
	}
	else
	{
		printf("%d年不是闰年",year);
	}	
}	

练习6:输入一个月份,计算该月有多少天(忽略闰年)。

#include <stdio.h>

int main()
{
	int month=0;
	printf("请输入一个月份\n");
	scanf("%d",&month);
    if(1>month || 12<month)
	{
		printf("输入年份有误\n");
	}
	else
	{
       if(2==month)
	  {
	    	printf("28天\n");
	  }	
	  else if(4 == month || 6 == month || 9 == month || 11 == month)
	  {
	    	printf("30天\n");
	  }
	  else
	  {
	    	printf("31天\n");
	  }
	}
}	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值