您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言程序设计课后习题1-8参考答案
C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。数据运算包括算术运算和逻辑运算。控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。存储器是计算机中具有记忆能力的部件,用来存放程序和数据。输入设备是用来输入程序和数据的部件。输出设备正好与输入设备相反,是用来输出结果的部件。2、简述计算机的工作原理。答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。整个过程由控制器进行控制。3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。这类软件一般与具体应用无关,是在系统一级上提供的服务。系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。4、什么叫软件?说明软件与硬件之间的相互关系。答:软件是指计算机程序及有关程序的技术文档资料。两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。在不太严格的情况下,认为程序就是软件。硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。从这个意义上说,软件是用户与机器的接口。二、填空题1、算术逻辑2、键盘鼠标3、控制器运算器4、1025、00x6、原码反码补码7、00010111111010018、127-128三、选择题1、C2、A3、B4、A5、B6、B7、D8、A9、A10、B11、A12、B习题2参考答案一、简答题1、C语言有哪些特点?答:(1)简洁紧凑、灵活方便;(2)运算符丰富;(3)数据结构丰富;(4)C语言是结构式语言;(5)C语言的语法限制不太严格、程序设计自由度大;(6)C语言允许直接访问物理地址,可以直接对硬件进行操作;(7)C语言程序生成代码质量高,程序执行效率高;(8)C语言使用范围大,可移至性好;(9)具有预处理功能;(10)具有递归功能。2、C语言的主要应用有哪些?答:(1)许多系统软件和大型应用软件都是用C语言编写的,如UNIX、Linux等操作系统。(2)在软件需要对硬件进行操作的场合,用C语言明显优于其他高级语言。例如,各种硬件设备的驱动程序(像显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。(3)在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。(4)随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。(5)C语言适用于多种操作系统,像Windows、UNIX、Linux等绝大多数操作系统都支持C语言,其他高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。3、列举几种程序设计语言。答:C语言、Java语言、Pascal语言、BASIC语言、LOGO语言等。二、填空题1、机器语言汇编语言高级语言2、机器语言3、ALGOL604、多个函数5、main6、#include7、定义使用8、声明部分执行部分声明部分执行部分三、选择题1、D2、B3、B4、C5、C6、C7、D8、C9、D10、A11、B12、A13、B14、C15、A习题3参考答案一、填空题1、整型字符型实型2、字母数字下划线字母下划线3、直接符号符号4、00x5、126、487、-32768~327678、-169、x+=1;10、2611、(m/10)%10*100+m/100(100*10)+m%10二、选择题1、D2、C3、A4、B5、B6、D7、B8、C9、A10、A11、C12、B13、B14、D15、B16、D17、B18、D19、C20、A21、B22、D23、D24、D25、D26、D27、C28、A29、C30、B习题4参考答案一、填空题1、scanfprintf2、按指定的输出格式将信息输出到屏幕上常规字符格式控制符3、X、E、G4、getche输入的字符回显,而getch输入的字符不回显5、fflush6、解决某个问题的具体的方法和步骤7、自然语言描述伪代码流程图N-S图8、顺序分支循环二、选择题1、B2、C3、D4、C5、B6、C7、D8、C9、B10、B11、D12、C13、D14、D15、A三、编程题1、编写一程序要求任意输入四位十六进制整数,以反序的方式输出该十六进制数。例如:输入9AF0,则输出0FA9。#includestdio.hvoidmain(){unsignedshorta,b;scanf(“%4x”,&a)//输入4位十六进制数给变ab=(a&0X000F)12;//取a的最低一位十六进制数并左移12位后赋值给bb+=(a&0X00F0)4;//取a的次第一位十六进制数并左移4位后与b相加再赋值给bb+=(a&0X0F00)4;//取a的次高一位十六进制数并右移4位后与b相加再赋值给bb+=(a&0XF000)12;//取a的最高一位十六进制数并右移12位后与b相加再赋值给bprintf(“%4x\n”,b);//输出变化后的十六进制数}2、编程从键盘输入两个整数分别给变量a和b,要求在不借助于其他变量的条件下,将变量a和b的值实现交换。#includestdio.hvoidmain(){inta,b;scanf(“%d%d”,&a,&b);printf(“beforeswap:a=%db=%d\n”,a,b);a=a+b;b=a-b;a=a-b;printf(“afterswap:a=%db=%d\n”,a,b);}3、编程从键盘输入圆的半径r,计算出圆的周长和面积。#includestdio.h#definePI3.14159voidmain(){floatr,c,s;scanf(“%f”,&r);c=2*r*PI;s=PI*r*r;printf(“c=%fs=%f\n”,c,s);}4、编程从键盘输入任意一个十六进制负整数,以输入的形式输出。例如:输入-FA98,输出-FA98。#includestdio.hvoidmain(){shortinta;scanf(“%x”,&a);printf(“-%hx\n”,-a);}5、已知一元二次方程ax2+bx+c=0,编一程序当从键盘输入a、b、c的值后,计算x的值。#includestdio.h#includemath.hvoidmain(){floata,b,c;floatd;floatx1,x2;printf(“inputa,b,c:”);scanf(“%f%f%f”,&a,&b,&c);d=sqrt(b*b-4*a*c);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);printf(“x1=%.2fx2=%.2f\n”,x1,x2);}6、假设从键盘输入某日午夜零点到现在已经历的时间(单位:s),遍一程序计算到现在为止已近过了多少天,现在的时间是多少?#includestdio.hvoidmain(){unsignedlongt,r;intd,h,m,s;printf(“second=”);scanf(“%d”,&t);d=t/(24*3600);r=t%(24*3600);h=r/3600;m=(r%3600)/60;s=(r%3600)%60;printf(“havepasseddaysis%d,currenttimeis%02d:%02d:%02d\n”,d,h,m,s):}习题5参考答案编程题1、编一程序判断输入整数的正负性和奇偶性。#includestdio.hvoidmain(){inta;scanf(“%d”,&a);if(a=0)printf(“thenumber%dispositivenumber\n”,a);elseprintf(“thenumber%disnegativenumber\n”,a);if(a%2==0)printf(“thenumber%disevennumber\n”,a);elseprintf(“thenumber%disoddnumber\n”,a);}2、编程判断输入数据的符号属性。#includestdio.hvoidmain(){intx,sign;scanf(“%d”,&x);if(x0)sign=1;elseif(x==0)sign=0;elsesign=-1;printf(“sign=%d\n”,sign);}3、输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。#includestdio.hvoidmain(){intnum1,num2,num3;scanf(“%d%d%d”,&num1,&num2,&num3);if(num1=num2)if(num2=num3)printf(“%d%d%d\n”,num1,num2,num3);elseif(num1=num3)printf(“%d%d%d\n”,num3,num1,num2);elseprintf(“%d%d%d\n”,num1,num3,num2);elseif(num2=num3)printf(“%d%d%d\n”,num3,num2,num1);elseif(num1=num3)printf(“%d%d%d\n”,num2,num3,num1);elseprintf(“%d%d%d\n”,num2,num1,num3);}4、在屏幕上显示一张如下所示的时间表。#includestdio.hvoidmain(){charc;printf(“*****Time*****\n”);printf(“1morning\n”);printf(“2afternoon\n”);printf(“3night\n”);printf(“Pleaseenteryourchoice:”);c=getcahr();switch(c){case‘1’:printf(“Goodmorning\n”);brenk;case‘2’:printf(“Goodafternoon\n”);break;case‘3’:printf(“Goodnight\n”);break;default:printf(“Selectionerror!\n”);}}5、输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程。#includestdio.hvoidmain(){intyear,month;printf(“Inputyear,month:”);scanf(“%d%d”,&year,&month);switch(month){case1:case3:case5:case7:case8:case10:case12:printf(“31days\n”);break;case4:case6:case9:case11:printf(“30days\n”);break;case2:if((year%4==0&&year%100!=0)||(year%400==0))printf(“29days\n”);elseprintf(“28days\n”
本文标题:C语言程序设计课后习题1-8参考答案
链接地址:https://www.777doc.com/doc-2908341 .html