77范文网 - 专业文章范例文档资料分享平台

C语言程序设计及实验指导练习及习题参考答案(8--10)(4)

来源:网络收集 时间:2019-01-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

*py = &y; /* 让其分别指向x、y 和max 三个变量*/

*pmax = &max; /* 其中,max 用来保存x、y 中较大的变量*/ *pmax = *px; /* 调试时设置断点 */ if(pmax < py)

pmax = py;

printf(\return 0;

}

运行结果(改正后程序的运行结果) 3 5

max = 5 改错汇总

错误行号: 7 正确语句: px = &x; 错误行号: 8 正确语句: py = &y;

错误行号: 9 正确语句: pmax = &max; 错误行号: 11 正确语句: if(*pmax < *py) 错误行号: 12 正确语句: *pmax = *py; 二、改错题

改正下列程序中的错误,有n 个整数,使前面各数顺序循环移动m 个位置(m

After moved: 3 4 5 1 2

源程序(有错误的程序) 1 #include

2 void mov(int *x, int n, int m); 3 int main(void) 4 {

5 int a[80], i, m, n, *p; 6

7 printf(\8 scanf(\9 for(p = a, i = 0; i < n; i++) 10 scanf(\11 mov(a,n,m);

12 printf(\13 for(i = 0; i < n; i++) 14 printf(\15

16 return 0; 17 }

18 void mov(int *x, int n, int m)

19 {

20 int i,j,k;

21 for(i = 0; i < m; i++){ 22

23 for(j = n-1; j > 0; j--) 24 x[j] = x[j - 1]; 25 x[0] = x[n – 1]; 26 } 27 }

改错汇总

错误行号: 10 正确语句: scanf(\行号: 22 增加语句: k = x[n-1]; 错误行号: 25 正确语句: x[0] = k; 三、编程题

1. 编写程序计算输入的两个实数的和与差。要求自定义一个函数sum_diff(float op1, float op2,float *psum, float *pdiff),其中op1 和op2 是输入的两个实数,*psum 和*pdiff 是计算得出的和与差。自定义main 函数,并在其中调用sum_diff 函数。 输入输出示例

input op1 and op2 : 4 6

4.000000+6.000000=10.000000; 4.000000-6.000000=-2.000000 解答:参见8.3.1 节中8-2 题。

2. 编写程序拆分输入实数的整数部分与小数部分。要求自定义一个函数void splitfloat(float x,int *intpart, float *fracpart),其中x 是被拆分的实数,*intpart 和*fracpart 分别是将实数x 拆分出来的整数部分与小数部分。自定义main 函数,并在其中调用splitfloat 函数。 输入输出示例 12.4567

The intpart is: 12

The fracpart is: 0.456700 解答:

#include

void splitfloat(float x, int *intpart, float *fracpart); int main(void) {

float x, frac_part; int int_part; scanf(\

splitfloat(x, &int_part, &frac_part); printf(\printf(\return 0; }

void splitfloat(float x, int *intpart, float *fracpart) {

if(x<0) x=-x;

*intpart=(int)x;

*fracpart=x-*intpart;

}

3. 定义函数void sort(int a[],int n),用选择法对数组a 中的元素升序排序。自定义main 函数,并在其中调用sort 函数。 输入输出示例 Input n (n<=10): 6

Input array of 6 integers:1 5 –9 2 4 –6 After sorted the array is: -9 –6 1 2 4 5 解答:

#include

void swap (int *px, int *py); void sort(int a[ ], int n); int main(void) {

int n, a[10], i;

printf(\scanf(\

printf(\:\for (i=0; i

scanf(\sort (a,n);

printf(\for (i=0; i

printf(\return 0; }

void sort(int a[ ], int n) {

int i, j, index;

for( i = 0; i < n-1; i++ ) {

index=i;

for (j = i+1; j < n; j++ )

if (a[j] < a[index])

index = j;

swap (&a[i], &a[index]); } }

void swap (int *px, int *py) {

int t; t = *px; *px = *py;

*py = t;

}

4. 在数组中查找指定元素。输入一个正整数n (1

输入输出示例(运行2 次) 第一次运行: Input n: 3

Input 3 integers:1 2 -6 Input x:2 index = 1

第二次运行: Input n: 5

Input 5 integers:1 2 2 5 4 Input x:0 Not found 解答:

#include int main(void) {

int i, n, res, x; int a[10];

int search(int list[], int n, int x); scanf(“%d”,&n); for(i = 0; i < n; i++)

scanf(\scanf(\res = search(a, n, x); if(res != -1)

printf(\else

printf(\return 0; }

int search(int list[], int n, int x) {

int i;

for(i = 0; i < n; i++)

if(list[i] == x) return i; return -1; }

5. 有n 个人围成一圈,按顺序从1 到n 编好号。从第一个人开始报数,报到3 的人退出圈子,下一个人从1 开始重新报数,报到3 的人退出圈子。如此下去,直到留下最后一个人。

问留下来的人的编号。 输入输出示例 Input n: 5 Last No is: 4

解答:参见8.3.2 节中程序设计第4 题。

9

1 练习参考答案

9-1 上机运行例9-1 的程序。 解答:(略)

9-2 定义一个能够表示复数的结构类型,一个复数包括实数与虚数两个部分。 解答:

struct complex{ float real;

float imaginary; };

9-3 人的出生日期由年、月、日组成,请在例9-1 中的通讯录结构中增加一个成员:出生日期,用嵌套定义的方式重新定义该结构类型。 解答: struct date{ int year; int month; int day; };

struct nest_student{ int num;

char name[10];

struct date birthday; /* 定义出生日期 */ int computer, english, math; double average; };

9-4 例9-2 中,如果不定义函数count_average (),应该如何改写主函数,以实现程序功能。 解答:

将主函数中的语句:

s1.average = count_average (s1); /*函数调用,结构变量作为函数参数*/ 改写为:

s1.average = (s1.math + s1.english + s1.computer) / 3.0;

9-5 例9-2 中,如果要计算的是三门课程的课程平均成绩,应该如何改写程序。 解答:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计及实验指导练习及习题参考答案(8--10)(4)在线全文阅读。

C语言程序设计及实验指导练习及习题参考答案(8--10)(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/419153.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: