C C=12,编译不通过 D 编译不通过,编译不通过
53. 以下说法中正确的是:
A 使用全局变量会占用更多的内存。 B 使用全局变量能加快程序的运行速度。 C 使用全局变量会污染局部变量的名字空间。 D 以上都正确。
54. 下面哪段代码不能将str中的内容从\改为\
A char str[]={'z', 'h', 'e', 0}; \\ nstr[1]= 't'; B char str[4]={ 'z', 'h', 'e',0}\\ n*(str+1) = 't';
C char *str = \D char str[]=\
55. 有如下程序片断,说法正确的是: char *p = \*(p+1) = 'w';
A 语法错误,编译通不过 B 链接通不过 C 执行错误 D 都不对
56. 有以下程序段 int i=0;
while(i=1)i++;
while 循环执行的次数是
A 有语法错,不能执行 B 无限次 C 执行1次 D 一次也不执行
57. mmap将目标文件映射到
A 当前进程的虚拟空间 B 当前进程的物理空间 C 内核的虚拟空间 D 内核的物理空间
58. 以下不能将s所指字符串正确复制到t所指存储空间的是
A while(*t=*s){t++;s++;} B for(i=0;t[i]=s[i];i++);
C do{*t++=*s++;}while(*s); D for(i=0,j=0;t[i++]=s[j++];);
59. 面向对象程序设计的基本思想是通过建立和客观实际相对应的对象,并通过这些对象的组合来创建具体的应用。对象是:
A 数据结构的封装体
B 数据以及在其上的操作的封装体 C 程序功能模块的封装本 D 一组有关事件的封装体
60. 下列C程序运行之后,a1、a2、a3的值为: int a1, a2, a3;
int b = 5, c = 7, d = 0; a1 = !d;
a2 = (b != c); b?c++:d++;a3=d;
A 0,0,0 B 0,1,1 C 1,0,1 D 1,1,0
61. 对于printf(\用法描述错误的是:
A =表示输出3位整型数, 不够3位右对齐
B %9.2f表示输出场宽为11的浮点数,其中小数位为2,整数位为9 C d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位
D %6.9s表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。
62. 请选择下列C语句中关于typedef用法错误的一个
A typedef INT int;
B typedef unsigned char byte; C typedef char str40[41]; D typedef long float double;
63.
多选题
1. 不能把文件内部位置指针移到开始的语句是,FILE *fp,文件总长度为length。
A fseek(fp,0,SEEK_CUR); B fseek(fp,-1*length,SEEK_END) C fseek(fp,0,SEEK_END) D fseek(fp,0,SEEK_SET)
2. 在下列存储器的分配算法中,必须对空闲区的大小进行排序的是
A 最先适应 B 最优适应 C 随机适应 D 最坏适应 E 循环最先适应
3. 下列属于TCP/IP协议族的应用层协议
A SMTP B FTP C SNMP D ICMP
4. 下面正确给字符串变量 char str[8]置空的是
A *str =’\\0’; B *str =0; C *str=’0’; D *str=”0”;
5. 如果已定义了一个C++类CMyList并有以下语句:CmyList list(3)正确的是
A 该语句会创建一个CMyList类的一个对象 B 该语句会创建一个CMyList类的3个对象 C 必须为类CMyList定义一个构造函数 D 必须为类CMyList定义一个析构函数 E 必须定义函数CMyList list(int)
6. 单元测试任务包括
A 模块接口和边界条件测试 B 模块局部数据结构测试 C 模块的各条错误处理通路测试 D 模块中所有独立执行通路测试
7. 下面属于Linux系统进程间通信机制的有
A 管道 B 信号量 C 信号
D 套接字
8. 以下叙述中正确的是
A 对于double类型数组,不可以直接用数组对数组进行整体输入或输出。
B 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息。 C 可以通过赋初值的方式确定数组元素的个数。
D 数组名代表的是数组所占存储区的首地址,其值不可改变。
9. 已知数组D的定义是int D[4][8];,现在需要把这个数组作为实参传递给一个函数进行处理。下列说明中可以作为对应的形参变量说明的有
A int D[4][] B int* s[8] C int(*s)[8] D int D[][8]
10. 以下说法不正确的是
A 定义函数时,形参的类型说明可以放在函数体内 B return后边的值不能为表达式
C 如果函数的类型与返回值表达式的类型不一致,以函数值类型为准 D 如果形参与实参的类型不一致,以实参类型为准
11.下列叙述正确的是
A realloc的功能是改变原有内存区域的大小。 B calloc的功能是动态分配内存并进行清零初始化。 C new与delete对应使用。 D malloc与free对应使用。
12.下列关于C语言中static关键字的描述正确的是
A 全局变量前加static表示该变量的作用域限制变量所在的文件中。 B 局部变量前加static表示该变量的作用域限制在变量所在的函数中。 C static修饰的局部变量分配在内存的全局数据区。 D static只能用来修饰变量,不能用来修饰函数。
13.关于OSI参考模型层次划分原则的描述中,正确的是
A 各节点都有相同的层次。
B 不同节点的同等层具有相同的功能。 C 高层使用底层提供的服务。
D 同一节点内相邻层之间通过对等协议实现通信。
14.下列属于软件单元的是
A 一个或多个函数。 B 一个或多个类。 C 组件。 D 功能模块。
15.使用free的注意事项
A 调用free()释放内存后,不能再去访问被释放的内存空间。内存被释放后,很有可能该指针仍然指向该内存单元,但这块内存已经不再属于原来的应用程序,此时的指针为悬挂指针(可以赋值为NULL)。 B 不能两次释放相同的指针。因为释放内存空间后,该空间就交给了内存分配子程序,再次释放内存空间会导致错误。也不能用free来释放非malloc()、calloc()和realloc()函数创建的指针空间,在编程时,也不要讲指针进行自加操作,使其指向动态分配的内存空间中间的某个位置,然后直接释放,这样也有可能引起错误。
C 在进行C语言程序开发中,malloc/free是配套使用的,即不需要的内存空间都需要释放回收。 D free()的入参可以为空指针。
16. 下列哪些代码特征容易导致堆栈溢出
A 局部变量过大 B 使用递归算法 C 函数嵌套层次过多 D malloc申请内存过多
17. 现有全局变量gCount及函数void fun(void)定义如下 int gCount = 0; void fun(void) {
gCount++; }
假设 gCount++这一句被编译成3条机器指令:(1)从内存读gCount至CPU寄存器x(2)寄存器x的内容增一(3)把寄存器x的内容写至内存中的gCount如果有两个任务调用fun函数,且各调了一次,那么,gCount的值可能变为:
A 0 B 1 C 2 D 3 E 4 F 5
G以上答案均错
18. 若有以下说明,则对strcpy库函数的调用不正确的有-- char *str1 = \,str2[10],*str3 = \,*str4,*str5 \
A strcpy(str2,str1); B strcpy(str3,str1); C strcpy(str4,str1); D strcpy(str5,str1);
19.
1. int(*a)[3][4]; 2. int(*b[3])[4];