C语言入门学习

1.什么是计算机程序?什么是编程语言?为什么需要编程语言?编程语言是用来干嘛的?举例一些编程语言,以及他们各自的特点?
答:(1)计算机程序是指一组指示计算机执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。计算机程序由数据结构和算法构成。
(2)通过“语言”来控制计算机,让计算机做事情,这样的语言就叫做编程语言。编程语言(programming language),是用来定义计算机程序的形式语言。
(3)编程语言是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
(4)编程语言俗称“计算机语言”,电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。目前通用的编程语言有两种形式:汇编语言和高级语言。
(5)编程语言有很多种,常用的有C语言、C++、Java、C#、PHP、JavaScript等,每种语言都有自己擅长的方面,例如:  C语言和C++主要用于PC软件开发、底层开发、单片机和嵌入式系统; Java和C#不但可以用来开发软件,还可以用来开发网站后台程序; PHP主要用来开发网站后台程序;JavaScript 主要负责网站的前端工作(现在也有公司使用 Node.js 开发网站后台)

2.编辑好的程序到成为可以运行的可执行文件,要经历哪几个过程?
答:编好的代码(源代码)经过预处理,编译,汇编,链接,生成可执行的文件,然后就可以执行。即编辑的代码要最终生成可执行的程序(可执行的文件),需要经过编译、链接两个步骤。编译的作用是对代码进行语法检查,而链接的作用是链接代码中用到的编译器提供的资源。所以,通常通过编译、链接后形成的只形成一个可执行的文件。

3.现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?
答: (1)①C语言是面向过程的语言。它的执行都是由上而下的瀑布式的。而现在流行的面向对象(例如JAVA.C++)的执行顺序并不是写程序的人可以控制的,它是由某些动作来调用的。 ②C语言是中级语言。一般我们认为汇编叫做低级语言。因为它直接提供了对硬件的操作,功能十分强大,效率也十分的高,但是想完全使用汇编来写一个应用几乎是完全不可能的事情,并且汇编语言需要硬件的支持,也就是说,你针对自己的机器写的汇编到别人的机器上未必就能跑的起来,而高级语言指的就是是用类似人类语言的语言来表达的。比如JAVA.BASIC.PASCL等,这些语言与硬件之间的关系不大,通用性很强,开发应用程序效率比较起低级语言来说要高很多。③因为C语言提供了一种叫做指针的东西,可以直接操作系统的内存地址,这个功能是其他高级语言所没有的。所以人们习惯把C叫做中级语言,意思就是说既有高级语言类似人类语言的特点,又有汇编的可以直接操作硬件的功能。
(2)C语言的特点:①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。 ②运算符丰富,共有34种运算符。 ③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。 ④具有结构化的控制语句(如if…else、while、do…while、switch、for)。 ⑤语法限制不太严格,程序设计自由度大。 ⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。 ⑦生成目标代码质量高,程序执行效率高。   ⑧可移植性好。

 
4.什么是常量,什么是变量?都有哪些分类?
答:(1)常量:其值不会发生改变的量,称为常量。它们可以和数据类型接合起来分类。比如:整形常量,浮点型常量,字符常量等等,常量是可以不经过定义和初始化,而直接引用的。常量分类:常量又分为:直接常量和符号常量。直接常量又叫做:字面常量。如12,0,4.6,’a’,”abcd”。符号常量:如宏定义的:#define PI 3.14。
(2)变量:其值在其作用域内可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储空间。变量在使用前必须要定义。每个变量都有自己的地址,变量是由用户定义的标识符,变量的命名必须遵循标识符的原则。 变量分类:变量依据其定义的类型,分为不同类型,如:整型变量,字符型变量,浮点型变量,指针型变量等等。

5.标识符的命名规范是什么?
答:C语言合法标识名的命名规则是:(1)标识符由字母、数字和下划线组成;(2)第一个字符不能是数字只能是字母或下划线;(3)区分大小写:大写字母与小写字母不同;(4)C语言规定了一个标识符允许的字符个数,即标识符的前若干个字符有效,超过的字符将不被识别。

6.什么是数据类型?数据类型分为哪些种类?每种数据类型占多少个字节大小?每种数据类型的取值范围怎么计算?思考:对于数据类型为什么要分类?
答:(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语言的数据类型较多主要是要和多领域的数学问题兼容;数据类型是有属性的;节省存储空间;适合计算机存储、处理。

7.字节大小是什么意思?怎么计算数据类型或者变量的字节大小?
答:(1)字节(Byte /bait)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。计算机存储信息的大小,最基本的单位是字节,一个汉字由两个字节组成,字母和数字由一个字节组成。容量的单位从小到大依次是:字节(B)、千字节(KB)、兆(MB)、千兆(GB)、千千兆(TB)。
(2)采用sizeof()可以计算数据类型或者变量的字节大小,sizeof()是操作符(单目运算符),不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。

8.什么是原码?什么是补码?什么是反码?正数的原码补码反码怎么表示,负数的原码补码反码怎么表示?
答:(1)原码(true form)是一种计算机中对数字的二进制定点的表示方法。原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。比如如果是8位二进制:[+1]原 = 0000 0001,[-1]原 = 1000 0001,第一位是符号位。因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111],即[-127 , 127]
(2)反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
(3)补码(two's complement),在计算机系统中,数值一律用补码来表示和存储。原因在于使用补码,可以将符号位和数值位统一处理;同时,加法和减法也可以统一处理。此外,补码与原码的的相互转换,其运算过程是相同的,不需要额外的硬件电路。补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。(即在反码的基础上+1)

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

10.C语言中有哪些控制语句,每种控制语句有什么功能?
答:C语言有九种控制语句。 可分成以下三类:(1)条件判断语句:if语句、switch语句; (2) 循环执行语句:do while语句、while语句、for语句; (3)转向语句: break语句、continue语句、return语句、goto语句(此语句尽量少用,因为这不利结构化程序设计,滥用它会使程序流程无规律、可读性差)
 控制语句分类 :1.顺序控制语句:顾名思义,所谓顺序结构,就是指按照语句在程序中的先后次序一条一条的顺次执行。顺序控制语句是一类简单的语句,上述的操作运算语句即是顺序控制语句,包括表达式语句,输入/输出等。表达式语句 :任何一个表达式后面加上一个分号就构成了表达式语句(没有分号的不是语句)。表达式是指用运算符连接各个运算对象,合乎语法规则的式子。例如,以下都是表达式语句:a=3+5;a>b?a:b; a=1,b=2,c=3;     printf(“hello\n”);  常见的表达式语句有以下几种:空语句、赋值语句、函数调用语句。    2.选择控制语句,选择语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。因此,在编写选择语句之前,应该首先明确判断条件是什么,并确定当判断结果为“真”或“假”时应分别执行什么样的操作(算法)。C++程序中提供的选择语句有两种:if„else语句和switch语句。  3.循环控制语句 : C++提供了三种循环控制语句:while语句,do„while语句,for语句。三种语句都由相似的三部分组成:进入循环的条件,循环体,退出循环的条件;完成的功能也类似。所不同的只是三者进入与退出循环的方式不同。 while语句:当条件满足时进入,重复执行循环体,直到条件不满足时退出。 格式:表达式a;while(表达式b)语句a;表达式d;do„while语句:无条件进入,执行一次循环体后判断是否满足条件,当条件满足时重复执行循环体,直到条件不满足时退出。多用于人机交互。格式: do 表达式a;

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循环的开始部分重新执行下来。
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值