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