江苏计算机等级考试vc++冲刺模拟试题1

  • 格式:doc
  • 大小:92.50 KB
  • 文档页数:12

江苏计算机等级考试vc++冲刺模拟试题一、选择题(30分)21.设有定义“float y=5.16347;int x;”,则以下表达式中可以实现将y中的数值保留小数点后2位,将第三位四舍五人的表达式是_____________A.y=(y*100+0.5)/100.0 B.x=y*lOO+O.5,y=x/lOO.0C.y=y*100+0.5/100.0 D.y=(y/100+0.5)*100.022.设有说明语句"int a=6;float b=l,c=l;",则表达式"c%=(b=a/=4),a+=3"的值为_________ A.9 B.1.5 C.1 D.编译有错23.关于字符串,以下说法正确的是__________A.字符串"abc\t\"op\\"中实际的字符个数为8B.字符串是以0结尾的字符数组C.sizeof("abc\O\"op\\")=3D.strlen("abc\O\"op\\")=824.已定义"int a[5]={lOO,200,300,400,500};int *P1=&a[0]",若b=*++P1,则b和*P1的值分别为___。

A.100 200 B.200 200 C)101 101 D.100 10125.下面给出的程序的输出结果不正确的是_________ 。

A.char *sl,s2[]="123";sl=s2;cout<<*sl;,结果:123B. char *sl,s2[]="123";sl=s2;cout<<sl;结果:123C.char *sl="123\0tear";cout<<s1;结果:123D.char s1[]="567",s2[]=”123”;strcpy(sl,s2);cout<<s1;结果:12326.设有变量说明“int a[][2]={{2,5},{4,8}};int *pa,(*pb)[2];"则执行语句"pa=&a[0][0];pb=a;"后,(*(pa+1))与(*(pb+1))的值为:______A.5,4 B.&a[1][0],4 C.5,&a[1][0] D. &a[0][1], &a[1][0]27.下列关于数组的应用中,__________是正确的。

A.int a[5]={1,2,3,4,5);int b[5];b=a;cout<<b:B.int a[5]={1,2,3,4,5);int b[5];strcpy(a,b);cout<<b;C.char a[5]=”1234”;char b[5];strcpy(b,a);cout<<b:D.char a[5]=”1234”;char b[5];b=a;;cout<<b:28.以下程序的输出为#include<iostream.h>int w=3;int:fun(int):void main(void){int w=10;cout<<fun(5)*w<<endl;}int fun(int k){if(k==0) return w;return(fun(k-1)*k);}A.360 B.3600 C.1080 D.120029.下列对派生类的描述中______是不正确的A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类”C.派生类的成员除了它自己的成员以外,还包含它的基类的成员D.派生类中继承的基类的成员的访问权限到派生类保持不变30.关于构造函数与析构函数的下列说法中正确的是:①在类中构造函数与析构函数都有固定的函数名。

②在类中构造函数与析构函数都有相同的作用。

③在类中构造函数与析构函数都可以定义多个。

④在类中构造函数与析构函数都可以有返回值。

⑤在类中构造函数与析构函数的参数都可以有默认值。

A.①和②B.①C.④和⑤D.③和⑤。

二、填空(30分)●基本概念题(8分)1.某类整数a满足的条件为:①a小于等于100 ②a大于等于10,③a的十位数是个位数的2倍或个位数是十位数的2倍,请用一个逻辑表达式____________________________ ____将a表示出来。

2.c++中编译预处理有三种形式,分别是:______,___________,_____________3.面向对象程序设计语言的四个要素是:_____________________、__________________、_______________、_________________。

●阅读程序写结果(10分)4.(1分)若有宏定义:#define A 2#define B(n)(n*(A+2)/n*2)则执行语句“int w=2;w*=2*(A*B(A+2))+3;"后,W的值为__________。

5.(1分)[程序]#include<iostream.h>#define N 5void fun();void main(){ for(int i=1;i<N;i++)fun();cout<<endl}void fun(){static int a;int b=2:cout<<(a+=3,a+b)<<" "}运行结果为:( 10 )6.(3分)[程序]#include<iostream.h>void main(){char s[]="I am a student.You are a student too.";int a[26]={0);char *p=S;’while(*p++!=0){if(*p>='A' && *p<='Z')a[*p-'A']++;else if(*p>='a' && *p<='z') a[*p-'a']++;}for(int i=0;i<26;i++)if(a[i]!=0)cout<<(char)(i+'a')<<":"<<a[i]<<endl;}程序运行后出现的前三行结果为:( 11 )_________________ ( 12 ) _______________ ( 13 ) _______________________ 7.(3分)[程序]#include<iostream.h>class Q{int x,y;static int z;public:Q(int a,int b){x=a+b;y=a*b;z+=x+y;}void show(){cout<<x<<'\t'<<y<<'\t'<<z<<endl;}};int Q::z=10;void main(){Q ql(10,10);q1.show();Q q2(20,20);q2.show();q1.show();}程序运行后输出的第一、二、三行分别是( 14 )__________________ ( 15 ) __________________ ( 16 ) ________________________ 8.(2分)[程序]#include<iostream.h>class AA{int x;public:int y;AA(int a,int b){y=b-a;x=y+y;}int showx(void){return x;)};class BB:public AA{public:BB(int c):AA(C,c+c){);int showy(void){return y;));class CC:public AA{public:CC(int d):AA(d,d+d){);int showy(void){return y;));class DD:public BB,public CC{public:DD(int e):BB(e+50),CC(e-50){};);void main(){DD d(80);cout<<d.BB::showy()<<'\t'<<::showy()<<endl;cout<<d.BB::showx()<<'\t'<<::showx()<<endl;}程序运行结果为:( 17 ) ___________________ (18 ) __________________________●完善程序(12分)9.(4分)编写一个程序采用递归方法逆序放置a数组中的元素。

[方法说明]调用一个invert函数来进行数组逆置。

invert(s,i,j)函数采用递归方法实现,每次将S的第i个元素和第j个元素进行交换,直到i大于或等于j为止。

[程序]#include<iostream.h>( 19 ) //函数invert()的原型说明void main(){int a[10]={0,1,2,3,4,5,6,7,8,9),i;( 20 ) //调用invert()函数for(i=0;i<=9;i++)cout<<a[i]<<",";cout<<endl;void invert(int *s,int i,int j){int t;if(i<j){t=*(s+i);( 21 )*(s+j)=t;( 22 )}}10.(4分)重载运算符“一=”,直接实现在一个字符串中删除某个字符的功能。

例如:字符串“Microsoft Visual C++6.O”与i做“一=”运算后的结果为“Mcrosoft Vsual C++ 6.0”。

[程序]#include<iostream.h>#include<string.h>class string{char*a;public:string(char *s){if(s){( 23 )strcpy(a,s);}elsea=0;}~string(){if(a) delete[ ]a;}string &operator -=(char c);void show(){cout<<a<<endl;}( 24 ) //重载函数的定义{char*p=a;while(*p){if(*p==c){for(char *q=p;*q;q++)( 25 )}else ( 26 )}return *this;{string sl("Microsoft Visual C++6.0")s1.show();char cl='i':sl-=cl:s1.show();}答案:1.D2.A3.B4.D5.C6.B7.A8.D9.C10.B11.C12.B13.B14.C 15.A16.C 17.B 18.B19.B 20.A21.B 22.D 23.A 24.B 25.A26.C 27.C 28.B 29.D 30.B二、填空答案●基本概念题(8分)1.某类整数a满足的条件为:①a小于等于100 ②a大于等于10,③a的十位数是个位数的2倍或个位数是十位数的2倍。