0%

03c_01day

==============================
2022-7-14
==============================

面试题
1.在C语言中以 # 开头的操作是预处理的操作
2.预处理阶段会有哪些操作?
    3个操作,文件包含 条件编译 宏定义
3.从.c文件编译成可执行程序需要经历哪些阶段?
源程序   被预处理过的源文件   汇编文件    目标文件
hello.c-------->hello.i----->hello.s----->hello.o--->a.out
        预处理          编译         汇编        链接
4.包含头文件时使用尖括号或者双引号的区别?
    尖括号 : 默认从指定目录中查找头文件(/usr/include),
            如果找不到报错
    双引号 : 默认从当前目录中查找头文件,如果找不到再从
            指定目录中查找头文件(/usr/include),
            如果再找不到报错
5.C语言中有字符串但是没有字符串类型

#include <stdio.h>
/*
main函数(主函数) : 是程序的入口
当执行可执行程序时,从main函数进入,
按照从上往下的顺序逐行逐行执行代码,
最后从main函数退出

在刚开始写程序时,
多问问自己为什么要写这一行代码?
写这一行代码要干什么?
*/
/*
函数的返回值类型 函数名(参数列表)//该处参数指的是形式参数
{
    程序的代码
}

*/
int main(void)
{
    printf("Hello World!");
/*
    调用了printf函数
    printf函数的功能 : 
        可以把双引号引起来的内容打印输出到终端上
    在C语言中双引号引起来的内容叫做字符串
    在C语言中单引号引起来的内容叫做字符
    字符串是由一个一个单一的字符串组成的,
        最后会有一个结束标志尾0('\0')
    --------------------------------
    "0"		这是一个字符串,是由'0' + '\0'组成
    '0'		这是一个字符,ASCII值48
    '\0'	这是一个字符,并且是一个转义字符,是尾0,ASCII是0
    0		这是一个整数0
*/
}

/*
其实字符就是把计算机世界中的数字和日常生活中的符号
进行一一对应
printf函数
    1.转义字符(除了有数字的对应关系以外还有额外的含义)
        字符	ASCII值		额外的含义
        '\0'	0			字符串的结束标志
        '\n'	10			换行符
        '\r'	13			回车符
        '\t'	9			水平制表符
        '\v'	11			垂直制表符
    2.标准化输出格式
        %d	十进制整数(%03d)
        %x	十六进制输出
        %o	八进制输出
        %f	小数输出(%.2f)
        %c	字符输出
        %s	字符串输出
        %p	地址输出
        %%	打印百分号本身
    3.VT控制码
        可以控制打印输出的属性		
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int i = 0, j = 0;

for(i = 30, j = 47; i <= 37 && j >= 40; i++, j--)
{
printf("\33[%dm\33[%dmHello World!\33[0m\n",i ,j);
}

return 0;
}