您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页C语言简答题

C语言简答题

来源:意榕旅游网
C语言简答题

C语言简答题

1、C语言中,变量为何要先定义后使用?

凡就是未被事先定义的不作为变量名

,这就能保证程序中变量名使用得正确

,便于编译

时发现错误,避免变量名使用时出错。每个变量被指定一确定类型应的存储单元。指定每一个变量属于一个类型就是否合法。2、举例说明在

C语言中如何定义符号常量

,使用符号常量的优点?

,在编译时就能为其分配相

,便于在编译时据此检查该变量所进行的运算

#define <符号常量> <常量> 例如:#define AGE 35

#define M 1、9734067e9

,便于程序4)习惯上人

优点:1)简化书写格式、减少出错率。2)定义符号常量可以提高程序的可读性的调试与修改。3)符号常量不同于变量们把符号常量名用大写字母表示

,在其作用域内不能被改变与重新赋值。

,变量用小写,以示区别。

3、字符串就是以'\\0'结束的,存储一个字符串需要多少个字节?

如“ABC”实际需要3+1个字节来存储这个字符串常量。4、while{}与do{ }while两种循环结构的相同点与不同点就是什么?

do-while语句与while语句的区别在于要执行一次循环体。而

do-while 就是先执行后判断

,因此do-while至少

while就是先判断后执行,如果条件不满足,则一次循环体语句也不执

行。while语句与do-while语句一般都可以相互转换。5、C语言中,什么基本数据类型不能做

只能针对基本数据类型使用/double,则必须使用if语句。

6、二维数组的定义与初始化的正确形式有哪些?1)分行,如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 2)按数组排列的顺序将所有数据写在一个花括号内如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 3)部分元素初始化。如

:int a[3][4]= {{,1},{0,6},{0,0,11}};

,则定义数组时可以不指定第一维的长度

,

,

switch()的参数?

int、char等。对于其她类型如

long /float

switch,这些类型包括

4)如果对全部元素都赋初值

C语言简答题

如:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 7、C语言中进行函数声明的作用就是什么?

函数声明的作用就是

:把函数的名字、函数类型及形参类型、个数与顺序通知编译系统

(例如,函数名就是否正确

,实参的类型与个数

,

以便在调用该函数时系统按此进行对照与检查就是否一致)。

8、带参的宏与函数有什么区别?

1、函数调用,求出实参表达式的值2、函数调用就是在程序运行时处理的进行的,在展开时并不分配内存单元

,再带入形参。而宏只进行简单的字符替换。

,分配临时的内存单元

;而宏展开则就是在编译时

,不进行值的传递处理,也没有“返回值”的概念。

,如不一致,应进行类型转

宏定义

3、对函数中的实参与形参都要定义类型换;而宏不存在类型问题

,二者的类型要求一致

,无类型,只就是一个符号代表,展开时带入指定的字符即可。

时,字符串可以就是任何类型的数据。

4、调用函数只可得到一个返回值#include

,而用宏可以设法得到几个结果。

#define PI 3、1415926

、0/3、0*PI*R*R*R

#define CIRCLE(R,L,S,V) L=2*PI*R;S=PI*R*R;V=4void main()

{float r,l,s,v;

scanf(\"%f\

CIRCLE(r,l,s,v);

printf(\"r=%6、2f,l=%6、2f,s=%6、2f,v=%6、2f\\n\5、使用宏次数多时6、宏不占运行时间

,每展开一次都使程序增长

,而函数调用不使源程序变长。

)。

,只占编译时间;函数占运行时间(分配、保留、值传递、返回

9、C语言变量的存储特性可分几类?以及各类的特点?

四种:自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register)。1、自动变量:函数中所有的非静态局部变量。在动态存储区,在没有显式初始化的时候栈而创建与销毁。

2、静态变量:在变量前加上的时候会被初始化为储区,直到程序结束

static关键字的变量。存储在静态存储区

(初始化不等同于赋值

,在没有显式初始化)。长期存在静态存

其作用域仅仅局限于其定义的函数中

,存储

,其变量的值就是随机无用的。随着函数的进栈与出

0或者null,并且只初始化一次

C语言简答题

静态全局变量

:作用域只就是在其定义的源文件中有效

:其作用域就是其定义的函数中。

把全局变量在其她源文件中声明成

extern

,对外部变量起到了

“屏蔽”的作

用。静态局部变量

3、外部变量:一般用作全局变量作用域的扩展。变量,可以扩展该全局变量的作用域至声明的那个文件的扩展。长期存在静态存储区

,直到程序结束。

,其本质作用就就是对全局变量作用域

4、寄存器变量:一般经常被使用的的变量器变量,register变量会被存储在寄存器中

(如某一变量需要计算几千次)可以设置成寄存register变量。存

,计算速度远快于存在内存中的非

储在cpu的寄存器中,速度快,一般不需要程序员定义寄存器变量需要参加很多次计算的变量转化成寄存器变量作。离开函数值就会消失。

10、C语言中,动态存储区主要存放哪些数据?

动态存储区中存放以下数据

,这就是由于一些编译器会把

,不允许程序员对寄存器变量的地址进行操

:函数的形参;函数调用时的现场保护与地址等;auto/register ,释放这些

型局部变量。对以上数据,当进行函数调用时分配动态存储空间存储单元。在程序的执行过程中11、static声明有什么用途

,这种分配与释放就是动态的。

,当函数调用结束时

(请至少说明两种)?static全局变量与普通的全局变量有什么区

static函数与普通函数有什么区别?;

别?static局部变量与普通局部变量有什么区别?

1、变量的作用域

;设置变量的存储域

2、全局变量的说明之前再加以static 就构成了静态的全局变量。全局变量本身就就是

静态存储方式,静态全局变量当然也就是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域就是整个源程序

,当一个源程序由多个源文件组

,

成时,非静态的全局变量在各个源文件中都就是有效的。而静态全局变量则了其作用域即只在定义该变量的源文件内有效局变量的作用域局限于一个源文件内文件中引起错误。从以上分析可以瞧出方式即改变了它的生存期。的使用范围;

3、static局部变量只被初始化一次

,下一次依据上一次结果值

;

,在同一源程序的其它源文件中不能使用它。由于静态全,只能为该源文件内的函数公用

,因此可以避免在其它源

,把局部变量改变为静态变量后就是改变了它的存储

, 了它

把全局变量改变为静态变量后就是改变了它的作用域

4、static作用域仅在本文件。只在当前源文件中使用的函数应该说明为内部函数内部函数应该在当前源文件中说明与定义。对于可在当前源文件以外使用的函数个头文件中说明,要使用这些函数的源文件要包含这个头文件。

static函数在内存中只有一份

(static),,应该在一

,普通函数在每个被调用中维持一份拷贝程序的局部变量存

(堆)中。

在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于

C语言简答题

12、使用全局变量的优点与副作用就是什么?

优点:所有函数之前定义的全局变量可被本文件中所有函数共用就是它定义的位置到本源文件结束

;全局变量增加了函数之间的联系通道

;全局变量的有效范围

;全局变量与局部

变量重名时,在函数内部将屏蔽全局变量。

副作用:过多的全局变量时函数之间的“耦合性”增加变量使程序的可读性变差

,不利于程序的移植

;过多的全局

;外部变量可加强函数模块之间的数据联系,但又使这些函数依赖

这些外部变量,因而使得这些函数的性降低的,因此不就是非用不可时储单元。

13、指针有哪些运算?以及指针编程的优点?

算术运算、关系运算、赋值

;

;从模块化程序设计的观点来瞧这就是不利;全局变量在程序执行的全过程都占用存

,建议不要使用外部变量

提高程序的编译效率与执行速度从而实现两者间的双向通信现函数的编写与调用。

;可向调用函数处返回除正常的返回值之外的其她数据

;直接操纵内存地址

;更容易实

,

;利用指针可以实现动态内存分配

14、C语言中,*(星号)运算符有几种用途?并分别举例说明。

指针符号;乘法运算符;字符;注释。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务