在C程序中,设一表达式中包含有int,long,char和uns

题目

在C程序中,设一表达式中包含有int,long,char和unsigned类型的变量和数据,这四种类型数据的转换规则是()。

  • A、int→unsigned→long→char
  • B、char→int→long→unsigned
  • C、char→int→unsigned→long
  • D、int→char→unsigned→long
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是

A.int *i=NULL;

B.float *f=NULL;scanf("%d",i); *f=10.5;

C.char t='m', *c=&t;

D.long *L;


正确答案:D
解析:选项C)显然不对。选项A),B),D)从语法上讲都是可以的,但内存中地址为NULL,即地址0的单元不能随意存放用户数据,因为这样可能会破坏其他程序。选项D)中尽管用了,'\0',(在内存中也为0),但并未向该单元存放数据,故该项正确。

第2题:

若有如下程序: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指向的字符串。

第3题:

若有以下程序段: 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指向的字符串。

第4题:

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。对自动类型转换的优先关系不了解。

第5题:

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

第6题:

若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是 ______。

A.int*i=NULL; scanf("%d",i);

B.float * f=NULL *f=19.5;

C.char t='m',*c=&t; *c=&t;

D.long *L; L='\0';


正确答案:A
解析:选项C中语句"*C=&t;"错误;选项D中指针"L='\0'"不正确,L应指向确定的地址单元,而不是特定的值;选项B中语句"float*f=NULL"错误,缺少语句结束符“;”。

第7题:

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

第8题:

C++的五种基本数据类型int、char、float、double 和long int 所占内存空间大小的关系是【 】。


正确答案:charintlong intfloatdouble
charintlong intfloatdouble

第9题:

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

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

第10题:

若有如下程序段: 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和一个长整型指针变量q。首先通过语句“a=(long*)p;”,把p的地址值强制转换为长整型地址值并赋值给小然后执行“q++”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。

更多相关问题