C语言第一次培训
一、C语言初次学习
1.C语言的头文件
#include :编译预处理命令(打报告) stdio:标准的输入输出函数库(需要用到的东西) .h:头文件(head) printf:拿需要用到的东西实现打印功能 scanf:拿需要用到的东西实现输入功能
2.主函数
int main()
{
printf("hello world");
return 0;
}
int:整型(1,2,3,4,5) main:C语言里面的主函数 格式:printf(“你要在控制台输出的内容“) \n:回车
3.检错
1.中英文混淆 2.除了头文件和函数体(大括号包起来的部分),每段程序的后面都要加分号 3.并不是标注的哪一行,错误就在哪一行(大多可能错在上下行)
二、变量
1.数据类型
几种基本的类型: char字符类型:eg:a v d c d ! @ # >… int整型:eg:整数 short短整型:表示值小的整型 long长整型:能表示更大的整型 float单精度浮点型:eg:1.1 1.2 double双精度浮点型:更加精确,也就是说小数点后面的位数更多 bool值:在 C 语言c89标准中没有定义bool类型(true和false),(c99定义了)所以 C 语言判断真假时以 0 为假,非 0为真
2.数据类型所占位数
1. sizeof函数 此类型的数据占几个字节数 2.溢出 给定的数据的值超过了这个类型能表达的范围,就会发生溢出,溢出有时是会导致程序的错误
#include <stdio.h>
int main()
{
short a;//short值小的整形
a=-32769;
printf("%d",a);//溢出
}
3.占位符
3.打印、输出、索引、赋值略
4.变量的类型
全局变量和局部变量 #include <stdio.h> int a=10;//全局变量 void add() a+=1;//全局变量可在函数中直接被改变 int main() { int b=1000;//局部变量 printf("%d %d",a,b); } 1.局部变量和全局变量重名时,局部变量的优先级是高于全局变量的 2.全局变量能在函数中直接被改变
C语言第二次培训
二、变量(补充)
1.几种常用的数据类型表达范围
int :109 long:109 long long :1018 float:可以精确表示小数点后六位数字,六位过后就可能出现错误
#include <stdio.h>
int a=10;
int main()
{
float = 0.123456789012345678;
printf("%.6f",a);
}
double:可以精确到小数点后15位数字,同样十五位过后就可能出现错误
#include <stdio.h>
int a=10;
int main()
{
double a = 0.123456789012345678;
printf("%.15f",a);
}
另外%f默认就是%.6f
2.浮点数的运算
记住全是整数,除法则为整除去掉余数,若是其中含有浮点数,则结果准确
3.自动类型的转换
在C语言中,在一个表达式或一条语句中,允许不同类型的数据混合运算,因为它可以进行自动类型转换,较低类型将自动向较高类型转换(占的字节少的会向占字节数多的数据转换)
1.操作数中没有浮点型数据时:
当 char、short 出现在表达式中参与运算时,一般将其自动转换为 int 类型。(char要加‘’)
2.操作数中有浮点型数据时:
当操作数中含有浮点型数据(float 或 double)时,所有操作数都将转换为 double 型。
3.赋值时两边变量类型不一样时:
精度改变:会将右边的类型转换为左边的类型,可能使右边的数据精度增加,也可能使精度降低(右值超出左值类型范围时,结果可能毫无意义)
4.强制类型转换
格式:
#include <stdio.h>
int a=10;
int main()
{
char a='a';
int sum=(int)10.2+(int)1.2+(int)5.3;
printf("%d",sum);
}
三、表达式运算
1.运算符
1.数学运算符、自加自减(略)
2.关系运算符(二元运算符):<、 > 、<=、 >=、 ==、 !=
运算结果为布尔类型:true(真) 或 false(假)(0为假,非0为真,通常用1表示真)
3.逻辑运算符(二元运算符):&&(逻辑与)、||(逻辑或)
2.运算符的优先级
如果拿不稳的地方就加括号,因为括号的优先级是在第一梯度里面的。[添加链接描述](详细优先级总结)(https://blog.csdn.net/awhip9/article/details/53331595?ops_request_misc=&request_id=&biz_id=102&utm_term=C%E8%AF%AD%E8%A8%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%BC%98%E5%85%88%E7%BA%A7&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-53331595.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187)
四、 if、else、else if、switch case语句
1.如果、否则
#include <stdio.h>
int a=10;
int main()
{
int score;
scanf("%d",&score);
if(score>=60)
{
printf("及格");
}
else(score<60)
{
printf("不及格");
}
}
2.if语句嵌套和else if
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>=b)
{
if(b>=c or a>=c)//if语句的嵌套
{
printf("%d",a);
else if(a>=c)
}
}
return 0;
}
3.switch case
#include <stdio.h>
int main(void)
{
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n"); break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n"); break;
case 4:printf("Thursday\n"); break;
case 5:printf("Friday\n"); break;
case 6:printf("Saturday\n"); break;
case 7:printf("Sunday\n"); break;
default:printf("error\n");
}
return 0;
}
五、while、do while循环
1.while循环
while ( 循环条件 ) 只要循坏条件成立(括号内值为1),就会一直执行循环内的语句
{
语句
}
2.do while循环
do
{
<循环语句>
}while(<循环条件>);
区别:do while 在 循环体执行结束的时候才来判断条件。无论如何,循环都会执行至少一 遍,然后再来判断条件。
|