C语言经典面试题目(三)

本文介绍了C语言中的预处理指令如#include、#define、条件编译等,以及文件操作函数如fopen、fclose等,还涉及动态内存分配、错误和异常处理方法,以及宏定义的作用和使用场景。

1、C语言中的预处理指令有哪些?请列举几个常用的预处理指令。
#include:用于包含头文件,将指定的头文件内容插入到当前代码位置。例如:#include <stdio.h>。

#define:用于定义宏,将一个标识符或表达式替换为指定的字符串。例如:#define PI 3.1415。

#ifdef / #ifndef:用于条件编译,根据指定的条件编译代码块。#ifdef用于判断指定的宏是否已定义,#ifndef用于判断指定的宏是否未定义。例如:#ifdef DEBUG。

#if / #elif / #else:用于条件编译,根据指定的条件编译代码块。#if用于判断指定的条件是否为真,#elif用于判断前面的条件是否为假且指定的条件是否为真,#else用于在前面的条件都为假时执行代码块。例如:#if X > Y。

#pragma:用于向编译器发出特定的编译指令。例如:#pragma warning(disable:4996)。

2、C语言中如何读取和写入文件?
fopen:用于打开一个文件,并返回一个指向该文件的文件指针。它接受两个参数,第一个参数是文件名(包括路径),第二个参数是打开文件的模式(如"r"表示只读,"w"表示写入,"a"表示追加等)。

fclose:用于关闭一个文件,参数是一个指向要关闭的文件的文件指针。

fgetc / getc:用于从文件中读取一个字符,并返回该字符的ASCII码值。

fgets:用于从文件中读取一行字符串,并将其存储到一个字符数组中。

fputc / putc:用于将一个字符写入文件。

fputs:用于将一个字符串写入文件。

fprintf:用于将格式化的数据写入文件。

3、什么是动态内存分配?请给出一个动态内存分配的例子。
动态内存分配是在程序运行过程中,在需要时分配和释放内存空间的过程。与静态内存分配不同,动态内存分配允许在运行时根据需要动态分配内存,从而灵活地管理内存资源。

在C语言中,可以使用malloc、calloc和realloc等函数来进行动态内存分配。这些函数允许在堆上分配一块指定大小的内存,并返回一个指向该内存的指针。通过动态内存分配,可以在程序中创建动态数组、动态字符串和数据结构等。

#include <stdio.h>
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值