从问题到程序习题答案
- 格式:doc
- 大小:76.51 KB
- 文档页数:11
大学计算机——Python程序设计与问题求解东北林业大学智慧树知到答案2024年第一章测试1.计算机能直接执行的计算机语言是( ) 。
A:机器语言 B:高级语言 C:汇编语言 D:自然语言答案:A2.()是计算机中存储数据的最小单位,用来存储一个0或1的二进制位。
A:位 B:字 C:字节 D:内存答案:A3.()的功能是连接主机和外部设备并实现两者之间数据的传输。
A:电源 B:总线 C:接口 D:U盘答案:C4.某种计算机的内存容量是8G,这里的8G容量是指 ( )K字节。
A:8*1024*1024 B:8*1024 C:8*1000 D:8*1024*100答案:A5.计算机中的总线根据传输信号功能的不同分为( )。
A:数据总线、控制总线、地址总线 B:数据总线、地址总线 C:控制总线、地址总线 D:数据总线、控制总线答案:A6.目前计算机的应用领域是()。
A:网络通信 B:人工智能 C:数值计算 D:信息处理答案:ABCD7.计算机硬件系统主要由()、输入设备和输出设备五部分组成。
A:控制器 B:存储器 C:显示器 D:运算器答案:ABD8.计算机系统通常采用三级层次结构来构成存储系统,主要由()构成。
A:高速缓冲存储器 B:内存储器 C:运算器 D:辅助存储器答案:ABD9.下面各项属于输入设备的有()。
A:绘图仪 B:触摸屏 C:条形码阅读器 D:投影仪答案:BC10.Python语言具备以下特点:()。
A:Python是面向对象语言 B:Python是交互式语言 C:Python是一种解释型语言 D:Python是初学者的语言答案:ABCD11.1946年2月,世界上第一台电子计算机ENIAC问世,这是计算机发展史上一个值得纪念的日子。
()A:错 B:对答案:B12.主频是CPU最重要的性能指标之一。
主频越高,CPU的运算速度越慢。
()A:对 B:错答案:B13.只读存储器(ROM),是一种只能从存储器读取信息而不能写入信息的存储器,断电后信息不丢失。
计算机处理问题的步骤一、选择题。
1. 计算机处理问题的第一步通常是()- A. 编写程序。
- B. 分析问题。
- C. 输入数据。
- D. 执行程序。
- 答案:B。
- 解析:在计算机处理问题之前,首先要对问题进行分析,明确问题的需求、目标、已知条件等,然后才能进行后续的步骤,如编写程序等。
编写程序是根据分析的结果来进行的,输入数据是在程序编写好之后进行的操作,执行程序更是后续步骤,所以第一步是分析问题。
2. 计算机执行程序时,将程序代码和数据从外部存储设备调入()- A. 运算器。
- B. 控制器。
- C. 内存。
- D. 输出设备。
- 答案:C。
- 解析:计算机在执行程序时,首先要将程序代码和相关数据从外部存储设备(如硬盘)调入内存。
因为运算器主要进行算术和逻辑运算;控制器负责控制计算机各部件协调工作;输出设备是用于输出结果的,而内存是计算机用于暂时存储数据和程序的地方,便于CPU快速访问,所以是调入内存。
3. 在计算机处理问题过程中,以下哪个部件负责对数据进行算术和逻辑运算?()- A. 存储器。
- B. 运算器。
- C. 控制器。
- D. 输入设备。
- 答案:B。
- 解析:运算器的功能就是对数据进行算术运算(如加、减、乘、除等)和逻辑运算(如与、或、非等)。
存储器主要用于存储数据和程序;控制器控制计算机各部件协同工作;输入设备用于向计算机输入数据,所以负责运算的是运算器。
4. 计算机处理问题时,数据输入完成后,下一步是()- A. 数据存储。
- B. 程序执行。
- C. 结果输出。
- D. 数据处理。
- 答案:D。
- 解析:计算机处理问题的一般步骤是输入数据,然后对输入的数据进行处理(如按照程序中的算法进行计算、转换等操作),之后才是存储处理结果(如果需要),接着执行程序(程序执行过程中包含数据处理),最后输出结果。
所以数据输入完成后下一步是数据处理。
5. 以下关于计算机处理问题步骤的描述,错误的是()- A. 程序编写要根据问题分析的结果进行。
Lingo软件题目与答案1.一奶产品加工厂用牛奶生产A1,A2两种奶产品,1桶牛奶可以在甲类设备上用12h加工,成3kg A1,或者在乙类设备上用8h加工成4kg A2。
根据市场需求,生产的A1,A2全部能售出,且每千克A1获利24元,每千克A2获利16元。
现在加工厂每天能得到50桶牛奶供应,每天正式工人的劳动时间为480h,并且甲类设备每天最多加工100kg A1,乙类设备的加工时间没有限制,讨论以下问题1)若35元可以买一桶牛奶,做这项投资是否值得?若投资,每天最多购买多少桶牛奶?2)若聘用临时工人以增加劳动时间,付给临时工人的工资最多是多少?3)由于市场需求变化,每千克A1的获利增加到30元,是否改变原有的生产计划?Lingo程序:model:max=72*x+64*y;x+y<50;12*x+8*y<480;3*x<100;end2.一汽车厂生产小、中、大三种类型的的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间如下表。
1)制定生产计划,使工厂利润最大;2)若生产某类型车,则至少需生产80辆,求改变后的生产计划。
3.建筑工地的位置(a,b)和水泥日用量d如下表,目前有两个临时料场位于P(5,1),Q(2,7),日储量各有20t。
1)求从P,Q两料场分别向各工地运送多少吨水泥,使总的吨公里数最小;2)现打算舍弃原有料场,新建两个料场A,B,求新料场的位置,使新的吨公里数最小,此时与P,Q相比能节省多少吨公里。
4.设从4个产地Ai往3个销地Bj运送物资,产量、销量和单位运费如下表,求总运费最少的运输方案和总运费。
Lingo程序:Model:sets:warehouse/1..3/:a;customer/1..4/:b;link(warehouse,customer):c,x;endsetsdata:a=30,25,21;b=15,17,22,12;c=6,2,6,7,4,9,5,3,8,8,1,5;enddata[OBJ]min=@sum(link:c*x);@for(warehouse(i): @sum(customer(j):x(i,j))<a(i));@for(customer(j):@sum(warehouse(i):x(i,j))=b(j));end5.求下图中v1到v11的最短路Lingo程序:Model:sets:cities/1..11/;roads(cities,cities):p,w,x; endsetsdata: !半连通图和权图;p=0 1 1 1 0 0 0 0 0 0 00 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 10 0 0 0 1 1 1 1 0 1 10 0 0 0 0 0 1 0 1 0 10 0 0 0 0 0 0 1 1 1 0;w=0 2 8 1 0 0 0 0 0 0 02 0 6 0 1 0 0 0 0 0 08 6 0 7 5 1 2 0 0 0 01 0 7 0 0 0 9 0 0 0 00 1 5 0 0 3 0 2 9 0 00 0 1 0 3 0 4 0 6 0 00 0 2 9 0 4 0 0 3 1 00 0 0 0 2 0 0 0 7 0 90 0 0 0 9 6 3 7 0 1 20 0 0 0 0 0 1 0 1 0 40 0 0 0 0 0 0 0 9 2 4;enddatan=@size(cities);min=@sum(roads:w*x);@for(cities(i)|I # ne # 1 # and # I # ne # n: @sum(cities(j):p(i,j)*x(i,j))=@sum(cities(j):p(j,i)*x(j,i)));@sum(cities(j):p(1,j)*x(1,j))=1;end6.露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。
java编程练习题及答案【篇一:java基础编程练习题(50题及答案)2017】class=txt>【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(string[] args) {system.out.println(第1个月的兔子对数: 1);system.out.println(第2个月的兔子对数: 1);int f1 = 1, f2 = 1, f, m=24;for(int i=3; i=m; i++) {f = f2;f2 = f1 + f2;f1 = f;system.out.println(第 + i +个月的兔子对数: +f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class lianxi02 {public static void main(string[] args) {int count = 0;for(int i=101; i200; i+=2) {boolean b = false;for(int j=2; j=math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else{ b = true; }}if(b == true) {count ++;system.out.println(i );}}system.out.println( 素数个数是: + count);}}【程序3】题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
算法与程序设计模拟试题一、单项选择题1.穷举法的适用范围是()。
A.一切问题B.解的个数极多的问题C.解的个数有限且可一一列举D.不适合设计算法2.通过多重循环一一列举出解决问题的所有可能解,并在逐一列举的过程中,检验每个可能的解是否是问题的真正解的算法是(),而从实际问题中归纳出数学解析式,就此设计出合适的算法是()。
A.解析法穷举法B.递归法解析法C.穷举法解析法D.穷举法,递归法3.判断某自然数m是不是素数(只能被1或本身整除的大于1的自然数称为素数)的算法基本思想是:把m作为被除数,将2到m-1中的自然数作为除数,逐一进行相除,如果都除不尽,m就是素数,否则m 就不是素数。
这种判定素数的算法属于()。
A.枚举算法B.解析算法C.递归算法D.排序算法4.图书管理系统对图书管理是按图书的序号从小到大进行管理的,若要查找一本已知序号的书,则能快速的查找的算法是()。
A.枚举算法B.解析算法C.对分查找D.冒泡排序5.VB程序如下:Dim aa = Array(1,2,3,4,5,6,7,8)i = 0For k = 100 To 90 Step -2s = a(i)^2If a(i) > 3 Then Exit Fori = i + 1Next kPrint k;a(i);s上述程序的输出结果是()。
A.88 6 36B.88 1 2C.90 2 4D.94 4 166.在所有排序算法中,关键字比较次数与纪录的初始排列次序无关的是()。
A.希尔排序B.起泡排序C.插入排序D.选择排序7.在使用计算机处理数据的过程中,往往需要对数据进行排序,所谓排序就是()。
A.把杂乱无章的数据变为从小到大排列的数据B.把杂乱无章的数据变为从大到小排列的数据C.把杂乱无章的数据变为有序的数据D.以上说法都错误8.某食品连锁店5位顾客贵宾消费卡的积分依次为900、512、613、700、810,若采用选择排序算法对其进行从小到大排序,如下表,第二趟的排序结果是()A.512 613 700 900 810 B.512 810 613 900 700C.512 900 613 700 810D.512 613 900 700 8109.在《算法与程序设计》教材中,主要介绍了下列“算法”()。
〖程序设计基础〗练习题3一、单选题(30分)语言是( )。
A.面向问题的解释型高级编程语言B.面向机器的低级编程语言C.面向过程的编译型高级编程语言D.面向对象的解释型高级编程语言2.下列的变量定义中,错误的是( )。
A) int i; B) int i=;C) static int i=100; D) int 123_$;3.以下的变量定义语句中,合法的是( )。
A) float $_*5= ; B) byte b1= 15678;C) double a =Double. MAX_VALUE;D) int _abc_ = 3721L;4.以下字符常量中不合法的是( )。
A) '|' B) '\'' C) "\n" D) '我'5.若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。
A) b = a!=7 ; B) a = 7 + b + c=9;C) i=* % 4; D) a = a + 7 = c + b;6.下列程序段执行后t5的结果是( )。
int t1 = 9, t2 = 11, t3=8;int t4,t5;t4 = t1 > t2 t1 : t2+ t1;t5 = t4 > t3 t4 : t3;A) 8 B) 20 C) 11 D) 97.设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是( )。
A) a!=b & c%d < a B) a++ = =a+b+c+dC) ++a*b--+d D) a+b>=c+d8.执行下列程序段后,b, x, y的值分别是( )。
int x=6,y=8;boolean b;b=x>y&&++x==--y;A) true , 6, 8 B) false , 7, 7C) true, 7, 7 D) false, 6, 89.以下由do-while语句构成的循环执行的次数是( )。
一、鸡兔同笼问题描绘一个笼子里面关了鸡和兔子〔鸡有2只脚,兔子有4只脚,没有例外〕。
已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物输入数据第1行是测试数据的组数n,后面跟着n行输入。
每组测试数据占1行,包括一个正整数a (a < 32768)。
输出要求n行,每行输出对应一个输入。
输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。
假如没有满足要求的情况出现,那么输出2个0。
输入样例2320输出样例0 05 10解题思路这个问题可以描绘成任给一个整数N,假如N是奇数,输出0 0,否那么假如N是4的倍数,输出N / 4 N / 2,假如N不是4的倍数,输出N/4+1 N/2。
这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。
题目中说明了输入整数在一个比拟小的范围内,所以只需要考虑整数运算就可以了。
参考程序1.#include <stdio.h>2.void main( )3.{4.int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。
5.scanf("%d", &nCases);6.for(i = 0; i < nCases; i++){7.scanf("%d", &nFeet);8.if(nFeet %2 != 0) // 假如有奇数只脚,那么输入不正确,9.// 因为不管2只还是4只,都是偶数10.printf("0 0\n");11.else if (nFeet%4 != 0) //假设要动物数目最少,使动物尽量有4只脚12.//假设要动物数目最多,使动物尽量有2只脚13.printf("%d %d\n", nFeet / 4 + 1, nFeet / 2);14.else printf("%d %d\n", nFeet / 4, nFeet / 2);15.}16.}二、判断闰年问题描绘判断某年是否是闰年。
计算机操作系统习题答案(第三版)(华仔整理)第一章os引论1. 设计现代OS的主要目标是什么?方便性,有效性,可扩充性和开放性.2. OS的作用可表现为哪几个方面?a. OS作为用户与计算机硬件系统之间的接口;b. OS作为计算机系统资源的管理者;c. OS作为扩充机器.3. 试说明推动多道批处理系统形成和发展的主要动力是什么?不断提高计算机资源利用率和系统吞吐量的需要;4. 何谓脱机I/O和联机I/O?a. 脱机输入输出方式(Off-Line I/O)是为了解决人机矛盾及CPU和I/O设备之间速度不匹配而提出的.它减少了CPU的空闲等待时间,提高了I/O速度.具体内容是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时,在直接从磁带机高速输入到内存,从而大大加快了程序的输入过程,减少了CPU等待输入的时间,这就是脱机输入技术;当程序运行完毕或告一段落,CPU需要输出时,无需直接把计算结果送至低速输出设备,而是高速把结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术.b. 若这种输入输出操作在主机控制下进行则称之为联机输入输出方式.5. 试说明推动分时系统形成和发展的主要动力是什么?用户的需要.即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需求.6. 试说明实时任务的类型和实时系统的类型.a. 实时任务的类型按任务执行时是否呈现周期性来划分,分为周期性实时任务和非周期性实时任务;---根据对截止时间的要求来划分,分为硬实时任务和软实时任务;b. 通常把要同达行实时控制的系统统称为实时控制系统,把要求对信息进行实时处理的系统成为实时信息处理系统.7. 实现多道程序应解决哪些问题?a. 处理机管理问题;b. 内存管理问题;c. I/O设备管理问题;d. 文件管理问题;e. 作业管理问题.8. 试比较单道与多道批处理系统的特点及优缺点.a. 单道批处理系统是最早出现的一种OS,它具有自动性,顺序性和单道性的特点;---多道批处理系统则具有调度性,无序性和多道性的特点;b. 单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾中形成的,旨在提高系统资源利用率和系统吞吐量,但是仍然不能很好的利用系统资源;---多道批处理系统是对单道批处理系统的改进,其主要优点是资源利用率高,系统吞吐量大;缺点是平均周转时间长,无交互能力.9. 实现分时系统的关键问题是什么?应如何解决?a. 关键问题:及时接收,及时处理;b. 对于及时接收,只需在系统中设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输入的数据;---对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能使每个作业都运行一次.10 为什么要引入实时操作系统?更好地满足实时控制领域和实时信息处理领域的需要.11 OS具有哪几大特征?它的最基本特征是什么?a. 并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism).b. 其中最基本特征是并发和共享.12 内存管理有哪些主要功能?它们的主要任务是什么?a. 主要功能: 内存分配,内存保护,地址映射和内存扩充等.b. 内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要.---内存保护的主要任务是确保每道用户程序都在自己的内存空间中运行,互不干扰.---地址映射的主要任务是将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址. ---内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量.13 处理机管理具有哪些功能?它们的主要任务是什么?a. 进程控制,进程同步,进程通信和调度.b. 进程控制的主要任务是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换.---进程同步的主要任务是对诸进程的运行进行调节.---进程通信的任务是实现在相互合作进程之间的信息交换.---调度分为作业调度和进程调度.作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配必要的资源;而进程调度的任务是从进程的就绪队列中,按照一定的算法选出一新进程,把处理机分配给它,并为它设置运行现场,是进程投入运行.14 设备管理有哪些主要功能?其主要任务是什么?a. 主要功能: 缓冲管理,设备分配和设备处理,以及虚拟设备等.b. 主要任务: 完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备.15 文件管理有哪些主要功能?其主要任务是什么?a. 主要功能: 对文件存储空间的管理,目录管理,文件的读,写管理以及文件的共享和保护.b. 主要任务: 对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性.16 试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较.a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前者.b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的.c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高.17 是什么原因使操作系统具有异步性特征?a. 程序执行结果是不确定的,即程序是不可再现的.b. 每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,即不可预知性.18 试说明在MS-DOS 3.X以前的版本中,其局限性表现在哪几个方面?a. 在寻址范围上,DOS只有1MB,远远不能满足用户需要.b. DOS试单用户单任务操作系统,不支持多任务并发执行,与实际应用相矛盾.19 MS-DOS由哪几部分组成?每部分的主要功能是什么?略.20 为什么Microsoft在开发OS/2时,选中了80286芯片?设计OS/2的主要目标之一是既能充分发挥80286处理器的能力,又能运行在8086处理器环境下开发的程序.因为在80286内部提供了两种工作方式: 实方式和保护方式,使得Intel 80286处理器不仅提供了多任务并发执行的硬件支持,而且还能运行所有在8086下编写的程序。
51道JAV A基础编程练习题1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?2. 判断101-200之间有多少个素数,并输出所有素数。
3. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
4. 将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
5. 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
6. 输入两个正整数m和n,求其最大公约数和最小公倍数。
7. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
8. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
9. 一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000以内的所有完数。
10. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?11. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?12. 企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?13. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?14. 输入某年某月某日,判断这一天是这一年的第几天?(变形:输入某一天,输出一千天后是那一天)15. 输入三个整数x,y,z,请把这三个数由小到大输出。
习题1参考答案1.1解释以下术语(1)计算机软件:计算机软件是一系列按照特定结构组织的程序、数据(Data)和文档(Document)的集合。
(2)计算机程序:用计算机语言所编写的一系列指令的集合。
(3)数据:数据是程序加工和处理的对象。
(4)算法:算法是一组有穷的规则,它们规定了为解决某一特定问题而采取的一系列运算步骤。
(5)数据结构:数据结构是存在一种或多种特定关系的数据元素的集合,其外在表现为数据的组织形式。
(6)数据类型:数据类型是一个值的集合和定义在这个值集上的操作的总称。
(7)程序设计:程序设计是给出解决特定问题程序的方法和过程,是软件构造活动中的重要组成部分。
1.2 简答题(1)简述内存的组织结构形式?计算机系统把内存看作是由若干个连续的存储单元(Storage Location)组成的,每个存储单元的大小为一个字节(Byte)。
为了能唯一标志每个存储单元,在计算机系统中给每个存储单元指定一个唯一的编号,该编号被称为存储单元的地址(Address),计算机在读写内存时就是按照存储单元的地址进行的。
(2)为什么计算机系统是一个通用的计算系统?在计算机硬件相对固定不变的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。
(3)简述结构化程序设计的基本思想?在程序设计过程中,如果仅仅使用顺序、选择和循环这三种基本控制结构,并且使每个代码块只有一个入口和一个出口,则这样的程序设计方法被称为结构化程序设计(Structured Programming)。
(4)简述计算机语言的发展史?程序设计语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。
(5)简述利用计算机进行问题求解的过程?1、理解问题特征2、设想解决方案3、优化解决方案4、描述解决方案5、执行并分析解决方案(6)简述各个程序质量要素的含义?1、正确性(Correctness):正确性是指一个计算机程序的正确程度,即程序在预定的运行环境下能正确完成预期功能的程度。
C语言程序设计大赛题目和答案在C语言程序设计领域,程序设计大赛是一种常见的形式,它旨在考察参赛者的编程能力和解决问题的能力。
本文将介绍一些常见的C 语言程序设计大赛题目和对应的答案,帮助读者了解这些题目的难度和解题思路。
一、题目一:计算数列和题目描述:给定一个正整数n,计算1到n的所有整数的和。
解答思路:可以使用循环结构来解决该问题。
初始化一个累加器sum,然后通过循环依次将1到n的数累加到sum中,最终得到结果。
```c#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个正整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d的和为:%d\n", n, sum);return 0;}```二、题目二:判断素数题目描述:给定一个正整数n,判断其是否为素数(只能被1和自身整除的数)。
解答思路:可以使用循环结构和条件判断来解决该问题。
通过循环从2到n-1依次判断n是否能被这些数整除,如果能,则n不是素数;如果循环结束后仍然没有找到能整除的数,则n是素数。
```c#include <stdio.h>#include <stdbool.h>bool isPrime(int n) {if (n <= 1) {return false;}for (int i = 2; i < n; i++) {if (n % i == 0) {return false;}}return true;}int main() {int n;printf("请输入一个正整数n:");scanf("%d", &n);if (isPrime(n)) {printf("%d是素数\n", n);} else {printf("%d不是素数\n", n);}return 0;}```三、题目三:矩阵乘法题目描述:给定两个矩阵A和B,计算它们的乘积矩阵C。
第1章习题一、选择题1、A2、D3、C4、D5、B6、C7、C8、B9、B 10、A二、填空题1、一,函数体2、main(主),main(主)3、编译,目标4、.c,.obj,.exe5、缩进,无影响,/* */三、程序分析题1、*****************Very good!*****************2、a=12,b=5a=17,b=223、r= 5.50,s=95.033098四、编程题1.用printf()函数在屏幕上输出自己的班级、学号、姓名。
#include"stdio.h"void main(){printf("班级:BX1109\n");printf("学号:111003530901\n");printf("姓名:王孟荣\n");}2.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。
#include<stdio.h>void main(){int x,y,a,b,c;float d;printf("Please Input Two Integers:\n"); scanf("%d%d",&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf("a=%d\nb=%d\nc=%d\nd=%f\n",a,b,c,d); }第2章习题一、选择题1~5 BCDCD6~10 DBBCA二、填空题1.单精度浮点型、双精度浮点型、字符型2.03.x%10*10+x/104.5.55.5.7 206.sin(sqrt(x*x))/(a*b)7.,8.1111011 173 7B9.3 310.3三、程序分析题1.7,8,102.1,33. 5 F4.(int)i=12,12.505. 461579112四、编程题1.编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。
从问题到程序习题答案从问题到程序--习题答案从问题到程序——高级语言编程第2章练习1.指出以下哪些字符序列不是合法标识符:uCx+-3x1xf_U1_U4;eof_UUx_UU2_UU Iam 回答:非法标识符是:a$#24非法符号35; x+-非法符号#3x1不是以英文字母开头iam非法符号“空格”bg--1非法符号-2.手动计算以下表达式的值:1)125+01252)0xaf-0xfa3)24*3/5+64)36+-(5-23)/45)35*012+27/4/7*(12-4)答案:1)2102)-753)204)405)3503.在下面表达式的计算过程中,在什么地方将发生类型转换,各个转换是从什么类型转换到什么类型,表达式计算的结果是什么?1)3*(2l+4.5f)-012+442) 3*(内部)sqrt(34)-sin(6)*5+0x2af3)cos(2.5f+4)-6*27l+1526-2.4l答:1)53.52)703.397077在此题中十六进制数会在计算中(编译时)自动转成十进制数3)1362.593574.编写一个程序来计算问题3中每个表达式的值。
答复:#include#includeintmain(){printf(\printf(\printf(\system(\return0;}5.写程序计算下面各个表达式的值:1)234一千二百五十七+2)106524*133)23582七十九万六千三百六十七./.4)π2+17)lnln(101)2π+5)log52π?16)eπ+17)arctan(log())3e+π8)3.6813? (2.24?0.242)29)34512++/10) ln(2π13+e)6.已知铁的比重是7.86,金的比重是19.3。
写几个简单程序,分别计算出直径100毫米和150毫米的铁球与金球的重量。
答:#包括doublef1(doubler){doublev,w;v=4.0/3.0*r*r*r*3.1415926;w=7.86*v;returnw;}doublef2(doubler){doublev,w;v=4.0/3.0*r*r*r*3.1415926;w=19.3*v;returnw;}intmain(){Printf(\铁球的重量是:%F,金球的重量是:%F\\n\Printf(\铁球的重量是:%F,金球的重量是:%F\\n\system(\return0;}27编写一个程序计算5x+2x+2的两个根,并考虑以适当的方式输出它们。
第8章习题参考答案1. 编写程序,该程序在同一窗口中绘制函数在 []0,2π之间的正弦曲线和余弦曲线,步长为 /10π,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记。
参考答案:>> x=0:pi/10:2*pi;>> sinx = sin(x);>> cosx = cos(x);>> figure,plot(x,sinx,'LineWidth',4)>> hold on,plot(x,cosx,'r:','LineWidth',4)>> hold on,plot(x(find(cosx==sinx)),cosx(find(cosx==sinx)),'r*','LineWidth',4)2. 绘制下列图像(1)sin y x x =,010x π<<(2)三维曲线:226621z x xy y x y =++++-,1010x -<<,1010y -<< (3)双曲抛物面:22164x y z =-,1616x -<<,44y -<< 参考答案:(1)>> x = 0:pi/10:10*pi;>> plot(x,sin(x))(2)>> [X,Y] = meshgrid(-10::10);>> Z = X.^2 + 6*X*Y + Y.^2 + 6*X + 2*Y -1;>> plot3(X,Y,Z)(3)>> [X,Y] = meshgrid(-16::16,-4::4);>> Z = X.^2/16 - Y.^2/4;>> plot3(X,Y,Z)3. 绘制下列图像(1)绘制电脑磁盘使用情况的饼状图(2)生成 100 个从 0 到 10 之间的随机整数,绘制其直方图(3)生成 10个从 0 到 10 之间的随机整数,绘制其阶跃图参考答案:(1) 利用 pie 函数(2)>> hist(round(rand(100,1)*10))(3)>> X = round(rand(10,1)*10);>> stairs(X)4. 分别通过界面交互方式和函数方式在第 1 题生成的图形中添加注释,至少应包括:标题,文本注释,图例。
1. 创建符号表达式()sin f x x x =+。
参考答案:>> f = sym('sin(x)+x');2. 计算习题 1 中表达式在/6x π=处的值,并将结果设置为以下 5 种精度:小数点之后 1 位、2 位、5 位、10位和20位有效数字。
参考答案:>> digits(1)>> vpa(subs(f,x,pi/6))ans =1.>> digits(2)>> vpa(subs(f,x,pi/6))ans =1.0>> digits(5)>> vpa(subs(f,x,pi/6))ans =1.0236>> digits(10)>> vpa(subs(f,x,pi/6))ans =1.0235987763.设x 为符号变量,()421f x x x =++,()32458g x x x x =+++,试进行如下运算:(1)()()f x g x +(2)()()f x g x ⨯(3)求()g x 的反函数(4)求g 以()f x 为自变量的复合函数参考答案:>> f = sym('x^4 + x^2 + 1');>> g = sym('x^3 + 4*x^2 + 5*x + 8');(1)>> f+gans =x^4+5*x^2+9+x^3+5*x(2)>> f*gans =(x^4+x^2+1)*(x^3+4*x^2+5*x+8)(3)>> finverse(g)Warning: finverse(x^3 + 4*x^2 + 5*x + 8) is not unique.>> In sym.finverse at 43ans =1/6*(-656+108*x+12*(2988-984*x+81*x^2)^(1/2))^(1/3)+2/3/(-656+108*x+12*(2988-984*x+81*x^2)^(1/2))^(1/3)-4/3(4)>> syms x>> compose(g,f,x)ans =(x^4+x^2+1)^3+4*(x^4+x^2+1)^2+5*x^4+5*x^2+134.合并同类项(1)22325325x x x x -++--(3)2222322521x xy y xy x xy y -+--+-+(对x 和y )参考答案:(1)>> f = sym('3*x - 2*x^2 + 5 + 3*x^2 - 2*x -5');>> collect(f)ans =x+x^2(2)>> f = sym('2*x^2 - 3*x*y + y^2 - 2*x*y - 2*x^2 + 5*x*y - 2*y + 1'); >> collect(f)ans =y^2-2*y+15.因式分解(1)将 7798666 进行因数分解,分解为素数乘积的形式(2)8-2m +512(3)23223a (x-y)-4b (y-x)参考答案:(1)>> factor(sym('779866'))ans =(2)*(149)*(2617)(2)>> factor(sym('-2*m^8 + 512'))ans =-2*(m-2)*(m+2)*(m^2+4)*(m^4+16)(3)>> factor(sym('3*a^2*(x-y)^3 - 4*b^2*(y-x)^2')) ans =(x-y)^2*(3*a^2*x-4*b^2-3*a^2*y)6.绘制下列函数的图像(1)()2sin f x x x =+,[]0,2π (2)()3221f x x x =++,[]2,2- 参考答案:(1)>> f = sym('sin(x) + x^2');>> ezplot(f,[0,2*pi]);(2)>> f = sym('x^3 + 2*x^2 + 1');>> ezplot(f,[-2 2]);7.计算下列各式(1)0tan sin lim 1cos 2x x x x→-- (2)322sin y x x x =-+,求y '(3)()ln y xy x y =+,求/f x ∂∂,/f y ∂∂,2/f x y ∂∂∂ (4)ln(1)y t dx =+⎰,270ln(1)y t dx =+⎰参考答案:(1) >> limit(sym('(tan(x) - sin(x))/(1-cos(2*x))')) ans =(2)>> y = sym('x^3 - 2*x^2 + sin(x)');>> diff(y)ans =3*x^2-4*x+cos(x)(3)>> f = x*y*log(x+y);>> fx = diff(f,x)fx =y*log(x+y)+x*y/(x+y)>> fy = diff(f,y)fy =x*log(x+y)+x*y/(x+y)>> f2xy = diff(fx,y)f2xy =log(x+y)+y/(x+y)+x/(x+y)-x*y/(x+y)^2(4)>> syms t>> y = log(1+t);>> int(y)ans =log(1+t)*(1+t)-t-1>> int(y,0,27)ans =56*log(2)+28*log(7)-278.计算下列各式(1)13nn n∞=⎛⎫ ⎪⎝⎭∑(2)12sin3 nnn π∞=∑(3)sin x在 0 附近的Taylor 展开参考答案:(1)>> symsum(sym('(3/n)^n'),1,inf)ans =sum((3/n)^n,n = 1 .. Inf)(2)>> symsum(sym('2^n*sin(pi/(3^n))'),1,inf) ans =3^(1/2)(3)>> taylor(sym('sin(x)'))ans =x-1/6*x^3+1/120*x^59.求解线性方程组231321x y x y +=⎧⎨+=-⎩参考答案:>> [x,y] = solve(sym('2*x+3*y=1'),sym('3*x+2*y=-1')) x =-1y =110.对符号表达式22x y z xe --=,进行如下变换(1)关于x 的傅立叶变换(2)关于y 的拉普拉斯变换(3)分别关于x 和y 的 Z 变换参考答案:(1)>> syms x y>> z = x*exp(-(x^2+y^2));>> syms u v>> fourier(z,x,u)ans =-1/2*i*pi^(1/2)*u*exp(-y^2-1/4*u^2)(2)>> laplace(z,y,v)ans =1/2*x*exp(-x^2)*pi^(1/2)*exp(1/4*v^2)*erfc(1/2*v)(3)>> ztrans(z,x,u)ans =-u*diff(ztrans(exp(-x^2-y^2),x,u),u)>> ztrans(z,y,v)ans =x*ztrans(exp(-x^2-y^2),y,v)11.绘制函数()()()221exp 2f x x y π=-+在33x -<<,33y -<<上的表面图 参考答案:>> syms x y>> z = 1/(2*pi)*exp(-(x^2+y^2)); >> ezsurf(x,y,z,[-3,3,-3,3]);。
从问题到程序—高级语言程序设计第二章练习1. 指出下面的哪些字符序列不是合法的标识符:_abc x+- 3x1 Xf_1__4 Eoof___x__x__2 ____ I am答:不合法的标示符有:a$#24非法符号#x+- 非法符号#3x1 不是以英文字母开头I am非法符号“空格”bg--1非法符号-2. 手工计算下列表达式的值:1)125 + 0125 2)0XAF - 0XFA3)24 * 3 / 5 + 6 4)36 + - (5 - 23)/ 45)35 * 012 + 27 / 4 / 7 * (12 - 4)答:1)210 2)-75 3)20 4)40 5)3503. 在下面表达式的计算过程中,在什么地方将发生类型转换,各个转换是从什么类型转换到什么类型,表达式计算的结果是什么?1)3 * (2L + 4.5f) - 012 + 442)3 * (int)sqrt(34) - sin(6) * 5 + 0x2AF3)cos(2.5f + 4) - 6 *27L + 1526 - 2.4L答:1)2)在此题中十六进制数会在计算中(编译时)自动转成十进制数3)4. 写程序计算第3 题中各个表达式的值。
答:#include<>#include<>int main(){printf("%f\n",3 * (2L + 4.5f) - 012 + 44);printf("%f\n",3 * (int)sqrt(34) - sin(6) * 5 + 0x2AF);printf("%f\n",cos(2.5f + 4) - 6 *27L + 1526 - ;system("pause");return 0;}5. 写程序计算下面各个表达式的值:1) 2 341 257.+ 2)106524*133)23 5827 96 3 67.. / . 4)π2 +1 7)ln ln(10 1) 2π+5)log5 2π−1 6)e π+1 7)arctan(log ( )) 3 e + π8)13−−9)1 23 4 5 + + / 10)ln(2π13+ e )6. 已知铁的比重是,金的比重是。
写几个简单程序,分别计算出直径100 毫米和150 毫米的铁球与金球的重量。
答:#include<>double f1(double r){double v,w;v=*r*r*r*;w=*v;return w;}double f2(double r){double v,w;v=*r*r*r*;w=*v;return w;}int main(){printf("铁球的重量为: %f,金球的重量为: %f\n",f12),f2);printf("铁球的重量为: %f,金球的重量为: %f\n",f12),f2);system("pause");return 0;}7. 写程序计算5x2+ 2x + 6 的两个根,考虑用合适的方式输出。
(提示:对这个具体问题,可以先人工计算出判别式b2 −4ac 的值,以此作为已知信息,就可以写出程序了。
)答:#include <>#include <>void f(double a,double b,double c){double temp=b*b-4*a*c;if(temp>0)printf("方程的根为:%f,%f",(-b+sqrt(temp))/2/a,(-b-sqrt(temp))/2/a);else if(temp==0)printf("方程有两个相同的根为:%f",-b/2/a);elseprintf("方程无解!");}int main(){f(5,2,6); 在计算机上试验本章正文中的一些程序。
对它们做一些修改,观察程序加工和运行的情况,并对程序的行为做出解释。
9. 在一个能正确工作工作的输出整数结果的程序里,将printf 的相应转换描述改为%f或者%ld,看看会出现什么问题。
在一个能正确工作工作的输出双精度结果的程序里,1、将printf 的相应转换描述改为%d 或者%ld,看看会出现什么问题。
第三章练习1. 下面的字符序列中哪些不是合法的变量名:-abc __aa forIBM/PC tihsWhile r24_s25 __a__b a"bc _345答:-abc for to be IBM/PC ms-c #micro m%ust While a"bc2. 假设整型变量a 的值是1,b 的值是2,c 的值是3,在这种情况下分别执行下面各个语句,写出执行对应语句后整型变量u 的值。
1)u = a ? b : c;2)u = (a = 2) ? b + a : c + a;答:1)u=2 2)u=43. 假设整型变量a 的值是1,b 的值是2,c 的值是0,写出下面各个表达式的值。
1)a && !((b || c) && !a)2)!(a && b) || c ? a || b : a && b && c3)!(a + b < c) && b <= c * a – b答:1)1 2)0 3)04. 下面程序在执行时,哪些地方将发生类型转换?程序打印的值是什么?int f (int n, float m) {return (m + n) / 4;int main () { float y = 3;printf("%d\n", f(y, y + 1)); return 0; }答:#include <> int f(int n,float m) {return (m+n) /4; }int main () { float y=3;printf("%d\n", f (y,y+1)); system("pause"); return 0; }5. 在计算机上试验本章正文中的一些程序。
对它们做一些修改,观察程序加工和运行的情 况,并对程序的行为做出解释。
答案:略6. 定义求圆球的体积、求圆球的表面积、求圆柱体的体积、求圆柱体的表面积的函数。
1:表达式y+1求值:参与+的对象有int:1和float:y,int 转换为float 2:参数1传递:形式参数为int,实际参数为float,float 转换为int3:加操作:参与+的对象有int:n 和float:m,int 型的n 转换为float4:除操作:参与/的对象有int 型的4和float 型有(m+n),int 转换为float5:函数结果传递:(m+n)/4 结果的类型为float 型,而函数要求返回的值类型为int,因而发生float 型转换为int 型答:#include<>double f1(double r){double v;v=*r*r*r*;return v;}double f2(double r){double s;s=4*r*r*;return s;}double f3(double r,double h){double v;v=r*r**h;return v;}double f4(double r,double h){double s;s=2**r*h+2**r*r;return s;}int main(){printf("圆球的体积为%f\n",f1);printf("圆球的面积为%f\n",f2);printf("圆柱体的体积为%lf\n",f3,);printf("圆柱体的面积为%lf\n",f4,);system("pause");return 0;}7. 1)不用函数,直接写一个主程序计算并输出直径为100 毫米和150 毫米的金、银、铜、铁、锡球的重量(以kg 为单位输出)。
2)重新完成上面程序,先定义一个带有两个参数的函数,它能求出直径为x 的比重为y 的圆球的重量,而后在主程序里调用这个函数完成所需工作。
将这样得到的解与不用函数的解比较,比较它们的长度、容易出错的程度。
假设现在要求修改所用圆周率的精度,考虑用两种方式写程序的修改难度。
3)请写程序,求出边长为100 毫米和150 毫米的金、银、铜、铁、锡立方体的重量。
你可以利用前面的程序吗?是否很容易修改前面程序,完成这一计算?比较不用函数的解法和使用函数的解法在易修改和重复使用方面的效用。
8. 定义函数:double tmax(double, double, double),它返回三个参数中最大的一个。
写一个主函数试验各种参数情况。
答:#include<>double tmax(double x,double y,double z){if(x>y)return x>z?x:z;elsereturn y>z?y:z;}int main(){printf("最大的一个为:%f",tmax(8,3,2));printf("最大的一个为:%f",tmax(8,13,2));printf("最大的一个为:%f",tmax(8,3,22));system("pause");return 0;}9. 写函数,它以两个电阻的值作为参数,求出并联的电阻值。
答:并联电阻值的计算公式为:R1*R2/(R1+R2)10. 如果四边形四个边的长度分别为a、b、c、d ,一对对角之和为2α,则其面积为:S = (s −a)(s −b)(s −c)(s −d ) −abcd cos2α其中s =(a + b + c + d)/2。
定义一个函数计算任意四边形的面积。
设有一个四边形,其四条边边长分别为3、4、5、5,一对对角之和为145o ,写程序计算它的面积。
11. 修改已知四边长求四边形面积的函数,增加对各种参数错误情况的检查和处理(如返回值0),用各种实例数据检查你的函数否检查出所有可能的错误情况。
12. 分析本章正文中给出的求二次方程根的函数,看它缺乏对哪些特殊情况的处理。
补充这些处理,在需要时输出适当的信息,使之成为一个更完整的函数。