100条经典C语言笔试题目课件.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
100条经典C语言笔试题目 题目类型 基本数据类型的考察(1-4) 数组、指针、内存、结构体常考点(5-28) 宏、头文件、关键字的考察(29-54) 程序阅读、改错(55-75) 编程练习(76-100) 100条经典C语言笔试题目 40、带参宏与带参函数的区别(至少说出5点)? 【标准答案】 带参宏 带参函数 处理时间 编译时 运行时 参数类型 无 需定义 程序长度 变长 不变 占用存储空间 否 是 运行时间 不占运行时间 调用和返回时占 100条经典C语言笔试题目 41、关键字volatile有什么含意? 【标准答案】提示编译器对象的值可能在编译器未监测到的情况下改变。 100条经典C语言笔试题目 42、 int main() { int x=3; printf(%d,x); return 1; } 问函数既然不会被其它函数调用,为什么要返回1? 【标准答案】mian中,c标准认为0表示成功,非0表示错误。具体的值是某种具体出错信息。 100条经典C语言笔试题目 43、已知一个数组table,用一个宏定义,求出数据的元素个数。 【标准答案】 #define NTBL(table) (sizeof(table)/sizeof(table[0])) 100条经典C语言笔试题目 44、 A.c 和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(栈还是堆或者其他的)? 【标准答案】static的全局变量,表明这个变量仅在本模块中有意义,不会影响其他模块。 他们都放在静态数据区,但是编译器对他们的命名是不同的。 如果要使变量在其他模块也有意义的话,需要使用extern关键字。 100条经典C语言笔试题目 45、 static全局变量与普通的全局变量有什么区别? 【标准答案】 static全局变量只初使化一次,防止在其他文件单元中被引用; 100条经典C语言笔试题目 46、 static局部变量和普通局部变量有什么区别 【标准答案】static局部变量只被初始化一次,下一次依据上一次结果值; 100条经典C语言笔试题目 47、 static函数与普通函数有什么区别? 【标准答案】static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 100条经典C语言笔试题目 关于45-47的参考文章 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。 100条经典C语言笔试题目 48、程序的局部变量存在于___中,全局变量存在于____中,动态申请数据存在于___中。 【标准答案】程序的局部变量存在于栈(stack)中,全局变量存在于静态数据区 中,动态申请数据存在于堆(heap)中。 100条经典C语言笔试题目 49、什么是预编译,何时需要预编译: 【标准答案】1、总是使用不经常改动的大型代码体。? 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 100条经典C语言笔试题目 50、用两个栈实现一个队列的功能?要求给出算法和思路! 【参考答案】设2个栈为A,B, 一开始均为空.   入队:   将新元素push入栈A;   出队:   (1)判断栈B是否为空;   (2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;   (3)将栈B的栈顶元素pop出; 100条经典C语言笔

文档评论(0)

shenlan2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档