求结果
(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 ;
}
} 第一个程序中,使用了联合体来存储一个整型和两个字符型变量。在程序中,将字符数组a.ch的第一个元素赋值为13,第二个元素赋值为0。然后输出联合体a的大小和a.i的值。由于联合体中的所有成员共享同一块内存,因此a.i的值将会受到a.ch的影响。
第二个程序中,定义了一个字符数组str和一个字符变量c,然后进行遍历字符数组中的每个字符,并根据条件进行大小写转换输出。在这个程序中,根据定义的宏LETTER的值,决定是将小写字母转换为大写字母还是将大写字母转换为小写字母。
第一个程序的输出结果为:
size=4
a.i=13
第二个程序的输出结果为:
c lANGUAGE 抱歉,你提供的代码中存在一些问题。首先,这些代码使用了过时的C++标准库<iostream.h,正确的应该是#include <iostream>。另外,main函数的返回值应为int类型而不是void类型。此外,程序2中的条件编译指令#if和#else之后没有对应的#endif,这也会导致编译错误。
基于以上问题,我无法给出这两段代码的精确运行结果。如果你能提供修复后的代码,我将很乐意帮助你分析运行结果。
页:
[1]