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

实验六答案

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

359216180.docx答案

实验六函数与编译预处理答案

一、断点的设置和取消、单步执行跟踪进入函数和跳出函数方法练习

2、调试练习:

要求:模仿示例调试以下程序,直到输出正确结果,源程序名为error6_2.c 程序功能:利用函数调用求“1!+2!+3!+4!+...+10!”的值(参见实验教材72页程序

填空题第(1)小题)

源程序(有错误的程序——不是语法错误,而是算法错误或逻辑错误):

改正错误后的源程序:

void main() {

long s=0,i;

long mm(int k); for(i=1;i<=10;i++) s=s+mm(i);

printf(\}

long mm(int k) {

long t=1, j;

for(j=1;j<=k;j++) t=t*j; return (t); }

3、综合调试、改错练习:

以下程序有多处错误,请综合运用前面所学过的所有知识和VC++的调试手段,改正程序的各种错误,使其运行出正确的结果。程序的功能是:利用函数调用求任意两个整数的和。 改正错误后的源程序:

1

359216180.docx答案

main() {

int sum(int a,int b); int x,y;

scanf(\

printf(\,y=%d\\n\

printf(\sum(x,y)); }

int sum(int a,int b) {

return (a+b); }

二、编程练习

利用VC++编写程序,并调试、运行,直到输出正确结果。

编程练习1: 注意:

这里提供了以填空的形式出现源程序参考清单,目的是给同学们一个思路。最好不要将此源程序清单复制到VC++中,否则会出现多处语法错误。同学们可以据此思路来填写有关语句,从而完成程序。在调试程序时,一定要运用前面学过的方法。

下面函数是实现求[1,3000]能被17或23整除的整数的个数。请将程序补充完整,并调试运行,直到输出正确结果。(源文件名为blank6_1.c) 完成填空后的源程序: #include

int f(int m, int n) {

int i, count=0;

for(i=m; i<=n; i++) if(i==0||i#==0) count++;

return count; } main() {int m,n;

scanf(\;

printf(\f(m,n)); }

2

359216180.docx答案

编程练习2:

(1) 编写一函数接受主调函数实参n(这里n==5),并输出如下图形。n的值通过键盘输入,并由主函数中的语句来由实现。程序以文件名print_1.c保存。

0***0 *0*0* **0**

*0*0* 0***0

源程序:

#include

void printg(int);/* 因为被调函数printg()在主调函数main()之后,需对被调函数声明*/ main ( ) {

int a;

printf(\ scanf(\

printg(a);/* 在主调函数main()中调用被调函数printg(a) ,其中a为实参*/ }

void printg(int n) {int i,j;

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

for(j=1;j<=n;j++) if(i==j||i+j==n+1) printf(\ else

printf(\ printf(\ } }

(2)写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。源程序以文件名primefun.c保存。 源程序1:

prime(int n) {int i,j;

for(i=2;i

j=n%i; if(j==0)

3

359216180.docx答案

{

printf(\不是素数\\n\ break; } }

if(i==n)

printf(\是素数\\n\}

main() {int n;

printf(\请输入一个大于2的正整数:\\n\ label: scanf(\

if(n<=2) {printf(\输入数据错误,请重新输入:\\n\ prime(n); }

源程序2:

int prime(int n) {int i,j,flag;

for(i=2;i

j=n%i; if(j==0) {

flag=0; break; } }

if(i==n) flag=1; return flag; }

main() {int n,f;

printf(\请输入一个大于2的正整数:\\n\ label: scanf(\

if(n<=2) {printf(\输入数据错误,请重新输入:\\n\ f=prime(n); if(f==1)

printf(\是素数\\n\else

printf(\不是素数\\n\}

4

359216180.docx答案

编程练习3:

实验教材:(P17-21:实验5函数与编译预处理)

二、实验内容 第3题

其中第(3)、(4)、(5)为必做题,其余为选做题

(3)定义函数int f ( int x) 判断x是否是回文数,若是则函数返回1,否则返回0。例如12321和2332为回文数。通过main函数验证之

源程序:

int f(long x)

{int c[100],i=1,n=0,k=0,b=1,y=x;

while (x>=10) //求出x是几位数,并存于i中 {x=x/10; i++;}

while(n

while(k<=i/2)//判断x是否是回文数 {if (c[k]!=c[i-k-1]) {b=0;break;} k++;}

if(b==1) return 1; else

return 0; }

main()

{long n; int flag;

printf(\请输入一个正整数:\\n\ scanf(\ flag=f(n); if(flag==1)

printf(\是回文数,函数返回值是1\\n\ else

printf(\不是回文数,函数返回值是0\\n\}

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验六答案在线全文阅读。

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