c语言面试题目100及最佳答案
作为IT行业人士需要掌握的最基本的计算机语言—c语言,如今的地位只高不低,c语言掌握程度的高低往往在面试的时候可以完全表现出来,而有些问题是大家平时似乎是知道的,但却不能完整准确地回答上来的,今天大家带来精心整理的C语言经典面试题 ,希望对大家有所帮助。
1、请填写bool , float, 指针变量 与“零值”比较的if
语句。
提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”
。例如int 变量n 与“零值”比较的if 语句为:
if ( n == 0 )
if ( n != 0 )
以此类推。
(1)请写出bool flag 与“零值”比较的if 语句:
【标准答案】if ( flag ) if ( !flag )
100 条经典 C语言笔试题目
(2)请写出float x 与“零值”比较的if 语句:
【标准答案】 const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==” 或“!=” 与数字比较,应该设法
转化成“>=” 或“<=” 此类形式。
100 条经典 C语言笔试题目
(3)请写出char *p 与“零值”比较的if 语句
【标准答案】 if (p == NULL) if (p != NULL)
2、以下为Linux下的32 位C 程序,请计算sizeof 的
值。
char str[] = “Hello” ;
char *p = str ;
i nt n = 10;
请计算
(1)sizeof (str ) = (2)s i zeof ( p ) =
(3)sizeof ( n ) =
【标准答案】
(1)6、(2)4 、(3 )4
(4)void Func ( char str[100])
{
…… ;
}
请计算sizeof( str ) =
(5)void * p = mall oc( 100 );
请计算sizeof ( p ) =
【标准答案】(4)4、(5)4
4、用变量a 给出下面的定义
e) 一个有10个指针的数组,该指针是指向一个整型数
的;
f) 一个指向有10个整型数数组的指针;
g) 一个指向函数的指针,该函数有一个整型参数并返
回一个整型数;
h) 一个有10个指针的数组,该指针指向一个函数,该
函数有一个整型参数并返回一个整型数;
【标准答案】e)int * a[10]; f)int (*a)[10]
g)int (*a)(int); h) int (*a[10])(int)
5、设有以下说明和定义:
typedef u nion {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;
DATE max;
则语句printf("%d",sizeof(struct date)+sizeof(max)); 的
执行结果是:_____
【标准答案】DATE是一个union, 变量公用空间. 里面最
大的变量类型是int[5], 占用20个字节. 所以它的大小是c语言游戏编程题经典100例
20
data 是一个struct, 每个变量分开占用空间. 依次为int4 +
DATE20 + double8 = 32.
所以结果是20 + 32 = 52.
当然… 在某些16位编辑器下, int 可能是2字节,那么结果
是int2 + DATE10 + double8 = 20
6、请问以下代码有什么问题:
int main()
{
char a;
char *str=&a;
strcpy(str,“hello”);
printf(str);
return 0;
}
【标准答案】没有为str分配内存空间,将会发生异常
问题出在将一个字符串复制进一个字符变量指针所指
地址。虽然可以正确输出结果,但因为越界进行内在
读写而导致程序崩溃。
7、请问以下代码有什么问题:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论