![]() ![]() |
|
计算机二级C++程序设计考试卷 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 16:08:08 文章录入:杜斌 责任编辑:杜斌 | |
|
|
一、单项选择题(每题2分,共30分) 1.面向对象程序设计是 与实现的新方法。 A.软件系统设计 B.系统软件设计 C.应用软件设计 D.支撑软件设计 2.面向对象程序设计将数据与 放在一起,作为一个相互依存、不可分割的整体来处理。 A.对数据的操作 B.信息 C.数据隐藏 D.数据抽象 3.关于C++与C语言的关系的描述中, 是错误的。 A.C 语言是C++的一个子集 B.C++与C语言是兼容的 C.C++对C语言进行了一些改进 D.C++与C语言都是面向对象的 4.按照标识符的要求, 符号不能组成标识符。 A.连接符 B.下划线 C.大小写字母 D.数字字符来源:www.examda.com 5.下列符号中, 不可作为分隔符。 A. ,B.: C.?D.; 6.C++语言中基本数据类型是 。 A.整型、浮点型、逻辑型、无值型 B. 整型、字符型、浮点型、无值型 C.整型、浮点型、字符型、逻辑型 D.整型、字符型、逻辑型、无值型 7.在32位机中,int型字宽为 字节。 A.2 B.4 C.6 D.8 8.下列十六进制的整型常数表示中, 是错误的。 A.0xaf B..0X1b C.2fx D.0xAE 9.下列double型常量表示中, 是错误的。 A.E15 B..35 C.3E5 D.3E-5 10.下列字符串常量表示中, 是错误的。 A."\"yes\"or\"no\"" B."\'OK!\'" C."abcd\n" D."ABC" 11.下列变量名中, 是合法的。 A.CHINA B.byte-size; C.double D.A+a 12.设char ch;以下正确的赋值语句是 。 A.ch='123'; B.ch='\xff'; C.ch='\08'; D.ch='\'; 13.在int[5]={1,3,5};中,数组元素a[1]的值是 。 A.0 B.5 C.6 D.2 14.在int b[][3]={{1},{3,2},{4,5,6},{0}};中a[2][2]的值是 。 A.0 B.5 C.6 D.2 15.下列给字符数组进行初始化中, 是正确的。 A.char s1[]="abcd"; B.char s2[3]= "xyz"; C.char s3[][]={'a','x','y'}; D.char s4[2][3]={ "xyz","mnp"}; 16.在int a=3,*p=&a;中,*p的值是 。 A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 17.下列关于指针的运算中, 是非法的。 A.两个指针在一定条件下,可以进行相等或不等的运算 B. 可以用一个空指针赋值给某个指针 C.一个指针可以加上两个整数之差 D.两个指针在一定条件下,可以相加 18.设n=10,j=4,则赋值运算n%=j+1执行后,n的值是 。 A.0 B.3 C.2 D.1 19.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为 。 A.1 B.2 C.3 D.4 20.设int=3;则++n的结果是 ,n的结果是 。 A.2 B.3 C.4 D.5
21.设int=3;则n++的结果是 ,n的结果是 。 A.2 B.3 C.4 D.5 22. 是给对象取一个别名,它引入了对象的同一词。 A.指针 B.引用 C.枚举 D.结构 23.下列关于switch语句的描述中, 是正确的。 A.switch语句中default子句可以没有,也可有一个 B. switch语句中每个语句序列中必须有break语句 C.switch语句中default子句只能放在最后 D.switch语句中case子句后面的表达式可以是整型表达式 24.下列关于条件语句的描述中, 是错误的。 A. if语句中只有一个else子句 B. if语句中可以有多个if else子句 C. if语句中if体内不能是switch语句 D. if语句的if体中可以是循环语句 25.下面有关for循环的正确描述是 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来来源:www.examda.com 26.以下关于循环体的描述中, 是错误的。 A.循环体中可以出现break语句和continue语句 B. 循环体中还可以出现循环语句 C.循环体中不能出现goto语句 D.循环体中可以出现switch语句 27.以下关于do-while语句的叙述正确的是 。 A.不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 28.C++语言中while和do-while循环的主要区别是 。 A.do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 29.两个函数互相共享数据,却互不调用或无法互相传递数据时,可以采用 通信。 A.函数 B.外部变量 C.变量 D.枚举变量 30.下列存储类作用域属于全局的是 。 A.extern B.static C.auto D.register 31.在C++语言中,char型数据在内存中的存储形式是 。 A.ASCII B.补码 C.反码 D.原码 32.以下不正确的语句是(已知int p,q;) 。 A.p*=3; B.p/=q; C.p+=3; D.p&&=q; 33.Sizeof(double)是一个 表达式。 A.整型 B.实型 C.不合法 D.函数调用 34.设n=10,j=4,则赋值运算n%=j+1执行后,n的值是 。 A.0 B.3 C.2 D.1 35.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别 是 。 #include<iostream.h> main() { intx; cin>>x; if(x++>5) cout<<x<<endl; else cout<<x--<<endl; } A.6和3 B.7和5 C.7和4 D.6和4 36.当一个函数无返回值时,函数的类型应定义为 。 A.void B.任意 C.int D.无 37.在函数说明时,下列 项是不必要的。 A.函数的类型 B.函数参数类型和名字 C.函数名字 D.返回值表达式
二、填空题(每空2分,共20分) 1.在C++中有两种类型的注释符,一种是C语言中使用的 /* */,另一 种是 。 2.C++中标识符的大小写字母是 (有、无)区别的。 3.任何有意义的递归总是由 与 组成的。 4.C++的存储类有以下四种, 、寄存器(register)、外部(extern) 和 。 5.指针的两个要素是: , 。但 更重要。 6.C++中用于存储指针的变量称为 。 7.C++中基本数据类型是: 、 、 、 。 8. 是给对象取一个别名,它引入了对象的同一词。 9.计算机语言可分为 、 、 三大类,C++ 语言属于计算机 。 10.C++语言对同一字母的大小写将 (区分/不区分)。 11. 是从一般的概念、原理认识个别的思维方法。 12. 是从个别发现一般概念,去异求同的思维方法。 13.在16位系统中,整型占内存空间 个字节,在32位系统中,整型占 内存 个字节。 14. 是一种用户定义的类型,使用前必须先定义。 15. 是一种用一个名字来标识一组有序且类型相同的数据组成的派生数据类型。 16.整型量在机器内部是用二进制 以定点形式存放的,每个二进制整型量由 和绝对值两部分组成,符号占一位:0表示 ,1表示 。 17.C++与C语言本质差别在于C++语言是 的,而C语言是面向过成的。 18. 是指在程序运行的整个过程中其值 始终保持不变的量。 19.在C++中,数组的元素可以用 表示,也可用 表示。 20. 运算符是用来返回其后的类型说明符或表达式所表示的数在内存中所占有的字节数。 21.C++中默认main函数的返回类型是 ,所以在定义main函数时可以不写返回值类型。 22.使用cin和cout进行输入和输出操作必须包含头文件 ,其语句格式为 。 23.如函数说明为:void display (char c); 则它的返回值是 。 24.C++提供了三种形式的循环结构: , ,和 结构。来源:www.examda.com 三、判断题(每题2分,5题共10分) 1.C++程序设计中,每个语句应以分号结束。( ) 2.C++语言对同一字母的大小写将认为是同一字符。( ) 3.C++语言中,>>、<<分别称为标准输入输出运算符。( ) 4.数据是客观事物属性的抽象。( ) 5.归纳是从一般的概念、原理认识个别的思维方法。( ) 6.演绎是从个别发现一般概念,去异求同的思维方法。( ) 7.字符串常量也简称字符串,它们是扩在一对双引号内的字符序列。( ) 8.do…while结构的重复控制机理是先执行一次循环体,然后再判断还要不要 执行循环体。( ) 9.降低大程序复杂性的有效方法是把它局部化、模块化。( ) 10.数组中的每个元素它们的类型可以是不同的。( ) 11.C++与C语言都是面向对象的。( ) 12.if语句中if体内不能是switch语句。( ) 13.while和do-while循环的主要区别是do-while的循环体至少无条件执行一 次。( ) 14.do-while语句构成的循环必须用break语句才能退出。( ) 15.switch语句中case子句后面的表达式可以是整型表达式。( ) 16.在声明语句中,用const修饰的标识符将指称一个只读的程序实体。( ) 17.运算符与操作数组成的符号序列称为表达式。( ) 18.单目算术运算符是从左向右结合的。( ) 19.赋值号两边的数据类型不一致时,将无法进行赋值运算。( ) 20.C++程序是按主函数中语句的书写顺序执行的。( )
四、程序阅读题:(每小题5分,4题共20分) 1.指出下列函数的运行结果和以及函数实现的功能。 #include "stdafx.h" #include<iostream.h> #include<string.h> main() { char s[ ]="1234567890"; char c; int i,j; for(i=0,j=strlen(s)-1;i<j;i++,j--) { c=s[i]; s[i]=s[j]; s[j]=c; } cout<<s<<endl; } 运行结果: (2分) 功能: (3分) 2.指出下列函数实现的功能。 #include "stdafx.h" #include<iostream.h> main() { int n,d; cout<<"输入一个正整数:"; cin>>n; cout<<"结果为:"; while(n!=0) { d=n%10; cout<<d; n/=10; } cout<<endl; } 此程序的功能是: (5分) 3.指出下列函数的实现的功能。 #include "stdafx.h" #include<iostream.h> main() { int a,b,s; cin>>a>>b; if(a<b) s=a,a=b,b=s; s=a%b; while(s) a=b,b=s,s=a%b; cout<<b<<endl; } 此函数的功能是 : (5分) 4.指出下列函数实现的功能 #include "stdafx.h" #include<iostream.h> main() { int a,b,s=0; cin>>a>>b; s=a; while(s%b!=0) s+=a; cout<<s<<endl; } 此函数的功能是 : (5分) 5.指出下列函数实现的功能。 #include "stdafx.h" #include<iostream.h> main() { int i=1,s=0; while(i<100) { s=s+i; i+=2; } cout<<"s="<<s<<endl; } 此函数的功能是 : (5分)来源:www.examda.com 6.指出下列函数的运行结果。 #include "stdafx.h" #include<iostream.h> main() { int i=13,m; while(i<100) { if(i%13==0) m=i; i+=13; } cout<<"m="<<m<<endl; } 函数的运行结果 (5分) 7.指出下列函数实现的功能。 #include "stdafx.h" #include<iostream.h> main() { int n=1,s=0; for(int i=1;i<=10;i++) { n*=i; s+=n; } cout<<"s="<<s<<endl; } 函数实现的功能是: (5分)
8.指出下列函数实现的功能。 #include "stdafx.h" #include<iostream.h> main() { int a,b,c; for(int i=0;i<1000;i++) { a=i/100; b=(i%100)/10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) cout<<a<<b<<c<<endl; } } 函数实现的功能是: (5分) 9.指出下列函数实现的功能。 #include "stdafx.h" #include<iostream.h> main() { int a,b,c,m; cin>>a>>b>>c; if(a>b) m=a; else m=b; if(m>c) cout<<m<<endl; else { m=c; cout<<m<<endl; } } 函数实现的功能是: (5分) 10.写出下列函数的运行结果。 #include "stdafx.h" #include<iostream.h> main() { int a=3,b=5; a+=b=010; cout<<"a="<<a<<",b="<<b<<endl; } 运行结果为:a= ,b= 。(5分) 11.写出下列函数的运行结果。 #include "stdafx.h" #include<iostream.h> main() { int i=0,sum=0; while(i++<100) sum+=i; cout<<"sum="<<sum<<endl; } 运行结果为:sum= (5分) 12.写出下列函数的运行结果。 #include "stdafx.h" #include<iostream.h> int f(int i){return ++i;} int g(int i){return ++i;} int h(int i){return ++i;} main() { int a=0,b=0,c=0; a+=f(g(a)); b+=g(g(b)); c+=f(h(c)); cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl; } 运行结果为:a= ,b= ,c= (5分) 五、编程题:(共20分) 1.(8分)编写一个程序判定某年是否为闰年。(判定某年是否为闰年的规则是:如果此年号能被400整除,则是闰年;否则,如果此年号能被4整除,而不能被100整除,则是闰年;否则不是闰年。). 2.(8分)在一笼子里,鸡和兔的个数共30只,脚有90只,试编写一个C++程序来计算 鸡和兔各多少只? 3.(8分)换硬币程序:试编写一判定把一元的硬币换成1分、2分、5分的硬币,共有多少种换法的C++程序来。 4 .(12分)试编写一判定成绩并对成绩进行分类的程序:(要求对输入的成绩进行分类,若输入的成绩在90~100之间的为优秀,成绩在80~90之间的为良好,成绩在70~80之间的为中等,成绩在60~70之间的为及格,成绩低于60分的为不及格。) 5.(12分)一元二次方程求解问题:要求通过键盘输入一元二次方程的系数a、b、c讨论如下情况: (1)a=0,不是一元二次方程。 (2)b2-4ac<0,无实根; (3)b2-4ac >0,有两个不等实根; (4)b2-4ac=0,有两个相等实根; 6.(12分)美国的I.J.Matrix博士在十进制数中发现了一组有趣的公式序列: 9×1+2=11 9×12+3=111 9×123+4=1111 …… 9×123456788+9=111111111 试编写一判定对任意基B(B=2,3,……,9),是否存在上述性质的公式的C++程序来。 7.*(选做题:20分)试编写一验证歌德巴赫猜想的C++程序:任一个大于或等于6 的偶数,均能分解成两个素数之和吗? |
|
![]() ![]() |