您好,欢迎访问三七文档
所属语言:C++试卷总分:100分共有题型:6种一、填空共7题(共计20分)第1题若a为int类型的变量,表达式a=1,a+5,a++的值为【1】第2题与!(x2)等价的表达式是【x=2或(x2)==0】第4题x*=y+8等价于【x=x*(y+8)或x=(y+8)*x】第5题C++语言具有面向对象方法中要求的三大特性:【封装】性、继承性和【多态】性。第6题C++语言的参数传值传递机制包括传数值和【传地址】两种。第7题若有定义:inta[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%10=【12.5】第3题赋值运算符的结合性是由【右】至【左】第4题已知:char*s=hello;执行语句for(inti=0;*s++;i++);之后,变量i的结果是【5】第5题在C++语言结构化程序中,【函数】是程序的基本组成单元;在C++语言的面向对象设计框架中,【类】是程序的基本组成单元。第6题C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【传地址或传址】方式。第7题字符串ab\n\\012\\\的长度是【9】。第8题若有以下定义,则执行表达式y+=y-=m*=y后的y值是【-16】.intm=5,y=2;第9题若a是int型变量,则执行a=25/3%3表达式后a的值为【2】.第10题若有定义:charc='\010';则变量c中包含的字符个数为【1】.第11题已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【f】.第12题若有定义:doublex[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】;答案1t=a答案2c=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题若有说明:inta[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.则条件表达式ab?a:cd?c:d的值为(A)A:1B:2C:3D:4第3题执行语句:for(i=1;i++4;)后;变量i的值是(C)A:3B:4C:5D:不定第4题字符型数据在内存中的存储形式是:【D】A:原码B:补码C:反码D:ASCII码第5题已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为:【C】A:1B:3C:3.0D:3.5第6题如有inta=11;则表达式(a++*1/3)的值是【B】A:0B:3C:4D:12第7题表达式9!=10的值为:【D】A:非零值B:trueC:0D:1第8题已知:inta[]={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-yB:t=x;x=y;y=tC:t=y;y=x;x=tD:x=t;t=y;y=x四、程序填空共3题(共计30分)第1题功能:在一维数组中统计正数和负数的个数,正数的个数存入变量C1中,负数的个数存入变量C2中。-------------------------------------------------------*/#includeiostream.hvoidmain(){inta[10]={1,-2,3,4,-5,6,7,8,-9,10};/***********SPACE***********/【?】/***********SPACE***********/for(inti=0;【?】;i++)/***********SPACE***********/if(【?】0)c1++;else/***********SPACE***********/【?】coutc1c2;}(答案1)intc1=0,c2=0;或intc1=c2=0;(答案2)i10或i=9(答案3)a[i](答案4)c2++;或c2=c2+1;或++c2;或c2+=1;第2题功能:打印图形***************-------------------------------------------------------*/#includeiostream.hvoidmain(){charc[6];inti,j;for(i=0;i5;i++){/***********SPACE***********/【?】;/***********SPACE***********/for(【?】)/***********SPACE***********/c【?】='*';/***********SPACE***********/cout【?】;}}(答案1)c[5-i]='\0'或c[5-i]=0(答案2)j=0;j5-i;j++(答案3)[j](答案4)c'\n'或cendl第3题功能:求1-10之间所有奇数的和。-------------------------------------------------------*/#includeiostream.hvoidmain(){/***********SPACE***********/【?】k=i=0;/***********SPACE***********/while(【?】)/***********SPACE***********/{if(【?】)k+=i;/***********SPACE***********/【?】}/***********SPACE***********/cout【?】;}(答案1)intk,i;或inti,k;(答案2)i10或i=9或i=10或i11(答案3)i%2==1或i%2!=0(答案4)i++;或i=i+1;或++i;(答案5)k五、程序改错共1题(共计10分)第1题题目:在[100,5000]之间打印出各位数字和为5的所有整数的个数.--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/#includeiostream.hvoidmain(){inta,b,c,d,k,i;k=0;for(i=104;i=500;i++){/***********FOUND***********/a=i%100;b=(i-a*100)/10;c=i-a*100-b*10;}/***********FOUND***********/if(a+b+c5)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++;}coutk;}(答案1)a=i/100;(答案2)if(a+b+c==5)k++;(答案3)c=(i-a*1000-b*100)/10;(答案4)if(a+b+c+d==5)k++;六、程序设计共1题(共计10分)第1题题目:打印水仙花数及个数n(水仙花数是三位数,每位数字的立方和等于这个数本身示例见图1)。--------------------------------------------------注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。------------------------------------------------*/#includeiostream.h#includefstream.h#includestdio.hvoidwriteinfile(intn);voidmain(){intm,n=0,a,b,c;/**********Program**********//**********End**********/writeinfile(n);}voidwriteinfile(intn){fstreammyfile;myfile.open(f.txt,ios::out);myfilenendl;myfile.close();}答案:for(m=100;m=999;m++){a=m/100;b=m%100/10;c=m%100%10;if(m==a*a*a+b*b*b+c*c*c){coutm\n;n++;}}所属语言:C++试卷总分:260分共有题型:6种判断共20题(共计20分)第1题使用内联函数是以牺牲增大空间开销为代价的.答案:Y第2题可以在类的构造函数中对静态数据成员进行初始化.答案:N第3题在C++语言中,定义函数时必须给出函数的返回类型.答案:Y第4题预处理命令是在进行编译时首先执行的,然后再进行正常编译。答案:Y第5题continue语句只能出现在循环体中.答案:Y第6题所谓继承就是利用已有的数据类型定义出新的数据类型。答案:Y第7题在一定条件下,两个指针可以进行相加运算
本文标题:C++试题1
链接地址:https://www.777doc.com/doc-4934210 .html