C++高级编程练习题.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 C + + 语 言 基 础 及 过 程 化 程 序 设 计 1.1 基础概念 1.函数声明和函数定义有什么区别? 答: 1) 函数声明是函数的原型,强调函数如何被使用,不包含函数的实现代码; 2) 函数定义给出函数的实现代码。 2.const char *p1; char * const p2;的区别 答: 1) const位于星号的左侧, const用来修饰指针所指向的变量,即指针指向 为常量; 2)const 位于星号的右侧, const用来修饰指针本身,即指针本身是 常量。 3.delete与 delete []区别 答: delete只会调用一次析构函数,而 delete[]会调用动态分配的多个对象的析 构函数 4.解释堆和栈的区别 答: 1) 栈:由编译器自动分配释放,存放函数的参数、局部变量等。通常在超 出作用域后由系统自动释放。 2) 堆:一般由程序员负责分配与释放,若程 序员不释放,占用的内存直到程序结束才由 OS 回收。 5.在什么时候需要使用 “常引用 ”? 答:如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数 中被改变,就应使用常引用。 6.全局变量和局部变量在内存中的区别。 答: 1) 全局变量储存在静态数据区,程序加载时分配并初始化,程序结束时释 放; 2) 局部变量在栈中,进入变量作用域后分配,超出其作用域后释放; 3) 全局变量不初始化会执行缺省初始化,如整型变量缺省初始化为 0,局 部变量不初始化不会执行缺省初始化,往往为垃圾值。 7.简述内存的分配方式。 答: 1) 静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在, 如全局变量、常量。 2) 栈上分配,函数内的局部变量和形参在栈上分配。 3) 堆上分配,动态分配,用 new分配内存,用 delete来释放内存。 8.指针的几种典型应用情况。 int *p[n];----- 指针数组,每个元素均为指向整型数据的指针。 int (*p) [n];------ 指向一维数组的指针,这个一维数组含有 n 个整型数据。 int *p();---------- 返回指向整型指针的函数。 int (*p) ();------ 指向函数的指针,要求函数无参并返回整型。 9.说明 0、 ’0’、 ’0、’“0区别 答: 0 表示整数常量,值为 0; ’0’表示 ASCII 码值为 0 的字符常量; ’0表’示 ASCII 码值为 48 的字符常量; “0为”字符串常量,其中包含 ’0和’’0’两个字 符。 10.说明下面程序中存在的问题 #includeiostream int main() { int arr[10], *p=arr; int i; for( ; parr+10;++p) cin*p; for(; ap;++arr) cout*arr ‘0’; return 0; } 答: arr为数组名,对应地址不可修改,不能应用 ++arr 运算。 11.有如下定义,请写出访问 a[2][3] 元素的不同方法 int a[4][5]; int (*p)[5] = a; 答: a[2][3]、 p[2][3]、 *(a[2]+3)、 *(p[2]+3)、 *(*(a+2)+3)、 *(*(p+2)+3) 阅读程序 1.写出下面程序的运行结果。 #include iostream using namespace std; int main() { double numOne = 2.5; int numTwo = 3; double quotient = numOne/2; coutQuotient: quotientendl; quotient = numTwo/2; coutQuotient: quotientendl; return 0; } 2.写出下面程序的运行结果。 #include iostream using namespace std; int main() { int number = 103; int digit, tens, hundreds; digit = number %10; tens = (number/10)%10; hundreds = (number/100)%10; coutHundreds

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

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

认证主体土默特左旗农特农机经销部
IP属地广西
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档