计算机二级

以下程序的输出结果是includemain(){ union un{ int i;long k;char c;};struct byte{i以下程序的输出结果是 #include<stdio.h> main() { union un{ int i; long k; char c;}; struct byte{ int a; long b; union un c;}r; printf("%d\n",sizeof(r));}A.10B.13C.7D.8

题目
以下程序的输出结果是includemain(){ union un{ int i;long k;char c;};struct byte{i

以下程序的输出结果是 #include<stdio.h> main() { union un{ int i; long k; char c;}; struct byte{ int a; long b; union un c;}r; printf("%d\n",sizeof(r));}

A.10

B.13

C.7

D.8

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

第1题:

设有如下程序includemain(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}

设有如下程序 #include<stdio.h> main() { int**k,*j,i=100; j=&i;k=&j; printf("%d\n",**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第2题:

有以下程序includemain(){char*a[]={"abcd","ef","gh","ijk"};int i; for(i=0;i<4;i++

有以下程序 #include<stdio.h> main() { char*a[]={"abcd","ef","gh","ijk"}; int i; for(i=0;i<4;i++) printf("%c",*a[i]); } 程序运行后的输出结果是______。

A.agei

B.dfhk

C.abcd

D.abcdefghijk


正确答案:A
解析:本题主要考查了字符数组的赋值,字符数组中的一个元素存放一个字符,所以数组元素a[0]、a[1]、a[2]和a[3]中依次存放了a、e、g、i,因此,在执行for循环时,四次的输出结果为a、e、g、i,因此选项A是正确的。

第3题:

下面程序的输出结果是______。 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。

第4题:

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

下列程序的输出结果是( )。#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
解析:本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立:联合所占用的内存空间为最长的成员所占用的空间。

第5题:

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

下面程序的输出结果是_______。 #include<stdio.h> main() { char*p[]={"DOOL","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],即字符“0”,所以本题的输出为SO。

第6题:

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

下列程序的输出结果是( )。 #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
解析:本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

第7题:

设有如下程序includemain(){int **k, *j,i=100;j=&i; k=&j;printf("%d\n"”,**

设有如下程序 #include<stdio.h> main() { int **k, *j,i=100; j=&i; k=&j; printf("%d\n"”,**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第8题:

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

下列程序的输出结果是( )。

#include<stdio.h>

main()

{ stmct st

{ int y,x,z;

};

union

{ long i;

int j;

char k;

}un;

printf("%d,%d\n",sizeof(stmct st),sizeof(un));

}

A.6,2

B.6,4

C.8,4

D.8,6


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

第9题:

有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

有以下程序,程序执行后,输出结果是【 】

include<stdio.h>

void fun(int*A)

{ a[0]=a[1];}

main()

{ int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

for(i=2;i>1=0;i-) fun(&a[i]);

for(i=0;i<10;i++) printf("%d,a[i]);

printf("\n");

}


正确答案:7777654321
7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

第10题:

以下程序运行后的输出结果是() 。   #include <stdio.h>   #include <stdlib.h>   #include <string.h>   main()   { char *p; int i;    p=(char *)malloc(sizeof(char)*20);    strcpy(p,"welcome");    for(i=6;i>=0;i--) putchar(*(p+i));    printf("n"); free(p);   }


D 本程序中通过DATA语句对数组B赋值的结果为矩阵DO循环语句的功能是将数组B的第2列的元素的值依次赋值给数组A。因此,A(1)=4、A(2)=5、A(3)=6,所以格式输出数组A后输出的结果为456。