指针、数组与函数例题
1、简单数字显示
题目描述
本例要求实现对变量的直接访问和间接访问。输入任意两个整数,先用直接访问的方式输出这两个变量的值,再通过指针变量用间接访问的方式输出这两个变量的值。
输入要求
输入两个整数
输出要求
先用直接访问方式使出这两个整数。再通过指针变量用间接访问方式输出这两个整数。
输入样例
1 2
输出样例
a=1,b=2
a=1,b=2
代码示例:
#include<stdio.h>
int main()
{
int a,b,*pa=&a,*pb=&b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
printf("a=%d,b=%d\n",*pa,*pb);
return 0;
}
2、数组元素加一显示
题目描述
从键盘输入10个整数存入数组,对每个元素加1后输出。
输入要求
从键盘输入10个整数
输出要求
对每个元素加1后输出
输入样例
1 2 3 4 5 6 7 8 9 10
输出样例
2 3 4 5 6 7 8 9 10 11
代码示例:
#include<stdio.h>
int main()
{
int a[10],i,*p;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(p=a;p<(a+10);p++)
{
printf("%d ",(*p)+1);
}
printf("\n");
return 0;
}
3、两数求和
题目描述
输入两个整数,按升序排序后输出,要求编写自定义函数,在主函数中调用并验证。
输入要求
输入两个整数
输出要求
先在自定义函数内部将两数排序。再输出返回到主函数的两数内容。
输入样例
9 3
输出样例
3 9
代码示例:
#include<stdio.h>
void sort(int *p1,int *p2);
int main()
{
int x,y;
scanf("%d%d",&x,&y);
sort(&x,&y);
printf("%d %d\n",x,y);
return 0;
}
void sort(int *p1,int *p2)
{
int p;
if(*p1>*p2)
{
p=*p1;
*p1=*p2;
*p2=p;
}
}
4、求数组中最大值
题目描述
求一维数组的10个元素中的最大值
输入要求
输入10个整数
输出要求
输出最大值
输入样例
12 7 -89 122 65 79 3 18 66 -90
输出样例
122
代码示例:
#include<stdio.h>
int main()
{
int arr[10],*p,max;
int i;
for(i=0;i<10;i++)
scanf("%d",&arr[i]);
max=arr[0];
for(p=arr;p<arr+10;p++)
{
int temp;
if(max<*p)
{
temp=*p;
*p=max;
max=temp;
}
}
printf("The maximum number=%d\n",max);
return 0;
}
5、计算总分
题目描述
给定10位同学的成绩,计算他们的总分并输出结果
输入要求
输入10个整数
输出要求
输出10个成绩的总和
输入样例
60 70 80 90 70 65 85 95 100 90
输出样例
805
代码示例:
#include<stdio.h>
#define N 10
int sum(int a[10],int n)
{
int sum=0,i;
for(i=0;i<10;i++)
{
sum+=a[i];
}
}
int main()
{
int a[N],i;
int result;
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
result=sum(a,N);
printf("%d\n",result);
return 0;
}