C程序的输出|集7

预测以下程序的输出 问题1

null

C

int main()
{
int i = 0;
while (i <= 4)
{
printf ("%d", i);
if (i > 3)
goto inside_foo;
i++;
}
getchar ();
return 0;
}
void foo()
{
inside_foo:
printf ("PP");
}


输出:编译器错误:已使用但未定义标签“inside_foo”。 说明:标签的范围在函数中。我们无法从其他函数转到标签。

问题2

C

#define a 10
int main()
{
#define a 50
printf ("%d",a);
getchar ();
return 0;
}


产量:50 如果我们重新定义预处理器指令,预处理器不会给出任何错误。不过,它可能会发出警告。预处理器在使用前获取最新的值,并将其替换为a。 现在试试下面的内容

C

#define a 10
int main()
{
printf ("%d ",a);
#define a 50
printf ("%d ",a);
getchar ();
return 0;
}


问题3

C

int main()
{
char str[] = "geeksforgeeks";
char *s1 = str, *s2 = str;
int i;
for (i = 0; i < 7; i++)
{
printf (" %c ", *str);
++s1;
}
for (i = 0; i < 6; i++)
{
printf (" %c ", *s2);
++s2;
}
getchar ();
return 0;
}


输出 g g g g e k s f 解释 s1和s2都被初始化为str。在第一个循环中,str被打印,s1被递增,所以第一个循环只打印g。在第二个循环中,s2被递增,s2被打印,所以第二个循环将打印“g e k s f”

问题4

C

int main()
{
char str[] = "geeksforgeeks";
int i;
for (i=0; str[i]; i++)
printf ("%c%c%c%c", str[i], *(str+i), *(i+str), i[str]);
getchar ();
return 0;
}


输出: gggg 伊伊 伊伊 kkkk ssss ffff 哦 rrrr gggg 伊伊 伊伊 kkkk ssss 说明: 以下是索引数组和字符串的不同方法。 arr[i] *(arr+i) *(i+arr) i[arr] 所以它们都印着相同的字符。

问题5

C

int main()
{
char *p;
printf ("%d %d ", sizeof (*p), sizeof (p));
getchar ();
return 0;
}


输出:依赖于编译器。我的输出是“14” 说明: 上述程序的输出取决于编译器。sizeof(*p)给出字符的大小。如果字符存储为1字节,那么sizeof(*p)给出1。 sizeof(p)给出指针变量的大小。如果指针变量被存储为4字节,那么它将给出4。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享