类型:
int float
变量:变量名 变量值
int a;
a=90;
+ - * / %
> < >= <= != ==
0 1
&& || ! 100>a>10 a>10&&a<100
scanf("%d",&a)
printf("%d",a)
if()
{
}
一、运算符续
算术运算符 关系运算符 逻辑运算符
优先级:算术运算>关系运算>逻辑运算
1.赋值运算符
= 将符号右边结果赋值给符号左边的变量
注意区分==
int x=6;
x=x+1;-->x+=1 --->x++
x=x+2;-->x+=2
x=x+90 -->x+=90
也可以有 /= %= -= *=
int a=80;
a/=4;
2.变量自增运算符 自减运算符
自增运算符:++
(1)x++ 与++x 相同点:都能使变量的值自增1
#include<stdio.h>
int main()
{
int x=8;
x++;
x--;
printf("%d\n",x);
int y=90;
++y;
--y;
printf("%d\n",y);
return 0;
}
总结:++/-- 运算符 放到操作数的左侧或右侧 都能使变量的值实现自增或自减1
(2)区别
例子1:
#include<stdio.h>
int main()
{
int x=8;
printf("%d\n",x--);// 8 先用后--
printf("%d\n",x);//7
printf("%d",x++);//7
printf("%d\n",x);//8
return 0;
}
例子2:
#include<stdio.h>
int main()
{
int x=8;
printf("%d",--x);//7 先-- 后用
printf("%d",++x);//8
return 0;
}
练习:x=10,y=20;
z=x++ + ++y; 求z的值
#include<stdio.h>
int main()
{
int x=10,y=20;
int z=x++ + ++y;
printf("%d\n",z);
return 0;
}
3.sizeof()
功能:测变量或者类型所占内存空间的大小 将大小返回 返回的结果以字节为单位
#include<stdio.h>
int main()
{
int a;
printf("%d %d",sizeof(a),sizeof(int));//4个字节
return 0;
}
数据类型:
整型数据:
数据类型 大小 格式
整型int 4 %d
短整型short 2 %hd
长整型long 4 %ld
字符型数据:
char 1 %c
浮点型数据
单精度浮点型 float 4 %f
双精度浮点型double 8 %lf
#include<stdio.h>
int main()
{
int a;
printf("%d %d",sizeof(a),sizeof(int));
return 0;
}
练习:测试其他类型大小
#include<stdio.h>
int main()
{
printf("int:%d\n",sizeof(int));
printf("char:%d\n",sizeof(char));
printf("long:%d\n",sizeof(long));
printf("short:%d\n",sizeof(short));
printf("float:%d\n",sizeof(float));
printf("double:%d\n",sizeof(double));
return 0;
}
4.三目运算符(问号冒号表达式)
格式:
表达式1?表达式2:表达式3
含义:表达式1为真?如果为真 则返回表达式2的值 如果为假 则返回表达式3的值
#include<stdio.h>
int main()
{
int a=3,b=5;
int x = a>b?a:b;
printf("%d\n",x);
return 0;
}
练习:键盘输入两个数据 求出其中的最小值
#include<stdio.h>
int main()
{
int a,b;
printf("please input two integers:\n");
scanf("%d",&a);
scanf("%d",&b);
//scanf("%d%d",&a,&b);
int c = a<b?a:b;
printf("%d\n",c);
return 0;
}
练习2:输入3个数 找到最大值
#include<stdio.h>
int main()
{
int a,b,c,x,y;
printf("please input 3 numbers:\n");
scanf("%d%d%d",&a,&b,&c);
x = a>b?a:b;
y = x>c?x:c;
printf("%d\n",y);
return 0;
}
二、
常量:不能改变值
整型常量:123 1101 023 0x23
浮点型常量:1.23 3.14
字符常量:'a' 'y'
字符串常量:"hello" "a"
宏常量
三、字符常量
1.注意
(1)单引号引起来的是字符'a' '\n' '9'
(2)单引号只能引一个字符 'abc'//错
2.输出和输出
#include<stdio.h>
int main()
{
char ch;
ch='a';
printf("%c\n",ch);
printf("please input a char:\n");
scanf("%c",&ch);//从键盘输入一个字符 赋值给ch
printf("%c\n",ch);
return 0;
}
3.每个字符都有一个ascii码
man asciic查看ascii表 按q退出
#include<stdio.h>
int main()
{
char ch;
ch='a';
printf("%c\n",ch);//‘a’
printf("%d\n",ch);
int x=97;
printf("%c\n",x);
return 0;
}
练习:输入一个字符 判断这个字符是大写还是小写
#include<stdio.h>
int main()
{
char ch;
printf("please input a char:\n");
scanf("%c",&ch);
if(ch>='a'&&ch<='z')
{
printf(" small letter!\n");
}
if(ch>='A'&&ch<='Z')
{
printf("big letter!\n");
}
return 0;
}
四、c语言三大程序结构:顺序 选择 循环
1.顺序结构:语句顺序向下执行
练习: 已知x=22, y=8 编写程序 输出x值为8 y值为22
#include<stdio.h>
int main()
{
int x=22,y=8;
int z;
z = x;
x = y;
y = z;
printf("x:%d y:%d\n",x,y);
return 0;
}
2.选择结构--条件分支 if-else switch-case
(1)if
格式:
if(条件)
{
语句;
}
(2)
if(条件)//如果条件成立 执行语句1 否则执行语句2
{
语句1;
}
else
{
语句2
}
例子:
#include<stdio.h>
int main()
{
int car;
printf("please input:\n");
scanf("%d",&car);
if(car==1)
{
printf("hahaha~~~\n");
}
else
{
printf("byebye~~~~\n");
}
return 0;
}
(3)if-if
练习:输入一个数字 判断这个数字是否为偶数 如果数字在1~7之间
打印对应的数字
#include<stdio.h>
int main()
{
int x;
printf("input a number:\n");
scanf("%d",&x);
if(x%2==0)
{
printf("is even!\n");
}
if(x>=1&&x<=7)
{
printf("%d\n",x);
}
return 0;
}
(4)if嵌套
格式:
if(条件1)
{
语句1;
if(条件2)
{
语句2;
}
语句3;
}
#include<stdio.h>
int main()
{
int age;
printf("input age:\n");
scanf("%d",&age);
if(age<30)
{
printf("make friend!\n");
if(age<20)
{
printf("married!\n");
}
}
return 0;
}
练习:输入一个整数 判断它是不是偶数
如果是偶数再判断它的一半是不是偶数
#include<stdio.h>
int main()
{
int x;
printf("input a number:\n");
scanf("%d",&x);
if(x%2==0)
{
printf("is even!\n");
if(x/2%2==0)
{
printf("half of num is even!\n");
}
}
return 0;
}
(5)
多条件分支
if(条件1)
{
语句1;
}
else if(条件2)
{
语句2;
}
else if(条件3)
{
语句3;
}
else
{
语句4;
}
#include<stdio.h>
int main()
{
int age;
scanf("%d",&age);
if(age>50)
{
printf("老人\n");
}
else if(age>=30&&age<=50)
{
printf("中年\n");
}
else if(age<=20&&age<30)
{
printf("青年\n");
}
else if(age>=10&&age<20)
{
printf("少年!\n");
}
else
{
printf("幼年!\n");
}
return 0;
}
练习:输入一个数 要求这个数必须在1-7之间
如果是1 则输出Monday
如果是2 输出Tuesday
......
#include<stdio.h>
int main()
{
int x;
printf("input a number:\n");
scanf("%d",&x);
if(x==1)
{
printf("Mon\n");
}
else if(x==2)
{
printf("Tues\n");
}
else if(x==3)
{
printf("Wed");
}
else if(x==4)
{
printf("Th\n");
}
else if(x==5)
{
printf("Fri\n");
}
else if(x==6)
{
printf("Sat\n");
}
else if(x==7)
{
printf("Sun\n");
}
else
{
printf("error!\n");
}
return 0;
}
练习:输入学生成绩 判断在哪个等级 并输出
90-100 ‘A’
80-90 ‘B’
70-80 'C'
60-70 'D'
<60 "comeon!"
#include<stdio.h>
int main()
{
int score;
printf("input score:\n");
scanf("%d",&score);
if(score>=90&&score<=100)
{
printf("A\n");
}
else if(score>=80&&score<90)
{
printf("B\n");
}
else if(score>=70&&score<80)
{
printf("C\n");
}
else if(score>=60&&score<70)
{
printf("D\n");
}
else
{
printf("come on!\n");
}
return 0;
}
3.选择结构2 switch语句
格式:
switch(x) //x是整型变量或者字符型变量或表达式
{
case 常量1: //常量1 是x结果
语句;
break; //跳出switch语句
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;
....
default: //如果x与上边的case都没有匹配成功 则执行default下边的语句
语句4;
break;
}
#include<stdio.h>
int main()
{
int x;
printf("input number:\n");
scanf("%d",&x);
switch(x)
{
case 1:
printf("Mon\n");
break;
case 2:
printf("Tues\n");
break;
case 3:
printf("Wed");
break;
default:
printf("error!\n");
break;
}
return 0;
}
练习:输入学生成绩 判断在哪个等级 并输出
90-100 ‘A’
80-90 ‘B’
70-80 'C'
60-70 'D'
<60 "comeon!"
#include<stdio.h>
int main()
{
int x;
printf("input number:\n");
scanf("%d",&x);
x /=10;
switch(x)
{
case 10:
printf("A\n");
break;
case 9:
printf("A\n");
break;
case 8:
printf("B");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("come on!\n");
break;
}
return 0;
}
版本2:
#include<stdio.h>
int main()
{
int x;
printf("input number:\n");
scanf("%d",&x);
x /=10;
switch(x)//100
{
case 10:
printf("dfvdsf")
case 9:
printf("A\n");
break;
case 8:
printf("B");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("come on!\n");
break;
}
return 0;
}
练习: switch实现简单的计算器
例子:
#include<stdio.h>
int main()
{
int a;
char b;
printf("please input a number:\n");
scanf("%d",&a);
printf("please input a char:\n");
scanf("%c",&b);//取走缓存区中的'\n'
scanf("%c",&b);
printf("b:%c\n",b);
return 0;
}
#include<stdio.h>
int main()
{
int a,b;
char op;
/*
scanf("%d",&a);
scanf("%c",&op);//取走回车
scanf("%c",&op);
scanf("%d",&b);
*/
scanf("%d%c%d",&a,&op,&b);//3+5\n
switch(op)
{
case '+':
printf("%d\n",a+b);
break;
case '-':
printf("%d\n",a-b);
break;
case '*':
printf("%d\n",a*b);
break;
case '/':
printf("%d\n",a/b);
break;
}
return 0;
}
作业:
1.if语句
键盘输入时间 然后打印出它的下一秒
例如:16:56:56 16:56:57
16:56:59 16:57:00
16:59:59 17:00:00
2.switch
给出任意的年月日 计算是一年中的第几天
2018.7.17
30+28+....30+17