📜  C 程序的输出 |第 60 组(常数)

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

C 程序的输出 |第 60 组(常数)

先决条件: C 常量和字符串

Q.1 这个程序的输出是什么?

#include
using namespace std;
int main()
{
    const char *s = "";
    char str[] = "Hello";
    s = str;
    while(*s)
        printf("%c", *s++);
  
    return 0;
}

选项
a) 错误
b) 高
c) 你好
d) 赫尔

ans:- c 

解释 :

const char *s = "";

常量变量 s 被声明为指向字符类型数组的指针,并用空字符串初始化。



char str[] = "Hello"; 

变量 str 被声明为字符类型的数组,并使用字符串“Hello”进行初始化。

s = str;

变量 str 的值赋给变量 s。因此 str 包含文本“Hello”。

while(*s)
{ printf("%c", *s++); } 

这里 while 循环被执行,直到变量 s 的值可用并打印变量 s 的每个字符。
因此程序的输出是“Hello”。

Q.2 这个程序的输出是什么?

#include
using namespace std;
int get();
  
int main()
{
    const int x = get();
    printf("%d", x);
    return 0;
}
int get()
{
    return 20;
} 

选项
a) 垃圾值
b) 错误
c) 20
d) 0

ans:- c

解释 :

int get(); 

这是函数get() 的函数原型,它告诉编译器返回一个整数值并且不接受任何参数。

const int x = get(); 

常量变量 x 被声明为整数数据类型并使用值“20”进行初始化。
函数get() 返回值“20”。



Q.3 这个程序的输出是什么?

#include
using namespace std;
int fun(int **ptr);
  
int main()
{
    int i=10;
    const int *ptr = &i;
    fun(&ptr);
    return 0;
}
int fun(int **ptr)
{
    int j = 223;
    int *temp = &j;
    printf("Before changing ptr = %5x\n", *ptr);
    const *ptr = temp;
    printf("After changing ptr = %5x\n", *ptr);
    return 0;
}

选项
a) 我的地址
j的地址
b) 10
223
c) 错误:无法将参数 1 从“const int **”转换为“int **”
d) 垃圾值

ans:- c

解释:这里 ptr 被声明为常量整数指针,i 的地址被分配给它,但在函数fun 中,双指针作为参数传递,因此它不能从 'const int **' 转换为 'int **'。

Q.4 这个程序的输出是什么?

#include
using namespace std;
int main()
{
    const int i=0;
    printf("%d\n", i++);
    return 0;
}
     

选项
一)10
b) 11
c) 无输出
d) 错误:++需要一个值

ans:- d

解释 :

const int i = 0; 

常量变量 'i' 被声明为一个整数,并用值 '0'(零)初始化。

printf("%d\n", i++); 

这里变量'i'增加了1(一)。这将创建一个错误“无法修改常量对象”。
因为,我们不能修改 const 变量。

Q.5 这个程序的输出是什么?

#include
using namespace std;
int main()
{
    const int c = -11;
    const int d = 34;
    printf("%d, %d\n", c, d);
    return 0;
}

选项
a) 错误
b) -11, 34
c) 11, 34
d) 这些都不是

ans:- b

解释 :-

const c = -11;

常量变量“c”被声明并初始化为值“-11”。

const int d = 34;

常量变量 'd' 被声明为一个整数并被初始化为值 '34'。

printf("%d, %d\n", c, d); 

变量 'c' 和 'd' 的值被打印出来。
因此程序的输出是 -11, 34