C语言小知识

来源:互联网 发布:协同过滤算法 编辑:程序博客网 时间:2024/04/30 17:57

1.什么是计算机程序?什么是编程语言?为什么需要编程语言?编程语言是用来干嘛的?举例一些编程语言,以及他们各自的特点?

 

1)计算机程序是指一组指示计算机每一步动作的指令,通常有某种程序设计语言编写,运行于某种目标体系结构上

2)编程语言是用来定义计算机程序的形式语言。它是一种标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

3电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。

4用来向计算机发出指令,一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

5C语言

是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

C++

这个词在中国大陆程序员圈子中通常被读做“C加加,而西方的程序员通常读做“C plus plus”“CPP”。它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计数据抽象面向对象程序设计泛型程序设计等多种程序设计风格

Java

是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于19955月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE, JavaME)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

2编辑好的程序到成为可以运行的可执行文件,要经历哪几个过程?

编译:将源程序翻译为目标文件(.OBJ)
链接:将目标文件生成可执行文件( .EXE)
运行:执行.EXE文件,得到运行结果

3现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?

C语言是最基础的,学单片机就是要先好C语言

1. 简洁紧凑、灵活方便  C语言一共只有32个关键字,9控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2. 运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言  结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格,程序设计自由度大  虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作  由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

7. 生成目标代码质量高,程序执行效率高  一般只比汇编程序生成的目标代码效率低1020%

8. C语言适用范围大,可移植性C语言有一个突出的优点就是适合于多种操作系统,如DOSUNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。

4什么是常量,什么是变量?都有哪些分类?

 

常量在程序运行时,不会被修改的量。换言之,常量虽然是为了硬件、软件、编程语言服务,但是它并不是因为硬件、软件、编程语言而引入。

整体上分两类,一类是整型常量,一类是浮点型常量。细致上分,整型常量还包括字符常量、字符串常量
.整型常量   627-299
.浮点型常量 5.43-2.35.43F(单精度)2.3f(小写的f也可以)
.字符常量   如‘6’,‘a’,L''(宽字符常量)
.字符串常量 如“6”,“男”,“nanabc

变量就是可以改变的意思,可以在程序运行时修改值。对应不能修改的常量。变量名其实是内存地址的常量指针。

5标识符的命名规范是什么?

  1. 必须用字母或下划线开头

  2. 只能是字母、下划线、数字的组合,不能出现其他符号。大小写的含义是不同的

  3. 标识符的名称不能是C语言中的关键字,关键字是具有特定含义的标识符,用户只能根据系统的规定使用它们。例如 char 是关键字,用户的标识符就不能用它来命名。

6什么是数据类型?数据类型分为哪些种类?每种数据类型占多少个字节大小?每种数据类型的取值范围怎么计算?思考:对于数据类型为什么要分类?

  1. 数据类型是按照规定形式表示数据的一种方式,不同的数据类型占用空间也不同。

整型

2)加上不同的修饰符,整型数有以下几种类型; 

signed short int有符号短整型数说明。简写为shortint,字长为2字节共16位二进制数,数的范围是-32768~32767 

signed long int有符号长整型数说明。简写为long,字长为4字节共32位二进制数,数的范围是-2147483648~2147483647 

unsigned short int无符号短整型数说明。简写为unsigned int,字长为2字节共16位二进制数,数的范围是0~65535 

unsigned long int无符号长整型数说明。简写为unsigned long,字长为4字节共32位二进制数,数的范围是0~4294967295

浮点型 

       Turbo C中有以下两种类型的浮点数: 

     float 单浮点数。字长为4个字节共32位二进制数,数的范围是3.4x10-38E~3.4x10+38E double 双浮点数。字长为 8个字节共 64 位二进制数,数的范围是1.7x10-308E~1.7x10+308E

字符型(char) 

加上不同的修饰符,可以定义有符号和无符号两种类型的字符型变量, 例如: 

char a: /*a被定义为有符号字符变量*/ unsigned char l; /*l被定义为无符号字符变量*/ 

字符在计算机中以其ASCII码方式表示,其长度为1个字节,有符号字符型数取值范围为-128~127,无符号字符型数到值范围是0~255

字符型(char) 

加上不同的修饰符,可以定义有符号和无符号两种类型的字符型变量, 例如: 

char a: /*a被定义为有符号字符变量*/ unsigned char l; /*l被定义为无符号字符变量*/ 

字符在计算机中以其ASCII码方式表示,其长度为1个字节,有符号字符型数取值范围为-128~127,无符号字符型数到值范围是0~255

无值型(void) 

无值型字节长度为0,主要有两个用途:一是明确地表示一个函数不返回任何值;一是产生一个同一类型指针(可根据需要动态分配给其内存)

5)思考

据数据类型分配其存储位置、确定其作用范围等等

    7字节大小是什么意思?怎么计算数据类型或者变量的字节大小?

不同的数据类型所占用的字节数

使用sizeof()函数将变量或常量作为该函数的参数,通过程序输出该函数的值

8.什么是原码?什么是补码?什么是反码?正数的原码补码反码怎么表示,负数的原码补码反码怎么表示?

  1. 原码(trueform)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

2)对于正数:反码等于补码等于原码

3)对于负数:反码等于除符号位以外各位取反

    补码等于反码加1

    原码等于补码减1等于补码的反码加1

9.运算符有哪几种?每种运算符进行什么运算?

算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==) 大于等于(>=)、小于

等于(<=)和不等于(!=)六种。

逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

条件运算符:这是一个三目运算符,用于条件求值(?:)

逗号运算符:用于把若干表达式组合成一个表达式()

指针运算符:用于取内容(*)和取地址(&)二种运算。

求字节数运算符:用于计算数据类型所占的字节数(sizeof)

特殊运算符:有括号(),下标[],成员(→.)等几种。

10、C语言中有哪些控制语句,每种控制语句有什么功能?
if( )~else       条件语句

for( )~         循环语句

while( )~       循环语句

do~while( )     循环语句

continue       结束本次循环语句

break          中止执行switch或循环语句

switch         多分支选择语句

goto           转向语句

return         从函数返回语句

11.搞清楚if...else,for循环,while循环,switch...case怎么执行的? for(i=0;i<a;i++)

if(条件一满足)

语句一;

else

语句二;

for的语句中,只要满足i<a,就一直执行语句一,i++是循环计数,直到不满足i<a时,执行语句二结束循环。

while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。

从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句

12.break和continue有什么区别?

1.break
有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。
这是我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
2.continue
continue
break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。