每周总结一些笔试题,方便自己复习用,侵删.
一、选择题
- 以下for循环的执行次数是(4次)。
for(x=0,y=0;(y=123)&&(x<4);x++);
- 以下程序的运行结果是(computer , com)
int main(void)
{
printf("%s , %5.3s\n","computer","computer");
return 0;
}
- 在32位cpu上选择缺省对齐的情况下,有如下结构体定义,则sizeof(struct A)的值为(16)
struct A{
unsigned a : 19;
unsigned b : 11;
unsigned c : 4;
unsigned d : 29;
char index;
};
解:由32位缺省对齐,由于19+11=30<32,19和11算作32位,即4个字节;由于4+29>32,4算作32位,即4个字节;由于29+8>32,29算作32位,即4个字节;由于8<32,8算作32位,即4个字节
所以,总共有16个字节。
-
能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是(A)
A return这二个数
B 形参用数组
C 形参用二个指针
D 用二个全局变量 -
由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。在链接阶段可以发现被调用的函数未定义。
-
下面3段程序代码的效果一样吗? 答:(1)=(2)
int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;
-
下面关于一个类的静态成员描述中,不正确的是(C)
A 静态成员变量可被该类的所有方法访问
B 该类的静态方法只能访问该类的静态成员函数
C 该类的静态数据成员变量的值不可修改
D 子类可以访问父类的静态成员
E 静态成员无多态特性 -
下面叙述错误的是(D)
char acX[]=”abc”;
char acY[]={‘a’,’b’,’c’};
char *szX=”abc”;
char *szY=”abc”;
A acX与acY的内容可以修改
B szX与szY指向同一个地址
C acX占用的内存空间比acY占用的大
D szX的内容修改后,szY的内容也会被更改
-
在(函数代码少、频繁调用)情况下适宜采用 inline 定义内联函数。
-
以下C语言指令,运行结果是(3,9)
int a[5] = {1,3,5,7,9};
int *p = (int *)(&a+1);
printf(“%d,%d”,*(a+1),*(p-1));
- 下列情况中,不会调用拷贝构造函数的是(B)
A 用一个对象去初始化同一个类的另一个新对象时
B 将类的一个对象赋值给该类的另一个对象时
C 函数的形参对象,调用函数进行形参和实参结合时
D 函数的返回值是类的对象,函数执行返回调用时 - 下面程序的输出结果是(10,20,30)
#include<iosteam.h>
void main(){
int n[][3] = {10,20,30,40,50,60};
int (*p)[3];
p=n;
cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl;
}
- 若运行时从键盘上输入9876543210l,则上面程序在gcc编译器下的输出结果是(a=98,b=0,c=0.000000)
int main(){
int a;float b,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\na=%d,b=%d,c=%f\n",a,b,c);
}
- c++语言中,类ClassA的构造函数和析构函数的执行次数分别为(5,1)
ClassA *pclassa=new ClassA[5];
delete pclassa;
- 关于"深拷贝",下列说法正确的是(会拷贝成员数据的值和会拷贝静态分配的成员对象)