C语言是结构化程序设计,包含顺序结构、选择结构、循环结构,他们是各种复杂程序的基本结构单元。
1.文件
可执行文件(指令和数据构成):.exe .bat .com
不可执行文件(数据构成)
在C语言中------- .c /.cpp(源文件,文本) .h(头文件,文本) .i(预编译文件,文本) .s(汇编文件,文本) .o / .opp(二进制目标文件) .exe(可执行文件)
*.c源文件----预编译----*.h预编译文件----编译----*.obj目标文件----链接----*.exe可执行文件
第一个C语言程序
//hello.c 注释----//
#include
int main()
{
printf("hello FatFaceRain n"); 语句
return 0;
}
2.进制及进制转换
103(10) 1100111B 147(8) 67H
贪心算法:128 64 32 16 8 4 2 1
0 1 1 0 0 1 1 1
2.1C语言结构特点
一个源程序不论由多少个文件组成,都有且只有一个main函数。
3.数据类型
3.1数据类型的大小
sizeof关键字 计算变量或数据类型所占的字节个数
字节(byte)是计算机信息技术用于计量存储容量的一种计量单位,一个字节由8位二进制构成。
//char;int;short;long int;long long;//-2 0 1 整型 //float;double;long double; //12.32 浮点型 //bool;0 false,1 ture; 布尔 //void; 空类型,无类型 //sizeof printf("char size: %dn", sizeof(char)); //1 printf("short size: %dn", sizeof(short)); //2 printf("int size: %dn", sizeof(int)); //4 printf("long int size: %dn", sizeof(long int)); //4 printf("long long size: %dn", sizeof(long long)); //8 printf("float size: %dn", sizeof(float)); //4 printf("double size: %dn", sizeof(double)); //8 printf("long double size:%dn", sizeof(long double)); //8 printf("bool size: %dn", sizeof(bool)); //1
3.2 2^10=1KB 2^20=1MB 2^30=1GB 2^40=1TB 2^50=1PB
4.标识符,变量,常量
4.1 标识符命名规则----(1)由下划线“_”,英文字母(A-Z , a-z)和数字(0-9)构成,首字符必须是英文字母,或下划线“_”,首字符不能是数字。 (int a char _b)
4.2变量,定义、声明
int age = 0;//初始化 (有类型----定义)
age=19;//赋值(无类型----不称作定义)
4.3变量的作用域
全局变量(::---c++中全局变量标识符)、局部变量、程序块中的变量
(向上就近原则)
4.4例:验证海伦公式(计算三角形面积)
#include#include int main() { //a,b,c p, s; //sacnf a b c //p=; //s=; //printf s; float a=0.0,b=0.0,c=0.0,p=0.0,s=0.0; scanf("%f %f %f",&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("三角形面积:%fn",s); return 0; }
4.4常量
1.字面常量(不可改变/不可写)
int a=2; float b=1.25f; double c=12.6;
2.用#define定义的宏常量(无类型、不开辟空间、不能加 ;)----特点:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。
#define MAX 10
3.用const关键字修饰的变量,称为常变量(不可改,要初始化)。
int const x=10; const float y=12.6;
4.枚举类型enum、枚举常量
#includeenum week {mon=1,tue=2,wed=3,thu=4,fri=5,sat=6,sun=7};//枚举元素,只能是整型 int main() { enum week wx;//1 2 3 4 5 6 7 wx=mon; wx=sun; printf("%dn",wx); return 0; }
5.字符
5.1ASCII值
‘ ’---32 ‘0’---58 ‘A’--- ‘a’---97
‘ ’---字符定界 " "---字符串定界
---转义字符
6.顺序语句、选择语句、循环语句
6.1 if语句---单分支、双分支
6.2循环语句
while---先判断后执行
#includeint main() { int n=10; while(n>=0) { printf("%dn",n); n--; } return 0; }
do...while---先执行后判断
#includeint main() { int n=10; do { printf("%dn",n); n--; }while(n>=0); return 0; }
for循环语句
7.数组
数组是包含给定数据类型的一组数据,即一组相同数据类型元素的集合,内存中连续分配。
数组语法如下:<类型> 数组名 [元素数量];访问数组从下标0开始。
#includeint main() { int a[10] = {12,13,15,46,89,2,1,3,6,5 }; for (int i =0; i <10; ++i) { printf("%d n", a[i]); } return 0; }
8.函数
#include#include float TriangleArea(float a,float b,float c) { float p,s=-1; if((a+b)>=c&&(b+c)>=a&&(a+c)>=c) { p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); } return s; } int main() { float x,y,z,s; scanf("%f %f %f",&x,&y,&z); s=TriangleArea(x,y,z); printf("三角形面积:%fn",s); return 0; }
9.可见性(作用域)和生存期
可见性,此阶段针对编译和链接过程
进程---cpu+内存(代码区.text、数据区(存放数据,三部分---数据区.data、堆区.heap、栈区.stack(存在栈帧)))
生存期也叫生命期,此阶段针对的是程序的执行过程。
(1)局部变量生存期:函数被调用,分配存储空间,到函数执行结束,存储空间释放。存储在.stack区。
(2)全局变量的生存期:从程序开始执行,到执行后结束。存储在.data区。
(3)动态生命期
10.运算符
*** 作数、运算符、左值(可读可写)和右值(可读)
10.1 ?:条件运算符(与if语句等同用法)
#includeint main() { int a=0,b=0; int max=0; scanf("%d %d",&a,&b); max=a>b?a:b;//与if语句等同用法 printf("max=%dn",max); return 0; }
10.2前置++,后置++(回写能力,单目运算)
#includeint main() { int a=10,b=10,x=0; x=++a; printf("x=%da=%dn",x,a); x=b++; printf("x=%di=%dn",x,b); return 0; }
10.3取余%
(1)判断是否能够整出某个数
(2)判别奇偶数,判别质数(或素数)---一个数只能被1和自身整除
(3)计算范围,形成循环
#includeint main() { //abcdefghijklmnopqrstuvwxyz //bcdefghijklmnopqrstuvwxyza //. //. //. //zabcdefghijklmnopqrstuvwxy char a[]={"abcdefghijklmnopqrstuvwxyz"}; int n=26,k; for(int i=0;i (4)求最大公约数:求最大公约数最常见的方法是欧几里得算法(又称辗转相除法),其计算原理依赖于定理:gcd(a,b)=(b,a mod(取模) b)
#includeint main() { int a=0,b=0; scanf("%d %d",&a,&b); int c=a>b?a:b; int i=c+1; while(i--) { if(a%i==0&&b%i==0) { printf("最大公约数:%dn",i); break; } } return 0; } //辗转相除法 #includeint main() { int a=0,b=0,tmp=0; scanf("%d %d",&a,&b); while(b!=0) { tmp=a%b; a=b; b=tmp; } printf("%dn",a); return 0; } 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)