C程序设计第四版第四章答案
//5.输入一个小于1000的正数,先判断是否小于1000,若小于输出平方根的整数//部分,否则重新输入。 /*#include #include double Proot(double n) { double d; if(n>1000) { printf("重新输入\n"); } else { d=(double)sqrt(n); } return d; } int main() { printf("%.0f\n",Proot(9)); printf("%.0f\n",Proot(19)); printf("%.0f\n",Proot(1119)); return 0; }*/ //6.当x<1时,y=x,当1<=x<10时,y=2x-1;当x>=10时,y=3x-11.编写程序。 /*#include double Fun(double x) { double y; if(x<1) { y=x; } else if(x>=1&&x<10) { y=2*x-1; } else { y=3*x-11;
} return y; } int main() { printf("%f\n",Fun(0)); printf("%f\n",Fun(8.9)); printf("%f\n",Fun(11110)); printf("%f\n",Fun(-1.5)); return 0; }*/ //7.当x<0时,y=-1,当x=0时,y=0;当x>0时,y=1.编写程序。/*#include double Fun(double x) { double y; if(x<0) { y=-1; } else if(x==0) { y=0; } else { y=1; } return y; } int main() { printf("%f\n",Fun(0)); printf("%f\n",Fun(10)); printf("%f\n",Fun(-0.01)); return 0; }*/ //8.成绩分等级 /*#include
互联网程序设计第四章简答题
第四章简答题 1.前几章为什么要使用流的复合机制?请根据表1.1中的基本流,给出两个读取文件的复合流设计,给出两个存储文件的复合流设计。 答:因为提高了读取效率。 读取文件复合流: ①DatalnputStream in=new DatalnputStream( new BufferedlnputStream( new FilelnputStream(file))); ②FilelnputStream in=new FilelnputStream( new BufferedlnputStream( new FilelnputStream(file))); 存储文件复合流: ①DataOutputStream in=new DataOutputStream( new BufferedOutputStream( new FileOutputStream(file))); ②FileOutputStream in=new FileOutputStream( new BufferedOutputStream( new FileOutputStream(file))); 2.简述Java基本I/0与NIO的区别和联系。 答:区别:
NIO:优势在于一个线程管理多个通道;但是数据的处理将会变得复杂;如果需要管理同时打开的成千上万个连接,这些连接每次只是发送少量的数据,采用这种; 传统的IO:适用于一个线程管理一个通道的情况;因为其中的流数据的读取是阻塞的;如果需要管理同时打开不太多的连接,这些连接会发送大量的数据;IO是面向流的,NIO是面向缓冲区的。IO流是阻塞的,NIO流是不阻塞的。 联系:NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。 3.Java NIO引入了选择器Selector的概念,请描述其工作机制并参考 4.6节写出关键性的代码。 答:privatevoidbtnStartActionPerformed(java.awt.event.ActionEventevt){…∥启动服务器 new Thread(new Runnable(){ @Override public void run(){ try{ while(true){/轮询各通道状态,处理连接和会话 int nKeys=selector.select();//查询令牌集合 if(nKeys==0)continue;//没有就绪令牌,越过下面步骤,开始新一轮查询SetreadyKeys=selector.selectedKeys();//返回就绪令牌集合Iteratorit=readyKeys.iterator();//就绪令牌集合选代器while (it.hasNext()){//遍历就绪令牌集合 SelectionKey key=it.next();/取出下一个令牌 if(key.isAcceptable()){//如果是连接事件
第四章 VB程序设计基础
第四章 VB程序设计基础 第一节数据类型 一.基本数据类型 1.字符串(string) 1)在VB中,字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空串 2) VB中字符串分别变长字符串和定长字符串。其中变长字符串的长度是不确定的,而定长字符串含有确定个数的字符,最大长度不超过65535个字符 2. 数值 VB的数值型数据分为整型数和浮点数两类。期中整型数又分为长数型和整数,浮点数分为单精度浮点数和双精度浮点数 1)整型数 (1)整数(integer):两个字节、取值范围:-32768——32767 (2)长整数(long):四个字节 2)浮点数 (1)单精度(single):四个字接、用“E”表示 例:123.45E3 123.45*10*10*10 (2)双精度(double):八个字节,用“D”表示 例:123.45678D3 123.45678*10*10*10 3.货币(currency) 1)货币数据类型是为表示钱款而设置的,该数据类型一8个字节存储,精确到小数点后4位,在小数点后4位以后的数字将会被舍去 2)浮点数中的小数点是“浮动”的,即小数点可以出现在数的任何位置,而货币类型数据的小数点是固定的,因此称为定点数据类型 4. 变体(variant) 变体数据类型是一种可变数据类型,可以表示任何值,包括数值、字符串、日期/时间等 5.其他数据类型 1)字节(byte) 字节实际上是一种数值类型,以1字节的无符号二进制数存储,其取值范围是0——255 2)布尔(bollean) 布尔型数据是一个逻辑值,用两个字节存储,它只取两种值,即Ture(真)或Flase (假) 3)日期(date) 日期存储为8个字节浮点值形式,日期文字以符号“#”括起来 二.用户定义的数据类型 1.用户可以利用Type语句定义自己的数据类型,其格式如下: Type 数据类型名称 数据类型元素名 As 类型名 数据类型元素名 As 类型名 …… End Type
C语言程序设计第四版第四章答案-谭浩强
C语言程序设计第四版第四章答案-谭浩强
第四章 4.1 什么是算术运算?什么是关系运算?什么是逻辑运算? 解:略。 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如3&&5的值为“真”,系统给出3&&5的值为1。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1) a+b>c&&b==c (2) a||b+c&&b-c (3) !(a>b)&&!c||1 (4) !(x=a)&&(y=b)&&0 (5) !(a+b)+c-1&&b+c/2 解: (1) 0 (2) 1 (3) 1
(4) 0 (5) 1 4.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。 解: 方法一 #include main() { int a,b,c; printf("请输入3个整数:"); scanf("%d,%d,%d",&a,&b,&c); if(a main()
{ int a,b,c,temp,max; printf("请输入3个整数:"); scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)?a:b; /* 将a和b中的大者存人temp中*/ max=(temp>c)?temp:c; /* 将a和b中的大者与c比较,取最大者*/ printf("3个整数的最大数是%d\n”,max); } 4.6有一函数: 写一程序,输入x值,输出y值。 解: #include main() {int x,y; printf("输入x:"); scanf("%d",&x); if(x<1) /* x<1 */ { y=x; printf("x=%3d, y=x=%d\n",x,y); } else if (x<10) /* 1≤x-10 */
c语言详解(第五版)第四章程序设计项目答案
C语言详解(第五版)第四章程序设计项目答案 1.Keith的Sheet Music需要一个程序来实现其为音乐教师定制的折扣政策。程序提示用户输入购买总额并且表明购买者是不是教师。 #include #include #define discount_1 0.12 #define discount_2 0.1 #define tax_rate 0.05 void instruct_purchase(void); double total(double total_purchase,char a[1]); int main(void) {void instruct_purchase(void); double total(double,char); double total_purchase,total_payment,total1; char a; instruct_purchase(); printf("Please enter the creer teacher(enter t) or not(enter n).>>>\n"); scanf("%c",&a); printf("Please enter the total purchase.>>>\n"); scanf("%lf",&total_purchase); total1=total(total_purchase,a); printf("The total payment is %.2f.",total1); system("pause"); return(0);} void instruct_purchase(void) {printf("This program figure a total bill."); printf("The tax rate is $%.2f.\n",tax_rate); printf("The discount of total purchase which is more than 100 dollars is $%.2f.\n",discount_1); printf("The discount of total purchase which is less than 100 dollars is $%.2f.\n",discount_2); printf("Please press or button after typing in each number.\n\n\n"); } double total(double total_purchase,char a) {double discount_total,total_payment,tax; if(a=='t') if(total_purchase>100) {discount_total=total_purchase*discount_1; tax=total_purchase*tax_rate; total_payment=total_purchase+tax-discount_total; } else {discount_total=total_purchase*discount_2; tax=total_purchase*tax_rate; total_payment=total_purchase+tax-discount_total; } else { tax=total_purchase*tax_rate; total_payment=total_purchase+tax; } return(total_payment); }
第四章汇编语言程序设计
第四章汇编语言程序设计 1、编程将片内40H H60H单元中的内容送到以3000H为首的存储区内答:MOVR,1 #40H MOVR,2 #21 H MOVDPT,R#3000H L1:MOVA,@R1 MOVX@DP,TRA INCR1 INCDPTR DJNZR,2 L1 2、编程计算下列算式的程序 (1)23H+45H+ABH+03H= MOV,A #23H ADDA,#45H ADDA,#0ABH XCHA B;溢出处理 ADDC,A #00H XCHA,B ADDA #03H; A中为结果低位,B中为高位 (2)CDH+15H-38H-46H= MOV,A #0CDH ADDA,#15H SUBBA,#38H SUBBA,#46H (3)1234H+8347H= MOV,A #34H ADDA,#47H MOV30,H A MOV,A #12H ADDC,A #83H M0V31 A;30H存结果低位,31H存结果高位 (4)AB123H-43ADCH= CLRC M0V,A #23H SUBBA,DCH M0V30,H A M0V,A #0B1H SUBBA,#3AH M0V31,H A
M0V,A #0AH SUBBA,,#04H MOV32HA; 30H为低位,32H为高位 3、设有两个4位BCD马,分别存放在23H 22H单元和33H 32H单元中,求他们的和,并送入43H、42H单元中(低位在低字节,高位在高字节)。 答:MOVA22H ADDA,32H MOV42,H A MOV,A 23H ADDC,A 33H MOV43,H A 4、略 5、编程计算片内RAMS 50H-59H单元中数的平均值,结果存放在5AH中。 答:MOVR,0 #8 MOVR,1#50H MOV,A #00H L1:ADDA,@R1 INCR1 DJNZR,0 L1 MOV,B #8 DIVAB MOV5A,HA 6、编写计算下式的程序。设乘积和平方结果均小于255。a 、b 值分别存在片外3001H和3002H单元中,结果存于片外3000H单元中。 25 ,a b Y a b ,a b (1) a b ,a b MOVDPT,R#3001H M OVX,A @DPTR MOV30H A; a暂存30H单元 INCDPL M OVX,A @DPTR CJNEA 30H, L1;是否a=b MOV,A #25 SJMPSAVE L1:JNCL2 MOV,B 30H MULAB
西安交通大学15春学期《程序设计基础》离线作业
第一章程序设计基础 本章要点: 1.计算机基础 2.程序设计的基础与发展 3.结构化程序设计 4.面向对象程序设计 本章目标: 1.了解C语言的背景 2.掌握C语言程序的结构 3.领会C语言程序设计的风格 4.会绘制流程图 本章重点: 1.面向对象设计 2.C程序结构 3.流程图的绘制 本章难点: 1.C程序结构 2.流程图的绘制 作业题 一、填空题 1.计算机系统是由(软件系统)、(硬件系统)两部分组成。 2.一台计算机从硬件系统看主要由四个部件组成:(中央处理器)、(存储器)、(输入设备)(输出设备)。 3.软件系统包括(系统软件)、(应用软件)两部分. 4.C语句大致可分为以下几类:(说明语句)、(表达式语句)、(分支语句)、(循环语句)、(控制流程语句)。 5.一个程序包括两方面内容:(数据结构)和(算法).
二、选择题 1.下列哪个不是算法的特征(C) A.有穷性 B.可行性 C.不确定性 D.输入 2.(B)是用来描述对象的属性和行为的 A.实体 B.类 C.对象 D.现象 3.下列哪些是算法的描述方法(ABCD) A.自然语言描述法 B.流程图描述法 C.伪代码描述法 D.N-S流程图描述法 4.计算机算法可以分为两大类(AB) A.数值运算算法 B.非数值运算算法 C.符号运算算法 D.非符号运算算法 5.每条C语句后面都要有一个(C) A.逗号 B.冒号 C.分号 D.括号 三、问答题 1.简述结构化程序设计的特征. 答:(1)按结构化程序设计方式构造的程序是一个结构化程序,由三种基本控制结构:顺序结构、选择结构和循环结构;(2)有限制的使用goto语句;(3)籍助于结构化程序设计语言来书写;(4)强调程序设计过程中人的思维方式与规律,是一种自顶向下程序设计策略,它通过一组规则、规律与特有的风格对程序设计细分和组织。 2.简述C程序的特点. 答:C程序的特点:(1)对于变量,先定义其数据类型,再使用;(2) C程序由函数构成,一个程序至少要有一个以上的函数;(3 C程序总是从main( )函数开始执行;(4)书写格式自由,在一行可以写若干语句。(5)数据的输入与输出是通过输入输出函数实现;(6)C程序用/* */进行注释。 3.用文字描述C程序的执行过程. 答:(1)由键盘输入源程序;(2)经过编辑后生成f.c磁盘文件;(3)经过编译后生成f.obj文件;(4)经过连接后形成f.exe文件;(5)执行。
LINUX 第四章课后编程题
LINUX <<4.9>>编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目录中。 #!/bin/bash dir=$1 /初始化 shift /参数向左移 while [ $1 ] /循环 do file=$1 / 初始化,赋值现在位置的参数1 cp $1 $dir /将现位置参数1中的值复制到目录中 shift /参数左移 done ls $dir 显示指定目录中的列表 运行:bash 代码名称要移动的目录要移动的文件 《4.10》编写一个shell脚本,显示当天日期,查找给定的某用户是否在系统中工作。如果在系统中,就发一个问候给他。 #!/bin/bash
date /显示日期 if who |grep "^$1" /寻找用户 then write $1 << ! /对用户发消息 ! echo "hello !" fi 运行:bash vi编辑的文件 <<4.11>>打印给定目录的某些文件,由第一个参数指出文件所在的目录,其余参数是要打印的文件名 #!/bin/bash dir=$1 cd $ dir shift for f in $@; do cat $f done
运行:bash 程序代码名称目录名称文件名称 <<4.12>>利用for循环将当前目录下的(*.c)文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容。 #!/bin/bash for file in `ls -l /root/a | grep ".*.c"` (Tab键上面的`) { mv /root/a/$file /root/b } ls -lS /root/b 运行:bash vi创建的文件
程序设计基础实验报告
西华大学实验报告(理工类) 开课学院及实验室:汽车学院机房(5D-215)实验时间: 2008年 3 月 9 日 1、实验目的 1.掌握标签、命令按钮的常用属性、事件和方法。 2.掌握运用图片框和图像框加载图像的方法。 3.掌握计时器和滚动条的编程方法。 2、实验设备、仪器及材料 PC机;操作系统:WINDOWS98/2000/2003/XP;编程工具:Visual Basic 3、实验内容 上机实验的内容及要求 编写动画程序。运行界面如图所示。单击“开始”按钮,图像从左到右不断运动,“开始”按钮变为不可用,同时“停止”变为可用;用滚动条来控制运动的速度。 算法设计思想与算法实现步骤 1.界面设计 相关属性设置如下: Command1:Caption为“开始”。 Command2: Caption为“停止”, Enabled为 False。 HScroll1:Max 为 1000, LargeChange 为 200 , SmallChange 为20。 Label1 Label2: Caption分别为“快”和“慢”。 Timer1:Enabled 为 False。 Image:Stretch 为True, Picture中通过剪贴板粘贴一幅图象。 2.程序代码设计 3.运行/调试程序
4.保存工程 程序核心代码,程序调试过程中出现的问题及解决方法Private Sub Command1_Click() = True = False = True End Sub Private Sub Command2_Click() = True = False = False End Sub Private Sub HScroll1_Change() = End Sub Private Sub Timer1_Timer() + 1) End Sub 程序运行的结果
C程序设计(第四版)_谭浩强_第四章_课后习题答案
选择结构程序设计 P086 4.1 一无二次方程求根的二分支. #include #include int main() { double a,b,c,disc,x1,x2,p,q; scanf("%lf %lf %lf",&a,&b,&c); disc=b*b-4*a*c; if(disc<0) //这是选择结构和其判断条件的示例. printf("This equation hasn't real roots\n"); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf("x1=%7.2f\nx2=%7.2f",x1,x2); } return 0; } P087 4.2 二个数按大小输出. #include int main() //此程序代表按大小顺序输出. { float a,b,t; scanf("%f %f",&a,&b); //出错时,注意检查这里是否按格式输入了.比如有个逗号. if(a>b) { t=a; a=b; b=t; } printf("%5.2f,%5.2f\n",a,b);
return 0; } P088 4.3 三个数按大小输出. #include int main() //此程序代表按大小顺序输出. { float a,b,c,t; scanf("%f %f %f",&a,&b,&c); if(a>b) //此处执行后,a为小者. { t=a; a=b; b=t; } if(a>c) //此处执行后,a为小者. { t=a; a=c; c=t; } if(b>c) //上面已经搞定a是最小者,现在对比得出次小者,并且已经归到变量中. { t=b; b=c; c=t; } printf("%5.2f,%5.2f%5.2f\n",a,b,c); return 0; } P099 4.4 判断输入字符,并最终按小写输出. #include int main() { char ch; scanf("%c",&ch);
《程序设计基础》-自测4答案
《程序设计基础》 第四章自测 选择题(选择题6道,1-4题每题15分,共60分;5-6题,每题20分,共40分;)题目1 正确 获得15.00分中的15.00分 标记题目 题干 关于C语言语句的正确概念是______。 选择一项: A. while和do-while都是直到型循环 B. 在C语言中不能使用goto语句 C. goto语句可以从C语言中去除 D. switch语句可以替代if语句 反馈 正确答案是:goto语句可以从C语言中去除 题目2 正确 获得15.00分中的15.00分 标记题目 题干 C语言中的语句 #define R 20 用于定义_____①_______ ,语句char r1; 则用于定义_____②_____ 。 选择一项: A. ①符号常量R②字符变量r1 B. ①整型常量20②字符串变量r1 C. ①符号变量R②字符常量 反馈 正确答案是:①符号常量R②字符变量r1
题目3 正确 获得15.00分中的15.00分 标记题目 题干 写出程序的运行结果。 #include main( ) { int a, b; scanf ( ”%d%d", &a, &b); if ( ++a >= b ) printf( ”Yes”); printf ( " a+b =%d\n", a+b ); } 如果输入:a=6,b=8,则输出结果是___________。 选择一项: A. a+b=15 B. a+b=14 C. 15 D. " a+b =%d\n", 14 反馈 正确答案是:a+b=15 题目4 正确 获得15.00分中的15.00分 标记题目 题干 写出程序的运行结果。 main( )
jsp编程基础第四章习题
第四章 JSP的内置对象 一、选择题 1.下面不属于JSP内置对象的是() A)out对象 B)respone对象 C)application对象 D)page对象2.以下哪个对象提供了访问和放置页面中共享数据的方式() A)pageContext B)response C)request D)session 3.调用getCreationTime()可以获取session对象创建的时间,该时间的单位是()。 A)秒 B)分秒 C)毫秒 D)微秒 4.当response的状态行代码为哪个时,表示用户请求的资源不可用() A)101 B)202 C)303 D)404 5.一个典型的HTTP请求消息包括请求行、多个请求头和() A)响应行 B)信息体 C)响应行 D)响应头 6.在JSP中为内建对象定义了4种作用范围,即Application Scope、Session Scope、Page Scope和()四个作用范围。 A)Request Scope B) Response Scope C)Out Scope D) Writer Scope 7.out对象是一个输出流,其输出各种类型数据并换行的方法是() A)( ) B)( ) C)( ) D)( ) 8.out对象是一个输出流,其输出换行的方法是() A)( ) B)( ) C)( ) D)( ) 9.out对象是一个输出流,其输出不换行的方法是() A)( ) B)( ) C)( ) D)( ) 10.Form表单的method属性能取下列哪项的值() A)submit B)puts C)post D)out 11.能在浏览器的地址栏中看到提交数据的表单提交方式是() A)submit B)get C)post D)out 12.可以利用request对象的哪个方法获取客户端的表单信息() A)() B)() C)() D)() 13.可以利用JSP动态改变客户端的响应,使用的语法是() A)() B)() C)() D)() 14.JSP页面中(String )得到的数据,其类型是() A)Double B)int C)String D)Integer