c语言ios,ios之c语言学习笔记

  • Post author:
  • Post category:其他


C语言笔记

1.Printf输出函数语法

printf的语法 输出语句

(1)printf("你想输出的内容");

(2)printf("格式字符串",...);占位符%d整形数 %f小数 %s字符串 %c单个字符

printf("\n");换行

2.常量与变量

定义变量  语法:数据类型 变量名

C语言中数据类型:

字符char,短整型short

整型int,长整型long

单精度浮点:float

长精度浮点:double

要想使用变量,必须先定义它。变量通过赋值语句保存东西。

3.scanf输入函数语法

scanf("数据类型的占位符",地址)%d %f %s %c

%ld %lf

inta,b;

printf("请输入第一个数")

scanf("%d",&a)

printf("请输入第二个数")

scanf("%d",&b)

printf("%d+%d=%d\n",a,b,a+b);

4.运算符

(1)特殊运算符:() .-> []

(2)算术运算符:+—×/%++--

(3)关系运算符:> >= < <= ==  !=

(4)位操作运算符:&∧/<< >>

(5)逻辑运算符:&&\\!

(6)条件运算符:?:

(7)赋值运算符:= += -= ×= /= %=

5.无条件转向之goto语句goto标签

goto l;

l:“`

**条件转向语句if语句**

if(条件)

{

条件成立时要做的事(一行或多行代码)

}

举例:

int a;

scanf(“%d”,&a);

if(a%2==0)

{

Pintf(“%d是偶数!\n”,a);

}

if(a%2!=0)

{

Pintf(“%d是奇数!\n”,a);

}“`

6.条件判断之if else语句

if(条件1)

{

条件1成立时要做的事(一行或多行代码)

}

else if(条件2)

{

条件2成立时要做的事(一行或多行代码)

}………………

else

{

以上条件都不成立时的代码

}“`

举例1:

int a;

scanf(“%d”,&a);

if(a%2==0)

{

Pintf(“%d是偶数!\n”,a);

}

else

{

Pintf(“%d是奇数!\n”,a);

}“`

举例2:

int a=0;

printf(“请输入一个有效的分数(0-100):”);

scanf(“%d”,&a);

if(a<60)

{

Printf(“%d是不及格!\n”,a);

}

else if(a<80)

{

Printf(“%d是及格!\n”,a);

}

else if(a<90)

{

Printf(“%d是优良!\n”,a);

}

else

{

Printf(“%d是优秀!\n”,a);

}“`

**7.条件判断之switch开关语句**

Swith(表达式)

{

case值1:

做是值1的事

break;

case值2:

做是值2的事

break;

………..

default:

如果前面的值都不是的事

}“`

举例1:

int a;

scanf(“%d”,&a);

if (a==0)

{

printf(“零\n”);

}

else If (a==1)

{

printf(“壹\n”);

}

else If (a==2)

{

printf(“贰\n”);

}

else If (a==3)

{

printf(“叁\n”);

}

else If (a==4)

{

printf(“肆\n”);

}

else If (a==5)

{

Printf(“伍\n”);

}

else If (a==6)

{

printf(“陆\n”);

}

else If (a==7)

{

printf(“柒\n”);

}

else If (a==8)

{

printf(“捌\n”);

}

else If (a==9)

{

printf(“玖\n”);

}

else

{

printf(“对不起,无法转换!”);

}“`

举例2:

switch(a)

{

case 0:

printf(“零\n”);

break;

case 1:

printf(“壹\n”);

break;

case 2:

printf(“贰\n”);

break;

case 3:

printf(“叁\n”);

break;

case 4:

printf(“肆\n”);

break;

case 5:

printf(“伍\n”);

break;

case 6:

printf(“陆\n”);

break;

case 7:

printf(“柒\n”);

break;

case 8:

printf(“捌\n”);

break;

case 9:

printf(“玖\n”);

break;

default:

printf(“对不起,无法转换\n”);

break;

}“`

8.循环之for语句

从某一处开始,连续不断的做一件事,就叫循环。

for(表达式1(赋值语句 初值);表达式2(条件);表达式3(增值的赋值语句))

{

循环要做的事(一行或多行代码)

}“`

举例1:

for(int i=0;i<8;i++)

{

printf(“1\n”);(输出8个1)

}“`

举例2:

for(int i=1;i<101;i++)

{

printf(“%d\n”,i);(输出1到100的数)

}“`

举例3:

for(int i=11;i<=55;i=i+3)

{

printf(“%d\n”,i);(输出11、14、17.。。。。。。53)

}“`

举例4:

for(int i=9;i>0;i–)

{

printf(“%d\n”,i);(输出987654321)

}“`

Continue:结束本次循环,开始下一次循环

Break:跳出循环

For循环的嵌套:外面的for循环一次,里面的for循环一圈,再循环到外面的for。

举例5:

int a=9;

scanf(“%d”,&a);

for(int i=a;i>0;i–)

{

for(int j=1;j<=3;j++)

{

printf(“%d\n”,j)

}

}

(当输入5时,输出5个123)“`

9.循环之while语句

while(条件)

{

循环体

}“`

举例1:

int sum=0,i;

for(i=1;i<=100;i++)

{

sum=sum+i

}

printf(“sum=%d\n”,sum);(5050)“`

举例2:

int sum=0,i;

for(i=1;i<=100;i++)

{

sum=sum+i

if(sum=3003)

{

break;

}

}

printf(“i=%d\n”,i);(77)“`

举例3:

int i=0;

while(i<100)

{

i++;

Printf(“%d\n”,i);

}

(输出1-100)“`

举例4:

int i=0,sum=0;

while(sum!=3003)

{

i++;

sum+=i

}

printf(“i=%d\n”,i);(77)“`

**10.循环之do while语句**

do

{

循环体

}while(条件);“`

举例1:

int i=0,sum=0;

do

{

i++;

sum+=i

}while(sum!=3003);

printf(“i=%d\n”,i);(77)“`

当知道循环次数的时候,用for循环,当不知道循环次数的时候,用while或do while循环。

举例:

int n;(保存总人数)

int score;(成绩)

int sum=0;(总分)

printf(“请输入你班级总人数”)

scanf(“%d”,&n)

for(int i=1;i<=n;i++)

{

printf(“请输入第%d名同学成绩”,i);

scanf(“%d”,&score);

sum+=score;

}

printf(“平均分是%g\n,sum*1.0/n”);“`

举例:

int n=0;(计数器)

int sum=0;(累加器)

int temp;(每一名同学成绩)

printf(“请输入第%d名同学成绩”,n+1);

scanf(“%d”,&temp);

while(temp>0)

{

n++;

sum+=temp;

printf(“请输入第%d名同学成绩”,n+1);

scanf(“%d”,&temp);

}

printf(“平均分是%g\n,sum*1.0/n”);“`

**11.函数**

1.在程序的不同地方出现了相同的代码

2.把大的应用改成几个小的部分

定义(函数的主体部分,代表函数)

声明(告诉下面的代码这个函数存在,你可以使用它)

调用(使用函数)

返回值 函数的名字(参数的列表)——函数头

{

函数体

}

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/2641649-e2513328610eebc4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Printf(“11”);相同时,就用函数,例如:

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/2641649-8497a76252f11882.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**12.自定义函数**

举例1.

![](http://upload-images.jianshu.io/upload_images/2641649-c923fa9b76bdbca1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

举例2.

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/2641649-8a4a12fca36f7726.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**13.函数的调用**

点右键-——add file to-——add.c/add.h文件

Add.c文件:{

float add(float a,float b,float c,)定义

Return a+b+c;

}

Add.h文件:float add(float a,float b,float c,);声明

![](http://upload-images.jianshu.io/upload_images/2641649-7cec7d9c8a62cdd9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

全局变量(定义在所有函数外面的变量叫全局变量)

局部变量(定义在大括弧里面的变量)

变量的作用域,就是变量的生命周期:在大括号外面使用不了里面的变量,里面能够使用外面的变量(里面能够看到外面)

**14.数组**

要想使用数组,就必须先定义它。

语法: 数据类型 数组名称[整型常量]

举例:“`Int cj[6]“`

(1).逐一赋值Int cj[0]=44;Int cj[1]=55;……….Int cj[5]=99;

(2).在定义时赋值Int cj[6]={44,55,66,77,88,99};

(3).for循环赋值

for(int i=0,i<6,i++)

{

cj[i]=60+i

}

printf(“cj[%d]=%d”,i,cj[i]);“`

15.二维数组

在c语言中,字符串就是使用字符数组来保存的

(1)

char chh[]={‘a’,’a’,’a’,’a’,’\0’};

Printf(“%s”,chh);(输出的是aaaa)“`

(2)

char chh[]=”hello”;相当于char chh[6]={‘h’,’e’,’l’,’l’,’o’,’\0’};“`

(3)

int n[3][3]={

{0,1,2},{3,4,5},{6,7,8}};“`

**16.指针**

(1)

int a;

a=123;

printf(“%d”,*&a)“`

&变量 取地址的符号

*地址 得到地址里面的内容“`

(2)

{

int a;

a=123;

printf(“a=%d\n”,a);

int * p;

p=&a;

*p=250;

printf(“a=%d\n”,a);

return 0;

}第一次输出123,第二次输出250.“`

(3)指针使用的情况:

1.在一个函数里面想访问另一个函数里的变量

2.动态内存申请

b30b10f9bfee

b30b10f9bfee

17.数组与指针

数组名就是一个指针

{

int a[10];

for(int i=0;i<10;i++)

{

a[i]=i+1

}

int * p=a ;

printf(“a[9]=%d\n”,*(p+9))

}“`

输出数组

{

int a[10];

for(int i=0;i<10;i++)

{

a[i]=i+1

}

int * p=a ;

for(int i=0;i<10;i++)

{

printf(“a[%d]=%d\n”,i,*(p+i)) ;

}

}“`

18.字符串

#include<string.h>

Strlen计算字符串的长度

Strcat字符串相连

Strcmp字符串的比较0代表相等

Strcpy字符串的赋值“`

**19.结构体**

语法: Struct结构名称

{

结构的数据

};“`

举例1.:

b30b10f9bfee

举例2:

b30b10f9bfee

20.结构体的使用

结构是可以嵌套的,结构中还可以有结构。

别名typedef“`

![](http://upload-images.jianshu.io/upload_images/2641649-9a7664c72fd96292.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**21.联合和枚举**

联合union“`

结构中的成员都有自己单独的内存,联合中的成员是共同使用内存。对于联合,在同一时间只能使用一个成员。

b30b10f9bfee

联合在程序中的运用:

b30b10f9bfee

枚举enum(罗列值)“`

**22.文件**

1.打开文件fopen

2.对文件进行操作(读r或写w)

写文件有3个函数:fputc写一个字符;fputs写一个字符串;fprintf用格式化的写。

读文件的函数:fscanf

3.关闭文件fclose

![](http://upload-images.jianshu.io/upload_images/2641649-5d16cbbfb190df4b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

举例:

{

FILE * fp=NULL;

fp=fopen(“abc.txt”,”w”);第一个参数是要打开的文件;第二个参数是操作的类型w r

if(fp==NULL)

{

printf(“打开文件失败!”);

return 0;

}

for(int i=’a’;i<=’z’;i++)

{

fputc(i,fp);输出a到z的26个字母

}

fclose(fp);

return 0;

}“`

23.二进制文件

写文件:fwrite

b30b10f9bfee

读文件:fread

b30b10f9bfee