ios之c语言学习笔记

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.动态内存申请

ios之c语言学习笔记_第1张图片

ios之c语言学习笔记_第2张图片

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.:

ios之c语言学习笔记_第3张图片

举例2:
ios之c语言学习笔记_第4张图片

20.结构体的使用
结构是可以嵌套的,结构中还可以有结构。

别名typedef```
![](http://upload-images.jianshu.io/upload_images/2641649-9a7664c72fd96292.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**21.联合和枚举**

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


ios之c语言学习笔记_第5张图片

联合在程序中的运用:


ios之c语言学习笔记_第6张图片
枚举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

ios之c语言学习笔记_第7张图片

读文件:fread
ios之c语言学习笔记_第8张图片

你可能感兴趣的:(ios之c语言学习笔记)