目的
复习c语言的基本知识和语法
技术及其应用
1.C语言的编译运行过程
-集成开发环境IDE Xcode Android Studio VS
-写代码:文本编辑器 文本文档 Sublime
-编译:编译器 javac gcc 编译原理
1.高级语言 C C++ Java OC Kotlin Switf
2.编译器:将高级语言转化为低级语言
预编译/预处理 将头文件进行展开->完整的程序
汇编 将高级语言转化为汇编语言Mov sq1,sq2 将寄存器
编译 二进制数据
链接 1.0 2.0 3.0 ->可执行的程序.exe
运行
3.机器语言 011010101
显示结果:console
2.基本数据类型
int 整数 64位系统里面占4个字节 32位占2个字节
输出格式:%d %02d 不足的补齐 01
float 浮点型 占4个字节内存空间
输出格式:%f %.1f 保留1位有效数字
double 双精度浮点型 占8个字节内存空间
输出格式:%f
long 长整型 占8个字节内存空间
输出格式:%ld
char 字符型 占1个字节内存空间
输出格式:%c输出字符 %d输出ASCII码值
bool 布尔类型 true/false 非零即真 零即假
定义变量和声明变量的区别
定义一个整形变量 立刻为我们分配内存空间 如:int a = 1;
特点:运行时占空间,使用时效率高
声明一个整型变量 没有分配内存空间 如:int b; b = 20;使用的时候才会分配内存空间
特点:运行时不占空间 使用时速度慢一点
3.if条件判断语句
使用结构:if(条件){
条件为真/成立 需要做的事情
}
if(条件){
条件为真/成立 需要做的事情
}else{
条件为假/不成立 需要做的事情
}
if(条件){
条件为真/成立 需要做的事情
}else if(条件){
条件为真/成立 需要做的事情
}else if(条件){
条件为真/成立 需要做的事情
}else{
以上条件之外 需要做的事情
}
4.main函数
main函数:任何一个程序 必须有一个入口点
返回值:int 标识这个程序的运行结果 0正常 1失败
0:程序正常退出,程序的资源自己分配
1: 非正常退出,程序会没收运行过程中获取的资源
5.循环语句
1.while(表达式)
语句;
2.do
语句;
while(表达式);
3.for ( [表达式 1]; [表达式 2 ]; [表达式3] )
语句;
其中:
表达式1:一般为赋值表达式,给控制变量赋初值;
表达式2:关系表达式或逻辑表达式,循环控制条件;
表达式3:一般为赋值表达式,给控制变量增量或减量;
语句:循环体,当有多条语句时,必须使用复合语句。
6.switch语句
switch ( 变量表达式 )
{
case 常量1 :语句;break;
case 常量2 :语句;break;
case 常量3 :语句;break;
...
case 常量n:语句;break;
default :语句;break;
}
实际使用
一个简单的ATM模拟程序demo
#include
#include
int remain = 2000,out = 0;
int in = 0;
int check = 0;
int newpassword = 0,check2;
int choice2 = 1
;
int main(){
printf("*******\n");
printf("欢迎光临\n");
printf("*******\n");
int password = 123;
printf("请输入密码:");
int a = 0;
int choice = 0;
scanf("%d",&a);
if( a == password ){
printf("1.取款\n2.存款\n3.更改密码\n4.退出\n");
printf("请选择操作:");
scanf("%d",&choice);
}else
{ int i = 4;
for( ; i >1 &&a!=password ; i--){
printf("密码错误请重新输入:(你还有%d次机会)",i-1);
scanf("%d",&a);
}
if(i== 1){
printf("此卡已冻结,请联系客服");
exit(0);
}
if(a==password){
printf("1.取款\n2.存款\n3.更改密码\n4.退出\n");
printf("请选择操作:");
scanf("%d",&choice);
}
}
while(choice2 == 1){
switch(choice){
case 1:
printf("请输入取款金额:");
scanf("%d",&out);
if(out>remain){
printf("余额不足,是否继续?(1/0)");
}else{
remain -= out;
printf("取款成功,当前余额为:%d,是否继续?(1/0)",remain);
}
scanf("%d",&choice2);
break;
case 2:
printf("请输入金额:");
scanf("%d",&in);
printf("存款成功,当前余额:%d,是否继续?(1/0)",in+remain);
scanf("%d",&choice2);
break;
case 3 :
printf("请输入原始密码:");
scanf("%d",&check);
while(check!= password){
printf("original password is wrong,please input again:");
scanf("%d",&check);
}
if(check == password){
printf("请输入新密码:");
scanf("%d",&newpassword);
printf("请确认密码:");
scanf("%d",&check2);
while(check2 != newpassword){
printf("input of two times is different,please input again:");
scanf("%d",check2);
}
if(check2== newpassword)
{
password = newpassword;
printf("Modified successfully,continue or not?(1/0)");
scanf("%d",&choice2);
}
break;
}
case 4:
break;
default:
printf("input error,please inpuit again:");
scanf("%d",&choice);
choice2 = 1;
}
}
return 0;
}
完成于2019-7-29