C程序设计及应用课后题答案
- 格式:docx
- 大小:463.55 KB
- 文档页数:21
c语言程序设计教程侯九阳版课后题答案示例文章篇一:以下是部分《C语言程序设计教程(侯九阳版)》课后题的答案:一、第一章课后题答案题目1:简述C语言的特点。
答案:C语言具有很多独特的特点呢。
它是一种高级语言,同时又具有低级语言的一些特性,就像一个有着双重身份的高手。
它简洁、紧凑,使用方便、灵活。
例如,用C 语言写一个简单的计算两个数之和的程序,代码很精炼。
它的运算符非常丰富,这就好比是一个拥有众多工具的工匠,可以完成各种各样复杂的操作。
C语言数据类型丰富,像整型、浮点型、字符型等,这就像不同种类的积木,可以搭建出各种形状的建筑。
而且它具有结构化的控制语句,像if - else语句、for循环语句等,这就如同在建筑中使用的框架结构,让程序的逻辑清晰明了。
C语言还可以直接访问物理地址,这就像一个能够直达目的地的特殊通道,使得它能够进行系统程序设计等底层操作。
另外,它的程序可移植性好,不管是在Windows系统还是Linux系统,只要稍作调整,就能运行,就像一个可以在不同地方安家的旅行者。
题目2:编写一个简单的C程序,在屏幕上输出“Hello, World!”。
答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```这个程序很简单。
首先,`#include <stdio.h>`就像是打开一个装满工具的箱子,这里面有我们要用的`printf`函数。
然后在`main`函数里,`main`函数就像是整个程序的司令部,一切操作从这里开始。
`printf`函数就像是一个传令兵,它的任务就是把“Hello, World!”这个消息传递到屏幕上。
最后的`return 0`就像是完成任务后的一个报告,表示程序正常结束。
题目1:解释变量的概念,并举例说明。
答案:变量啊,就像是一个可以装东西的盒子。
《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语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
C语言程序设计(第2版) 课后题答案C语言程序设计(第2版) 课后题答案一、基本概念与语言规则1. C语言的特点和用途C语言是一种通用的高级程序设计语言,具有简洁、高效、灵活和可移植等特点。
它广泛应用于系统软件、应用软件和嵌入式系统开发等领域。
2. 标识符的规则标识符是程序中用来标识变量、函数、数组等各种对象的名称。
标识符需要遵守以下规则:- 由字母、数字和下划线组成,首字符必须是字母或下划线。
- 大小写敏感,即大写字母和小写字母被认为是不同的字符。
- 不能使用C语言的关键字作为标识符。
3. 变量和常量变量是用来存储数据的内存单元,而常量是不可改变的数据值。
在C语言中,变量需要先声明后使用,而常量可以直接使用。
4. 数据类型和类型转换C语言提供了多种数据类型,包括整型、浮点型、字符型等。
不同的数据类型可以存储不同范围和精度的数据。
在需要的时候,可以进行数据类型的转换。
5. 运算符和表达式C语言支持多种运算符,包括算术运算符、逻辑运算符、比较运算符等。
表达式是由运算符和操作数组成的式子,可以进行各种计算和逻辑判断。
6. 控制结构C语言提供了多种控制结构,包括顺序结构、条件结构和循环结构。
通过这些结构可以实现程序的分支和循环操作。
二、函数和数组1. 函数的定义和调用函数是C语言程序的基本模块,可以完成特定的任务。
函数的定义包括函数名、参数列表、返回值类型和函数体。
函数的调用通过函数名和实参来完成。
2. 数组的定义和使用数组是一组相同类型的数据元素的集合。
在C语言中,数组可以用来存储多个同类型的数据,并通过下标来访问和操作数组元素。
三、指针和字符串1. 指针的概念和使用指针是C语言中的一个重要概念,它代表一个内存地址。
通过指针可以直接访问内存中的数据,可以用来提高程序的效率和灵活性。
2. 字符串的概念和操作字符串是由字符组成的数组,以空字符'\0'结尾。
C语言提供了多种操作字符串的函数,如字符串的复制、连接、比较等。
c语言程序设计课后习题答案C语言程序设计课后习题答案在C语言程序设计的学习过程中,完成课后习题是巩固知识点和提升编程技能的重要方式。
以下是一些常见课后习题的解答示例:1. 习题一:编写一个程序,计算并输出1到100的和。
```c#include <stdio.h>int main() {int sum = 0, i;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 习题二:求一个整数的阶乘。
```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num, result;printf("请输入一个整数:");scanf("%d", &num);result = factorial(num);printf("%d的阶乘是:%d\n", num, result); return 0;}```3. 习题三:判断一个数是否为素数。
```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。
c程序设计教程课后习题答案在编写C语言程序时,理解并完成课后习题是掌握编程知识的重要步骤。
以下是一些典型的C语言程序设计教程课后习题答案的示例,这些答案涵盖了基础语法、数据结构、函数、指针等概念。
习题1:变量声明和初始化编写一个C程序,声明一个整型变量`x`和一个浮点型变量`y`,并将它们分别初始化为10和3.14。
```c#include <stdio.h>int main() {int x = 10;double y = 3.14;printf("x = %d\n", x);printf("y = %f\n", y);return 0;}```习题2:条件语句编写一个程序,判断一个整数变量`a`的值,如果`a`大于10则输出"Greater than 10",如果小于10则输出"Less than 10",如果等于10则输出"Equal to 10"。
```c#include <stdio.h>int main() {int a;printf("Enter an integer: ");scanf("%d", &a);if (a > 10) {printf("Greater than 10\n");} else if (a < 10) {printf("Less than 10\n");} else {printf("Equal to 10\n");}return 0;}```习题3:循环编写一个程序,使用`for`循环打印从1到10的整数。
```c#include <stdio.h>int main() {for (int i = 1; i <= 10; ++i) {printf("%d ", i);}printf("\n");return 0;}```习题4:数组编写一个程序,声明一个整数数组`arr`,包含5个元素,初始化为1, 2, 3, 4, 5,并打印数组中的所有元素。
4、分别写出下列语句执行的结果。
1) ("{0}--{0:p}good",12.34F);2) ("{0}--{0:####}good",0);3) ("{0}--{0:00000}good",456);【解答】,%good0--good456--00456good5、编写一个控制台应用程序,输出1到5的平方值,要求:1) 用for语句实现。
2) 用while语句实现。
3) 用do-while语句实现。
【解答】using System;using ;namespace outputSquareValue{class Program{static void Main(){MainMainMain234(1)1(1)2!3!4!!nnx x x xxn++-+-++-LMainMain。
(5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。
(6)写出运行程序应该输出的结果。
【解答】using System;class Test1{public Test1(){(this);}public Test1(string str){(str);}public static void Main(){Test1 t1 = new Test1();Test1 t2 = new Test1("This is a string.");Test1[] t3 = new Test1[5];}}This is a string.2、编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。
然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。
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语言作为一门古老而强大的编程语言,至今仍然在各个领域中发挥着重要作用。
苏小红教授的《C语言程序设计》第二版是一本广受好评的教材,它不仅系统地介绍了C语言的基础知识,还通过丰富的实例和练习题帮助读者加深理解。
以下是该书部分课后习题的答案解析,以供参考。
第一章:C语言概述1. 问题:C语言的特点是什么?答案:C语言的特点包括简洁高效、结构化、可移植性高、丰富的运算符、数据类型丰富等。
2. 问题:C语言的发展历程是怎样的?答案:C语言起源于20世纪70年代,由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发,最初用于UNIX操作系统的编写。
随着UNIX的流行,C语言也逐渐被广泛使用。
第二章:数据类型、运算符和表达式1. 问题:C语言中的基本数据类型有哪些?答案:C语言中的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)等。
2. 问题:算术运算符有哪些?答案:算术运算符包括加(+)、减(-)、乘(*)、除(/)和模运算(%)。
第三章:控制语句1. 问题:if语句的基本形式是什么?答案:if语句的基本形式是:```cif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```2. 问题:for循环的一般形式是什么?答案:for循环的一般形式是:```cfor (初始化表达式; 条件表达式; 迭代表达式) {// 循环体}```第四章:数组1. 问题:一维数组的声明方式是什么?答案:一维数组的声明方式是:```c类型数组名[数组大小];```2. 问题:如何使用数组?答案:使用数组时,可以通过数组名和索引来访问数组元素,例如: ```cint arr[10];arr[0] = 1; // 给数组的第一个元素赋值```第五章:函数1. 问题:函数的定义包括哪些部分?答案:函数的定义包括返回类型、函数名、参数列表和函数体。
《C语言程序设计》课后习题答案(第四版) C语言程序设计课后习题答案(第四版)1. 基础知识概述C语言程序设计是一门广泛应用于软件开发领域的编程语言。
它以其简洁、高效以及可移植性而备受推崇。
本文将为读者提供《C语言程序设计》(第四版)课后习题的详细解答,帮助读者加深对C语言的理解。
2. 第一章习题答案2.1 习题1题目:编写一个C语言程序,输出"Hello, World!"。
解答:```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```2.2 习题2题目:编写一个C语言程序,接收用户输入的两个整数,并输出它们的和。
解答:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d", sum);return 0;}```3. 第二章习题答案3.1 习题1题目:编写一个C语言程序,接收用户输入的一个整数,并判断它是否为偶数。
解答:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("这个数是偶数");} else {printf("这个数不是偶数");}return 0;}```3.2 习题2题目:编写一个C语言程序,接收用户输入的一个字符,并判断它是否为字母。
C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。
A.main函数的入口 B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。
A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。
A. B.C.Tom B.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check_quality C.sal_ary_tot_al(5)C程序是由(D)组成。
A.若干个过程B.若干子程序C.一个主程序和若干子程序D.若干函数2.填空题(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。
(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。
(3)一个C语言程序至少应包含一个__主函数或main()__。
(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。
(5)函数体用___{______符号开始,用_____}______符号结束。
(6)注释的开始和结束标志分别为__/*____和____*/____。
为增强程序的__可读性___,应该为程序写上清晰的注释。
3.编程题:参考本章例题,编写一个C程序,输出以下信息。
***********************The data is ** 2005-03-23 ***********************程序如下:#include <stdio.h>Void main(){printf(“**********************\n”);printf(“*The data is *\n”);printf(“* 2005-03-23 *\n”);printf(“**********************\n”);}第二章习题1.选择题(1)设int m=10 ,则下列表达式的值不等于零的有(A F)。
注:以下内容为教材部分习题答案,如发现错误请告知,欢迎讨论——张惕远习题二一、选择题1、C2、BCD3、A4、A(注:本题强调用户标识符,所以if、int不是,但是sin是用户标识符,原因是库函数不是标准语法成分,开发库函数的程序员也是用户,main虽然不是语法成分,但开发平台预定义了main为console application的执行入口,并且规定了定义格式,所以用户不能用作它用,但_main可以)5、(D)(C)6、C7、D8、B9、A10、 D11、B(注:本题是求strlen("\\\”DEF\”\\”)的值,即字符串中有效字符的个数,不含串结尾符,sizeof(“…”)的值与前者不同,含串结尾符)12、 D13、 C14、 D15、 A16、 B17、 A18、 B二、判断题(对)(错)(错)(对)三、填空题1、B 66回车2、n1=%d\nn2=%d3、5四、计算下列各表达式的值1、注:本书假设采用16位编译平台,所以int和unsigned int均为2字节类型。
(1)47(2)38(3)9(4)0xFFC6 or 65478(5)104(6)22、(1)6(2)50(3)1(4)-16 or 0xFFF0(5)1(6)203、表达式值a的值b的值(1)0 5 3(2)1 5 3(3)3 1 3(4)15 10 4(5)8 8 3(6)1 5 34、表达式值x的值y的值(1)12 25 2(2)0 24 3(3)1 24 3(4) 27 24 3(5) 1 24 3(6)6 6 3(7)24 24 24(y<<=3)(8)27 24 3(9)-29or0xffe3 24 3以上类型均为int5、表达式值x的值y的值(1)0 0 1(2)1 2 1(3)1 0 0(4)-3 -3 3(5)4 2 4以上类型均为int五、程序分析题b=20(注:中间4个空格)a=3600回车习题三一、填空题1、s=6回车2、s=96回车3、(1) c=getchar() or scanf(“%c”,&c)(2) c-32 or c-‘a’+’A’习题四一、写出程序运行结果:1、no 1 a=1no 1 a=0no 1 a=1no 1 a=0(注:教材中关于func函数的原型有错,应该改为:void func();)2、a=0 b=0 c=0a=1 b=0 c=0a=2 b=0 c=03、main:x=5,y=1,n=1fun:x=6,y=21,n=11main:x=5,y=1,n=11fun:x=8,y=31,n=21习题五一、选择题和填空题1、D2、D3、C4、65、C DABC6、(1)j+=2(2)a[j]>a[i](注:教材中for语句有错,应该去掉表达式3后面的分号“;”)最后输出为u nalggace7、(1) s[j] (2)s[j]8、D9、B10、 611、isdigit(s[i])该带参数的宏用来判断字符s[i]是不是数字字符,该宏的定义在头文件ctype.h中12、‘\0’和str1[i] -str2[i]二、1、第7行sum=0;第10行改为:scanf(“%d”,&a[i][j]);习题六一、选择题1、D2、D3、D4、C5、C D6、D7、B8、B二、填空题1、*(p+3) 2 222、cdefgbcdefgabcdefg73、6385三、程序分析题9、第5行改为:p =&s[0]; or p=s;10、第4,5行合为:double x,y,*p;11、第4行改为:int x,*p=&x;否则p为“野指针”或者在给p赋值之前定义一个int变量y,然后p=&y;12、第4,5行交换书写次序。
C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。
存储器是计算机中具有记忆能力的部件,用来存放程序和数据。
输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。
4、什么叫软件说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。
在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第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 is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题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。
4、分别写出下列语句执行的结果。
1) Console.WriteLine("{0}--{0:p}good",12.34F);2) Console.WriteLine("{0}--{0:####}good",0);3) Console.WriteLine("{0}--{0:00000}good",456);【解答】12.34--1,234.00%good0--good456--00456good5、编写一个控制台应用程序,输出1到5的平方值,要求:1) 用for语句实现。
2) 用while语句实现。
3) 用do-while语句实现。
【解答】using System;using System.Collections.Generic;using System.Text;namespace outputSquareValue{class Program{static void Main(){//用for语句实现for (int i = 1; i <= 5; i++){Console.WriteLine("{0}的平方值为{1}", i, i * i);}//用while语句实现int j = 0;while (j++ < 5){Console.WriteLine("{0}的平方值为{1}", j, j * j);}//用do-while语句实现int k = 1;do{Console.WriteLine("{0}的平方值为{1}", k, k * k);} while (k++ < 5);Console.ReadLine();}}}6、编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
using System;using System.Collections.Generic;using System.Text;namespace inputCapitalLetter{class Program{static void Main(){bool ok = false;while (ok == false){Console.Write("请输入5个大写字母:");string str = Console.ReadLine();if (str.Length != 5){Console.WriteLine("你输入的字符个数不是5个,请重新输入。
");}else{ok = true;for (int i = 0; i < 5; i++){char c = str[i];if (c < 'A' || c > 'Z'){Console.WriteLine("第{0}个字符“{1}”不是大写字母,请重新输入。
", i + 1, c);ok = false;break;}}}}}}}7、编写一个控制台应用程序,要求完成下列功能。
1) 接收一个整数n。
2) 如果接收的值n为正数,输出1到n间的全部整数。
3) 如果接收的值为负值,用break或者return退出程序。
4) 转到(1)继续接收下一个整数。
【解答】using System;using System.Collections.Generic;using System.Text;{class Program{static void Main(){while (true){Console.Write("请输入一个整数(负值结束):");string str = Console.ReadLine();try{int i = Int32.Parse(str);if (i < 0) break;for (int j = 1; j <= i; j++) Console.WriteLine(j);}catch{Console.WriteLine("你输入的不是数字或超出整数的表示范围,请重新输入");}}}}}8、编写一个控制台应用程序,求1000之内的所有“完数”。
所谓“完数”是指一个数恰好等于它的所有因子之和。
例如,6是完数,因为6=1+2+3。
【解答】using System;using System.Collections.Generic;using System.Text;namespace completeNumber{class Program{static void Main(string[] args){for (int i = 2; i <= 1000; i++){int s = 1;string str = "1";for (int j = 2; j <= (int)Math.Sqrt(i); j++){if (j * (i / j) == i){if (j != i / j){str += string.Format("+{0}+{1}", j, i / j);}else{s += j;str += string.Format("+{0}", j);}}}if (s == i) Console.WriteLine("{0}={1}", i, str);}Console.ReadLine();}}}3、编写一个控制台应用程序,计算234(1)1(1)2!3!4!!n n x x x x x n ++-+-++-要求精度为10−8。
【解答】using System;class Test3{public static void Main(){int n = 50;double x = 3;double s = 0;double a = 1;for (int i = 1; i <= n; i++){a *= i;s += Math.Pow(-1, i + 1) * Math.Pow(x, i) / a;}Console.WriteLine("n={0},s={1:0.00000000}", n, s);}}4、编写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能。
(1)输出字符串的长度。
(2)输出字符串中第一个出现字母a 的位置。
(3)在字符串的第3个字符后面插入子串“hello ”,输出新字符串。
(4)将字符串“hello ”替换为“me ”,输出新字符串。
(5)以字符“m ”为分隔符,将字符串分离,并输出分离后的字符串。
【解答】【解答】public static void Main(){string str = "";while (str.Length <= 3){Console.Write("请输入一个长度大于3的字符串:");str = Console.ReadLine();}//(1)Console.WriteLine("字符串的长度为:{0}", str.Length);//(2)int i = str.IndexOf('a');if (i > -1){Console.WriteLine("第一个出现字母a的位置是:{0}", i);}else{Console.WriteLine("字符串中不包含字母a。
");}//(3)string str1 = str.Insert(3, "hello"); //在第3个(初始序号为)字符前插入helloConsole.WriteLine("插入hello后的结果为:{0}", str1);//(4)string str2 = str1.Replace("hello", "me");Console.WriteLine("将hello替换为me后的结果为:{0}", str2);//(5)string[] arr = str2.Split('m');Console.WriteLine("以m为分隔符分离后的字符串有:");for (int j = 0; j < arr.Length; j++){Console.WriteLine(arr[j]);}}}1、编写一个控制台应用程序,完成下列功能。
(1)创建一个类,用无参数的构造函数输出该类的类名。
(2)增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来。
(3)在Main方法中创建属于这个类的一个对象,不传递参数。
(4)在Main方法中创建属于这个类的另一个对象,传递一个字符串“This is a string.”。
(5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。
(6)写出运行程序应该输出的结果。
【解答】public Test1(){Console.WriteLine(this);}public Test1(string str){Console.WriteLine(str);}public static void Main(){Test1 t1 = new Test1();Test1 t2 = new Test1("This is a string.");Test1[] t3 = new Test1[5];}}输出结果:Test1This is a string.2、编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。
然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。
要求注明在试图访问所有类成员时哪些语句会产生编译错误。
【解答】using System;class MyClass{public int i;private int j;protected int k;public void method1(){Console.WriteLine("public method.");}private void method2(){Console.WriteLine("private method.");}protected void method3(){Console.WriteLine("protected method.");}}class MyMain : MyClass{MyClass t = new MyClass();Console.WriteLine("i={0}", t.i);Console.WriteLine("j={0}", t.j); //会出现编译错误,私有成员不允许在其它类中访问Console.WriteLine("k={0}", t.k); //会出现编译错误,应该创建MyMain的对象,然//后通过MyMain的对象访问t.method1();t.method2(); //会出现编译错误,私有的方法不允许在其它类中调用t.method3(); //会出现编译错误,应该创建MyMain的对象,然后通过MyMain的//对象调用该方法}}3、创建一个类包含有protected数据。