ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:30.48KB ,
资源ID:5625995      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5625995.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(1局部变量能否和全局变量重名.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

1局部变量能否和全局变量重名.docx

1、1局部变量能否和全局变量重名1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用:局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯

2、了同样的错误,那么在编译期间不会报错,而在连接期间报错。3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。4、语句for( ;1 ;)有什么问题?它是什么意思? 答:无限循环,和while(1)相同。5、dowhile和whiledo有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环。6、请写出下列代码的输出内容i ncludemain()int a,b,c,d;a=10;b=a+;c=+a;d=10

3、*a+;printf(b,c,d:%d,%d,%d,b,c,d);return 0; 答:10,12,1201.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的

4、对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。3.描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性。4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。5.什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n2)。9.写出float x 与“零值”比较的if语句。 if(x0.000001&x-

5、0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构? Tcp/Ip协议 主要层次结构为: 应用层/传输层/网络层/数据链路层/物理层。11.Internet物理地址和IP地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議)12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 循环链表,用取余操作做14.不能做switch()的参数

6、类型是: switch的参数不能为实型。找错Void test1()char string10;char* str1=0123456789;strcpy(string, str1);Void test2()char string10, str110;for(I=0; I10;I+)str1i =a;strcpy(string, str1);Void test3(char* str1)char string10;if(strlen(str1)=MAX_SRM)return (NULL_SRM);elsereturn SRM_no;3.写出程序运行结果int sum(int a)auto int

7、c=0;static int b=3;c+=1;b+=2;return(a+b+C);void main()int I;int a=2;for(I=0;I5;I+)printf(%d, sum(a);4.int func(int a)int b;switch(a)case 1: 30;case 2: 20;case 3: 16;default: 0return b;则func(1)=?5:int a3;a0=0; a1=1; a2=2;int *p, *q;p=a;q=&a2;则aq-p=?6. 定义 int *a34, 则变量占有的内存空间为:_7.编写一个函数,要求输入年月日时分秒,输出该

8、年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。5. 用变量a给出下面的定义 a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) d) 一个有10个整型数的数组(An array of 10 integers) e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers

9、) f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers) g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer) h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return

10、 an integer )答案是: a) int a; / An integer b) int *a; / A pointer to an integer c) int *a; / A pointer to a pointer to an integer d) int a10; / An array of 10 integers e) int *a10; / An array of 10 pointers to integers f) int (*a)10; / A pointer to an array of 10 integers g) int (*a)(int); / A pointer

11、 to a function a that takes an integer argument and returns an integer h) int (*a10)(int); / An array of 10 pointers to functions that take an integer argument and return an integer 6)有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC1、将一个字符串逆序 2、将一个链表逆序 3、计算一个字节里(byte)里面有多少bit被置1 4、搜索给定的字节(byte) 5、在一个字符串中找

12、到可能的最长的子字符串 6、字符串转换为整数 7、整数转换为字符串2.找错题试题1:void test1()char string10;char* str1 = 0123456789;strcpy( string, str1 ); 试题2:void test2()char string10, str110;int i;for(i=0; i10; i+)str1i = a;strcpy( string, str1 ); 试题3:void test3(char* str1)char string10;if( strlen( str1 ) = 10 )strcpy( string, str1 );

13、解答:试题1字符串str1需要11个字节才能存放下(包括末尾的0),而string只有10个字节的空间,strcpy会导致数组越界;对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分;对试题3,if(strlen(str1) = 10)应改为if(strlen(str1) = - epsinon) & (x =”或“=”形式。如果写成if (x = 0.0),则判为错,得0分。试题2:以下

14、为windows nt下的32位c+程序,请计算sizeof的值void func ( char str100 )sizeof( str ) = ?void *p = malloc( 100 );sizeof ( p ) = ? 解答:sizeof( str ) = 4sizeof ( p ) = 4 剖析:func ( char str100 )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。数组名的本质如下:(1)数组名指代一种数据结构,这种数据结构就是数组;例如:char st

15、r10;cout sizeof(str) endl; 输出结果为10,str指代数据结构char10。(2)数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;char str10; str+; /编译出错,提示str不是左值 (3)数组名作为函数形参时,沦为普通指针。windows nt 32位平台下,指针的长度(占用内存的大小)为4字节,故sizeof( str ) 、sizeof ( p ) 都为4。试题3:写一个“标准”宏min,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least = min(*p+, b);

16、解答:#define min(a,b) (a) = (b) ? (a) : (b) min(*p+, b)会产生宏的副作用剖析:这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函数,而宏定义中括弧中的“参数”也不是真的参数,在宏展开的时候对“参数”进行的是一对一的替换。程序员对宏定义的使用要非常小心,特别要注意两个问题:(1)谨慎地将宏定义中的“参数”和整个宏用用括弧括起来。所以,严格地讲,下述解答:#define min(a,b) (a) = (b) ? (a) : (b)#define min(a,b) (a = b ? a : b ) 都应判0分;(

17、2)防止宏的副作用。宏定义#define min(a,b) (a) = (b) ? (a) : (b)对min(*p+, b)的作用结果是:(*p+) = (b) ? (*p+) : (*p+)这个表达式会产生副作用,指针p会作三次+自增操作。除此之外,另一个应该判0分的解答是:#define min(a,b) (a) = (b) ? (a) : (b); 这个解答在宏定义的后面加“;”,显示编写者对宏的概念模糊不清,只能被无情地判0分并被面试官淘汰。 试题4:为什么标准头文件都有类似以下的结构? #ifndef _incvxworksh#define _incvxworksh #ifdef _cplusplusextern c #endif /*.*/ #ifdef _cplusplus#endif #endif /* _incvxworksh */ 解答:头文件中的编译宏#ifndef_incvxworksh#define_incvxworksh#endif 的作用是防止被重复引用。作为一种面向对象的语言,c+支持函数重载,而过程式语言c则不支持。函数被c+编译后在symbol库中的名字与c语言的不同。例如,假设某个函数的原型为: void

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1