📅  最后修改于: 2023-12-03 15:26:04.875000             🧑  作者: Mango
本文主题是教资会网络(UGC NET CS)2018 年 12 月 – II 的问题 64。这个问题涉及到了程序员们最为熟悉的编程语言——C语言。在本文中,我们将介绍问题 64 的内容,并为程序员提供更多有关 C 语言编程的信息和资源。
给定下面的 C 语言程序,最后一个输出结果是什么?
#include <stdio.h>
int main()
{
int i=-3,j=2;
printf("%d",(i++&&j++));
printf("%d %d",i,j);
return 0;
}
A. -1 2
B. 0 -2
C. 1 -2
D. 0 2
这个问题涉及到 C 语言的运算符优先级和逻辑运算符的短路特性。在 C 语言中,&& 运算符的优先级高于 ++ 运算符。逻辑运算符也有一个短路特性:如果第一个操作数为假,则不执行第二个操作数。
这个程序中,i 和 j 的初始值分别是 -3 和 2。在第一个 printf 语句中,i++&&j++ 表达式先执行&& 运算符,因为&& 运算符的优先级高于 ++ 运算符。在表达式中,i++ 的值是 -3,并且执行后 i 的值变成了 -2。因为第一个操作数是真(非零),所以执行了第二个操作数 j++。在表达式中,j++ 的值是 2,并且执行后 j 的值变成了 3。因此,第一个 printf 语句将输出 1。
在第二个 printf 语句中,i 的值是 -2,j 的值是 3。因此,第二个 printf 语句将输出 -2 3。
因此,程序的最后一个输出结果是:1 -2 3。
答案:A。
以上是问题 64 的相关介绍和解析。如果你是 C 语言程序员或有关心 C 语言,以下是一些有关 C 语言的资源和信息,可能对你有所帮助: