C++试题1 Lt
D
所属语言: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%10=【12.5】
第3题赋值运算符的结合性是由【右】至【左】
第4题:char *s="hello";执行语句"for(int i=0;*s++;i++);"之后,变量i的结果是【5】第5题在C++语言结构化程序中,【函数】是程序的根本组成单元;在C++语言的面向对象设计框架中,【类】是程序的根本组成单元。
第6题 C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【传地址或传址】方式。
第7题字符串"ab\n\\012\\\""的长度是【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<b?a:c<d?c:d的值为( A )
A:1 B:2 C:3 D:4
第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 <iostream.h>
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<<c1<<" " <<c2;
}
(答案1) int c1=0 , c2=0 ;或 int c1=c2=0; (答案2) i<10或i<=9
(答案3) a[i] (答案4) c2++;或c2=c2+1;或++c2;或c2+=1; 第2题功能:打印图形
*****
****
***
**
*
-------------------------------------------------------*/
#include <iostream.h>
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<<endl
第3题功能:求1-10之间所有奇数的和。
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
/***********SPACE***********/
【?】
k=i=0;
/***********SPACE***********/
while(【?】)
/
***********SPACE***********/
{ if(【?】)
k+=i;
/***********SPACE***********/
【?】
}
/***********SPACE***********/
cout<<【?】;
}
(答案1) int k,i;或int i,k; (答案2) i<10或i<=9或i<=10或i<11
(答案3)i%2==1或i%2!=0(答案4) i++;或i=i+1;或++i; (答案5) k 五、程序改错共1题〔共计10分〕
第1题题目:在[100,5000]之间打印出各位数字和为5的所有整数的个数.
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include <iostream.h>
void main()
{
int a,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+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<<k;
}
(答案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和其它
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论