C++试题1

更新时间:2023-10-10 10:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

所属语言:C++ 试卷总分:100分 共有题型:6种

一、填空 共7题 (共计20分)

第1题若a为int类型的变量,表达式a=1,a+5,a++的值为【1】 第2题与! (x>2)等价的表达式是【x<=2或 (x>2)==0】

第4题 x *= y+8等价于【x=x*(y+8)或x=(y+8)*x】

第5题 C++语言具有面向对象方法中要求的三大特性:【封装】性、继承性和【多态】性。 第6题C++语言的参数传值传递机制包括传数值和【传地址】两种。

第7题 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是【0】,a[2][1]得到的初值是【6】.

第1题 若a为double类型的变量,表达式a=1,a+5,a++的值为【1.0 或 1.00 或 1.000 或 1.0000 或 1.00000】

第2题 表达式7.5+1/2+45=【12.5】 第3题 赋值运算符的结合性是由【右】 至【左】

第4题 已知:char *s=\;执行语句\i=0;*s++;i++);\之后,变量i的结果是 【5】 第5题 在C++语言结构化程序中,【函数】是程序的基本组成单元;在C++语言的面向对象设计框架中,【类】是程序的基本组成单元。

第6题 C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【传地址 或 传址】方式。 第7题 字符串\的长度是【9】。

第8题 若有以下定义,则执行表达式y+=y-=m*=y后的y值是【-16】. int m=5,y=2; 第9题 若a是int型变量,则执行a=25/3%3表达式后a的值为【2】. 第10题 若有定义:char c='\\010';则变量c中包含的字符个数为【1】.

第11题 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【f】.

第12题 若有定义:double x[3][5];则x数组中行下标的下限为【0】,列下标的上限为【4】. 第13题 表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为【整型或int】. 第14题 假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c.例如:交换前,a=10,b=20,c=30;交换后,a=20,b=30,c=10.请填空.

【1】; a=b; b=c; 【2】; 答案1 t=a 答案2 c=t 第15题 使用关键字inline说明的函数称为 【内联】 函数, 具有相同函数名但具有不同实现的函数称为 【重载】 函数。

第17题 C++中任何一个数组的名字是一个【常量】指针,该指针的值是该数组第一个数组元素的地址.

第18题 运行时的多态性是通过继承和【虚函数】来实现的.用【virtual】声明的函数称为虚函 数.

第19题 C++中使用关键字【operator】引出重载运算符函数的定义.

第20题 类继承中,缺省的继承方式是【私有派生 或 私有 或 私有继承 或 private】. 二、判断 共10题 (共计10分)

第1题 字符串常量与字符常量的区别仅表现在定义形式上的不同,一个用双撇号,另一个用

单撇号。答案:N

第2题 数组元素可以用下标表示,也可以用指针表示。答案:Y

第3题 在C++语言中,说明函数时要用函数原型,即定义函数时的函数头部分.答案:Y 第4题 如果一个函数在其函数体内直接或间接的调用了自己,该函数称为递归函数。答案:Y

第5题 switch语句中必须有break语句,否则无法退出switch语句。答案:N 第6题 while循环语句的循环体至少执行一次。答案:N

第7题 for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。答案:N 第8题 运算符的优先级和结合性可以确定表达式的计算顺序.答案:Y

第9题 使用关键字class定义的类中默认的访问权限是私有(private)的.答案: 第10题 C语言是C++语言的一个子集。C++语言继承了C语言。答案:Y 三、单项选择 共10题 (共计20分)

第1题若有说明:int a[10];则对a数组元素的正确引用是__D__ A:a[10] B:a[3.5] C:a(5) D:a[10-10]

第2题若整型变量a、b、c、d中的值依次为:1、4、3、2.则条件表达式a

第3题执行语句:for(i=1;i++<4;)后;变量i的值是( C ) A:3 B:4 C:5 D:不定

第4题字符型数据在内存中的存储形式是:【D 】 A:原码 B:补码 C:反码 D:ASCII码

第5题已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为:【C 】 A:1 B:3 C:3.0 D:3.5

第6题如有int a=11;则表达式(a++*1/3)的值是【B 】 A:0 B:3 C:4 D:12

第7题表达式9!=10的值为:【D 】 A:非零值 B:true C:0 D:1

第8题已知:int a[]={1,2,3,4,5,6},*p=a;下面表达式中其值为5的是【D 】 A:p+=3;*(p++); B:p+=5;*p++ ; C:p+=4;*++p; D:p+=4;*p++;

第9题 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符__C__. A:必须为字母 B:必须为下划线 C:必须为字母或下划线 D:可以是字母、数字和下划线中任一种字符

第10题如果变量x,y已经正确定义,下列语句( D )不能正确将x,y的值进行交换: A:x=x+y;y=x-y;x=x-y B:t=x;x=y;y=t C:t=y;y=x;x=t D:x=t;t=y;y=x 四、程序填空 共3题 (共计30分)

第1题功能:在一维数组中统计正数和负数的个数,正数的个数存入 变量C1中,负数的个数存入变量C2中。

-------------------------------------------------------*/ #include void main() {

int a[10]={1,-2,3,4,-5,6,7,8,-9,10}; /***********SPACE***********/ 【?】

/***********SPACE***********/ for (int i=0;【?】;i++) /***********SPACE***********/ if(【?】>0) c1++; else

/***********SPACE***********/ 【?】

cout<

(答案1) int c1=0 , c2=0 ;或 int c1=c2=0; (答案3) a[i] ***** **** *** ** *

-------------------------------------------------------*/ #include void main() {

char c[6];int i,j; for(i=0;i<5;i++) {

/***********SPACE***********/ 【?】;

/***********SPACE***********/ for(【?】)

/***********SPACE***********/ c【?】='*';

/***********SPACE***********/ cout<<【?】;}}

(答案1) c[5-i]='\\0'或c[5-i]=0 (答案2) j=0;j<5-i;j++ (答案3) [j] (答案4) c<<'\\n'或c<

-------------------------------------------------------*/ #include void main() {

/***********SPACE***********/ 【?】 k=i=0;

/***********SPACE***********/ while(【?】)

/***********SPACE***********/ { if(【?】) k+=i;

/***********SPACE***********/ 【?】

第2题功能:打印图形

(答案2) i<10或i<=9

(答案4) c2++;或c2=c2+1;或++c2;或c2+=1;

}

/***********SPACE***********/ cout<<【?】; }

(答案1) int k,i;或int i,k; (答案3)i%2==1或i%2!=0

(答案2) i<10或i<=9或i<=10或i<11 (答案4) i++;或i=i+1;或++i;

(答案5) k

五、程序改错 共1题 (共计10分)

第1题题目:在[100,5000]之间打印出各位数字和为5的所有整数的个数. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main() {

int a,b,c,d,k,i; k=0;

for(i=104;i<=500;i++) {

/***********FOUND***********/ a=i0; b=(i-a*100)/10; c=i-a*100-b*10; }

/***********FOUND***********/ if(a+b+c<>5) k++; for(i=1000;i<=5000;i++) {a=i/1000;

b=(i-a*1000)/100; /***********FOUND***********/ c=(i-A*1000-b*100)/100; d=i-a*1000-b*100-c*10; /***********FOUND***********/ if(a+b+c==5) k++; } cout<

(答案1)a=i/100;

(答案2)if( a + b + c ==5) k++; (答案4)if( a + b + c + d ==5) k++;

(答案3)c=(i-a*1000-b*100)/10;

六、程序设计 共1题 (共计10分)

第1题题目: 打印水仙花数及个数 n (水仙花数是三位数,每 位数字的立方和等于这个数本身示例见图1)。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编

写的若干语句。

------------------------------------------------*/ #include #include #include void writeinfile(int n); void main() {

int m,n=0,a,b,c; /**********Program**********/

/********** End **********/ writeinfile(n); }

void writeinfile(int n) {

fstream myfile;

myfile.open(\ myfile<

答案:for(m=100;m<=999;m++)

{a=m/100; b=m0/10; c=m0;

if(m==a*a*a+b*b*b+c*c*c) {cout<

试卷总分:260分

共有题型:6种

所属语言:C++

判断 共20题 (共计20分)

第1题 使用内联函数是以牺牲增大空间开销为代价的.答案:Y 第2题 可以在类的构造函数中对静态数据成员进行初始化.答案:N 第3题 在C++语言中,定义函数时必须给出函数的返回类型.答案:Y

第4题 预处理命令是在进行编译时首先执行的,然后再进行正常编译。答案:Y 第5题 continue语句只能出现在循环体中.答案:Y

第6题 所谓继承就是利用已有的数据类型定义出新的数据类型。答案:Y 第7题 在一定条件下,两个指针可以进行相加运算.答案:N 第8题 静态函数可声明为虚函数。答案:N

第9题 抽象类不仅可用做派生其他类的基类,也可以用于直接创建对象实例。答案:N 第10题 静态成员函数没有this指针。答案:Y

第11题 开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间.答案:N 第12题 对象成员的表示与结构变量成员表示相同,使用运算符.或一>.答案:Y 第13题 返回值类型、参数个数和参数类型都相同的函数也可以重载.答案:N 第14题 所有的函数在定义它的程序中都是可见的.答案:N

本文来源:https://www.bwwdw.com/article/350f.html

Top