C语言程序设计笔记

C基础  

printf()输出函数,scanf()输入函数,出现在scanf("请输入%d,%d",&a&b),“”中的东西一定都要出现

#include<stdio.h>//heading标准输入输出头文件 
void main()// 返回类型 函数名(形式参数)
{
printf("HELLOWORLD!\n");//语句都是以分号结尾
//有具体的返回值,就一定在函数体内有return 
}
//单行注释,/* */多行注释
//void 表示空类型,可理解为不返回任何数据

常量

不会变的就是常量

变量

变量就是可变的,直接写在程序里的是直接量

变量必须先定义,后使用

变量初始化,int i=0;就是初始化,变量等于初始值,一行也可定义多个变量,一旦初始化就不能再修改

c99可以在代码任意位置定义变量,ANSIC只能在代码开头的地方定义变量

数据类型

整数的运算只能是整数%d,浮点数就是有小数点的数%f,小数点是浮动的,当浮点数和整数放到一起运算时,用double会将整数转换成浮点数,然后进行浮点数运算%lf

PI符号常量,以标识符的形式出现,const修饰符,表示这个变量的值

整数:char,short,int,long,longlong

浮点数:float,double,long double

范围:char<short<int<float<double

表达形式:二进制(补码),编码

float单精度浮点数,浮点数常量一般默认存储为双精度浮点数double

1byte=8bit byte,1bit1个位,只能存放1个1或1个0

sizeof()是静态运算符,sizeof(int)

b94792731e2f4ce2acd5a7a0e5db0eb7.jpg

变量值在存储单元中都是以补码形式存储的

fd93c24f5d1443259509b45b8bdc11be.jpg

标识符

用来标识变量,常量,函数等的名称(文件的名称),标识符应该由字母,数字,下划线_组成,而且首字符一定不能是数字

int,void....关键词,预定义标识符不能作为变量名

赋值

将一个表达式赋值给一个变量,定义时,不可连续赋值,定义完成后,可以连续赋值

int x,y;
x=y=10;//是对的
不可以int x=y=10;

 自加,自减

++在前先加后用,++在后先用后加

++递增,--递减,b=++a,a的值+1赋给b,b=a++,a赋给b再+1

运算符 

  • 算数运算符

优先级也就是数学中四则运算的优先级,先加减,后乘除

d574f623c50248d38612216386ad51b3.jpg

  • 关系运算符

关系运算符比算数运算符低,连续运算符,从左向右算

=是赋值,==才是等于

6932383db1104d43b4c42a1696971814.jpg

  • 逻辑运算符

04b98b5e9bb1445e9f3a10786fb7ff6d.jpg

字符型

字符型是按其代码形式存储的  32942fb7c63e491fb2b16b70909eed87.jpg1c5491ff729a45a0b15b519e0ffd74b7.jpg

#include<stdio.h>
void main()
{
/*1	char ch1='M';//ASCLL对照表中m为109 
	char ch2;
	ch2=ch1+('a'-'A');
	printf("%d\n",ch2);
	printf("%c\n",ch2);

2	int x=6;
	x-=x*=x+x;//(x=x*3)
	printf("%d\n",x);
3	int x=15;
	printf("x=%d\n",++x);//x=16,自加++,x=x+1先使用,再自加,x=x+1先自加,后使用;x--/--x,x=x-1,x=x-1(同加) 
	printf("x=%d\n",x++);//x=16
	printf("x=%d\n",x);//x=17*/
    int a=1,b=2;
	b=a++*++b;
	printf("%d,%d\n",a,b);
}
#include<stdio.h>
void main()
{
	double a=5.8;
	int s=5;
	char ch='a';
	//printf("%d\n",sizeof(int));//sizeof(),统计某个类型(或者变量)在内存中所占字节数
	printf("%d,%d\n",sizeof(a+s),sizeof(s+ch)); 
}
#include<stdio.h>//包含标准输入输出头文件 
//#编译预处理命令:1.文件包含 2.宏定义 3.条件编译 
int main ()
//int返回类型 main函数名 ()有东西的话叫形式参数
//int main()一般叫函数首部或函数头 
// 主函数:函数名为main的函数
//1.C程序执行的入口点 ,都是主函数 (一个C语言程序可以有多个函数组成,但有且只有一个主函数) 
//2.C的代码严格区分大小写 
{   
    int a,b,sum;//a,b,sum变量,变量相当于在内存中开出三个盒子,都用于存放整数,大小一样 ,第一个盒子叫a,第二个盒子叫b,第三个盒子叫sum
	//专业说法,开辟出三个四字节大小的空间 1字节=8位 32位表示整数 
	//int整数类型
	//float单精度浮点数
	//double双精度浮点数   
    a=123;//123常量 = 赋值
	//赋值将符号右侧的内容放到左边的变量所在的内存单元当中去
	//a赋值为123或将123赋值给a 
    b=456;
    sum=a+b;
    printf("a=%d\n",a);//%d占位符(整数)\n回车 
	//格式符号:d,f以带符号的十进制形式输出整数(正数不输出符号)
	//c以字符形式输出,只输出一个字符 
	//s输出字符串 
	//f以小数形式输出单,双精度数,隐含输出6位小数/
	//o以八进制无符号形式输出整数(不输出前导符0)
	//x,X 以十六进制无符号形式输出整数(不输出前导符0x)用x则输出十六进制数的a~f时以小写形式输出用X时则以大写字母输出
	//u 以无符号十进制形式输出整数
	//e,E 以指数形式输出实数用e时指数以“e”表示(如12e+02)用E时指数以“E”表示(如12E+02)
	//g,G 选用%或%e格式中输出宽度较短的一种格式,不输出无意义的0。用G时.若以指数形式输出。则指数以大写表示
    printf("b=%d\n",b);                          
    printf ("sum= %d\n",sum);                    
    return 0;                                    
}  //{}里叫函数体  

ASCII码d796a2ba1f0944ea96220d47e6b6f7c7.jpg

 if语句

if如果条件成立,则执行循环体,不成立则输出其他

if-else语句

#include <stdio.h>
void main()
{
    int x;
    int a;
    scanf("%d",&x);
    if(x>5){
	    a=3;
		}else{
			a=4;
		}
	printf("%d\n",a);

 求三个数中的最大值

#include <stdio.h>
void main()
{
	int x,y,z;
	int max;
	printf("请输入三个整数,用空格分隔:");
	scanf("%d%d%d",&x,&y,&z);
	if(x>y) 
	    max=x;
	else 
	    max=y;
	if(max<z)
	    max=z;
	printf("最大值为:%d\n",max);
}

if-else if语句

if写的不是关系,说明,是步骤,所以用else if 

#include <stdio.h>
void main()
{
    int x;
    int a;
    scanf("%d",&x);
    if(x>5){
	    a=3;
		}else if(x<=5){
			a=4;
		}
	printf("%d\n",a);
}

if-else if-else语句

#include <stdio.h>
void main()
{
    int x;
    int a;
    scanf("%d",&x);
    if(x>5){
	    a=3;
		}else if(x<5){
			a=4;
		}else{
			a=8;
		}
	printf("%d\n",a);
}

swith-casse语句

case是常量表达式语句

break:结束整个循环,跳出循环体,执行循环之后的语句

continue:结束本次循环,接着执行下一次循环

#include <stdio.h>
void main()
{
	int num;
	printf("输入:");
    scanf("%d",&num);
    
   switch(num){
    case 60:
	    ;
       printf("你好\n");
       break;
    case 70:
	    
   	    printf("world\n");
   	    break;
   	default:
   	    printf("123\n");
        break;
    }
}

whlie循环

当条件满足时,先判断,后进入循环体,可能一次都不做循环

#include <stdio.h>
void main()
{
	int i;
	int j=0;
	scanf("%d",&i);
	while(i<10){
		j++;
		i=j+1;
		printf("i=%d,j=%d\n",i,j); 
	}
	printf("%d\n",j);
	
}

do-while循环

 先进循环体,再判断条件,比while少做一次循环

for循环 

先判断,后循环,for==while可相互转化

1+2+3+,,,+100求和

#include <stdio.h>
void main()
{
	int i;
	int sum=0;
	for(i=1;i<=100;i++)
	    sum=i+sum;
	printf("%d",sum);
}

for嵌套

#include <stdio.h>
void main()
{
	int i,j;
	for(i=0;i<3;i++)
	{
	    for(j=0;j<4;j++)
	    printf(" ");
	    for(j=0;j<5;j++)
	    printf("*");
	    printf("\n");
	}
}
#include<stdio.h>
void main()
{
/*	int n,sum=0;
1.  for(n=1;n<=100;n++)//循环首部 for(表达式1:循环变量初始化,表达式2:判断条件是否成立
	//表达式3:修改循环变量的值,确保循环能够结束)1到2,2到3,(Y)3回到2循环,(N)输出 
	 if(n%5==0)//余数为0 
    sum+=n;//sum=sum+累加求和5+10+15+20...+100 
	//循环体 语句(块)条件成立执行循环体 
2.  for(n=0;n<=100;n++)
	sum=sum+n;//0+0+1+2+3...+100
3.	int n=0,sum=0;
	for(;;)
	{
		if(n>100)break;
		sum=sum+n;
		n=n+1;
	}
	printf("%d,%d\n",sum,n);//1050,101;5050,101;5050,101
4.	int i,k;
	for(i=0,k=-1;k=1;k++)//第三语句,k=1无数次,k一次 
	printf("*****");*/
	int y=9;
	for(;y>0;y=y-1)//y--,y=y-1
	if(y%3==0)
	printf("%d",--y);//852 
}

函数的参数传递

#include<stdio.h> 
int main()//void main()是不需要写return那行,int main()需要写 return
{
	int max(int x,int y);//函数声明 
	int a,b,c;
	scanf("%d,%d",&a,&b);//scanf输入函数 ""中是输入格式 &取地址符(也叫and运算符)
	//输入两个整数,两个%d前填4,5,把4放到a的地址,5放到b的地址 
	c=max(a,b);//c赋值max(a,b) 
	printf("max=%d\n",c);
	return 0;
}
//求两个函数中较大者的max函数 
int max(int x,int y)//定义max函数
//函数调用,把8调用到13,a-x,b-y参数传递:实际参数传递给形式参数 
//a=4,b=5则int x=4 int y=5
{
	int z;
	if(x>y)//if判断真假,真执行if z=x,假执行else x=y 
//x=4,y=5,4>5,不成立,条件为假 
	    z=x;
	else 
    	z=y;//所以 z=y=5
	return(z);//z返回到8,c赋值为z里面的值,z=y=b=5 
}

数组

int a[10],<类型>变量名称[元素数量],定义数组下标必须为整形常量或整形常量表达式

每个单元就是一个变量,可以出现在赋值的左边或右边a[2]=a[1]+6

一维数组

int a[6]=[1,2,3,4,5,6]

二维数组

int a[6]b[3]=[1,2,3,4,5,6,]

字符串

指针

文件

#include"no2.c"
main()
{add(29,30);
``````
}//no1.c

int add(inta,intb)
{
return a+b;
}//no.2

(后面补充)

 

 

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝欢~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值