C试题附答案

合集下载

c语言试题及答案

c语言试题及答案

c语言试题及答案c语言试题及答案C语言是一门通用计算机编程语言,应用广泛。

小编收集了c语言试题及答案,欢迎阅读。

c语言试题一选择题(7分,每小题0.5分)1.C语言源程序的基本单位是( )。

A 过程B 函数C 子程序D 标识符2.下列程序的输出结果是( )。

main( ){ int a=7,b=5;printf("%d ",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。

A 7B 8C 9D 24.设a为int型变量,执行下列赋值语句后,a的取值分别是( )。

a=125.534; a=(int)125.521%4; a=5<<2;A 125,31,1B 125,1,20C 125,31,20D 125.534,2,205.设有如下程序段,下面描述中正确的是 ( )。

int k=10; while(k=0) k=k-1;A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D 循环体语句执行一次6.以下程序的输出结果为( )。

int i;void prt( ){ for(i=5;i<8;i++) printf("%c",'*');printf(" ");}main( ){ for(i=5;i<=8;i++) prt( );}A ***B *** *** *** ***C *** ***D * * *7.在C语言程序中,以下说法正确的是( )。

A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用都不可以嵌套D函数的定义和函数的调用都可以嵌套8.以下函数调用语句中含有( )个实参。

func((e1,e2),(e3,e4,e5));A 2B 3C 5D 语法错误9.以下程序的输出结果为( )。

c语言基础试题及答案

c语言基础试题及答案

c语言基础试题及答案一、选择题1、在C语言中,引用数组元素时,其数组下标的数据类型允许是。

A、整型常量B、整型表达式C、整形常量或整形表达式D、任何类型的表达式2、以下对一维整型数组a的正确说明是____A、int a(10) ;B、int n=10,a[n];C、int n;scanf(“%d”,&n);int a[n];D、#define SIZE 10int a[SIZE];3、若有定义:int a[10],则对数组a元素的正确引用是A、a[10]B、a[3.5]C、a(5)D、a[10-10]4、以下能对一维数组a进行正确初始化的语句是。

A、int a[10]={0,0,0,0,0};B、int a[10]={} ;C、int a[ ] = {0} ;D、int a[10]={10*1} ;5、若有定义:int a[3][4],则对数组a元素的正确引用是________A、a[2][4]B、a[1,3]C、a(5)D、a[10-10]6、以下能对二维数组a进行正确初始化的语句是_______A、int a[2][]={{1,0,1},{5,2,3}} ;B、int a[][3]={{1,2,3},{4,5,6}} ;C、int a[2][4]={{1,2,3},{4,5},{6}} ;D、int a[][3]={{1,0,1},{},{1,1}} ;7、若有说明:int a[3][4]={0};则下面正确的叙述是_______A、只有元素a[0][0]可得到初值0B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值08、下面是对s的初始化,其中不正确的`是_____A、char s[5]={“abc”};B、char s[5]={‘a’,’b’,’c’,’d’,’e’,’0’};C、char s[5]=””;D、char s[5]=”abcdef”;二、程序填空1、以下程序把一个由小到大的有序数列放在a[1]到a[n]中,a[0]用作工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍然的序。

C语言试题(部分有答案)

C语言试题(部分有答案)

选择题1.1.一个C程序的执行是从()A.本程序的main函数开始,到main函数结束。

B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束1.2.以下叙述正确的是()A.在C语言中,main函数必须位于程序的最前面。

B.C语言的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C语言进行编译的过程中,可发现注释中的拼写错误1.3.C语言规定:在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后2.2.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()A.7 B.8 C.6 D.22.3.若有说明语句:char c=‟\66‟ ; 则说明c ()A.包括1个字符B.包括2字符C.包括3字符D.一个不合法的表达式,c的值不确定2.4.设变量a 是int,f是float, i是double,则表达式10+‟a‟+i*f值的数据类型为()A.int B.float C.double D.不确定3.1.已知ch是字符变量,下面不正确的赋值语句是()A.ch=‟a+b‟B.ch=‟\0‟C.ch=‟7‟+‟8‟D.ch=5+93.2.设x、y均为float型变量,则以下不合法的赋值语句是()A.++x B.y=(x%2)/10 C.x*=y+8 D.x=y=04.1.逻辑运算符两侧运算对象的数据类型()A.只能是0或1 B.只能是0或非0整数C.只能是整型或字符型数据D.可以是任何类型数据4.2.判断char型变量ch是否为大写字母的正确表达式是()A.‟A‟<=ch<=‟Z‟B.(ch>=‟A‟)&(ch<=‟Z‟)C.(ch>=‟A‟)&&(ch<=‟Z‟) D.(…A‟<=ch)AND(…Z‟>=ch)4.3.已知x=43,ch=‟A‟,y=0;则表达式(x>=y&&ch<‟B‟&&!y)的值是()A.0 B.语法错C.1 D.‟假‟4.4.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是()If(x>y)z=x;x=y;y=zA.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10 D.x=20,y=30,z=204.5.以下程序的运行结果是()main(){int m=5;if (m++>5) printf(“%d”,m);else printf(“%d”,m--);}A.4 B.5 C.6 D.74.6.以下程序的运行结果是()main(){ int k=4,a=3,b=2,c=1;printf(“%d”,k<a?k:c<b?c:a);}A.4 B.3 C.2 D.15.1.设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.2.语句while(! E);中的表达式!E等价于()A.E= =0 B.E ! = 1 C.E ! = 0 D.E= =15.3.下面程序段的运行结果是()int n=0;while(n++<=2); printf(“%d”,n);A.2 B.3 C.4 D.有语法错5.4.以下程序段()x=-1;do{x=x*x}while(! x)A.死循环B.循环执行二次C.循环执行一次D.有语法错误5.5.以下不是无限循环的语句是()A.for(y=0,x=1;x>y++y;x=i++) i=x; B. for( ; ; x++=i );C.while(1){x++;} D.for(i=10; ;i--)sum+=i5.6.执行语句for(i=1;i++<4; );后变量i的值是()A.3 B.4 C.5 D.不确定6.1.在C语言中,引用数组元素时,其下标的数据类型允许是()A.整型常量B.整型表达式C.A或B D.任何类型6.2.若有说明:int a[][4]={0,0};则下面不正确的叙述是()A. 数组a的每个元素都可得到初值0B. 二维数组a的第一维大小为1C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值06.3.若二维数组a有m列,则在a[i][j]前的元素个数为()A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+16.4.下面程序的运行结果是()main(){ int a[6], i ;For (i=1; i<6; i++){ a[i] = 9 * (I – 2 + 4 * ( i > 3)) % 5;Printf( “%2d”, a[i] );}}A. -4 0 4 0 4B. -4 0 4 0 3C. -4 0 4 4 3D. -4 0 4 4 06.5 下面程序段的运行结果是()char c[5] = {…a‟, …b‟, …\0‟, …c‟, …\0‟};printf(“%s”, c);A. …a‟‟ b‟B. abC. ab cD. ab6.6 下面程序段的运行结果是()char a[7] = “abcdef”;char b[4] = “ABC”;strcpy(a, b);printf(“%c”, a[5]);A. 空格B. \0C. eD. f6.7 有下面程度段char a[3], b[]= “China”;a = b;printf(“%s”, a);则()A.运行后将输出China B.运行后将输出ChC.运行后将输出Chi D.编译出错6.8 下面程序的功能是将字符串s中所有的字符c删除。

C语言试题库(含答案)

C语言试题库(含答案)
C、Print f("%c\n",class[2].name[l]);
D、print f("%c\n",class[2].name[0]);
标准答案:D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:A
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
else if(ch=='/')w=a/b;
if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
A、15
B、10
C、25
D、20
标准答案:A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
#include<stdio.h>
main()
{int i=1;

国家开放大学C语言试题及参考答案

国家开放大学C语言试题及参考答案

1.C语言中的循环类语句有3条,它们是()。

选择一项:A. for,if,whileB. for,while,doC. while,do,switchD. for,break,do正确答案是:for,while,do2.C语言中的跳转类语句有四条,它们是goto,return和()。

A. break,constB. static,continueC. break,continueD. while,extern正确答案是:break,continue3.当不需要函数返回任何值时,则所使用的返回类型为()。

A. IntB. unionC. voidD. Void 正确答案是:void4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。

选择一项:A. 表达式B. 语句C. 函数体D. 参数表正确答案是:参数表5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为A. #cludeB. #constC. #includeD. #defile正确答案是:#include6.在#include预处理命令中,不可以包含()。

A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件正确答案是:目标文件7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。

选择一项:A. 5B. 6C. 4D. 2正确答案是:68.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。

选择一项:A. 5B. 6C. 4D. 2正确答案是:29.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。

A. 6B. 4C. 3D. 2正确答案是:310.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。

C语言试题和答案大全

C语言试题和答案大全

模块1 C语言基础知识1. 选择题(1)C语言中运算对象必须是整型的运算符是(B )。

A. %=B. /C. =D. <=(2)以下所列的C语言常数中,错误的是(B )。

A. 0xFFB. 1.2E0.5C. 2LD. -.67(3)以下选项中能作为用户标识符的是( C )。

A. voidB. 7_9C. _3_D. Dr.Tom(4)以下所列的C语言字符常量中,合法的是( B )。

A. ”B”B. ’\n’C. ’中国’D. d(5)以下选项中正确的定义语句是( D )。

A. int a:b;B. int ,a,b;C. int a+b=6;D. int a=6,b;(6)以下关于long、int、short型数据占用内存大小的叙述中正确的是( D )。

A. 均占4个字节B. 根据数据的大小来决定所占内存的字节数C. 由用户自己定义D. 由C语言编译系统决定(7)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )。

A. -20B. -10C. 0D. 10(8)表达式((a=3*5,a+4),a+5)的值是( A )。

A. 20B. 29C. 60D. 90(9)若有定义语句:int a=3,b=4,c=5;,则以下表达式中值为0的是( D )。

A. a&&bB. a<=bC. a||b+c&&b-cD. !((a<b)&&c||1)(10)设有以下定义:int i;char c;float f;,以下结果为整型的表达式是( B )。

A. i+fB. i*cC. c+fD. i+c+f2. 填空题(1)设有int n=12;,则表达式(n++*1/3)的值是 4 。

(2)定义以下变量:char c;int x;float y;double z;,则表达式c*x+y-z,所求得的数据类型为double 。

(3)设变量a和b已正确赋初值,请写出a/=a+b等价的赋值表达式a=a/(a+b) 。

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。

A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。

A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。

A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。

A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。

C语言试卷(含答案)

一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。

A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。

A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。

inta=5;while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。

C 试题及答案

C++程序设计模拟试卷(一)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 编写C++程序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B解析:(P21)经过编辑、编译、连接和运行四个步骤。

编辑是将C++源程序输入计算机的过程,保存文件名为cpp。

编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为obj,由于没有得到系统分配的绝对地址,还不能直接运行。

连接是将目标文件obj转换为可执行程序的过程,结果为exe。

运行是执行exe,在屏幕上显示结果的过程。

2. 决定C++语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D解析:(P51)函数的返回值类型由定义函数时的指定的数据类型决定的。

A项的表达式的值要转换成函数的定义时的返回类型。

3. 下面叙述不正确的是()A. 派生类一般都用公有派生B. 对基类成员的访问必须是无二义性的C. 赋值兼容规则也适用于多重继承的组合D. 基类的公有成员在派生类中仍然是公有的答案:D解析:(P136)继承方式有三种:公有、私有和保护。

多继承中,多个基类具有同名成员,在它们的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。

赋值兼容规则是指派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。

基类中的公有成员采用私有继承时,在派生类中变成了私有成员,所以D项错误。

4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()A. 类B. 对象C. 函数体D. 数据块答案:A解析:(P39)类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。

c语言试题及答案大全

c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。

B. C语言可以被编译成机器语言执行。

C. C语言的语法和C++完全相同。

D. C语言不支持面向对象的编程。

答案:B. C语言可以被编译成机器语言执行。

2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。

其中,n由用户输入。

答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。

素数是指除了1和自身外,无法被其他整数整除的整数。

答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。

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

C++试题一、选择题:1. 关于类和对象不正确的说法是( C )A) 类是一种类型,它封装了数据和操作B) 对象是类的实例C) 一个类的对象只有一个D) 一个对象必属于某个类2. 在类定义的外部,可以被访问的成员有(C )A) 所有类成员 B) private或protected的类成员C) public的类成员 D) public或private的类成员3.关于this指针的说法错误的是(A )A) this指针必须显示说明 B) 当创建一个对象后,this指针就指向该对象C) 成员函数拥有this指针 D) 静态成员函数不拥有this指针4.声明一个类的对象时,系统自动调用( B )函数,撤消对象时,系统自动调用(C )函数A) 成员函数 B) 构造函数 C) 析构函数 D) 普通函数5. 下面对构造函数的不正确描述是(B )A) 系统可以提供默认的构造函数 B) 构造函数可以有参数,所以可以有返回值C) 构造函数可以重载 D) 构造函数可以设置默认参数6.下面对析构函数的正确描述是(C )A) 系统不能提供默认的析构函数 B) 析构函数必须由用户定义C) 析构函数没有参数 D) 析构函数可以设置默认参数7.对静态成员的不正确描述是(C)A) 静态成员不属于对象,是类的共享成员 B) 静态数据成员要在类外定义和初始化C) 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D) 非静态成员函数也可以操作静态数据成员8.下面选项中,不是类的成员函数为(C )A) 构造函数B) 析构函数 C)友元函数 D) 缺省参数的构造函数方言9.下面对友元的错误描述是(D )A) 关键字friend用于声明友元B) 一个类的成员函数可以是另一个类的友元C) 友元函数访问对象的成员不受访问特性影响D) 友元函数通过this指针访问对象成员10.在C++中,类与类之间的继承关系具有(C )A) 自反性 B) 对称性 C) 传递性 D) 反对称性11.下列关于类的继承描述中,(A )是错误的A)派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B)派生类也是基类,但基类不一定具有派生类的全部属性和方法C)继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D)一个基类可以有多个派生类,一个派生类可以有多个基类12.当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的(A )A) public成员 B) private成员 C) protected成员 D) 友元13.当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的(B )A) public成员 B) private成员 C) protected成员 D) 友元14.不论派生类以何种方法继承基类,都不能使用基类的(B )A) public成员 B) private成员 C) protected成员 D) public成员和protected 成员15.下面描述中,错误的是(BC )(两个答案)A)在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问B)在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问C)在基类定义的public和protected成员在保护继承的派生类中不可见D)在派生类中不可见的成员要变成可访问的,需要进行访问声明16.在C++中,不能被派生类继承的函数是(BC )(两个答案)A) 成员函数 B) 构造函数C) 析构函数 D) 静态成员函数17.在创建派生类对象时,构造函数的执行顺序是(D )A)对象成员构造函数、基类构造函数、派生类本身的构造函数B)派生类本身的构造函数、基类构造函数、对象成员构造函数C)基类构造函数、派生类本身的构造函数、对象成员构造函数D)基类构造函数、对象成员构造函数、派生类本身的构造函数18.当不同的类具有相同的间接基类时,有特点( AD )(两个答案)A)各派生类对象将按继承路线产生自己的基类版本B)派生类对象无法产生自己的基类版本C)为了建立惟一的间接基类版本,在基类定义前加virtual即可D)为了建立惟一的间接基类版本,应该声明虚继承19.在C++中,要实现动态联编,必须使用(D )调用虚函数A) 类名 B) 派生类指针 C) 对象名 D) 基类指针20.下列函数中,可以作为虚函数的是(CD )(两个答案)A) 普通函数 B) 构造函数 C)成员函数 D) 析构函数21.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(B )A) 不同 B) 相同 C) 相容 D) 部分相同22.下面函数原型声明中,(B )声明了fun为虚函数A) void fun()=0; B) virtual void fun()=0;C) virtual void fun(); D) virtual void fun(){};23.若一个类中含有纯虚函数,则该类称为(D )A) 基类 B) 纯基类 C) 派生类 D) 抽象类24.假设A为抽象类,下列声明(B )是正确的A) A fun(int); B) A *p; C) int fun(A); D) A Obj;25.下面描述中,正确的是(BD )(两个答案)A) 虚函数是没有实现的函数 B) 纯虚函数的实现在派生类中C) 抽象类是没有纯虚函数的类 D) 抽象类指针可以指向不同的派生类26.关于函数模板,描述错误的是( A )A)函数模板必须由程序员实例化为可执行的函数模板B)函数模板的实例化由编译器实现C)一个类定义中,只要有一个函数模板,则这个类是类模板D)类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化27.下列的模板说明中,正确提(AD )(两个答案)A)template <typename T1, typename T2>B)template <class T1, T2>C)template <class T1, class T2>D)template <typename T1; typename T2>28.假设有函数模板定义如下:Template <typename T>Max(T a, T b, T &c){ c=a+b; }下列选项正确的是(AD )(两个答案)A)float x,y; float z; Max(x,y,z);B)int x,y,z; Max(x,y,z);C)int x,y; float z; Max(x,y,z);D)float x; int y, z; Max(x,y,z);29.关于类模板,描述错误的是(D )A)一个普通基类不能派生类模板B)类模板从普通类派生,也可以从类模板派生C)根据建立对象时的实际数据类型,编译器把类模板实例化为模板类D)函数的类模板参数须通过构造函数实例化30.建立类模板对象的实例化过程为(C )A) 基类à派生类 B) 构造函数à对象C) 模板类à对象 D) 模板类à模板函数31.在C++中,容器是一种( D )A) 标准类 B) 标准对象 C) 标准函数 D) 标准类模板32.下列类中(BD )(两个答案)不是输入/输出流类iostream的派生类A) fstream B) ofstream C) strstream D)ostrstream33.在下列选项中(BCD )(三个答案)是ostream类的对象A) cin B) cerr C) clog D) cout函数的功能是从输入流中读取(D )A) 一个字符 B) 当前字符C) 一行字符 D) 指定若干个字符35. 下列选项中,用于清除基数格式位置以十六制输出的语句是(B )A) cout<<setf(ios::dec, ios::basefield);B) cout<<setf(ios::hex, ios::basefield);C) cout<<setf(ios::oct, ios::basefield);D) cin>>setf(ios::hex, ios::basefield);36. 下列格式控制符,在中定义的是(AD )(两个答案),在中定义的是(BC )(两个答案)A) endl B) setfill C) setw D) oct37. 下列串流类,在中定义的是(BD )(两个答案),在中定义的是(AC )A) istringstream B) istrstreamC) ostringstream D) ostrstream38. 包含类fstream定义的头文件是(A )A) B) C) D)39. 要求打开文件 d:\,可写入数据,正确的语句是(D )A) ifstream infile(“d:\”, ios::in);B) ifstream infile(“d:\\”, ios::in);C) ofstream infile(“d:\”, ios::out);D) fstream infile(“d:\\”, ios::in| ios::out);40. 假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是(C )A) ((float *) &data, sizeof(float));B) ((float *) &data, data);C) ((char *) &data, sizeof(float));D) ((char *) &data, data);二、简答题:1. 什么是预编译,何时需要预编译:回答:总是使用不经常改动的大型代码体。

程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

2. C和C++有什么不同?从机制上:c是面向过程的(但c也可以编写面向对象的程序);C++是面向对象的,提供了类。

但是,C++编写面向对象的程序比C容易从适用的方向:C适合要求代码体积小的,效率高的场合,如嵌入式;C++适合更上层的,复杂的; llinux核心大部分是c写的,因为它是系统软件,效率要求极高。

从名称上也可以看出,C++比C多了+,说明C++是C的超集;那为什么不叫C+而叫C++呢,是因为C++比C来说扩充的东西太多了,所以就在C后面放上两个+;于是就成了C++C语言是结构化编程语言,C++是面向对象编程语言。

相关文档
最新文档