C++程序设计教程10
《C语言程序设计教程》(第三版)李凤霞 主编——第一章习题答案

第一章:程序设计基础知识一、单项选择题1、面向过程的程序设计语言是________。
A)机器语言 B)汇编语言 C)高级语言 D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是_________。
A)设计数据结构和算法B)建立数学模型C)编写程序 D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是_________。
A)枚举法B)递推法 C)分治法 D)排序法4、以下不属于算法基本特征的是__________。
A)有穷性 B)有效性C)可靠性 D)有一个或多各输出5、以下描述中不正确的是___________。
A)程序就是软件,但软件不仅仅是程序。
B)程序是指令的集合,计算机语言是编写程序的工具。
C)计算机语言都是形式化的语言,它有一个语法规则和定义。
D)计算机语言只能编写程序而不能表示算法。
6、下面描述中,正确的是_____________。
A)结构化程序设计方法是面向过程程序设计的主流。
B)算法就是计算方法。
C)一个正确的程序就是指程序书写正确。
D)计算机语言就是编写程序的工具而不是表示算法的工具。
7、下面描述中,不正确的是______________。
A)递归法的关键是必须有一个递归终止的条件。
B)递归算法要求语言具有反复自我调用子程序的能力。
C)对于同一个问题,递推算法比递归算法的执行时间要长。
D)递推算法总可以转换为一个递归算法。
8、N-S图与传统流程图比较,主要优点是_________。
A)杜绝了程序的无条件转移。
B)具有顺序、选择和循环三种基本结构。
C)简单、只管。
D)有利于编写程序。
A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。
(判断条件)2、结构化程序设计是__________应遵循的方法和原则。
(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。
(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。
c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
C语言程序设计教程课程教学大纲

《C语言程序设计教程》课程教学大纲课程性质:必修课课程类型:专业基础课总学时: 64(理论教学32+实践教学32)学分: 4 一、本课程的地位及作用关于运算机专业的学生来讲,C语言是一门很重要的基础语言,同时,《C语言程序设计教程》作为一门重要的基础课程,对后继专业课程的学习,起到相当重要的铺垫作用。
C语言是现今应用最为普遍的几种语言之一,在实际编程应用中,它有其他语言所无法比拟的优势。
在学习的同时,培育学生具有扎实的软件开发大体技术,并养成良好的编程风格,为进一步学习后续课程和以后从事应用软件开发奠定良好的基础。
二、课程教学目标及教学任务(一)教学目标教学目标列表:目标内容具体目标能够了解C语言大体的语法知识能够运用结构化程序的3种大体结构和数组能够了解指针的操作理论知识能够运用结构体的操作能够运用函数实现简单项目能够了解文件的利用及简单链表的操作能够了解程序设计的大体风格,形成良好的编程适应能够分析和明白得较复杂的C程序专业技术能够对照已有程序,进行功能上的扩展和完善能够运用流程图来描述算法,能运用所学知识和技术对一样问题进行分析和程序设计能够了解如安在VC环境下调试程序职业道德培育学生学习新技术的能力(二)教学任务本课程终止时需要提交3个项目的代码:一、计算器项目代码。
要求:运用带参数函数完成计算器的加、减、乘、除等四那么运算及累加、阶乘、均值、方差等运算。
代码量约为400行左右。
二、学生成绩治理系统V1.0项目代码。
要求:运用数组、字符串、指针等知识,完成对学生成绩的输入、输出、查找和排序等功能。
代码量约为600行。
3、学生成绩治理系统V2.0项目代码。
要求:运用结构体数组的相关知识,完成学生成绩的输入、输出、查找和排序等功能。
代码量约为800行。
三、各单元教学内容及大体要求第1单元 C语言概述及基础知识(一)教学内容 1.1 C程序架构及C语言的数据类型 1.2 运算符与表达式(二)教学要求把握C语言开发工具的利用方式把握C程序的结构及特点,把握大体数据类型,变量,运算符与表达式的利用(三)教学重点与难点重点:C进展和特点C程序的大体结构C程序的开发进程 Visual C++开发环境介绍数据类型常量与变量运算符与表达式难点:Visual C++开发工具的利用和C程序的结构及特点数据类型常量与变量运算符与表达式第2单元程序设计结构及应用(一)教学内容 2.1 顺序结构2.2 选择结构 2.3 循环结构(二)教学要求把握简单函数的编写方式把握经常使用的运算符把握选择和循环结构的程序设计把握函数之间彼此挪用,简单系统的程序设计(三)教学重点与难点重点:if嵌套、switch分支结构、循环结构函数的利用自编写函数的挪用难点:if嵌套、switch分支结构、循环结构函数的利用自编写函数的挪用第3单元低级应用能力(一)教学内容 3.1 计算器项目 3.2 数组的大体概念 3.3 数组元素的查询3.4 数组元素的排序 3.5 字符数组(二)教学要求了解数组的应用把握一维数组的概念、引用、初始化、输入、输出把握数组的查询、排序等算法把握字符串的概念、字符串的经常使用函数的利用等(三)教学重点与难点重点:把握一维数组的概念、引用、初始化、输入、输出把握数组的查询、排序等算法把握字符串的概念、字符串的经常使用函数的利用等难点:把握一维数组的概念、引用、初始化、输入、输出把握数组的查询、排序等算法把握字符串的概念、字符串的经常使用函数的利用等第4单元指针的概念及引用(一)教学内容 4.1 学生成绩治理V1.0项目 4.2 指针的概念及应用 4.3指针作函数参数 4.4 指针和一维数组 4.5 指针和字符串(二)教学要求把握指针的概念和相关操作把握指向数组的指针操作(三)教学重点与难点重点:指针明白得、指针概念和初始化指针作函数参数指向数组的指针操作和应用难点:把握指向数组的指针操作第5单元 C语言的高级应用能力(一)教学内容 5.1 结构体的大体概念 5.2 结构体数组 5.3 文件的大体操作 5.4 学生成绩治理系统V2.0项目(二)教学要求把握结构体的概念方式把握结构体的相关操作把握文件的操作方式(三)教学重点与难点重点:结构体的利用文件的利用难点:结构体的利用文件的利用第6单元温习(一)教学内容6.1 温习(二)教学要求把握所学的全数内容(三)教学重点与难点重点: C语言的编程标准及重要的语法知识难点:重要语法知识四、实践项目实施打算表此表用于描述课程实践(含实验)项目的具体内容、目的及实践场所。
第01章 C语言程序设计

精确控制计算机的唯一途径,就是学习 和掌握计算机语言——程序设计语言。
13
什么是程序
荀卿曰。程者,物之準也。程者,權衡丈 尺斗斛之平法也。 序:形声。从广,予声。与房屋有关。 本义:东西墙。引申:次第。
14
日常生活中的程序
$ 银行
3. 叫到号,办理业务 4.银行职员办理取款事宜 5.签名拿到钱并离开银 行 2. 取号等待 1. 带上存折去银行
秘书
程序:为了让计算机执行某些操作或解决某 个问题而编写的一系列有序指令的集合
16
程序、数据、文档
软件 – 菜肴
软件开发人员 – 厨师
软件中的数据 – 食材
软件中的程序 – 烹饪流程 软件的文档 – 菜谱
执行结果
计算机基本工作过程
“冯· 诺依曼机”结构
源程序 和输入数据 输出结果
记忆 装置
你认为计算机的本领是哪些?
不知疲倦地高速运算
海量的存储能力
10
计算机如何改变着我们的生活?
+ 网络
云计算
物联网
智慧地球
运程医疗
嵌入系统
11
1.2 计算机
计算机用二进制表达万物?
二进制在电器元件中容易实现
二进制的加法非常简单
12
计算机:计算的机器 computer:comput+er
计算机直接能读懂的语言。
机器语言(Machine Code),也叫机器代码 一种纯粹的二进制语言
程序设计语言的故事
机器语言编写的1+1程序
10111000 00000001 00000000 00000101 00000001 00000000
新编C语言程序设计教程(机械工业出版社-钱雪忠-吕莹楠)

新编C语言程序设计教程习题及实验题部分答案第1章 C 语言概述1 习题一、选择题ADCDB CCBBA二、简答题1、什么是语言?语言分几类?各有什么特点?语言:语言是思维的载体。
人和计算机打交道,必须要解决一个“语言”沟通的问题。
如今人与计算机之间有许多种类的“语言”的。
语言分类:机器二进制语言、汇编语言(低级)和高级语言(第三代、第四代、……)各自特点:1)机器二进制语言:用0、1两个数字编写的计算机能直接运行的程序的语言,机器语言执行效率高,但难编写、难懂、难移植。
2)汇编语言(低级):汇编语言的特点是使用一些“助记符号”来替代那些难懂难记的二进制代码,所以汇编语言相对于机器指令便于理解和记忆,但它和机器语言的指令基本上是一一对应,两者都是针对特定的计算机硬件系统的,可移植性差,因此称它们都是“面向机器的低级语言”。
3)高级语言:高级语言类似自然语言(主要是英语),由专门的符号根据词汇规则构成单词,由单词根据句法规则构成语句,每种语句有确切的语义并能由计算机解释。
高级语言包含许多英语单词,有“自然化”的特点;高级语言书写计算式子接近于熟知的数学公式的规则。
高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机器指令。
2、汇编语言与高级语言有何区别?高级语言程序要比汇编语言要易懂、明了、简短得多;高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机汇编语言指令;高级语言要经过解释或编译来执行的,而汇编语言程序通过汇编程序来生成机器程序来执行的。
3、什么是程序?完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”。
不同计算机语言有不同的计算机程序。
4、C语言中为何要加注释语句?注释部分,起到说明语句或程序的作用。
程序中应添加必要的注释,来增强程序的阅读与理解。
注释用来向用户提示或解释程序的意义。
在调试程序中对暂不使用的语句也可用注释符标注起来,使翻译跳过这些不作处理,待调试结束后再按需去掉注释符。
C10第6章 数组(2)

注意
上面的初始化语句与char {'C , h , i , n , 1. 上面的初始化语句与char c[ ] = { C','h','i','n', 'a'};并不等价, a } 并不等价, 而与char c[6]={'C , h , i , n , a , \ } 而与char c[6]={ C','h','i','n','a','\0'};等价 (最后一个空字符可以省略而自动赋值为'\0')。 最后一个空字符可以省略而自动赋值为 \ )。 是一个长度为10的字符数组,则赋值语句c 10的字符数组 2. 设c是一个长度为10的字符数组,则赋值语句c = "China";并不正确, "China";并不正确, 用字符串直接给字符数组赋值的格式只能用于初始化语 句。char c[ ] = "China";
大整数的表示
数组的长度可以很大, 数组的长度可以很大,因此可以用无符号长整型的一维 数组一个大整数。数组的每个元素表示整数的一位或几位。 数组一个大整数。数组的每个元素表示整数的一位或几位。 如定义一个长度为10万的无符号长整型一维数组, 如定义一个长度为10万的无符号长整型一维数组,让每个 10万的无符号长整型一维数组 数组元素表示整数的5位,则该数组可以表示一个长达50 数组元素表示整数的5 则该数组可以表示一个长达50 万位的大整数。 万位的大整数。 现有unsigned {0};, ;,如果用 现有unsigned long result[50000] = {0};,如果用 数组result存储整数12的阶乘479001600,则数组result 数组result存储整数12的阶乘479001600,则数组result result存储整数12的阶乘479001600 的状 输出字符串时,遇到结束标志空字符 \ 时输出就结束 输出字符串时,遇到结束标志空字符'\0'时输出就结束 了。
C语言程序设计教程上机实验--学生版(精品)
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
c语言程序设计教程第二版课后答案
c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
C语言程序设计教程(第二版)电子工业出版社,黄皮书课后答案
习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
顺序结构,选择结构,循环结构2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
4. 略5. 略1-3 编程题1.main(){ float a=3, b=4, c=5, s, area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));p rintf(“area=%f ” , area );}2.main(){ printf(“******************************”);printf(“* hello world *”);printf(“******************************”);}习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~14 BCA A2-2 思考题1.2.000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 559.70习题33-1单选题1-5BBDAB 6-10DDBDC 11-15AADCA 16-20CBACC 21-25ABDBB 3-2填空题1. 32.02613.0x104.05. 2, 1 互换a,b的值6. 6.67.–038.79. 5.0,4,c=3<Enter>10.i=10,j=20<Enter>11.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.86400e+02(7) 3.14160e+00(8) 3.1416(9) 8765(10) 3.1416,8765.4312.a=2 b=5x=8.8 y=76.34c1=65 c2=97 3-3 编程题1.main(){ int x, y ;scanf(“%d%d” , &x, &y);printf(“x y\n”);printf(“%4d%4d\n”, x, y );printf(“%4o%4o\n”, x, y );printf(“%4x%4x\n”, x, y );}2.main(){ float a, b, h, s;scanf(“%f%f%f”, &a, &b, &h );s=(a+b)*h/2 ;printf(“%8.1f\n”, s);}3.main(){ char c;scanf(“%c”, &c );printf(“%c, %c, %c\n”, c-1, c, c+1 ); }4.main(){ int a, a1, a2, a3;scanf(“%d”, &a );a1=a%10 ; a=a/10;a2=a%10; a=a/10;a3=a%10;printf(“%d%d%d\n”, a1, a2, a3);}5.main(){ double a, b, c, ave;scanf(“%lf%lf%lf”, &a, &b, &c );ave=(a+b+c)/3 ;printf(“%8.2f\n”, ave);}6.main(){ int a, b, c, t;scanf(“%d%d%d”, &a, &b, &c );t=a; a=c; c=b ; b=t ;printf(“a=%d, b=%d, c=%d\n”, a, b, c );}习题44-1单选题1~5 BADAC 6~10 DDACD 11~15 BBBAB4-2填空题1.12.if(x>0) y=1else if (x==0) y=0else y=-13.(1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c4.(1)0 (2)1 (3)1 (4)0 (5)05. max=(max=a>b?a:b)>c?max:c6.-47.18.5,0,39.85 belongs to B10. (1) (a==0) (2) (b==0) (3) (disc<0)4-3 编程题1.#include “math.h”main(){ float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+b>c && a+c>b && b+c>a){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“%f”,area);}}2.main(){ int x,y;scanf(“%d,%d”,&x,&y);if (x*x+y*y>1000)printf(“%d\n”,(x*x+y*y)/100); elseprintf(“%d\n”,x+y);}3.main(){ int x,scanf(“%d”,&x);if(x%3==0 && x%5==0 && x%7==0) printf(“yes\n”);elseprintf(“no\n”);}4.#include “math.h”main(){ float x,y;scanf(“%f”,&x);if(x<-2) y=x*x-sin(x);else if (x<=2) y=pow(2,x)+1;else y=sqrt(x*x+x+1);printf(“%f\n”,y);}5. main( )long a,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);}6.1.程序分析:main( ){long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n");elseprintf("this number is not a huiwen\n");}7. main(){float p,w,s,d,f;scanf(“%f,%,%f”,p,s,w);if (s>3000) d=0.15else if( s>=2000) d=0.1;else if(s>=1000) d=0.08;else if(s>=500) d=0.05;else if(s>=250) d=0.02;else d=0f=p*w*s*(1-d);printf(“%f”,f);}习题55-1单选题1~5 CDACB 6~10 DCAAB 11~16 DBDBCB5-2填空题1.2 02.k=5,s=43.3334.How Are You5.2#18#6.(1) i<10 (2) j%3!=07.(1) flag*(float)k/(k+1) (2) flag=-flag8.(1) s=0,t=1; (2) t=t*x/i*pow(-1,i+1); (3) printf(“%f”,s); 9.(1) max=x (2) x!=-1 (3) scanf("%d", &x)10. (1) n=1 (2) s5-3 编程题1. (1) main(){ int i; lont s=0;for(i=1;i<=100;i++)s+=i*i;printf(“%ld”,s);}(2)main(){ int i; lont p=1,s=0;for( i=1;i<=10;i++){p=p*i;s+=p;}printf(“%ld”,s);}(3) main(){ int i=1; lont p=1;float s=0;do{s+=1.0/p;p*=++i;}while(1.0/p>1e-6)printf(“%f”,s);}(4)main(){ int i=1, flag=1,pi=0;do{s+=flag*1.0/(2*i-1);i++;}while(1.0/(2*i-1)>1e-6);pri ntf(”%f”,s);}2.main(){int m,n,t,a,b;scanf(“%d,%d” ,&m,&n) ;if (m<n){ t=m ;m=n ;n=t ;}a=m;b=n;t=m%n ;while(t){ m=n ; n=t ;t=m%n;}printf(”%d,%d”,n,a*b/n);}3. main(){int x,y,s=1;scanf(”%d,%d”,&x,&y) ;for( ;y>0 ;y--)s*=x ;printf(”%d,%d,%d\n ”,s%10,s/10%10,s/100%10); }4.main(){int i=1, k=2, sum=0;do{sum+=k;k=k*2;i++;}while(sum<=100);printf(”total=%f\n”, 0.4*sum/(i-1));}5. main(){ int x,y,z;for( x=1 ; x<20 ;x++)for( y=1 ;y<33 ;y++){ z=100-x-y ;if (z>=0 && (5*x+3*y+z/3)-100<1e-5)printf(”x=%d,y=%d,z=%d\n”,x,y,z) ;}}6. main(){int j,k ;for( j=1 ;j<=4 ;j++){for(k=1;k<=4-j;k++;)printf(” ”);for(k=1 ;k<=2*j-1 ;k++)printf(”*”) ;printf(”\n”) ;}for( j=3;j>=1;j--){ for(k=1;k<=4-j;k++;)printf(””);for(k=1;k<=2*j-1;k++)printf(”*”);printf(”\n”);}}7.分析:其实此问题的解法非常简单。
c语言程序设计教程第二版课后习题答案
c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。