注:答案可能会有错误,同学们在看的时候要注意自己判断,正好也当复习了哈~~祝大家考试顺利!!
指向类成员函数的指针一、选择题
(1) 已知下列语句中的x和y都是int型变量,其中不正确的语句是 D
A)y+=++x;                    B)++x+=y;      C)y=x++;              D)x++=y;
(2) 若x是一个bool型变量,y是一个值为100的int型变量,则表达式 !x && y>0 的值[  ]。 D
A) 为true                  B) 为false     
C) 与x的值相同  D) 与x的值相反
(3) 执行语句序列
int n;
cin>>n;
switch(n){
case 1:
case 2: cout<<'X';
case 3:
case 4: cout<<'Y'; break;
default:cout<<'Z'; }
时,不可能出现的情况是[  ]。 A
A)显示:X          B)显示:Y
C)显示:Z              D)显示:XY
(4) 执行语句序列
int x;
cin>>x;
if(x>250) cout<<'X';
if(x<250) cout<<'Y';
else cout<<'X';
时,不可能出现的情况是[  ]。 C
A) 显示:X                  B) 显示:Y   
C) 显示:XY          D) 显示:XX
二、填空题
(1) 执行 int x=2,y=7;y-=++x-2;后,x的值是__3__ ,y的值是 __6__ 。
(2) 执行 int x=9,y=-5;y+=x--+2;后,x的值是_8____,y的值是__6____ 。
(3) 与
等价的for语句是:_________。    for(i=0;i<100;i++) cout<<i;
(4) 与i=100;while(i>0) cout<<i--;等价的for语句是: ___________ for(i=100;i>0;i--) cout<<i;
一、选择题
(1) 要定义一个具有5个元素的一维数组,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中不正确的是[  ]。 A
A) int vect[]={30,50,-88};         
B) int vect[]={30,50,-88,0,0};
C) int vect[5]={30,50,-88};       
D) int vect[5]={30,50,-88,0,0};
(2) 已知某应用系统中已经定义了函数fun,其原形是
int fun(char='A');
则下列函数中,可以在同一系统中加以重载的是[  ]。 C
A) int fun();               
B) int fun(char);
C) int fun(char,int);         
D) int fun(char,double=0.0);
(3) 若指针p定义为 const char *p="Luchy!"; 则[  ]。A
A) p所指向的数据不可改变,p在定义时可以不初始化。
B) p所指向的数据不可改变,p在定义时必须初始化。
C) p本身不可改变,p在定义时可以不初始化。
D) p本身不可改变,p在定义时必须初始化。
(4) 已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[  ]。 D
A) p=&A 或 p=A[0][0]             
B) p=A 或 p=&A[0][0]
C) p=&A[0] 或 p=A[0][0]
D) p=A[0] 或 p=&A[0][0]
(5) 已知函数func的原形是
double func(doouble *pd,int &ri);
变量x和y的定义是
double x; int y;
把x和y分别作为第一参数和第二参数来调用函数func,正确的调用语句是[  ]。 B
A) func(x,&y);              B) func(&x,y);
C) func(&x,&y);    D) func(x,y);
(6) 若变量p的定义为 int **p=new int *(new int[5]);,则释放所申请到的动态空间的语句是:_______________。 delete []*p,p
(7) 要使字符串变量str具有初值"Lucky",正确的定义语句是[  ]。C
A) char str[]={'L','u','c','k','y'};         
B) char str[5]={'L','u','c','k','y'};
C) char str []="Lucky";             
D) char str [5]="Lucky";
(8) 已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是[  ]。 A
A) int MAT[][10]                   
B) int MAT[3][]
C) int MAT[10][3]                   
D) int MAT[][]
(9) 若指针p定义为 char * const p="Luchy!"; 则[  ]。 D
A) p所指向的数据不可改变,p在定义时可以不初始化。
B) p所指向的数据不可改变,p在定义时必须初始化。
C) p本身不可改变,p在定义时可以不初始化。
D) p本身不可改变,p在定义时必须初始化。
(10) 在下列表达式中,与下标引用A[i][j]不等效的是[  ]。 A
A) *(A+i+j)            B) *(A[i]+j)            C) *(*(A+i)+j)    D) (*(A+i))[j]
(11) 要使语句p=new double[20];能够正常执行,变量p应定义为[  ]。 D
A) double p[20];                   
B) double p;
C) double (*p)[20];               
D) double *p;
二、填空题
(1) 已知数组A是一个有25个单元的int型数组,下面的语句试图按相反的顺序显示这25个单元中的整数,请补充完整: for(int i=24; i>=0 ; i-- ) cout<<A[i]<<' ';
    for(int i=24;          ;          ) cout<<      <<' ';
(2) 若p是double型指针变量,其指针值为8080,则p-2的指针值为  。 8064
(4)已知数组A定义为 long A[3][10];,P是一个一维数组;要使下标访问A[i][j]与P[i][j]等效,数组
P应定义为:___________。 long *p[]={A[0],A[1],A[2]};
long *p[]={&A[0][0],&A[1][0],&A[2][0]};
(5) 已知函数reverse的原形是:char *reverse(const char *);,pf是指向reverse的指针,则pf的定义是:_____________________。 char *(*pf)(const char *)=reverse;
(6) 若变量p的定义为 int **p=new int *(new int[5]);,则释放所申请到的动态空间的语句应是:_____________________。 delete []*p,p
(7) 已知数组A是一个有25个单元的int型数组,下面的语句序列试图求出这25个整数之和,并将结果显示在屏幕上,请补充完整: for(int i=0; i<25 ; i++ )  s+=A[i];
    int s=0
for(int i=0;          ;          )            ;
    cout<<s;
(9) p1、p2都是字符指针,p1指向字符串"GOOD_MORNING",p2-p1的值为8,则执行cout<<*p2;时显示在屏幕上的是___________________。 N
(10) 已知执行语句
for(int i=0;i<3;i++)
cout<<COLOR[i]<<',';
  后屏幕上显示的是:
  Red,Blue,Yello,
  由此可知,一维数组COLOR的定义是:_____________。
char *COLOR[]={"Red","Blue","Yello"};
    其中[]中可以有3或其他比3大的整数。
(11)已知指针变量pf的定义是:char *(*pf)(int)=ITOS;,则函数ITOS的原形是:___________
__________。 char *ITOS(int);
(12) 若变量p的定义为 int &p=*new int;,则释放所申请到的动态空间的语句应是:__________________________。 delete &p;
三、程序分析题:读懂程序,描述程序的输出结果
(1)  #include<iostream.h>                         
void halfSort(int data[],int leadings,int size)
{      for(int i=0;i<leadings;i++){
        int s=i;
        for(int j=i+1;j<size;j++) if(data[j]<data[s]) s=j;
        if(s!=i){ int x=data[i]; data[i]=data[s]; data[s]=x; } }}
void main()
{      int a[]={21,12,53,74,25,16,7,38};
      halfSort(a,3,8);
      for(int i=0;i<8;i++) cout<<a[i]<<' '; }
程序输出结果: 7 12 16 74 25 53 21 38

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。