c++教程第16章

合集下载

C语言全国计算机二级等级考试教程第一二章(章节带习题)

C语言全国计算机二级等级考试教程第一二章(章节带习题)
10
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常
量。但是这个符号名必须在程序中用(#define)进行特别的“
指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/
#define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/
main()
/*主函数,程序的入口*/
{double r,s,l;
/*声明部分,定义了3实型个变量*/
r
r=5.0;
/*给变量r赋值*/
函 s=PI*r*r;
数 体
l=2*PI*r;
/*计算圆的面积*/ /*计算圆的周长*/
s
printf(“s=%f,l=%f\n”,s,l/)*;分别圆的面积和周长*/
/*给变量b赋值*/
数 体
area=a*b;
/*将a*b的结果赋值给变量area*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area/)*;分别输出矩形的两条边长和面积*/
1.2
}
3.6
a=1.200000,b=3.600000,area=4.320000
4.32
注意:
1. C程序由函数组成,一个程序必须有一个且只能有一个主函数(main),C程
a
b
1.5000002.500000 2.5000003.500000
a b
内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。

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); // 存活期存款。

PhotoshopCS5基础教程第16章动作调板

PhotoshopCS5基础教程第16章动作调板

第16章 动画、网络与自动化操作
16.3 优 化 图 像
第16章 动画、网络与自动化操作
【练习】 快速转换技巧—应用批处理为整个文件夹 中的图像应用“马赛克拼贴”。
本练习主要让大家了解“批处理”命令的使用方法。 本练习中使用之前创建的“马赛克拼贴”动作。操作步 骤如下:
(1) 执行菜单中的“文件”→“自动”→“批处理”命 令,打开“批处理”对话框,在“播放”部分,选择之 前创建的“马赛克拼贴”动作,在“源”下拉列表中选 择“文件夹”,单击“选择”按钮,在弹出的“浏览文 件夹”对话框中选择“风景”文件夹,单击“确定”按 钮,如图16-14所示。
第16章 动画、网络与自动化操作 图16-19 “Photomerge”对话框
第16章 动画、网络与自动化操作
该对话框中各项的含义如下: (1) 版面:用来设置转换为前景图片时的模式。 (2) 使用:在下拉菜单中可以选择“文件和文件夹”。 选择“文件”时,可以直接将选择的两个以上的文件制 作成合并图像;选择 “文件夹”时,可以直接将选择的 文件夹中的文件制作成合并图片。 (3) 混合图像:勾选该复选框,应用“Photomerge”命 令后会直接套用混合图像蒙版。
第16章 动画、网络与自动化操作 图16-13 警告对话框
第16章 动画、网络与自动化操作
(4) 文件命名:在“目标”下拉列表中选择“文件夹” 后可以在“文件命名”选项区域中的6个选项中设置文件 的命名规范,还可以在其他的选项中指定文件的兼容性, 包括Windows、Mac OS和Unix。
(5) 错误:用来设置出现错误时的处理方法。 • 由于错误而停止:出现错误时会出现提示信息,并 暂时停止操作。 • 将错误记录到文件:在出现错误时不会停止批处理 的运行,但是系统会记录操作中出现的错误信息,单击 下面的“存储为”按钮,可以选择错误信息存储的位置。

Python实用案例教程 第16章 界面设计实例

Python实用案例教程 第16章 界面设计实例

3. 开启消息循环
正如所有的Windows标准窗体一样,在设计布局好Tkinter窗口上的全部组件后,必须打开窗 口的消息循环,这样窗口界面才能随时对用户的操作作出实时的响应,进入消息循环只须一句:
mainloop()
即可,当然在此之前程序员可以预先编写一些语句来对窗口进行初始化,预设显示效果。
目 录
单击
文字变化
第16章 窗口从何而来:界面设计实例
——窗体基本控件
目 录
01
Tkinter控件概述
Tkinter控件概述
Tkinter应用程序界面是由很多控件构成的,目前为止Tkinter库总共提供了19种控件供用户在GUI 应用程序中使用,它们的名称和功能如表16.1所示。
控件 名称 功能
Button Canvas Checkbutton Entry Frame Label Listbox Menubutton Menu Message Radiobutton Scale Scrollbar Text Toplevel Spinbox PanedWindow LabelFrame tkMessageBox
控件字体 锚点
控件样式 位图 光标
目 录
02


标签
代码如下(ch16, tkinter_label.py): from tkinter import * master = Tk() master.title('标签控件') myimage = PhotoImage(file = "D:\Python\pybg.gif") # 载入背景图资源 mylabel = Label(master, image = myimage, # 设置所用背景图 compound = TOP, # 设置图片位置 text = "Tkinter制作的界面真美!", # 设置文本内容 justify = CENTER, # 设置文本位置 font = ("方正舒体", 18), # 设置文本字体 fg = "green" # 设置文字颜色 ) mylabel.pack() # (1) mainloop()

Photoshop CS基础教程与上机指导第十六章

Photoshop CS基础教程与上机指导第十六章

/webnew/
16.3.1 记录动作
如果要将一幅图片进行去色处理 , 记录动作的操作可按以下步骤 进行: 进行: (1) 单击【动作】面板上的【创建新设置 】 按钮 单击【动作】面板上的【 ,或者选择 动作】面板菜单中的【新序列】命令,打开【新序列】 【 动作】面板菜单中的【新序列】命令,打开【新序列】对话框 ,如 单击【 图16.4所示 。 在 【 名称 】 文本框中设置新序列名 ,单击【好 】按钮 所示 动作】面板中将多出一个新序列,如图16.5所示 所示。 后,在【动作】面板中将多出一个新序列,如图16.5所示。 (2) 单击 【 创建新动作】按钮 创建新动作】 或在【动作】 或在【动作】面板菜单中选择 新动作】命令,打开【新动作】对话框,如图16.6所示。 所示。 【新动作】命令,打开【新动作】对话框,如图 所示 (3) 在【名称】文本框中输入新动作的名称。 名称】文本框中输入新动作的名称。 (4) 在【序列】 下拉列表框中显示了 【 动作 】 面板中所有的序 序列】 选择前几步中建立的序列“ 列,选择前几步中建立的序列“序列 1”。 。
16.16所示。 所示。 所示
/webnew/
3. 移动动作 对动作进行移动的操作比较简单 , 选中某个动作 ,直接将其拖至 适当位置后释放鼠标即可。 适当位置后释放鼠标即可。 4. 删除动作 对动作进行删除的方法有以下几种: 对动作进行删除的方法有以下几种: 选中要删除的动作,选择【 选中要删除的动作,选择【动作 】 面板菜单中的 【 删除 】 命 此时会出现一个提示对话框,如图16.17所示,单击【好 】 按钮即 所示, 令,此时会出现一个提示对话框,如图 所示 单击【 可完成。 可完成。

先按住Alt键 再双击要更名的动作或选中动作后选择【动作】 先按住 键,再双击要更名的动作或选中动作后选择【动作】 面板菜单中的【动作选项】 命令, 面板菜单中的【动作选项】 命令,打开 【 动作选项 】对话框 ,如图 16.13所示。在【名称】文本框中输入要更改的名称,然后单击【 好】 所示。 名称】文本框中输入要更改的名称,然后单击【 所示 按钮即可完成。此外, 动作选项】 按钮即可完成。此外,在【动作选项】对话框中还可重新设置动作的 组合键和颜色。 组合键和颜色。

16章1节

16章1节
2 1 1 答案:- a+ b+ c 3 2 2
三基能力强化
3.已知向量 a=(2,-3,5),b=(3, 15 λ, ), 且 a∥b, 则 λ 等于____________. 2 9 答案:- 2
三基能力强化
π 4.设 a⊥b,〈a,c〉= ,〈b,c〉 3 π = ,且 |a|= 1, |b|= 2 , |c|= 3,则 |a+ b+ 6 c|=__________.
课堂互动讲练
互动探究
1. 例 1 条件不变, 若 G 为 OM 的中点, → 用向量 a,b,c 表示向量GP. 1 1 → 1 解:由例 1 可知OM= a+ b+ c, 3 3 3 因为 G 为 OM 的中点, 1 1 → 1→ 1 所以OG= OM= a+ b+ c, 2 6 6 6 1 1 1 → → → 1 ∴GP=OP-OG= (b+c)-( a+ b+ c) 2 6 6 6 1 1 1 =- a+ b+ c. 6 3 3
基础知识梳理
(3)两个向量数量积的性质 ①a· e=|a|cos〈a,e〉(其中e为单位向量); b=0 ; ②a⊥b⇔ a· a; ③|a|2= a· ④|a· b|≤|a||b|. (4)两个向量数量积的运算律 b) ; ①(λa)· b= λ(a· ②a· b=b· a; c+b· c. ③(a+b)· c= a·
课堂互动讲练
跟踪训练
2.设A,B,C及A1,B1,C1分别是 异面直线l1,l2上的三点,而M,N,P, Q分别是线段AA1,BA1,BB1,CC1的中 点. 求证:M,N,P,Q四点共面. → → → → 证明:依题意有BA=2NM,A1B1=2NP. → → → → 又∵PQ=PB1+B1C1+C1Q 1→ → 1→ = BB1+B1C1+ C1C 2 2

16章.二次根式.题型分类集.(含答案)

16章.二次根式.题型分类集.(含答案)

第十六章二次根式(一)【二次根式的性质】1.若使二次根式在实数范围内有意义,则x的取值范围是()A.x≥3 B.x>3 C.x<3 D.x≤32.若代数式有意义,则x的取值范围是()A.x>1且x≠2 B.x≥1 C.x≠2 D.x≥1且x≠2 3.如果代数式有意义,则x的取值范围是()A.x≥﹣2 B.x>﹣2 C.x<﹣2 D.x≤﹣24.对于二次根式的性质=中,关于a、b的取值正确的说法是()A.a≥0,b≥0B.a≥0,b>0C.a≤0,b≤0D.a≤0,b<0 5.若式子在实数范围内有意义,则x的取值范围是()A.x>﹣1B.x≥﹣1且x≠0C.x>﹣1且x≠0D.x≠0y==_______.6.已知37.已知=0,那么(a+b)2015的值为()A.1 B.﹣1 C.0 D.8.已知+=0,则x的取值范围为()A.x≤2 B.x<2 C.x≥2 D.x>29.已知=5﹣x,则x的取值范围是.10.下列各式中,正确的是()B.C.D.A.(二)【最简二次根式】1. 下列根式为最简二次根式的是( ) A .2B .C .D .2. 下列根式中,是最简二次根式的是( ) A .B .C .D .3. 下列根式中,最简二次根式为( )A.x 4B.42-xC.4xD.()24+x4. 在式子、、、中,是最简二次根式的有( )A .1个B .2个C .3个D .4个(三)【二次根式的化简】 1. 将化为最简二次根式,其结果是( ) A .B .C .D .2. 当x ≤0时,化简|1﹣x |﹣的结果是 .3. 已知a 、b 、c 是△ABC 三边的长,则化简﹣|a +b ﹣c |的结果为 .4. 当x <0时,化简的结果是( )A .x ﹣1B .1﹣xC .(x ﹣1)2D .x +15. 当m <0时,化简的结果是 .6. 当a >0时,化简的结果是 .7. 当ab <0时,化简的结果是( ) A .﹣aB .aC .﹣aD .a8. 若ab <0,化简二次根式的结果是( )A .B .C .D .9. 把中根号外的(a ﹣1)移入根号内得 .10. 已知n 是正整数,是整数,则n 的最小值为 .(四)【同类二次根式】1.以下二次根式:;是同类二次根式的是()A. ①②B. ②③C. ①④D. ③④2.是同类二次根式,则a的值为_______.3.下列各式中,能与合并的是()A.B.C.D.4.最简二次根式与是同类二次根式,求3a﹣b的值.(五)【二次根式的运算】1.与结果相同的是()A.3﹣2+1B.3+2﹣1C.3+2+1D.3﹣2﹣12.下列计算正确的是()A.=﹣2B.+=C.D.=±33.下列计算正确的是()A.3+4=7B.×=C.=3D.4.下列运算错误的是()A.B.C.D.5.下列运算错误的是()A.=3B.3×2=6C.(+1)2=6 D.(+2)(﹣2)=36.计算的值是.7.估计的运算结果应在()A.1到2之间B.2到3之间C.3到4之间D.4到5之间8. 计算﹣2的结果是 .9. 计算:= .10. 计算(+)(﹣)= . 11. 计算:(﹣1)•=12. 计算=13. 计算 (1); (2);(3). (4)2(23)6-+(5)(1+)(﹣)﹣(2﹣1)2. (6)(2+)2﹣(+)(﹣);(7)011238(1)3π-⨯+++(8).(9)(5+2)2 015(5-2)2 016. (10)解方程:(3+1)(3-1)x =72-18.1. 若x =+1,则代数式x 2﹣2x +2的值为( )A .7B .4C .3D .3﹣22. 若x +y =3+2,x ﹣y =3﹣2,则的值为( ) A .4B .1C .6D .3﹣23. 已知1x =+1x =-22x y xy +的值为______.4. 已知x 1=3+2,x 2=3-2,则x 21+x 22等于5. 已知:a =()﹣1+(﹣)0,b =(+)(﹣),则= .6. 已知x =(+),y =(﹣),求下列各式的值:(1)x 2﹣xy +y 2; (2)+.7. 已知1a =,化简求值22112a a a a a -+-+-8. (1)已知:x =,求x 2﹣x +1的值.(2)已知:y =,求代数式的值.①与数轴综合1.实数a,b在数轴上对应点的位置如图所示,化简|a|+的结果是()A.2a﹣b B.﹣2a+b C.﹣b D.b2.如图,数轴上A、B两点对应的实数分别是1和,若点A关于点B的对称点为点C,则点C所对应的实数为()A.B.1+C.2+D.+13.如图,数轴上表示1、的对应点分别为A、B,点C为点B关于点A的对称点,设点C所表示的数为x.(1)写出实数x的值;(2)求(x+)2的值.②解答题1.定义:若两个二次根式a、b满足a•b=c,且c是有理数,则称a与b是关于c的共轭二次根式.(1)若a与是关于4的共轭二次根式,则a=.(2)若2+与4+m是关于2的共轭二次根式,求m的值.2.已知m,n是两个连续的正整数,m<n,a=mn,求证:是定值且为奇数.1. 观察下列一组等式,然后解答后面的问题 (+1)(﹣1)=1, (+)(﹣)=1, (+)(﹣)=1, (+)(﹣)=1……(1)观察以上规律,请写出第n 个等式: (n 为正整数). (2)利用上面的规律,计算:+++…+(3)请利用上面的规律,比较﹣与﹣的大小.2. 观察下列分母有理化的计算1===-(1) 请用n 表示你所发现的规律____________________.(2) )...1+1.如图,从一个大正方形中裁去面积为18cm2和32cm2的两个小正方形,则剩余部分(阴影部分)的面积等于()A.98cm2B.60cm2C.48cm2D.38cm22.某居民小区有块形状为长方形ABCD的绿地,长方形绿地的长BC为8米,宽AB为米,现要在长方形绿地中修建一个长方形花坛(即图中阴影部分),长方形花坛的长为+1米,宽为﹣1米.(1)长方形ABCD的周长是多少?(结果化为最简二次根式)(2)除去修建花坛的地方.其它地方全修建成通道,通道上要铺上造价为6元/m2的地砖,要铺完整个通道,则购买地砖需要花费多少元?(结果化为最简二次根式)3.据研究,高空抛物下落的时间t(单位:s)和高度h(单位:m)近似满足公式t=(不考虑风速的影响).(1)求从40m高空抛物到落地时间;(2)小明说从80m高空抛物到落地时间是(1)中所求时间的2倍,他说法正确吗?如果不正确,请说明理由;(3)已知高空坠落物体动能=10×物体质量×高度,某质量为0.05kg的鸡蛋经过6s后落在地上,这个鸡蛋产生的动能是多少(单位:J)?你能得到什么启示?(注:杀伤无防护人体只需要65J的动能)1.阅读材料:小明在学习二次根式后,发现一些含根号的式子可以写成另一个式子的平方,如3+2=(1+)2.善于思考的小明进行了以下探索:若设a+b=(m+n)2=m2+2n2+2mn(其中a、b、m、n均为整数),则有a=m2+2n2,b=2mn.这样小明就找到了一种把类似a+b的式子化为平方式的方法.请你仿照小明的方法探索并解决下列问题:(1)若a+b=(m+n)2,当a、b、m、n均为整数时,用含m、n的式子分别表示a、b,得:a=,b=;(2)若a+6=(m+n)2,且a、m、n均为正整数,求a的值;(3)化简:+.第十六章二次根式(答案)(一)【二次根式的性质】1.若使二次根式在实数范围内有意义,则x的取值范围是(A)A.x≥3 B.x>3 C.x<3 D.x≤32.若代数式有意义,则x的取值范围是(D)A.x>1且x≠2 B.x≥1 C.x≠2 D.x≥1且x≠2 3.如果代数式有意义,则x的取值范围是(B)A.x≥﹣2 B.x>﹣2 C.x<﹣2 D.x≤﹣24.对于二次根式的性质=中,关于a、b的取值正确的说法是(B)A.a≥0,b≥0B.a≥0,b>0C.a≤0,b≤0D.a≤0,b<0 5.若式子在实数范围内有意义,则x的取值范围是(C)A.x>﹣1B.x≥﹣1且x≠0C.x>﹣1且x≠0D.x≠0y==____2√3___.6.已知37.已知=0,那么(a+b)2015的值为(B)A.1 B.﹣1 C.0 D.8.已知+=0,则x的取值范围为(A)A.x≤2 B.x<2 C.x≥2 D.x>29.已知=5﹣x,则x的取值范围是x≤5 .10.下列各式中,正确的是(B)B.C.D.B.(二)【最简二次根式】1. 下列根式为最简二次根式的是( A ) A .2B .C .D .2. 下列根式中,是最简二次根式的是( D ) A .B .C .D .3. 下列根式中,最简二次根式为( B )A.x 4B.42-xC.4xD.()24+x4. 在式子、、、中,是最简二次根式的有( B )A .1个B .2个C .3个D .4个(三)【二次根式的化简】 1. 将化为最简二次根式,其结果是( D ) A .B .C .D .2. 当x ≤0时,化简|1﹣x |﹣的结果是 1 .3. 已知a 、b 、c 是△ABC 三边的长,则化简﹣|a +b ﹣c |的结果为 2c ﹣2a .4. 当x <0时,化简的结果是( B )A .x ﹣1B .1﹣xC .(x ﹣1)2D .x +15. 当m <0时,化简的结果是 1 .6. 当a >0时,化简的结果是 ﹣ab .7. 当ab <0时,化简的结果是( A ) A .﹣aB .aC .﹣aD .a8. 若ab <0,化简二次根式的结果是( D )A .B .C .D .9. 把中根号外的(a ﹣1)移入根号内得.10. 已知n 是正整数,是整数,则n 的最小值为 14 .(四)【同类二次根式】1.以下二次根式:;是同类二次根式的是( C )A. ①②B. ②③C. ①④D. ③④2.是同类二次根式,则a的值为____3___.3.下列各式中,能与合并的是(D)A.B.C.D.4.最简二次根式与是同类二次根式,求3a﹣b的值.【解答】解:由最简二次根式与是同类二次根式,得,解得,则3a﹣b=2.(五)【二次根式的运算】1.与结果相同的是(A)A.3﹣2+1B.3+2﹣1C.3+2+1D.3﹣2﹣12.下列计算正确的是(C)A.=﹣2B.+=C.D.=±33.下列计算正确的是(C)A.3+4=7B.×=C.=3D.4.下列运算错误的是(A)A.B.C.D.5.下列运算错误的是(C)A.=3B.3×2=6C.(+1)2=6 D.(+2)(﹣2)=36.计算的值是 1 .7.估计的运算结果应在(C)A.1到2之间B.2到3之间C.3到4之间D.4到5之间8. 计算﹣2的结果是 2 .9. 计算:= 4 .10. 计算(+)(﹣)= 3 . 11. 计算:(﹣1)•= 112. 计算=13. 计算 (1); (2); (1)原式=2+﹣=; (2)原式=×÷=;(3). (4)2(23)6-+(3)原式=(8﹣9)÷(4)2=﹣1; (5)(1+)(﹣)﹣(2﹣1)2. (6)(2+)2﹣(+)(﹣);(5)原式=﹣+﹣3﹣13+4(6)原式 =20+4+3﹣(5﹣2) =4﹣2﹣13. =23+4﹣3 =20+4.(7)011238(1)3π-⨯+++(8).(7)1223++ (8)原式=1+++2﹣=3+.(9)(5+2)2 015(5-2)2 016. (10)解方程:(3+1)(3-1)x =72-18. (9)5-2 2x =62-32x =3 2. x =322.1. 若x =+1,则代数式x 2﹣2x +2的值为( C )A .7B .4C .3D .3﹣22. 若x +y =3+2,x ﹣y =3﹣2,则的值为( B ) A .4B .1C .6D .3﹣23. 已知1x =+1x =-22x y xy +的值为__34____.4. 已知x 1=3+2,x 2=3-2,则x 21+x 22等于 105. 已知:a =()﹣1+(﹣)0,b =(+)(﹣),则= 2 .6. 已知x =(+),y =(﹣),求下列各式的值:(1)x 2﹣xy +y 2; (2)+. 解:x =(+),y =(﹣), x +y =(+)+(﹣)=,xy =(+)×(﹣)=,(1)x 2﹣xy +y 2;=(x +y )2﹣3xy =()2﹣3×=;(2)+====12.7. 已知1a =,化简求值22112a a a a a -+-+- 11-a 338. (1)已知:x =,求x 2﹣x +1的值.(2)已知:y =,求代数式的值.【解答】解:(1)∵x ==+1, ∴x 2﹣x +1=(+1)2﹣(+1)+1=4+2﹣﹣1+1=4+; (2)∵1﹣8x ≥0,8x ﹣1≥0,∴x =,则y =, ∴=﹣==1.①与数轴综合1.实数a,b在数轴上对应点的位置如图所示,化简|a|+的结果是( A )A.2a﹣b B.﹣2a+b C.﹣b D.b2.如图,数轴上A、B两点对应的实数分别是1和,若点A关于点B的对称点为点C,则点C所对应的实数为(A)B.B.1+C.2+D.+13.如图,数轴上表示1、的对应点分别为A、B,点C为点B关于点A的对称点,设点C所表示的数为x.(1)写出实数x的值;(2)求(x+)2的值.解:(1)由数轴上表示1、的对应点分别为A、B,点C为点B关于点A的对称点,得=1,解得,(1)当x=2﹣时,(x+)2=4.②解答题1.定义:若两个二次根式a、b满足a•b=c,且c是有理数,则称a与b是关于c的共轭二次根式.(1)若a与是关于4的共轭二次根式,则a=2.(2)若2+与4+m是关于2的共轭二次根式,求m的值.【解答】解:(1)∵a与是关于4的共轭二次根式,∴a=4,∴a==2,故答案为:2;(2)∵2+与4+m是关于2的共轭二次根式,∴(2+)(4+m)=2,∴4+m===4﹣2,∴m=﹣2.2.已知m,n是两个连续的正整数,m<n,a=mn,求证:是定值且为奇数.【解答】证明:∵m和n是两个连续的正整数,m<n,∴n=m+1,∴a=mn=m(m+1),∴===(m+1)﹣m =1,∴是定值且为奇数1.1. 观察下列一组等式,然后解答后面的问题 (+1)(﹣1)=1, (+)(﹣)=1, (+)(﹣)=1, (+)(﹣)=1……(1)观察以上规律,请写出第n 个等式: (+)(﹣)=1 (n 为正整数).(2)利用上面的规律,计算:+++…+(3)请利用上面的规律,比较﹣与﹣的大小. 【解答】解:(1)根据题意得:第n 个等式为(+)(﹣)=1;故答案为:(+)(﹣)=1;(2)原式=﹣1+﹣+…+﹣=﹣1=10﹣1=9;(3)﹣=,﹣=, ∵<,∴﹣>﹣.2. 观察下列分母有理化的计算1===-(3) 请用n 表示你所发现的规律____________________.(4) )...1+(1)n n nn -+=++111(2)20151.如图,从一个大正方形中裁去面积为18cm2和32cm2的两个小正方形,则剩余部分(阴影部分)的面积等于(C)A.98cm2B.60cm2C.48cm2D.38cm22.某居民小区有块形状为长方形ABCD的绿地,长方形绿地的长BC为8米,宽AB为米,现要在长方形绿地中修建一个长方形花坛(即图中阴影部分),长方形花坛的长为+1米,宽为﹣1米.(1)长方形ABCD的周长是多少?(结果化为最简二次根式)(2)除去修建花坛的地方.其它地方全修建成通道,通道上要铺上造价为6元/m2的地砖,要铺完整个通道,则购买地砖需要花费多少元?(结果化为最简二次根式)【解答】解:(1)长方形ABCD的周长=2×()=2(8+7)=16+14(米),答:长方形ABCD的周长是16+14(米),(2)通道的面积==56﹣(13﹣1)=56(平方米),购买地砖需要花费=6×(56)=336﹣72(元).答:购买地砖需要花费336﹣72元;3.据研究,高空抛物下落的时间t(单位:s)和高度h(单位:m)近似满足公式t=(不考虑风速的影响).(1)求从40m高空抛物到落地时间;(2)小明说从80m高空抛物到落地时间是(1)中所求时间的2倍,他说法正确吗?如果不正确,请说明理由;(3)已知高空坠落物体动能=10×物体质量×高度,某质量为0.05kg的鸡蛋经过6s后落在地上,这个鸡蛋产生的动能是多少(单位:J)?你能得到什么启示?(注:杀伤无防护人体只需要65J的动能)【解答】解:(1)由题意知h=40m,t====2(s),(2)不正确,理由如下:当h2=80m时,t2===4(s),∵4≠2×2,∴不正确,(3)当t=6s时,6=,h=180m,鸡蛋产生的动能=10×0.05×180=90(J),启示:严禁高空抛物.1.阅读材料:小明在学习二次根式后,发现一些含根号的式子可以写成另一个式子的平方,如3+2=(1+)2.善于思考的小明进行了以下探索:若设a+b=(m+n)2=m2+2n2+2mn(其中a、b、m、n均为整数),则有a=m2+2n2,b=2mn.这样小明就找到了一种把类似a+b的式子化为平方式的方法.请你仿照小明的方法探索并解决下列问题:(1)若a+b=(m+n)2,当a、b、m、n均为整数时,用含m、n的式子分别表示a、b,得:a=m2+7n2,b=2mn;(2)若a+6=(m+n)2,且a、m、n均为正整数,求a的值;(3)化简:+.【解答】解:(1)设a+b=(m+n)2=m2+7n2+2mn(其中a、b、m、n均为整数),则有a=m2+7n2,b=2mn;故答案为m2+7n2,2mn;(2)∵6=2mn,∴mn=3,∵a、m、n均为正整数,∴m=1,n=3或m=3,n=1,当m=1,n=3时,a=m2+3n2=1+3×9=28;当m=3,n=1时,a=m2+3n2=9+3×1=12;即a的值为为12或28;(3)设+=t,则t2=4﹣+4++2=8+2=8+2=8+2(﹣1)=6+2=(+1)2,∴t=+1.。

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); // 存活期存款。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

16.2 用FILE结构操作文件(3/9)

三部曲之一(续) FILE * :文件指针
FILE是在库文件stdio.h中定义的一个结构 类型。C++用该类型的结构描述一个流,其重 要数据有:文件名、操作方式、文件及缓冲区 当前位置、文件结束标记 三个特殊的文件指针 stdin、stdout、stderr (在库文件stdio.h中定义)
例子5:将例3创建的文件中的数据读出来, 跳过字符'a'和字符串“Beijing” (1/2)
//文件ex16_5.cpp,读文件 #include <stdio.h> struct Test { int a; double b; }; main() {Test st; int m; float n; FILE *fptr; if((fptr=fopen("writetest.dat","rb")) !=NULL) {fread(&st,sizeof(st),1,fptr);
16.2 用FILE结构操作文件(7/9)

三部曲之二:关键函数举例
fgetc:从文件中读取一个字符 参数: 文件指针 fgetc( stdin ) 相当于 getchar() fputc:向文件中写入一个字符

参数:拟写入的字符和文件指针 fputc( 'a' , stdout ) 相当于 putchar( 'a' )
第16章 文件和流
本章重点


文件和流的概念 使用FILE结构操作文件 使用特殊的类和对象操作文件
文件对于实际系统的开发非常有用, 而且不可替代

16.1 基本概念 (1/3)

文件是什么?
文件是外存数据的组织单位。一个文件对应一 批存放在外存(如硬盘、软盘、U盘)的数据, 计算机以及计算机的使用者通过文件名实现对 文件的操作(如复制、删除、内容修改)。 C++把一个文件看成是一个字节序列。 结束符 1 2 3 4 5 6 …… n-2 n-1
16.2 用FILE结构操作文件(9/9)

三部曲之三 函数原型:
int fclose(FILE * );
例子1:使用FILE指针新建一个文本文件, 写入了字符串"This is a test file. "
#include <stdio.h> main() {FILE *fptr; //定义FILE指针 //打开或创建文件 if ((fptr = fopen("test.txt","w")) != NULL) {//往文件中写入字符串 fprintf(fptr, "This is a test file."); fclose(fptr); //关闭文件 } else printf("Open file error.\n"); return 0; }
16.2 用FILE结构操作文件(6/9)

三部曲之二:关键函数的原型(续)




int feof(FILE *); void rewind(FILE *); int fseek(FILE *, long, int); size_t fread(void *, size_t, size_t, FILE *); size_t fwrite(const void *, size_t, size_t, FILE *);


16.1 基本概念 (3/3)Fra bibliotek流是什么?

流是对文件中字节流向及顺序的描述。一个流 对应一个正在工作的文件(指文件被打开后, 被关闭前),实质上是计算机操作系统为文件 建立的一个保存文件部分内容的缓冲区及有关 控制信息。 文件缓冲区 从文件读 往文件写
2 3 4 5 6 …… n-2 n-1
0
1
……
EOF
16.2 用FILE结构操作文件(1/9)

三部曲




打开一个已存在的文件或建立并打开一个新文件 关键函数: fopen 对该文件进行读/写操作 关键函数: fgetc、fputc、fgets、 fputs、fscanf、fprintf、feof、 rewind、fseek、fread、fwrite 关闭该文件 关键函数: fclose 以上函数都在库文件stdio.h中定义
16.2 用FILE结构操作文件(4/9)

三部曲之一(续) mode : C++有12种不同的文件打开方式, 见下页
文本文件的六种打开方式
方式 描述 r 打开一个供读取数据的文件。 w 建立 一个供写入 数据的文件。 如果 文件已经 存 在 , 则 废弃 原来的 内容 。最后打开文件。 a 建立或打开 一个 把数据 追加 到 文件尾部 的 文件 。 r+ 打开一个 用于 更新 数据 ( 读 和 写 ) 的文件 。 w+ 建立 一个 用于 更新 数据 的文件 。 如果 文件已经 存 在 , 则 废弃 原来的 内容 。最后打开文件。 a+ 建立或打开 一个 用于 更新 的文件 , 写入 的 数据 追 加 到 文件尾部 。
例子4:将例3创建的文件中的数据读出来(1/2)
//文件ex16_4.cpp,读二进制文件 #include <stdio.h> struct Test { int a; double b; }; main() {Test st; char s[20]; int m; float n; char c; FILE *fptr; if((fptr=fopen("writetest.dat","rb")) !=NULL)
例子2:将例1创建的文件中的数据读出来
#include <stdio.h> main() {FILE *fptr; //定义FILE指针 int c; if ((fptr = fopen("test.txt","r")) != NULL) {c=fgetc(fptr); while(!feof(fptr)) //注意feof的用法 {putchar(c); c=fgetc(fptr); } fclose(fptr); //关闭文件 } else printf("Open file error.\n"); return 0; }
16.2 用FILE结构操作文件(5/9)

三部曲之二:关键函数的原型




_CRTIMP int __cdecl fgetc(FILE *); int fputc(int, FILE *); char * fgets(char *, int, FILE *); int fputs(const char *, FILE *); int fscanf(FILE *, const char *, ...); int fprintf(FILE *, const char *, ...);

16.3 使用类和对象操作文件(3/6)

三个文件流类

类ifstream——文件的输入 类ofstream——文件的输出 类fstream——文件的输入输出 上述三个类都在头文件fstream.h中定义
例子6:使用文件流对象新建或打开一个文件, 并写入字符串"This is a test file. "
例子4:将例3创建的文件中的数据读出来(1/2)
{fread(&st,sizeof(st),1,fptr); c = fgetc(fptr); fgets(s,8,fptr); fscanf(fptr," %d %f ",&m,&n); fclose(fptr); printf("STRUCT st: a = %d, b = %f\n", st.a, st.b); printf("CHAR c = '%c'\n", c); printf("STRING s = %s\n", s); printf("INTEGER m = %d, FLOAT n = %f\n", m, n); } else printf("File open error.\n"); return 0; }
例子3:将字符、字符串、整数、浮点数、 结构等类型的数据写入文件(2/2)
//以二进制方式写入数据 fwrite(&st, sizeof(st),1,fptr); //以字符方式写入一个字符 fputc('a', fptr); //以字符方式写入一个字符串 fputs("Beijing", fptr); //以字符方式写入整数和浮点数 fprintf(fptr, " %d %f ", 23, 12.34); //关闭文件 fclose(fptr); } else printf("Open file error.\n"); return 0; }
二进制文件的六种打开方式
方式 描述 rb 打开一个供读取数据的文件。 wb 建立 一个供写入 数据的文件。 如果 文件已经 存 在 , 则 废弃 原来的 内容 。最后打开文件。 ab 建立或打开 一个 把数据 追加 到 文件尾部 的 文件 。 rb+ 打开一个 用于 更新 数据 ( 读 和 写 ) 的文件 。 wb+ 建立 一个 用于 更新 数据 的文件 。 如果 文件已经 存 在 , 则 废弃 原来的 内容 。最后打开文件。 ab+ 建立或打开 一个 用于 更新 的文件 , 写入 的 数据 追 加 到 文件尾部 。
相关文档
最新文档