关于C语言编程的一些基本问题

 

  1. 什么是计算机程序?什么是编程语言?为什么需要编程语言?编程语言是用来干嘛的?举例一些编程语言,以及他们各自的特点?
    1.计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。
    计算机程序是由数据结构和算法构成的。
    2.编程语言处于各种原因被设计出来,各具自己的特点,适用的场景也不一样。3.编程几乎能干你不想干的任何事,比如说数据分析  数据采集  制定方案  如果把编程和机器人技术、人工智能技术结合它还可以做诸如:拖地 洗碗 打篮球
    4.例如C就不太方便处理字符串,java就很适合,而python由于带有丰富的数学工具包就常用于机器学习相关的开发。故而,是由于要求不同,产生了各种的编程语言,而为了使编程更便利,也促使着编程语言的发展,例如C++在C的优势基础上加入面向对象等内容。而现在的高级程序开发语言,在当前不也是新鲜物吗,汇编的历史已经很遥远了。
  2. 编辑好的程序到成为可以运行的可执行文件,要经历哪几个过程?
    C源程序到运行程序步骤:1.编辑:输入源程序并存盘(.C)。2.编译:将源程序翻译为目标文件(.OBJ)。3.链接:将目标文件生成可执行文件( .EXE)。4.运行:执行.EXE文件,得到运行结果。
  3. 现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?
    C作为入门语言,其原因是C比较接近底层,又有一定的抽象性,虽然将来未必会使用它,但可以更了解计算机原理以及数据结构。可能对于大多数程序员来说没太大用处,但原理和数据结构能以计算机角度来思考程序问题,写出更高效的代码。
    C语言:C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编和高级语言优点于一身的程序设计语言。
    C的特点
    1). 是一种结构化语言。层次清晰,便于按模块化方式组织程序,易于调试和维护。
    2). C语言的表现能力和处理能力极强。不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。
    3). 由于C语言实现对硬件的编程操作,所以既可用于系统软件的开发,也适合于应用软件的开发。C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类计算机上,从而形成了多种版本的C语言。
    4). 由于C语言允许直接对位、字节和地址进行操作,能实现汇编语言的大部分功能。
    5). 目标代码质量高,程序执行效率高。
    总体上来说,C语言的优点是简洁、紧凑、使用方便、灵活、易于学习和应用。仅有32个关键字。9种控制语句,程序的书写形式也很自由。
  4. 什么是常量,什么是变量?都有哪些分类?
    在程序执行过程中,其值不发生改变的量称为常量。
    C语言中的常量可以分为:整型常量、实型常量和字符型常量和字符串常量,
    另外还有符号常量和有名常量.、
    整型,例如:-123, 0xff (十六进制), 022(八进制)
    实型, 例如:3.14, 3.14f (单精), 3.14lf (双精), 1.2e04(科学)
    字符常量, ‘A’
    字符串常量, “abc123”
    转义字符常量 ‘\0’ “\n”
    宏定义标识符常量 #define e 2.71
    程序中的 e 编译时会被2.71 替代,
    逻辑型常量 TRUE (实际上也是宏定义常量)
    C语言中的变量实际上就是一段虚拟内存区域。
    虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。可以把虚拟内存当成一个大的字节数组。每一个元素占1个字节,每1个字节有1个地址。
    基本类型只有int,float,double,char四种。
  5. 标识符的命名规范是什么?
    1、必须用字母或下划线开头。例子:
    正确的:_22a, abc, avg3
    错误的:8Ta
    2、只能是字母、下划线、数字的组合,不能出现其他符号。例如¥_st,就是个错误的标识符,它出现了“¥”符号。
    3、大小写的含义是不同的,例如标识符 TEA和tea是不同的。
    4、标识符的名称不能是C语言中的关键字,关键字是具有特定含义的标识符,用户只能根据系统的规定使用它们。 例如 char 是关键字,用户的标识符就不能用它来命名。
    6. 什么是数据类型?数据类型分为哪些种类?每种数据类型占多少个字节大小?每种数据类型的取值范围怎么计算?思考:对于数据类型为什么要分类?
    char 字符型,占1个字节
    short 短整型,占2个字节
    int 整型,占4个字节
    long 长整型,占4个字节
    float 单精度浮点型,占4个字节
    double 双精度浮点型,占8个字节
    计算机里规定,8位二进制为一个字节,拿byte来说,一个BYTE类型的数据是占1BYTE(字节)的,那么他的取值范围为:00000000~11111111转换成10进制就是0到255,同样一个2BYTE的short int类型,他可装的为16位二进制即:0000000000000000~1111111111111111,也就是10进制的0~65535但是short类型他是有正负之分的,那么怎么表示负数呢?就是判断最高位,当最高位为0则为正,为1则为负。即:1000000010110001就是一个负数。其他的以此类推……
    分类:为了方便表示不同的东西,不容易出错,也同时提高效率。
  1. 字节大小是什么意思?怎么计算数据类型或者变量的字节大小?
    字节就是这个字符数组共有几个元素;一个字节的长度为8bit,数据的长度由数据的类型来定义。一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。 使用sizeof计算。 
  2. 什么是原码?什么是补码?什么是反码?正数的原码补码反码怎么表示,负数的原码补码反码怎么表示?
    反码: 反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。
    反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
    补码:在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
    反码表示法规定:正数的补码与其原码相同;一种简单的方式,符号位保持1不变,数值位从右边数第一个1及其右边的0保持不变,左边按位取反。也可以从反码推补码,就是在反码的基础上加1。
    正数的原码、反码、补码相同,
    负数的反码为:除符号位外,原码各位取反,反码加1,得负数的反码。
  3. 运算符有哪几种?每种运算符进行什么运算?
    算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。
    关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
    逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
    位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
    赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
    条件运算符:这是一个三目运算符,用于条件求值(a?b:c)。
    逗号运算符:用于把若干表达式组合成一个表达式(,)。
    指针运算符:用于取内容(*)和取地址(&)二种运算。
    求字节数运算符:用于计算数据类型所占的字节数( sizeof() )。
    特殊运算符:有括号(),下标[],成员(→,.)等几种。
  4. C语言中有哪些控制语句,每种控制语句有什么功能?
    C语言9种控制语句
    ①if( )~else 条件语句
    ②for( )~ 循环语句
    ③while( )~ 循环语句
    ④do~while( ) 循环语句
    ⑤continue 结束本次循环语句
    ⑥break 中止执行switch或循环语句
    ⑦switch 多分支选择语句
    ⑧goto 转向语句
    ⑨return 从函数返回语句
  5. 搞清楚if...else,for循环,while循环,switch...case怎么执行的?
    ①for(表达式1;表达式2;表达式3){循环体} 表达式1,是初始化条件,如i=0。 表达式2,循环条件,满足就继续执行循环体,不满足就跳出循环。 表达式3,这个一般是改变循环条件的地方,如i++。
    ②while(表达式){循环体} 表达式的值为真(非0)时, 执行循环体语句。
    switch语句的执行流程是: 首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句,然后退出switch语句,程序流程转向开关语句的下一个语句。
  6. break和continue有什么区别?
    break是结束循环。
    continue是结束本次循环。
    循环是有很多次的,break之后不再循环,continue结束本次循环后,再开始下一次的循环。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值