C语言预习

1.1什么是计算机程序?

一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。
1.2什么是编程语言?
用来定义计算机程序的形式语言(它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。)
1.3为什么需要编程语言?
编程语言就是我们和计算机之间的连接,通过编程语言就可以让计算机明白我们的想法,转化成一个可以被分享和运行的完整作品。
1.4编程语言是用来干嘛的?
使程序员能够比使用机器语言更准确地表达他们所想表达的目的
1.5举例一些编程语言,以及他们各自的特点?
C++:
(1)继承了C语言的全部优点。
(2)完全的可视化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
Java:  
(1)平台无关性(平台无关性是指Java能运行于不同的平台) 
(2)安全性(舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。) 
(3)面向对象(将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。)
(4)分布式(Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。) 
(5)健壮性(Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。)
2.编辑好的程序到成为可以运行的可执行文件,要经历哪几个过程?
预处理、编译、汇编、链接
3.现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?
  C作为入门语言,其原因是C比较接近底层,又有一定的抽象性,虽然将来未必会使用它,但可以更了解计算机原理以及数据结构。可能对于大多数程序员来说没太大用处,但原理和数据结构能以计算机角度来思考程序问题,写出更高效的代码。这算是专业的程序员的一种修为。而且C现在还是主流,作为入门语言是很适合的。
C语言是一种计算机程序设计语言,属高级语言范畴。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序,代码清晰精简,十分灵活。
4.什么是常量,什么是变量?都有哪些分类?
在C语言中,常量和变量都是可以用来存储和表示数据的,常量值在程序执行的过程中是不可变的,而变量是可变的。
 常量:常量是不可变的量,C语言中数值可以用常量表示,常量可以表示各种数据类型的值。
 变量:变量和常量是相对的,变量在程序执行过程中是可变的量,由变量名和变量值组成,变量名是一个标识,变量值是一个数据值,程序为每个变量开辟了存储空间,变量值就存储在这个空间当中,可以通过变量名访问这个空间。
    分类:
1符号常量 格式:#define
2整型常量  如6,27,-299 
3 实型常量(实数或浮点浮点数)如5.43,-2.3,5.67f,12.3e3 
4字符常量 如‘6’,‘a’,‘F’(不能是中文如‘男’)
5字符串常量 如“6”,“男”,“nanabc”
整型变量
  1)基本类型int 
2)短整型short int 
3)长整型long int 
4)无符号行unsigned 
实型变量
1)单精度float 
2)双精度double 
字符变量char

5. 标识符的命名规范是什么?1.标识符由字母、数字和下划线组成。
2.标识符的第一位必须是字母或者下划线,不能是数字。

6. 什么是数据类型?数据类型分为哪些种类?每种数据类型占多少个字节大小?每种数据类型的取值范围怎么计算?思考:对于数据类型为什么要分类? 
1) 数据类型是按照规定形式表示数据的一种方式,不同的数据类型占用空间也不同。
整型
2)加上不同的修饰符, 整型数有以下几种类型;  
signed short int 有符号短整型数说明。简写为short或int, 字长为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.字节大小是什么意思?怎么计算数据类型或者变量的字节大小?
字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。
   1KB=1024B;1MB=1024KB=1024×1024B。
   1B(byte,字节)= 8 bit
8.什么是原码?什么是补码?什么是反码?正数的原码补码反码怎么表示,负数的原码补码反码怎么表示? 1. 原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[1111 1111 , 0111 1111]

[-127 , 127]
原码是人脑最容易理解和计算的表示方式.
2. 反码
反码的表示方法是:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.
3. 补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值。
9.运算符有哪几种?每种运算符进行什么运算?
算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
条件运算符:这是一个三目运算符,用于条件求值(?:)。
逗号运算符:用于把若干表达式组合成一个表达式(,)。
指针运算符:用于取内容(*)和取地址(&)二种运算。
求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
特殊运算符:有括号(),下标[],成员(→,.)等几种。
10.C语言中有哪些控制语句,每种控制语句有什么功能?
1.if( )~else       条件语句
2.for( )~         循环语句
3.while( )~       循环语句
4.do~while( )     循环语句
5.continue       结束本次循环语句
6.break          中止执行switch或循环语句
7.switch         多分支选择语句
8.goto           转向语句
9.return         从函数返回语句

11.搞清楚if...else,for循环,while循环,switch...case怎么执行的?
1. for(i=0;i<a;i++)
if(条件一满足)
语句一;
else
语句二;
在for的语句中,只要满足i<a,就一直执行语句一,i++是循环计数,直到不满足i<a时,执行语句二结束循环。
  2.while(条件)
{
  语句;
}
当while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。
  3.switch (表达式){
case 值1 : 语句1 break; 
case 值2 : 语句2 break; 
...
default : 语句n break; 
}
从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句。

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

猜你喜欢

转载自blog.csdn.net/smellydog1996/article/details/81106841