C语言基础整理1

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

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

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

编程语言是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。

编程语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读编程语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。在当今所有的计算都需要程序设计语言才能完成。

(1)Java可以用于各种各样的领域,包括企业应用及基础设施,以及Web应用和移动开发

(2)JavaScript在Web应用上有着非常大的需求,主要用于实现为Web浏览器,以提供增强的用户界面和动态网站

(3)C和C++都是基于C的语言,是目前最流行的编程语言, C常被用作系统以及应用程序的编程语言,如嵌入式系统的应用程序。C++语言为C的增强,其在出现后迅速成为开发人员之间最流行的语言之一。它是用于开发系统软件,应用软件,设备驱动程序,嵌入式软件,高性能服务器和客户端应用及娱乐软件,如视频游戏。

(4)PHP是一种通用开源脚本语言,特别适合于Web开发,可嵌入到HTML中,它最初是用来设计动态网页产生的。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛。

 

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

   :(1)编辑:输入源程序并存盘

(2)编译:将源程序翻译为目标文件

(3)链接:将目标文件生成可执行文件

(4)运行:执行可执行文件,得到运行结果

 

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

答:C语言语法简单精炼,概念少,效率高,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言正是由于C语言的简单,对初学者来说,学习成本小特点:1) 结构化设计语言,语法清晰、结构简单,模块化使得程序的各个部分除了必要的信息交流外彼此独立,便于开发、调试以及调试。
   2)运算符多,把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以大大提高编程效率。
   3)数据结构丰富,能实现各种复杂的数据类型的运算,引入指针、结构体概念使程序效率更高。
   4)为操作系统而生,可以像汇编语言一样对位、字节和地址进行操作,允许直接访问物理地址对硬件进行操作,把高级语言的基本结构和语句与低级语言的实用性结合起来。
   5)程序执行效率高,一般比汇编程序生成的目标代码效率低 10%~20%。
   6)可移植性好,C 语言抽象了针对 CPU 编程的细节,能广泛应用于针对大型操作系统和系统软件的编写。
   7)具备强大的绘图功能,和 C++ 一样也可以写出很优雅的二维、三维图形和动画

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

 答:常量就是在程序运行时,值不会被改变的量整体上分两类,一类是整型常量,一类是浮点型常量。细致上分,整型常量还包括字符常量、字符串常量

与常量对应的是变量,就是值会发生变化的量分为int整型、float单浮点型、double双浮点型、char字符型、string字符串、指针变量。

 

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

       答:1、必须用字母或下划线开头。2、只能是字母、下划线、数字的组合,不能出现其他符号。3、大小写的含义是不同的4、标识符的名称不能是C语言中的关键字,关键字是具有特定含义的标识符,用户只能根据系统的规定使用它们。

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

    答:1)数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。 变量是用来存储值的所在处;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。数据类型(数据类型本质是固定内存大小的别名),数据类型和变量的关系:通过数据类型定义变量。
    2)分类:基本类型:分为整型、实型(又称浮点型)、字符型和枚举型四种;构造类型:分为数组类型、结构类型和共用类型三种; 指针类型 ;空类型 。
    3)整型(int):4个字节;字节型(char):1个字节;浮点型(float):4个字节;Double:8个字节;long double:10个字节。
    4)根据char的取值范围和unsigned char的取值范围的位数,如char和unsigned char都是8位,char型最高位是符号位,1代表为负数,所以为-2^7-1~~+2^7-1  即-128~+127,而unsigned char为2^8-1=256,即0~255
    5)任何运算,都有类似数据类型的内容,比如小学一年级,学百以内加法,以后学习分数、小数等等;C语言的数据类型较多主要是要和多领域的数学问题兼容;数据类型是有属性的;节省存储空间;适合计算机存储、处理。

     

 

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

答:字节就是这个字符数组共有几个元素一个字节的长度为8bit

     sizeof(data)

 

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

    答:原码就是这个数本身的二进制形式。

    正数的反码和补码都是和原码相同

    负数的反码是将其原码除符号位之外的各位求反

    负数的补码是将其原码除符号位之外的各位求反之后在末位再加1

     

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

 答:1.算术运算符 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 2.关系运算符 用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。 3.逻辑运算符 用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 5.赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 6.条件运算符 这是一个三目运算符,用于条件求值(?:)。 7.逗号运算符 用于把若干表达式组合成一个表达式(,)。 8.指针运算符 用于取内容(*)和取地址(&)二种运算。 9.求字节数运算符 用于计算数据类型所占的字节数(sizeof)。 10.特殊运算符 有括号(),下标[],成员(→,.)等几种。

 

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

 C语言9种控制语句
①if( )~else      条件语句
②for( )~         循环语句
③while( )~       循环语句
④do~while( )     循环语句
⑤continue        结束本次循环语句
⑥break           中止执行switch或循环语句
⑦switch          多分支选择语句
⑧goto            转向语句
⑨return          从函数返回语句

 

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

答:1、 if...else...条件语句

if(判断条件1)

{

    语句序列1;

}

else if(判断条件2)

{

   语句序列2; 

}

...

else if(判断条件n)

{

   语句序列n; 

}

else

{

   语句序列n+1; 

}      

2、switch

switch(条件表达式)

{

case 常量表达式1:语句序列1; //若不同条件下执行代码需要相互独立,可借助 break;

case 常量表达式2:语句序列2;

case 常量表达式3:语句序列3;

...

case 常量表达式n:语句序列n;

default : 语句序列n+1;

}

3、for 循环结构

for(表达式1;表达式2;表达式3)

{

    循环体语句序列;

}

       表达式1:用于给定循环体开始执行的初始条件

       表达式2:用于给定循环体终止执行之前应该满足的条件

       表达式3:用于给定从初始条件到终止条件如何转化

 

4、while 循环结构

while(条件表达式)

{

    循环体语句序列;

}

进入循环前先执行条件表达式运算,检查条件表达式的运算值是否为0,如果为0,退出循环,如果非0,进入循环体继续执行循环语句。

5、do...while 循环结构

do

{

  循环体语句序列;

}

while(条件表达式);

当执行 do...while 循环语句的时候,首先执行循环体语句序列,然后才进入条件判断。do...while 与 for 和while的主要差别在于,do...while循环语句的第一次循环不论条件是否成立都会执行一次。

 

 

  1. breakcontinue有什么区别?

    答:break用于跳出switch结构。在循环语句中,break语句用于直接跳出循环,break往往和if语句配合使用,当检测到满足某个条件时,强行结束循环。在循环中,break只是结束其所在层的循环,对外层循环没有影响。

continue语句与break语句不同,在循环体内遇到continue语句时,将跳过本层循环体内continue语句之后的部分循环体,并开始下一轮循环,即只结束本轮循环。continue语句也通常和if语句配合使用,以控制在特定的条件下,仅执行循环体的一部分。需要注意的是,使用continue和使用break类似,它只能控制本层循环,并不影响外层循环。