📜  C指针测试3

📅  最后修改于: 2020-10-23 05:39:45             🧑  作者: Mango

C指针测试3

11)根据ANSI规范,如何将main()函数与命令行参数一起使用?

  1. int char main(int argc,* argv)
  2. int main(int argc,char * argv [])
  3. int main(){int char(* argv argc); }
  4. 以上都不是

正确的选项是(b)。

说明:

在某些情况下,当从外部控制程序代码时,有必要为C编程提供命令行值以执行特定代码。此命令行值称为命令行参数。命令行参数由main()函数处理。

将main()与命令行参数一起使用是,

int main(int argc,char * argv [])

在这里, argv []指向指针数组,该数组指向传递给程序的每个参数,而argc是传递给参数的数量。

12)下面的C语句有什么错误?

signed int *p=(int*)malloc(sizeof(unsigned int));
  1. 将分配内存,但不能在内存中保存int值
  2. 类型不当
  3. 会抛出运行时错误
  4. 声明没有问题

正确的选项是(d)。

说明:

在给定的C语句中,int和unsigned的大小相同。因此,分配存储器没有问题。

因此,给定的C语句没有错误。

13)为以下程序选择正确的选项。

#include
main()
{
   int *a, **b;   
   printf("%u\n", sizeof(a));
   printf("%u\n", sizeof(b));
}
  1. 第一个printf()打印的值小于第二个
  2. 第二个printf()打印的值小于第一个
  3. 两个printf()都将print相同的值
  4. 代码错误

正确的选项是(c)。

说明:

每种类型的指针变量都占用相同数量的内存,而与任何数据类型无关。

因此,两个printf()语句将print相同的值。

14)以下程序的输出是什么?

#include
void main()
{
   char *a = "C++";
   printf("%s ", a);
   a++;
   printf("%s", a);
}
  1. C++++
  2. C++C++
  3. ++ ++
  4. 编译错误

正确的选项是(a)。

说明:

第一个print语句,即printf(“%s”,a);用于打印存储在指针a中的值。因此,C++被打印在输出中。

在a ++之后,a指向字符串“ ++”。

因此,第二个print语句即printf(“%s”,a);打印输出中的++。

因此,该程序的组合输出为C++ ++。

15)在下面的语句中,“ pf”表示什么?

int (*pf)();
  1. pf是一个指针
  2. pf是一个函数指针
  3. pf是返回int的函数的指针
  4. 以上都不是

正确的选项是(c)。

说明:

在给定的语句中,“ pf”是一个指针,并且包含一些函数引用。

因此,“ pf”表示返回int的函数的指针。