2017西南 秋季 大作业 C语言程序设计【0039】答案.pdf
都控制在人们容易理解和处理的范围内。结构化程序设计提倡模块化的设计方法(3)函数是构成 C 语言程序设计的基本单位,请问函数由哪两部分构成?在 VC6.0 环境下,调试程序的基本步骤有哪些?调试程序中常见的错误有哪些?如何排除这些错误?(14 分)答:函数由首部和函数体两部分构成。基本步骤:(1)编辑(2)编译(3)连接(4)运行程序西南大学网络与继续教育学院课程考试试题卷西南大学网络与继续教育学院课程考试试题卷类别:网教专业:计算机科学与技术 2017 年 12 月课程名称【编号】:C 语言程序设计【0039】A 卷大作业满分:100 分一、大作业题目一、大作业题目1.1.简述题(共简述题(共 3030 分)分)(1)学习 C 语言程序设计的意义在于构建程序设计的思想和方法、提升阅读程序能力和编写程序能力。请简要说明你在 C 语言程序设计学习过程中主要通过哪些途径来学习?学习了哪些内容?通过 C 语言的学习,你有何感受和体会?在回答问题要求真实真情表达(10 分)答:途径:(1)理解和记忆程序基本结构(2)熟练上机调试技能(3)灵活掌握编程技巧(4)以考促学(5)锻炼创新能力学习了掌握三种基本结构程序设计思想,阅读、分析和设计算法的能力,必要的程序设计基本技能训练以及掌握调试程序的基本技能等内容C 语言是一门很有用的、对于我们的就业很实际的语言,学习好 C 语言是一项必须而实际的任务。我们必须要好好掌握。(2)C 语言程序设计是一种结构化程序设计语言,请问结构化程序的基本思想是什么?(6 分)程序中常见的错误有:语法错误、超出系统允许范围的错误和逻辑错误。1 语法错误:在编写程序时违反了 C 语言的语法规定。语法不正确、关键词拼错、标点漏写、数据运算类型不匹配、括号不配对等都属于语法错误,在进入程序编译阶段,编译系统会给出出错行和相应“出错信息”。我们可以双击错误提示行,将光标快速定位到出错代码所在的出错行上。根据错误提示修改源程序,排除错误。2 连接错误:如果使用了错误的函数调用,比如书写了错误的函数名或不存在的函数名,编译系统在对其进行连接时便会发现这一错误。纠正方法同 1。3 逻辑错误:虽然程序不存在上述两种错误,但程序运行结果就是与预期效果不符。逻辑错误往往是因为程序采用的算法有问题,或编写的程序逻辑与算法不完全吻合。逻辑错误比语法错误更难排除,需要程序员对程序逐步调试,检测循环、分支调用是否正确,变量值是否按照预期产生变化。4 运行错误:程序不存在上述错误,但运行结果时对时错。运行错误往往是由于程序的容错性不高,可能在设计时仅考虑了一部分数据的情况,对于其他数据就不能适用了。例如打开文件时没有检测打开是否成功就开始对文件进行读写,结果程序运行时,如果文件能够顺利打开,程序运行正确,反之则程序运行出错。要避免这种类型的错误,需要对程序反复测试,完备算法,使程序能够适应各种情况的数据。2.2.编程题编程题(1)编写一个函数计算函数f(x,y)x3y 1的 值,要求有输入输出提示,输出结果保留小数点后 2 位。答:结构化程序设计是指在程序的构成上只使用顺序、选择(即分支)和循环 3 种结构答:#include stdio.h组成的编程方式。它强调程序设计风格和程序结构的规范化,提倡清晰的结构。结构化程#include math.hvoid main()序设计方法的基本思路,是把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题-1-double x,y,result;printf(请分别输入 x,y 的值:);scanf(%lf%lf,&x,&y);result=sqrt(y+1)+x*x*x;printf(函数 f(%.0lf,%.0lf)=%.2lfn,x,y,result);(2)编写程序输出 1-1000 之间能够被 5 整除的所有整数,并求出这些整数的和输出。(3)从键盘输入 10 个正的整数,找出其中的素数输出。答:#include#includeint f(int x)int i;for(i=2;i=sqrt(x);i+)if(x%i=0)return 0;return 1void main()int a10,i,n=0,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)if(f(ai)n+;else ai=0;for(i=0;i9;i+)for(j=0;j9-i;j+)if(ajAJ+1)t=aj;aj=aj+1;aj+1=t;printf(共有%d 个素数,它们是:,n);(4)编写程序打印下列图案(5)写一个函数计算一个字符串的长度,再写一个测试函数测试其功能。不允许使用strlen 函数(6)从键盘上任意输入 50 个整数存放在 a 数组中,找出 a 数组中所有偶数存放在数组 b中,并对 b 数组的值按降序排列。要求:(a)编写一个 sort(int n,int b)函数实现排序功能。(b)除 sort 函数外,其余在主函数内完成,但主函数必须调用 sort 函数实现排序功能。(c)程序必须有输入输出提示。答:#include stdio.hvoid sort(int a,int n)int i,j,t;for(i=0;i n;i+)for(j=0;j aj+1)t=aj;aj=aj+1;aj+1=t;printf(排序以后的数:);for(i=1;i=n;i+)printf(%d,ai);printf(n);int main()int array50;int b50;int i,j=0;printf(请输入 50 个整数:);for(i=0;i 50;i+)scanf(%d,&arrayi);if(arrayi%2=0)bj+=arrayi;printf(这 50 个整数中,偶数的有:);for(i=0;i j;i+)printf(%d,bi);printf(n);sort(b,j);return 0;3.依据下列提供的程序回答问题#include intfun(inta,intb)intr;while(r=a%b)!=0)-2-a=b;b=r;r=a%b;return(b);main()intnum1,num2,a;printf(请输入两个整数:);scanf(%d,%d,&num1,&num2);printf(num1=%dnum2=%dnn,num1,num2);a=fun(num1,num2);printf(%d 和%d 中的最大公约数是%dnn,num1,num2,a);(1)上述提供程序中,函数 fun 的功能是什么?(2)请依据提供的函数 fun 的程序代码,画出该算法的传统流程图或 N-S 图或自然语言描述。(3)在 VC6.0 环境下,运行上述程序时,若输入的 num1 和 num2 分别为 49 和 21,则输出结果是什么?答:(1)函数 fun 的功能是:求两个非零正整数的最大公约数(2)(3)若 num1 和 num2 分别为 49 和 21,则输出的最大公约数为 7二、大作业要求二、大作业要求大作业共需要完成 3 个大题:第 1 题,满分 30 分;第 2 题(1)-(5)任选两题完成,各 15 分,(6)题必做,10 分,满分 40 分;第 3 题(1)-(3)必做,满分 30 分。-3-