10、 设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=1、d=2、
m=2、n=3,则执行m=(d>c)&&(n=a>b) 后n的值为______。
A、0 B、 1 C、2 D、 3
A
14、能正确表达数学关系|a|<10的表达式是______
A. -10<a<10 B. !(a>-10&&a<10=
C. a>-10&&a<10 D. a>-10|| a<10
C
17、有以下程序段:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[6];则b中值是______。
A、10 B、6
C、8 D、9
A
3. 为了避免嵌套的if-else语句的二义性, else总是与( )组成配对关系。 a.缩排位置相同的if b.在其之前未配对的if c.在其之前未配对的最近的if d.同一行上的if
3 现已定义整型变量:int i=1;
则执行 while(i++<5) ;后,i的值为:
A 1 B 2
C 5 D 6
D
2 以下循环语句的循环次数是:
for(i=1;i==0; )
printf("%d",--i);
A 无限次 B 2次
C 0次 D 一次
c
7 给定条件表达式:m?(i++):(i--),则与下面哪个表达式等价:
A (m==0)?(i++):(i--) B (m==1)?(i++):(i--)
C (m!==0)?(i++):(i--) A (m!==1)?(i++):(i--)
C
8 设x和y均为int变量,则下列语句的功能为:
x+=y;y=x-y;x-=y;
A、无确定结果
B、交换a和b中的值
C、把a和b按从大到小排列
D、把a和b按从小到大排列
b
25以下的输出结果为:
int i=3,j=2,a=6;
a=(--i==j++)?--i:++j;
printf("%d,%d,%d",a,j,i);
A 1,3,1 B 3,2,3
B 4,4,2 D 4,4,1
B
27 以下的输出结果为:
int i=5,j=4,a,b;
a=i++*i++*i++;
b=--j*--j*--j;
printf("%d,%d,%d,%d",i,j,a,b);
A 8,4,150,64 B 7,3,125,1
C 8,1,125,1 D 24,1,336,24
C
8、设正x、y均为整型变量,且x=10, y=3,则以下语句的输出
结果是______ 。
printf("%d,%d,%d\n",++x,++y,x--);
A、10,4,11 B、11,4,11
C、10,4,10 D、9,4,10
C
7、若有定义 int x,*px; 则以下正确的赋值表达式是______。
A.*px=x B. px=x C.*px=&x D. px=*x
A
26 若有: int a[3][4],*p1,*p2[3];则下列赋值语句中那些是错误的:
A p2[0]=a[0]; B p2=a;
C p1=a[0]; C p1=&a[0][0];
B
5. 设"char **s;",以下正确的表达式是( )。 a.s="computer"; b.*s="computer"; c.**s="computer"; d.*s='c';22、以下程序段中,不能正确赋字符串(编译时系统会提示
错误)的是______
A、char s[10];s="abcdefg";
B、char t[]="abcdefg",*s=t;
C、char s[10]="abcdefg";
D、char s[10];strcpy(s,"abcdefg");
A
17. 已知:类A中一个成员函数说明如下: void Set(A&a); 其中,A&的含义是( )。 a.指向类A的指针为a b.将a的地址值赋给变量Set c.a是类A对象的引用,用来作函数Set()的参数 d.变量A与a按位与作为函数Set( )的参数
28运行程序后a 的值为:
#include <iostream.h>
void main()
{ int a,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
cout<<a;
}
A 4 B 1
C 0 D a无定值
32、以下程序的输出结果是:
int x=3;
main( )
{ int i;
for(i=1; i<x; i++) incre( );
printf("%d",++x);}
incre( )
{ static int x=1;
x*=x+1
printf(" %d", x);}
A、3 3 4 B、2 2 3
C、2 6 3 D、2 6 4 d
33.以下程序的输出结果是_______ 。
main()
{int a=0, i;
for(i=1;i<5;i++);
{ switch(i)
{ case 0:
case 3: a+=4;
case 1:
case 2: a+=5;
default: a+=7;}}
printf("%d\n",a);}
A、33 B、15
C、12 D、47
D
34、以下程序的输出结果是
void fun(char *p)
{ char t;
if (*p!='\0')
{t=*p++;
fun(p);
if (t!='\0') printf("%c",t);}
}
main()
{ char *a;
a="1234";
fun(a);}
A、运行出错 B、1324 C、4231 D、4321
D
35.下面的程序,输出结果为 _______。
#include<stdio.h>
main( )
{ int *p, i;
int a[]={2, 6, 8, 7, 9}
p=a; i=2;
printf("%d\t%d\t%d\t%d\n",*(a+i), a[p-a],*p++,*++p, *(&a[i]));
}
A、8 9 6 6 8
B、8 2 2 8 8
C、8 2 6 8 8
D、8 6 8 6 8
a
二、 判断题(每小题2分,20分)
1.? 说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。
3.? 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。
4.? 类的静态数据成员需要在定义每个类的对象时进行初始化。
5.? 基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。
6.? 当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。
7.? 当函数的返回值是数组类型的,传递的是数组第一个元素的地址。
8.? 如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。
9.? 字符串’hello,world”在内存中存放时,占用11个字节的空间。
用new动态申请的内存空间,必须用delete来释放 。
试题答案
一、
题号
1
2
3
4
5
6
7
8
9
10
对/错
对
错
对
错
错
对
错
对
错
对
4、类的友元函数可以直接访问该类的所有成员。
5、派生类的成员函数可以直接访问基类的所有成员。
6、一个类可以作为另一个类的友元类。
7、函数的参数和返回值类型可以是简单数据类型,也可以是指什、引用、数组和类。
9、下面两个语句是等价的:??? char str[ ]="hello,world";? char str[11]="hello,world";
10、用new动态申请的内存是在堆中分配的,而不是在栈中分配的。
一、对错题,共20分,每答对一个,给2分
题号
1
2
3
4
5
6
7
8
9
10
对/错
对
对
错
对
错
对
错
错
错
对
三、 填空题(每小题2分,25分)