新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.pdf
《新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.pdf》由会员分享,可在线阅读,更多相关《新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.pdf(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、新编C语言程序设计教程 习题及实验题部分答案 第 1 章 C 语言概述 1习题 一、选择题 ADCDB CCBBA 二、简答题 1、什么就是语言?语言分几类?各有什么特点?语言:语言就是思维的载体。人与计算机打交道,必须要解决一个“语言”沟通的问题。如今 人与计算机之间有许多种类的“语言”的。语言分类:机器二进制语言、汇编语言(低级)与高级语言(第三代、第四代、)各自特点:1)机器二进制语言:用0、1两个数字编写的计算机能直接运行的程序的语言,机器语言执 行效率高,但难编写、难懂、难移植。2)汇编语言(低级):汇编语言的特点就是使用一些“助记符号”来替代那些难懂难记的二 进制代码,所以汇编语言
2、相对于机器指令便于理解与记忆,但它与机器语言的指令基本上就是 一一对应,两者都就是针对特定的计算机硬件系统的,可移植性差,因此称它们都就是“面向机 器的低级语言”。3)高级语言:高级语言类似自然语言(主要就是英语),由专门的符号根据词汇规则构成单 词,由单词根据句法规则构成语句,每种语句有确切的语义并能由计算机解释。高级语言包含 许多英语单词,有“自然化”的特点;高级语言书写计算式子接近于熟知的数学公式的规则。高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机器 指令。2、汇编语言与高级语言有何区别?高级语言程序要比汇编语言要易懂、明了、简短得多;高级语言与机器指
3、令完全分离,具 有通用性,一条高级语言语句常常相当于几条或几十条机汇编语言指令;高级语言要经过解释 或编译来执行的,而汇编语言程序通过汇编程序来生成机器程序来执行的。3、什么就是程序?完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”。不 同计算机语言有不同的计算机程序。4、C语言中为何要加注释语句?注释部分,起到说明语句或程序的作用。程序中应添加必要的注释,来增强程序的阅读与 理解。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符标注起来,使翻译跳过这些不作处理,待调 试结束后再按需去掉注释符。为此,注释也有调试的辅助作用。5、说说C语言
4、程序的组成?C语言程序包括由哪些部分?一个 C语言函数一般又由哪 几部分组成的?C语言程序的组成:一个C语言源程序可以由一个或多个源程序文件组成。C语言程序的组成部分:1、一个C语言源程序可以由一个或多个源文件组成;2、每个源文件可由一个或多个函数组成;3、一个源程序不论由多少个文件组成,都有一个且只能有一个 main函数,即主函数;4、源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源 文件或源程序的最前面;5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头与花括号“”之 后不能加分号;6、标识符,关键字之间必须至少加一个空格以示间隔。C语言函
5、数:一个C语言函数通常由函数首部(如int max(int a,int b)、函数体组成。函数体一般 又由局部变量定义与函数声明等组成的定义与声明部分、程序执行语句等组成的执行部分这 两部分组成的(如min函数所示)。第 2 章结构化程序设计与算法 2习题 一、选择题 BCDCD CBCAD 二、简答题 1、什么就是算法?算法的特点就是什么?什么就是算法:算法就就是解决某个问题或处理某件事的方法与步骤,在这里所讲的算法就是专指用计 算机解决某一问题的方法与步骤。算法的特点:1)有穷性 人们编制算法的目的就就是要解决问题,若该算法无法在一个有限合理的时间内完成问 题的求解,那么算法也就失去了其原
6、有的目的,人们就会摒弃它。而且人们研究算法,其目的还 在于它的高效率,即解决同一个问题的两个算法,人们往往选择其中那个运行效率高的。2)确定性 所谓算法的确定性就是指算法的每一个步骤都应该确切无误,没有歧义性。3)有零个或多个输入 执行算法时,有时需要外界提供某些数据,帮助算法的执行。一个算法可以没有输入,也可 以有多个输入。例如,求解N!,该算法就需要输入一个数据 N;而求解两数之与,该算法就需要 输入两个数据 4)有一个或多个输出 算法的目的就是求解,解就就是结果,就就是输出,否则就毫无意义。5)有效性 算法中的每一步都应该能有效地执行、可以实现,执行算法最后应该能得到确定的结果。2、结构
7、化程序设计的三种基本结构就是什么?其共同特点就是什么?结构化程序设计的三种基本结构:顺序、选择、循环三种基本控制结构 其共同特点:1)只有单一的入口与单一的出口;2)结构中的每个部分都有执行到的可能;3)结构内不存在永不终止的死循环。3、尝试用自然语言、流程图、N-S流程图或伪代码写出下面问题的求解算法。1)根据三边,求三角形的周长与面积 2)判断用户输入的一个整数就是奇数还就是偶数 3)求解一元二次方程 ax2+bx+c=0根 4)找出10个数据的最大数 5)将20个考生成绩中不及格者的分数打印出来 6)求 S=1+2+3+4十+100 解:略 实验2熟悉VC+6、0环境及算法 二、实验内容
8、 1、改错题#include main()(i nt x=2,y=3,a;a=x-y;printf(a=%d ,a);printf(n);/*换行*/2、程序填空题#include main()(int a,b,m;printf(Input a,b please!n);scanf(%d%d,&a,&b);m=a*b;/*赋值语句,将 a 与 b 之积值赋给 m*/printf(a*b=%dn,m);/*输出 a 与 b 积的结果值并换行*/3、设计与表示算法 判断一个数n能否同时被3与5整除。1)用伪代码表示 begin(算法开始)input n if(n/3*3)=n(if(n/5*5)=n
9、(print 数 n 能同时被 3 与 5 整除”end(算法结束)2)用 N-S 图表小第 3 章数据类型及其运算 3习题 一、选择题 BADCD DCBCA 二、阅读程序,给出运行结果 1、7,8,10 2、1,3 3、S P 12.60 4、4 61 57 9 112 三、编程题 1、(sin(sqrt(x*x)/(a*b)2、5、5输入n 2)流程图表示 输入n 除 3 4、金 1)#ii v P/include n 不能同时 除以 5的余熟为 intf(input a,b,c scanf(%d%d%d f 3.ease!n);&a,&b,&c);3 5 除 n能同时;sum=a*a*
10、a+b*b*b+fe*c;积值赋给 m*/printf(a*a*a+b*b*b+c*c*c=%dn 唱 um);/*支3与5整除 语句,将言与b 之 输出 a 与 b 积的结果值 并换行*/3、3 3 4、3 5、#include void main()(char c;c=getchar();printf(%cn,c);printf(%dn,c);6、#include int main()(float C,F;printf(请输入一个华氏温度:);scanf(%f,&F);C=(5、0/9)*(F-32);printf(摄氏温度 C=%5 2fn,C);return 0;7、#include
11、stdio#include h float a;a=exp(3 printf(%fn,a);return 0;、1415926);实验3数据类型及其运算 二、实验内容 1.改错题#include main()(int x,y;printf(请输入两个整数n);scanf(%d%d,&x,&y);printf(互换前的 x:%d y:%dn,x,y);x=x+y;y=x-y;x=x-y;printf(互换前的 x:%d y:%dn,x,y);该程序的运行结果:ABC abc 该程序的运行结果:请输入3个整数 2 4 6 ave=4、000000,ji=48 2、程序填空题#include mai
12、n()int i1,i2,i3,i;_ printf(Please input i1,i2,i3:);scanf(%d%d%d,&i1,&i2,&i3);i=i3 _ i2 _ i _ printf(i1=%dni2=%dni3=%dn,i1,i2,i3);3.编程题(1)从键盘输入 3 个大写英文字母,把它们转换成小写字母后输出。#include main()char c1,c2,c3;scanf(%c%c%c,&c1,&c2,&c3);c1=c1+32;c2=c2+32;c3=c3+32;printf(%c%c%cn”,c1,c2,c3);(2)从键盘输入 3 个整数,输出它们的平均值与积
13、。#include main()int a,b,c,ji;float ave;printf(请输入 3 个整数n);scanf(%d%d%d,&a,&b,&c);ave=(a+b+c)/3、0;ji=a*b*c;printf(ave=%f,ji=%dn”,ave,ji);第 4 章顺序结构程序设计 4习题 一、选择题 BBCBC DCBDD 二、阅读程序,给出运行结果 1、x=345 2、a=1,b=3 y=3、460000 a=3,b=1 3、a=123,f=457 三、编程题 1、2、法一:#include Int main()float x,xf;Int xi;Printf(“请输入一个
14、实数:”);Scanf(“f,&x);Xi=(int)x;Xi=x-xi;Printf(“该数的整数部分为:dn”,xi);Printf(“该数的小数部分为:5fn”,xf);Return 0;法二:#include double a,b;scanf(%lf,&a);b=a;long int p;p=(long int)a;printf(整数部分:%dn,p);printf(小数部分:%lf,(b-p);3、4、5、#include void main()float a,b,h;,以实现其功能 该程序的运行结果 4,6 x=0、480000 scanf(%d,%d,&a,&b);该程序的运行结
15、果:请输入圆半径r,圆柱高h:1、5 3 圆周长为:9、42 圆面积为:7、07 圆球表面积为:28、27 圆球体积为:14、14 float area;scanf(%f,%f,%f,&a,&b,&h);area=(a+b)*h/2;printf(梯形的面积为:%5、2fn,area);实验4顺序结构程序设计 二、实验内容 1.改错题 下列程序的功能为:按下列公式计算并输出 x 的值。其中 a 与 b 的值由键盘 输入。纠正程序中存在的错误 2ab x 2(a b)#include stdio main()int a,b;float x;scanf(%d,%d,a,b);x=2ab/(a+b)
16、(a+b);x=2、0*a*b/(a+b)*(a+b);printf(x=%dn,x);printf(x=%fn,x);2、程序填空题 下列程序的功能为:设圆半径r=1、5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用 scanf 输入数据 r、h,输出计算结果,输出时要求有文字 2.2.说明,取小数点后 2 位数子。(周长 l=2 r,圆面积 s=r,圆球表面积 sq=4 r,圆球 4 3 体积 vq=3;圆柱体积 vz=h),请补充完善程序,以实现其功能#include main()(float pi,h,r,ly,sy,sq,vq,vz;pi=3、1415926;
17、printf(-请输入圆半径 r,圆柱高 h:n);scanf(%f%f,&r,&h);ly=2*pi*r;sy=pi*r*r;该程序的运行结果 ABC A B C 该程序的运行结果 a=1,b=3,c=2 x1=!00 x2=-2、00 sq=4*pi*r*r;vq=4、0/3*pi*r*r*r;vz=pi*h*r*r;printf(一圆周长为:%、2fn,ly);printf(圆面积为:%)2fn,sy);printf(圆球表面积为:%、2fn,sq);printf(圆球体积为:%、2fn,vq);printf(圆柱体积为:%、2fn,vz);3、编程题(1)编写一个程序实现如下功能:从键
18、盘输入 3 个字符,然后在屏幕上分 3 行输 出该 3 个字符。#include main()(char c1,c2,c3;c1=getchar();c2=getchar();c3=getchar();putchar(cl);putchar(n);putchar(c2);putchar(n);putchar(c3);putchar(n);(2)编写一个程序实现如下功能:输入一元二次方程 ax2+bx+c=0 的系数 a、b、c,求方程的根。要求:运行该程序时,输入 a、b、c 的值,分别使 b2-4ac 的值大丁、等丁与小丁零,观察并分析运行结果。求根公式如下:法一:#include#incl
19、ude void main()(float a,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2、0*a);q=sqrt(disc)/(2、0*a);x1=p+q;x2=p-q;printf(x1=%5、2fnx2=%5、2fn,x1,x2);法二:、Yes#include#include void main()(float a,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,&a,&b,&c);if(a=0)printf(不就是二次方程n);else disc=b*
20、b-4*a*c;if(disc0)printf(无实根 n);else if(disc=0)p=-b/(2、0*a);q=sqrt(disc)/(2、0*a);x1=p+q;x2=p-q;printf(有两个相同的实根n);printf(x1=%5、2fnx2=%5、2fn,x1,x2);else p=-b/(2、0*a);q=sqrt(disc)/(2、0*a);x1=p+q;x2=p-q;printf(有两个不同的实根n);printf(x1=%5、2fnx2=%5、2fn,x1,x2);第 5 章选择结构程序设计 5习题 一、选择题 BBCBB CBACB 二、阅读程序写出运行结果 1、
21、-2 2 3、(1)2(2)3 CC A=2,b=2,c=4 4、*&53 2 三、编程题 1、#include int main()(int a,b;/先判断 a 就是否大于等于 0,如果就是的话 a=b if(a=0)(b=a;/如果不就是的话,先对 a 按位取反,然后再加一 else(b=a;b=b+1;coutbendl;getchar();2、略 3、#include int main(void)(int n;int status=1;while(status)(printf(输入:);scanf(%d,&n);switch(n)(case 0:printf(舞蹈 n);break;
22、case 1:case 3:printf(乒乓球 n);break;case 2 case 4:printf(篮球 n);break;case 5:该程序的运行结果:请输入3个整数:5 2 7 3个数中最大者为:7 printf(保龄球 n);break;case 6:printf(吉她 n);break;default:status=0;return 0;实验5选择结构程序设计 二、实验内容 1.改错题 下列程序的功能为:输入 3 个整数后,输出其中最大值。请纠正程序中存在错误 使程序实现其功能。#include stdio、h main()(int a,b,c,max;printf(请输入
23、 3 个整数:n);scanf(%d%d%d”,&a,&b,&c);max=a;if(cb)(if(ba)max=c;/*cba*/else/*bc*/(if(ca)max=b;/*bca*/printf(3 个数中最大者为:%dn,max);改正后的程序:#include stdio、h main()(int a,b,c,max;printf(请输入 3 个整数:n);scanf(%d%d%d,&a,&b,&c);max=a;if(cb)(if(ca)max=c;else(if(ba)max=b;printf(3 个数中最大者为:%dn,max);2、程序填空题#include main()
24、(int a,b,d;char ch;printf(Please input a expression:);scanf(%d%c%d,&a,&ch,&b);/*输入数学表达式*/switch(ch)(case+:d=a+b;printf(%d+%d=%dn”,a,b,d);break;case-:d=a-b;printf(%d-%d=%dn,a,b,d);break;case*:d=a*b;printf(%d*%d=%dn”,a,b,d);break;case/:if(b=0)printf(Divisor is zeron);else printf(%d/%d=%fn,a,b,(float)a
25、/b);/*强制类 型转换*/break;default:printf(Input Operator error!n);3、编程题(1)#include main()(int a,b,c,max,min;float sum,d,e;printf(-请输入三个数:);scanf(%d%d%d,&a,&b,&c);sum=a+b+c;d=sum/3;e=a*b*c;if(ab)(max=a;min=b;else(max=b;min=b;if(maxc)min=c;printf(三个数的与 1fn,sum);printf(三个数的平均值2fn,d);printf(三个数的积 1fn,e);print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编 语言程序设计 教程 机械工业 出版社 钱雪忠吕莹楠
限制150内