王鹿其 发表于 2023-11-13 21:01:29

求结果

(1) 阅读下面程序,写出其运行结果。
<1>
#include <iostream.h>
union pw
{
int i ;
char ch[ 2 ] ;
}a;

void main()
{
a.ch[ 0 ] = 13 ;
a.ch[ 1 ] = 0 ;
cout << “size=” << sizeof(a) << ‘\n’ << “a.i=” << a.i ;
}

<2>
#include <iostream.h>
#define LETTER 0

void main()
{
        char str[ 20 ] = ”C Language” , c ;
        int i = 0 ;
        while ( (c = str[ i ] ) != ’\0’ ) {
        i ++ ;
        #if LETTER
                if ( c >= ’a’ && c <= ’z’ )
                        c = c – 32 ;
        #else
                if ( c >= ’A’ && c<= ’Z’ )
                        c = c + 32 ;
#endif
cout << c ;
}
}

isdkz 发表于 2023-11-13 21:01:40

第一个程序中,使用了联合体来存储一个整型和两个字符型变量。在程序中,将字符数组a.ch的第一个元素赋值为13,第二个元素赋值为0。然后输出联合体a的大小和a.i的值。由于联合体中的所有成员共享同一块内存,因此a.i的值将会受到a.ch的影响。

第二个程序中,定义了一个字符数组str和一个字符变量c,然后进行遍历字符数组中的每个字符,并根据条件进行大小写转换输出。在这个程序中,根据定义的宏LETTER的值,决定是将小写字母转换为大写字母还是将大写字母转换为小写字母。

第一个程序的输出结果为:
size=4
a.i=13

第二个程序的输出结果为:
c lANGUAGE

Mike_python小 发表于 2023-11-13 21:02:11

抱歉,你提供的代码中存在一些问题。首先,这些代码使用了过时的C++标准库<iostream.h,正确的应该是#include <iostream>。另外,main函数的返回值应为int类型而不是void类型。此外,程序2中的条件编译指令#if和#else之后没有对应的#endif,这也会导致编译错误。

基于以上问题,我无法给出这两段代码的精确运行结果。如果你能提供修复后的代码,我将很乐意帮助你分析运行结果。
页: [1]
查看完整版本: 求结果