计算机应用基础练习题.docx
- 文档编号:14415521
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:30
- 大小:31.98KB
计算机应用基础练习题.docx
《计算机应用基础练习题.docx》由会员分享,可在线阅读,更多相关《计算机应用基础练习题.docx(30页珍藏版)》请在冰点文库上搜索。
计算机应用基础练习题
1C++基础练习题
1.1填空题
1.在一个C++源程序中,多行注释两侧的分界符为【/*】和【*/】,但行注释的开始标识为【//】。
2.在C++程序中,输入操作是由【cin】完成,输出操作是【cout】完成。
3.在C语言中,程序运行期间,其值不能被改变的量叫【常量】。
4.表达式25/3%3的计算结果为【2】。
5.C++语言中的标示符只能由三种字符组成,它们为【数字】、【字母】、【下划线】。
6.符号‘&’是【取地址】运算符,&a是指【a的地址】。
7.当a=3,b=2,c=1时,表达式a>b>c的值是【0】。
8.设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式【x 9.在C++程序中包含一个头文件或程序文件的预编译命令为___#include__。 10.当使用__void___保留字作为函数类型时,该函数不返回任何值。 11.从一条函数原型语句“intfun1(void);”可知,该函数的返回类型为___int___,该函数带有__0__个参数。 12.在C++中存储字符串“abcdef”至少需要_____7___个字节。 13.对于无返回值函数,定义函数时要用___void__修饰函数类型。 14.执行___deletep_____操作将释放由p所指向的动态分配的数据空间。 15.执行__delete[]p______操作将释放由p所指向的动态分配的数组空间。 16.已知语句“cout< ”,则语句“cout<<*p;”输出的是___H___。 17.每个对象都是所属类的一个____实例__。 18.对象将其大部分实现细节隐藏起来,这种机制称为__封装__。 19.基类和派生类的关系称为__继承__。 20.复杂对象可以由简单对象构成,这种现象称为___聚合__。 21.对于类中定义的任何成员,其隐含访问权限为__private__。 22.一个类的__构造__函数实现对该类对象的初始化功能。 23.以下程序的功能是计算一元二次方程( )的根,补足程序中空缺的语句。 #include #include intmain() { doublea,b,c,_abs,_derta,_doublea,part1,part2; std: : cout<<"entera,b,c: "; std: : cin>>a>>b>>c; if(【a==0】) if(【b==0】) std: : cout<<"noanswerduetoinputerror\n"; else std: : cout<<"thesinglerootis%f\n",-c/b; else {_derta=b*b-4*a*c; _doublea=2*a; part1=-b/(2*a); _abs=abs(_derta); part2=sqrt(_abs)/_doublea; if(【_derta<0】) std: : cout<<"complexroot\nrealpart="< <<"imagepart="< : endl; else std: : cout<<"realroots\nroot1="< <<"root2="< : endl; } } 24.斐波纳契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即0,1,1,2,3,5,8,13,21……下面的程序求斐波纳契数列的前20个数并输出,每行输出5个数,请填空。 #include intmain() { intf,f1,f2,i; std: : cout<<“Fibonacciseries: \n”; f1=0;f2=1; std: : cout< for(i=3;i<=20;【i++】) { f=【f1+f2】; std: : cout<<“,”< if(【i%5==0】) std: : cout< : endl; f1=f2; f2=【f】; } std: : cout< : endl; return0; } 25.下面的类定义了复制构造函数,请完成该类的定义。 classCExam { private: intx,y; public: CExam(inta=0,intb=0) {x=a;y=b;} CExam(constCExam&r); }; 【CExam: : CExam】(constCExam&r) { x=【r.x】; 【y=y.x】; } 26.下面的程序通过成员函数实现计算两点间距离的功能,完成下面的程序 #include #include classPoint { private: doublex,y; public: 【double】getDistance(constPoint&a)const; Point(doublea,doubleb) {x=a;y=b;} }; 【doublePoint: : 】getDistance(constPoint&a)const { doubledx,dy; dx=【x-a.x】; dy=【y-a.y】; returnsqrt(dx*dx+dy*dy); } intmain() { Pointp1(1,3),p2(4,8); std: : cout< return0; } 1.2选择题 1.C程序的执行是从【A】。 A)程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序的最后一个函数结束 D)本程序的第一个函数开始,到本程序的main函数结束 2.1.C++源程序文件的缺省扩展名为(A)。 A.cppB.exeC.objD.lik 3.存储以下数据,占用存储字节最多的是(C)。 A.0B.‘0’C.“0”D.‘0’(空格) 4.设x和y均为bool量,则x&&y为真的条件是(A)。 A.它们均为真B.其中一个为真 C.它们均为假D.其中一个为假 5.字符串“a+b=12\n”的长度为(B)。 A.6B.7 C.8D.9 6.【A】是构成C语言程序的基本单位。 A)函数B)过程C)子程序D)子例程 7.C语言规定,必须用【C】作为主函数名。 A)functionB)includeC)mainD)stdio 8.设有intx=11;则表达式(x+1/3)的值为【C】。 A)3B)4C)11D)12 9.下列字符串是合法标识符的是【A】。 A)INTB)5_studentC)longD)! DF 10.在C++语言中,回车换行符是【A】。 A)‘\n’B)‘\t’C)‘\v’D)‘\b’ 11.C语言中,运算对象必须是整型数的运算符是【B】。 A)/B)%C)%和/D)* 12.表达式10! =8的值为【D】。 A)trueB)非零值C)0D)1 13.能正确表示a和b同时为正或同时为负的表达式是【D】。 A)(a>=0‖b>=0)&&(a<0‖b<0) B)(a>=0&&b>=0)&&(a<0&&b<0) C)(a+b>0)&&(a+b<=0) D)a*b>0 14.若要求在if语句后一对圆括号中表示a不等于0的关系,能正确表达这一关系的是【D】。 A)a<>0B)! aC)a=0D)a 15.判断字符型变量ch为大写字母的表达式是【C】。 A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’) C)(ch>=‘A’)&&(ch<=‘Z’)D)(ch>=‘A’)AND(ch<=‘Z’) 16.在C语言的循环语句for,while,dowhile中,用于直接中断内层循环的语句是【C】。 A)switchB)continueC)breakD)if 17.若k为整型变量,则以下for循环的执行次数为【D】。 for(k=2;k==0;)printf(“%d”,k--); A)无限次B)0次C)1次D)2次 18.在下面的一维数组定义中,哪一个有语法错误。 (C) A.inta[]={1,2,3};B.inta[10]={0}; C.inta[];D.inta[5]; 19.27.若用数组名作为函数调用的实参,传递给形参的是(A)。 A.数组的首地址B.数组中第一个元素的值 C.数组全部元素的值D.数组元素的个数 20.31.用new运算符创建一个含10个元素的一维整型数组的正确语句是(C)。 A.int*p=newa[10];B.int*p=newfloat[10]; C.int*p=newint[10];D.int*p=newint[10]={1,2,3,4,5} 21.33.假定变量m定义为“intm=7;”,则定义指针变量p的正确语句为(B)。 A.intp=&m;B.int*p=&m; C.int&p=*m;D.int*p=m; 22.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(C)。 A.1B.4 C.sizeof(double)D.sizeof(p) 23.假定p指向的字符串为“string”,则cout< A.stringB.ring C.ingD.i 24.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(D)。 A.intrx=x;B.intrx=&x; C.int*rx=&x;D.int&rx=x; 25.在一个类的定义中,包含有(C)成员的定义。 A.数据B.函数C.数据和函数D.数据或函数 26.在关键字public后面定义的成员为类的(B)成员。 A.私有B.公有C.保护D.任何 27.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。 A.x(a)B.x[a]C.x->aD.x.a 28.类中定义的成员默认为(B)访问属性。 A.publicB.privateC.protectedD.friend 29.对于一个类的构造函数,其函数名与类名(A)。 A.完全相同B.基本相同C.不相同D.无关系 30.类的构造函数是在定义该类的一个(C)时被自动调用执行的。 A.成员函数B.数据成员C.对象D.友元函数 31.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的(D)。 A.无参构造函数B.带参构造函数 C.赋值重载函数D.拷贝构造函数 32.对于任一个类,用户所能定义的析构函数的个数至多为(B)。 A.0B.1C.2D.任意个 33.类的构造函数可以带有(D)个参数。 A.0B.1C.2D.任意 34.类的析构函数可以带有(A)个参数。 A.0B.1C.2D.任意 35.当一个类对象离开它的作用域时,系统自动调用该类的(D)。 A.无参构造函数B.带参构造函数 C.拷贝构造函数D.析构函数 36.假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态内存,应使用语句(D)。 A.deletep;B.delete*p; C.delete&p;D.delete[]p; 37.假定一条定义语句为“inta[10],x,*pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(D)。 A.x=pa[3];B.x=*(a+3); C.x=a[3];D.x=*pa+3; 38.C++中函数返回值的类型是由(B)决定的。 A.return语句中表达式的类型B.该函数定义时的类型 C.调用函数时的调用语句D.系统根据结果 39.以下叙述中不正确的是(C)。 A.在一个函数中,可以有多条return语句 B.函数的定义不能嵌套,但函数的调用可以嵌套 C.函数必须有返回值 D.不同的函数中可以使用相同名字的变量 40.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(C)。 A.2B.4 C.6D.8 1.3简答题 1.定义形式如下的类,C++编译器自动为该类产生的四个缺省函数是什么? 写出其原型。 classMyClass { public: voidSetX(int); private: intx; }; 答: 无参构造函数,拷贝构造函数,析构函数,赋值运算符函数。 MyClass(); MyClass(constMyClass&); ~MyClass(); MyClass&operator==(constMyClass&); 2.函数声明和函数定义有什么区别? 答: 1)函数声明是函数的原型,强调函数如何被使用,不包含函数的实现代码; 2)函数定义给出函数的实现代码。 3.拷贝构造函数在哪几种情况下会被调用? 答: 1.当类的一个对象去初始化该类的另一个对象时; 2.如果函数的形参是类的对象,调用函数进行形参和实参结合时; 3.如果函数的返回值是类对象,函数调用完成返回时。 4.构造函数与普通成员函数相比有什么不同? 答: 构造函数是类的一种特殊成员函数,一般情况下,它是专门用来初始化对象成员变量的。 构造函数的名字必须与类名相同,它不具有任何返回类型。 构造函数在创建对象时由系统自动调用。 5.什么是常对象? 答: 常对象是指在任何场合都不能对其成员的值进行修改的对象。 6.构造函数和析构函数是否可以被重载,为什么? 答: 构造函数可以被重载,析构函数不可以被重载。 因为构造函数可以带多个参数,而析构函数不能带参数。 7.分析正误: 抽象类不会产生实例,所以不需要有构造函数。 答: 错。 抽象类中可以包含数据成员,派生类对象初始化时需要通过抽象基类的构造函数完成对其数据成员的初始化。 8.delete与delete[]区别: delete只会调用一次析构函数,而delete[]会调用动态分配的多个对象的析构函数。 9.一个类的构造函数和析构函数什么时候被调用,是否需要手工调用? 答: 构造函数在创建类对象的时候被自动调用,析构函数在类对象生命期结束时。 构造函数和析构函不需要手工调用,由系统自动调用。 10.请说出类中private,protect,public三种访问限制类型的区别 答案: private是私有类型,只有本类中的成员函数才能访问;protect是保护型的,本类和子类成员函数可以访问;public是公有类型,本类和子类成员函数可以访问,类外部通过对象可以间接访问。 11.写出下面程序的运行结果。 #include intmain() { inti,j,m,n; i=8; j=10; m=++i; n=j++; std: : cout< : endl; return0; } 参考答案: 9,11,9,10 12.计算下面表达式的结果。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 参考答案: (1)2.5 (2)3.5 13.写出程序运行的结果。 #include intmian() { inti; intsum=0; for(i=1;i<=10;++i) { if(i%2==0) sum+=i; } std: : cout<<”sum=”< : endl; return0; } 参考答案: sum=30 14.写出程序运行的结果,假设通过键盘输入3和5。 #include intmain() { inta,b,s; std: : cout<<"PleaseEnteraandb: "; std: : cin>>a>>b; s=a; if(a>b) s=a%b; else s=b%a; std: : cout<<"result: "< : endl; return0; } 参考答案: result: 2 15.写出程序运行的结果。 #include intmain() { chari; for(i='A';i<'I';i++) std: : cout< std: : cout< : endl; return0; } 参考答案: Abcdefgh 16.写出程序运行的结果。 #include intmain() { inti,j; for(i=0;i<5;i++){ for(j=i;j<5;j++)cout<<’*’; std: : cout< : endl; } return0; } 参考答案: ***** **** *** ** * 17.写出程序运行的结果。 #include usingnamespacestd; classTest { public: Test(){cout<<“Defaultconstructor.”< Test(constTest&t) {cout<<“Copyconstructor! ”< } voidfun(Testp){} intmain() { Testa; fun(a); return0; } 参考答案: DefaultConstructor. CopyConstructor. 18.写出程序运行的结果。 #include intmain() { intnumber=267; intdigit,tens,hundreds; digit=number%10; tens=(number/10)%10; hundreds=(number/100)%10; std: : cout<<"Result: "< : endl; return0; } 参考答案: Result: 2,6,7 19.写出程序运行的结果。 #include doublefunc(doublepData[],intsize); intmain() { doublearray[]={2.2,3.8,6,5.4}; std: : cout<<"Result: "< : endl; std: : cout<<"Result: "< : endl; return0; } doublefunc(doublepData[],intsize) { doubleresult=0; inti; for(i=0;i { result+=pData[i]; } result/=size; returnresult; } 参考答案: Result: 4.35 Result: 4 20.写出程序运行的结果。 #include intmain() { charword[50]; std: : cout<<"Enterastring: "; std: : cin>>word; intpos=0; for(inti=0;word[i]! ='\0';++i) { if(word[i]<'0'||word[i]>'9') { word[pos]=word[i]; ++pos; } } word[pos]='\0'; std: : cout<<"Pos: "< : endl; std: : cout<<"result: "< : endl; return0; } 参考答案: Enterastring: Pos: 6 result: Hello_ 21.写出程序运行的结果。 #include intfun(intinterval) { intsum=0,i=0; for(i=0;i<100;i+=interval) sum+=i; returnsum; } intmain() { std: : cout<<"Result: "< (2)< : endl; return0; } Result: 2450 1.4编程题 1.输入一个华氏温度,要求输出摄氏温度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 应用 基础 练习题