C语言高手帮帮忙!

(1)若有定义:intx,*pb;*pb=&x这个表达式答案上说是错的的,但是我在另外一道题看到这样的定义:intk=2,m=4,*pk=&k,*pm=&m所以我想问*p... (1)若有定义: int x, * pb;
* pb = &x这个表达式答案上说是错的的,但是我在另外一道题看到这样的定义:
int k =2 ,m = 4, * pk= &k, * pm = &m
所以我想问* pb = &x 这个式子到底对不对?

(2)#include <stdio.h>
main()
{ int a[5]={2,4,6,8,10},*p,**k;
p=a; k=&p;
printf("%d",*(p++)); printf("%d\n",**k);
程序输出的结果是?

(3)#include <stdio.h>
void sub ( int n, int uu[ ])
{ int t;
t=uu[--];t+=3*uu[n];
n++;
if(t>=10) {uu[n++]=t/10;uu[n]=t%10;}
else uu[n]=t;
}
main()
{ int i,n,aa[10]={0};
scanf( "%d%d%d",&n,&aa[0],&aa[1]);
for (i=1;i<n;i++)sub(i,aa);
for (i=0;i<=n;i++) printf("%d",aa[i]);
printf("\n");
}
若输入3个整数3、2、1,则以下程序的输出结果是?

(4)#include <stdio.h>
main()
{ char ch[2][5]={"6937","8254"}, *p[2]; int i, j,s=0;
for (i=0;i<2;i++) p[i]=ch[i];
for (i=0;i<2;i++)
for (j=0;p[i][j]>'\0'&& p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
输出的结果是?
我想问一下这道题中s=0为什么是定值?

(5)假定以下程序经编译和连接后PROG.EXE,如果在DOC提示符下键入
PROG ABCD EFGH IJKL,<CR>,则输出结果是?
#include <stdio.h>
main( int argc,char *argv[ ])
{ while(--argc>0)printf("%s",argv,argv[argc]);
printf("\n");
}
这道题的答案输出来都没有空格,可是输入的时候是有空合格,这是为什么?

(6)以下程序的输出结果是?
#include <stdio.h>
funa(int a,int b){ return a+b; }
funb(int a,int b){ return a-b; }
sub( int(*t)( ),int x,int y){ return (*t)(x,y);}
main( )
{ int x,(*p)(int ,int );
p=funa;
x=sub(p,9,3);x+=sub(funb,8,3);
printf("%d\n",x);
}

(7)以下程序的输出结果是
#include <stdio.h>
int func (int,int);
main( )
{ int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
int func(int a,int b)
{ static int m,i=2;
i+=m+1;m=i+a+b;return (m);
}

(8)以下程序运行后的输出结果是?
#include <stdio.h>
main( )
{ int a=3,b=2,c=1;
c-=++b;b*=a+c;
{ int b=5,c=12;
c/=b*2;a-=c;printf(“%d,%d,%d,",a,b,c);
a+=--c;
}
printf("%d,%d,%d\n",a,b,c);
}

(9)以下程序的输出结果是
#include <stdio.h>
#include <stdlib.h>
fut(int**s,int p[2][3]){**s=p[1][1];}
main( )
{ int a[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));fut(&p,a);printf('%d\n",*p);
}

(10)以下程序的输出结果
#include <stdio.h>
#include <stdlib.h>
void fun(float*p1,float*p2,float*s)
{ s=(float*)calloc(1,sizeof(float));
*s=*p1+*p2++;
}
main( )
{ float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun (a,b,s);printf("%5.2f\n",*s);
}

题有点多,呵呵。先谢谢高手帮忙了,请高手给出解题过程,不要只给我一个答案,再次谢谢高手了!
我拜托高手们把解题过程写的详细些,不要只给我一个答案,我也有答案,只是我不知道为什么是这个答案!
展开
 我来答
86271737
2009-03-09 · TA获得超过763个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:457万
展开全部
第一个,你理解是错误的

首先在定义的时候,比如 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
冉新兰岑丑
2019-10-28 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:33%
帮助的人:708万
展开全部
#include
<stdio.h>
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);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
御风__弄影
2009-03-06 · TA获得超过659个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:252万
展开全部
第一题中确实是错的。
因为int k =2 ,m = 4, * pk= &k, * pm = &m
指向的变量都赋有初值。
而x没赋初值,用pb指向它时有不可预知的危险
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
A书影时光Q
2009-03-09
知道答主
回答量:10
采纳率:0%
帮助的人:1.4万
展开全部
(1)这个式子是错的,应该写成:*pb=x。因为第一句是定义语句,而一个语句的结束是以“;”结束,那“*pb=&x”就不属于定义语句了,*pb在第二个语句的意思是指针变量pb指向的内存空间的值,所以是x。第二个句子“int k =2 ,m = 4, * pk= &k, * pm = &m ”*pk、*pm是在定义语句内,*pk、*pm的意思是定义一个变量是指针变量取值分别是k的地址和n的地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风卷Wind
2009-03-06
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
第二题
结果是24
其实是2和4,中间没有空格,所以变成了24.
也就是输出a数组的前两个元素a[0]和a[1]。

第六题
17

第七题
8,17

第八题
2,5,1,2,3,-2

第九题
9

第十题
1.10

备注,第八九十题程序均有错误,LZ你编程时注意不要用中文输入法下的()当成英文输入法下的()用,还有“和"不等。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式