为什么(int)(6.8+7 2)是9,而(int)(

2020-11-23 10:48:55 字数 4045 阅读 8765

1楼:随便

7/2是两个都为整数,所以取整为3,然后再加上6.8就是9.8,强制转换类型取整为9,后面两个加起来为10.3,强制转换类型取整为10应该就是这样了

(int)3.6*3等于9还是10?

2楼:东方一梦

这是强制变换为整数型,结果为10

3楼:16只的猴子

3.6转化为3然后乘以3

4楼:520_小李

=>10.8变int==>10

7:对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};

5楼:匿名用户

将5个初值依次赋给a[0]至a[4] 。

初始化赋值的一般形式为:static类型说明符数组名[常量表达式]=; 其中static表示是静态存储类型, c语言规定只有静态存储数组和外部存储数组才可作初始化赋值。下标是从0开始。

在中的各数据值即为各元素的初值, 各值之间用逗号间隔。例如:static int a[10]=; 相当于a[0]=0;a[1]=1...a[9]=9;

6楼:海奇滨

a[10]=;

0 1 2 3 4

a[10]长度12345678910

10个数只有5个数自动赋值从0开始a【0】=6,.....

最后答案是b,题目的2

7楼:匿名用户

25-9赋值为0,

有的系统对5-9不赋值,所以是随机数

8楼:江湖百晓生

选第二个,序号从零开始,对号入座,没有的默认为零。

下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b;

9楼:匿名用户

p是b的首地址,为int型,也就是第一个元素,p++表示下一个int型数据, 所以p+2 表示第三个元素即3 ,选择c,

注意,这个跟数据类型有关,如果p为int,b为char, 一般的 int是16位,char是8位,即2倍关系,那么这个时候p+(a)就相当于b+(2a)了,a是步长。

10楼:匿名用户

q是指针,初始q指向数组首位,q+2表示,从初始位置向后移动两个元素,所有就指向了第三个,即3.所以选c

11楼:乐行乐

c.3int *q=b; b是b[0]的地址,所以q些时也指向b[0]

*(q+2) ); q[0+2]等于q[2]等于b[2];

说明语句如下:int a[10]={1,2,3,4,5,6,7,8,9},*p=a;则数值为6的表达式是( )。

12楼:匿名用户

d。表达式“*p = a”说明p指向a[0]的位置;

那么 *p + 6 = a[0] + 6 = 7; a错;

p指向a[0]的位置, 则p + 6 指向a[6]的位置,那么 *(p + 6) = a[6] = 7; b错;

p是一个指针,p的值本身是一个地址,p + 5显然不可能为5; c错;

上面说了, p指向a[0]的位置,那么 *p = a[0] = 1;

*p += 5; 等同于 a[0] += 5; 等同于 a[0] = a[0] + 5 = 1 + 5 = 6;

显然只有d正确;

13楼:匿名用户

d 一开始定义了 *p=a,就是指等于a[0];它指向的是一个值!

*p+=5,可以变换一下 *p=(*p)+5 不就 a[0]+5=6.....

a = 7 ;

b 的值是 a[6]=7

c 是一个地址 &a[5] 不是值!

14楼:林声飘扬

da> *p+6=>1+6=7

b>*(p+6)=7

c>p+5 是地址

d>*p+5=>1+5=>6

所以选d

int a[][4]={1,2,3,4,5,6,7,8,9,10} *p=*(a+1) 则值为

15楼:匿名用户

选择b

inta[4]=;

相当于inta[4]=,,};

而int*p=*(a+1);

表明 p 此时指向 5

所以要想输出9, p 需要 += 4;

剩下就是 * 和 ++ 优先级的问题了.

***************

*和++具有相同的优先级

*和++具有右结合的特性

所以*p++就相当于*(p++)

但是.........尤其注意,后置的++返回的还是当前的值,然后整个表达式求值完之后才+=1

所以b是正确答案

对于c,++p,p此时指向10,然后*p,结果会是数组中的10(此处是数组中的10)

对于d,++*p,首先*p结果是9,再++,输出10(此时的10只是9+1,而不是数组中的10)

int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a+1;值为9的是( c )a) *(p+6) b) *(p+7) c) *(p+8) d) *(p+9)

16楼:匿名用户

我也觉得应该选b啊!a[10]应该有11个元素,不够的会自动补一个0,也就是说a[10]=选b,a是数组名的同时也这个数组的首地址,a=&a[0],*p=a+1=a[1]=2也就是第二个元素2,元素2和9之间相差7位置,那么元素9不就是*p+7嘛

17楼:

这题肯定选b

int *p=a+1 //p指向a[1]的地址即*p=2;

*(p+7)表示将p指针像后移动八个位置,即指向a[8],值为9

void f(int b[]) {int i; for(i=2;i<6;i++)b[i]*=2; } main() {int a[10]={1,2,3,4,5,6,7,8,9,l0},i; f(a)

18楼:匿名用户

可能初学者没懂题的意思,这道题main()函数逻辑很清晰,关键在于f()函数我一开始看时也没懂什么意思,他主要是把数组第3到第6元素乘以2其余的不变(相信你们会for循环),然后再循环输出得到1,2,6,8,10,12,7,8,9,10,的结果。

19楼:匿名用户

1,2,3,8,10,12,14,16,18,20这是a的十个数。运行输出:1238101214161820

20楼:匿名用户

1 2 3 8 10 6 7 8 9 10

21楼:那位大人不科学

f函数调用的是数组名,就相当于把整个数组传递给了f函数的形参,数组名是一个指针常量,即数组首地址,所以这是函数调用中的地址传递类型,当你的形参发生改变时,实参也会跟着变化。读f函数可知f函数就是将a[2]到a[5]的值做乘2运算。其他值不变。

但如果不是地址传递类型,而是值传递的类型,则形参的变化不会对实参造成影响。不懂的话可以去查阅一下函数调用的类型。

简单的c语言 { int b[10]={1,2,3,4,5,6,7,8,9,10}; int i 20

22楼:金色潜鸟

#include

void reverse(int a,int n){int i,t;

for (i=0;i不是形参。数组 b 的首地址 。

整个数组 反序,第二个参数 用 10。

若 用 8,那么 最后2 个 数组元素 不参加 交换。

23楼:匿名用户

是一个(指向数组b的)地址。

概率的定义是什么,为什么概率和是1而不是2呢

1楼 轩辕小灿 概率就是一件事情发生的几率。1表示百分之百,即发生这件事情是一定的。抛硬币掉在地上出现正面或负面的概率都是百分之五十,即出现正面或出现负面只有这两种情况,而这两种情况又不互相影响 概率的定义是什么,为什么概率和是1而不是2 2楼 琦刃 概率是对随机事件发生的可能性的度量,一般以一个在...

为什么氧的化学式是O而氧气的化学式是O2

1楼 阿勒泰的声音 o是氧元素的符号,o2是氧气分子,一个氧分子由两个氧原子构成所以是o2。求采纳 2楼 o是氧单质,气体一般都是由两个单质组成的,如cl2 n2等 为什么氧气的化学式是o2而不是o 3楼 呼吸曾跑速 因为在自然界单质氧是不存在的,因为他具有氧化性,不是以化合物形式存在即是以o2形式...