2019-2020程序设计思想与方法(C )试卷与参考答案(A)
- 格式:pdf
- 大小:278.66 KB
- 文档页数:13
《Visual Basic程序设计》2019-2020期末题库及答案一、单选题1. 以下不属于Visual Basic6.0的特点的选项是()。
A、可视化编程B、算法设计C、面向对象程序设计D、事件驱动2.在设计阶段,当双击窗体时,所打开的窗口是()。
A、工程资源管理器窗口B、工具箱窗口C、代码编辑器窗口D、属性窗口3.假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先应执行的操作是()。
A、单击窗体上没有控件的地方B、单击任一个控件C、不执行任何操作D、双击窗体的标题栏4.在VB6.0集成开发环境中有三种工作模式,下列不属于三种工作模式之一的是()。
A、设计模式B、中断模式C、执行模式D、编写代码模式5.当需要上下文帮助时,选择要帮助的内容,希望出现MSDN窗口及显示所需的帮助信息,应按的键是()。
A、HelpB、F1C、EscD、F106.在设计应用程序时,可以查看到应用程序工程中所有组成部分的窗口是()。
A、窗体布局窗口B、代码编辑器窗口C、属性窗口D、工程资源管理器窗口7. 11.窗体设计窗口的主要功能是()。
A、设计控件外观B、编写源程序代码C、建立用户界面D、设置对象属性8. VB6.0集成开发环境可以()。
A、编辑、调试、运行程序,但不能生成可执行文件B、编辑、生成可执行文件、运行程序,但不能调试程序C、编辑、调试、生成可执行程序,但不能运行程序D、编辑、调试、运行程序,也能生成可执行文件9. Visual Basic应用程序处于执行模式时,这时()。
A、既不能设计界面,也不能编写代码B、可以编辑代码,不能设计界面C、可以设计界面,不能编辑代码D、既能设计界面,也能编写代码10.后缀为.vbp的文件表示VB 的()。
A、类模块文件B、窗体文件C、工程文件D、标准类模块文件11.为了保存一个Visual Basic应用程序,下列说法正确的是()。
A、只保存窗体文件(.frm)B、只保存工程文件(.vbp)C、分别保存工程文件和标准模块文件(.bas)D、分别保存工程文件、窗体文件和标准模块文件12.下面关于工程的概念中错误的是()。
计算机程序设计员复习题含参考答案一、单选题(共100题,每题1分,共100分)1.知识产权包括著作权和( )两部分。
A、工业产权B、名誉权C、使用权D、专利权正确答案:A2.计算机程序设计员在工作中要从客观实际出发,不懂不装懂,多向用户学习,切忌( )。
A、客户第一B、一切向钱看C、主观臆断D、服务第一正确答案:C3.( )存储一个对话框模板,模板制定了对话框的特征,包括其大小、位置、风格以及对话框中各种控件等。
A、对话框类B、单模对话框C、对话框函数D、对话框模板资源正确答案:D4.( )协议的作用是提供一个网址的具体情况,它是Internet上最古老的协议之一。
A、FingerB、GopherC、FtpD、Http正确答案:A5.软件管理按时间可划分为生产管理和( )。
A、开发进度管理B、成本管理C、技术管理D、使用维护管理正确答案:D6.( )也称为分支覆盖,是一种较强的逻辑覆盖。
A、判定覆盖B、路径覆盖C、条件覆盖D、条件组合覆盖正确答案:A7.在VC中,如果在Menu Item属性页中选择( )复选框,表示此菜单项是一个多级菜单,并且其右边将会出现一个新菜单框。
A、CheckedB、inactiveC、Pop-upD、Grayed正确答案:C8.按( )来划分,总线可以分为单向和双向两种。
A、信息的传输方向B、数据线的宽度C、总线所处的层次D、用途正确答案:A9.数据独立性是指()A、数据库的数据依赖于用户的应用程序B、DBMS与DB相互独立C、用户应用程序与数据库的数据相互独立D、用户应用程序与DBMS相互独立正确答案:C10.概要设计的任务是( )。
A、发现并排除软件中的错误,最终把一个高质量的软件系统交付给用户使用B、实现人和计算机的通讯,产生一个机器能执行的源程序C、确定每个模块的数据结构和算法,确定模块的细节D、将软件需求说明转化为软件总体设计,确定软件结构及模块的划分,并确定各模块之间的接口正确答案:D11.( )方法的主要优点包括:与人类习惯的思维方法一致、稳定性好、可重用性好、可维护性好。
2020年全国自考C++程序设计考试题库及答案一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. 编写C++程序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B解析:(P21)经过编辑、编译、连接和运行四个步骤。
编辑是将C++源程序输入计算机的过程,保存文件名为cpp。
编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为obj,由于没有得到系统分配的绝对地址,还不能直接运行。
连接是将目标文件obj转换为可执行程序的过程,结果为exe。
运行是执行exe,在屏幕上显示结果的过程。
2. 决定C++语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D解析:(P51)函数的返回值类型由定义函数时的指定的数据类型决定的。
A项的表达式的值要转换成函数的定义时的返回类型。
3. 下面叙述不正确的是()A. 派生类一般都用公有派生B. 对基类成员的访问必须是无二义性的C. 赋值兼容规则也适用于多重继承的组合D. 基类的公有成员在派生类中仍然是公有的答案:D解析:(P136)继承方式有三种:公有、私有和保护。
多继承中,多个基类具有同名成员,在它们的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。
赋值兼容规则是指派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。
基类中的公有成员采用私有继承时,在派生类中变成了私有成员,所以D项错误。
4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()A. 类C. 函数体D. 数据块答案:A解析:(P39)类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
武汉纺织大学2019-2020学年软件工程专业《C语言程序设计》期末考试填空題(每空1分,共20分)1.C程序是由函数构成的,一个C源程序至少且仅包含一个主函数。
2.C语言规定标识符只能由数字、字母和下划线3种字符组成,且第一个字符必须为字母或下划线。
3.著名计算机科学家沃思提出的一个公式:数据结构+算法=程序。
4.Turbo C++中,若有语句:int a;则a的范围是-32768~32767。
5.C中的转义符“\n”表示:换行。
6.表达式 21 % 4 的值为1。
7.C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用字符数组。
8.已知a=79.345,则表达式 (int)a 的值为79 。
9.表达式 3 & 2 的值是1。
10. 若a=5,经a+=3;后a= 8。
11.已知ch='B',则表达式【(ch>='A ' && ch<='Z')? (ch+32):ch 】的值为。
12.C中定义符号常量PI为3.14159的宏命令是#define PI 3.14159。
13.函数形参和调用的实参是普通变量时,参数按传值方式进行传递。
14.C中逻辑运算符的优先次序是:!à&&à||。
15.定义一个共用体变量,共三个成员分别是字符型、整形和浮点型,则该共用体变量所占内存长度为4个字节。
单项选择题(每题2分,共40分)1.下列C语言标识符中,合法的是………………………………………………(D)A.ifB. returnC.23aD. a232.欲从键盘给整型变量a赋值3,b赋值2,则对应语句 scanf("%d,%d",&a,&b);的输入格式是………………………………………………………………………(D)A.3 2B.2 3C.2 3D.3,23. C语言源程序文件经过C编译程序编译连接之后生成的文件后缀名是……(A)A..exeB.objC. .batD. .c4.结构化程序设计的三种基本结构是…………………………………………(D)A. 顺序结构、复杂结构、循环结构B. 顺序结构、复杂结构、分支结构C. 顺序结构、分支结构、选择结构D. 顺序结构、选择结构、循环结构5.以下表达式中,值为0的是…………………………………………………(C)A.4%5B.4/5.0C.4/5D. 4<56.设下列表达式中所涉及的变量均已正确定义,则不符合C语言语法的是…( D )A.4&&3B.a++C.a=b=5D. int(3.14159)7.设变量定义为【int a[3]={1,3,5}, *p=&a[0]+1; 】,则*p的值是…………(B)A.2B.3C.4D. &a[0]+18. 在C 语言程序中,在函数内部定义的变量称为……………………………( D )A. 全局量B. 外部变量C. 全程变量D. 内部变量9. 对于以下的变量定义,正确的表达式是……………………………………( A )struct node {char s[10];int k;} p[4];A.p->k=2B.p[0]->k=2C.p(0)->k=2D. p->s='a'10.若变量c为char类型,则能正确判断出c为小写字母的表达式是…………(C )A. (c>= 'a')||(c<= 'z')B. 'a'<=c<= 'z'C.(c>='a')&&(c<='z')D.('a'<=c)and ('z'>=c)11.C语言中以“只读”方式打开文件,应选择的参数是…………………………(D)A.oB. wC.aD. r12.设变量定义为【int a[2][3]={1,2,3,4,5,6}, *p=a[1]; 】,则p的值是…(C)A. 数组a的首地址B. 数组a的第1个元素的地址C. 数组a的第“1”行的首地址D. 数组a的第“1”列的首地址13.用链表表示线性表的优点是………………………………………………( B )A. 便于随机存取B. 便于插入和删除操作C. 花费的存储空间较顺序存储少D. 数据元素的物理顺序与逻辑顺序相同14. 结构化程序设计主要强调的是……………………………………………(D )A. 程序的规模B. 程序设计语言的先进性C. 程序的效率D. 程序清晰的结构15.以下表达式中,不正确的字符常量是………………………………………( B )A.'n’B. "a"C.'2’D. '\101’16. 若【int x=12,*p=x;】,则正确的赋值表达式是……………………………(C)A.p=xB. p=*xC. *p=xD. *p=*x17.设有如下程序段:int i=5;for(;i<=10;)i++;执行完这段程序后,i的值是………………………………………………(D )A.5B. 6C. 10D. 1118.设有如下程序段:int i=15;while(i<15)i++;则以下描述中正确的是……………………………………………………(C)A. 循环体语句执行15次B. 这是一个死循环C. 循环体语句一次也不执行D. 循环体语句只执行一次19.设有如下程序段:char a[2][6]={"abcde","uvwxy"},*p=a[1];printf("\n%s",p);这段程序执行后,屏幕输出的结果是………………………………………(B )A.abcedB. uvwxyC. bD. v20.设有如下程序段:union{int i; char c;}a;a.i=12;a.c='A';printf("\n%d",a.i);这段程序执行后,屏幕输出的结果是………………………………………(C )A.12B. 97C.65D. A程序填空(每空3分,共15分)1.已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述:F(1)=1 n=1F(2)=1 n=2F(n)=F(n-1)+F(n-2) n>2以下程序的功能是求F(49)的值,请在下划线处填上正确内容,使程序能正确运行。
【章节】第1章 C++基础知识【知识点】1、 C++程序的构成与书写形式;2、基本数据类型,常量、变量和表达式3、 C++的标准输入输出【单选题】1、在C++中,源程序变为可执行程序的正确顺序应该是( ) 。
A. 编辑、链接、编译、执行B. 编辑、编译、链接、执行C. 编译、编辑、链接、执行D. 编译、链接、编辑、执行答案:B2、要把高级语言编写的源程序转换为目标程序,需要使用( ) 。
A. 编辑程序B. 驱动程序C. 调试程序D. 编译程序答案:D3、下列关于C++与C语言的关系描述中,错误的是( ) 。
A. C语言是C++语言的一个子集B. C++与C语言是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的答案:D4、下面为使用面向对象语言的正确理由是( ) 。
A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构B. 程序语句比面向过程语言简单C. 面向对象程序设计可以设计为自行修改错误D. 面向对象程序很容易概念化答案:D5、以下选项中,合法的用户标识符是( ) 。
A. longB. _2TestC. 3DmaxD. A.dat答案:B6、下列描述中正确的是( ) 。
A. 不是每个C++程序都必须包含预处理命令#includeB. C++程序必须有return 语句C. C++程序中的变量必须定义在主程序内部D. C++程序中所使用的符号常量可以不进行定义答案:A7、C++源程序文件的扩展名为( ) 。
B. .CC. .DLLD. .EXE答案:A8、cout是I0流库预定义的( ) 。
A. 类B. 对象C. 包含文件D. 常量答案:B9、 C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D10、下列选项中,( ) 是不合法的标识符.A. ProgramB. Obj23C. doubleD. B_C_D答案:C11、下列标识符中,不合法的用户标识符为( ) 。
《面向对象程序设计C》期末试卷及标准答案(A)一、选择题(每小题2分,共40分)1、C++是()。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &yC. int &z=1000;D. float &t=&a7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
C程序设计教程期末复习题及答案习题 1 一、选择题1(在C#中 B 都是对象。
A 任何类型B 任何事物C 任何代码D 任何技术 2(对象包含数据和 A 的方法。
A 在该数据上工作B 调用C 函数调用D 传递参数 3(一个类是 D 的蓝本。
A 数据集合B 函数集合C 方法集合D 给定功能集合 4(.NET构架包含公用语言运行时期和 B 。
5(.NET的核心是 A 。
A CLRB Windows2000C DNAD 分解平台 6(C#程序以 B 扩展名保存编写的程序。
A .CS B .PS C .CSS D .SCB 的命名空间。
7(System是A 存储系统类B 控制台类C I/O操作D 新项目 8(namespace用于声明 B 。
A 新项目B 一个命名空间C 类与方法D 指令 9(每个C#程序必须有一个 D 方法。
A 类方法B 构造方法C MainD 重载方法二、问答题1. 面向对象编程的三大原则是什么,答:封装、继承和多态性。
2. 封装是什么,答:封装是用于隐藏对象实际的制作细节。
3. 继承是什么,答:继承是在建立新的特定对象时,可以使用现有对象的功能性。
4. 多态性是什么,答:多态性是程序代码能够依据实际对象所需而进行不同的行为。
5. .NET的核心构件包括哪些,答:(1).NET构造块服务或有计划的访问某些服务。
(2)将在新的Internet设备上运行的.NET设备软件。
(3).NET用户经验。
6. CLR的作用是什么,答:CLR是.NET的核心,它是一个运行时期环境,在该环境中,以不同语言编写的应用程序均能始终运行。
三、编程题使用.NET代码编辑器编写一个C#应用程序,以在屏幕打印出:C# is the Component-oriented language in C and C++ family of language.要求:(1) 使用using System命名空间,即定位System命名空间的Console类。
程序设计基础试题(附答案)程序设计基础复习题一、单选1、一个完整的计算机系统应该包括()A、系统软件和应用软件B、计算机及其外部设备C、硬件系统和软件系统D、系统硬件和系统软件2、“裸机”的概念是指()A、正在进行设计还没有组装好的计算机B、已经组装好但还没有安装任何软件的计算机C、仅安装了操作系统的计算机系统D、安装了文字处理软件但没有安装专用数据处理系统的计算机3、世界上第一台电子数字计算机研制成功的时间是()A、1936年B、1946年C、1956年D、1970年4、CASE的含义是()A、计算机辅助设计B、计算机辅助制造C、计算机辅助教学D、计算机辅助软件工程5、当前广泛使用的微型计算机是()A、第一代B、第二代C、第三代D、第四代6、当代计算机的体系结构称为是()A、冯诺依曼机B、非冯诺依曼机C、图灵机D、比尔盖茨机7、硬盘是()A、输入设备B、输出设备C、存储设备D、计算设备8、下面4句话中,最准确的表述是()A、程序=算法+数据结构B、程序是使用编程语言实现算法C、程序的开发方法决定算法设计D、算法是程序设计中最关键的因素9、计算机能直接执行的语言是()A、机器语言B、汇编语言C、高级语言D、目标语言10、解释程序的功能是()A、将高级语言程序转换为目标程序B、将汇编语言程序转换为目标程序C、解释执行高级语言程序D、解释执行汇编语言程序11、下面4种程序设计语言中,不是面向对象式语言的是()A、JAVAB、Object PascalC、DelphiD、C12、不是C语言的基本数据类型是()A、intB、doubleC、charD、bool13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符()A、/B、%C、*D、++14、数据的逻辑结构分为()A、纯属结构和非线性结构B、顺序结构和非顺序结构C、树型结构和图型结构D、链式结构和顺序结构15、用链表表示纯属表的优点是()A、便于随机存取B、便于插入和删除操作C、花费的存储空间较顺序存储少D、元素的物理顺序与逻辑顺序相同16、栈的最主要特点是()A、先进先出B、先进后出C、两端进出D、一端进一端出17、下面4句结论只有一句是错误的,它是()A、二叉树是树B、二叉树的左右子树的位置可以颠倒C、可以使用二叉树的思想对数值进行排序D、可以采用链表方式存储二叉树18、螺旋模型中包括需求定义、风险分析、工程实惠和评审四个阶段,在开发过程中()A、每个周期都要包括这四个阶段B、每个周期可以包括不同的阶段C、在最后交付使用之前才进行评审D、在项目开始时才需要进行风险分析19、软件工程的出现主要是由于()A、程序设计方法学的影响B、其他工程科学的影响C、软件危机的出现D、计算机的发展20、在软件工程中,软件测试的目的是()A、试验性运行软件B、发现软件错误C、证明软件是正确的D、找出软件中全部错误二、填空题1、世界上最早的高级程序设计语言是()2、计算机按照工作原理进行分类可以分为()和()3、当前计算机的最基本原理采用的是()4、计算机存储器一般分为两级,它们是()和()5、高级语言程序的翻译有两种方式,一种是(),另一种是()6、数据的存储结构可以用()和()7、树型结构的主要特征是结点之间存在着一种层次的关系,数据元素之间的关系是()的关系。
程序设计思想与方法课后习题答案陆朝俊1、page76_Q12from math import *r = input("请输入半径长:")V = 4 / 3 * pi * r **3S = 4 * pi * r ** 2print "Volume is ",Vprint "Superficial area is ",S2、page121_Q12x=input("请输入体重/kg:")y=float(input("请输入身高/m:"))l= x / ( y * y )if l < 19:print "您的BMI指数为%.2f" %(l)+",属于"+"轻体重"elif l < 25:print "您的BMI指数为%.2f" %(l)+",属于"+"健康体重"elif l < 28:print "您的BMI指数为%.2f" %(l)+",属于"+"超重"else:print "您的BMI指数为%.2f" %(l)+",属于"+"肥胖"z=raw_input("请输入任意键结束程序")3、page163_Q15def delta(a,b):delta =float( a - b )return deltadef slope(p1, p2, n):delta_x = delta (p1[0], p2[0])delta_y = delta (p1[1], p2[1])if delta_x != 0:k = delta_y / delta_xif n:print "通过两点的直线斜率为%0.2f" %(k)else:k = float("inf")if n:print "通过两点的直线斜率不存在"return k# n用来决定是否执行print语句def intercept(p1, p2, n):delta_x = delta (p1[0], p2[0])delta_y = delta (p1[1], p2[1])k = slope(p1, p2, n)if delta_x != 0:b = p2[1] - k * p2[0]print "通过两点的直线在y轴上的截距为%0.2f" %(b) else:b = float("inf")if n:print "通过两点的直线在y轴上的截距不存在"return bdef input_coor(i):x = input("请输入第%0.1d个点的x坐标:"%(i))y = input("请输入第%0.1d个点的y坐标:"%(i))return (x, y)p1 = input_coor(1)p2 = input_coor(2)slope(p1, p2, 0)intercept(p1, p2, 1)4、page122_Q22pi = 1.0delta = 1.0i = 2x = 1.0while delta >= 0.00001:y = ( - 1.0 )**( i + 1 )/( 2 * i - 1 )i = i + 1pi = pi + ydelta = max(y - x , x - y)x = y#print i,deltaprint 4 * pix = input()5、page201_Q11# -*- coding: cp936 -*-global Cglobal skyglobal gdglobal awayfrom Tkinter import *from math import sin,cos,pi,logfrom time import sleepfrom random import randintdef main():global Cglobal skyglobal gdglobal awayroot = Tk()C = Canvas(root, height = 400, width = 600, bg = "white" )C.pack()gd = C.create_polygon((0,266), (0,400), (600,400), (600,266),fill = "grey", outline = "")sky = C.create_polygon((0,266), (0,0), (600,0), (600,266),fill = "skyblue", outline = "")road= C.create_polygon((250,270),(350,270),(500,400),(100,400),fill ="SlateGray", outline ="SlateGray")side_1= C.create_line((250,270),(100,400),fill = "Bisque",width = 10)side_2= C.create_line((350,270),(500,400),fill = "Bisque",width = 10)away = C.create_polygon((249,266),(351,266),(351,276),(249,276),fill = "skyblue",outline = "skyblue")p1 =(540, 330)# = input("tree location")#3/4处p2 =(80, 330)# = input("snowman location")#1/4处p3 = (100, 100)#太阳tree(p1)#树完成!!!snowman(p2)#少眼睛和鼻子sun(p3)x = input("关闭程序")def snow(p,x):a = p[0]b = p[1]p1 =(a + x, b)p2 =(a + x / 2, b - 1.732 / 2 * x)p3 =(a - x / 2, b - 1.732 / 2 * x)p4 =(a - x, b)p5 =(a - x / 2, b + 1.732 / 2 * x)p6 =(a + x / 2, b + 1.732 / 2 * x)line_14 = C.create_line(p1, p4, fill = "snow")line_25 = C.create_line(p2, p5, fill = "snow")line_36 = C.create_line(p3, p6, fill = "snow")list = [line_14,line_25,line_36]return listdef star(p,i):global Clist = ["red","Gold","PaleTurquoise","pink","orange","Snow"]a = p[0]b = p[1]p1 = (a, b - 11)p2 = (a - 6, b + 9)p3 = (a + 8, b - 3)p4 = (a - 8, b - 3)p5 = (a + 6, b + 9)C.create_polygon(p1,p2,p3,p4,p5,fill = list[i - 1], outline = "" )def sun(p):#太阳的曲线方程:y = 0.00125 * x ^ 2 + 162.5 - 0.75 * x,微分方程: dy/dx = 0.01 * x - 2global Cglobal skyglobal gdglobal awayu = 0#用于记录第几次天亮#v = input("请输入一个数字,可以控制程序运行的速度哦~愈大愈快,建议值为3:") while True:list_x = []for i in range(50):list_x.append(randint(0,600))#用于雪花的x坐标list_y = []for i in range(50):list_y.append(randint(0,600))#用于雪花的y坐标t = 0a = p [0]b = p [1]p1 = [a - 15, b - 15]p2 = [a + 15, b + 15]#sun = C.create_oval(p1, p2, fill = "orange", outline = "")x = aif u >= 1:a = x - 130C.itemconfig(sky,fill = "skyblue")C.itemconfig(gd,fill = "gray")C.itemconfig(away,fill = "skyblue",outline = "skyblue")C.update()sleep(0.5)while x < 650:t = t + 0.005 * pix = a + 1#dx = 1y = 0.00125 * x * x + 162.5 - 0.75 * xa = xb = y#新太阳的x,ylist = []for i in range(12):n = 2 * pi / 12 * ic = a + cos (n + t) * 20d = b + sin (n + t) * 20e = a + cos (n - 0.2 + t) * 40f = b + sin (n - 0.2 + t) * 40m = C.create_line((c, d), (e, f), fill = "red")list.append(m)C.update()sun = C.create_oval([a - 15,b - 15], [a + 15, b + 15], fill = "orange", outline = "")#print a,bC.update()for i in range(len(list)):C.delete(list[i])C.delete(sun)sleep(0.04)t = 0#起始处(-30,186.125)a = -30x = aC.itemconfig(sky,fill = "midnightblue")C.itemconfig(gd,fill = "DarkGray")C.itemconfig(away,fill = "midnightblue",outline = "midnightblue")C.update()sleep(0.5)while x < 650:t = t + 1x = a + 1#dx = 1y = 0.00125 * x * x + 162.5 - 0.75 * xa = xb = y#新月亮的x,ymoon_1 = C.create_oval([a - 17,b - 17], [a + 17, b + 17], fill = "ghostwhite", outline = "")moon_2 = C.create_oval([a - 30, b - 25], [a + 7, b + 12], fill = "midnightblue", outline = "")list = []for i in range(50):snowlo = ((list_x[i] + t)%600, (list_y[i] + 1.5 * t)%400)list.append(snow(snowlo,3))C.update()sleep(0.03)C.delete(moon_1)C.delete(moon_2)for i in range(50):for j in range(3):C.delete(list[i][j])C.update()u = u + 1def tree(p1):#树根的大小不对,再调整p2 = (p1[0] - 25, p1[1] - 25)p3 = (p1[0] - 25, p1[1] - 50)p4 = (p1[0] - 40, p1[1] - 50)p5 = (p1[0] - 40, p1[1] - 25)p6 = (p1[0] - 65, p1[1] )global Cpa = p1pb = p6i = 1while p1[1] - pb[1] <= 50 :#树根高if pa[0] - pb[0] <= 20:pa = (pa[0], pa[1]-1)pb = (pb[0], pb[1]-1)C.create_line(pa, pb, width = 1, fill = "brown")else :pa = (pa[0] - 25 * 0.5 ** i, pa[1]-1)pb = (pb[0] + 25 * 0.5 ** i, pb[1]-1)C.create_line(pa, pb, width = 1, fill = "brown")i = i + 1#root_right_bottom = C.create_line(p1, p2, p3, smooth = 1, width = 4)#root_top = C.create_line(p3, p4, width = 4)#root_left_bottom = C.create_line(p6, p5, p4, smooth = 1, width = 4)#root_right_bottom = C.create_line(p1, p2, smooth = 1, width = 4)#root_top = C.create_line(p2, p3, p4, p5, width = 4)#root_left_bottom = C.create_line(p5, p6, smooth = 1, width = 4)#树根轮廓线p = ( (p1[0] + p6[0]) / 2, (p1[1] + p6[1]) / 2 )pn = (p1[0] + 40, p1[1] - 50)#每层树叶右下角的坐标#改为40,50leaf = []i = 1while pn[0] - p[0] >= 20:#最上层树叶宽度限制dx = pn[0] - p[0]pm = (p[0] - 1 * dx, pn[1] )pl = (p[0], pn[1] - dx )leaf.append(C.create_polygon(pn, pm, pl, width = 1, fill = 'ForestGreen', outline = "YellowGreen"))pn = (pn[0] - 12, pn[1] - 24)px = (pn[0] - 12 - 1.4 ** i, pn[1] + 20)py = (pm[0] + 12 + 2 ** i, pm[1]-4)if i <= 3:star(px,i)star(py,i + 3)else:star(px,i - 3)star(py,i)i = i + 1star(pl,6)def snowman(p1):#p1,身体正中global Ca = body_x = 40#input("body_x")b = body_y = 37#input("body_y")c = head = 25#input("head")#输入雪人的身体宽和高d = theta = 25.0 * pi /180.0e = wide = 4#input("width")#围巾和帽子的宽度#l = leg = input("leg")p2 = (p1[0] + a, p1[1] + b)#身体所在框右下点p3 = (p1[0] - a, p1[1] - b)#身体所在框左上点p4 = (p1[0], p1[1] - c + e - b )#头部中间,做成圆脸p5 = (p1[0] + b * cos(d), p1[1] - b * sin(d) )#它的左手p6 = (p1[0] - b * cos(d), p1[1] - b * sin(d) )#它的右手p7 = (p5[0] + 3, p5[1] + 5)#手臂的宽度由此而来,3/5p8 = (p6[0] - 3, p6[1] + 5)p9 = (p5[0] + 20, p5[1] - 12)#p10= (p6[0] - 20, p6[1] - 12)p11= (p7[0] + 20, p7[1] - 12)#p12= (p8[0] - 20, p8[1] - 12)p13= (p9[0] - 5, p9[1] - 8 )#p14= (p10[0] + 5, p10[1] - 8 )p15= (p9[0] + 5, p9[1] - 3 )p16= (p10[0] - 5, p10[1] - 3 )p17= (p11[0] + 5, p11[1] + 8)# #3,5p18= (p12[0] - 5, p12[1] + 8)p19= (p9[0] + 5 * 1.5, p9[1] - 3 * 0.5)#p20= (p10[0] - 5 * 1.5, p10[1] - 3 * 0.5)p21= (p11[0]+ 5 * 2.5, p11[1]- 3 * 2.5)#p22= (p12[0]- 5 * 2.5, p12[1]- 3 * 2.5)p23= (p4[0] - c, p4[1] - c )p24= (p4[0] + c, p4[1] + c )p25= (p4[0] - 0.167 * c, p4[1] + 0.33 * c )p26= (p4[0] + 0.667 * c, p4[1] + 0.33 * c )p28= (p4[0] + 0.6 * c, p4[1] - 0.5 * c)p27= (p28[0]- c, p28[1])arm1 = C.create_polygon(p5, p7, p11, p9,fill = "brown", smooth = 1)hand1_1= C.create_polygon(p13, p19, p15, p9, fill = "snow", outline = "grey", smooth = 1) hand1_2= C.create_polygon(p15, p21, p17, p11, p9, fill = "snow",outline = "grey", smooth = 1)#arm2 = C.create_polygon(p6, p8, p12, p10,fill = "brown", smooth = 1)hand2_1= C.create_polygon(p14, p20, p16, p10, fill = "snow", outline = "grey", smooth = 1) hand2_2= C.create_polygon(p16, p22, p18, p12, p10, fill = "snow",outline = "grey", smooth = 1)body = C.create_oval(p3, p2, fill = "snow", outline = "" ,width = 10)arm2 = C.create_polygon(p6, p8, p12, p10,fill = "brown", smooth = 1) #让左手臂在身体图层的上面,展现一种立体感head = C.create_oval(p23, p24,fill = "snow", outline = "grey")eyes_1 = C.create_oval((p27[0] - 5, p27[1] - 4), (p27[0] + 5, p27[1] + 4), fill = "Maroon")eyes_2 = C.create_oval((p28[0] - 5, p28[1] - 4), (p28[0] + 5, p28[1] + 4), fill = "Maroon")nose = C.create_polygon(p4, p25, p26, fill = "orange", outline = "", )C.move(nose, 0, -5)main()。