C语言

C语言,第1张

C语言

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位二进制构成。

76543210
//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、枚举常量

#include 
enum 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---先判断后执行

#include 
int main()
{
	int n=10;
	while(n>=0)
	{
		printf("%dn",n);
		n--;
	}
	return 0;
}

do...while---先执行后判断

#include 
int main()
{
	int n=10;
	do
	{
		printf("%dn",n);
		n--;
	}while(n>=0);
	return 0;
}

for循环语句

7.数组

数组是包含给定数据类型的一组数据,即一组相同数据类型元素的集合,内存中连续分配。

数组语法如下:<类型> 数组名 [元素数量];访问数组从下标0开始。

#include 
int 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语句等同用法)

#include 
int 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前置++,后置++(回写能力,单目运算)

#include 
int 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)计算范围,形成循环

#include 
int main()
{
	//abcdefghijklmnopqrstuvwxyz
	//bcdefghijklmnopqrstuvwxyza
	//.
	//.
	//.
	//zabcdefghijklmnopqrstuvwxy
	char a[]={"abcdefghijklmnopqrstuvwxyz"};
	int n=26,k;
	for(int i=0;i 

(4)求最大公约数:求最大公约数最常见的方法是欧几里得算法(又称辗转相除法),其计算原理依赖于定理:gcd(a,b)=(b,a mod(取模) b)

#include 
int 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;
}
//辗转相除法
#include 
int 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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存