下面程序的运行结果是typedef union student{ char name[10]; long sno; char sex; float score[

题目

下面程序的运行结果是typedef union student{ char name[10]; long sno; char sex; float score[4];}STU;main(){ STU a[5]; printf("%d\n",sizeof(a));}

参考答案和解析
正确答案:80
根据共用体变量的特点可知,共用体变量所占的内存长度等于最长的成员的长度,所以变量STU所占的字节数等于其成员score[4]所占的字节数,即为16个字节,最终打印出共用体数组a[5]的长度为16´5=80。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

C语言中各种基本数据类型的存储空间长度排列为( )

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long≤float≤double

D.float≤int≤long≤char≤double


正确答案:C

第2题:

Java语言中数据类型之间的自动类型转换是由优先关系从低级数据类型转换成高级数据类型,下面选项中自动类型转换优先级由低到高排列正确的是

A.char→long→int→double→float

B.char→int→long→double→float

C.char→int→long→float→double

D.char→int→float→double→long


正确答案:C
解析:自动类型转换是按优先关系从低级数据转换成高级数据,规定的优先次序是char→int→long→float→double。对自动类型转换的优先关系不了解。

第3题:

有下列程序:includeinclude "string.h"typedef struct{char name[9]; char sex;float

有下列程序: #include <stdio.h> #include "string.h" typedef struct{char name[9]; char sex;float score[2];}STU; void f(STU A) { STU b={"Zhao",'m',85.0,90.0}; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i<2;i++) a.score[i]=b.score[i]; } main() { STU c={"Qian",'f',95.0,92.0}; f(C) ; printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]); } 程序的运行结果是( )。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,f,95,92

D.Zhao,m, 85,90


正确答案:A
解析:本题考查在结构体中函数的实参和形参的传递,调用f(C)后,实参传向形参,进行f()函数功能的实现,但程序中没有返回语句,故形参不能将值传回实参,它们值的传递具有不可逆性,所与printf输出的还是c中实参的值,故选项A)正确。

第4题:

以下程序的结果是()。includevoid main(){char*p="abcdefgh",*r;long*q;q=(1ong*)P;

以下程序的结果是( )。 #include<iostream.h> void main() {char*p="abcdefgh",*r; long*q; q=(1ong*)P; q++; r=(char*)q; cout<<r<<endl;=

A.defg

B.cdef

C.ghab

D.efgh


正确答案:D

第5题:

自动类型转换是按优先关系从低级数据转换成高级数据,规定的优先次序是( )。

A.byte,short,char→int→long→float→double

B.float→int→long→byte,short,char→double

C.int→long→float→double←byte,short,char

D.double→int→folat→long→byte,short,char


正确答案:A

第6题:

自动类型转换是按优先关系从低级数据转换成高级数据,规定的优先次序是( )。

A.byte, short, char→int→long→float→double

B.float→int→long→byte, short, char→double

C.int→long→float→double→byte, short, char

D.double→int→float→long→byte, short, char


正确答案:A

第7题:

自动类型转换规定的优先次序是( )。

A.short,byte,char→long→int→float→double

B.short,byte,char→int→long―float→double

C.byte,short,char→long→int→float→double

D.byte,short,char→int→long→float→double


正确答案:D

第8题:

以下程序的输出结果是【】。 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

第9题:

以下程序的结果是 include void main( ) { char * p="abcdefgh",* r; long *

以下程序的结果是 #include<iostream.h> void main( ) { char * p="abcdefgh",* r; long * q; q=(long * )p; q++; r=(char * )q; cout < < r < < end1;}

A.defg

B.cdef

C.ghab

D.efgh


正确答案:D
解析:C++语言规定,如果指针变量q已指向数组中的一个元素,则(q++指向同一数组中的下一个元素(而不是将q的值简单的加1)。本题中q是long型指针,每个long型数据占内存字节数为4,所以q++则由当前位置向右移动4个字节,所以最后显示出的是efgh。注意:请注意*(P++)与(*p)++的区别。

第10题:

以下代码中变量result的可能类型有哪些?byte b = 11;short s = 13;result = b * ++s;

A.byte, short, int, long, float, double

B.boolean, byte, short, char, int, long, float, double

C.byte, short, char, int, long, float, double

D.byte, short, char

E.int, long, float, double


正确答案:E