1、第一章 C/C+程序设计概述 返回1. 为什么语句末要加分号“;”?分号是C语句的组成部分,不能漏掉或忘记。例如:double r / 该语句编译时就会出现语法错误。并提示错误信息:cinr ; / error C2146: syntax error : missing ; before identifier cin2. 为什么变量要先定义后使用?C/C+规定任何变量都必须在使用前定义,否则编译时会出错。例如:main ( ) int x=3,y=5; /变量z没有定义就使用,编译时会出错。z=x+y; /编译时提示错误信息:error C2065: z : undeclared identi
2、fier 3. 标识符大小写有什么区别?C/C+严格区分大小字符,标识符大小写也有严格区别。例如:double r; cinR; C/C+将小写变量r和大写变量R看作两个不同的变量,所以编译时将提示错误信息:error C2065: R : undeclared identifier。4. 为什么要加预处理命令(头文件)?在输入、输出、函数调用时必须在#include命令中包含相应的头文件*.h。void main() int x,y,t;coutxy;if (x“= 90)cout= 80) cout= 70) cout = 60) cout = 60) cout= 70) cout= 80
3、) cout= 90) cout= 90) cout= 90) coutst1;st2=st1; /字符数组 对象st2cinst3; /错的,Cstring对象st3不能通 cin输入 8. 指针 维数组有区别?有定义语句:int s6=2,3,4,5,6,7, *p=s; 则数组s 指针p既有联”亦有区别。(1)Sk 价于*(p+k);均示数组元素(2) s+k 价于p+k;均示元素 ,但p+ 以,s+错。(3)*p+:取p指对象内容后,在使p指向下一元素。(4)(*p)+:取p指对象的,并将该加1后再 该对象。9. C+中一级指针不能指向 维数组?例如: int a34, *p=a; 在
4、C+中是错的;错误信息为:cannot convert from int 23 to int *但在C中语句int a34, *p=a;是currency1的。第五章 函数 返回1. 时报“missing function header”错误是什么 ?函数头不是语句,后不能有分号,加分号则成了一说明语句,故后的函数体缺少函数头。2. 如何currency1定函数中 参的个数?函数的作用是实现函数 调用 的数 通信。一面,函数要实现某一功能 要的数 ,调用 为提供初,是通 实参传递 参实现的;另一面,函数将 传递 调用 , 了 以通 return语句返回一个 , 的要通 用或指针传递实现。此,
5、参的个数就是由述两面决定的。3. 函数 参数传递如何currency1定?参 实参的 有传、传和用 。参是变量,是传, 是 向的,能 界向函数传入初,但不能将 传出。参是指针或数组,是传, 是向的,既 传入 传出。参是用,作用同传,也是向的,但 传更便、直接。4. 实参 参 对应 (1)用或传时, 参 实参的 必须要一fl。例如:#include “iostream.h“ void f(int void main()float x=5;f(x);coutxendl;程序编译后会示“cannot convert parameter 1 from float to int return a;voi
6、d main()float x=5.5;cout f(x)endl; /输出25程序编译后示“conversion from float to int, possible loss of data”的警告错误,有 输出,但由于 不同数 能会丢失,故 参 实参的 应fi一fl。5. 函数swap是交 两变量的,用下面两 使a,b交 后的返回为何不 ?(1)int swap(int a,int b)int temp;temp=a;a=b;b=temp;return a,b; (2)int swap(int a,int b)int temp;temp=a;a=b;b=temp;return a;re
7、turn b;1中返回的a,b是一 号 ,该 的是后一 的b的,所以 能 b返回; 2中当 return a;语句后返回到调用处。变量b的 法返回。6. 用指针变量作函数 参时, 参的改变一定会 对应的实参 ?下面个例 后的 是1 不是3, 是函数f中,指针s的指向改变了, 指向 请的一个“ 元,当函数调用 ,该“ 元 。所以,主函数中s指针所指的“ 元的没有改变。将函数f中的s=new int;语句 ,则程序 后的 是3,为此时 参s 对应的实参s指向的是同一“元,所以,有当 指向同一“ 元时,对 参所指内容的 改 会 对应的实参。#include “iostream.h“void f(in
8、t x,int y,int *s) s = new int;*s=x+y;void main()int a=1, b=2,*s=f(a, b,s);cout*sendl;7. 数组作为参数传递时 参 实参写法的区别参 实参都是数组时, 的写法是有区别的。例如:#include “iostream.h“ void f(int a ,int n) for(int i=0;in;i+)ai=ai*ai; void main()int a10,i;for(i=0;i10;i+)ai=i+1;f(a,10);for(i=0;i10;i+)coutaiendl;实参能写数组a,不能写成a 或a10的 ;
9、对应的 参数组 以不必说明 体的大小,通在数组后 一对说明 ,为编译器对 参数组大小不作 。第 章 面向对象程序设计 返回1. 在 定义 处忘加分号是一 的语法错误。2. 对函数指定返回 或是函数中有返回的语句都是语法错误。3. 在 定义中初 的数 成 是语法错误。如:class Aprivate:int year=2002, month=10, day=12;4. 在 体 定义 的成 函数时,漏写 和作用 符。5. 在主函数中 的 有成 或 成 是不允许的。6. 改对象数 成 的成 函数定义为 成 函数。7. 对 对象调用 成 函数是不允许的。8. 当提供了有参函数, 没有 出 的函数, 定
10、义的对象中既有有参对象, 有 参对象时,则 参对象 法。如:#include “iostream.h“class Circle1private: double x,y,r,s; public: void print( );Circle1( ); /缺少该语句会产生语法错误Circle1(double x1,double y1,double r1);;/成 函数的 体定义void main()Circle1 p1(0,0,2),p2(1,1,4),p3;9. 生 的成 函数中用了 的 有成 是不允许的。10. 在生 的成 函数中要调用 中的同成 函数时,漏写了 和作用 符,便会变成生 调用自,产生 错误。11. 定义象 对象是一 语法错误。HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL CheckedValue