c语言学习第三天

局部变量

全局变量

定义位置

函数内部

函数外部

初始值(不赋值)

值:随机值

值:0

作用域

整个函数中都可以

整个程序中都可以

存储位置

栈区

全局存储区

生命周期

同整个函数共存亡

同整个程序共存亡

[2]常量

概念:在程序的运行中不会发生变化的量

分类:

字符型常量

字符串型常量

整型常量

浮点型常量

指数常量

标识常量

字符

使用单引号' '包裹的内容都叫字符,单引号只能引一个字符

'a'---->字符常量a

a----->变量a

'!'------>字符!

'1'----->字符1

'\n'----->换行

\ : 转义后面可以跟随字母数字(八进制 十六进制 不写0)符号

转义字符表示一个字符

'\x41'---->'\101'----->'A'

printf("你说:\"sakfkasfh\" ");

'\\'---->字符 \

'\?'---->字符?

字符串

使用双引号" "包裹的内容都叫字符串,系统会在字符串最后添加\0作为字符串结束的标志

"hello"----》字符串hello 字符的长度+1

"abc"

整型常量

12345 6

浮点型常量

1.91.32

指数常量

3*10^2----->3e2

2*10^5------>2e5

注意;e的后面不能跟小数 只能是整数

标识常量

宏定义:用于标识常量或者表达式宏替换 宏代替

定义格式:#define宏名(一般大写) 常量或者表达式

int fristname=10;
//大驼峰:FristName
//小驼峰:fristName
#define N 10

特点:只做单纯的替换 不会进行计算

练习:

#define N 2

#define M N+3//2+3

#define NUM N+M/2+1//2+2+3/2+1

void main()

{

int a = NUM;

printf("%d\n",a);

}

答案:6

输入输出语句

1. 按照格式输入输出

格式:

"%d"int

"%c"char

"%f"float

"%lf"double

"%s"字符串

"%#x""%x"十六进制数

"%#o""%o"八进制

"%p"地址

"%e"指数

输出printf

#include <stdio.h>

int printf(const char *format, ...);

功能:输出内容

参数:

1:字符串 如果包含格式则有后续参数

2:要和第一个参数中的格式对应

。。。。。。。

返回值:输出的字符的个数

输入scanf

int scanf(const char *format, ...);

功能:可以输入一些内容(从终端输入)

参数:

1:字符串(只写格式)

2:用来保存数据的变量的地址

。。。。。。。

返回值:正确输入的个数

int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("a=%d b=%d  c=%d\n",a,b,c);

int a,b,c;
int ret=scanf("%d%d%d",&a,&b,&c);
printf("ret=%d\n",ret);

[3]变量常量

3.1按字符输入输出

getchar

int getchar(void);

功能:终端输入字符

参数:无

返回值:字符的ASCII码值

putchar

int putchar(int c);

功能:终端输出字符

参数:字符的ASCII码值

返回值:字符的ASCII码值

3.2按格式输入输出

printf

int printf(const char *format, ...);

功能:按格式终端输出

参数:多个

返回值:输出字符个数

格式:

%d int

%c char

%f float

%lf double

%s 字符串

%p 指针

%o 八进制

%x 十六进制 %#x(格式一起输出)

%m.n m位宽 .n保留小数位数

scanf

int scanf(const char *format, ...);

功能:按格式终端输入

参数:多个

返回值:正确输入字符的个数(输出上面输入的内容) 开始位置输入错误,返回0

程序里面有空格,输出结果时也必须有空格

[4]垃圾字符回收

4.1 通过空格回收一个或多个空格

4.2 %*c *抑制符

回收任意一个字符

写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个;(富士安全,广域科技,华辰泰尔,鲁科安全,神戎电子,中安云科,中维世纪,晟安信息,苏州特点电子科技,北京信果科技)

4.3 getchar回收

顺序结构、分支、循环

[5] 分支结构

基本格式:

if(表达式1)

{

语句块1;

}else

{

语句块2;

}

执行顺序:表达式一成立,则执行语句块一,否则执行语句块二

============================

int age=22;

if(age>18)

{

printf("work\n");

}else

{

printf("study\n");

}

多层分支:

if(表达式1)

{

语句块1;

}

else if(表达式2)

{

语句块2;

}

else

{

语句块3;

}

==============

int age=22;

// 0-18 18-30 30-65 65-

if(age>=0&&age<18)

{

printf("weichengnian\n");

}else if(age<=30)

{

printf("qing\n");

}else if(age<=65)

{

printf("zhong\n");

}else

{

printf("lao\n");

}

嵌套结构:

if(表达式1)

{

if(biaodashi 2)

{

语句块1;

}

}

==========================

if(age<0||age>200)

{

printf("error\n");

}else

{

}

注意:

1. if后边可以没有else ,else前边必须有if

2. 分支语句只有一行代码时,可以省略{}

100-90 A

89-80 B

79-70 C

<70 补考

switch

格式:

switch(变量名或表达式)

{

case 常量1:

语句块1;

break;

case 常量2:

语句块2;

break;

default:

语句块3:

break;

}

===============

int a=33;

switch (a/10)

{

case 1:

printf("11111\n");

break;

case 3:

printf("333333\n");

break;

case 5:

printf("55555\n");

break;

default:

printf("error\n");

break;

}

注意:

1. case常量一般是整型或字符

2. case后边可以没有break,程序会从符合条件的分支开始继续向下执行,直到遇见break为止,或执行到分支结束

练习:B

成绩等级划分用switch实现:

[6]循环结构

6.1 for

格式:

for(表达式1;表达式2;表达式3)

{

语句块;

}

表达式1:循环变量赋初值

表达式2:终止条件

表达式3:增值或减值

执行顺序:先执行表达式1,再判断表达式2是否成立

成立:执行语句块;再执行表达式3,判断判断表达式2是否成立。。。

不成立:退出循环

=====================================

int i;

for(i=0;i<5;i++)

{

printf("%d\n",i);//0 1 2 3 4

}

printf("i=%d\n",i);//i=5

变形:

int i=1;

for(;i<5;i++)

{

printf("%d\n",i);

}

============================

int i=1;

for(;i<5;)

{

printf("%d\n",i);

i++;

}

=============================

死循环:

for(int i=1;i>0;i++) for(;;);

for(int i=5;i>0;i-=2)

{

printf("%d\n",i);

}

水仙花数 100-999 153=1*1*1+5*5*5+3*3*3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值