下载此文档

C语言知识点总结.docx


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
该【C语言知识点总结 】是由【莫比乌斯】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【C语言知识点总结 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。(备注,这不是我们学校老师做的总结,所以里面有些地方说那个知识点是重点的不要完全相信,因为每个学校的侧重点不同,而且有些我们是没有学过的。希望这份东西对大家有用。明天就要考试了,看试题已经没有多大作用了,因为试题是看不完的,而且只要你巩固了基础,那出什么试题都不怕。)
6)算术运算符号的优先级别:
同级别的有的是从左到右,有的是从右到左。
7)强制类型转换:
一定是(int)a不是int(a),注意类型上一定有括号的。
注意(int)(a+b)和(int)a+b的区别。前是把a+b转型,后是把a转型再加b。
8)表达式的考查:
是表达式就一定有数值。
赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
自加、自减表达式:假设a=5,++a(是为6),a++(为5);运行的机理:++a是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。
考试口诀:++在前先加后用,++在后先用后加。
逗号表达式:优先级别最低;表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
例题:
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf(“%d,%d,%d\n”,x,y,z);
}
程序运行后的输出结果是
A)2,3,3B)2,3,2C)2,3,1D)2,2,1
9)位运算的考查:
会有一到二题考试题目。
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
例1: chara=6,b;b=a<<2;这种题目的计算是先要把a的十进制6化成二进制,再做位运算。
例2: 一定要记住,异或的位运算符号。0异或1得到1。0异或0得到0。两个女的生不出来。1异或1得到0。两个男的生不出来。考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。
例3: 在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。
10)018的数值是非法的,八进制是没有8的,逢8进1。
11)%符号两边要求是整数。不是整数就错了。
12) 三种取整丢小数的情况:
1、inta=;
2、(int)a;
3、1/2;3/2;
13)字符型和整数是近亲:
chara=65;
printf(“%c”,a);得到的输出结果:a
printf(“%d”,a); 得到的输出结果:65
2、输入和输出
1)printf函数的格式考查:
%d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。
%ld对应longint;%lf对应double。
2)scanf函数的格式考察:
注意该函数的第二个部分是&a这样的地址,不是a;
scanf(“%d%d%*d%d”,&a,&b,&c);跳过输入的第三个数据。
3)putchar,getchar函数的考查:
chara=getchar()是没有参数的,从键盘得到你输入的一个字符给变量a。
putchar(‘y’)把字符y输出到屏幕中。
4)如何实现两个变量x,y中数值的互换(要求背下来)
不可以把x=y,y=x;要用中间变量t=x;x=y;y=t。
5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)
这个有推广的意义,注意x=(int)x这样是把小数部分去掉。
main()
{doublehui;intxy;
scanf(“%f”,&hui);scanf(“%d”,&xy);
printf(“%f,%d”,hui,xy);
}
如果从键盘上输入的数据的值是:,则最后的输出结果是:
3、选择结构
特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。
1)关系表达式:
表达式的数值只能为1(表示为真),或0(表示假)
当关系的表达是为真的时候得到1。如9>8这个是真的,所以表达式的数值就是1;
2)逻辑表达式:
只能为1(表示为真),或0(表示假)
a)共有&&||!三种逻辑运算符号。
b)!>&&>||优先的级别。
c)注意短路现象。考试经常考到。
d)要表示x是比0大,比10小的方法。0<x<10是不可以的(一定记住)。是先计算0<x得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。所以一定要用(0<x)&&(x<10)表示比0大比10小。
3)if语句
else是与最接近的if且没有else的相组合的。嵌套的if….else语句的配对的原则:else总是和之前的最近的没有和其他的else成对的if成对。
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出结果是( )。
A)2 B)3C)4D)编译时有错,无结果
4)条件表达式:
表达式1?表达式2:表达式3
注意是当表达式1的值为:非0时候是表达式2的数值,当为0是就是表达式2的数值。
考试口诀:真前假后。
5)switch语句:
a)一定要注意有break和没有break的差别,书上(54页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。
b)switch只可以和break一起用,不可以和continue用。
c)switch(x)x:是整型常量,字符型常量,枚举型数据。
{case1:….case后面的只能是常量不能是变量。
case2:….
}
注意:break可以用在循环语句中,也可以用在switch语句中。但是continue语句只能用在循环语句中。
例题:
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf(“a=%d,b=%d\n”,a,b);
}
4、循环结构
1)三种循环结构:
a)for();while();do-while()三种。
b)for循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d)do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错),do-while循环是至少执行一次循环。
复习:三个循环结构的执行过程。
while是先判断后执行。do….while是先执行后判断。
for()先执行表达式1,判断表达式2,执行循环体中的内容,在执行表达式3.
例题:
2)break和continue的差别
记忆方法:
break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。
continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。
3)嵌套循环
就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。
4)while((c=getchar())!=’\n’)和while(c=getchar()!=’\n’)的差别
先看a=3!=2和(a=3)!=2的区别:
(!=号的级别高于=号所以第一个先计算3!=2)第一个a的数值是得到的1;第二个a的数值是3。
考试注意点:括号在这里的重要性。
main()
{inti=0,s=0;
for(;;)
{if(i==0||i==5)continue;
if(i==6)break;
i++;s+=i;
}
printf(“%d”,s);
}
A、10B、13C、21D、程序进入死循环
5、函数
函数:是具有一定功能的一个程序块;是C语言的基本组成单位。
1)函数的参数,返回数值
voidf(intv,intw)
{intt;
t=v;v=w;w=t
}
main()
{intx=1,y=3,z=2;
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
2)函数的调用:
实参和形参之间传数值,和传地址的差别。(考试的重点)
按数值传替,形参的变化不会改变实参的变化。(单向传替)
按地址传替,形参的变化就会有可能改变实参的变化。(双向传替)
3)函数声明的考查:
一定要有:函数名,函数的返回类型,函数的参数类型。
不一定要有:形参的名称。
4)要求掌握的库函数:
sqrt()fabs()pow()sin()其中pow(a,b)是重点。23为pow(2,3)。以及sqrt()表示的是一个表达式或者是一个数值的开方。
5)函数最后返回值的类型决定于函数的定义类型。
6、指针
1)、指针变量的本质是用来放地址,而一般的变量是放数值的。
int*p中*p和p的差别:
*p可以当做变量来用;*的作用是取后面地址p里面的数值
p是当作地址来使用。
*p++和(*p)++的之间的差别:改错题目中很重要
*p++是地址会变化。
(*p)++是数值会要变化。
若有说明:intn=2,*p=&n,*q=p;则以下的非法的赋值语句是:()
A、p=qB、*p=*qC、n=*q;D、p=n
2)、三名主义:(考试的重点)
数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次)
函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。
考试重要的话语:
指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*p的地方都可以用它等价的代替。
例如:inta=2,*p=&a;
*p=*p+2;
(由于*p指向变量a,所以指向哪个就等价哪个,这里*p等价于a,可以相当于是a=a+2)
指针变量两种初始化
方法一:inta=2,*p=&a;(定义的同时初始化)
方法二:inta=2,*p; (定义之后初始化)
p=&a;
3)、给指针变量赋空值之后,不能对该变量进行指针运算。
#include“”
main()
{intn,*p=NULL;
*p=&n;
printf(“请输入数据:”);
scanf(“%d”,&p);printf(“结果是:”);
printf(“%d\n”,p);
}

C语言知识点总结 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人莫比乌斯
  • 文件大小21 KB
  • 时间2022-10-25