第2章 简单C程序设计
答案第二章 C语言程序设计的初步知识

第二章 C语言程序设计的初步知识一、选择题1.在C 语言中,下列类型属于构造类型的是 D 。
(0级)A)整型B)字符型C)实型D)数组类型2.在C 语言中,下列类型属于构造类型的是D 。
(0级)A)空类型B)字符型C)实型D)共用体类型3.在C 语言中,下列类型属于构造类型的是 D 。
(0级)A)整型B)指针类型C)实型D)结构体类型4.在C 语言中,下列类型属于基本类型的是 A 。
(0级)A)整型、实型、字符型B)空类型、枚举型C)结构体类型、实型D)数组类型、实型5.下列类型属于基本类型的是 C 。
(0级)A)结构体类型和整型B)结构体类型、数组、指针、空类型C)实型D)空类型和枚举类型6.下列字符串属于标识符的是 A 。
(0级)A)INT B)5_student C)2ong D)!DF7.下列字符串属于标识符的是 A 。
(0级)A)_WL B)3_3333 C)int D)LINE 38.下列字符串不属于标识符的是 D 。
(0级)A)sum B)average C).day_night D)M.D.JOHN9.下列字符串不属于标识符的是 D 。
(0级)A)total B)lutos_1_2_3 C)_night D)$ 12310.下列字符串不属于标识符的是D 。
(0级)A)_above B)all C)_end D)# dfg11.C语言中不能用来表示整常数的进制是 D 。
(0级)A)十进制B)十六进制C)八进制D)二进制12.C语言中能用来表示整常数的进制是 A 。
(0级)A)十进制、八进制、十六进制B)十二进制、十进制C)六进制、八进制D)二进制、十进制13.在C语言中,回车换行符是 A 。
(0级)A)\n B)\t C)\v D)\b14.在C语言中,退格符是 D 。
(0级)A)\n B)\t C)\v D)\b15.在C语言中,反斜杠符是 D 。
(0级)A)\n B)\t C)\v D)\ \16.在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII 码 A 。
《C语言程序设计》教案

《C语言程序设计》教案教案一:《C语言程序设计》入门教学一、教学目标:1.了解C语言的基础知识和程序设计的基本原理;2.掌握C语言的基本语法和常见的数据类型;3.通过编写简单的C语言程序,提高学生的实践能力和解决问题的能力。
二、教学内容:1.第一章:C语言概述1.1C语言的发展历程;1.2C语言的特点和应用领域;1.3C语言的编译过程;1.4编写第一个C语言程序。
2.第二章:C语言程序结构2.1C语言程序的基本结构;2.2注释和预处理指令;2.3 main函数的定义和调用;2.4C语言程序的编译和运行。
3.第三章:数据类型和变量3.1基本数据类型的介绍和使用;3.2常量和变量的定义;3.3变量的赋值和运算;3.4数据类型转换和类型检查。
4.第四章:运算符和表达式4.1算术运算符和表达式;4.2关系运算符和表达式;4.3逻辑运算符和表达式;4.4条件运算符和表达式。
5.第五章:控制语句5.1顺序结构;5.2 分支结构(if语句、switch语句);5.3 循环结构(while语句、do-while语句、for语句);5.4 跳转语句(break语句、continue语句、goto语句)。
6.第六章:函数和递归6.1函数的定义和调用;6.2函数的参数和返回值;6.3递归函数的设计和实现;6.4标准库函数的使用。
三、教学方法:1.理论与实践相结合,讲解C语言的基本概念和语法规则,并通过编写代码实例进行实践;2.设置练习题目,帮助学生巩固所学知识;3.针对学生的不同程度,采用个别指导、小组合作等方式进行教学。
四、教学评估:1.课堂练习:通过解答问题、编写代码等方式,检测学生对知识点的理解和掌握情况;2.课后作业:布置练习题目,要求学生独立完成,并对学生的作业进行批改和评价;3.期末考试:采用笔试形式,考察学生对整个课程的掌握程度。
五、教学资源:1.教材:《C语言程序设计》;2.电子资源:包括编译器软件、IDE等,用于学生的编程实践。
《C++程序设计》电子教案第2章 函数

(4)函数声明中不能只写形参名而不写类型。 )函数声明中不能只写形参名而不写类型。 ( 5) 函数声明中除了当函数返回值类型为 或 ) 函数声明中除了当函数返回值类型为int或 char时函数类型可以省略外,一般情况下不能省 时函数类型可以省略外, 时函数类型可以省略外 略函数类型。 略函数类型。 ( 6) 由于调用时是按参数顺序进行传递的 , 所 ) 由于调用时是按参数顺序进行传递的, 以函数声明中形参的次序也不要写错。 以函数声明中形参的次序也不要写错。 (7)并不是对所有被调函数都要作声明。 )并不是对所有被调函数都要作声明。
例2-6:给出以下程序的运行结果。 :给出以下程序的运行结果。 #include <iostream.h> int func1(int a=4); void main() { int b; b=func1(); cout<<”b=”<<b<<endl; } int func1(int a) { return a+1; } 此程序的运行结果为: 此程序的运行结果为: b=5
例: func1(c1(a,b) int a; int b; { … … }
例2-1:给出以下程序的运行结果。 :给出以下程序的运行结果。 #include "iostream.h" int func(int n) { if(n>0) return 1; else if(n==0) return 0; else return -1; } void main() { int n; cout<<"Please input n:"<<endl; cin>>n; cout<<"\nthe result:"<<func(n)<<endl; }
Visual_Basic程序设计课件——第二章

算术运算符的优先顺序:^(指数运算符)→-(取负运算符)→*、/ (乘、除运算符) →\(整除运算符) →Mod(取模运算符) →+、-(加、 减运算符)
2、算术表达式
VB算术表达式与数表达式的写法有所不同,要注意以下几点: (1)每个VB符占1个存储空间,所有符号必须写在同一水平线上。 例如:x2要成为x^2。 (2)乘法运算符*要写明。例如:x*y,不能写成xy。 (3)括号必须配对,不能多也不能少,只能是圆括号,不能是方括号或 花括号。 例如:3[x+2(y+z)]应写成3*(x+2*(y+z)) (4)有歧义的写法要避免。例如:2^-2的结果是0.25,而不是-4,最好 写成2^(-2)
§2.2 常量与变量
在程序中,不同的数据既可以表现为常量形式,又 可以表现为变量形式。常量是指在程序运行中始终保 持不变的量。在VB,有两种形式的常量:直接常量和 符号常量。
直接常量
直接常量分为:数值常量、字符串常量、布尔常量、日期常量。 1、数值常量 常用的数值常量有以下类型:整数、长整数、单精度数、双精度数。 整数:例如20,32767。 长整数:例如 32768,-325674。 单精度数:例如 4.345,3.67e2。 双精度数:例如 1234.23456,4.1245d5。 2、字符串常量 字符串常量是用双引号括起来的的一串字符。这些字符可以是“ ”和回 车、换行符以外的所有字符。例如:“xyz”,“程序”。
第2章 Visual Basic语言基础
本章内容:
六种基本数据类型 常量和变量的定义和使用 五种运算符和表达式 常用内部函数的用法 程序语句的书写规则
本章重点:
掌握基本数据类型的含义和使用 掌握常量和变量的区别和命名规则 掌握各类运算符间的优先级比较以及每类运算符自身之间的 优先级比较 会根据运算符优先级和常用内部函数的含义正确计算表达式 的值
C语言程序设计(郑莉)课后习题答案

C++语言程序设计(清华大学莉)课后习题答案第一章概述1-1 简述计算机程序设计语言的发展历程。
解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。
1-2 面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。
面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。
通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。
因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
C++语言是目前应用最广的面向对象的编程语言。
1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。
当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
C语言程序设计教程(电子教案)

学习目标
对C语言有一个概括的了解, 能够编写包含键盘输入、计算和 显示输出等操作的简单C程序。
4
主要内容
• C语言的产生与特点 • 简单C程序的组成 • C语言应用程序开发的基本步骤
5
1.1 C语言的产生及特点
C语言是为了编写系统程序而在1968年开始 研发的计算机高级语言
C语言表达能力强,使用灵活,程序结构清 晰,紧凑,可移植性好
指针 类型
17
基本数据类型说明符
整型:int long
字符型:char 实型:float
double long double
18
2.2 常 量
常量∶在程序运行过程中,其值不能被改 变的量。
一. 不同数制整型常量的表示
例如: 12 :十进制数 12
012 :八进制数 12(等于十进 制数10,用前导符0表示八进制数常量)
计算x+y+z,并将结 8果赋给变量sum
显示变量 sum的值
主函数 main()
一般C程序的组成
【例1-2】采用模块结构,改写例1-1的程序。 add(int x,int y,int z )
{ return(x+y+z);
}
函数add()
调用函数 add()
main() { int x,y,z; printf("Please Input Three Integers:\n "); scanf("%d,%d,%d ",&x,&y,&z);
4. 用‘\’ ’表示字符’ ,‘\”’表示字符”, ‘\\ ’表示字符\ 。
5. 用双引号括起来的字符序列表示字符串常量,其 中最后一个字符是字符串结束符‘\0’,不显式 地表示出来。如:“English” 。
C程序设计第五版谭浩强课后答案 第二章答案
3. 把大象放进冰箱
先打开冰箱门,然后将大象放进冰箱,关冰箱。
2. 什么叫结构化的算法?为什么要提倡结构化的算法?
结构化算法:由一些顺序、选择、循环等基本结构按照顺序组成,流程的转移只 存在于一个基本的范围之内。 结构化算法便于编写,可读性高,修改和维护起来简单,可以减少程序出错的机 会,提高了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。
1. 依次将 10 个数输入,要求输出其中最大的数。
解析: 先输入 10 个整数,将第一个整数给 max,然后依次取剩余整数与 max 进行比 较,如果某个整数大于 max,将该整数交给 max,直到所有剩余整数全部比较 完,max 中保存的即为最大整数,将 max 值输出。
3. 有 3 个数 a,b,c, 要求按大小顺序把他们输出。
108.
2. 有两个相等的实根;
begin
109.
input a
110.
input b
111.
input c
112.
113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130.
b*b - 4*a*c => p if p < 0 {
有实根。
5. 用 N-S 图表示第 4 题中各题的算法
1. 有两个瓶子 A 和 B,分别盛放醋和酱油,要求将他们互换(即 A 瓶原来盛醋,现在盛酱油,B 瓶则相反)。
2. 依次将 10 个数输入,要求输出其中最大的数。 3. 有 3 个数 a,b,c, 要求按大小顺序把他们输出。
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); // 存活期存款。
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); // 存活期存款。
C++语言程序设计(郑丽)
第一章:语言是一套具有语法和词法规则的系统第二章:C++简单程序设计C++优点:1、全面兼容C 2、支持面向对象的方法2.1.3 C++程序示例输出 cout<<预定义: # include <iostream> --# include 称作编译指令 --iostream声明了输入输出有关的信息--using namespace是针对命名空间的指令2.1.4 字符集2.1.5 词法记号关键字:auto bool break case catch char classconst const_cast continue default delete dodouble dynamic_cast else enum explicit extermfalse float for friend goto if inline int longmutable namespace new operator private protectedpublic register teinterpret_cast return short signedsizeof static stacit_cast struct switch template this throw truetry typedef typeid typename union unsigned using virtual void volatile while 标识符:函数名、变量名、类名、对象名2.2 基本数据类型和表达式2.2.1基本数据类型类型名长度(字节) 取值范围bool 1 false、truechar(signed char) 1 -128->127unsigned char 12.2.2 常量整型常量:正整数、负整数、零,十进制、八进制、十六进制实型常量:一般形式和指数形式(12.3, 0.345E+2)字符常量:单引号括起来的单个字符(‘a’)无论是不可显示字符还是一般字符,都可以用十六进制或八进制ASCII码表示,表示形式\nnn 八进制形式\xnnn 十六进制c++预定义的转义字符:字符常量形式 ASCII码含义\a 07 响铃\字符串常量:用双引号括起来的,在内存上存储的时候需要在末尾添加‘\0’表示结束符布尔常量:false和true2.2.3 变量1、变量的声明和定义:变量使用之前需要先声明类型和名称形式:数据类型变量名,变量名2, ....,变量名n ;声明是为了使编译器认识这个变量以便分配内存,但是声明不一定引起内存的分配定义一个变量意味着分配内存2、变量的存储类型:决定了变量的存储方式auto存储类型:堆栈方式分配存储空间,暂时性存储,其存储空间可以被多次使用register存储类型:存放在通用寄存器中extern存储类型:在所有函数和程序段中都可以使用static存储类型:在内存中放在固定的地址,整个程序运行都有效2.2.4 符号常量:在使用前一定要首先声明形式: const 数据类型说明符常量名=常量值或数据类型说明符 const 常量名 = 常量值注:符号常量在声明是一定要赋初值,并在以后不可以改动(把定义的符号当作一个常量值来使用)const float pi = 3.14 或者 float const pi = 3.142.2.5 运算符与表达式二元运算符(双目运算符)、一元运算符(单目运算符)逗号运算与逗号表达式形式; 表达式1,表达式2....a = 3*5, a*4 //结果为最后一个表达式的值即60;sizeof(表达式) :用于计算某种类型的对象在内存中所占的字节数形式: sizeof(表达式) 或者 sizeof(类型名)结果:类型名所制定的类型或者表达式的结果类型所占的字节数(并不对括号的表达式本身求值)数据类型的转换:1、隐含转换:将的类型转换为高类型数(保证数据的精确度没有损失),运算是先转换后运算2、强制类型转换:通过类型说明符和括号实现将数据转换为指定的类型数据形式:类型说明符(表达式)或者(类型说明符)表达式注意:1、不安全的转换(数据精度会丢失) 2、转换是暂时的,一次性的(a= int(z),不会改变z中的内容,只是临时使用)--------------------------------------------- cosnt_cast <类型说明符> (表达式) -- dynamic_cast <类型说明符> (表达式) -- reinterpret_cast <类型说明符> (表达式 -- static_cast <类型说明符> (表达式) ---------------------------------------------2.3 数据的输入与输出在C++中,将数据从一个对象到另一个对象的流动抽象为“流”,流-使用前要建立,使用后要删除从流中获取数据的操作--------------提取操作向流中添加数据的操作--------------插入操作cin处理标准输入cout处理标准输出cout<<表达式<<表达式....cin>>表达式>>表达>>.... //“<<”是预定义的插入符输入多个数据的时候可以用空格隔开即可2.3.3 输入输出的操纵符:预处理头文件 iomanipDec 数值数据采用十进制显示Hex 数值数据采用十六进制表示Oct 数值数据采用八进制表示Ws 提取空白符Endl 插入换行符,并刷新流Ends 插入空字符setprecision(int)设置浮点数的小数位数(包括小数点)setw(int)设置域宽cout<<setw(5)<<setprecision(3)<<3.1315<<endl;2.4.5 其他控制语句break:出现在循环或者switch语句中,使程序从switch或循环中跳出继续执行continue:可以出现在循环中,结束本次循环,判断是否执行下一次循环goto 语句标号:跳转到指定语句2.5 自定义数据类型typedef:将一个标识符声明成某个数据类型的别名,然后将这个标识符当作这个数据类型使用(提高可读性、简化程序)形式: typedef 已有类型名新类型名表新类型名表中可以有多个标识符typedef double a, b, c;枚举: enum 枚举类型名{变量值列表}整数值不可直接赋给枚举变量结构体联合体第三章:函数的定义3.1 函数的定义与使用函数调用的执行过程递归调用函数调用1、值调用:调用函数的时候将实参赋给形参,不可以修改主调函数2、引用调用:特殊类型的变量,可以是另一个变量的别名,可用来在调用的时候修改主调函数声明引用时必须给他赋值,一旦一个引用被初始化就不可以赋给其他引用引用就相当于把一个变量的地址当作函数的参数调用int i,j;int &ri=i;3、内连函数:在编译的时候就将函数体嵌入到其中,避免函数调用的时候因为执行效率低函数调用的时候保存现场去执行函数然后有返回现场耗费资源形式: inline 类型说明符被调函数名(含类型说明的形参表){函数体语句;}注意:1、内连函数不使用for或者switch2、内连的定义必须在第一次被调用之前3、对内连函数不能进行异常接口申明4、内连一般很简短的代码3.3 带默认形参值的函数函数在定义的时候可以预先声明默认的形参值,调用的时候如果给出实参就用实参初始化形参,如果没有给出就用默认的形参注意:1、默认形参必须按从右向左的循序(实参初始化从左往右)int add(int , intx, inty); //rightint add(int x, int y, int); //wrongint add(int x, int, int y); //wrong2、在相同作用域内,默认形参说明保持一致,不同作用域允许说明不同的默认形参3.4 函数重载两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配自动确定调用那个函数注意:1、函数参数个数不同 2、参数类型不同3.5 C++的系统函数调用就要使用头文件 cmath第四章:类与对象4.1.1 抽象:对具体问题进行概括,抽出一类对象的公共性质并加以描述的过程数据抽象行为抽象4.1.2 封装:将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的代码进行有机的结合形成类,其中的数据和函数就是类的成员。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
signed 与unsigned
有符号整数类型(signed) 有符号整数如果是正数或零,那么最高位(符号位)为0; 如果是负数,则符号位为1。 因此,最大的16 位整数 的二进制表示形式是0111111111111111,对应的十进制 数是32 767(即215-1)。 而最大的32位整数是01111111111111111111111111111111, 对应的十进制数是2 147 483 647(即231-1)。
/*从标准输入设备,如键盘读入一个整数,存入fahr*/
scanf("%d", &fahr);
celsius = 5 * (fahr-32) / 9;
printf("fahr=%d, celsius=%d\n", fahr, celsius); }
2.2.1 格式化输出函数printf()
格式:printf(“格式控制串”,输出参数表) printf( "%d" , ccoouunntt);
2.2 格式化输入输出
/*•程前序2面-3例:中温的度转程换序*运/ 行后只能输出华氏温度100F对应 #inc的lu摄d氏e <温s度td,io为.h提>高程序的通用性,要求程序运行 int m后a等in待(v键o盘id)输入一个华氏温度(整数),程序输出 { 其对应的摄氏温度。
int celsius, fahr;
Africa
123
9/12/2003
整型
非整型
Jackie Chan
数值
The quick brown fox 非数值 999
9数00据2属.1于2 不同类别
TRUE
为什么要设计不同的数据类型?
适合的才是最好的
比如房子,若所有商品房都设计成500平米的别墅怎么样?显 然,很多人买不起也不需要这么大的面积,所以根据需要有了 不同房型。
2.1.1 内存
内存可以理解为一排井然有序的小开关,每个开关 有两个状态:开表示1,断表示0,所以每个开关表 示一个二进制数,0或1,称为一个位(bit). 为管理方便,8个位为一组,称为一个字节(byte) 然后为所有字节编号,这个编号称为字节的地址。 每台计算机都安装了一定数量的内存,内存通常以 MB为单位。
变量
内存
37 100
程序 将100存入 fahr
计算5 * (fahr - 32) / 9
编写程序时,通常使用变量
来存储数据,方便后面使用 这个数据或者修改这个数据。
将值存入celsius 输出fahr和celsius
2.1.3 数据类型
基本数据类型
整型:int 、long int、short int 浮点型 float、double 字符型 char 2.175
存储器按其用途可分为主存(内存)和辅存(外存)。
内存是CPU能直接寻址的存储空间,由半导体器件制成。 内存的特点是存取速率快(相对于外存而言)。
我们平常使用的程序,如Windows操作系统、游戏软件 等虽然是安装在硬盘等外存上的,但必须把它们调入 内存中运行,才能真正使用其功能。(外存和内存, 就好比在书房里的书架和书桌)。
课堂练习:输出整数幂
已知m=11,n=41,输出m和n的2次方、3次方和 4次方,要求每个数据占8列,左对齐。
效果如下: 121 1331 14641 1681 68921 2825761
2.2.2 scanf() 函数
scanf 函数从标准输入(键盘)读取信息,按照格 式描述把读入的信息转换为指定数据类型的数据 ,并把这些数据赋给指定的内存区域中。
fahr = celsius
1=005;*(fahr-/3*2为)/变9量; /f执 :*ah计r行赋算值程表1达0序0式*的/的输值赋出给结ce果lsiu为s */
printf(“fahr=%d, celsius=%fadh\rn=“1,0f0ah, rc,eclesliusisu=s3);7
return 0;
long 与 short
int,long int(简写为 long),short int(简写为 short)的 宽度都可能随编译器而异。但都遵循以下原则: short int 类型 的宽度 不大于 int类型的宽度 int 类型 的宽度 不大于long int类型的宽度 short int至少应为16位(2字节) long int至少应为32位。
sum = a + b; a = 3; b = 5; printf("%d\n",sum);
sum = a + b; 实际上,执行sum=a+b时,因为a 和b中的值都不确定,是垃圾值 ,所以其和也是垃圾值,然后把 这个垃圾值赋给了sum。
retu赋rn 值0; 运算会改变赋值号左边的变量的值,既不 } 表示数学中的等量代换,也不表示相等关系
– 改变变量的值:将赋值表达式的值存入左侧的变量
分析错误程序
/*程序2-2:整数的和*/ 该程序为何得不到正确结果? #include<stdio.h>
int main(void)
错误原因是受数学思维的影响,
{ int a, b, sum;
应改为: a误之b ==以间35为的;;一su个m=a等+b量;是 关建系立sum和a+b
第2章 简单C程序设计
授课人:朱会东
2019年5月29日星期三
1
本章要点
1 C语言数据类型、运算符 2 C语言的常量和变量 3 C语言的表达式 544 格式化输入、输出函数 554 常用数学函数
2.1.1 内存
2.1 内存与变量
存储器是计算机中一个很重要的部分,用来存储程序 和数据。计算机有了存储器,才有记忆功能,才能保证 正常工作。
1B=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB
温度转换
例2-1 求华氏温度100F对应的摄氏温度
/*程序2-1:温度转换*/ #include <stdio.h>
int main(void) {
int celsius, fahr; /* 定义int类型变量celsius和fahr */
printf()函数的多项输出
printf("fahr=%d , celsius=%d\n", fahr, celsius);
普通字符,原样输出
输出参数列表
%开头的是转换说明,对应与后面一个 输出参数,对应参数将被转换成指定格 式后在该位置输出
‘\n’是转义字符,用来输出一个回车
输出结果: fahr=100, celsius=37
将一些信息按照指定的格式送到标准输出(显示器) 格式字符串:指定数据的输出格式
输出参数表:待输出的数据,可以是常量、变量或表 达式
格式控制串
printf(“hello world\n");
输出结果:hello world
int a = 3, b = 5; printf(“两个数的和是%d\n“, a + b); 输出结果:两个数的和是8
2.1.5 赋值运算
• 赋值运算符 =
• 赋值表达式:用 = 将一个变量和一个表达式连接 起来的式子
变量 = 表达式 例如:
fahr = 100;
= 的左边必须是一个变量, 称为“左值”
celsius = 5 * (fahr - 32) / 9;
– 计算赋值表达式的值:赋值表达式的值由右侧表达式的 值决定
无符号整数类型(unsigned) 无符号整数表示正数或零,不带符号位,所有位全部用 来表示数值,最大16 位无符号整数是65535(即216-1)。 而最大的32 位无符号整数是4 294 967 295(即232-1)。
整数类型
2.1.4 变量的声明和使用
声明变量格式:<变量类型 > <变量名字> int celsius, fcelsius, fahr; /* 定义int类型变量celsius和fahr */ celsius = 5 * (fahr - 32) / 9; /*将表达式的值赋给celsius */
变量标识计算机里一块特定的内存,它由一个或多 个连续的字节组成。 每个变量都有一个名称,标识内存中的这个位置, 以便通过变量名读取该位置的数据或存储一个新数值。 变量的值不是固定的,随时都可以改变,且次数不 限。
整数类型
为了处理不同范围的整数,除了基本整型int 以外,
C 语言提供了扩展的整数类型——int 之前加上限定词
short、long 或unsigned。
可组合得到以下6种整数类型: 整型 int 短整型 short int 长整型 long int 无符号整型 unsigned int 无符号短整型 unsigned short int 无符号长整型 unsigned long int
printf()函数的第一项是一个有双引号括起来的字 符序列,指定数据的输出格式 ,称为格式控制串, 由普通字符和格式字符组成。
普通字符会原样输出
格式转换说明符%d
int n = 150; printf ("%d" , n);
输出结果:150 int a = 3, b = 5; printf(“两个数的和是%d\n“, a + b); 输出结果:两个数的和是8
用scanf()读入整型数据 内存
int num;
num
scanf("%d", &num);