C答案.docx
- 文档编号:25886066
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:35
- 大小:64.33KB
C答案.docx
《C答案.docx》由会员分享,可在线阅读,更多相关《C答案.docx(35页珍藏版)》请在冰豆网上搜索。
C答案
《c++语言程序设计》期末综合练习题
崔强荣
一、填空题
1、C++程序是由__函数__构成的,而一个函数又由函数的___说明部分___和__函数体___两部分组成。
2、___常量__是在程序运行中值不能被改变的量。
而相反,如果在程序运行过程中值可以被改变的量称为_变量___。
3、C++语言规定,以字符’\0’来作为字符串的结束标志。
4、带复合赋值运算符的表达式:
x+=4,等价于普通的赋值表达式
。
5、语句:
y=(x=2+4,x+4,x*2);执行完后x的值是__6__,y的值是__12___。
6、表达式x*=2+4运算后变量x的值为__60__,其中x的初值是10。
7、逻辑表达式a+b>c&&b==c的值为___0__,其中a=3,b=4,c=5。
8、普通的赋值表达式:
x=x%3,等价于带复合赋值运算符的表达式
。
9、逻辑表达式a||b+c&&b-c的值为__1__,其中a=3,b=4,c=5。
10、表达式x=x>6运算后变量x的值为__1__,其中x的初值是10。
11、逻辑表达式!
(x=a)&&(y=b)&&0的值为___0__,其中a=4,b=5,c=6。
13、关系表达式x+y的相反表达式为
。
14、若x=2,y=4,则x>y&&!
x<=y的逻辑值为_0。
15、inta=3;表达式a+=a-=a*=a+3%2的值为__0___。
16、设inta=2,b=3;floatx=,y=;表达式
(1)(float)b/2+(int)x%(int)y的值为:
;
(2)(float)((a+b)/2)+(int)x%(int)y的值为:
__3__;
17、设inta=3,b=5,c=5;表达式
(1)a-=a/b的值为:
___3___
(2)a+b>c&&b==c的值为:
__1___
(3)!
(a+b)+c&&b+a/b的值为:
__1___
(4)a||b+c的值为:
__1___
18、字符常量'\O178'在内存中占_1_字节,字符串"a"在内存中占_2_字节。
19、若intx=3,y=2,z=1;求下列表达式的值:
(1)x y: x的值为: __3___; (2)x x++: y++的值为: __2__ (3)z+(x x: y)的值为: _3__; (4)x/y+z的值为: __2__; 20、一个C++语言程序是由若干个函数构成,其中必有一个__main函数__。 21、设inta=2,b=4,c=5;表达式: (1)a+=a*b的值为: __10____; (2)a+b>c&&b==c的值为: __0__; (3)! (a+b)+c-1&&b+c/2的值为: __1__; (4)a||b+c的值为: __1__; 22、cin与操作符__>>___配合可用于键盘输入; 23、cout与操作符_<<__配合可用于显示输出; 24、通过执行x=y;y=z;z=x;可交换变量_y___和变量__z__的值 25、执行cout<<"What\'syourname? ";,显示在屏幕上的是__What'syourname? __。 26、int、float、long、char和double类型的大小分别为__4字节__、_4字节_、_4字节_、_1字节_和__8字节____。 27、算术表达式 对应的C++表达式分别为__ 和 。 28、不用操作符! ,x<=y+5的相反条件可表示为: 。 29、若要在程序文件中进行标准输人输出操作,则必须在开始的#include命令中使用iostream.h头文件。 30、C++语言中的每条基本语句以 作为结束符,每条复合语句以___}作为结束符。 31、执行“cout< 32、执行“cout<<43<<'-'<<18<<'='<<43-18< 33、表达式x=x+l表示成增量表达式为___x++____。 34、如果x=123,y=-6,则执行语句if(x>0)cout<<'A';if(y<-8)cout<<'B';后屏幕上显示的结果是___A_____。 35、已知数组a定义为inta[]={1,3,5,7};,则a的各元素的值分别是_1,3,5,7_,最小下标是_0,最大下标是3。 36、已知数组f定义为doublef[4][3]={{1,2},{5},{6,7,8}};,则f是一个__4__行___3__列的二维数组,总共有__12__元素。 37、执行“typedefintABC[10];”语句把ABC定义为具有11个整型元素的数组类型。 38、借助变量z交换变量x、y的值,应顺序执行的三个赋值语句是: ; ; 39、若一函数是以return;结束运行的,说明该函数是无参函数。 40、已知'A'~'Z'的ASCⅡ码为65~90,当执行“charch=14*5+2;cout< 41、变量分为全局和局部两种,____局部变量没有赋初值时,其值是不确定的。 42、使用coust语句定义一个标识符常量时,则必须对它同时进行初始化__。 43、在函数外定义的变量称为_全局__变量。 44、"插入法"排序的模块,请将程序填写完整 intinsertsort(a,x,m) longa[],x; intm; {intk,j; if(x>=a[m])a[m+1]=x; else{k=1; while(x>=a[k]&&k ; for(j=m;j>=k;j--) ; ; } m=m+1; return(m); } 45、下面的程序段是按行显示输出5行3列数组a的所有元素,从倒数第一行开始输出,最后输出首行,请补充完整: for(inti= ;i< ; ); { cout< for( ; ;j++) cout<< <<''; } 46、已知函数f的定义是: intf(intn) {n=n+2; returnn+1; } 则执行 intm=5,n=3; m=f(n); 后,m的值是6,n的值是__3__。 47、返回n和m的最小公倍数的模块,请将程序填写完整 intf(n,m) intn,m; {intr; r=n*m; while(n! =m) { } return(r/m); } 48、若正常执行了如下语句: intm[20],*p1=&m[5],*p2=m+17,n; n=p2-p1; 则n的值为12。 49、假定P所指对象的值为25,p+1所指对象的值为40,则执行“(*p)++;”语句后,p所指对象的值为26。 50、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 。 51、假定一个一维数组的定义为“char*a[8];”,则该数组所含元素的个数为___8___,所占存储空间的字节数为___32___。 52、假定a是一个二维数组,则a[i][j]的指针访问方式为 。 53、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 。 54、设px是指向一个类动态对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的析构函数。 55、若需要把一个函数“voidF();”定义为一个类AB的友元函数,则应在类AB的定义中加人一条语句: 。 56、假定一个结构类型的定义为“structD{inta;union{intb;doublec: };D*d[2];};”,则该类型的大小为___20___字节。 57、对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的函数体实现。 58、假定AB为一个类,则执行“ABa[5];”语句时,系统自动调用该类构造函数的次数为___5__。 59、类的静态成员需要在定义每个类的对象时进行初始化。 60、假定类AB中有一个公用属性的静态数据成员aa,在类外不通过对象名访问该成员aa的写法为AB: : aa。 61、float和double类型的大小分别为___4字节__和8字节。 62、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为AB: : bb。 二、单项选择题 1、C++语言中字符串常量"CHINA"在内存中的实际长度是__B__。 A.5个字符B.6个字符 C.7个字符D.不确定 2、逗号表达式x=5*4,x+5,3+4的值是__C___。 A.20B.24 C.7D.51 3、已知x=,a=7,y=,则表达式x+a%3*(int)(x+y)%2/4的值为_C__。 B. D. 4、在C++语言的输入输出语句中,通常用以__A_____开头的字符序列来表示一些特殊的控制或格式信息。 A.'\'B.'/' C.'%'D.'&' 5、以下赋值语句中,错误的有: __C_____。 A.intc=3;B.inta,b=4,c; C.inta=b=c=4;D.inta=4,b=4; 6、表达式k=(13>12? 20: 6>7? 8: 9)的值为__B_____。 A.9B.20 C.8D.1 7、如果定义一个双精度变量x,正确的应该是: ___C____。 A.floatxB.intx C.doublexD.intdoublex 8、若x是一个bool型变量,则x&&! x的值是__A______。 A.为falseB.为true C.与x的值相同D.与x的值相反 9、执行cout<<123< A.123endl123B.123endl"123" C.123D.123 "123"123 10、设x和y均为bool量,则x&&y为真的条件是____B_____。 A.其中一个为真B.它们均为真 C.它们均为假D.其中一个为假 11、若用数组名作为函数调用时的实参,则传递给形参的是D。 A.数组的第一个元素的值B.数组全部元素的值 C.数组元素的个数D.数组首地址 12、若有说明int(*p)();则表示___A____。 A.p是一个函数指针,该函数返回一个整型量 B.p是一个指针,它指向一个整型量 C.p是一个函数指针,该函数返回一个整型量 D.p是一个函数,该函数返回值为指针 13、在函数的定义格式中,必须使用C++保留字的部分是___A_____。 A.类型修饰符B.函数名 C.形式参数表D.函数体 14、如果一个函数无返回值,则只能作为_____D___被调用。 A.表达式B.无参函数 C.有参函数D.语句 15、已知一运行正常的程序中有这样两个语句: int*p1,*p2=&a; p1=b; 由此可知,变量a和b的类型分别是___B____。 A.int和intB.int和int* C.int*和intD.int*和int* 16、下列表达式中,与下标引用a[k]等效的是___C____。 A.a+kB.*a+k C.*(a+k)D.a+*k 17、要使指针变量p指向1维数组a的第1个元素,正确的赋值表达式是___B____。 A.p=a或p=a[0]B.p=a或p=&a[0] C.p=&a或p=a[0]D.p=&a或p=&a[0] 18、空指针是指___C____。 A.无指针值的指针B.无数据类型的指针 C.不指向任何数据的指针D.既无指针值又无数据类型的指针 19、在下面的函数声明中,存在着语法错误的是____D___。 A.voidBC(inta,int)B.voidBD(int,int) C.voidBE(int,int=5)D.intBF(intx;inty) 20、下面的哪一个保留字不能作为函数的返回类型? _____A______。 A.newB.int C.voidD.long 21、由C++目标文件连接而成的可执行文件的缺省扩展名为____C____。 A.cppB.obj C.exeD.lik 22、假定AB为一个类,则该类的拷贝构造函数的声明语句为____C_____。 A.AB&(ABx)B.AB(ABx) C.AB(AB&)D.AB(AB*x) 23、对于结构中定义的成员,其隐含访问权限为___A_____。 A.publicB.protected C.privateD.static 24、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为___D___。 A.ios: : inB.ios: : out C.ios: : in|ios: : outD.没有 25、假定AB为一个类,则执行“ABa(4),b[3],*p[2];”语句时,自动调用该类构造函数的次数为____B_____。 A.3B.4 C.6D.9 26、假定a为一个整型数组名,则元素a[4]的字节地址为____C_______。 A.a+4B.a+8 C.a十16D.a+32 27、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: _____B______。 A.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a) C.operator+(ABa)D.AB&operator+() 28、在下面的一维数组定义中,哪一个有语法错误___C____。 A.inta[]={1,2,3}B.inta[10]={0} C.inta[]D.inta[5] 29、下列语句执行后的结果为___D____。 inta=4; while(a) printf("%2d",a--); A.0B.不输出任何结果 C.4D.4321 30、在函数中形式参数就是一个___C____。 A.表达式B.常量 C.变量D.函数调用 三、判断题 1、在C++语言中,对变量的表示限制不太严格,比如: 'b'与'B'是相同的字符常量。 (×) 2、在程序中赋值时,表达式c=97;可以是语句CHARc;定义了的变量,也可以是语句INTc;定义了的变量。 (√) 3、“! ”是关系运算符,“! =”是逻辑运算符。 (×) 4、表达式(int)x+y与(int)(x+y)含义不一样。 (√) 5、如果有CHARc;对c进行了定义,则表达式c='A'+32是不正确的。 (×) 6、执行表达式x=(i=4,j=16,k=32)后,x的值是23。 (×) 7、在C++语言中,'d'与"d"是不相同的常量。 (√) 8、int类型和unsignedint类型表示整数的范围不同。 (√) 9、如有说明inta,b;则a=(b*b>b)的值一定是1。 (×) 10、已知inta=5,b=6;表达式(++a==b--)? --a: ++b的值是8。 (×) 11、变量必须先定义或说明,后使用。 (√) 12、对于C++程序,每一行可以有多个语句。 (√) 13、常量不能作为左值使用。 (√) 14、C++程序的执行是从main函数开始的。 (√) 15、字符串“hello,world”在内存中存放时,占用11个字节的空间。 (×) 16、C++程序有三种基本结构: 顺序结构、分支结构和循环结构(√)。 17、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为main(√)。 18、执行inta[];语句后,能够定义一个一维数组(×)。 19、在C++语言中,二维数组中元素排列的顺序是按列存放的(×)。 20、int类型和unsignedint类型表示整数的范围不同。 (√) 21、下列if语句嵌套中的else是跟第一个if嵌套(×)。 if(n>0)if(n=0)a=1;elseb=1; 22、break语句能够中断所有循环(×)。 23、while循环语句的最少循环次数是1次(×)。 24、在执行for(inti=0;i<=100;i++)i++;后循环了100次(×)。 25、下面两个语句是等价的: (×) charstr[]="hello,world"; charstr[5]="hello,world"; 26、如果要从被调用函数带回一个函数值,则被调用函数中可以不含return.语句,而用其它方式实现函数值的返回.(×) 27、如有说明char*cp;则&cp和cp都是内存地址。 (√) 28、在同一文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量的值等于局部变量的值。 (×) 29、函数的参数和返回值类型可以是简单数据类型,也可以是指什、引用、数组和类。 (√) 30、用new动态申请的内存是在堆中分配的,而不是在栈中分配的。 (√) 31、程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。 (√) 32、在不同作用域中的变量可以同名。 (√) 33、说明函数原型时不需要指明每个函数参数的名字,只需说明每个参数的类型和返回值类型就可以了。 (√) 34、用new动态申请的内存空间,必须用delete来释放。 (√) 35、派生类的成员函数可以直接访问基类的所有成员。 (×) 36、函数重载既要求两函数参数对应的类型不同又要求参数个数不同。 (×) 37、基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其他的函数访问。 (×) 38、C++语言中,语句“if((a=b)>0)x=a;”与“if((a=b;)>0)x=a;”是一样的。 (×) 39、变量的指针就是变量的地址。 (√) 40、头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。 (×) 41、所有的表达式都有值。 (√) 42、当函数的返回值是数组类型的,传递的是数组第一个元素的地址。 (×) 四、程序阅读题 1、写出下列程序运行的结果: #include<> voidmain() {inti,j,m,n; i=8;j=10; m=i++;n=++j; cout< } 输出结果: 9,11,8,11 2、写出下列程序运行的结果: #include<> voidmain() {intn; for(n=10;n<=20;n++) {if(n%3)! =0continue; cout< } } 输出结果: 12,15,18, 3、#include<> voidmain() {inti; intf[6]={1,1}; for(i=2;i<6;i++)f[i]=f[i-2]+f[i-1]; for(i=0;i<6;i++) {if(i%5! =0)cout< cout< } 运行结果是什么? 输出结果: 1 1 2 3 58 4、#include<> #include<> voidmain() { charc; inti,k; k=0; for(i=0;i<4;i++) { while (1) { c=getchar(); if(c>='0'&&c<='9') break; } k=k*10+c-'0'; } cout< } 如果输入的是1234,则程序的运行结果是什么? 输出结果: 1234 5、#include<> #include<> voidmain() { charc; intnl=0; while((c=getchar())! ='#') if(c==',')nl++; cout< } 如果输入一行字符: abcd,xyz,1234#,则程序的运行结果是什么? 输出结果: 2 6、写出下列程序运行的结果: #include<> voidmain() {inti,j,m,n; i=8;j=10; m=i--;n=--j; cout< } 输出结果: 7,9,8,9 7、#include<> voidmain() { ints=10; for(inti=1;;i++) { if(s>50)break; if(i%2==0)s+=i; } cout<<"i,s="< } 运行结果是什么? 输出结果: i,s=13,52 8、#include<> voidmain() { chara[]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)