📜  C 程序的输出 | 32套

📅  最后修改于: 2022-05-13 01:56:10.898000             🧑  作者: Mango

C 程序的输出 | 32套

预测以下 C 程序的输出。
1. 以下程序的输出是什么?
输入:

1 3
C
#include
int main()
{
    int a, b;
    if(scanf("%d%d", &a, &b)==2)
        printf("true");
    else
        printf("false");
    return 0;
}


C
#include
int main()
{
    int a=0;
    a=a++ + a++ - a++ + ++a;
    printf("%d\n", a);
    return 0;
}


C
#include
int ar[] = {18, 23, 45, 56, 4, 6, 45};
int main()
{
    int i, x;
    x = (sizeof(ar)/sizeof(ar[0]));
     
    for (i=-1; i<=(x-2); i++)
        printf("%d, ", ar[i+1]);
}


C
#include
int count;
void display();
int main()
{
    count = 1;
    printf("Value of count is %d, ", count);
    display();
}
void display()
{
      extern int count;
      printf("\nValue of count is %d", count);
}


C
#include
int main()
{
    int flag = 0, flag1 = 0, n;
    char s;
    flag = scanf("%d", &n);
    flag1 = scanf("%d", &s);
    printf("Value of flag is %d", flag);
    printf("\nValue of flag is %d", flag1);
    return 0;
}


C
#include
union student
{
    int y[34];
    char var2[7];
    char arr[8];
    char ch[5];
};
int main()
{
    union student st;
    printf("%d", sizeof(union student));
    return 0;
}


输出:

True

说明: Scanf函数返回整数值,因为它的返回类型是整数。在上面的问题中,如果你输入两个整数值,那么它会返回2。表示“如果条件”为真,否则“如果条件”为假。
2. 以下程序的输出是什么?:

C

#include
int main()
{
    int a=0;
    a=a++ + a++ - a++ + ++a;
    printf("%d\n", a);
    return 0;
}

输出:

3

解释:从左到右执行



In the first step 
A = (0) + (a++) - (a++) + (++a)
In the second step 
A = (0) + (1) - (a++) + (++a)
In the third step 
A = (0) + (1)-(2) + (++a)
In the fourth step 
A = (0) + (1)-(2) + (4)
Therefore final value of A is 3.

3. 以下程序的输出是什么?

C

#include
int ar[] = {18, 23, 45, 56, 4, 6, 45};
int main()
{
    int i, x;
    x = (sizeof(ar)/sizeof(ar[0]));
     
    for (i=-1; i<=(x-2); i++)
        printf("%d, ", ar[i+1]);
}

输出:

18, 23, 45, 56, 4, 6, 45,

说明: Sizeof 和相等运算符的结合性是从右到左。 Sizeof运算符返回单个元素的字节大小或容器元素大小。因此,当我们在 sizeof运算符传递整数类型的单个元素时,sizeof(ar[0]) 将返回 4 个字节,因为整数占用 4 个字节,而 sizeof(ar) 将返回数组容器的总大小,即 4*7=28。
4. 以下程序的输出是什么?

C

#include
int count;
void display();
int main()
{
    count = 1;
    printf("Value of count is %d, ", count);
    display();
}
void display()
{
      extern int count;
      printf("\nValue of count is %d", count);
}

输出:

Value of count is 1
Value of count is 1

解释:在这个问题中,count 是程序中的一个全局变量。我们将 1 分配给 main函数的count 变量,它将进一步传递给 display函数。 “Extern int count”是一种在任何函数定义全局变量的方法。
5. 以下程序的输出是什么?
输入:

1
c

C

#include
int main()
{
    int flag = 0, flag1 = 0, n;
    char s;
    flag = scanf("%d", &n);
    flag1 = scanf("%d", &s);
    printf("Value of flag is %d", flag);
    printf("\nValue of flag is %d", flag1);
    return 0;
}

输出:
标志的值为 1
标志的值为 0
说明: Scanf函数将返回整数值。在上面的问题中,如果它被成功执行它会返回 1 否则它会返回 0。因此 flag=scanf(“%d”, &n) 将返回 1 因为它扫描一个整数值而 flag=scanf(“%d” , &s) 将返回 0,因为它无法扫描字符值。如果您不插入任何值,则它将返回 -1。
6. 以下程序的输出是什么?

C

#include
union student
{
    int y[34];
    char var2[7];
    char arr[8];
    char ch[5];
};
int main()
{
    union student st;
    printf("%d", sizeof(union student));
    return 0;
}

输出:

136