100道c语言面试题(C语言面试54题)

2023-05-31 15:59:00 来源 : haohaofanwen.com 投稿人 : admin

下面是好好范文网小编收集整理的100道c语言面试题(C语言面试54题),仅供参考,欢迎大家阅读!

100道c语言面试题

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

码字不易,请关注点赞!


相关文章

专题分类