2、函数叫做压缩了的数组,数组是展开的函数
3、如果函数值的类型与返回值类型不一致,则以函数值类型为准
4、数组A[0...5,0...6]的每个元素占5个字节,将其按列优先次序存储在起始位置为1000的内存单元中,则元素A[5.5]的地址是1175
满行是7
最后一个口字符‘\0’
6、字符常量可以参与任何整数运算。
7、设有一个长度为n的顺序表,要在第i(从1开始)个元素之前,(也就是插入元素作为新表的第i个元素),则移动元素个数为n-i+1。
8、一个C的程序,先从具有
__attribute__((constructor))
标记的函数开始,若没有,则先从mian函数开始。
9、关于C语言下列说法正确
a、内存泄漏一般是指程序申请了一块内存,使用完后,没有及时将这块内存释放,从而导致程序占用大量内存。
b、可以通过malloc(size_t)函数调用申请超过该机器物理内存大小的内存块
c、无法通过内存释放函数free(void*)直接将某块已经使用完的物理内存直接还给操作系统、
10、typedef可以用于给非结构体类型设置类型别名。
11、使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度,%-30.4f。
11、对于下列语句正确的描述为:语句2)的含义是指指针变量x不能更改。
const int *x; //1) int * const x; //2)
12、以下程序运行结果是:sum=10。
1 #define ADD (x) x+x 2 void mian() { 3 int m = 1, n = 2, k = 3; 4 int sum = ADD(m + n) * k; 5 printf("sum=%d", sum); 6 }
考察宏定义的展开
13、在C语言中,<u>整型的极小值的绝对值要比相应类型的极大值大,
在一个操作系统中,任何指针变量所占用的大小是一样的,
32位机中,一个指针占4字节。
14、正确的定义数组:
#defin size 10 char str1[size],str2[size+2]; ? int num[‘10‘]; ? int n=5; int a[n][n+2];
15、extern关键字可以引用一个已经定义过的全局变量。
16、实现swap交换宏:
#define swap(a, b) { __typeof(a) __temp = a; a = b; b = __temp; }
17、实现可变参数max int,从若干个传入的参数中返回最大值。
1 int max_int(int a, ...);
1、如何获得a往后的参数列表?(va_list)类型的变量
2、如何定位a后面第一个参数位置? (va_start)函数
3、如何获取下一个可变参数列表中的参数? (va_arg)函数
4、如何结束整个获取可变参数列表的动作? (va_end)函数
18、对于函数指针变量,我们可以在前面加上typedef将变量提升至类型。
19、在c语言中,switch语句只能判断具有唯一整形值对应的变量
。
20、在c语言中,头文件只能放在函数的声明中,而源文件需要放函数的定义,这是工程开发的规范。
21、异或运算^是一类“逆运算”。
22、函数未声明与未定义的报错时期处于同一时期。
23、在C\C++中,只要是以“#”开头的,都是预处理命令。
24、以下代码运行结果是:False、a = 1,b = 0.
int a = 0, b = 0; if ((a++) && (b++)) { // 考察&&短路操作 printf("True\n"); } else { printf("False\n"); } printf("a = %d, b = %d\n", a, b);
25、关于c语言循环读入正确方式有:
while(~scanf(const char *format, ...)) {} ? while(scanf(const char *format, ...) != EOF) {} ? while(scanf(const char *format, ...) != -1) {}
26、对于int行数组来说,静态数组开辟的空间一定是连续的。
27、对于对数函数的使用,我们只要掌握一个对数函数就可以完成任何对数的计算。
原文:https://www.cnblogs.com/zhike/p/14070680.html