C语言面试54题

大家好,这期呢,我们谈一下c语言的面试题。

第1题,c语言有哪些核心的特征?

可移植性很强。

模块化能力很强。

灵活性很高。

加载速度和执行速度都很好。

可扩展性很强。

第2题,c语言中有哪些基本的数据类型?

Int整型。

Float浮点型。

Double双浮点型。

Char单个字符。

void特殊类型,不包含任何值。

第3题, 解释一下语义错误。

在写程序的时候会有很多语义错误,比如说,拼错了命令,一个函数的参数个数错了, 数据类型不匹配,等等。

第4题, C语言中如何使用增加和减少语句?

有两种方式:

++, --

或者

传统的加和减。

第5题, 什么是一个编程语言的保留字?

保留字是指语言库中使用的一些关键字。这些关键字不能用来做其他的事情,比如说定义一个变量或者函数等等。

第6题, 解释一下dangling pointer。

首先我们说有一个指针指向一个变量的内存地址。一段时间以后这个变量被从内存地址的位置删除了。

这样的指针称之为dangling pointer.

第7题,描述一下静态函数的用途。

使用静态static关键字定义的函数称之为静态函数。

这样的函数需要在相同的代码里调用。

第8题, abs和fabs的区别是什么?

这两个函数都是用来取绝对值的。前者是针对整型的。后者是针对浮点型的。前者位于标准库stdlib.h里面。后者在math.h里面。

第9题, 说一下wild pointers。

未初始化的指针称之为wild pointers。这些指针指向一个随意的内存地址。如果访问它们可能会导致很坏的程序行为,甚至导致程序崩溃。

第10题, ++a和a++的区别是什么?

加加a的意思是先加后取值。

A加加的意思是先取值后增加。

第11题, 单等号和双等号的区别是什么?

单等号表示赋值运算符。

双等号是等于条件判断运算符。

第12题,解释一下c语言的原型函数。

原型函数是对一个函数的声明。

它包含函数名,返回值和参数类型列表。

int sum(int,int)

第13题, 解释一下数据类型的cyclic nature。

在c语言中,当一个程序员给一个数据类型的变量赋值的时候,有可能会溢出。这种溢出不会产生编译错误。最终的赋值结果会根据数据类型溢出后的剩余而定。这种行为称为cyclic nature. Char, int, long int数据类型有这个特性。Further float, double和long double数据类型没有这个特性。

第14题, 说一下c语言的头文件和用途。

头文件存放了原型函数的定义。这个文件又称为库文件。

比如说printf和scanf存放在stdio.h里面。

第15题, 解释一下在调试过程中对代码进行注释的做法。

这个做法称为commenting out。通过把一些代码屏蔽掉来判断或排除是否是这些代码造成的错误。

第16题, 说一下c语言中循环的类型。

C语言中有4种循环类型。

while

for

do while

nested loop

第17题, 什么是nested loop?

一个循环包含在另一个循环中称为nested loop。第1个循环成为外循环。里面的循环称为内循环。内循环执行的次数作为总循环的次数。

第18题,c语言中函数的通常格式是怎样的?

C语言的函数,包含4个部分。

返回值, 函数名, 参数, 函数体。

int test(imt y, int z)

{

return y+z;

}

第19题, 什么是指针的指针?

指针的指针是指一个指向指针所在地址的指针。

int a=5, *x=&a, **y=&x;

第20题, Break关键字在哪个地方使用?

Break可以用在循环中和switch语句当中。是用来终止当前的循环或跳出switch。

第21题, 使用头文件时双引号和尖括号的区别是什么?

使用双引号时,首先要在当前工作目录中查找这个头文件,如果找不到的话就会在内置的include path里面找。

使用尖括号时,只会在当前工作目录中查找这个头文件。

第22题,什么是sequential访问文件?

这种文件用来存储数据,在写数据的时候会按照按照一个序列模式。在读取的时候也是按照这个模式往外读取。

第23题, 如何向栈数据结构里面存储数据?

这样的数据是先进后出的。只有顶部的数据才可以被访问到。存储的时候使用push,获取的时候使用pop。

第24题,C程序算法的意义是什么?

算法的意义在于提高程序的执行效率,是注重空间的节省,还是注重时间的节省,是写算法时需要考虑的因素。

第25题,写一个c程序,输出下面的结果。

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

#include <stdio.h>

int main() {

int a;

int b;

for(a=1;a<6;a++){

for(b=1;b<=a;b++){

printf("%d",b);

}

printf("n");

}

return 0;

}

第26题, 如下条件判断运算符哪个在c语言里不可用?

==, <>, <=, >=

答案是<>。

第27题, 在c语言中可不可以用大括号包含一行代码?

是的, 当然可以。很多程序员使用大括号来规范代码结构,不管是一行还是多行。

第28题, 描述一下modifier。

Modifier是数据类型的前置,用来标识存储空间的大小。

比如说在32位处理器系统中, 整形的长度为4bits。

如果我们加了如下的modifier:

Long Int 就可以存8 bits。

Short Int 占 2 bits。

第29题, 在c语言中有哪些modifiers?

Short

Long

Signed

Unsigned

long long

第30题, 在c语言中如何产生随机数?

rand 函数就是用来产生随机数的,它可以产生任意从0开始的整数。

第31题, 能不能在整型中存放32768这个数?

整数类型可以存放从-32768~32767之间的任何数值。但是32768不在这个范围之内。这个时候modifier是我们需要的东西。Long Int数据类型就可以存放这个数。

第32题, 在c语言中可以自定义头文件吗?

是的, 当然可以, 定义完头文件以后可以存放函数的原型。

使用的时候, 用include来包含这个文件的名字。

第33题,解释一下c语言中的动态数据结构。

动态数据结构在访问内存方面非常高效。内存的访问,要因程序的需求而定。

第34题,什么是indirection?

如果你定一个指针变量, 它指向一个值变量或者一个内存对象。在这种情况下,对这个值变量和对象来说没有一个直接的引用。这种情况就是indirection.

但是如果我们声明一个变量,它对值来说就是一个直接的引用。

第35题, 在c语言中,什么时候会用到空指针?

有三种情况,在c语言中会用到空指针。

作为一个错误值。

作为一个监测值。

在一个递归数据结构中终止indirection。

第36题, 解释一下模块化编程。

把主程序分成多个小的,可执行的模块称为模块化编程。这个概念是为了增强重用性。同时也提高了程序的可维护性。

第37题, Call by value和call by reference有什么区别?

call by value传的是值。Call by reference传的是地址。

第38题,如何在c语言中定义一个字符串变量?

使用char定义一个字符数组。

第39题, 在函数定义的时候何时用void?

当函数没有返回值时,可以用void。

第40题, 什么是preprocessor directives?

Preprocessor directives一般放在程序的开头。主要是用来指定调用库文件的。还有一个用途是用来定义一些常值变量,宏定义等等。#开头。

第41题, 这样赋值对不对?错在哪里?

myName="test";

不对。

我们不能用等号给一个字符串赋值。需要使用strcpy。

第42题,为什么c语言被认为是中级语言?

这是因为c语言既能像高级语言那样编写程序,又可以像低级语言如汇编那样直接操作硬件。

第43题, 什么是链表?

链表是一系列的元素连接在一起形成的数据结构。在c语言中,链表是用指针来构建的。使用链表数据结构是使用内存操作比较的一种方式。

第44题,什么是fifo?

First in first out. 队列是典型的first in first out,数据结构。

第45题, 什么是二叉树?

二叉树是链表的延伸。它的每一个节点都有两个指针,一个指向左,一个指向右。

第46题, C语言中有些保留着是大写的对吗?

不对,c语言中的所有保留字必须是小写,否则的话c的编译器会报错。

第47题,什么是输出重定向?

输出重定向是指把程序的输出,除了输出在屏幕上以外的另外选择, 比如说,输出到一个文件里。

第48题, 什么是全局变量,如何定义它们?

全局变量是指在程序中任何地方都可以访问到的变量。它一般定义在preprocessor directives的后面。

第49题, getch和getche, 这两个函数的区别是什么?

前者是把用户的输入分配给一个变量。

后者是把用户的输入打印到屏幕上,同时分配给一个变量。

第50题,文本文件和二进制文件的区别是什么?

文本文件存放的是人类可以阅读的内容,它包含字母数字和其他的字符。

而二进制文件存放的是1和0,只有电脑才能够读懂。

第51题,如何用随机访问的方法在一个数据文件中搜索数据?

fseek

在文件打开以后提供三个参数给这个函数。一个是文件的指针,一个是要搜索的字节数,再一个是文件中的搜索起点。

第52题, 在c语言中有没有内置的排序函数?

qsort

第53题,heap的优点和缺点是什么?

在heap上存放数据,要比在stack上存放数据要慢。

但是使用heap的主要优势是灵活性。这是因为内存的访问, 分配以及删除可以按照任意顺序来执行。

通过好的算法和设计可以规避heap速度慢的问题。

第54题,如何把字符串变成数字?

atoi

atof

使用c语言里面的内置函数可以做到。你也可以自己写函数。

码字不易,请关注点赞!

bool c语言_C语言面试54题相关推荐

  1. 电子英汉词典c语言程序设计报告,英汉电子词典设计报告_设计_C语言_C语言程序设计.doc...

    英汉电子词典设计报告_设计_C语言_C语言程序设计 课程设计 课程名称 :C语言程序课程设计 题目名称 :电子英汉词典 学生学院 :电气信息学院 专业班级 :自动化1101 学 号 :20110102 ...

  2. cshop是什么开发语言_C语言是用什么语言编写出来的?

    谢邀 参考 Dennis M. Ritchie 写的 The Development of the C Language:Chistory,C 语言诞生的基本过程就是 Ken Thomson 不满意 ...

  3. 判定2022年是否闰年c语言_C语言接本真题分享19年(2)

    点击蓝字 关注我们 C 语 言 河北省 2019 年普通高校专科接本科教育选拔考试 计算机科学与技术/软件工程/网络工程/物联网工程专业试卷 A C 语言程序设计(满分 150 分) 第二部分 | 二 ...

  4. bool c语言_C语言之变量

    变量 1.概念 计算机使用内存来记录数据,内存中有很多的存储位置,每个存储位置中可以记录数据. 变量在C语言中用来代表一个存储位置,通过变量来访问对应的存储位置. 变量和存储位置之间的关系由操作系统决 ...

  5. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?

    C++| 匠心之作 从0到1入门学编程[免费]​yun.itheima.com C语言除了基本数据类型之外,还提供了构造类型的数据,构造类型的数据包括数组类型.结构体类型和共用体类型.下面我们详细介绍 ...

  6. 【Unity面试】 C#语言基础核心 | 面试真题 | 全面总结 | 建议收藏

    你知道的越多,你不知道的越多

  7. 【Unity面试】 Lua语言基础核心 | 面试真题 | 全面总结 | 建议收藏

    你知道的越多,你不知道的越多

  8. 怎么运行c语言_C语言 原来是这样调用硬件的

    大家都知道我们可以使用C语言写一段程序来控制硬件工作,但你知道其工作原理吗? 网友北极 C语言在实际运行中,都是以汇编指令的方式运行的,由编译器把C语言编译成汇编指令,CPU直接执行汇编指令. 所以这 ...

  9. mysql odbc c语言_C语言ODBC操作MySQL数据库(示例代码)

    数据库及其编程API来源于不同的背景,开发人员可以从众多的数据库中选择一种,每种数据库都有自己的一套编程API,这就为数据库编程造成了很大的局限性.SQL是标准化数据库编程接口的一种尝试,然而各种数据 ...

最新文章

  1. 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 华东赛区
  2. 初中数学503个必考知识点_初中数学无非就这146个必考知识点,全摸透,轻松应对考试!...
  3. Java学习小程序(8)求数组元素的最大值并放在最后一位
  4. ntp的学习笔记001
  5. R 包 `ezdf`的讲解
  6. map 转 json格式string字符串
  7. 网络安全-应急响应之入侵排查篇及相关工具
  8. 解决 Win11 打不开 Windows 安全中心 (Windows Defender)
  9. JAVA计算机毕业设计员工健康检测系统Mybatis+源码+数据库+lw文档+系统+调试部署
  10. Flex to Excel or Excel to Flex
  11. Word中的字体大小(几号-几磅)【转】
  12. 如何在VSCode上写Mark Down
  13. python求f的倒数_Python中整数的倒数
  14. Baumer工业相机堡盟工业相机如何联合BGAPI SDK和OpenCVSharp实现Mono12和Mono16位深度的图像保存(C#)
  15. UltraEdit激活版
  16. 2022年大二学生HTML期末作业,网页制作作业(我的校园网站制作)
  17. 栋感光波-冲刺日志(第4次)
  18. Two-Stream Convolutional Networks for Action Recognition in Videos算法笔记
  19. 呼叫中心客服IVR语音导航和电销自动外呼
  20. android 字体

热门文章

  1. 建议 | 在中国不是程序猿,不建议你用序列化!
  2. 实践 | Centos 7搭建LVS+Keepalived高可用Web服务群集群
  3. 脉冲列输入型脉冲比较数字伺服系统的原理图
  4. python office库使用_看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶就没有压力了!...
  5. for循环与each遍历的跳出循环方式
  6. HDU 1223 还是畅通工程(最小生成树prim模板)
  7. 2017-4-20实体类,数据访问类.字符串攻击.防攻击
  8. C++----练习--string输入输出
  9. 请MVC5 WebApi2 支持OData协议查询
  10. 基于jQuery鼠标点击弹出登陆框效果