温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言常见的面试题有哪些

发布时间:2021-11-22 15:39:03 来源:亿速云 阅读:117 作者:iii 栏目:开发技术

这篇文章主要讲解了“C语言常见的面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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个部分。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第25题:volatile关键字的作用?

volatile指定的关键字可能被系统、硬件、进程/线程改变,强制编译器每次从内存中取得该变量的值,而不是从被优化后的寄存器中读取。

第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语言里面的内置函数可以做到。你也可以自己写函数。

感谢各位的阅读,以上就是“C语言常见的面试题有哪些”的内容了,经过本文的学习后,相信大家对C语言常见的面试题有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI