C语言程序填空问题~高分速求解~~!

(2)下列程序的功能为:通过返回地址值,来输出a[2]~a[4]的值;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy7_5.c存盘。
#include <stdio.h>
main()
{
int a[5]={1,3,5,7,9}; /* a是int数值的数组 */
int *num[5],i,*p; /* num是指向int类型的指针型数组,p是指向int型的变量 */
int *f(int *x[],int); /* 返回指针值的f函数的声明 */

for (i=0;i<5;i++)
num[i]= ; /* num的每个分量指向a的每个相应元素 */
p=f(num,2); /* 返回num[2]分量所指的数组a中的元素的地址 */
for ( ; p<=num[4]; p++) /* 在num[2]~num[4]地址范围内扫描 */
printf(" %d\t", ); /* 输出该地址范围内的数据 */
}
int *f(int *x[],int i)
{
int k=0;
for (; k<i; k++) ; /* 如果这个语句省略,需要修改什么? */
return ; /* 返回num[i]的所指的地址 */
}
(3)下列程序的功能为:通过指针变量的自增运算,扫描一维数组中全部元素的地址,并引用它们各自的值;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy7_6.c存盘。
#include "stdio.h"
#define N 10
main()
{
int i,k,a[N],sum,count,*p; /* 所有变量和数组a的基类型都是int */

count=sum=0;
do
{ printf(" input k: \n");
scanf("%d",&k); /* 总共要求输入k个数 */
} while (k<=0||k>N); /* 直到型循环确保0≤k≤N */
printf(" input a[0]~a[%d]:\n",k-1);
for (p=a;p<a+k;p++) /* 指针p指向数组a的首地址,p依次求出后继值 */
{ scanf("%d", ); /* 此处的p等价于&a[i] */
if ( ) /* 引用指针变量p所指变量的值 */
{ sum+=*p; /* 指针p所指变量*p的值>0者相加 */
count++; /* 正整数个数统计 */
}
}
; /* 指针复位,重新指向数组a 的首地址 */
while (p<a+k)
printf("%-5d", ); /* 先执行*p,取出所指变量的值,再指向数组的下一元素 */
printf("\n Numberof above >0 is : %d\n",count);
printf(" Sum of >0 is : %d\n",sum);
}

第一个
#include <stdio.h>
main()
{
int a[5]={1,3,5,7,9}; /* a是int数值的数组 */
int *num[5],i,*p; /* num是指向int类型的指针型数组,p是指向int型的变量 */
int *f(int *x[],int); /* 返回指针值的f函数的声明 */

for (i=0;i<5;i++)
{
num[i] = &a[i]; /* num的每个分量指向a的每个相应元素 */
}

p=f(num,2); /* 返回num[2]分量所指的数组a中的元素的地址 */

for ( ; p<=num[4]; p++) /* 在num[2]~num[4]地址范围内扫描 */
{
printf(" %d\t", *p); /* 输出该地址范围内的数据 */
}

}

int *f(int *x[],int i)
{
int k=0;

for (; k<i; k++) ; /* 如果这个语句省略,需要修改什么? */
return x[k]; /* 返回num[i]的所指的地址 */
}

第二个
#include "stdio.h"
#define N 10

main()
{
int i,k,a[N],sum,count,*p; /* 所有变量和数组a的基类型都是int */

count=sum=0;

do
{
printf(" input k: \n");
scanf("%d",&k); /* 总共要求输入k个数 */
}
while (k<=0||k>N); /* 直到型循环确保0≤k≤N */

printf(" input a[0]~a[%d]:\n",k-1);

for (p=a;p<a+k;p++) /* 指针p指向数组a的首地址,p依次求出后继值 */
{
scanf("%d", p); /* 此处的p等价于&a[i] */

if (*p > 0) /* 引用指针变量p所指变量的值 */
{
sum += *p; /* 指针p所指变量*p的值>0者相加 */
count++; /* 正整数个数统计 */
}
}

p = a; /* 指针复位,重新指向数组a 的首地址 */

while (p<a+k)
{
printf("%-5d", *p++); /* 先执行*p,取出所指变量的值,再指向数组的下一元素 */
}

printf("\n Numberof above >0 is : %d\n",count);
printf(" Sum of >0 is : %d\n",sum);
}
温馨提示:答案为网友推荐,仅供参考