1 C语言是一门编译型语言

gcc -E demo.c
gcc -S demo.c
gcc -c demo.c

2 在C/C++中,只要是以“#”开头的,都是预处理命令

#include <stdio.h>    // 文件引入
#define MAXSIZE 10 // 宏定义
#ifdef n // 条件编译

3 %s表示的是字符串的格式

char str[] = "abcd";
printf("%s", str);

4 头文件只能放函数的声明,而源文件需要放函数的定义,这是工程开发的规范

// .h
void func();
// .c
#include <stdio.h>
void func() {
printf("Hello World");
}
int main() {
func();
}

5 对于%2的位运算可以使用&1的位运算去替换

6 设有100个元素,用折半查找法去查找,最大比较次数为7次

int func(int arr[], int length, int keyword) {
int low = 0, high = length - 1, mid;
while (low <= high) {
mid = (high - low)/2 + low;
if (keyword == arr[mid]) {
return mid;
}
else if (keyword >= arr[mid]) {
low = mid + 1;
}
else {
high = mid - 1;
}
}
return -1;
}

7 二进制数字11111111111111111111111111111111(32个1)表示的十进制整数为-1
由符号位可知(0正1负),此为负数,因此该码为补码,将其还原为原码步骤为:

  • 末位减1:11111111111111111111111111111110
  • 数值位取反:100000000000000000000000000000001
  • 所以原码为:-1 * (1 * 2^0) = -1

8 数组的大小可以通过sizeof()获得

sizeof(arr);

9 数组可以分为一维和高维,但是计算机底层都是按照一维数组去存储的

10 typedef可以给非结构体类型设置类型别名

typedef struct LNode {
int val;
struct LNode* next;
}LNode, *LinkList;

11 以下程序的输出结果为()。#define ADD(x) xx main( ) { int a=4,b=6,c=7,d=ADD(a+b)c; printf(“d=%d”,d); } 70

12 在64位操作系统中,任何类型的指针变量都占8字节的空间大小

int n = 1;
int* n_ptr = &n;
printf("%d", sizeof(n_ptr));

13 设a为int型变量,执行下列赋值语句后,a的取值分别是()a=125.534; a=(int)125.521%4; a=5<<2; 125 1 20

14 C语言的默认执行顺序是从主函数开始向下执行的

int main() {
printf("Hello World");
return 0;
}

15 在C语言中要想使用printf函数需要包含下面哪个头文件:#include <stdio.h>

int main() {
printf("Hello World");
return 0;
}

16 若有定义:char a;int b;float c;double d;则表达式“a+b*c-d”的类型为()double

17 printf函数的返回值代表着成功输出字符的个数

int main() {
int n = printf("Hello World");
printf("%d", n);
return 0;
}

18 在64位操作系统中,一个int类型变量占4字节的空间大小

19 任何一个字符都对应着一个整型值

char str = 'a';
printf("%d", str);

20 字符串“hello”要大于字符串“hallo”

21 C语言的程序流程结构分为顺序结构、分支结构和循环结构

22 要想接收int arr[2] [3]这个数组,可以采用下面哪种形式:int (*p)[3];

23 2/3的值为0

24 递归函数就是函数自己调用自己的过程

25 C语言的可移植性要远远高于汇编语言

26 递归函数就是函数内部自己调用自己的过程

27 一个结构体 struct Node {int a; char b, int c; char d;}; 定义的一个变量所占大小为:16字节

struct Node {
int a;
char b;
int c;
char d;
};
Node n;
sizeof(n);

28 异或运算^是一类“逆运算”

补充一点其他的东西

Unix系统在C之前
IDE:Intergrated Development Environment
Linux和MacOS是基于Unix系统