C语言课后习题答案(最终)
C语言课后习题及答案

三、根据下列条件写一个 C/C++表达式。 1.a 和 b 中有一个大于 d:a>d||b>d 2.将 x、y 中较大的值送给 z:z=x>y?x : y 3.将直角坐标系中点(x,y)表示在第 3 象限内:x<0&&y<0 4.3 个数据 x、y、z 能组成三角形:x+y>z||y+z>z||x+z>y 5.将含有 3 位小数的实型变量 x 的值,四舍五入到百分位:(int)(x*100+0.5)/100. 6.d 是不大于 100 的偶数:d>0&&d<=100&&d%2==0 7.x、y 中至少有一个是 5 的倍数:x%5==0||y%5==0 8.对 n(>0)个人进行分班,每班 k(>0)个人,最后不足 k 人也编一个班,问要编几个班: n%k==0?n/k : n/k+1 四、编程题: 1 编程序求半径为 r、高为 h 的圆柱体的体积。 #include "iostream.h" void main() {float r,h,v; cin>>r>>h; v=3.1416*r*r*h; cout<<v; } 2.任意输入 3 个数据,输出它们的平均值和最小的一个数。 #include "iostream.h"
5.在 cout 命令中,使用 ( )格式控制符可以把一个数据以十六进制的形式输出。hex 6.在 C/C++中,头文件的扩展名一般为( ) 。.h 7.程序的错误一般分两种: ( )和( ) 。前者是编译器可以发现的,而后者编译器则无 法发现。语法错误和逻辑错误 8.在 Visual C++中调试程序时,可以使用快捷菜单中的 ( )命令来插入断点和清除断 点。Insert/Remove Breakpoint 9.C++源程序的扩展名为( ) 。.cpp 10. 在 Visual C++中, 浏览当前项目中的所有源程序文件应在工作区的 ( ) 选项卡。 Fileview 三、 简答题
c语言课后习题答案

c语言课后习题答案C语言课后习题答案在学习C语言的过程中,课后习题是巩固知识、提高编程能力的重要方式。
通过解答课后习题,我们可以加深对语言特性和编程思想的理解,提升解决问题的能力。
下面我们将分析一些常见的C语言课后习题,并给出相应的答案和解析。
1. 编写一个程序,计算并输出1到100之间所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```解析:这道题目要求计算1到100之间所有偶数的和,我们可以使用循环结构遍历所有偶数,并累加它们的值,最后输出结果。
2. 编写一个程序,判断一个输入的整数是否为质数。
答案:```c#include <stdio.h>int main() {int num, i, flag = 1;printf("请输入一个整数:");scanf("%d", &num);for (i = 2; i <= num / 2; i++) {if (num % i == 0) {flag = 0;break;}}if (flag == 1) {printf("%d是质数\n", num);} else {printf("%d不是质数\n", num);}return 0;}```解析:这道题目要求判断一个输入的整数是否为质数,我们可以使用循环结构遍历2到该整数的一半,判断是否能被整除,如果能被整除,则不是质数,否则是质数。
通过以上两道题目的答案和解析,我们可以看到在解答C语言课后习题的过程中,需要灵活运用循环、条件判断等基本语法知识,同时也需要深入理解问题的本质,找到合适的解题思路。
C语言教材课后习题答案

2.简述程序设计语言发展的过程
程序设计语言经过最初的机器代码到今天接近自然语言的表达, 经过了四代的演变。 一 般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代, 面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。首先分析出解决问题所需要的步骤,然 后用函数把这些步骤一步一步地实现, 使用的时候依次调用函数即可。 一般的面向过程是从 上往下步步求精,所以面向过程最重要的是模块化的思想方法。 “面向对象”是一种以事物为中心的编程思想。面向对象的方法主要是将事物对象化, 对象包括属性与行为。 面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体 执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设 计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。编程关注的是如 何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
不能使变量 k 得到正确数值的原因是: scanf("%d", &k);中的格式控制类型与变量 k 的定义类型不匹配,应将%d 改为%f.
习题 4 答案
选择题 1. B 2. A 3. B 4. B 阅读程序,写结果 7. 12 8.13 9. *0**2* 10. if(s>=90) m=4; else if(s>=80) m=3; else if(s>=70) m=2; else if(s>=60) m=1; else m=0; 11.输入 4 个整数 a,b,c,d,编写程序,将它们按从大到小顺序输出。 #include<stdio.h> main() { int a,b,c,d,t; scanf("%d%d%d%d",&a,&b,&c,&d); if(a<b) {t=a;a=b;b=t;} if(a<c) {t=a;a=c;c=t;} if(a<d) {t=a;a=d;d=t;} if(b<c) {t=b;b=c;c=t;} if(b<d) {t=b;b=d;d=t;} if(c<d) {t=c;c=d;d=t;} printf("%4d%4d%4d%4d",a,b,c,d); } 12.据所输入的 3 条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、 直角三角形还是一般三角形? 源程序: 5. C 6. B
C语言课后习题标准答案

C语言课后习题标准答案第1章C语言概述一、简答题1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。
2.顺序结构,分支结构,循环结构3.所谓算法就是为解决一个问题而采取的方法和步骤。
算法的特性:有穷性、确定性、输入、输出、可行性。
表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。
二、算法1.瓶子A里盛有醋瓶子B里盛有酱油那一个空瓶C将A中的醋倒入C将B中的酱油倒入A将C中的醋倒入B2.输入一个数放在a中max=a以下步骤重复9次:输入一个数放在a中如果a>max,max=b打印max的值3.如果ﻩﻩa<btemp=aﻩa=bﻩﻩb=temp如果c>aﻩtemp1=aﻩﻩtemp2=ba=cﻩb=temp1ﻩc=temp2否则ﻩ如果ﻩc>bﻩtemp=bﻩb=cﻩc=temp打印a,b,c的值4.i=1sum=0以下程序循环100遍:sum=sum+iﻩi=i+1打印sum的值5.如果(n除以3的余数为0并且n除以5的余数为0)n能够同时被3和5整除否则ﻩn不能够同时被3和5整除6.i=101以下语句循环50遍:ﻩj=2ﻩflag=1ﻩ当j<(i除以2的整数部分)时循环以下语句:ﻩﻩ如果i除以j的余数为零ﻩﻩﻩflag=0ﻩﻩﻩ退出该循环如果flag=1ﻩﻩﻩ打印i的值ﻩi=i+17.如果m<nﻩﻩtemp=mﻩﻩm=nn=tempi=nj=1做以下循环,直到m能够被i/j整除:如果i能够被j整除并且m能够被i/j整除i/j即是m和n的最大公约数ﻩ跳出循环否则ﻩj=j+1打印i/j的值8.data=b*b—4*a*c如果data>0否则如果data=0ﻩx1=x2=—b/2否则无实数解三、编程题1.main(){ﻩprintf(“##############################\n”);ﻩprintf(“How do youdo?\n”);ﻩprintf(“##############################\n”);}2.main(){adata b x2)(1+-=a data b x2)(2--=。
C语言程序设计教程 课后习题参考答案

else if( carType == 2 ) //富康
{
if( distance < 3 )
totalMoney = 8.0;
else
totalMoney = 8 + fukang * (distance – 3);
}
else if( carType == 3 ) //富康
{
if( distance < 3 )
(3) 7BAB4BAB1BC
(4) ABABABC
(5) ******
******
******
******
4.
(1) a != b
(2) n / 10
(3) scanf(“%d”, &a);
5.(3)行int fac = 1, sum = 0;
6.
(1)
#include <stdio.h>
main( )
r = 2.5;
h = 3.5;
v = 3.14*r*r*h;
printf(“v=%lf\n”, v);
}
(2)
#include <stdio.h>
main( )
{
char ch;
ch = getchar( );
printf(“%c\n”, ch + 32);
}
(3)
#include <stdio.h>
scanf("%d", &carType);
printf("请输入您乘车的总路程:");
scanf("%lf", &distance);
if( carType == 1)//夏利
c语言课后习题答案

c语言课后习题答案C语言课后习题答案C语言作为一门广泛应用于编程领域的高级编程语言,对于学习者来说是必不可少的一门课程。
在学习过程中,课后习题是巩固知识、提高编程能力的重要环节。
然而,有时候我们可能会遇到一些难以解答的问题,或者对于某些题目的解答存在疑惑。
在这篇文章中,我将为大家提供一些C语言课后习题的答案,并解释一些常见问题。
1. 编写一个程序,从键盘输入一个整数,判断该数是否为素数。
解答:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数。
\n", num);} else {printf("%d不是素数。
\n", num);}return 0;}```以上代码中,我们定义了一个函数`isPrime`,用于判断一个数是否为素数。
在`main`函数中,我们从键盘输入一个整数,并调用`isPrime`函数进行判断。
如果返回值为1,则说明该数是素数,否则不是素数。
2. 编写一个程序,计算并输出1到100之间所有能被3整除但不能被5整除的数之和。
解答:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 3 == 0 && i % 5 != 0) {sum += i;}}printf("1到100之间所有能被3整除但不能被5整除的数之和为:%d\n", sum);return 0;}```以上代码中,我们使用`for`循环遍历1到100之间的所有整数,使用条件判断语句`if`筛选出能被3整除但不能被5整除的数,并将它们累加到`sum`变量中。
《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
数据结构(c语言版)课后习题答案完整版

数据结构(c语言版)课后习题答案完整版数据结构(C语言版)课后习题答案完整版一、数据结构概述数据结构是计算机科学中一个重要的概念,用来组织和存储数据,使之可以高效地访问和操作。
在C语言中,我们可以使用不同的数据结构来解决各种问题。
本文将提供完整版本的C语言数据结构的课后习题答案。
二、顺序表1. 顺序表的定义和基本操作顺序表是一种线性表,其中的元素在物理内存中连续地存储。
在C 语言中,我们可以通过定义结构体和使用指针来实现顺序表。
以下是顺序表的一些基本操作的答案:(1)初始化顺序表```ctypedef struct{int data[MAX_SIZE];int length;} SeqList;void InitList(SeqList *L){L->length = 0;}```(2)插入元素到顺序表中```cbool Insert(SeqList *L, int pos, int elem){if(L->length == MAX_SIZE){return false; // 顺序表已满}if(pos < 1 || pos > L->length + 1){return false; // 位置不合法}for(int i = L->length; i >= pos; i--){L->data[i] = L->data[i-1]; // 向后移动元素 }L->data[pos-1] = elem;L->length++;return true;}```(3)删除顺序表中的元素```cbool Delete(SeqList *L, int pos){if(pos < 1 || pos > L->length){return false; // 位置不合法}for(int i = pos; i < L->length; i++){L->data[i-1] = L->data[i]; // 向前移动元素 }L->length--;return true;}```(4)查找顺序表中的元素```cint Search(SeqList L, int elem){for(int i = 0; i < L.length; i++){if(L.data[i] == elem){return i + 1; // 找到元素,返回位置 }}return -1; // 未找到元素}```2. 顺序表习题解答(1)逆置顺序表```cvoid Reverse(SeqList *L){for(int i = 0; i < L->length / 2; i++){int temp = L->data[i];L->data[i] = L->data[L->length - 1 - i]; L->data[L->length - 1 - i] = temp;}}```(2)顺序表元素去重```cvoid RemoveDuplicates(SeqList *L){for(int i = 0; i < L->length; i++){for(int j = i + 1; j < L->length; j++){if(L->data[i] == L->data[j]){Delete(L, j + 1);j--;}}}}```三、链表1. 单链表单链表是一种常见的链式存储结构,每个节点包含数据和指向下一个节点的指针。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课后习题答案(最终)
第0章习题
1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数:(1)128 (2)511 (3)1024 (4)65535 (5)1048575 答:
(1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400
(4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF
2. 将下列二进制数转化为十进制数和十六进制数:(1)1100110101B (2)101101.1011B 答:
(1)821、335 (2)45.6875、2D.B
3. 写出下列数的原码、反码、补码:15、-20、-27/32 答:
(1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100
4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少?答:
5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。
答:
结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么?答:
0~65535、-128~127、-32768~32767
C语言程序属于应用程序,程序代码本身存放在应用程序区,程序运行时处理的数据存计算机的内存空间主要分为3个区:系统程序区、应用程序区和数据区,其中数据区
放在应用程序数据区。
又分为系统程序数据区和应用程序数据区两类。
系统程序区主要存放操作系统程序,计算机开机启动时,主要从该区取出程序分析执行;应用程序区主要存放应用程序设计者编制的应用程序;数据区则作为上述两类程序运行时的变量和中间结果的存放空间。
程序运行时所需要的不同存储属性的变量将分别分配在这几个数据区和寄存器区。
寄存器区在CPU内部,而不在存储器中,所以C语言寄存器型变量的运算速度最快,但是在CPU内部,寄存器非常有限,一般只有几个到几十个,所以C程序的寄存器型变量实际只有几个。
7.简要回答冯.诺依曼计算机的基本原理。
答:
计算机硬件系统的核心是由中央处理器(CPU)和可执行的主存组成的计算引擎。
这里,主存存储程序(可执行的机器指令序列)和数据,是可以直接寻址单元的线性序列。
除主存外,计算机系统还有辅存即辅助存储器,用来保存当前没有载入主存的、部分或临时载入的程序和数据(例如硬盘)。
同时,计算机系统还需要从外界获取数据或者将处理后的数据通知外界,这就需要另外一个组件即一组通信设备(例如显示器、键盘等),使用它们可以在用户和计算机之间以及计算机和计算机之间进行数据和命令交换。
8.规范化编程的作用是什么?规范化编程主要包括哪几方面的内容?根据你的认识说一说什么样的程序才是具有规范化编码风格的程序。
答:
规范化编程的作用就是使代码容易阅读,无论是对程序员本人,还是对其他人。
风格良规范化编程主要包括以下几方面的内容:
(1) 命名的问题 (2) 源程序的书写问题 (3) 算法设计的问题 (4) 程序注释好的代码更容易阅读和理解,其中的错误也更少。
第1章习题
1.C语言的主要特点有哪些? 答:
一种语言之所以能存在和发展,并具有生命力,总是有其不同于其他语言的特点。
C 语言的主要特点如下。
(1) 语言简洁、紧凑,使用方便、灵活。
(2) 运算符丰富。
(3) 数据结构类型丰富,具有现代化的各种数据结构。
(4) 具有结构化的控制语句。
(5) 语法限制不太严格,程序设计自由度大。
(6) C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语
言的大部分功能,可以直接对硬件进行操作。
(7) 一般仍习惯将C语言称为高级语言,因为C程序也要通过编译、连接才能得到可执行的目标程序,这是和其他高级语言相同的。
2.简要叙述C语言程序的构成,并说明一个C程序要正确地运行,必须要有什么函数,该函数在程序中的地位如何?答:
C语言是一种结构化程序设计语言,具体地说,C语言是一种函数模块式结构的程序设计语言,所有的C程序都是由一个或多个函数构成的。
一个C程序可由一个主函数和若干个其它函数构成。
由主函数调用其他函数,其他函数也可以互相调用。
同一个函数可以被一个或多个函数调用任意多次。
这些函数是由编译系统提供的标准函数或用户自己定义的函数,其中有一个特别的函数“main”我们称之为主函数。
一个C程序要正确地运行,都必须有且只能有一个主函数,主函数是程序运行的入口,C程序从主函数开始执行,并最终从主函数结束。
3.开发一个C程序的一般过程是什么?答:
开发一个C程序,通常包括以下几个步骤:(1)编辑C语言源程序(2)编译和链接(3)执行C程序。
当我们用任一编辑软件(编辑器)编写好C源程序后,就以文本文件的形式保存在计算机的磁盘上,该文本文件即为C的源程序文件。
当我们想运行一个C 程序时,首先要进行程序编译和程序链接,从而生成机器代码即可执行文件。
生成可执行文件后,就可以在操作系统控制下运行。
4.指出下面哪些是C语言的关键字?
A. char
B. abc
C. printf
D. Int
E. float
F. define
G. include
H. PI 答:
A E
5.下列说法正确的是()。
A. 在书写C语言源程序时,每个语句以逗号结束
B. 注释时,“/”和“*”号间可以有空格
C. 无论注释内容的多少,在对程序编译时都被忽略
D. C程序每行只能写一个语句答:
C
6.C语言源程序文件的后缀是(),经过编译和链接后生成了可执行文件,该文件的后缀是()。
A. .obj
B. .exe
C. .c
D. .doc 答: C B 思考题
参照例题,编写一个C程序,输出以下信息:
*********************************************************** Welcome JiLin! Welcome ChangChun!
*********************************************************** 答:
#include
int main() {
printf(”******************************************\\n”); printf(”
Welcome JiLin! Welcome ChangChun!\\n”);
printf(”******************************************\\n”); return 0; }
第2章习题
1.指出下面哪些是合法的标识符?
A. 1_x
B. int
C. ABC
D. i_10
E. sum.a
F. ?c
G. _stu
H. abc d 答:
C D G
2.C语言的数据类型有哪些? 答:
C语言规定的数据类型较多,通常我们可以将其分为五大类:简单类型、构造类型、
指针类型、枚举类型和空类型,其中简单类型包括整型、实型和字符型,构造类型包括数
组、结构体和共用体。
C语言的数据类型分类如图所示。
3.下面是一段程序: #define N 10 int main() {
}
在这段程序中,常量有哪些?答:
20 30 N
4.下面哪些写法是正确的,而且是常量?
int iSum;
sum = (20 + 30) / N; printf(\printf(\return 0;
数据类型构造类型简单类型整型实型字符型数组结构体共用体指针类型枚举类型空类型单精度实型双精度实型
感谢您的阅读,祝您生活愉快。