c语言面试经常问到的问题有哪些?

Python020

c语言面试经常问到的问题有哪些?,第1张

c语言面试经常问到的问题有:

1、C语言的主要特征是什么?

C是一种过程语言。C语言的主要功能包括对内存的低级访问,简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。

2、i ++和++i有什么区别?

1)表达式“i ++”返回旧值,然后递增i。表达式++i递增该值并返回新值。

2)后缀++的优先级高于前缀++。

3)后缀++的关联性从左到右,前缀++的关联性从右到左。

4)在C ++中,++i可用作左值,但i ++不能用作左值。在C中,它们都不能用作l值。

3、什么是l值?

l值或位置值是指可以在赋值运算符左侧使用的表达式。例如,在表达式“a = 3”中,a是l值,而3是r值。

l值有两种类型:

“不可修改的l值”表示无法修改的l值。const变量是“不可修改的l值”。

“可修改的l值”表示可以修改的l值。

4、数组和指针有什么区别?

指针用于存储动态分配的数组的地址,以及用于作为参数传递给函数的数组。在其他情况下,数组和指针是两个不同的东西,尽管数组和指针是不同的东西,但是数组的以下属性使它们看起来相似。

5、C语言中的“循环”数据类型是指什么?

所谓的“循环”数据类型,其实就是某种类型的数据溢出后,又从头开始存储。一个典型的例子是unsigned char变量若已经等于255,仍然对其加1,那么该变量就会溢出从头开始,也即等于零:

unsigned char a = 255。

a = a+1// a等于0。

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

1.域宽小于实际宽度时应如何处理?

2.默认的域宽与精度各是多少?

3.精度说明大于或小于实际精度时,应如何处理?

4.FLOAT与DOUBLE的最大精度是多少?

5.如何处理符号位?

6.多余的小数位是被截断还是舍入?

解析:

事实上,您问的问题比较泛,如果结合使用的编译器类型和具体例子来问会比较好些。下面也只是泛泛而谈。

1、域宽小于实际宽度时,通常输出结果以实际宽度为准,如果需要以域宽来输出,那么实际结果需要截断。比如将结果以实际宽度输出到某个字符数组中,再截断。

2、默认的域宽为8位,精度为6位。

3、精度说明大于实际精度时,输出补余;小于实际精度时,输出截断。

4、FLOAT的最大精度是10的负44次方;DOUBLE的最大精度是10的负323次方。

5、整型数据的符号位出现在最高字节的最高位;浮点型数据则出现在字节中间的某个位上。不明白什么叫如何处理符号位?

6、多余的小数位是截断和舍入取决于不同的编译环境。应当结合自己使用的编译环境做一下测试即可明白。

这是由于用%d读100.0时,读到“.”就结束了(读到前面的整数),然后“.”还留着,下一次再读时又遇到这个“.”又结束了(没读入数据)。

下面是对这个程序作了一点修改后,便于观察程序读到了一些什么:

#include<stdio.h>

int main()

{ int a,i,j

scanf("%d",&a)

int num[2][2]

for(i=0i<ai++)

{ for(j=0j<2j++)

    scanf("%d",&num[i][j])

}

for(i=0i<ai++)

{

  { for(j=0j<2j++)

      printf("%5d ",num[i][j])

    printf("\n")

  }

}

}