C++练习试卷1及参考答案

合集下载

C习题及答案

C习题及答案

C习题及答案第一、二章C语言概述与算法一、选择题(四个选项中只有一个是正确的----下同)1. 一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性2. 以下叙述中正确的是A) C语言的源程序不必通过编译就可以直接运行B) C语言的每条可执行语句最终都将被转换成二进制的机器指令C) C语言的源程序经编译形成的二进制代码可以直接运行D) C语言的函数不可以单独进行编译3. 对用C语言编写的代码程序,以下叙述中哪个是正确的A) 可立即执行B) 是一个源程序C) 经过编译即可执行D) 经过编译解释才能执行4. 结构化程序由三种基本结构组成, 由这三种基本结构组成的算法A) 可以完成任何复杂的任务B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务D) 只能完成一些简单的任务5.有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是A)C001.OBJ B)C001.DAT C)C001.EXE D)C001.C二、填空题1.结构化程序由、、三种基本结构组成。

2.模块化程序设计的设计原则是和。

3.组成C程序的基本单位是,其组成部分包括和。

4.C程序中的main称,它可以出现在程序的位置。

5.由“/*”和“*/”括起来的内容称为,它的作用是。

6.描述算法的常用方法有:。

第三章数据类型、运算符与表达式一、选择题1.与十进制数97不等值的字符常量是A) ’a’ B) ’\101’ C) ’\x61’ D) ’\141’2.在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在A) C001.C B) C001.OBJ C) C001.DAT D) C001.EXE3.以下选项中正确的整型常量是A) 5.B)-10 C)1.000 D)4/54.以下选项中正确的实型常量是A) 0 B)3. 1415 C)0.03x102D).325.以下选项中不正确的实型常量是A)2.670E-1 B)0.05e+1.5 C)-77.77 D)456e-26.以下选项中不合法的用户标识符是A)wb-1 B)file C)Main D)PRINTF7.以下选项中不合法的用户标识符是A)_123 B)printf C)A$ D)Dim8.C语言中运算对象必须是整型的运算符是A)% B)/ C)* D)+9.可在C程序中用作标识符的一组标识符是A)void B)as_b3 C)For D)2cDefine _123 -abc DOWORD If case SiG10.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b11.以下非法的赋值语句是A) n=(i=2,++i); B)j++; C) ++(i+1); D) x=j>0;12.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A) 6.500000 B) 6 C) 5.500000 D) 6.00000013.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A) 6 B) 0 C) 2 D) 114.以下叙述中正确的是A)a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。

c类考试试题及答案

c类考试试题及答案

c类考试试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. char答案:C2. C语言中,用于定义变量的关键字是?A. varB. defineC. letD. int答案:D3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 下列哪个选项不是C语言的控制语句?A. ifB. forC. switchD. while答案:C5. C语言中,用于定义函数的关键字是?A. functionB. defC. voidD. int答案:D6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3};B. int [5] array = {1, 2, 3};C. int array = [5] {1, 2, 3};D. int array[5] = {1, 2, 3, 4, 5};答案:A7. C语言中,用于输入输出的库函数是?A. stdlib.hB. stdio.hC. string.hD. math.h答案:B8. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ==答案:A9. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int ptr *;D. int *ptr = 5;答案:A10. C语言中,用于定义结构体的关键字是?A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个名为“num”的整型变量,其值为10,应该使用语句________。

答案:int num = 10;2. 如果要将一个整数变量的值赋给另一个整数变量,应该使用运算符________。

C语言程序设计试题及答案解析

C语言程序设计试题及答案解析

C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。

C语言考试题库及答案

C语言考试题库及答案

C语言考试题库及答案1. 以下不是C语言的特点的是( C )A、C语言简洁,紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言的移植性好2. 一个C程序是由()BA、一个主程序和若干个子程序组成B、一个或多个函数组成C、若干过程组成D、若干子程序组成3.以下描述正确的是( ) CA、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C、在do-while循环体中,不一定要有能使while后面表达式的值变成零(“假”)的操作。

D、do-while循环中,根据情况可以省略while。

4.以下对一维整形数组a的正确说明是( ) DA、int a(10);B、int n=10,a[n];C、int n;D、int a[10];5.以下对二维数组a的正确说明是( ) CA、inta[3][];B、float a(3,4);C、double a[1][4];D、float a(3)(4);6.数组名作为实参传给被调用的函数时,形参获得的是()CA、该数组第一个元素的值B、该数组所有元素的值C、该数组第一个元素的首地址D、该数组所有元素的首地址7. C程序的开始是从()AA、main()函数开始,直到main()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main()函数开始,直到最后一个函数结束8.在C程序中,main()函数的位置()CA、必须作为第一个函数B、必须作为第二个函数C、可以任意D、必须放在它所调用的函数之后9. C编译程序是()CA、C语言的机器语言版本B、一组机器语言指令C、将C源程序编译成目标程序的程序D、是由自己编制的10.以下叙述中错误的是( )CA、C程序经过编译、连接之后形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在文件中C、C语言中的每条可执行语句和非执行语句最终被转换成二进制的机器指令非执行的语句不转换:例如//和/**/是注释的意思D、C语言源程序经编译后生成后缀为.obj的目标程序1.以下不正确的C语言标识符是( )D字母,数字,下划线组成,但是不能以数字开头A、ABCB、abcC、a_bcD、ab.c12.一个C语言程序是由( ) BA、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成13.以下叙述错误的是( ) C算法可以没有输入输入,但是一定不能没有输出A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有个相同的结果14.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i*f值的数据类型为( ) C强制类型转换A、intB、floatC、doubleD、不确定15.以下叙述中错误的是( )CA、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法16.以下叙述中错误的是()CA、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果17.以下选项中关于程序模块化的叙述错误的是()BA、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序18. 关于C语言的符号常量,以下叙述中正确的是()CA、符号常量的名是标识符,必须大写B、符号常量的名是标识符,必须小写C、符号常量是指用一个符号名来代表一个常量D、符号常量的符号名必须是常量19.关于C语言的变量,以下叙述中错误的是()BA、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后使用D、由三条下划线构成的符号名是合法的变量名20.以下选项中合法的变量名是()CA、5aB、A%C、_10_D、sizeof21.在C语言中,char型数据在内存中的存储形式是( ) DA、补码B、反码C、源码D、ASCII码22.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。

C语言程序设计历年统考试题集10套含答案

C语言程序设计历年统考试题集10套含答案

C语言程序设计试题集(第1套)请将第一、二、三、四题的答案写在答题页的相应题目的后面(写在别处不得分)。

一、单项选择题(每题2分,共20分)1、以下叙述不正确的是A)C程序由函数构成B) 一个C程序至少包含一个main函数C) main函数可以调用main函数D) main函数是每个程序执行的起始点2、C程序中能直接让机器执行的文件是A)编辑后的.c源文件 B)通过编译的.obj文件C)通过连接的.exe文件 D)编辑后的.bak文件3、假设定义变量如下:int x;float y;以下输入语句中哪个是正确的?A)scanf(“%f%d”,&y,&x); B)scanf(“%f%d”, y, x); C)scanf(“%f%f”,&y,&x); D)scanf(“%d%d”,&y,&x);4、已知:int a[][3]={1,2,3,4,5,6};则数组a的第一维的大小是A)2 B)3 C)4 D)无确定值5、.如果switch表达式是char 变量code,下面哪一个case子句是合法的。

A)case “3”:B) case ‘3’: C)case 3 : D)case =3:6、能正确表示”x的值在[1,10]和[200,210]范围内”的表达式是A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=1) || (x<=10) || (x>=200) || (x<=210)C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210)D) (x>=1) || (x<=10)&&(x>=200) || (x<=210)7、C语言中while和do-while 循环的主要区别是A)do-while循环至少无条件执行一次,而while循环可能一次也不执行B)while循环控制条件比do-while循环控制条件严格C)do-while循环允许从外部转到循环体内,而while循环不允许D)do-while的循环体可以是复合语句,而while循环不可以是复合语句 8、下面哪一项函数的头部是有效的?A)one(int a int b)B)int thisone(char x)C)char another(int a,b)D)double yetanother9、若有定义char x[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则A)x数组与y数组的长度相同B)x数组长度大于y的长度C)x 数组长度小于y数组长度 D)x数组等价于y 数组10、二维数组的第一个元素的行下标和列下标是A) 1,1 B)0,1 C)1,0 D) 0,0二、填空题(每空3分,共30分)1、如果a=4, b=3,那么,在执行语句a=b;之后,a、b的值分别是(1)2、语句:if(6>5)printf(“#”);printf(“$”);输出(2)3、for( sum=j=0; j<=10; ++j) sum += j; 循环结束后sum的值等于(3)4、长度为10的int类型数组和长度为3 的double类型数组,哪一个数组占用的内存空间多(4)5、字符数组a)char a[]=“one”;占多少内存字节(5)6、如果ch<‘A’或ch>‘Z’,那么,表达式ch>=‘A’&& ch<=‘Z’的值是(6)7、编写C语句,交换a、b的值(7)8、为了使用库函数getchar(),必须在程序中包含命令(8)9、设int numbers[5]={17,25,30,56,58};编写C的for语句,将数组numbers中的每个元素减去3。

c语言c操作题库及详解答案

c语言c操作题库及详解答案

c语言c操作题库及详解答案C语言C操作题库及详解答案1. 请编写一个C程序,实现两个整数的加法运算,并输出结果。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数相加的结果是:%d\n", sum);return 0;}```2. 编写一个C程序,实现字符串的复制功能。

答案:```c#include <stdio.h>#include <string.h>int main() {char src[] = "Hello, World!";char dest[50];strcpy(dest, src);printf("复制后的字符串是:%s\n", dest);return 0;}```3. 请编写一个C程序,实现求一个整数的阶乘。

答案:```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘是:%d\n", num, factorial(num)); return 0;}```4. 编写一个C程序,实现判断一个数是否为素数。

答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。

c本科目1试题及答案

c本科目1试题及答案

c本科目1试题及答案一、选择题(每题2分,共10分)1. 在C语言中,下列哪个关键字用于定义函数?A. classB. functionC. voidD. int答案:D2. 下列关于C语言数组的描述中,正确的是:A. 数组的大小在运行时可以改变B. 数组的大小在编译时确定C. 数组可以存储不同类型的数据D. 数组的索引从1开始答案:B3. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. int str[] = "Hello";C. float str[] = "Hello";D. double str[] = "Hello";答案:A4. 下列哪个运算符用于执行逻辑与操作?A. &&B. ||C. =D. ==答案:A5. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是______。

答案:int2. 一个C语言程序的执行总是从______函数开始。

答案:main3. 在C语言中,______运算符用于取模运算。

答案:%4. 要定义一个具有10个元素的整型数组,可以使用以下语法:int array[10] = {0}; 其中,______是数组的元素数量。

答案:105. 字符串"Hello, World!"在C语言中的长度是______。

答案:13三、简答题(每题5分,共20分)1. 描述C语言中指针的概念及其用途。

答案:指针是一种变量,它存储了另一个变量的内存地址。

在C语言中,指针主要用于动态内存分配、数组操作、函数参数传递以及实现数据结构如链表等。

2. 解释C语言中结构体(struct)的作用。

C练习题(答案)

C练习题(答案)

一、填空1、C语言规定,在一个源程序中main函数的位置可以任意2、C语言中的标识符只能由三种字符组成,它们是数字、字母和下划线3、表达式18/4*sqrt(4.0)/8值的数据类型为双精度4、当a=3,b=2,c=1时,表达式f=a>b>c的值是05、在C语言中,char型数据在内存中的存储形式是ASCII值6、对应scanf(“a=%d,b=%d”,&a,&b);语句的输入a为3,b为7的键盘输入格式是a=3,b=77、C语言提供的三种逻辑运算符是&&、||、!8、下面程序段的运行结果是you?char str[]=“how are you?”;第 1 页共2 页printf(“%s”,str+8);9、模块化程序设计要求:高内聚、低偶合。

10、已知指针p的指向如图所示,则表达式*p++的值是21二、单项选择1、以下运算符中运算级别最高的是(D)(A) % (B)/ (C)< (D)!2、以下是字符常量的是C(A)"C" (B)'\\'' (C)'W' (D)''3、sizeof(float)是B。

(A)一个双精度型表达式(B)一个整型表达式(C)一种函数调用(D)一个不合法的表达式4、已知i、j、k为int 型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j 的值为2,k的值为3,以下选项中正确的输入语句是:(C)(A) scanf("%2d%2d%2d",&i,&j,&k);(A) scanf("%d %d %d",&i,&j,&k);(A) scanf("%d,%d,%d",&i,&j,&k);(A) scanf("i=%d,j=%d,k=%d",&i,&j,&k);5、以下非法的赋值语句是:(C)(A)n=(i=2,++i); (B)j++;(C)++(i+1); (D)x=j>0;6、以下四个选项中,均是不合法的用户标识符的是(C)(A)A P_O do (B)float la0 _A(C)b-a goto int (D)_123 temp int7、若有说明语句:char c='/72';则变量c(A)(A)包含1个字符(B)包含2个字符(C)包含3个字符(D)说明不合法,C的值不确定第 3 页共2 页8、下面不正确的字符串常量是:(A)(A)'abc' (B)"12'12" (C)"0" (D)" "9、执行下列程序段后, a值为: Dint a, b;a=15; b=12;a=(a-- ==b++)? a%5 : a/5;(A) 0 (B)2.8 (C)4 (D) 210、判断char型变量ch是否为大写字母的正确表达式是(C)(A)’A’<=ch<=’Z’(B) (ch>=’A’)&(ch<=’Z’)(C) (ch>=’A’)&&(ch<=’Z’)(D) (‘A’<=ch) AND (‘Z’>=ch)11、以下程序的运行结果是(C)main(){int m=5;if(m++>5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}(A)4 (B) 5 (C) 6 (D) 712、以下程序段的运行结果是:(B)int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);(A)0 (B)1 (C)无限循环 (D)程序段中的控制表达式是非法的13、C语言中while和do-while循环的主要区别是(A)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++练习试卷1及参考答案一、填空题(每小题2分,共16分)1.任何一个对象都应当具有这两个要素,即①和②,它能根据外界给的信息进行相应的操作。

2. 封装可以使得程序中各部分之间的相互影响达到最小,并且提高程序的①性。

3.继承可以让程序员①父类的代码,专注于子类编写新代码。

4.①型成员和②型成员具有被继承性,而③型成员不具有被继承性。

5.一旦一个函数在基类中被定义为虚函数,那么它在派生类中就被认为是虚函数,不需再在派生类中用①关键说明。

6.纯虚函数的声明形式是在虚函数声明形式后跟①。

7.函数与模板函数同名时,哪一个优先被调用?①。

8.异常使用三部曲:框定异常(①语名块)、定义异常处理(②语句块)、抛掷异常(③语句)。

二、单项选择题(每小题2分,共20分)1、在int a=3,*p=&a;中,*p的值是()。

A. 变量a的地址值B. 无意义C. 变量p的地址值D. 32、以下4个选项中,不能看作一条语句的是()。

A. if(b==0) m=1;n=2;B. a=0,b=0,c=0;C. if(a>0);D. {;}3、()不是构造函数的特征。

A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置缺省参数D. 构造函数必须指定类型说明4、关于成员函数特征的下列描述中,()是错误的。

A. 成员函数一定是内联函数B. 成员函数可以重载C. 成员函数可以设置缺省参数值D. 成员函数可以是静态的5、有以下程序#include <iostream.h>void main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i;cout<<s;}程序执行后的输出结果是()。

A. 自然数1~9的累加和B. 自然数1~10的累加和C. 自然数1~9中的奇数之和D. 自然数1~10中的偶数之和6、编译时多态性通过使用()获得。

A.构造函数B.虚函数C.重载函数D.析构函数7、有以下程序#include <iostream.h>void main( ){ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};cout<<p[3]<<endl;}执行后输出结果是A. dcdbeB. abbdC. abcD. abb8、下列静态数据成员的特性中,()是错误的。

A. 说明静态数据成员时前边要加修饰符staticB. 静态数据成员要在类体外进行初始化C. 静态数据成员不是所有对象所共用的D. 引用静态数据成员时,要在其名称前加<类名>和作用域运算符9、有以下语句struct S{ int g;char h;} T;则下面叙述中不正确的是()。

A. S是结构体名B. 该结构体包含2个成员C. S是struct类型的变量D. T是struct S类型的变量10、实现运行时的多态性用()。

A. 重载函数B.构造函数C.析构函数D.虚函数三、简述题(9分)简述面向对象程序设计的基本思想、方法和步骤。

四、阅读程序,写出运行结果(每小题7分,共35分)1.(7分)#include<iostream.h>void main(){int x=10;int &y=x;cout<<"x="<<x<<","<<"y="<<y<<end l; x++;cout<<"x="<<x<<","<<"y="<<y<<end l;y++;cout<<"x="<<x<<","<<"y="<<y<<end l;}2.(7分)========================================================#include<iostream.h>class point{private:int x,y;public:point( ){cout<<”构造函数1被调用!\n” ;}point(int xx,int yy){ x=xx;y=yy;cout<<”构造函数2被调用”<<endl;} point(point &p);int GetX(){return x;}int GetY(){return y;}};point::point(point &p){ x=p.x;y=p.y;cout<<”拷贝构造函数被调用”<<endl;}void main(){point A(4,5),B;point C(A);cout<<C.GetX()<<endl;}3.(7分)============================================================#include<iostream.h>class Sample{protected:int x;public:Sample(){x=0;}Sample(int val){x=val;}void operator++(){x++;}};class Derived:public Sample{ int y;public:Derived():Sample(){y=0;}Derived(int val1,int val2):Sample(val1) {y=val2;}void operator--(){x--;y--;}void disp(){ cout<<"x="<<x<<",y="<<y<<endl;} };void main(){ Derived d(3,5);d.disp();d++;d.disp();d--;d++;d.disp();}4. (7分)==============================================================# include<iostream.h>class base{public:virtual int func () { return 0; }}; class derived: public base {public:int func() { return 100; }}; void main(){derived d;base b;cout << b.func() << endl; cout<<d.func()<<endl;cout << d.base::func() << endl; }5.(7分)=====================================================#include <iostream.h>class ST{public:ST(){cout<<”constructing…”<<endl;} ~ST(){cout<<”destructing…”<<endl;} };void main(){ ST st;try{ cout<<”exception start…”<<endl;throw ‘H’;}catch(int){cout<<"int exception.\n"; }catch(char c){cout<<"char exception.\n"<<c<<endl;} cout<<”exception end…”<<endl; cout<<"That's ok.\n";五、阅读下列程序,添上一个拷贝构造函数来完善整个程序,然后写出运行结果。

(10分)#include<iostream>using namespace std;class CAT{int* itsAge;public:CAT():itsAge(new int(5)){};~CAT(){delete itsAge;}int GetAge() const{return *itsAge;}void SetAge(int age){*itsAge=age;}};int main(){CAT frisky;cout<<"frisky’s age: "<<frisky.GetAge()<<endl;cout<<"Setting frisky to 6\n"; frisky.SetAge(6);cout<<"Creating boots from frisky\n"; CAT boots(frisky);cout<<"frisky’s age:"<<frisky.GetAge()<<endl;cout<<"boot's age:"<<boots.GetAge()<<endl;cout<<"setting frisky to 7\n";frisky.SetAge(7);cout<<"frisky’s age:"<<frisky.GetAge()<<endl;}六、编程题(10分)设有下列类声明:class A{ public:A(){ n=new int;init();}private:int n;};写出init()引发异常的处理程序。

C++练习试卷1参考答案及评分标准一、填空题(每小题2分,共16分)1. ①属性②操作2. ①安全3. ①重用4. ①公有②保护③私有5.①virtual 6. ①=07. ①函数8. ①try ②catch ③throw二、单项选择题(每小题2分,共20分)三、简述题(9分)基本思想(+3分)方法:抽象与分类(+2分)步骤:1.找出类(+1分)2.描述类与类之间的关系(+1分)3.用类来界定抽象层次,从而组织程序结构(+2分)。

相关文档
最新文档