...
2.程序填空
(1)以下程序的功能是利用指针找出
#include
{ int *p1,*p2,*p3,min,x,y,z; p1=&x; p2=&y; p3=&z;
3 个整数中的最小数。
printf( ″please input three integer: ″); scanf(″%d%d%d″,p1,p2,p3);
①
if(*p1>*p2)
;
//min=*p1
; ;
②
if(min>*p3)
//min=*p2
//min=*p3
③
printf( ″min=%d\\n ″,min);
}
(2)以下程序利用指向函数的指针实现函数调用,完成可选择 的加减乘除运算。
#include
/* 定义函数 add*/
int add(int x,int y) {
printf(\
/* 定义函数 sub*/
int sub(int x,int y)
{printf(\
/* 定义函数 mult*/
int mult(int x,int y) {
printf(\
/* 定义函数 dev*/
...
...
int dev(int x,int y) {
printf(\
void main() {
int (*funp)(int,int); char op;
int x,y;
printf(\
scanf(\
scanf(\
scanf(\
①
{case '+': funp=
case '-': funp=sub; case '*': funp=mult; case '/': funp=dev;
(op) ②
break; break; break;
//switch ;break;
//add
default: printf(\
}
printf(\
}
③ (x,y)); //funp
3.程序改错
(1)以下程序的功能是:输入 出。
#include
int *p1,*p2,*p3;
3 个整数,按由小到大的顺序输
void swap(int ,int ); ★
printf(\
// void swap(int *,int *)
★
scanf(\
//
...
...
scanf(\
p1=i1;p2=i2;p3=i3; p1=&i1;p2=&i2;p3=&i3;
if(i1>i2) swap(p1,p2); if(i1>i3) swap(p1,p3); if(i2>i3) swap(p2,p3);
printf(\}
void swap(int *p,int *q) {int t;
t=*p; *p=*q; *q=t; }
★
//
(2)下列程序的功能是利用自定义函数计算一无符号整数各位 数字的乘积。
#include
p=s; ★
do
{s=s*(num);
num/=10; }while(num); return p; }
void main() {unsigned x,p;
printf(\
//p=&s;
scanf(\
p=f(x);
printf(\★
}
// printf(\
4.设计性实验
...
...
(1)编程一函数,其功能是求一个长正整数各位数字之和。要 求使用指针函数实现结果的返回。在主函数中进行测试。
例如在
主函数中输入 348762,输出结果应为为 30 即 3+4 +8+7+6+2 的和。
//方法一:利用指向函数的指针 int
sum(long n)
x;
if(n<10)
x=n; else
x=sum(n/10)+n; return(x);
}
void main() {
long x; int (*f)(long); f=sum;
scanf(\
printf(\f(x));
//利用递归求和
{ unsigned long
//
}
//方法二:利用指针函数
#include
unsigned s=0,*p;
仿照第 )题改错( )
32
p=&s;
do {
s=s+(num);
num/=10;
}while(num); return p; }
...
相关推荐: