题目1:若整型变量x的初值为6,则计算表达式“x+=x-=x*x”之后,x的值是()
-----> -60
题目2:#include<file.h> 与 #include "file.h"的区别?
-----> 前者首先从Standard Library的路径寻找和引用file.h,而后者首先从当前工作路径搜寻并引用file.h
题目3:设有下面的程序段:char s[]="china";char *p=s,p和s可以随意替换使用
-----> FALSE
解析:举例,memset清空数组的时候可以用memset( , , sizeof(s));但是不能用 sizeof(p);
题目4:若有以下程序
#include<stdio.h> main(){ int c; c=10^5; printf("%d ",c); }
则程序的输出结果是?
-----> 15
解析:^在c语言里面代表异或
题目5:下面3段程序代码的效果一样吗?
int b; (1)const int *a = &b; (2)int const *a = &b; (3)int *const a = &b;
-----> (1)=(2)
解析 :const在*左边为定值,右边为定向,简称左定值,右定向。
题目6:以下可作为函数fopen中第一个参数的正确格式是()
-----> "c:\user\text.txt"
题目7:有如下一段程序:
int f1(float); int f2(char); void f3(float); int (*pf)(float);
以下语句合法的是( )?
-----> int (*p)(float)=&f1;
解析:&f1;==&f1.
题目8:C代码中可能会出现如下类型的结构体定义:
typedef struct holder { struct holder *next; struct holder *prev; char buffer[ 0 ]; }holder;
-----> 方便管理内存缓冲区、减少内存碎片化
解析:char buffer[ 0 ]称为柔性数组,常用来构成缓冲区。比起指针,用空数组有这样的优势:
1.不需要初始化,数组名直接就是所在的偏移 。
2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间。
题目9:下列关于bool,int,float,指针类型的变量a 与“零”的比较语句正确的有?
----->
bool : if(!a)
int : if(a == 0)
指针: if(a == nullptr)
题目10:How many times will this loop execute?(单选)
unsigned char limit = 150; for (unsigned char i = 0; i < 2 * limit; ++i) { //in loop do something }
-----> Infinite loop
解析:unsigned char在32位机的存储范围是0~255,所以无限循环。