第一个,你理解是错误的
首先在定义的时候,比如 int *a 这时的a代表,定义他为指针变量,前面的*只是为了说明,他是一个指针变量
而经过定义以后,在使用时,你用a就代表了,指针边量,而你用*a就代表的是指针变量a所指向的变量
如 : int *a,b=3
a=%b
*a=3
第一行定义中*a就是说a 为一个指针变量
第二行中a就已经代表了一个指针变量,把b的地址赋给a中
第三行*a和第一行的*a的意义是不同的,第一行的意思见上面,,第三行的*a的意思是指针变量a所指向的变量,也就是b,所以*a=3
#include
void
main()
{
int
number[10]
=
{100,
67,
80,
87,
68,
59,
90,
89,
91,
95};
//代表10个分数
int
max
=
number[0],
min
=
number[0];
//先默认第一个数为最大最小值
int
count
=
0;
//10个分数之
float
avg
=
0;
//平均值
//先求最高分
和最低分
for
(int
i
=
0;
i
<
10;
i++)
{
if
(max
<
number[i])
{
max
=
number[i];
}
//求最大值
if
(min
>
number[i])
{
min
=
number[i];
//求最小值
}
count
+=
number[i];
统计10个分数的总和
}
avg
=
(count
-
max
-
min)
/
8;
//去掉最高和最低
printf("去掉最高和最低后的平均值为:
%f",
avg);
}
}
第一题中确实是错的。
因为int k =2 ,m = 4, * pk= &k, * pm = &m
指向的变量都赋有初值。
而x没赋初值,用pb指向它时有不可预知的危险
(1)这个式子是错的,应该写成:*pb=x。因为第一句是定义语句,而一个语句的结束是以“;”结束,那“*pb=&x”就不属于定义语句了,*pb在第二个语句的意思是指针变量pb指向的内存空间的值,所以是x。第二个句子“int k =2 ,m = 4, * pk= &k, * pm = &m ”*pk、*pm是在定义语句内,*pk、*pm的意思是定义一个变量是指针变量取值分别是k的地址和n的地址。
第二题
结果是24
其实是2和4,中间没有空格,所以变成了24.
也就是输出a数组的前两个元素a[0]和a[1]。
第六题
17
第七题
8,17
第八题
2,5,1,2,3,-2
第九题
9
第十题
1.10
备注,第八九十题程序均有错误,LZ你编程时注意不要用中文输入法下的()当成英文输入法下的()用,还有“和"不等。。。