《C语言学习与应用》课后习题及答案06参考答案_第1页
《C语言学习与应用》课后习题及答案06参考答案_第2页
《C语言学习与应用》课后习题及答案06参考答案_第3页
《C语言学习与应用》课后习题及答案06参考答案_第4页
《C语言学习与应用》课后习题及答案06参考答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习任务六参考答案

问题67:写出以下程序代码的输出结果。

4,3

问题6-2:模仿应用举例6-2,顺序输出数组中的各元素。

#incIude"stdio.h"

voidmain()

{inta[10]={1,2,3,4,5,6,7,8,9,10),*p=&a[0].*q=&a[9];

while(p<=q)

printf("%d",*p++);

getchar();

1

程序执行结果:12345678910

编程训练6-1-1借用指针变量的数据输入/输出操作。

#incIude"stdio.h"

voidmain()

(

intx,*p;

P二&x;

printf(”请输入一个整数:");

scanf("%d",p);〃请勿填写&x哦

printf("x=%d\n",*p);〃请勿填写x哦

}

程序运行结果:

测试顺输入数据输出

135x=35

2-98x=-98

编程训练6-1-2:借用指针变量实现的按顺序输出数据。

#incIude"stdio.hH

voidmain0

intx,y,*pmax,*pmin;〃再定义两个指针变量pmax和

pmin

prin"(”请输入两个整数:”);

scanf("%d%d",&x,&y);〃输入两个整数赋给x和y

if(x>y)〃较大值的地址赋pmax,较

小值地址赋pmin

{pmax=&x;

pmin二&y;

)

eIse

{pmax=&y;

pmin=&x;

)

print*,按由大到小的顺序输出是:%d.%d\n",*pmax,*pmin);

}

程序运行结果:

测试顺输入数据输出

13579按由大到小的顺序输出是:

79,35

27935按由大到小的顺序输出是:

79,35

编程训练6-2T:主函数与函数间的值传递。

输入数据输出

5678回车x=56,y=78

swap函数的意图是:对x和y进行交换

主函数中x,y不能交换的原因是:实参传给形参

的是值,是值的拷贝

编程训练6-2-2:实参是变量的地址。

#inoIude"stdio.h"

voidswap(int*a,int*b)〃形参是指针变量

(

intt;

t=*a;//此处的*a就是主函数中的x,使主函数中的

x,V交换

*a=*b;

*b=t;

}

voidmain()

(

intx,y;

printf(”请输入两个整数:”);

scanf(1,%d%d,,,&x,&y);

printf(nx=%d,y=%d\n",x,y);

swap(&x,&y);〃实参是变量的地址

printf("x=%d,y=%d\n",x,y);

1

编程训练6-2-3:两数和的函数。

(1)以下函数是返回两数之和,请将主函数补充完整,运行程序

填写输出内容。

#incIude"stdio.h"

intfun(inta,intb)

(

intt;

t=a+b;

returnt;

}

voidmain()

(

intx,y,z;

printf(”请输入两个数:“);

scanf(u%d%dn,&x,&y);

z=fun(x,y);

printf("%d+%d=%d\n",x,y,z);

}

输入:56回车

输出:5+6=11

(2)更改上面的函数,无返回值,程序中的*c就是主函数中的z,

补充后再调试。

#incIude"stdio.h"

voidfun(inta,intb,int*c)

(

intt;

t=a+b;

*c=t;

)

voidmain()

(

intx,y,z;

printf("请输入两个数:");

scanf("%d%d",&x,&y);

fun(x,y,&z);

printf("%d+%d=%d\n",x,y,z);

)

输入:56回车

输出:5+6=11

(3)观察上题中fun函数体内的代码,将其缩减为一句

#incIude"stdio.h"

voidfun(inta,intb,int*c)

(

*c-a+b;

)

voidmain()

{

intx,y,z;〃定义三个整型变量x,y,z

printf(”请输入两个数:“);〃提示输入两个数

scanf("%d%d",&x,&y);〃输入两个数赋给x,y

fun(x,y,&z);〃函数调用

printf("%d+%d=%d\n",x,y,z);//输出

编程训练6-2-4:同时求两数和与两数差,主函数与函数间的多

值传递。

#incIude"stdio.h"

voidfun(inta,intb,int*c,int*d)

(

*c=a+b;

*d-a-b;

}

voidmain()

(

intx,y,z1,z2;

printf(”请输入两个数:");

scanf("%d%d,,,&x,&y);

fun(x,y,&z1,&z2);

printf("%d+%d=%d\n",x,y,z1);

printf("%d-%d=%d\n",x,y,z2);

1

输入:56回车

输出:5+6=11

5-6二-1

编程训练6-3-1阅读理解程序。

输入:56回车

输出:较大数是:6

编程训练6-3-2返回较小值的地址。

#include"stdio.h"

int*fmin(int*a,int*b)

(

if(*a>*b)

returnb;

eIse

returna;

}

voidmain()

intx,y,*p;

printf(”请输入两个数:“);

scanf("%d%d",&x,&y);

p=fmin(&x,&y);

printf("较小数是:%d\n",*p);

)

输入:1546

输出:较小数是:15

编程训练6-3-3功能扩充。

#include"stdio.h"

int*fmin(int*a,int*b)

(

if(*a>*b)

returnb;

eIse

returna;

}

voidmain()

{

intx,y,*p,i=2;

whiIe(i一)

(

printf(”请输入两个数:”);

scanf("%d%d",&x,&y);

p=fmin(&x,&y);

printfC较小数是:%d\n",*p);

)

1

输入:5678

输出:较小数是:56

输入:7856

输出:较小数是:56

任务测试模拟试卷选择题参考答案

选择题参考答案

1.DBBCA6.CCBCA11.BB

*更正:P176,印刷有误,分号错印为逗号。

2.以下定义语句中正确的是o

A)inta=b=O;B)

charA=65+1,b='b';

C)floata=1,*b=&a,*c=&b;D)

doublea=0.0;b=1.1;

填空题参考答案

1.s=p+3;22.int*z*z3.-1*sn4.05.

*pmax=*px;

改错题参考答案

floatk;if(*a<*c)

编程题参考答案

1.

#incIude"stdio.h"

voidfun(inta,intb,long*c)

(

*c=a/10*1000+b%10*100+a%10*10+b/10;

)

main()

{inta,b;Iongc;

printf("Inputa,b:");

scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("Theresultis:%ld\n",c);

}

2.

#incIude"stdio.h"

voidfun(inta,intb,int*x,int*y)

intc,d;

d=a*b;

if(a<b)

c二a,a二b,b二c;

c=a%b;

while(c)

(

a=b;

b二c;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论