C语言常见的面试题有哪些-创新互联
这篇文章主要讲解了“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语言常见的面试题有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
分享标题:C语言常见的面试题有哪些-创新互联
文章地址:http://azwzsj.com/article/csgics.html