当前位置:文档之家› c++复习资料及答案

c++复习资料及答案

《C++〉复习资料及答案判断题1 在变量定义int sum , SUM;中sum和SUM是两个相同的变量名。

(N )2、字符串” china在'内存中占据的存储空间是5个字节。

(N )3、在C++语言中,” A和’A是等价的。

(N )4?、C++表达式4/7和4.0/7的值是相等的,且都为double型。

(N )5、关系表达式a=b>c等价于a=(b>c),同时也等价于a==b>c。

( N )6、continue语句和break语句的区别是:break语句提前跳出switch结构或结束循环的执行;continue语句只结束本次循环,而不是终止整个循环的执行。

(Y )7、数组是一种构造型数据,即是若干相同类型的数据的集合。

()8、C++语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

()9、#include “ iostream的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。

(Y )10、C++语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:在调用一个函数的过程中又出现直接或间接地调用该函数本身。

(Y )二、选择题1由C++源程序文件编译而成的目标代码文件的缺省扩展名为( C )A) .cpp B).exe C).obj D).lik2、设x和y均为bool类型(bool类型:1或0),则x&&y为真的条件是(A )A).它们均为真B).其中一个为真C).它们均为假D).其中一个为假3、设有int i ;则表达式i=1,++i,++i||++i,i 的值为 (C )A).1 B).2 C).3 D).44、设有int i ;则表达式(i=1,i=10)i++||++i:++i 的值为 (A )解析:(i=1,i=10)i++||++i:++i(i=1,i=10) 是真的情况表达式的值=i++||++i是假的时候=++i(i=1,i=10) 这个是最终i=10,是真所以表达式的值是i++||++i = 10 ||12 = 1A).1 B).2 C).3 D).105、设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是()A).10,11,12 B).11,12,12C).10,12,12 D).11,11,126、设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是( )A).'A'&&'B' 1 B).a<=b 1C).c>=b||b+c&&b-c 1 D). a<=b+c&&c>=a+b7、若x和y都是int型变量,x=100,y=200,则下面程序片段cout<<(x,y)<<endl;的输出结果是()解析:语句中遵循优先级高的优先执行的原则,括号优先级最高,所以 (x, y) 最先计算。

这是一个,注意,是一个表达式,是表达式就有值。

的值等于最右边 的那个值,即x,y,z 的值是z ,依次类推。

所以(x, y)=y=200,最后执行语句其 他部分,输出 200A).200 B).100C).100 200D). 输出格式符不够 ,输出不确定的值8、下面各语句中 ,能正确进行 字符串 赋值操作的语句行是( )B) . char s[5]={'A','B','C','D','E'} ( char s[6]=D). char *s; cin>>s; 则对数组元素的错误引用是( )A). a[4]B). *(p+4) C). *a++ (变量才能加减 ) D). *q++10、 下列不正确的转义字符是()A).'\\' B).'\" C).'074' D).'\0'11、 假定 a 和 b 为 int 型变量 ,则执行以下语句后 b 的值为( ) a=1; b=10;do{ b-=a; a++; } while (b--<0); A). 9B). -C). -1D). 812、 对于结构中定义的成员,其隐含访问权限为()A). public B). protected C) . private D). static13、 设 P1 和 P2 是指向同一个 int 型一维数组的指针变量 ,k 为 int 型变量 , 则不能正确执行的 语句是( )A).k=*P1+*P2; B).p2=k;C).P1=P2;D).K=*P1 * (*P2);14、设有如下定义 :int arr[]={6,7,8,9,10};int * ptr; 则下列程序段的输出结果为( ) ptr=arr; * (ptr+2)+=2; cout<<*ptr<<*(ptr+2)<<endl; A).8,10B).6,8C).7,9D).6,1015、执行以下程序段后 ,m 的值为( )int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4)); A). 15B). 14C). 13D). 12A).char s[4][5]={"ABCDE"}; {'A','B','C','D','E'} )C). Char *s; s="ABCDE";9、若有 :int a[6]={4,5,6,9,5,7},*p=a, *q=p;填空题1、 描述命题“ A 小于B 或小于C”的表达式为 ______________________ 。

2、 在 C++中有二种参数传递方式: _____________ 和 ______________ 。

3、 定义重载函数时,应在参数个数、参数类型或参数次序上 ___________________ 。

4、 拷贝初始化构造函数使用 ____________________________ 来初始化创建中的对象。

5、 一个 C++函数由两部分组成,即: ______________________ 和 _____________________ 。

6、 一■个 C++程序总是从 _________________________ 开始执行。

7、 C++语言程序中出现的/* ............................ */部分或II ......... 部分所起的作用 8、 C++语言中数组元素的访问方式有两种,即: ________________ 和 __________________ 。

9、 C++规定:在每一个字符串的结尾加上一个 ______________________ ,以便系统据此判断字符串是否结束。

10、 C++语言中数据类型的转换有两种,即: ____________________ 和 __________________ 。

11、 C++语言规定了运算符的优先级和结合性,其结合性分为:和 _________________ 。

12、 若有int x=4,y=7;则表达式x+=y,x*=x+y 的值为 __________________ 。

13、 x>1 && y!=0 的相反条件为 _______________________ 。

14、 过程化程序设计方法中,程序由三种基本结构,即:顺序结 木勾、、。

15、 在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命 令 ____________________ ,若使用到数学库中的函数时,要在源程序的开始加入预处理命 令 _______________ 。

16、 C++语言中用来存放变量地址的变量称作 ___________________ 。

仃、int *p[10];的含义是 ________________________________________________________________ 。

18、int **p; 的含义是 __________________________________________ 。

四、简答题1、请用C++语言的表达式表示下列代数式。

(1)x 3 sin 55 d⑵1 a be3(e=2.71828)a b(4)e ?sin50 (e=2.71828)(aX秽 a x 2)(5)ln 52、根据要求完成下列各题。

(1) 用两种方法实现一个字符串str ,并赋以初值” welcome to Nanjing !。

”(2) 定义结构体类型 date,该结构体包含的成员为year (整型卜mon th (整型)、day(整型),3)h2bb- 4再使用 typedef 将结构体类型 date 等价成 DATE ,最后使用 DATE 定义一个变量 pdate 。

五、程序分析题 1、写出下列程序运行结果: (1) #include "iostream.h" void main( ) {int x=5,y=8,*px,*py; px=&x,py=&y; cout<<"num1= ” <<*px<< if(x<y) swap1(x,y); cout<<"num1= ” <<*px<< if(x<y) swap2(px,py); cout<<"num1= ” <<*px<< ' , ' if(x<y) swap3(px,py); cout<<"num1= ”4分)<<”num2="<<*py<< <<”<<*px<<<<”num2="<<*py<< num2="<<*py<< '; ' <<”num2="<<*py<<}swap1(int a,int b) {int t;t=a; a=b; b=t;cout<<"num1= ” <<a<<'<<” num2="<<b<< '}swap2(int *p,int *q) {int *t; t=p; p=q; q=t;cout<<"num1= ” <<*p<< ' << ” num2="<<*q<< }swap3(int *p,int *q) {int t; t=*p;*p=*q;*q=t; cout<<"num1= ” <<*p<< ' << ” num2="<<*q<< } (2) #include “ iostream.h ” main(int argc,char *argv[ ]) { int i; cout<< ” argc= for(i=0;i<=argc- }若上面的程序编译若输入以下命令行3 分) ” <<argc<< ' ; ' ; 1;i++) cout<<argv[i]<< '; ' (3) #include <iostream.h> class A { int a, b;'连接后生成可执行文件 ABC.EXE,abc filel file2 <enter> (表示回车 ) 4 分)注:文件的路径可以不考虑public: A(){a=b=O;}A( int aa , int bb ) : a(aa),b(bb){cout << ” a= ” <<a<<” <<” b= ” <<b<<endl;}~A() {cout<< ” Destructor! ” <<endl;}};void mai n(){ A x , y(2,3) ; } 〃对象x , y消亡后分别自动调用析构函数~A()2、试分析下列程序或函数的功能。

相关主题