Union test{ Char a[3]; Int b[4]; Short c[5]; }; 一个test类型数据占用

题目
单选题
Union test{ Char a[3]; Int b[4]; Short c[5]; }; 一个test类型数据占用()个字节的空间。
A

10

B

16

C

29

D

30

参考答案和解析
正确答案: D
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若下面程序运行时输出结果为

1, A, 10.1

2, B, 3.5

请将程序补充完整 。

#include

using namespace std;

int main()

{

void test(int, char,double 【 8 】 );

test(1,'A',10.1);

test(2,'B');

return 0;

}

void test(int a, char b, double

C .

{

cout<

}


正确答案:

第2题:

考虑函数原型void test(int a,int b=7,char z=‘*’),下面的函数调用中,属于不合法调用的是( )。

A.test(5);

B.test(5,8);

C.test(6,’#’);

D.test(0,0,’x’);


正确答案:C
解析: 题中函数声明带有默认参数,那么在C选项的调用中,将会把字符型实参#赋值给整型形参b,这不符合参数传递规则。

第3题:

试题三(共 15分)

阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。

【说明 1】

函数test_f1(int m, int n)对整数 m、n进行某种运算后返回一个整数值。

【C函数 1】

int test_f1(int m, int n)

{ int k;

k = m > n ? m : n;

for(;(k%m!=0) || (k%n!=0);k++);

return k;

}

【问题 1】(5分)

(1)请写出发生函数调用test_f1(9,6)时,函数的返回值;

(2)请说明函数test_f1的功能。

【说明 2】

设在某 C 系统中为每个字符分配 1 个字节,为每个指针分配 4 个字节,sizeof(x)计算为x分配的字节数。

函数test_f2()用于测试并输出该C系统为某些数据分配的字节数。

【C函数 2】

void test_f2( )

{ char str[] = "NewWorld"; char *p = str; char i = '\0';

void *ptr = malloc(50);

printf("%d\t", sizeof(str)); printf("%d\n", sizeof(p));

printf("%d\t", sizeof(i)); printf("%d\n ", sizeof(ptr));

}

【问题 2】(4分)

请写出函数test_f2()的运行结果。

【说明 3】

函数 test_f3(char s[])的功能是:将给定字符串 s 中的所有空格字符删除后形成的串

保存在字符数组tstr中(串s的内容不变),并返回结果串的首地址。

【C函数 3】

char *test_f3 (const char s[])

{ char tstr[50]={'\0'}; unsigned int i, k = 0;

for(i=0; i<strlen(s); i++)

if (s[i] != ' ') tstr[k++] = s[i];

return tstr;

}

【问题 3】(6分)

函数test_f3()对返回值的处理有缺陷,请指出该缺陷并说明修改方法。


正确答案:

试题三参考答案
【问题1】
(1)18              (3分)
(2)求两个整数的最小公倍数         (2分)
     考生解答含义与最小公倍数相同即可给分

【问题2】
9  4           (2分,每个数字1分)
1  4           (2分,每个数字1分)

【问题3】
缺陷:返回了局部数据(或变量,或数组)的指针(或地址)  (3分)
考生解答与上述含义相同即可给分

修改方法:用malloc(或realloc)函数申请局部变量(或数组)  (3分)
考生解答中含有“动态”或“堆区”一词或者即可给分

第4题:

考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()

A: test(5)

B: test(5,8)

C: test(6,"#")

D: test(0,0,"*")


正确答案: C

第5题:

若下面程序运行时输出结果为1,A,10.1 2,B,3.5 include using namespace std; int mai

若下面程序运行时输出结果为

1,A,10.1

2,B,3.5

include <iostream>

using namespace std;

int main()

{

void test(int, char, doubie【 】);

test(1, 'A', 10.1 );

test(2, 'B');

return 0;

}

void test(int a, char b, double c)

{

cout<<a<<','<<b<<','<<c<<endl;

}


正确答案:3.5
3.5 解析:本题考查了函数默认参数的应用。本题定义的函数test()仅仅是按顺序输出了三个形参值,题目中第1次调用该函数会输出1,A,10.1,但第2次调用少了一个实参却要求输出2,B,3.5。由此可见,应该将test()函数的第3个参数声明为默认参数,且默认值为3.5。故应该填入=3.5,或加上形参名c=3.5。

第6题:

已知程序中已经定义了函数test,其原型是int test(int,int,int);,则下列重载形式中正确的是

A.char test (int,int,int);

B.double test(int,int,double);

C.int test(int,int,int=O);

D.float test(int,int,float=3.5F);


正确答案:B
解析:本题考核函数重载。所谓函数重载,是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数仲,这些函数的名字相同,但是函数的参数的类型不同。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。不可以根据函数返回值类型来重载函数。A选项中定义只是函数的返回类型不同,不符合重载的条件,C选项也不符合。对于D选项,形参列表中带有默认参数,如果原型的最后一个也带有默认参数,则会造成不知道该调用哪个函数的错误。

第7题:

若有下面的说明和定义

struct test

{ int ml; char m2; float m3;

union uu {char ul[5]; int u2[2];} ua;

} myaa;

则sizeof(struct test )的值是

A.12

B.16

C.14

D.9


正确答案:A

第8题:

若有下面说明和定义:struct test{ int m1;char m2;float m3;union uu(char u1[5];int u2[2];)ua;}myaa; 则sizeof(struct test)的值是( )。A)20 B)16C)14 D)9


正确答案:A
sizeof求在存储单元中所占字节数。

第9题:

要用字符数组保存字符串“test”的值,以下代码正确的是().

A.char a[5]; a="test";

B.char a[4]="test";

C.char a[4l; a = "test";

D.char a[5]="test”:


参考答案:D

第10题:

下列代码中,将引起一个编译错误的行是( )。 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12)}

A.第3行

B.第5行

C.第6行

D.第10行


正确答案:D
解析:本题考查考生对Java中构造方法的理解及应用。构造方法名必须与类名相同,没有返回值,用户不能直接调用,只能通过new自动调用。题目有两个构造方法Test()和Test(inta),按照参数决定调用哪个方法。t1=newTest()语句调用Test()方法,而t2=newTest(j,k)将会找不到相应的构造方法,程序编译出错在第10行,所以选项D说法正确。

更多相关问题