首页 > 编程语言 > 详细

C语言基础

时间:2020-12-02 00:12:02      阅读:47      评论:0      收藏:0      [点我收藏+]

1、有多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。链接阶段可以发现被调用的函数未定义。

2、函数叫做压缩了的数组数组展开函数

3、如果函数值的类型与返回值类型不一致,则以函数值类型为准

4、数组A[0...5,0...6]的每个元素占5个字节,将其按列优先次序存储在起始位置为1000的内存单元中,则元素A[5.5]的地址是1175

满行是7

 

5、在C语言中,顺序存储长度为3的字符串,需要占用4个字节。

最后一个口字符‘\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、对于对数函数的使用,我们只要掌握一个对数函数就可以完成任何对数的计算。

28、malloc的空间在堆区,函数调用时栈的形式。

C语言基础

原文:https://www.cnblogs.com/zhike/p/14070680.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!