C语言基础整理

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

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

答:计算机程序是指一组指示计算机执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。

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

  电脑每做一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用编程语言来编写的,所以我们需要编程语言。

  用来向计算机发出命令,控制计算机。

  C语言:既有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计原因,编写不依赖计算机硬件的应用程序。应用范围广泛,具备很强的数据处理能力。

  C++:是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

  JAVA:是一种可以撰写跨平台应用软件的面向对象的程序设计语言。具有卓越的通用性、高效性、平台移植性和安全性。

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

 答:预处理、编译、汇编、链接

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

 答:C语言是计算机程序语言的基础,是实用的程序设计语言,学好C语言对我们今后学习JAVA、C++、VB打下良好的基础。因为这些语言大部分都是C语言扩充或衍生而来的。C可以用于开发比较底层的打下,比如驱动、通信协议之列,在Unix和Linux环境中是不可或缺的,另外在嵌入式领域也大有作为。

  既有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计原因,编写不依赖计算机硬件的应用程序。应用范围广泛,具备很强的数据处理能力。  

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

  答:常量:在程序执行过程中,其值不发生改变的量。

            有整型常量、浮点型常量、字符型常量、字符串型常量。

      变量:在程序执行过程中,其值会发生改变的量。

            不同数据类型的变量、全局变量、局部变量、静态变量、寄存器变              量、外部变量

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

 答:标识符由字母、数字、下划线组成,第一位必须是字母或下划线,不能是数字。

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

 答:数据类型本质是固定内存块大小的别名。

     分类:

 

     short占2byte,int占4byte,long占4byte,float占2byte,double占8byte,char占1byte

    C语言中的数据类型所占字节数与取值范围的关系实际上是整数编码和浮点数编码的问题,整数编码的三种方式是原码、反码、补码,浮点数的编码格式使用的是IEEE754编码。

1、整数编码以字符类型为例。

   字符类型占1个字节,共8位二进制bit位,因此排列组合数,有2^8 = 256种编码的方法。如果表示无符号字符类型,那一般来说表示[0,255]这256个数。

   如果表示有符号char类型,如果表示正数,那最高位符号为0,因此可表示的最正整数是:0-111 1111 ,转化成十进制就是127。同样的道理,符号为1表示负数。最小的负数是

1-000 0000,转化成十进制数就是-128,因此有符号char类型表示的范围是[-128,127]。

一般来说,假设整型数据类型占的二进制位数n,如果表示无符号整数则取值范围是[0,2^n-1],如果表示有符号整数,[-2^(n-1) , 2^(n-1) - 1] 。

2、浮点数类型

   浮点数编码一般采用的是IEEE754的编码规则,这个编码格式主要指出了浮点数有效数字、指数以及符号位所占的二进制位数。简单概括为:

 

  注意:扩展双精度格式没有隐含位,因此它的有效位数与尾数位数一致,而单精度和双精度格式均有一位隐含位,因此它们的有效位数比尾数位数多1。

  变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。

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

 答:字节(Byte)计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8二进制。

     sizeof

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

  答:原码:机器数的一种简单的表示法。其符号位用0表示正号,用1表示负号,数值一般用二进制形式表示。

      补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1

      反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反

 

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

  答:主要分为三大类:算数运算符、 关系运算符逻辑运算符。除此之外,还有一些用于完成特殊任务的运算符,如位运算符。 

     算数运算:算术运算(加减乘除)

      关系运算符:<<=>>===、!=

      逻辑运算符:&&逻辑与|| 逻辑或

   

10. C语言中有哪些控制语句,每种控制语句有什么功能?

  答:C语言中共有9种控制语句,可以分为条件判断语句 .循环执行语句 转向语句。

      条件判断语句if语句、switch语句,判断是否满足相应条件。

      循环语句主要有while循环语句、do-while循环语句和for循环语句来实现,实现程序的循环。

  转向语句:break语句、goto语句(此语句尽量少用,因为这不利结构化程序设计,滥用它会使程序流程无规律、可读性差)continue语句、return语句。

11. 搞清楚if...else,for循环,while循环,switch...case怎么执行的?

 答:

(1)if...else条件语句:

 if(条件语句)

 {

    如果条件成立,执行的代码

 }

 else{

    如果条件不成立,执行的代码

 }

(2)for循环

for(初始化表达式;循环条件;操作表达式)

{  

     for(①;②;③)

     {

          循环体                             

       }

}

(3)while循环

while(循环条件)

{

    循环体

}

(4)switch...case语句

switch()

{

    case 目标值1:

        执行语句1

        break;

    case 目标值2:

        执行语句2

        break;

    case 目标值n:

        执行语句n

        break;

    default;

        执行语句n+1

        break;

}

 

 

12.break和continue有什么区别?

  答:break既可以在switch语句使用,又可以循环语句中使用。 

当在switch语句中使用的时候,作用是跳出某个case,并且跳出switch,例子在switch时候已经说过。当他出现在循环语句中的时候,作用是跳出循环语句,执行后面的代码。 

当break语句出现在嵌套循环内层的时候,只能跳出内层循环,如果想跳出外层循环,则需要对外层循环进行标记。continue语句在循环语句中,作用是终止本次循环,进行下次循环。如在while语句中, break--退出while循环,但while循环后面还有其他语句的话,还是会执行,continue--退出当次while,会接着从while循环的开始部分重新执行下来。