C语言教材习题答案(陈刚 主编)
- 格式:doc
- 大小:68.50 KB
- 文档页数:29
第一章习题参考答案一、单项选择题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. A6. A7. B8. C二、填空题1. 主2. C编译系统3. 函数一个主函数和若干函数4. 输入输出5. 以.h为扩展名的头文件6. .obj7. 库函数8. 文本第三章习题参考答案一、单项选择题1. D2. B3. A4. C5. C6. D7. B8. D9. B 10. C11. A 12. D 13. C 14. C 15. C16. C 17. B 18. C 19. C 20. D21. A 22. D 23. D 24. D A 25. D26. A二、填空1. 补码2. 取绝对值为10-308~1030815~16位3. 0或14. 赋值右向左5. 函数调用6. 65,89三、应用题1. 10 92. 111213. 区别是:求负:单目,右结合-a+b减法:双目,左结合a-b取地址:单目,右结合&a按位与:双目,左结合a&b第四章习题参考答案一、单项选择题1. D2. C3. D4. A5. D6. B7. A8. C9. B 10. B二、填空题1.一条;2. 5.1690003.(1)-200 2500(2)i=-200,j=2500(3)i=-200j=25004. a=98, b=765.000000, c=4321.0000005. 三种可能的输入是:(1)100<回车> 25.81<回车> 1.89234<回车>(2)100<空格> 25.81<空格> 1.89234<回车>(3)100<TAB > 25.81<TAB > 1.89234<回车>6. 0,0,37. 38. 输入语句是:scanf("%lf%lf%lf",&a,&b,&c);9. 13 13.000000 13.00000010. 3种方法:(1) 增加一个临时变量t。
c语言第四版课后习题答案C语言第四版课后习题答案在学习C语言第四版课程后,许多学生都会遇到各种各样的问题和疑惑。
为了帮助大家更好地掌握C语言的知识,我们整理了一些课后习题的答案,希望能够对大家有所帮助。
1. 什么是C语言?C语言是一种通用的高级程序设计语言,它广泛应用于系统软件、应用软件、驱动程序、网络通信等领域。
C语言具有高效、灵活、可移植等特点,是程序员必备的基本技能之一。
2. C语言的基本语法有哪些?C语言的基本语法包括数据类型、变量、运算符、控制语句、函数等。
学习C 语言首先要掌握这些基本语法,才能够编写出正确的程序。
3. 如何定义一个变量?在C语言中,可以使用关键字“int”、“float”、“char”等来定义不同类型的变量。
例如:int a; // 定义一个整型变量afloat b; // 定义一个浮点型变量bchar c; // 定义一个字符型变量c4. 如何进行条件判断?在C语言中,可以使用“if”、“else”、“switch”等关键字来进行条件判断。
例如:if (a > b) {printf("a大于b");} else {printf("a小于等于b");}5. 如何定义一个函数?在C语言中,可以使用关键字“void”、“int”、“float”等来定义不同类型的函数。
例如:int max(int a, int b) {if (a > b) {return a;} else {return b;}}通过学习C语言第四版课程,我们可以更好地理解和掌握C语言的知识,提高自己的编程能力。
希望大家能够通过不断练习和实践,掌握C语言的基本原理和技巧,成为一名优秀的程序员。
C语言程序设计(第3版)-参考答案C语言程序设计(第3版) - 参考答案C语言是一种广泛应用于软件开发领域的编程语言,它具有高效、简洁、灵活等特点。
《C语言程序设计(第3版)》是一本经典的教材,本文将提供一些参考答案,帮助读者更好地理解和掌握C语言程序设计。
一、基础知识1. 什么是C语言?C语言是一种通用的编程语言,由贝尔实验室的Dennis Ritchie开发,在20世纪70年代广泛流行起来。
它被设计为一种低级语言,可以直接操作计算机硬件,并提供了足够的抽象层次来方便高级程序设计。
2. 如何输出“Hello, World!”?在C语言中,使用printf函数可以输出文本信息。
要输出“Hello, World!”,可以使用以下代码:```#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```3. 如何定义和使用变量?在C语言中,可以使用关键字`int`、`float`、`char`等定义变量。
例如:```int age = 20;float weight = 60.5;char grade = 'A';```定义后的变量可以用于存储不同类型的值,并在程序中进行操作和输出。
二、控制流程1. 什么是条件语句?条件语句允许程序通过判断条件来选择性地执行不同的代码块。
在C语言中,常用的条件语句是`if`语句。
例如:```if (score >= 60) {printf("Pass\n");} else {printf("Fail\n");}```根据变量`score`的值,判断学生是否及格并输出相应结果。
2. 什么是循环语句?循环语句可以重复执行一段代码块,以达到多次执行的目的。
在C 语言中,常用的循环语句有`for`、`while`和`do while`。
《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语言教材习题答案(陈刚-主编)[1]教材习题答案习题1一.填空题1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)因此,(函数)是C程序的基本单位。
2.C程序注释是由(/某)和(某/)所界定的文字信息组成的。
3.函数体一般包括(声明部分)和(执行部分)二.判断题1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
(正确)2.main函数必须写在一个C程序的最前面。
(错误)3.一个C程序可以包含若干的函数。
(正确)4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
(正确)5.C程序的注释只能是一行。
(错误)6.C程序的注释不能是中文文字信息。
(错误)8.可以使用TurboC来编译和连接一个C程序。
(正确)9.可以使用TurboC来运行一个C程序。
(正确)10.可以使用TurboC来实时调试(即动态调试)一个C程序。
(正确)三、在c++6.0中输入如下的程序,编译、连接通过后显示结果(1)#include“tdio.h”voidmain(){printf(“某”)printf(“某某某”);printf(“某某某某某”);printf(“某某某某某某某”);}答案:某某某某某某某某某某某某某某某某(2)已知底和高,计算三角形的面积。
#include“tdio.h”voidmain() 2{intbottom,high,area;/某bottom表示底,high表示高,area表示面积某/bottom=4;high=6;area=bottom某high/2;printf(“theareai%d\\n”,area);}答案:theareai12四、算法设计:请试着分别用自然语言或、程序流程图和NS图描述如下算法。
1.设计一个程序在屏幕上显示如下的文字HELLOWELCOMEYOU2.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其个位数字立方和等于该数本身。
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的整数之和。
目录第1章C语言编程 (4)练习1.1 (4)练习1.2 (4)练习1.3 (5)第2章编程初步 (5)习题2.1 (5)习题2.2 (6)习题2.3 (7)习题2.4 (9)第3章条件判断 (10)习题3.1 (10)习题3.2 (12)习题3.3 (16)习题3.4 (18)第4章循环 (20)习题4.1 (20)习题4.2 (21)习题4.3 (22)习题4.4 (22)习题4.5 (24)第5章数组 (26)习题5.1 (26)习题5.2 (28)习题5.4 (30)习题5.5 (32)第6章字符串和文本的应用 (34)习题6.1 (34)习题6.2 (41)习题6.3 (43)习题6.4 (44)第7章指针 (47)习题7.1 (47)习题7.2 (49)习题7.3 (51)习题7.4 (52)第8章程序的结构 (54)习题8.1 (54)习题8.2 (55)习题8.3 (57)习题8.4 (60)第9章函数再探 (65)习题9.1 (65)习题9.2 (66)习题9.3 (69)习题9.4 (71)第10章基本输入输出操作 (72)习题10.2 (73)习题10.3 (75)习题10.4 (76)第11章结构化数据 (78)习题11.1 (78)习题11.2 (82)习题11.3 (86)习题11.4 (91)习题11.5 (95)第12章处理文件 (99)习题12.1 (99)习题12.2 (100)习题12.3 (104)习题12.4 (105)第13章支持功能 (110)习题13.1 (110)习题13.2 (111)习题13.3 (112)《C语言入门经典(第4版)》课后练习参考答案第1章 C语言编程练习1.1 编写一个程序,用两个printf()语句分别输出自己的名字和地址。
练习1.2将上一个练习修改成所有的输出只用一个printf()语句。
练习1.3编写一个程序,输出下列文本,格式如下所示:"It's freezing in here," he said coldly.第2章编程初步习题2.1 编写一个程序,提示用户用英寸输入一个距离,然后将该距离值输出为码、英尺和英寸的形式。
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
目录第1章C语言程序设计概述 (1)第2章C语言的基本数据类型与表达式 (2)第3章C语言程序的控制结构 (3)第1节顺序结构程序设计 (3)第2节选择结构程序设计 (6)第3节循环结构程序设计 (15)第4章函数及预处理命令 (22)第1章C语言程序设计概述一、选择题二、填空题1、一_、主、主2、.C 、.OBJ 、.EXE3、“{”、“}”、变量说明、执行语句4、主函数5、/* 、*/、运行三、编程题1、(1) 解:#include “stdio.h”void main(){printf(“ProgrammingLanguage\n”); }(2) 解:#include “stdio.h”void main(){printf("***************\n");printf("\n");printf(" Welcome \n"); printf("\n");printf("***************\n");}2、解main(){ int a,b,x,y,m,n;a=25;b=5;x=a+b; y=a-b; m=a*b; n=a/b;printf(“x=%d,y=%d,m=%d,n=%d\n”,x,y,m,n);}第2章C语言的基本数据类型与表达式一、选择题二、填空题1、_ 十、八、十六2、int 、float、double3、34、-165、16、 27、10、 68、99、‘f’10、(m/10%10)*100+m/100*10+m%10 11、3.500000 12、 113、 414、1.500000 、 6.70000015、1 、-2 、1 、4三、程序分析题1、1112、4,33、14、11,19,30,15、65,896、a=%d,b=%d第3章C语言程序的控制结构第1节顺序结构程序设计一、选择题二、填空题1、_a=5.0,4,c=32、03、b、b、 b4、-145、未指明变量k的地址、格式控制符与变量类型不匹配6、scanf(“%d%f%f%c%c”,&a,&b,&x,&c1,&c2);3 6.5 12.6aA7、A B <CR>8、10 15 109、123 、45.000000 10、不确定值11、261 12、1613、2,1三、程序分析题1、 4 、52、203、无正确值4、x=98 y=765.000000 z=4321.0000005、8796、10 , A , 10四、编程题1、解#include “stdio.h”main(){float c,f;printf("请输入一个华氏温度\n");scanf("%f",&f);c=5.0/9.0*(f-32);printf("摄氏温度为:%6.2f\n",c);}2、解#include “stdio.h”main(){int a,b,c,x;printf("请输入一个三位整数:");scanf("%d",&x);a=x/100;b=x/10%10;c=x%10;printf("输出结果:%d%d%d\n",c,b,a);}3、#include <stdio.h>main(){int hour,min,tran;printf("Enter time:");scanf("%d%d",&hour,&min);printf("before:%dh%dmm\n",hour,min);tran=hour*60+min;printf("after:%dmin\n",tran);}4、#include <stdio.h>main(){int a,n,i;float p,result=1;printf("Input a,n,p:");scanf("%d,%d,%f",&a,&n,&p);for(i=1;i<=n;i++)result=result*(1+p); //求(1+p)的n次方result=a*result-a;printf("\n到期利息为:%f\n",result);}5、#include <stdio.h>#define PI 3.14159main(){float r,h,l,s,v;printf("Input r,h:");scanf("%f,%f",&r,&h);l=2*PI*r;s=PI*r*r;v=PI*r*r*h;printf("r=%f,h=%f\nl=%f,s=%f,v=%f\n",r,h,l,s,v);}6、#include<stdio.h>void main(){ int a,b;long c;scanf("%d%d",&a,&b);c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; /*将a数的十位和个位数依次在c 数个位和十位上, b数的十位和个位数依次放在c数的百位和千位*/printf("The result is:%ld\n",c);}第2节选择结构程序设计一、选择题二、填空题1、&& || !2、x>2&&x<3||x<-103、y%2==14、x<z||y<z5、((x<0&&(y<0))||((x<0)&&(z<0))||((y<0)&&(z<0))6、17、08、19、0 10、0 11、012、113、014、[1] __ y<z ___ [2] ___ x<z ___[3] x<y15.[1] __ c=c+5____[2] ____ c=c-21_16、[1] __ u,v ____[2] __ x>y _____[3] u>z17、[1] ____ y%4==0&&y%100!=0 _[2] __ f=0____18、[1]gz<850 [2] (gz>=850)&&(gz<1500)[3] (gz>=1500)&&(gz<2000) [4] rfgz=gz-gz*0.015[5] rfgz=gz-gz*0.020019、[1] __10_____[2] ____9 ___[3] 11三、程序分析题1、 1,12、 1,03、5858584、your¥3.0yuan/xiaoshi5、2nd class postage is 14p6、 F7、 4:05 PM8、 b=29、 0.60000010、a=2,b=1 11、 passwarm四、编程题1、#include “stdio.h”void main(){int n;printf(“Input a number:\n”);scanf(“%d”,&n);if((n%5==0)&&( n%7==0)) printf(“yes\n”);else printf(“no\n”);}2、#include “stdio.h”void main(){int a,b;printf(“Input two number:\n”);scanf(“%d%d”,&a,&b);if(a*a+b*b>100) printf(“%d\n”,(a*a+b*b)/100); else printf(“%d\n”,a+b);}3、main(){float x;int y;printf("\n input x:");scanf("%f",&x);switch(x<0){case 1:y=-1;break;case 0:switch(x==0){case 1:y=0;break;default:y=1;}}printf("\n y=%d",y);}4、#include <stdio.h>#include <math.h>main(){float x,y;printf("Input x:");scanf("%f",&x);if(x<0)y=x*x*x;else if(x==0)y=0;elsey=sqrt(x);printf("x=%f,y=%f\n",x,y); }5、#include <stdio.h>main(){int n,n1,n2,n3,n4,n5,nn;printf("Enter n(n>=0 && n<99999):");scanf("%d",&n);if(n>=10000&&n<=99999){printf("n是5位数\n");n1=n%10;n2=(n/10)%10;n3=(n/100)%10;n4=(n/1000)%10;n5=n/10000;printf("n每一位上的数字是(从高到低)%d,%d,%d,%d,%d\n",n5,n4,n3,n2,n1);nn=n1*10000+n2*1000+n3*100+n4*10+n5;printf("n的逆序数为%d\n",nn);}if(n>=1000&&n<=9999){printf("n是4位数\n");n1=n%10;n2=(n/10)%10;n3=(n/100)%10;n4=n/1000;printf("n每一位上的数字是(从高到低)%d,%d,%d,%d\n",n4,n3,n2,n1);nn=n1*1000+n2*100+n3*10+n4;printf("n的逆序数为%d\n",nn);}if(n>=100&&n<=999){printf("n是3位数\n");n1=n%10;n2=(n/10)%10;n3=n/100;printf("n每一位上的数字是(从高到低)%d,%d,%d\n",n3,n2,n1);nn=n1*100+n2*10+n3;printf("n的逆序数为%d\n",nn);}if(n>=10&&n<=99){printf("n是2位数\n");n1=n%10;n2=n/10;printf("n每一位上的数字是(从高到低)%d,%d\n",n2,n1);nn=n1*10+n2;printf("n的逆序数为%d\n",nn);}if(n>=0&&n<=9){printf("n是1位数\n");printf("n每一位上的数字是(从高到低)%d\n",n);nn=n;printf("n的逆序数为%d\n",nn);}}6、#include <stdio.h>main(){float i,r;printf("Input i(万元):");scanf("%f",&i);if(i<=10)r=i*0.1;else if(i<=20)r=10*0.1+(i-10)*0.075;else if(i<=40)r=10*0.1+10*0.075+(i-20)*0.05;else if(i<=60)r=10*0.1+10*0.075+20*0.05+(i-40)*0.03;else if(i<=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;elser=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01;printf("i=%f,r=%f\n",i,r);}7、#include <stdio.h>#include <math.h>void main(){ double s=0.0;int i,n;scanf("%d",&n);for(i=0; i<n;i++)if(i%5==0 && i%11==0)s=s+i;s=sqrt(s);p rintf("s=%f\n",s); }8、#include <stdio.h>main(){ int n,g,sh;printf("Enter a two-digit number:");scanf("%d",&n);printf("You entered the number ");if(n>=10 && n<=19)switch(n){ case 10:printf("ten\n");break;case 11: printf(" eleven\n");break;case 12:printf("twelve\n");break;case 13:printf("thirteen\n");break; case 14:printf("fourteen\n");break; case 15:printf("fifteen\n");break; case 16:printf("sixteen\n");break; case 17:printf("seventeen\n");break; case 18:printf("eighteen\n");break;case 19:printf("nineteen\n");break;}else{g=n%10;sh=n/10;switch(sh){case 2: printf("twenty");break;case 3:printf("thirty");break;case 4:printf("fourty");break;case 5:printf("fifty");break;case 6:printf("sixty");break;case 7:printf("seventy");break;case 8:printf("eighty");break;case 9:printf("ninety");break;}switch(g){case 0:printf("\n");break;case 1:printf("-one\n");break;case 2:printf("-two\n");break;case 3:printf("-three\n");break;case 4:printf("-four\n");break;case 5:printf("-five\n");break;case 6:printf("-six\n");break;case 7:printf("-seven\n");break;case 8:printf("-eight\n");break;case 9:printf("-nine\n");break;}}}第3节循环结构程序设计一、选择题二、填空题1.[1] ____ x>=0_______ [2] ____ x<amin ___________ 2.[1] _____ c!=`\n`__ [2]c>=`0`&&c<=`9`__ 3.[1] ______ x1 ______ [2] ______ x1/2-2_______ 4.[1] __ r=m;m=n;n=r;[2] ____ m%n ________ _____ 5.[1] __ i%3==2&&i%5==3&&i%7==2 _[2] ____ j%5==0____ 6.[1] _____ n%10 ______ [2] _____ max=t ____ 7.[1] _______ i<x ______8.[1] ________2*x+y*4==90____9.[1] ___ t=t*i _________ [2] ______ t=-t/i _______ 10.[1] ____ m=n __ [2] _____ m ___ [3] ____ m=m/10______ 11.[1] ____ m=0,i=1_____ [2] ___ m=m+i _________ 12.[1] _____ k ____ [2] ___ k/10_____13.[1] _____ break ___ [2] ____ i= =11或i>=11__________ 14.[1] _____ i<=9 ____ [2] ______ j%3!=0____15、[1]b=i+1 16、[1]t>eps [2] 2.0*s17、[1] (ch=getchar()) [2] front!=' ' [3] ch三、程序分析题1、172、6689773、0111224、s=35、3,1,-1,3,1,-1,3,1,-1四、编程题1、#include “stdio.h”void main(){ int k,s=0;scanf("%d",&k);while(k>0){ if(k%3==0&&k%7!=0)s++ ;scanf("%d",&k);}printf("s=%d\n",s);}2、#include “stdio.h”void main( ){ int sum,n,i,s=0;for(n=200;n<=500;n++){ sum=0;for(i=1;i<=n/2;i++)if(n%i==0) sum+=i;if(sum= =n)s=s+n; }printf(“s=%d\n”,s); }3、#include "stdio.h"void main(){ int n,x=1;for(n=9;n>=1;n--)x=2*(x+1);printf("n=%d",x);}4、#include "stdio.h"void main(){ int x,y,z;for(x=1;x<=19;x++)for(y=1;y<=33;y++)for(z=1;z<=99;z++)if((x+y+z==100)&&(5*x+3*y+z/3==100))printf("X=%d,Y=%d,Z=%d\n",x,y,z);}5. main(){int i,n=0;for(i=100;i<=600;i++){a=i/100;b=i%100/10;c=i%10;if((b+c)%10==a)n++; }printf(“n=%d\n”,n);}6、#include <stdio.h>void main(){int i,sum=0,a,b,c;for(i=123;i<433;i++){a=i/100;b=i/10%10;c=i%10;if(a!=b&&a!=c&&b!=c&&(a>0)&&(a<5)&&b>0&&b<5&&c>0&&c<5) {sum++;printf("%d ",i);}}printf("\n%d\n",sum);}7、输出9*9口诀表。
教材习题答案习题1一.填空题1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。
因此,( 函数) 是C程序的基本单位。
2.C程序注释是由(/* ) 和( */ ) 所界定的文字信息组成的。
3.函数体一般包括(声明部分) 和(执行部分) 。
二.判断题1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
(正确)2.main函数必须写在一个C程序的最前面。
(错误)3.一个C程序可以包含若干的函数。
(正确)4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
(正确)5.C程序的注释只能是一行。
(错误)6.C程序的注释不能是中文文字信息。
(错误)8.可以使用Turbo C来编译和连接一个C程序。
(正确)9.可以使用Turbo C来运行一个C程序。
(正确)10.可以使用Turbo C来实时调试(即动态调试)一个C程序。
(正确)三、在c++ 6.0中输入如下的程序,编译、连接通过后显示结果(1) #include “stdio.h”void main(){printf(“ * ”)printf(“ *** ”);printf(“ ***** ”);printf(“******* ”);}答案:****************(2)已知底和高,计算三角形的面积。
#include “stdio.h”void main(){ int bottom,high,area; /*bottom 表示底,high 表示高,area表示面积*/bottom=4;1high=6;area=bottom*high/2;printf(“the area is %d\n”,area);}答案:the area is 12四、算法设计:请试着分别用自然语言或、程序流程图和NS图描述如下算法。
1. 设计一个程序在屏幕上显示如下的文字HELLO WELCOME YOU2. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其个位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
3. 对输入的某学生成绩,如果学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
4. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
5. 一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个,问共有多少个桃子。
答案:1.#include “stdio.h”main(){printf(“HELLO WELCOME YOU”);}2.水仙花数产生在100到999之间,利用穷举法,对此范围之内的所有数一个个进行测试,关键是要对每一个三位数分离出它的三个数字。
具体的算法是:n%10,得到个位,(n/10)%10,得到百位数字,n/100,得到个位数字。
再利用水仙花数的含义来判断该数是否满足条件。
#include “stdio.h”main(){int n,,i,j,k;for(n=100;n<=999;n++){i=n%10;j=(n/10)%10;k=n/100;if( i*i*i+j*j*j+k*k*k= =n)printf(“%d\n”,n);}3.此题用if …else if 来实现。
对于每次输入的成绩,判断它属于哪个等级。
#include "stdio.h"main(){int grade;printf("input grade=");scanf("%d",&grade);if (grade>=90) printf("A\n");else if(grade>=60 &&grade<=89) printf("B\n");else printf("C\n");}4.先考虑一个整数m,如何判断它是否为完数。
从数学知识可知:一个数m除该数本身外的所有因子都在1~m/2之间。
算法中要取得因子之和,只要在1~m/2之间找到所有的整数m 的数,将其累加起来即可。
如果累加起来与m本身相等,则表示m是一个完数,可以将m 输出。
#include "stdio.h"main(){int m,i,s;for(m=2;m<=1000;m++){ s=0;for(i=1;i<=m/2;i++)if(m%i==0) s+=i;if(m==s)printf("%d\t",m);}printf("\n");}5.找出前后两天的数量关系,然后用递推法求解。
设第十天的桃子数目为t,昨天的数为y,则t=y/2-1,得到y=2t+2,这样由今日数目可以求出昨日数目,从最后一天开始,倒退到第一天,倒退的循环次数比天数少1。
所以,若已知第n天只留下一个,问第一天有多少个时,则倒退循环n-1次得到结果。
天数:10 9 8 7 6 5 4 3 2 1 桃子数目:1 4 10 22 46 94 190 382 766 1534#include "stdio.h"main()3int i,t,y,n;t=1;printf("\ninput number n:\n");scanf("%d",&n);for(i=1;i<=n-1;i++){y=2*t+2;t=y;}printf("the total is :%d\n",y);}习题2一、选择题C语言基本类型包括( D )A) 整型、实型、逻辑型B) 整型、实型、字符型、逻辑型C) 整型、字符型、逻辑型D) 整型、实型、字符型下列四组选项中,均不是C语言关键字的选项是A 。
A) define IF typeB) getc char printfC) include case scanfD) while go pow语言的字符型数据在内存中的存储形式是( D )A)原码B)补码C) 反码D) ASCII码C 语言的整型数据在内存中的存储形式是( B )A)原码B)补码C) 反码D) ASCII码已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为 A 。
A) D B) 68 C) 不确定的值D) C以下叙述正确的是 C 。
A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示以下叙述不正确的是D 。
A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值下面正确的字符常量是 A 。
A) “c” B) ‘\\’’ C) ‘’ D) ‘K’下列四组选项中,均是合法转义字符的选项是 A 。
A) ‘\”’‘\\’‘\n’B) ‘\’‘\017’‘\”’C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘xlf’下列四组选项中,均是不合法的用户标识符的选项是 B 。
A) W P_0 doB) b-a goto intC) float la0 _AD) -123 abc TEMP若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。
x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 52设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。
A) float B) char C) int D) double设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为C 。
A) 0~255 B) 0~32767 C) 0~65535 D) 0~若运行时给变量x输入12,则以下程序的运行结果是。
(有错误,应为0)main(){ int x,y;scanf(“%d”,&x);5y=x>12 ? x+10 : x-12;printf(“%d\n”,y);}A) 4 B) 3 C) 2 D) 1若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是 C 。
A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 B 。
A) 1 B) 2 C) 3 D) 4以下程序的运行结果是 B 。
main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A) 6,1 B) 2,1 C) 6,0 D) 2,0已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。
if(x>y) z=x; x=y; y=z;A) x=10, y=20, z=30 B) x=20, y=30, z=30C) x=20, y=30, z=10 D) x=20, y=30, z=20以下程序的运行结果是 C 。
main(){ int m=5;if(m++>5)printf(“%d\n”,m);else;printf(“%d\n”,m--);}A) 4 B) 5 C) 6 D) 7判断char型变量ch是否为大写字母的正确表达式是 C 。
A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)逻辑运算符两侧运算对象的数据类型 D 。
A) 只能是0和1 B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据sizeof(float)是 B 。