关键词不能为空

当前您在: 主页 > 英语 >

C语言整理笔记

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 12:46
tags:

-

2021年3月3日发(作者:间冰期)


页眉内容





1


)变量为什么必须初始化






所谓初始化就是赋值的意思。





2


)常量在


C


语言中是如何表示






整数:








十进制:



传统写法



例:


int a = 123;







十六进制:



前面加

< br>0X



0


是数字零,

< p>
X


可以大小写)








八进制:



前面加

0



0


是数字零)





浮点数:



传统写法



例:


float



a = 3.2;


科学计数法



例:


float a = 3.2e3;




float a = 3.2e- 2




e


表示 为


10









浮点数的存储所带来的问题










Float



double


都不能保证可以精确的存储一个小数。













字符:



单个字符用单引号括起来;字符串用双引号括起来








例:



A< /p>


’表示字符


A.


(注意:



AB


’是错误的,正确写法“


AB
















A


”是正 确的,因为“


A


”代表了‘


A




0


’的组合(


0


是数字)



< /p>


3


)常量以什么样的二进制代码存储在计算机中

< br>





整数是以补码的形式转化为二进制代码存储在计算机的






实数是 以


IEEE754


标准转化为二进制代码存储在计算机的






字符的本质实质也是与整数的存储方式相同




4


)什么是字节






字节就 是存储数据的单位,并且是硬件所能访问的最小单位。


(一个字节



=



8


个位)




5


)什么是


ASCII





ASC II


不是一个值,而是一种规定。


ASCII

< br>规定了不同的字符是使用哪个整数值去表示。







A




——




65





B




——




66





a


’——



97





b




——



98





0




——



48



0


是数字)




6


)运算符






算术运算符








+








*




/


(除)




%


(取余)




除法



/


的 运算结果和运算对象的数据类型有关,两个数都是


int


,则商 就是


int


,若商有







小数,


则截取小数部分;


被除数和除数中只 要有一个或两个都是浮点型数据,


则则商也是浮



点型,不截取截取小数部分。






例:



16 / 3 == 5




16 / 5.0 ==3.20000




16.0 / 5 == 3.20000











3 / 5 == 0;



5 / 3 == 1



取余



%


的 运算对象必须是整数,结果是整除后的余数,其余数的符号和被除数相同。






例:



13 % 3 == 1;



13 %



3 = 1





13 % 3 ==



1





13 %



3 ==



1













脚内容



页眉内容






关系运算符




>





>=





<






<=




!=






=






逻辑运算符









(不等于)




&&


(并且)






||


(或)




&&


左边的表达式为假,右边的表达式肯定不执行





| |



左边的表达式为真,右边的表达式肯定不执行






赋值运算符








=



*=



a *= 3


等价于


a = a * 3







优先级别








算术



>


关系



>



逻辑



>


赋值



三目运算符





A




B



C



等价于




if



A




B




else



C




逗号表达式






A



B



C



D




功能:从左到右执行,最终表达式的值是最后一项的值




7


)如何使用


scanf


编写出高质量代码






1.


使 用


scanf


之前最好先使用


prin tf


提示用户以什么样的方式输入








如:


printf(


请输入两个值(中间用 空格分隔)


:n











scanf(











printf(






2.



Scanf


中尽量不要使用非输入控制符,尤其不要

< p>


n










Scanf



(




%c




ch)< /p>




/ /



%c


前面必须加一个空格






3.


应该编写代码对用户的非法输入做适当的处理








如:



char ch;












While ( ( ch = getchar( ) )




=



n



)















Continue;







例:



# include


int main(void)


{





int a;





int b;





char ch;









scanf(





printf(






while ( (ch = getchar()) != 'n' )






continue;






scanf(





printf(




脚内容



页眉内容







return 0;


}


8



if


的范围问题






1. If


(表达式)











语句


A;










语句


B;



If


默认只控制语句


A


的执行或不执行,


if


无 法控制语句


B







2. If


(表达式)










{












语句


A;












语句


B;










}







此时


if


可 以控制语句


A


和语句


B


由上可知:


if


默认只能控制一个语句,如果想控制 多个语句,就必须把这些语句用


{}


括起来



9



if


的常见问题解释





1.


空语句的问题









If ( a > b)







等价于









If ( a > b












/ /


这是一个空语句





2. If ( a > b)



/ /


这里不应该加分号










A




else








B




这是错误的语句







3.



If


(表达式


1














A










Else if


(表达式


2














B










Else if


(表达式


3














C










Else













D





即便表达式


1



2


都成立,也只会执行


A


语句

< p>





4.



If


(表达式


1














A










Else if


(表达式


2














B










Else if


(表达式


3














C









这样写法不会出错,但逻辑上有漏洞




脚内容



页眉内容






5.



If


(表达式


1














A










Else if


(表达式


2














B










Else if


(表达式


3














C










Else



(表达式


4



/ /


正确写法要么去掉表达式


4


,要么在


else


后面加


if












D









这样写是错误的






6.



If


(表达式


1














A










Else if


(表达式


2














B










Else if


(表达式


3














C










Else



(表达式


4



/ /


无实际意义的语句













D










这样写法不会出错,但逻辑上有漏洞










Else



(表达式


4




/ /


无实际意义的语句













D











等价于











Else













(表达 式


4















D




10


)前自增和后自增的异同



相同




< /p>


最终结果


i


的值加


1


不同





前自增整体表达式的值是


i



1


之后的值





后自增整体表达式的值是


i



1


之前的值




11



for



while


可 以相互转换



For ( 1;



2;



3)






A




等价于



1




While ( 2 )


{





A







3




}



12



do


……


while





格式:



do



脚内容



页眉内容













{














……













} while


(表达式)










do


……


while


不等价于


for



while











主要用于人机交流




例:



# include



int main(void)


{







char ch;






do






{










int n;




int i = 0;










int sum = 0;













pri ntf(


请输入你要求和的数:











scanf(











for (i; i < n; ++i)





sum +=i;











printf(











pri ntf(


你想继续吗?继续请输入


Y



y


,退出请输入任意键



n










scanf(




/ /



%c


前面必须加一个空格







} while (ch == 'Y' || ch == 'y');








return 0;


}



13



switch


语句




例:



# include



int main(void)


{



int num;




printf(


请选择你的楼层数


:



scanf(




switch (num)



脚内容



页眉内容




{



case 1:




printf(

< br>第一层到!


n




break;



case 2:




printf(

< br>第二层到!


n




break;



case 3:




printf(

< br>第三层到!


n




break;



case 4:




printf(

< br>第四层到!


n




break;



default:




printf(

< br>还没有盖到这一层!


n




break;



}




return 0;


}








Swi tch


是选择不是循环,如果在


switch

< br>中出现了


break


语句。该语句的功能只是退出


switch


语句转去执行它下面的语句。在


switch


中出现


continue


是错误的,除非


switch


本身属于


for



while


循环的一部分。




14



break




continue


Break


的用法





Break


如果用于循环是用来终止循环





Break


如果用于


switch


,则是用于终止


switch




Break


不能直接用于

< p>
if


,除非


if


属于循环 内部的一个字句



例:



for (i = 0; i < 3; ++i)



{









if (3 > 2)







break; // break


虽然是


if


内部的语句,但


break


终止 的是


if


外部的


for




























printf (


哈哈!


n


永远不会输出






}










在多层


switch


嵌套中,


break


只能终止距离它最近的那个


switch







在多层循环中,


break


只能终止距离它最近的那个循环











脚内容



页眉内容





例:







for (i = 0; i < 3; ++i)



{









for (j = 1; j < 4; ++j) / /



break


终止了








break; / / break


只能终止距离它最近的那个循环








printf (


哈哈!


n




}



Continue


的用法





用于跳过本次循环余下的语句,转去判断是否需要执行下次循环




例:



For ( 1;



2;



3)


{





A;





B;






Continue; / /


如果执行该语句,则执行完该语 句后,会执行语句


3



C



D


都会被





















跳过去,


C



D


不会被执行。

< br>






C;






D;


}



15


)数组



一维数组





怎样定义一个一维数组










n


个变量 连续分配存储空间









所有的变量数据类型必须相同









所有变量所占的字节大小必须相等





不初始化,所有元素是垃圾值








int a [5]




错误写法:








int a [5]








a [5] = {1



2, 3



4



5}






只有在定义数组的同时才可以整体赋值,否则,是错误的。









正确写法:


int a [5] = {1



2, 3


4



5}





int a [5] = {1



2, 3


4



5}




int a [5] = 100



/ /


错误,因为没有


int a [5]


这个元素




int a [5] = {1



2, 3



4



5}




int a [b]






脚内容



页眉内容



如果要把

< br>a


数组中的值全部赋值给


b


数组



错误写法:


b = a




正确写法:





For ( i = 0; i < 5; ++i )






b[i] = a[i]





二维数组





int a[3][4];




总过有


12


个元素,可以看做


3



4


列。这


12


个元素如下:





a[0][0]



a[0][1]



a[0][2]



a[0][3]




a[1][0]



a[1][1]



a[1][2]



a[1][3]




a[2][0]



a[2][1]



a[2][2]



a[2][3]







初始化







int a[3][4] = {1



2



3



4



5, 6, 7



8



9, 10



11,12}









int a[3][4] = {












{1


,< /p>


2



3



4}














{5, 6, 7



8



}













{9, 10



11,12}






}







输出数组元素:








For (i = 0; i < 3; ++i)







{













For ( j = 0; j < 4; ++j)















Printf (



%d



,



a[i][j])










}





多维数组







是否存在多维数组









不存在,因为内存是线性一维的









n


维维数可以当做每个元素是


n




1


维数组的一维数组









如:











int a[3][4]














该数组是含有

3


个元素的一维数组,













只不过每个元素都可以再分为


4


个小元素











int a[3][4][ 5]















该数组是含有


3

个元素的一维数组,














只不过每个元素都是


4



5


列的二维数组



16


)函数











什么事函数














逻辑上:能够完成特定功能的独立代码块














物理上:




能够接受数据
























能够对接受的数据进行处理
























能够将数据处理的结果返回【也可以不返回】




脚内容



页眉内容







函数是个工具,它是为了解决大量 类似问题而设计的,它可以当做一个黑匣子。








int



f ( void ) / /


括号中的


void


表示该函数不能 接受数据,























int


表 示该函数返回值类型值是


int


类型








void g( void ) / /

< br>函数名前面的


void


表示该函数没有返回值

< p>



函数返回值的类型也称为函数的类型,如果函 数名前面的返回值类型



和函数执行体中的

return


表达式中表达式类型不同时,最终函数返回



值的类型以函数名前面的返回值类型为准




例:



# include



int f()


{



return 9.6; //


因为函数的返回值类型是


int


,所以 最终


f


返回的是


9

而不是


9.6


}



int main(void)


{



int i = 15;



double j = 5.5;







j = f();




printf(



j);




return 0;


}



return


表达式的含义





1


、终止被调函数,向主函数返回表 达式的值





2


、如果表达式为空,则只终止函数,不向主函数返回任何值





3



break


是用来终止循环和


switch


的,


return


是用来终止函数的< /p>



例:



void f()


{



return; / /


只终止函数,不向主函数返回任何值



}






int f()


{



return 10; / /


第一,终止函数,第二,向主调函数返回


10


}



脚内容


-


-


-


-


-


-


-


-



本文更新与2021-03-03 12:46,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/700031.html

C语言整理笔记的相关文章