一.单项选择题(每小题2分,共20分)
1.下列字符列中,合法的长整型常量是:c
    (A) 4.18e3        (B) 0.46793        (C) 4L        (D) 956738
2.设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是:b
(A) 0,0        (B) 0,1        (C) 1,0        (D) 1,1
3.以下运算符中,优先级最低的是:a
    (A) *=            (B) ?::            (C) &&            (D) >=
4.在C++中,char类型数据在内存的存储形式是:d
    (A) 原码        (B) 反码        (C) 补码        (D) ASCII码
5.设变量定义int x = 6, y, z; 执行语句 y = z = x--;  y = x == z; 后变量y的值是:a
(A) 0        (B) 1        (C) 5        (D) 6
6.下面的变量定义中,不正确的是:c
(A) char *p=string        (B) int a[]={AB,C}
(C) float *q=&b, b;            (D) doudle a, *r=&a;
7.设有变量定义 doubleb[5], *p=b; 能正确表示b数组中元素地址的表达式是:a
    (A) b        (B) b+5        (C) *b[0]        (D) &b
8.设有变量定义 int a[]={2,3,5,9,11,13},*pa=a, w; 执行语句w=++(*++pa); 后,变量w和*pa的值是:d
    (A) 3和3    (B) 4和3    (C) 3和4    (D) 4和4
9.语句if(w) ; else ;  中的表达式w的等价表示是:c
(A) w==0        (B) w==1    (C) w!=0    (D) w!=1
10.设有函数说明和变量定义:int max(int x,int y); int(*p)(int,int)=max; int a, b;
以下正确调用函数的代码是:b
(A) *p(a,b)    (B) p(a,b)    (C) *(p(a,b))    (D) p(&a,&b)
二.简答题(每小题2分,共20分)
1.语句 cout<<setfill(*)<<set(10)<<1234; 的输出结果是?
******1234
2.表述问题“x或y中有一个小于z”的C++表达式是? 
x<z||y<z
3.设有变量定义 int y=2; 表达式 y+=y*=2*y+1 的值是?
20
4.设有变量定义 char s[10]=student, *p=s; 则*(p+7)的值?
\0
5.设有变量定义int w[]={1,3,5,7,9}, *p=w; 表达式 *(p+2)**(w+3)的值?
35
6.变量定义 int (*pf)(int); 中pf是?
指向返回 int型,有一个int型参数是指针
7.设有变量定义 int a[3][2]={1,2,3,4,5,6}, (*p)[2]=a; 表达式**(p+2)的值?
5
8.设有变量定义 struct{int x; int y; }d[2]={{1,4},{3,5}};
表达式d[0].y / d[0].x * (d+1)->x 的值?
12
9.设有函数调用语句 Avegare(a,50,ave)的功能是求整型数组前50个元素的平均值ave。对应的函数原型是?
    void Avegare(int [],int, int &);
10.有说明 struct link{ int code; link *next; }; link *head,*p;已知head为单链表的头结点,在head之前插入p结点操作的语句是?
    p->next=head; head=p;
三.分析程序,写输出结果(每小题5分,共20分)

1. 
#include<iostream.h>
int gcd(int m, int n)
{while(m!=n)
  if(m>n)m-=n;else n-=m;
return m;
}
main()
{ cout<<gcd(26,gcd(26,65))<<endl; }
答案:13
2. 
#include<iostream.h>
int sum(int n)
{int c=0;
do{ c+=n%10; n/=10; } while(n);
return c;
}
main()
{cout<<sum(321)<<'\t'<<sum(4567)<<endl;}
答案:6    22

3.  #include<iostream.h>
void s(int *a,int n)
{int i,j,t;
for(i=0;i<n;i++)
{ for( t=a[i],j=i-1; j>=0 && t<a[j]; j-- )
    a[j+1]=a[j];
  a[j+1]=t;
}
}
void main()
{ int i,c[6]={15,5,48,7,3,23};
  s(c,6);
  for(i=0;i<6;i++) cout<<c[i]<<"  ";
  cout<<endl;
}
答案:3  5  7  15  23  48
4.  #include<iostream.h>
#include<string.h>
void r(char *s)
{int len,i;  char c;
len=strlen(s);
for(i=0;i<len/2;i++)
{ c=s[i]; s[i]=s[len-i-1]; s[len-i-1]=c; }
}
void main()
{ char c[]="12345678";
  r(c);
  cout<<c<<endl;
}
答案:87654321
四.根据程序功能填空。(每空2分,共20分)
1.以下程序求方程的全部整数解:
    3x + 2y - 7z = 5    (0≤x,y,z≤100)
#include<iostream.h>
void main()
{ int x,y,z;
  for(x=0;x<=100;x++)
    for(y=0;y<=100;y++)
    { if((z=3*x+2*y-5)%7)
        ______(1)______ continue;
      ______(2)______ z=z/7;    //求出z的值
      if(______(3)______    z>=0&&z<=100    ;) //检查z的范围整型常量合法要求
      cout<<"x="<<x<<"  y="<<y<<"  z="<<z<<endl;
    }
}
2.函数sort()对n个元素的数组a[],用选择法从小到大排序。
void sort(int a[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{ for(k=i, ______(4)______    j=i+1j=i; j<n; j++)
  if(______(5)______    a[j]<a[k])k=j;
  if(______(6)______    k!=i)
  { t=a[k]; a[k]=a[i]; a[i]=t; }
}
}
void main()
{ int x[]={4,7,1,9,7,4,80,34,25,13},y;
  sort(______(7)______    x,10    );
  for(y=0;y<10;y++)
  cout<<x[y]<<"  ";
}
3.函数fun1( )fun2( )fun3( ) 分别用于计算3个整型数x,y,z的最大值、最小值和平均值(函数定义从略)。函数execute ( )则是可以完成这些计算的通用函数。请填空。
int fun1(int,int,int);
int fun2(int,int,int);
int fun3(int,int, int);
void  main ( )
{ _____(8)______ int( *function[3])(); // 对function的声明
int x, y, z, i;
cin>>x>>y>>z;
function[0]=fun1; function[1]=fun2;    function[2]=fun3;
for(i=0; i<3; i++)
    cout<<"fun No."<<i+1<<execute( x , y , z , ____(9)____ function[i]    ) ;
}
float execute( _____(10)______ int a ,int b,int c,(* funp)())

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