计算机二级

下列程序的输出结果是______。 union un { int a[3]; long b; char c[6]; }un1,*p; main() {p=&un1; p->a[0]=0x37; p->a[1]=0x38; p->a[2]=0x39; printf("%c\n",p->c[4]); }A.39B.9C.38D.8

题目

下列程序的输出结果是______。 union un { int a[3]; long b; char c[6]; }un1,*p; main() {p=&un1; p->a[0]=0x37; p->a[1]=0x38; p->a[2]=0x39; printf("%c\n",p->c[4]); }

A.39

B.9

C.38

D.8

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有以下程序段: include using namespace std; int main() {char*p="abcdefgh",*r;l

若有以下程序段:

include <iostream>

using namespace std;

int main()

{

char*p="abcdefgh",*r;

long*q;

q=(long*)p;q++;

r=(char*)q;

cout<<r<<end1;

return 0;

}

该程序的输出结果是【 】。


正确答案:efgh
efgh 解析:本题定义了一个字符型指针变量p,并通过赋初值让它指向了一个字符串,还定义了另一个字符型指针变量r和一个长整型指针变量qo首先通过语句“a=(long*)p;”,把p的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“F(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。

第2题:

下面程序的输出结果是______。 include main() {char *p[]="BOOL","OPK","H","SP"};int

下面程序的输出结果是______。 #include<stdio.h> main() { char *p[]="BOOL","OPK","H","SP"}; int i; for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n"); }

A.SO

B.SP

C.SPOPK

D.SHOB


正确答案:A
解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。

第3题:

以下程序运行后的输出结果是。main(){ char s[]="GEFDCBA"; int p=6;While(s[p]!=’D’){ printf("%c",p);p=p-1; }}


正确答案:A B C
从最后一个字符判断开始,如果不是遇到字符‘D’,就继续往前搜索。

第4题:

若有如下程序:include using namespace std;int main(){ char *p="abcdefgh",*r; lon

若有如下程序: #include <iostream> using namespace std; int main() { char *p="abcdefgh",*r; long *q; q=(long *)p; q++; r=(char *)q; cout<<r<<end1; return 0; } 上述程序的输出结果是( )。

A.abcdefgh

B.0

C.abcd

D.efgh


正确答案:D
解析:本题定义了一个字符型指针变量p,并通过赋初值让它指向了一个字符串。还定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“q=(long*)p;”,把p的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。

第5题:

以下程序的输出结果是【】。 includevoid main() {char *p= "12345678" , *r;long *q;

以下程序的输出结果是【 】。

include<iostream. h>

void main() {

char *p= "12345678" , *r;

long *q;

q=(long *)p;

q++;

r= (char *) q:

cout<<r;

}


正确答案:5678
5678

第6题:

下列程序的输出结果是()。includeusing namespace std;int main()于chara[]=”Hello,Te

下列程序的输出结果是( )。 #include<iostream> using namespace std; int main() 于 chara[]=”Hello,Test”; Char*p=a; while(*p) { if(*p)=’a’&&*p(=’z’) cout<<char(*p+’A’-’a’); else cout<<*p; p++; } return 0; }

A.hello,test

B.Hello,Test

C.HELLO,TEST

D.hELLO,tEST


正确答案:C
解析: 用一个指针变量p指向字符数组a,在while循环中,当不指向数组尾时,将小写字母转换为大写字母!然后将其输出。

第7题:

以下程序运行后的输出结果是【】include main ( ) {char a[] ="123456789", *p;int i =0;

以下程序运行后的输出结果是【 】

include <stdio.h>

main ( )

{ char a[] ="123456789", *p;

int i =0;

p=a;

while( * p)

{ if(i%2 ==0) *p='*';

p++;i++;

}

puts(a);

}


正确答案:*2*4*6*8*
*2*4*6*8* 解析:程序中指针p指向数组a,while(*P)语句的循环条件是* p!='\0',在循环体中,当 i=0,2,4,6,8时,i%2=0,执行*p='*',即a[i]='*',继续执行p++;i++;使i为奇数;当i=1, 3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串"123456789",的下标为偶数的位置上赋值'*',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

第8题:

下列程序的输出结果是( )。 #include "stdio.h" main() { struct st { int y,x,z;}; union {long i;int j; char k;} un; printf("%d,%d\n",sizeo(struct st),sizeof(un)); }

A.6,2

B.6,4

C.8,4

D.8,6


正确答案:B

第9题:

下列程序的输出结果是( )。 include using namespace std; int main() {

下列程序的输出结果是( )。 #include<iostream> using namespace std; int main() { char a[]="Hello,Test"; char *p=a; while(*p) { if(*p>='a'&&*p<='z') cout<<char(*p+'A'-'a'); else cout<<*p; p++; } return 0; }

A.hello,test

B.Hello,Test

C.HELLO,TEST

D.hELLO,tEST


正确答案:C
解析:用一个指针变量p指向字符数组a,在while循环中,当不指向数组尾时,将小写字母转换为大写字母,然后将其输出。

第10题:

下列程序的输出结果是()。includemain(){struct st{int y,x,z;};union{long i; int j;

下列程序的输出结果是( )。 #include<stdio.h> main() { struct st { int y,x,z; }; union { long i; int j; char k; }un; printf("%d,%d\n",sizeof(struct st),sizeof(un)); }

A.6,2

B.6,4

C.8,4

D.8,6


正确答案:B
解析: 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

更多相关问题