📌  相关文章
📜  教资会网络 | UGC NET CS 2017 年 1 月至 2 日 |问题 37(1)

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

UGC NET CS 2017 年 1 月至 2 日

问题 37:

以下是 C 语言程序片段的输出, 请指出代码中的逻辑错误

#include <stdio.h>
int main()
{
    int i;
    char c;
    for(i=0;i<=5;i++);
    {
        c='A'+i;
        printf("%c",c);
    }
    return 0;
}

输出:

GFEDCB
程序逻辑错误

这段程序首先定义了一个整型变量 i 和一个字符型变量 c,然后进入 for 循环,循环条件为 i<=5。但是 for 循环中的循环语句后面有一个分号,因此这个循环语句实际上并不执行任何操作。

在此之后,程序进入了一个普通的代码块中,该代码块中定义了一个新的字符变量 c,然后将 c 的值设为了 'A'+i,最后使用 printf 函数输出 c 的值。

由于 c 的值等于 'A'+i,因为 i 的值在循环外被设置为了 6,所以程序输出的是 GFEDCB

因此,程序的逻辑错误在于 for 循环中的语句没有被执行,而在另一个代码块中定义了另一个字符型的变量 c,其值被错误地设置为了 'A'+i

Markdown 格式的代码片段如下:

# UGC NET CS 2017 年 1 月至 2 日

## 问题 37: 

以下是 C 语言程序片段的输出, 请指出代码中的逻辑错误

```C
#include <stdio.h>
int main()
{
    int i;
    char c;
    for(i=0;i<=5;i++);
    {
        c='A'+i;
        printf("%c",c);
    }
    return 0;
}

输出:

GFEDCB
程序逻辑错误

这段程序首先定义了一个整型变量 i 和一个字符型变量 c,然后进入 for 循环,循环条件为 i<=5。但是 for 循环中的循环语句后面有一个分号,因此这个循环语句实际上并不执行任何操作。

在此之后,程序进入了一个普通的代码块中,该代码块中定义了一个新的字符变量 c,然后将 c 的值设为了 'A'+i,最后使用 printf 函数输出 c 的值。

由于 c 的值等于 'A'+i,因为 i 的值在循环外被设置为了 6,所以程序输出的是 GFEDCB

因此,程序的逻辑错误在于 for 循环中的语句没有被执行,而在另一个代码块中定义了另一个字符型的变量 c,其值被错误地设置为了 'A'+i