千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > C语言面试题之基础语法

C语言面试题之基础语法

来源:千锋教育
发布人:wjy
时间: 2022-06-07 16:02:00 1654588920

  计算机中补码的意义

  统一零的编码、将符号位与其他位统一处理、将减法运算转换成加法运算

  c语言中有符号和无符号的区别

  有符号:数据的最高位为符号位,0表示正数,1表示负数

  无符号:数据的最高位不是符号位,而是数据的一部分

C语言面试题之基础语法

  变量的声明与定义有啥区别

  声明变量 是对变量的类型和名称进行说明,不为变量开辟空间

  变量定义 是根据变量类型大小为变量分配空间 变量名代表空间内容

  描述变量的命名规则

  变量名由字⺟、数值、下划线组成,但不能以数值开头

  #include<> 与#include ""的区别?

  include<>到系统指定⽬录寻找头⽂件,#include ""先到项⽬所在⽬录寻找头⽂件,如果没有找再到系 统指定的⽬录下寻找头文件

  内存的最⼩存储单位以及内存的最⼩计量单位分别是?

  内存的最⼩存储单位为 ⼆进制位, 内存的最⼩计量单位 字节

  描述gcc的编译过程

  gcc编译过程分为4个阶段:预处理、编译、汇编、链接。 预处理:头⽂件包含、宏替换、条件编译、删除注释。 编译:主要进⾏词法、语法、语义分析等,检查⽆误后将预处理好的⽂件编译成汇编⽂件。 汇编:将汇编⽂件转换成 ⼆进制⽬标⽂件。 链接:将项⽬中的各个⼆进制⽂件+所需的库+启动代码链接成可执⾏⽂件。

  谈谈数据在计算机中原码的概念

  计算机原码就是数值本身的二进制表现形式,如果是无符号数,所有二进制位都是数据位。如果是有符号数,二进制的最高位为符号位(0表示正数,1表示负数),其他二进制位为数据为

  谈谈数据在计算机中反码的概念

  反码是从数据的原码得来。

  如果是无符号数:数据的反码就是原码

  如果是有符号数:

  正数:数据的反码就是原码

  负数:数据的反码就是符号位不变,其他位按位取反

  谈谈数据在计算机中补码的概念

  补码是从数据的反码得来。

  如果是无符号数:数据的补码就是原码

  如果是有符号数:

  正数:数据的补码就是原码

  负数:数据的补码就是反码+1

  关键字struct和union的区别

  关键字struct 代表的是结构体,结构体中的所有成员拥有独立的空间

  关键字union代表的是共用体,共用体中的所有成员共享同一份空间

  关键字signed和unsigned的区别

  关键字signed描述符的是有符号数,如果想定义有符号变量 可以省略signed,系统默认是signed

  关键字unsigned藐视的是无符号数,如果想定义无符号变量 必须加unsigned修饰

  在32位平台char short int long float double各自的字节数

  char类型为1字节

  short类型为2字节

  int类型为4字节

  long类型为4字节

  float类型为4字节

  double类型为8字节

  谈谈关键字register

  关键字register修饰的变量为寄存器变量, cpu读取寄存器变量相较于内存的变量的书读快些。需要注意的如果register修饰变量只是建议该变量为寄存器变量,最终是不是是由编译器决定的

  谈谈关键字static

  static修饰的变量为静态变量,静态变量的生命周期是整个进程,存在于全局区(静态存储区)。

  如果函数中存在静态变量,如果函数多次调用,静态变量只会初始化一次,这种特性也是普通局部变量说不具备的。函数结束静态变量不会释放,而函数中的普通局部变量会被理解释放。

  如果想让函数内部的变量不会随着函数的结束而结束,可以选择static修饰该变量

  谈谈关键字extern

  关键字extern是声明变量或函数具备外部特性,也是说当前源文件只要使用extern声明变量或函数,就可以使用其他源文件中的变量(一般为全局变量)或函数

  谈谈关键字sizeof

  关键字sizeof是测量类型(基本类型、构造类型)的长度,比如int num;sizeo(num)的结果在32位平台为4字节,int arr[5];sizeof(arr)的结果在32位平台为20字节

  谈谈你对变量初始化的理解

  在定义变量的时候给变量赋值,这个动作叫做变量的初始化。如果局部变量不初始化内容随机(不确定),全局变量,静态变量不初始化内容为0

  谈谈字符中的''和字符串中的""的作用

  'a':单引号的作用是描述a为字符,除转义字符外,‘’只能作用一个字符,单引号还有作用就是取字符a的ASCII值

  "abc":双引号的作为是描述"abc"为字符串,如果是字符串常量,编译器会自动在字符串末尾添加'\0'字符作为字符串的结束标记。双引号另一个作用就是取字符串首元素的地址

  谈谈'\0'和'0'的区别

  '\0'表示的是反斜杠0 它在计算机中存储的ASCII值是0

  '0'表示的是字符0,它在计算机中存储的ASCII值是48

  谈谈十进制123转成二进制,八进制,十六进制的结果

  123的二进制结果为:0111 1011

  123的八进制结果为:0173

  123的十六进制结果为:0x7b

  谈谈二进制数1100 0011转换成十进制、八进制、十六进制的结果

  八进制结果为:0332

  十进制结果为:195

  十六进制结果为:0xda

  谈谈十六进制0x123转换成八进制的结果

  结果为:0443

  谈谈计算机对数据的存储(原码,反码,补码)

  负数在计算机中以补码的形式存储

  非负数在计算机中以原码的方式存储

  八进制数在计算机中以原码的方式存储

  十六进制在计算机中以原码的方式存储

  谈谈计算机对数据的读取(原码,反码,补码)

  如果是对无符号进行取值:

  不管是有符号提取(%d %hd %ld)还是无符号提取(%u %hu %lu %o %x)都是输出内存原样数据

  如果是对有符号进行取值:

  系统会去看内存的最高位,如果最高位为0 表明正数, (有符号或无符号输出)都是 内存原样 输出

  系统会去看内存的最高位,如果最高位为1 表明负数, 无符号输出(%u %lu %hu %o %x)都是 内存原样 输出, 有符号输出(%d %hd %ld),将内存数据求补码(得到原码) 输出

  谈谈c语言中自动类型转换的特点

  不同类型数据之间进行混合运算时必然涉及到类型的转换问题。

  自动类型转换:保证精度不丢失 将小的类型 转成 大类型。

  1、无符号和有符号 参加运算 需要将有符号 转换成无符号

  2、小类型和大类型参加运算 会将小类型转成从大类型

  3、char和short类型 只要参加运算 都会将自己转换成int类型

  谈谈逻辑运算符&&和||的理解

  &&逻辑与:

  A && B A为真 且 B为真 整个表达式结果才为真。

  A && B A或B只要有一个为假 整个表达式结果才为假。

  注意:逻辑与&&的短路特性:

  如果A为假 整个表达式为假, 那么B的真假决定不了整个表达式的结果,所以不会再判断B的真假,就叫“短路特性”

  ||逻辑或:

  A || B A和B只要有一个为真 整个表达式结果为真。

  A || B A和B同时假 整个表达式结果为假。

  注意逻辑或||的短路特性:

  如果A为真 整个表达式为真, 那么B的真假决定不了整个表达式的结果,所以不会再判断B的真假,就叫“短路特性”

  谈谈位运算符&、|、^的应用场景

  &:一般用于将指定位清0

  |:一般用于将指定位置1

  ^:一般用于将指定位翻转

  谈谈你对逻辑右移和算术右移的区别

  算术右移、逻辑右移 都是编译器决定。如果是正数算术右移,逻辑右移没有区别。如果是负数。

  负数:右边丢弃 左边补0(逻辑右移)

  负数:右边丢弃 左边补1(算术右移)

更多关于物联网培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT