1.什么是计算机程序?什么是编程语言?为什么需要编程语言?编程语言是用来干嘛的?举例一些编程语言,以及他们各自的特点?
计算机程序是指一组指示计算机执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。
编程语言,是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
编程语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。
向计算机发布指令。
C语言:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。
C++:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。
汇编:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。
VisualBasic:整洁的编辑环境,易学、即时编译导致简单、迅速的原型,大量可用的插件。
2.编辑好的程序到成为可以运行的可执行文件,要经历哪几个过程?
预处理——编译——汇编——链接
3.现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?
C语言比较接近底层,又有一定的抽象性,虽然将来未必会使用它,但可以更了解计算机原理以及数据结构。可能对于大多数程序员来说没太大用处,但原理和数据结构能以计算机角度来思考程序问题,写出更高效的代码。这算是专业的程序员的一种修为。而且C现在还是主流,作为入门语言是很适合的。
C语言是一种计算机程序设计语言,属高级语言范畴。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序,代码清晰精简,十分灵活。
4.什么是常量,什么是变量?都有哪些分类?
变量:可以改变值的量;
常量:不可以改变值的量;
整数常量是指直接实用的整形常数,又称整形常数或者整数,例如,1,-9等。整数常量可以是长整形、短整型、符号整型和无符号整型。
实型称浮点型,由整数和小数部分组成,其中用十进制的小数点隔开。表示实数的方式由科学计数和指数方式两种。
字符型常量可以分为字符常量和字符串常量。 a.字符常量分为一般字符常量和特殊字符常量。b.字符串常量是一对用双引号括起来的若干字符序列。字符串中字符的个数称为字符的长度,长度为0的字符串称为空串。
通常将程序中的常量定义为一个标识符,这个常量就叫做符号常量。
5.标识符的命名规范是什么?
1、必须用字母或下划线开头。
2、只能是字母、下划线、数字的组合,不能出现其他符号。
3、标识符的名称不能是C语言中的关键字,关键字是具有特定含义的标识符,用户只能根据系统的规定使用它们。
4、大小写的含义是不同的。
6.什么是数据类型?数据类型分为哪些种类?每种数据类型占多少个字节大小?每种数据类型的取值范围怎么计算?思考:对于数据类型为什么要分类?
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
一、整数数据类型
(1)整数数据类型
整数类型 char 字符型变量 1字节(8Bit) short 短整型 2字节(16Bit) int 整形变量 取决于编译器 long 长整形变量 取决于编译器 |
对int的理解:在计算机中有CPU和内存,在CPU中有寄存器,CPU与内存之间通过总线进行数据传输,所谓的CPU位数(例如32位、64位)就是指一块寄存器的大小,寄存器多大,总线就可以处理多大带宽的数据,例如32位机器它的寄存器大小就是32位,它一次处理的数据就是32位,则int的大小就是32Bit也就是4字节,总而言之int的大小就是取决于寄存器大小。具体int的长度可以采用函数sizeof(int)来查看。
二、浮点数据类型
浮点类型就是生活中习以为常的带小数点的数,但是在计算机内部,浮点数的处理是很特别的。整数是以二进制的形式存在于计算机内部的,而浮点数不是。浮点数是编码的数字,因此两个浮点数不能在计算机内部直接以二进制的方式进行计算,通常需要专门的硬件支持。
浮点数的计算机内部表达形式造成了浮点数的很多有意思的现象。
(1)浮点型数据类型
float | 32位 | ±(1.2E-38~3.4E+38) |
double | 64位 | ±(2.2E-308~1.79E+308) |
注意:表中可以看出浮点型数据表示的数据都是只能在零附近,但是不能表示0,计算机中编码后的浮点型数据是固定的,我们给出一个数据,他会根据这个数据距离哪个数据近,就编码成那一个数据,例如我们命令float f=0.002可能计算机中浮点数据没有这一个数据,而只有数据0.002001和0.002005那么他会自动把我们数据变为0.002001。
(2)浮点型数字的判断
对于浮点型数字,因为数字精度不同,所以a和b可能计算结果都是0.5,但是两个浮点型数字的二进制形式可能不同。
所以判断数字是否相等判断下面的等式
fabs(f1-f2) < 1e-12
浮点型数字的计算本身是由内部CPU硬件进行计算的。
三、逻辑数据类型
(1)逻辑数据类型
数据类型进行逻辑判断时只有真和假在代码中就是0与1。在计算中,CPU认为0是假,非零全是真。本身C语言的整形变量的0代表假,非零的代表真,逻辑值为1。
bool型是逻辑型变量,其包含在stdbool.h中。包含了此头文件,就可以使用bool。但是其用处不大,因为它本身还是整型变量,只不过有两个true 、false值如下所示。
bool a =true;//声明逻辑型变量a = 1 printf(“%d”,a);//输出结果为1 |
(2)逻辑运算
运算符号 | 描述 | 实例 | 解释 |
! | 非 | !a | 如果a为0则结果为1如果a为非零则结果为1 |
&& | 逻辑与 | a&&b | 当两数均为1时结果为1其余情况均为0 |
|| | 逻辑或 | a||b | 当两数均为0时结果为0其余情况均为1 |
& | 按位与 | a&b | 按位与就是把两个变量展开成二进制,对每一位进行与运算 |
| | 按位或 | a|b |
|
注意:
(1)当按位与运算时,加入a的值已经为假时,结果已经确认为假即0就不需要进行b例如(a=0)&&(b=2)结果为0并且a被赋值为0,但是b没有被赋值为2。同样按位与运算时,假如a的值已经为真时,结果已经确定为真,即1则就不需要进行运算b。
(2)单目运算符的优先级高于双目运算符,例如!age<20表示age的非,然后再运算是否小于20。
因为对于不同的对象,不同的数据类型更具有代表性。
7.字节大小是什么意思?怎么计算数据类型或者变量的字节大小?
字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制.
占字节=数据类型*长度
8. 什么是原码?什么是补码?什么是反码?正数的原码补码反码怎么表示,负数的原码补码反码怎么表示?
原码, 反码, 补码是机器存储一个具体数字的编码方式.
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
反码的表示方法是:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+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怎么执行的?
if...else:先执行判断,如果不为真就ELSE,如果为真就执行IF后面的语句。
C语言for循环的格式一般如下:
for (exp1; exp2; exp3 ) {语句块;}
流程:exp1一般是一个初始值设置,程序先检测exp2的条件是否成立,如果成立则执行for循环语句块,如果不成立,则退出循环,执行完for语句块后,会执行exp3,一般是一个增/减量的操作。
while是循环流程控制,使用的标准格式为
while(表达式)
{
循环语句体;
}
说明:①while循环的表达式是循环进行的条件,用作循环条件的表达式中一般至少包括一个能够改变表达式的变量,这个变量称为循环变量
②当表达式的值为真(非零)时,执行循环体;为假(0)时,则循环结束
③当循环体不需要实现任何功能时,可以用空语句作为循环体
④对于循环变量的初始化应在while语句之前进行,可以通过适当方式给循环变量赋初值
switch的一般形式:
1 2 3 4 5 6 7 8 9 10 | switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2 : 语句2; break; case ................................... default: 默认语句 }
switch语句块之后的语句;; |
2、执行顺序
第一步:计算switch后面的条件表达式的值。
第二步:将表达式的值,分别与case语句中的常量表达式进行比较。如果相等,则执行对应的case语句,执行完语句后, 即会跳出switch语句块。
第三步:如果所有的case常量表达式值都与switch条件表达式的值不一致,则执行default下的默认语句。
注意:default语句可以省略,如果省略,则程序执行swtich语句块后面的语句。
12.break和continue有什么区别?
break可以用在循环结构和switch结构中,用于中断程序运行,而continue一般只在循环结构中出现,而且一般在一个选择结构中。
例、for(i=1;i<10;i++)
{
语句组1
if(条件)break;
语句组2
if(条件)continue;
语句组3
}
语句组4
在这个程序中,如果程序运行到break语句,则循环结束,跳转到语句组4运行后续语句。
如果程序运行到continue,则跳过语句组3,直接进行i++,去执行下一次循环。