📌  相关文章
📜  教资会网络 | UGC NET CS 2018 年 12 月 – II |问题 97(1)

📅  最后修改于: 2023-12-03 14:54:51.169000             🧑  作者: Mango

教资会网络 | UGC NET CS 2018 年 12 月 – II |问题 97

这是一个关于 UGC NET CS 2018 年 12 月 – II 的问题,涉及程序员面试中经常被问到的知识点。现在我来给大家介绍一下这个问题。

问题描述

以下程序段的输出是什么?

main() {
   int x = 10, y = 15;
   if (x != 10 && x / 0) 
      printf("Hello");
   else
      printf("Hi");
   if (y != 15 && y / 0)
      printf("GeeksforGeeks");
   else
      printf("GEEK");
}

A. 不输出任何东西。

B. 输出 Hi GEEK。

C. 输出 GEEK。

D. 输出 Hi GeeksforGeeks。

解析

这是一个关于运算符优先级的问题。在 C 语言中,逻辑与运算符 && 的优先级高于除法运算符 /,也就是说,当使用 && 时,如果第一个条件不成立,那么第二个条件不会被执行。因此,在这个程序中,第一个条件 x != 10 显然是成立的,所以第二个条件 x / 0 不会被执行,也就是不会出现除数为零的错误,程序会继续执行输出 Hi

第二个 if 语句也是同理,也不会执行错误的除法运算,输出为 GEEK

代码
## 解析

这是一个关于运算符优先级的问题。在 C 语言中,逻辑与运算符 `&&` 的优先级高于除法运算符 `/`,也就是说,当使用 `&&` 时,如果第一个条件不成立,那么第二个条件不会被执行。因此,在这个程序中,第一个条件 `x != 10` 显然是成立的,所以第二个条件 `x / 0` 不会被执行,也就是不会出现除数为零的错误,程序会继续执行输出 `Hi`。

第二个 if 语句也是同理,也不会执行错误的除法运算,输出为 `GEEK`。

## 代码

```c
main() {
   int x = 10, y = 15;
   if (x != 10 && x / 0) 
      printf("Hello");
   else
      printf("Hi");
   if (y != 15 && y / 0)
      printf("GeeksforGeeks");
   else
      printf("GEEK");
}