- 以下可作为函数fopen中,第一个参数的正确格式是(A.c:\\user\\text.txt).
本来应该写成c:\user\\text.txt但是C语言中将'\'作为转义字符的标志,因此在字符串或字符中要表示'\'时,应当在'\'之前再加一个'\'。 - 已知有宏定义#define SQR(a) 2*a*a,则SQR(3+4)的值为(22). 2*3+4*3+4
- file1.c中,有命令,#include<file2.c>,若file2.c中,有全局静态变量a,则a在file1.c中,有效,不必用extern说明.
- 设有以下宏定义:
#define M 4
#define T(t)((M+1)*t)
,则执行语句:y=2*(M+T(4+1));后,y的值为(50). - 设有宏定义#define MAX(x,y) (x)>(y)?(x):(y),则F=MAX(2*4,3*4)的值为(12). 2*4>3*4
- 预处理命令。包含三个内容:宏定义、文件包含、条件编译。预处理命令有预处理程序解释。程序中的预处理命令是从#开始的,预处理命令既可以出现在函数外部,也可以出现在函数内部。
若在程序的一行中出现多条预处理命令,这些命令都是有效的。(×) - 若有以下程序段:
struct dent
{ int n;
int *m;
};
int a=1,b=2,c=3;
struct dent s[3]={{101,&a},{102,&b},{103,&c}};
*s[0].m+1是指向下一个元素而不是数值加1. - fgets函数将从文件中,最多读入n-1个字符
- 如果需要打开一个已经存在的非空文件"file1"并在原基础上进行修改(不做附加),正确的语句是fp=fopen("file1","r+");
- 若执行fopen函数时发生错误,则函数的返回值是(B). A.0 B.NULL
- 有两个实型变量dog和cat,若要把数据写入磁盘文件中,以下正确的形式是(). fprintf(fp,"%f%f",dog,cat);
- 设有宏定义#define MAX(x,y)(x)>(y)?(x):(y),则F=4*MAX(2,3)的值为(2).
4*2>3成立输出2,不成立输出3 - 用一个#include命令可以同时指定数个被包含文件.(×)
- 用宏可以得到也仅能得到一个返回值.(×)
- 在定义宏时,在宏名与表示参数的括弧之间不应加空格.(√)
- 宏替换在运行程序时进行,占用运行时间.(×)
- 带参数的宏定义如果在代码文件中多次使用,会造成代码长度比使用函数更长。(√)
- 宏名有类型,其参数也有类型.(×)
- 被包含文件与其所在的文件(即用#include命令的源文件),在预处理后,成为同一个文件(√)
- 头文件中,通常包含宏定义、函数原型申明和数据类型定义。(√)
- 文件关闭函数fclose可以关闭打开的文件,返回值类型为void.(×)
- 宏命令#define无论在源文件中何处定义,其有效范围总是整个源文件.(×)
- C语言中,关闭文件函数为fclose(),其括号内可不带任何参数.(×)
- 一个#include 命令只能指定1个被包含的文件.(√)
- 计算机编译系统对宏定义在编译时进行语法检查.(×)
- 被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.(×) 一般我们使用#include指令包含头文件(当然,头文件也是可以有实现),编译器首先通过预编译,将所有使用#include的地方全部使用包含的文件替换,然后在执行编译,所以被包含不会生成单独的目标文件
生成单独的目标文件一般是头文件的实现文件,头文件的实现就是先编译成单独的目标文件,然后通过链接器连接到一起,成为一个完整的可执行文件 - 如果被包含文件中有全局静态变量,它们在用#include命令的源文件中有效.(√)
- 若在程序的一行中出现多条预处理命令,这些命令都是有效的(×)
不能在一行上写多条预处理命令 宏里面的参数没有数据类型,它所执行的只是文本的替换。 宏的名称中不能出现空格,否则空格之后的部分都将被替换。 - 若有宏定义:#define S(a,b) t=a;a=b;b=t;由于变量t没定义,所以此宏定义是错误的.(×)
- 可以用#undef命令终止宏定义的作用域.
- 带参数的宏定义不是进行简单的字符串替换,还要进行参数替换.(√)
- 若有fp=fopen("a1.dat","a+")打开文件语句,这个文件的数据是以_ASCII码_的形式存放在内存中,该文件的使用方式为_____。附加和读写 附加 读和写 读/写 读写
-
有如下代码:
int i;
for (i=3;i<=10;i __+=__ 3) //此空只允许填写运算符
printf("%d ",i);完成:求10以内的所有数中,能被3整除的数(运行结果为3 6 9)。
-
若有以下宏定义:
#define M(a,b) -a/b
则执行语句"printf("%d",M(4+3,2+1));"后输出结果为(_-2_)。 -4+3/2+1(多次验证应该是此结果) -
若有如下宏定义语句:
#define M 3*5
则执行语句"printf("%d",M/M);"后输出结果为__25__。 -
设有宏定义#define MA(x) x*(x-1),且a=1,b=2,则MA(1+a+b)的值为(8).
-
已知有宏定义#define F(a) a*(a+2),则F(4+3)的值为(31).
-
一个#include 命令只能指定1个被包含的文件.(√)
-
用fopen("file","r+");打开的文件"file"可以进行修改.(√)
-
若有如下宏定义语句:
#define M 4/2
则执行语句"printf("%d",M*M);"后输出结果为___2__。 -
若有如下宏定义语句:
#define M 4/3
则执行语句"printf("%d",M*M);"后输出结果为___1___。 -
下面语句的功能是从一文本文件中读入一个数据(数据保存格式为:XXXX)到一整型变量i中,请填空
(fp,"%4d",&i); -
调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 为写入文件而打开需填入__w_.
预处理、文件等知识点1
于 2023-06-16 10:22:44 首次发布