程序设计教程课后答案,谁有c#程序设计教程第三版的课后习题答案,刘甫迎主编的??急求,
程序设计教程课后答案,谁有c#程序设计教程第三版的课后习题答案,刘甫迎主编的??急求,详细介绍
本文目录一览: 《vb程序设计教程》 王贺明主编 课后习题答案,谢谢啦!
第一题:
第二题:
第三题:
第四题:
第五题:
扩展资料这部分内容主要考察的是程序设计语言的知识点:
开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
在使用传统的程序设计语言编程时,一般需要通过编写程序来设计应用程序的界面(如界面的外观和位置等),在设计过程中看不见界面的实际效果。而在Visual Basic 6.0中,采用面向对象程序设计方法(Object-Oriented Programming),把程序和数据封装起来作为一个对象,每个对象都是可视的。
开发人员在界面设计时,可以直接用Visual Basic 6.0的工具箱在屏幕上"画"出窗口、菜单、命令按键等不同类型的对象,并为每个对象设置属性。开发人员要做的仅仅是对要完成事件过程的对象进行编写代码,因而程序设计的效率可大大提高。
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"); } 2222....已知立方体的长、宽、高分别是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 21. 3,2,-8,2 3.000000,2.500000,-8.000000 2. ABC DE FGH why is 21 35 equal 52 3. 3 1 4 3 2 3 1 2 4. aa bb cc abc A N 项目实训题 1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。 #define M 5 main() { 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=3 2. z=12.700000 3. 1 2 1 a 2 1 2 三三三三....编程题 编程题编程题编程题编程题 1. 某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。 解: #include
main() { 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,3
total salary:10.800000 2.编写一个程序求出任意一个输入字符的ASCII码 解: #include
main() { char c; printf("Input a string:"); scanf("%c",&c); printf("%c ASCII is %d\n",c,c); } 本程序运行结果为: Input a string:a
a ASCII is 97 3、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付第四章第四章第四章第四章 选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计 一、略 二、B B A B C B A 三、1. 1 0 2. 2 3 2 2 3. 10 20 0 4. ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’ ch>=’0’&&ch<=’9’ ch==’ ’ 5. -1 四、上机操作 1. 从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。 #include
main() {char ch; ch=getchar(); if(ch>='A'&&ch<='Z') ch =32; else if(ch>='a'&&ch<='z') ch-=32; putchar(ch); putchar('\n'); } 2. 根据输入的x值依据下列表达式,计算y的值。 2x (x>-1) y = 3 (x=-1) 4 x (x<-1) 解: main() { float x,y; scanf("%f",&x); if(x>-1) y=2*x; else if(x==1) y=3; else y=4 x; printf("y=%f",y); } 本程序运行结果为: -2
y=2.000000 3.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“Is Odd“;若是偶数,输出“Is Even“。 main() { int x; scanf("%d",&x); if(x%2==0) printf("Is Even\n"); else printf("Is Odd\n"); } 4.设计应用程序,求二次方程ax2 bx c=0的解。 #include
main() { float a,b,c,disc,x1,x2,p,q; scanf("%f,%f,%f",&a,&b,&c); if(fabs(a)<=1e-6) printf(" The equation is not a quadratic\n"); else { disc=b*b-4*a*c; if(fabs(disc)< 1e-6) printf("x1=x2=%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b sqrt(disc)/(2*a)); x2=(-b-sqrt(disc)/(2*a)); printf("x1=%8.4f,x2=%8.4f\n",x1,x2); } else { p=-b/(2*a); q=sqrt(-disc/(2*a)); printf("%8.4f %x8.4fi\n",p,q); printf("%8.4f-%8.4fi\n",p,q);} } } 5555....按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。 解: #include
main() { float w,f,x; printf("weight:"); scanf("%f",&w); if(w<=50) x=0.15*w; else x=0.15*50 0.22*(w-50); printf("money:%6.2f yuan\n",x); } 本程序运行结果为: weight:20
money:3.00 yuan weight:60
money:9.70 yuan 6. 某商场给与顾客购物的折扣率如下: 购物金额<200元 不打折 500元>购物金额>=200元 9折 1000元>购物金额>=500元 8折 购物金额>=1000元 7.5折 输入一个购物金额,输出打折率、购物实际付款金额。 #include
main() { float x,y,realx; scanf("%f",&x); if(x<=0) { printf("Error! You input a worry number!\n"); y=0;} else { if(x<200) y=1.0; else if(x<500) y=0.9; else if(x<1000) y=0.8; else y=0.75;} if(y!=0) {realx=x*y; printf("y=%f, the realx=%5.2f\n", y,realx);} } 第五章第五章第五章第五章 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计 一、选择题 C C A A D D第六章第六章第六章第六章 数组数组数组数组 、选择题 D A D A A C C A D 二、程序阅读题 13 13 13 13 13 13第七章第七章第七章第七章 函数函数函数函数 一、选择题 B D C B B D A A D第第第第8888章章章章 指针指针指针指针 一、选择题 D A C C(D) D C D 二、填空题 1. m 2. 指针数组名 3. ABCDCD 4.49 5. 25
谁有c#程序设计教程第三版的课后习题答案,刘甫迎主编的??急求,
(1):static void Main()
{
int i, n = 0;
for (i = 1; i <= 100; i )
{
if (i % 3 == 0 && i % 5 != 0)
{
Console.Write("{0} ", i);
n ;
}
}
Console.WriteLine();
Console.WriteLine("个数为:{0}", n);
}
(2):static void Main()
{
int i, d, j;
for (i = 2; i <= 1000; i )
{
d = (int)Math.Sqrt(i);
for (j = 2; j <= d; j )
{
if (i % j == 0)
{
break;
}
}
if (j >= d 1)
{
Console.Write("{0} ", i);
}
}
}
(3):static void Main()
{
double t, a, b, c, d, min, max, x;
Console.WriteLine("请输入四个数,按回车结束输入:");
a = double.Parse(Console.ReadLine());
b = double.Parse(Console.ReadLine());
c = double.Parse(Console.ReadLine());
d = double.Parse(Console.ReadLine());
t = Math.Min(a, b);
x = Math.Max(a, b);
t = Math.Min(t, c);
x = Math.Max(x, c);
min = Math.Min(t, d);
max = Math.Max(x, d);
Console.WriteLine("最大值和最小值分别是:");
Console.WriteLine("max={0},min={1}", max, min);
}
(4):static void Main()
{
int i, j, s;
for (i = 1; i <= 9; i )
{
for (j = 1; j <= i; j )
{
s = i * j;
if (s < 10)
{
Console.Write("{0}*{1}={2} ", j, i, s);
}
else
{
Console.Write("{0}*{1}={2} ", j, i, s);
}
}
Console.WriteLine();
}
}
c 程序设计基础教程课后答案(清华大学出版社郑莉 董渊著)
第 一 章 概述
1-1 简述计算机程序设计语言的发展历程。
解:
迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C 语言是一种面向对象的编程语言,也属于高级语言。
1-2 面向对象的编程语言有哪些特点?
解:
面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C 语言是目前应用最广的面向对象的编程语言。
1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?
解:
结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
1-4 什么是对象?什么是面向对象方法?这种方法有哪些特点?
解:
从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。
面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。
面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。
1-5 什么叫做封装?
解:
封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
1-6 面向对象的软件工程包括哪些主要内容?
解:
面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。
1-7 简述计算机内部的信息可分为几类?
解:
计算机内部的信息可以分成控制信息和数据信息二大类;控制信息可分为指令和控制字两类;数据信息可分为数值信息和非数值信息两类。
1-8 什么叫二进制?使用二进制有何优点和缺点?
解:
二进制是基数为2,每位的权是以2 为底的幂的进制,遵循逢二进一原则,基本符号为0和1。采用二进制码表示信息,有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。
1-9 请将以下十进制数值转换为二进制和十六进制补码:
(1)2 (2)9 (3)93
(4)-32 (5)65535 (6)-1
解:
(1) (2)10 = (10)2 = (2)16
(2) (9)10 = (1001)2 = (9)16
(3) (93)10 = (1011101)2 = (5D)16
(4) (-32)10 = (11100000)2 = (E0)16
(5) (65535)10 = (11111111 11111111)2 = (FFFF)16
(6) (-1)10 = (11111111 11111111)2 = (FFFF)16
1-10 请将以下数值转换为十进制:
(1)(1010)2 (2)(10001111)2 (3)(01011111 11000011)2
(4)(7F)16 (5)(2D3E)16 (6)(F10E)16
解:
(1)(1010)2 = (10)10
(2)(10001111)2 = (143)10
(3)(01011111 11000011)2 = (24515)10
(4)(7F)16 = (127)10
(5)(2D3E)16 = (11582)10
(6)(F10E)16 = (61710)10
1-11 简要比较原码、反码、补码等几种编码方法。
解:
原码:将符号位数字化为 0 或 1,数的绝对值与符号一起编码,即所谓"符号——绝对值表示"的编码。
正数的反码和补码与原码表示相同。
负数的反码与原码有如下关系:
符号位相同(仍用1表示),其余各位取反(0变1,1变0)。
补码由该数反码的最末位加1求得。
第 二 章 C 简单程序设计
2-1 C 语言有那些主要特点和优点?
解:
C 语言的主要特点表现在两个方面,一是全面兼容C,二是支持面向对象的方法。C 是一个更好的C,它保持了C的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对C的类型系统进行了改革和扩充,因此C 比C更安全,C 的编译系统能检查出更多的类型错误。 C 语言最重要的特点是支持面向对象。
2-2 下列标识符哪些是合法的?
Program, -page, _lock, test2, 3in1, @mail, A_B_C_D
解:
Program, _lock, test2, A_B_C_D是合法的标识符,其它的不是。
2-3 例2.1中每条语句的作用是什么?
#include
void main(void)
{
cout<<"Hello!\n";
cout<<"Welcome to c !\n";
}
解:
#include
//指示编译器将文件iostream.h中的代码
//嵌入到该程序中该指令所在的地方
void main() //主函数名,void 表示函数没有返回值
{ //函数体标志
cout<<"Hello!\n"; //输出字符串Hello!到标准输出设备(显示器)上。
cout<<"Welcome to c !\n"; //输出字符串Welcome to c !
}
在屏幕输出如下:
Hello!
Welcome to c !
2-4 使用关键字const而不是#define语句的好处有哪些?
解:
const定义的常量是有类型的,所以在使用它们时编译器可以查错;而且,这些变量在调试时仍然是可见的。
2-5 请写出C 语句声明一个常量PI,值为3.1416;再声明一个浮点型变量a,把PI的值赋给a。
解:
const float PI = 3.1416;
float a = PI;
2-6 在下面的枚举类型中,Blue的值是多少?
enum COLOR ;
解:
Blue = 102
2-7 注释有什么作用?C 中有哪几种注释的方法?他们之间有什么区别?
解:
注释在程序中的作用是对程序进行注解和说明,以便于阅读。编译系统在对源程序进行编译时不理会注释部分,因此注释对于程序的功能实现不起任何作用。而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。适当地使用注释,能够提高程序的可读性。在C 中,有两种给出注释的方法:一种是延用C语言方法,使用"/*"和"*/"括起注释文字。另一种方法是使用"//",从"//"开始,直到它所在行的行尾,所有字符都被作为注释处理。
2-8 什么叫做表达式?x = 5 7是一个表达式吗?它的值是多少?
解:
任何一个用于计算值的公式都可称为表达式。x = 5 7是一个表达式,它的值为12。
2-9 下列表达式的值是多少?
1. 201 / 4
2. 201 % 4
3. 201 / 4.0
解:
1. 50
2. 1
3. 50.25
2-10 执行完下列语句后,a、b、c三个变量的值为多少?
a = 30;
b = a ;
c = a;
解:
a:32 ; b:30 ; c:32;
2-11 在一个for循环中,可以初始化多个变量吗?如何实现?
解:
在for循环设置条件的第一个";"前,用,分隔不同的赋值表达式。
例如:
for (x = 0, y = 10; x < 100; x , y )
2-12 执行完下列语句后,n的值为多少?
int n;
for (n = 0; n < 100; n )
求Cc 程序设计教程(高等教育出版社)龚沛曾 杨志强主编课后习题答案
实验6:
1.编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的孪生素数。所谓孪生素数是指两个相差为2的素数,如3和5,11和13。输出形式如图2.6.1。
函数形式为:
bool isprime(int m);
#include "iostream.h"
int isprime(int m) //判别m是否为质数
{ int i;
for(i=2;m%i!=0;i );
return (i==m);
}
void main()
{int x,count=0;
x=2;
while(1)
{ if(isprime(x)&&isprime(x 2))
{count ;
cout<<"("<
<x<<","<<x 2<<")"<<endl;
if(count>=10)break;
}
x ;
}
}
2. 编一函数,功能为构造正整数x的逆序数。再编一主函数,输出10个大于10000的最小的回文数。回文数是指顺读和倒读都相同的数,如5、151、3553等。
函数形式为:int reverse (int x);
#include"iostream.h"
#include"stdlib.h"
#include"time.h"
int f(int a)
{ int b,c=0;
while(a!=0)
{b=a;
c=c*10 b;
a/=10;
}
return c;
}
void main()
{ int x,i,k=0,t; bool tag=true;
srand(time(NULL));
for(x=10000;k<10;x )
{
if(f(x)==x)
{cout<
<x<<endl;k ;if(k="=10)break;}
}
}
3.编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的字符串加以调用。
函数形式为:int huiwen(char s[]);
#include
#include
#include
int huiwen(char s[])
{
int i,n=0;
char ch,s1[80];
strcpy(s1,s); //原来的字符串保留在s1中
while(s[n])n ; //求字符串长度
for(i=0;i
<n 2;i ) 构造逆序的字符串
{ ch=s[i]; s[i]=s[n-i-1]; s[n-i-1]=ch; }
if(strcmp(s1,s)==0)
return 1;
else
return 0;
}
void main()
{ char s[80]; int i,count=0;
cout<<"输入5个字符串:"<
<endl;
for(i=0;i<5;i )
{ gets(s);
if(huiwen(s))count ;
}
cout<<"回文个数:"<
<count<<endl;
}
4.函数的功能是将学生成绩从高分到低分排序,并统计优秀与不及格的人数。用下面两种方法实现:
(1)函数形式为:int fun(int s[],int n,int *x);
要求优秀人数通过return返回,不及格人数通过指针参数返回结果。
(2)函数形式为:void fun(int s[],int n,int &x,int &y);
要求优秀与不及格的人数通过引用参数返回结果。
分别编二个程序,学生数从键盘输入。
方法一:
#include
#define N 10
int fun(int a[],int n,int *x)
{int i,j,k;
*x=0;
for(i=0;i
<n-1;i )
{k=i;
for(j=i 1;j
<n;j )
if(a[j]>a[k])
k=j;
if(k!=i)
{int t=a[k]; a[k]=a[i]; a[i]=t;}
}
for(i=0;i
<n;i )
if(a[i]>=60)
*x=*x 1;
return(n-*x);
}
void main()
{int a[N],i,n,pass,npass;
cin>>n;
for(i=0;i
<n;i )
cin>>a[i];
npass=fun(a,n,&pass);
cout<<"pass="<
<pass<<",npass="<<npass<<endl;
cout<<"成绩由高到低依次为:\n";
for(i=0;i
<n;i )
cout<
<a[i]<<endl;
}
方法2:
#include
#define N 10
void fun(int a[],int n,int &x,int &y)
{int i,j,k;
x=0;
for(i=0;i
<n-1;i )
{k=i;
for(j=i 1;j
<n;j )
if(a[j]>a[k])
k=j;
if(k!=i)
{int t=a[k]; a[k]=a[i]; a[i]=t;}
}
for(i=0;i
<n;i )
if(a[i]>=60)
x=x 1;
y=n-x;
}
void main()
{int a[N],i,n,pass,npass;
cin>>n;
for(i=0;i
<n;i )
cin>>a[i];
fun(a,n,pass,npass);
cout<<"pass="<
<pass<<",npass="<<npass<<endl;
cout<<"成绩由高到低依次为:\n";
for(i=0;i
<n;i )
cout<
<a[i]<<endl;
}
5. 编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数。。函数形式为:
void freq(char s[],int p[],char &chmax,int &max)
#include "iostream.h"
#include "stdio.h"
#include "string.h"
void freq(char s[],int p[],char &chmax,int &max)
{ for(int i=0;i<26;i )
p[i]=0;
strlwr(s);
i=0;
while(s[i]!='\0')
{ if(s[i]>='a'&&s[i]<='z')
p[s[i]-'a'] ;
i ;
}
max=p[0]; int k=0;
for(i=1;i<26;i )
if(p[i]>max)
{ max=p[i];k=i;}
chmax=k 97;
}
void main()
{ int p[26],i,max; char s[80],chmax;
gets(s);
freq(s,p,chmax,max);
for(i=0;i<26;i )
if(p[i])cout<
<char(i 97) <<"----"<<p[i]<<endl;
cout<
<chmax<<"----"<<max<<endl;
}
6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符串s。例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。
函数形式为:char *max(char s[]);
#include "iostream.h"
#include "string.h"
#include "stdio.h"
char *max(char s[])
{char *p=s;
int i=1,imax=0;
while(s[i]!='\0')
{ if(s[i]>s[imax])imax=i;
i ;
}
while(s[imax]!='\0') //等价于strupr(&s[imax]);
{s[imax]-=32;imax ;}
return p;
}
void main()
{char s[100];
gets(s);
cout<
<max(s)<<endl;
}
7.编一函数,求级数的部分和,当最后一项的值小于eps时结束。设eps的默认值为10-6 。函数形式为:
double fun(double x, double eps=1e-6);
#include
#include
double fun(double x,double eps=1e-6)
{int n=1;
double t=1,s=0;
while(fabs(x/t)>1e-6)
{
s=s x/t;
n=n 2;
t=-t*n*(n-1);
}
return s;
}
void main()
{double x;
cin>>x;
cout<
<fun(x)<<endl;
}
8.编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距离,调试成功后,再将其改为用函数模板实现。
函数形式为:
double dist(int x1, int y1, int x2, int y2);
double dist(double x1, double y1, double x2, double y2);
#include
#include
double dist(int x1,int y1,int x2,int y2)
{
return(sqrt((x1-x2)*(x1-x2) (y1-y2)*(y1-y2)));
}
double dist(double x1,double y1,double x2,double y2)
{
return(sqrt((x1-x2)*(x1-x2) (y1-y2)*(y1-y2)));
}
void main()
{int x1,x2,y1,y2;
double x11,x12,y11,y12;
cin>>x1>>y1>>x2>>y2;
cin>>x11>>y11>>x12>>y12;
cout<<"dist1="<
<dist(x1,y1,x2,y2)<<endl;
cout<<"dist2="<
<dist(x11,y11,x12,y12)<<endl;
}
用函数模板来实现:
#include
#include
template
double dist(T x1,T y1,T x2,T y2)
{
return(sqrt((x1-x2)*(x1-x2) (y1-y2)*(y1-y2)));
}
void main()
{int x1,x2,y1,y2;
double x11,x12,y11,y12;
cin>>x1>>y1>>x2>>y2;
cin>>x11>>y11>>x12>>y12;
cout<<"dist1="<
<dist(x1,y1,x2,y2)<<endl;
cout<<"dist2="<
<dist(x11,y11,x12,y12)<<endl;
}
实验7:
1、
#include "iostream.h"
#define N 5
struct student
{
char *num;
int score;
};
student max(student s[],int n)
{
student t=s[0];
for(int i=1;i
<n;i )
if(s[i].score>t.score)
t=s[i];
return t;
}
void main()
{
student s[N],maxs;
int i;
for(i=0;i
<n;i )
{
s[i].num=new char[10];//假设学号不超过9位
cin>>s[i].num>>s[i].score;
}
maxs=max(s,N);
cout<
<maxs.num<<' '<<maxs.score<<endl;
}
2、
#include "iostream.h"
#include "string.h"
#define N 5
struct book
{
char name[30];
double price;
};
void sort(book b[],int n)
{
int i,j;
book t;
for(i=0;i
<n-1;i )
for(j=0;j
<n-1-i;j )
if(strcmp(b[j].name,b[j 1].name)>0)
{
t=b[j];
b[j]=b[j 1];
b[j 1]=t;
}
}
void main()
{
book b[N];
int i;
for(i=0;i
<n;i )
cin>>b[i].name>>b[i].price ;
sort(b,N);
for(i=0;i
<n;i )
cout<
<b[i].name<<' '<<b[i].price <<endl;
}
3、
#include "iostream.h"
void main()
{
struct date
{
int year;
int month;
int day;
}d;
int dpm[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,s=0;
cin>>d.year>>d.month>>d.day;
if(d.year@0==0||d.year%4==0&&d.year0!=0)
dpm[1]=29;
for(i=0;i
<d.month-1;i )
s=s dpm[i];
s=s d.day;
cout<<"s="<
<s<<endl;
}
4、
#define N 5
#include "iostream.h"
struct node
{
char num[6]; //职工工号
char name[20]; //职工姓名
double wage; //职工工资
node *next;
};
node *deln(node *head,int n)
{
node *p=head,*q;
int i=1;
if(n==1)
head=head->next;
else
{ while(i
next!=NULL)
{
q=p;
p=p->next;
i ;
}
q->next =p->next ;
}
delete p;
return head;
}
void print(node *head)
{
node *p=head;
while(p!=NULL)
{
cout<
name<<' '<
num <<' '<
wage <
<endl;
p=p->next;
}
}
void main()
{
node *head=NULL,*tail=NULL,*newnode;
int i,n;
for(i=0;i
<n;i )
{
newnode=new node;
cin>>newnode->name >>newnode->num>>newnode->wage ;
if(head==NULL)
head=newnode;
else
tail->next=newnode;
tail=newnode;
}
tail->next=NULL;
print(head);
cin>>n; //输入待删除结点的序号
head=deln(head,n);
print(head);
}
5、
#define N 5
#include "iostream.h"
#include "string.h"
struct node
{
char num[6]; //职工工号
char name[20]; //职工姓名
double wage; //职工工资
node *next;
};
void modify(node *head,char num[],double w)
{
node *p=head;
while(p!=NULL&&strcmp(p->num ,num)!=0)
p=p->next ;
if(p==NULL)
cout<
<num<<"not exist.\n";
else
p->wage =w;
}
void print(node *head)
{
node *p=head;
while(p!=NULL)
{
cout<
name<<' '<
num <<' '<
wage <
<endl;
p=p->next;
}
}
void main()
{
node *head=NULL,*tail=NULL,*newnode;
int i;
char num[6];
double w;
for(i=0;i
<n;i )
{
newnode=new node;
cin>>newnode->name >>newnode->num>>newnode->wage ;
if(head==NULL)
head=newnode;
else
tail->next=newnode;
tail=newnode;
}
tail->next=NULL;
print(head);
cin>>num>>w; //输入待修改信息的工号、新工资
modify(head,num,w);
print(head);
}
6、
#include "iostream.h"
#include "stdio.h"
struct node
{
char ch;
node *next;
};
void main( )
{
struct node *head, *p, *q,*newnode,*tail;
char s[100];
gets(s);
head = new node ; // 在链表中插入伪结点,不关心该结点的数据域的值。
head->next =NULL;
tail = head;
for (int i=0;s[i]!='\0';i )
{
newnode=new node;
newnode->ch=s[i];
newnode->next =NULL;
p=head->next;
while(p!=NULL&&s[i]>p->ch)
{
q=p;
p=p->next ;
}
if(p==NULL)
{
tail->next =newnode;
tail=newnode;
}
else
{
q->next =newnode;
newnode->next =p;
}
}
p=head->next ;
while(p!=NULL)
{
cout<
ch;
p=p->next ;
}
}
实验8:
1、
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
void main()
{
FILE *fp;
char s[100];
int i;
fp=fopen("abc.txt","w");
if(fp==NULL)
{
cout<<"can't open abc.txt.\n";
exit(1);
}
gets(s);
i=0;
while(s[i]!='\0')
{
if(s[i]>='a'&&s[i]<='z')
s[i]=s[i]-32;
else if(s[i]>='A'&&s[i]<='Z')
s[i]=s[i] 32;
i ;
}
fputs(s,fp);
fclose(fp);
}
2、
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
void main()
{
FILE *fp;
char ch;
fp=fopen("abc.txt","r");
if(fp==NULL)
{
cout<<"can't open abc.txt.\n";
exit(1);
}
while(1)
{
ch=fgetc(fp);
if(feof(fp))
break;
cout<
<ch<<"("<<(int)ch<<")";
}
}
3、
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void main()
{
FILE *fp;
char s[100],t[100];
int i,len;
fp=fopen("abc.txt","w");
if(fp==NULL)
{
cout<<"can't open abc.txt.\n";
exit(1);
}
gets(s);
len=strlen(s);
strcpy(t,s);
for(i=0;i
<len 2;i )
{
char ch=s[i];
s[i]=s[len-1-i];
s[len-1-i]=ch;
}
fputs(s,fp);
fputs(t,fp);
fclose(fp);
}
</ch<<"("<<(int)ch<<")";
</endl;
</num<
</endl;
</s<<endl;
</b[i].name<
</maxs.num<
</dist(x11,y11,x12,y12)<<endl;
</dist(x1,y1,x2,y2)<<endl;
</dist(x11,y11,x12,y12)<<endl;
</dist(x1,y1,x2,y2)<<endl;
</fun(x)<<endl;
</max(s)<<endl;
</chmax<<"----"<<max<<endl;
</a[i]<<endl;
</pass<<",npass="<<npass<<endl;
</a[i]<<endl;
</pass<<",npass="<<npass<<endl;
</count<<endl;
</endl;
</x<
</x<<","<
vb程序设计教程曹利培版课后习题答案
Dim a(5) As Integer, st As String = "" For i = 10000 To 99999 a(1) = i Mod 10 a(2) = (i Mod 100) \ 10 a(3) = (i Mod 1000) \ 100 a(4) = (i Mod 10000) \ 1000 a(5) = i \ 10000 If a(1) ^ 5 a(2) ^ 5 a(3) ^ 5 a(4) ^ 5 a(5) ^ 5 = i Then st = st & i & " " End If Next TextBox6.Text = st
vb程序设计教程答案
先插入三个Textbox 控件 textbox1 textbox2 textbox3用于输入a、b、c三个数
再插入两个label控件label1、label2用于显示最大值与最小值
最后插入一个button控件
双击button控件输入以下代码即可
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, b, c As Integer
a = CInt(TextBox1.Text)
b = CInt(TextBox2.Text)
c = CInt(TextBox3.Text)
If a > b And b > c Then
Label1.Text = CStr(a)
Label2.Text = CStr(c)
End If
If a > c And c > b Then
Label1.Text = CStr(a)
Label2.Text = CStr(b)
End If
If b > a And a > c Then
Label1.Text = CStr(b)
Label2.Text = CStr(c)
End If
If b > c And c > a Then
Label1.Text = CStr(b)
Label2.Text = CStr(a)
End If
If c > b And b > a Then
Label1.Text = CStr(c)
Label2.Text = CStr(a)
End If
If c > a And a > b Then
Label1.Text = CStr(c)
Label2.Text = CStr(b)
End If
End Sub
可能有更简便的方法
首先声明变量ABC
ABC赋值 文本框.
在用判断语句
判断那个数值比较大...
判断之后赋值abc为标签的标题.
结束判断语句
Private Sub Command1_Click()
If Val(Text1.Text) < Val(Text2.Text) Then
Label1.Caption = "最小数:" & IIf(Val(Text1.Text) < Val(Text3.Text), Text1.Text, Text3.Text)
Label2.Caption = "最大数:" & IIf(Val(Text2.Text) < Val(Text3.Text), Text3.Text, Text2.Text)
Else
Label1.Caption = "最小数:" & IIf(Val(Text2.Text) < Val(Text3.Text), Text2.Text, Text3.Text)
Label2.Caption = "最大数:" & IIf(Val(Text1.Text) < Val(Text3.Text), Text3.Text, Text1.Text)
End If
End Sub
c语言程序设计能力教程答案
1 【C语言】《C语言程序设计教程(第二版)》习题答案
说 明
1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理
工大学出版社出版的,绿皮。
2 第1章 程序设计基础知识
一、单项选择题(第23页)
1-4.CBBC 5-8.DACA
二、填空题(第24页)
1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分
三、应用题(第24页)
2.源程序:
main()
{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */
printf("cock hen chick\n");
for(i=1;i<=20;i )
for(j=1;j<=33;j )
for(k=1;k<=33;k )
if (i j k*3==100&&i*5 j*3 k==100)
printf(" %d %d %d\n",i,j,k*3);}
执行结果:
cock hen chick
4 18 78
8 11 81
12 4 84
3.现计算斐波那契数列的前20项。
递推法 源程序:
main()
{long a,b;int i;
a=b=1;
for(i=1;i<=10;i ) /*要计算前30项,把10改为15。*/
{printf("%8ld%8ld",a,b);
a=a b;b=b a;}}
递归法 源程序:
main()
{int i;
for(i=0;i<=19;i )
printf("