C程序设计错题汇总第1号.pptx

  1. 1、本文档共125页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计错题第1号;有如下类及函数的定义: class Wow{ int k; public: Wow(int n=0):k(n){} int incre(){ return ++k; } int decre(); void show()const; }; int Wow::decre(){ return --k; } inline void display( Wow w){ w.show(); } void Wow::show()const{ cout<<k; } ;有如下程序: #include <iostream> using namespace std; void fun(double) { cout<<"double d / "; } void fun(char c) { cout<<"char c / "; } void fun(char* p) { cout<<"char *p / "; } int main() { fun(0); return 0; } 进行编译、链接、运行的结果是 A) 编译出错,无法运行 B) 输出:char c / C) 输出:double d / D) 输出:char *p / 【解析】程序中有三个重载fun函数,形参类型分别为:char类型,double类型和char*类型,main函数中,调用fun函数,实参为0,编译器需要确定重载函数中的最佳匹配,由于0可以隐式转换为char类型、double类型、char*类型,均不能精确匹配,所以该函数调用具有二义性,编译出错;答案为A。 ;下列语句中,错误的是()。 A) const int buffer=256; B) const int temp; C) const double *point; D) const double *rt=new double(5.5); 【解析】const是一个C++语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。限定符声明变量只能被读,必须初始化。B选项中没有初始化,C选项为指向常量的指针,定义时初始化与否均可,如果是 const * double point形式,则为常指针,必须在定义时进行初始化,A、C、D都正确。 ;using namespace std; int main() { int *p; *p = 9; cout <<"The value at p:"<< *p; return 0; } 编译运行程序将出现的情况是()。 A) 编译时出现语法错误,不能生成可执行文件 B) 运行时一定输出:The value at p:9 C) 运行时一定输出:The value at p:*9 D) 运行时有可能出错 【解析】先定义指针变量,然后给指针变量赋初值有三种情况:①用取地址运算符"&"将变量地址赋给指针变量,如p=&a;②将一个指针变量中的地址赋给另一个指针变量,如p=p1;③给指针变量赋空值0,如q=0,表示该指针变量不指向任何变量。而不能用一个常量给指针变量赋初值,所以本题选D。 ;下列有关内联函数的叙述中,正确的是()。 A) 内联函数在调用时发生控制转移 B) 内联函数必须通过关键字inline来定义 C) 内联函数是通过编译器来实现的 D) 内联函数函数体的最后一条语句必须是return语句 【解析】一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,所以在调用时不发生控制转移。在类内部实现的函数都是内联函数,可以不用inline定义;只有函数外部定义的内联函数才必须加关键字inline。编译系统并非对内联函数必须使用内联,而且根据具体情况决定。内联函数不是必须要有返回值的。 ;有如下程序段: int i = 0, j = 1; int &r = i; // ① r = j; // ② int *p = &i; // ③ *p = &r; // ④ 其中会产生编译错误的语句是()。 A) ④ B) ③ C) ② D) ① 【解析】本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*p已经是一个值了,不能将一个指

文档评论(0)

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

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

1亿VIP精品文档

相关文档