C 指针测试 2

2025 年 3 月 28 日 | 阅读 2 分钟

6) 程序的输出是什么?

  1. Hello
  2. olleH
  3. ello llo lo o
  4. Hello ello llo lo o

正确选项是 (c)。

说明

由于 C 语言是依赖于机器的语言。因此,在其他平台(取决于机器和编译器)上,它将产生不同的输出。

如果我们在 Windows 平台使用 Turbo C 执行和编译此程序,它将输出 "ello llo lo o"。

如果我们在 Linux 平台使用 GCC 编译器执行和编译此程序,它将输出 "Hello ello llo lo o"。

7) 在 DOS(磁盘操作系统)中,far、near 和 huge 指针各占用多少字节?

  1. near=4 far=8 huge=8
  2. near=4 far=4 huge=8
  3. near=2 far=4 huge=4
  4. near=2 far=4 huge=8

正确选项是 (c)。

说明

在 Linux 和 Windows 上,每个指针都是 4 字节长。

在 DOS 中,near、far 和 huge 指针的值是

  • near=2
  • far=4
  • huge=4

8) 程序的输出是什么?

  1. **j=b
  2. j=&b
  3. *j=&b
  4. &j=*b

正确选项是 (c)。

说明

在正常的指针赋值中,当调用函数 (fun()) 时,它接收的是 (j),因此对 j 进行的所有操作都会在 main 函数中的 i 处返回。

函数调用后,

因此,当我们使用语句 *j=&b 时,(b) 的地址被存储在 (i) 中。

9) 以下程序在编译时会报告错误。

  1. true
  2. False

正确选项是 (b)。

说明

在 Linux 上的 GCC 和 DOS 上的 Turbo C 中编译此程序不会报错。

程序的输出是 12.000000。

10) char **ball、char *ball[] 和 char ball[][] 这三个声明是否相同?

  1. true
  2. False

正确选项是 (b)。

说明

不,char **ball、char *ball[] 和 char ball[][] 这三个声明是不同的。

char **ball - 这是一个双重指针

char *ball[] - 这是一个指针数组

char ball[][] - 这是一个二维数组。