学习内容
- 注释语句
- C语言基础语句
- main()函数
- #include的作用
- printf格式化输出
- scanf格式化输入
- 变量
- 运算符
- if循环
- 工资实战
- 年龄实战
注释语句
- //注释内容 单行注释:用于一行简洁的注释
- /* 注释内容 */ 多行注释:注释的内容多
基本语句
- include 宏 导入头文件
声明方法,如果系统已经提供某些功能的实现,只需要使用include将这些功能所在的头文件导入- #include<stdio.h>与#include"stdio.h"的区别
#include<stdio.h>
系统先从系统类库中查找,如果没有,再从自己的文件中查找,如果没有就报错
#include"stdio.h"
系统先从自己的文件中查找,如果没有,再从系统类库中查找,如果没有就报错- int main()函数
main()函数=代码块= 完成待定功能
所有程序的入口点都是main函数- int 代表返回值是整型,记录程序运行状态;若为零,则代表运行正常,返回0;
若非零 则代表运行出现错误,没收,不返回值- int argc:参数个数 arguement count
- char*argv[]:每个参数组成的字符串数
int main(int argc,char*argv[]) { return 0; }
- printf 输出语句 在终端窗口输出
- scanf 输入语句 在终端窗口输入
printf("%d\n",argc); printf("%s\n",argv[0]);
- \t 制表符
- \n 换行
变量 记录数据
基本数据类型-->只能存一个值
- int 整型数据 %d 占4位
- float 浮点型 %f 占4位
- doubl 双精度浮点型 %f 占8位
- long 长整型 &ld 占4位
- char 字符 'a' 'b' %c 占1位
- string 字符串"jack""rose"
- short 短整型 占2位
- bool 是、成立true;不是、不成立folse 占1位
这几种数据类型所占据的内存空间不一样求占据的空间长度的完整代码
#include <stdio.h> #include<stdbool.h> int main(int argc,char*argv[]) { printf("%d\n",sizeof(int)); printf("%d\n",sizeof(long)); printf("%d\n",sizeof(float)); printf("%d\n",sizeof(double)); printf("%d\n",sizeof(char)) ; printf("%d\n",sizeof(bool)) ; printf("%d",sizeof(short)); return 0; }
结果
QQ图片20191116145104.png
运算符
+ - * / % && || ++ -- == = += !=
- / 除 取整数部分 例:7/3=2
- % 取余 例:7%3=1 1到16:x%16+1 50到100:x%51+50
- && 且 两个同时成立
- || 或 只要一个成立就可以了
- ++ 自加
a++:表示先取用a的值,再让a=a+1
++a:表示先让a=a+1,再取用a的值
- 问号表达式
char c; if(3>1) c='y'; else c='n';等同于
c=3>1?'y':'n';
- 逗号表达式
result=表达式1,表达式2,表达是3;
最终是给表达式3int temp=20; if(temp--,temp--,temp--) printf("temp=%d\n",temp) ;int temp=20; int t2=(temp--,temp--,temp--); printf("temp=%d\n",temp); printf("t2=%d",t2);
if循环
格式一
if(条件判断 true-非0 false-为0)
{
表达式
}
如果为true,则执行大括号内的语句
如果为false,则跳过语句,不执行
例如#include<stdio.h> int main() { int i=5; if(i<6) { i=6; printf("%d",i);} return 0; }格式二
if······else if······else if······else
当有多个条件,但是只需要满足其中一个条件就可以执行相应的语句
例二#include<stdio.h> int main() { int i=0; scanf("%d",&i); if(i<6) i=6; else if(i>=6&&i<10) i=10; else if(i>=10&&i<20) i=15; else i=25; printf("%d",i); return 0; }
工资实战
运行流程
请输入工资:x
x<5000,salary=x
x>=5000&&x<8000,交10%的税
8000<=x<1000,交15%的税
x>=1000,交20%的税
完整代码
#include<stdio.h>
int main()
{
int salary = 0;//记录工资
int tax,a=0;
for(;a>=0;a++)
{
printf("请输入工资:");//接收输入
scanf("%d",&salary);//开始计算
if(salary <= 5000)
{
int pay=salary;
}
else if(salary > 5000 && salary <= 8000)
{
tax = (salary-5000)*0.1;
}
else if(salary > 8000 && salary <= 10000)
{
tax = (salary-8000)*0.15+3000*0.1;
}
else
{
tax=(salary-10000)*0.2+2000*0.15+3000*0.1;
}
printf("到手工资为:%d\n",salary-tax);
}
return 0;
}
年龄实战
运行流程
请输入年龄:x (x为阿拉伯数字)
int temp=20;
>>int t2=(temp--,temp--,temp--);
>>printf("temp=%d\n",temp);
>> printf("t2=%d",t2);
>>>#if循环 >####格式一 >if(条件判断 true-非0 false-为0) { 表达式 } 如果为true,则执行大括号内的语句 如果为false,则跳过语句,不执行 例如 >
>#include<stdio.h>
>int main()
>{
>int i=5;
>if(i<6)
>{ i=6;
>printf("%d",i);}
> return 0;
>}
>>###格式二 >if······else if······else if······else >当有多个条件,但是只需要满足其中一个条件就可以执行相应的语句 >例二 >
>#include<stdio.h>
>int main()
>{
>int i=0;
>scanf("%d",&i);
>if(i<6)
>i=6;
>else if(i>=6&&i<10)
>i=10;
>else if(i>=10&&i<20)
>i=15;
>else
> i=25;
> printf("%d",i);
> return 0;
>}
>#工资实战
>####运行流程
>>请输入工资:x
>>x<5000,salary=x
>>x>=5000&&x<8000,交10%的税
8000<=x<1000,交15%的税
x>=1000,交20%的税
####完整代码
#include<stdio.h> int main() { int salary = 0;//记录工资 int tax,a=0; for(;a>=0;a++) { printf("请输入工资:");//接收输入 scanf("%d",&salary);//开始计算 if(salary <= 5000) { int pay=salary; } else if(salary > 5000 && salary <= 8000) { tax = (salary-5000)*0.1; } else if(salary > 8000 && salary <= 10000) { tax = (salary-8000)*0.15+3000*0.1; } else { tax=(salary-10000)*0.2+2000*0.15+3000*0.1; } printf("到手工资为:%d\n",salary-tax); } return 0; }
>#年龄实战
>运行流程
>>请输入年龄:x (x为阿拉伯数字)
输出“your age is X" (X为英文数字)
完整代码
#include<stdio.h>
int main()
{
int age=0;
//保存个位数
char *unit[]={"","one","two","three","four","five","six","seven","eight","nine"};
char *temp[]={"teen","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nighteen"};
char*shiwei[]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
printf("请输入年龄:");
scanf("%d",&age);
char*name;
if(age<10)
{
name=unit[age];
}
else if(age>=10&&age<20)
{
int index=age%10;
name=temp[index];
}
else
{
//取出个位
int g=age%10;
//取出十位
int q=age/10;
char* qString=shiwei[q-2];
char* gString=unit[g];
printf("your age is %s-%s",qString,gString);
return 0;
}
printf("your age is %s",name);
return 0;
}
问题及心得
1、问题:在scanf格式化输入时因为多加了一个\n导致输入值后总是不能输出变量所对应的值,后来通过询问老师才知道在scanf格式化输入时要严格按照格式来,如果多加了\n,那么就需要再输入一个值才能将前面的值从缓存区中推出进而才能执行下一步。
1、心得:虽然我已经学习了一些C语言基础知识,但是却并没有将其掌握牢固,而这刚开始学习却让我觉得我不是学了就丢掉,而是边学边用,这样我就可以将学到的掌握得更牢靠。
