关于内存分配和编译过程的MCQ

1. 以下代码的输出是什么?

null

C

#include <stdio.h>
#include <stdlib.h>
int main()
{
union test {
int i;
float f;
char c;
};
union test* t;
t = ( union test*) malloc ( sizeof ( union test));
t->f = 20.60f;
printf ("%f", t->f);
return 0;
}


(a) 垃圾值 (b) 20.60万 (c) 语法错误 (d) 20.60 说明: 联合提供了一种使用相同内存位置的有效方法。Union的所有成员使用相同的内存位置,该位置具有最大空间。 这里使用的是浮点数f,它具有

f = 20.60f = 20.600000

因此,选项(b)是正确的。 2. 编译过程的正确顺序是什么? (a) 汇编程序→ 编译程序→ 预处理器→ 连接 (b) 编译程序→ 汇编程序→ 预处理器→ 连接 (c) 预处理器→ 编译程序→ 汇编程序→ 连接 (d) 汇编程序→ 编译程序→ 连接→ 预处理器 说明: 选项(c)是正确的。 3. 在预处理过程中,代码#include被文件stdio的内容替换。h、 哪个是真的? (a) 在链接代码时#include替换为stdio。H (b) 对 (c) 在执行过程中,代码#include被stdio替换。H (d) 在编辑代码时#include替换为stdio。H 说明: 预处理通过将预处理指令#include替换为文件stdio的内容,扩大并增强了C编程语言。H 备选方案(b)。 4. 为什么要使用fflush()库函数? (a) 刷新所有流和指定流 (b) 只刷新指定的流 (c) 刷新输入/输出缓冲区 (d) 无效的库函数 说明: 按定义 在C中使用fflush(stdin) :fflush()通常仅用于输出流。其目的是清除(或刷新)输出缓冲区,并将缓冲数据移动到控制台(如果是标准输出)或磁盘(如果是文件输出流)。 选项(a)是正确的。 5. 指出错误->

C

#include
#include
#include
int main()
{
char * ptr;
*ptr = ( int *) malloc (30);
strcpy (ptr, "RAM");
printf ("%s", ptr);
free (ptr);
return 0;
}


(a) 错误:在strcpy()语句中。 (b) 错误:in*ptr=(int*)malloc(30); (c) 错误:免费(ptr); (d) 没有错 说明: 赋值从指针生成整数,无需强制转换。选项(b)是正确的。

6. 为什么使用calloc()函数? (a) 分配指定的字节数 (b) 分配指定的字节数并将其初始化为零 (c) 增加或减少指定内存块的大小,并在需要时重新分配 (d) 调用指定的内存块以执行。 说明:

  • malloc():分配指定的字节数。
  • realloc():增加或减少指定内存块的大小。如果需要,重新分配。
  • calloc():分配指定的字节数并将其初始化为零。
  • free():将指定的内存块释放回系统。

因此,选项(b)是正确的。 本文由 尼基塔·蒂瓦里 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享