大计基习题
浮光过客
这个作者很懒,什么都没留下…
展开
-
迪杰斯特拉算法(dijkstra)(我随便抄抄,别当真。懒得一批)
算法原理:1.首先,引入一个辅助向量D,它的每个分量 D 表示当前所找到的从起始点 (即源点 )到其它每个顶点 的长度。例如,D[3] = 2表示从起始点到顶点3的路径相对最小长度为2。这里强调相对就是说在算法执行过程中D的值是在不断逼近最终结果但在过程中不一定就等于长度。 [1] 2.D的初始状态为:若从 到 有弧(即从 到 存在连接边),则D 为弧上的权值(即为从 到 的...转载 2018-05-31 19:13:49 · 1074 阅读 · 0 评论 -
用牛顿迭代法求方程。
用牛顿迭代法求方程:2*pow(x,3)-4*pow(x,2)+3*x-6=0在1.5附近的根。 假定初值为x[0], 则迭代公式为:x[n+1]=x[n]-f(x[n])/df(x[n]) 结束迭代过程的条件为: |f(x[n+1])|<1.e-9 与 |x[n+1]-x[n]|<1.e-9 同时成立。 程序运行结果如下:2注意: df(x[n])表示f(x)取导数后在x[n...原创 2018-04-20 20:09:46 · 4084 阅读 · 0 评论 -
编写程序求反正弦函数近似值
利用下列公式求反正弦函数近似值。 arcsin(x)=x+pow(x,3)/(2*3)+1*3*pow(x,5)/(2*4*5)+...., 其中 |x|<1 其中通项公式为: (2n)!*pow(x,2n+1)/(pow(2,2n)*pow(n!,2)*(2n+1)) 结束条件可用|u|< 1.0e-7,其中u为通项。要点分析:本题关键是找到通项的递推公式, 由前一项计算后一项。 程...原创 2018-04-20 19:07:08 · 4594 阅读 · 0 评论 -
编程求斐波那契数列的第n项和前n项之和。
编写程序求斐波那契数列的第n项和前n项之和。斐波那契数列是形如 0, 1, 1, 2, 3, 5, 8, 13, ...其通项为:F[0]=0 F[1]=1 F[n]=F[n-1]+F[n-2]程序运行结果如下: 输入:6输出:8 20分析:用递推公式,可以轻松地求出裴波那切数列的第n项,在计算的同时进行求和便可完成操作任务(运用递推方法的时候,初值很重要,不要忘记赋值)f[0]=0...原创 2018-04-20 17:20:21 · 27482 阅读 · 7 评论 -
编程计算1!+2!+3!+…+N!
编程计算1!+2!+3!+…+N! 。N由用户输入。 程序运行结果如下: 输入:10输出:4037913分析:计算阶乘之和,说明一下我的方法,用变量t做计数器,计算到i时(还未进行计算),此时t的值是(i-1)!,进行计算后,t就变成了i!,也就是说不需要双层for循环每次计算一个阶乘的……(顺便吐槽一下某个用双层for循环的朋友……我给你个1000W的数据规模……1s你解决不了问题的……)for...原创 2018-04-20 17:14:50 · 48571 阅读 · 0 评论 -
以后只放核心代码好不好……
收到某朋友的吐槽……放全部代码太过分了……有违初衷所以以后只放核心代码,讲解会稍微多一点儿。(这些题又用不到算法,很难让讲解多起来啊……)大家有意见的话可以评论留言……...原创 2018-04-20 17:11:09 · 199 阅读 · 0 评论 -
求水仙花数
如果一个三位数的个位数、十位数和百位数的立方和等于该数自身,则称该数为水仙花数。编一程序求出所有的水仙花数。 例如153就是一个水仙花数:153=1^3 +5^3 +3^3程序运行结果如下: 输出(153后的***为其它的水仙花数,要求输出所有的):153 ***…***分析:用循环体结构枚举153-1000的所有数字(100和153是一样的效果),然后分别尝试是否构成水仙花数 for (...原创 2018-04-20 17:08:57 · 1183 阅读 · 0 评论 -
简单的交换排序法(选择排序)。
编写一个用于对整型数组(长度<10)进行排序的程序,排序方法使用简单的交换排序法 程序运行结果如下(输入的第一个数为的数组中元素的个数): 输入:6 45 12 345 56 7 89输出:7 12 45 56 89 345分析:冒泡排序是啥?冒泡排序就是把每一位都排一遍,拿到一位,找到剩余队列中的最值,然后把它与该位置上的元素兑换;for (int i=0;i<n;i++) for...原创 2018-05-08 23:32:03 · 2284 阅读 · 0 评论 -
编写程序计算两个矩阵之和。
编程计算下列两个3*4矩阵之和。第一个矩阵(A)内容为:1 2 3 45 6 7 89 10 11 12 第二个矩阵(B)内容为: 1 4 7 10 2 5 8 11 3 6 9 12 程序运行结果如下: 2 6 10 14 7 11 15 19 12 16 20 24 注意:数字间的间隔为空格字符。分析:矩阵的加法计算,按照公司Cij=Aij+bij,用双层for循环嵌套的结构...原创 2018-05-08 23:16:43 · 23190 阅读 · 0 评论 -
计算字符串长度。
编写一个用来计算字符串长度的函数mystrlen(),并用主函数验证。函数原型为:int mystrlen(char string[]) 算法:循环读取字符统计字符个数,直到读到结束标志’\0’为止。 程序运行结果如下: 输入:Abcdefg输出:7分析:统计字符串长度,模拟lenth函数的运行方式,按位读入,然后按位判断是否为空,非空计数器++; char a[1000]; int n,...原创 2018-05-08 23:03:37 · 841 阅读 · 0 评论 -
求圆周率的近似值。
编写程序,求圆周率的近似值。圆周率的近似值=4*(1-1/3+1/5-1/7+1/9- …),精度要求:计算到括号内的通项小于k为止, k由用户输入。 程序运行结果如下: 输入:1.0e-4输出:3.14139跟求欧拉函数差不多,就是利用for循环,对n、t进行处理#include<iostream>#include<cmath>using namespace std;...原创 2018-04-19 22:06:52 · 3671 阅读 · 0 评论 -
利用迭代公式求平方根。
利用迭代公式求平方根。由用户输入数据a,而后计算其平方根。 算法描述: 设x=sqrt(a), 设初值为x[0],则迭代公式为x[n+1]=(x[n]+a/x[n])/2 由此公式产生序列x[1],x[2],x[3],...将逐渐接近a的平方根。 设迭代结束条件为: fabs((x[n+1]-x[n])/x[n+1]) <1.0e-10 程序运行结果如下: 输入:2输出:1.41...原创 2018-04-19 22:02:32 · 9575 阅读 · 7 评论 -
编程寻找用户输入的几个整数中的最小值。
编写一个程序,寻找用户输入的几个整数中的最小值。并假定用户输入的第一个数值指定后面要输入的数值个数。 程序运行结果如下: 输入:5 20 15 300 9 700输出:9送分题??? cin>>n; cin>>min; for (int i=2;i<=n;i++){ cin>>x; if (x<min) min=x; } cout&l...原创 2018-04-20 20:15:08 · 2845 阅读 · 0 评论 -
有一分数序列,求其前n项之和。
有一分数序列如下:2/1, 3/2, 5/3, 8/5, 13/8, 21/13, ....即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和,求其前n项之和。 程序运行结果如下: 输入:6输出:10.0071 分析:设置sum变量储存运算结果,然后通过循环结构不断改变x,y的值,当然也可以用数组储存每一个数据,然后最后累加for (int i=1;i<=n;i++){ su...原创 2018-04-20 22:12:07 · 2880 阅读 · 0 评论 -
编写一个用于字符串比较的函数
编写一个用于字符串比较的函数mystrcmp。 程序的运行结果如下所示: 输入:word work输出:word<work这是一个神奇的题……题目显示不完全……然后……按位比较ASCII码……就做完了#include <stdio.h>int mystrcmp(char s1[], char s2[]){ int i = 0; while(s1[i]==s2[...原创 2018-05-19 13:15:01 · 7443 阅读 · 2 评论 -
交换两个变量的值
利用局部变量能否交换两个变量的值?输入两个数,尝试使用局部变量将这两个数交换,分别输出交换前和交换后两个变量的值做比较。 程序运行结果如下: 输入:5 6输出:5 6 5 6尝试局部变量……自己尝试一下B^#include<iostream>using namespace std;void change(int a,int b){ int t=a; a=b; b=t;}int...原创 2018-05-19 13:08:46 · 463 阅读 · 0 评论 -
替换加密(恺撒加密法)
恺撒加密法加密规则是:将原来的小写字母用字母表中其后面的第3个字母的大写形式来替换,大写字母按同样规则用小写字母替换, 对于字母表中最后的三个字母,可将字母表看成是首未衔接的。如字母c就用F来替换,字母y用B来替换,而字母Z用c代替。 编程实现以下功能:输入一个字符串,将其加密后输出。 程序运行结果如下: 输入:AMDxyzXYZ输出:dpgABCabc怎么做……我觉得……题目说的很明确……尽量避...原创 2018-05-19 13:02:56 · 7256 阅读 · 0 评论 -
将字符串顺序逆转。
输入10个字符到一维字符数组s中,将字符串置逆。即s[0]与s[9]互换,s[1]与[8]互换,...,s[4]与s[5]互换,输出置逆后的数组s。 要点分析:掌握字符数组的存储结构。用户输入的字符存储到定义好的字符数组后,根据字符数组的存储结构和下标之间的关系将对应元素进行掉换即可。 程序运行结果如下: 输入:abcde12345输出:54321edcba读入……然后反序输出?这大概……解决了…...原创 2018-05-19 12:57:41 · 1196 阅读 · 0 评论 -
计算并输出学生平均成绩。
使用数组编写一个统计学生课程平均分的程序:输入6个学生的学号和3门课程的成绩(整数形式),统计每个学生3门课程的平均分(整数形式),最后输出统计结果。 程序运行结果如下:输入: 10221001 89 88 78 10221002 88 78 79 10221003 90 78 77 10221004 87 67 81 10221005 89 68 79 10221006 87 88 90 输出:...原创 2018-05-19 12:47:17 · 6335 阅读 · 0 评论 -
矩阵转置。
编程将下列矩阵转置并输出。 4 6 8 9 2 7 4 5 3 8 16 15 1 5 7 11程序运行结果如下:4 2 3 1 6 7 8 5 8 4 ...原创 2018-05-19 12:43:04 · 1167 阅读 · 0 评论 -
字符串连接。
已知有两个字符串,第一个是abcdefg,第二个字串由用户输入,请实现两个字符串的连接并输出结果。 程序运行结果如下: 输入:123x输出:abcdefg123x就是……简单地……随便……把两个数组按顺序输出一下吧…… char a[255],b[7]={'a','b','c','d','e','f','g'}; gets(a); for (int i=0;i<7;i++)...原创 2018-05-19 12:39:38 · 888 阅读 · 0 评论 -
将字符串中的小写字母转换为相应的大写字母
编程将用户输入的一个字符串之中的所有小写字母转换为相应的大写字母。 程序运行结果如下: 输入:asdfg输出:ASDFG通过ASCII 码的转换就可以解决这个问题。。。 int i=0; while (a[i]){ if (a[i]>='a'&&a[i]<='z'){ a[i]=a[i]-'a'+'A'; ...原创 2018-05-19 12:37:29 · 19420 阅读 · 0 评论 -
将N阶矩阵M置成单位阵
将N阶矩阵M置成单位阵。 程序运行结果如下: 输入:5输出:1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1注意:同一行数字间是一个空格分析:本题考查数组赋值,单位矩阵对角线的数字为1,其他都为0,所以只需要把a[i][i]赋值为1就好#include<iostream>using namespace std;int main(){...原创 2018-04-25 19:03:33 · 1453 阅读 · 0 评论 -
找出该数组中的最大数。
给一维数组输入7个整数,找出该数组中的最大数。 程序运行结果如下: 输入:234 12 34 56 34 23 89输出:234送分题+1#include<iostream>using namespace std;int main(){ int n,x,max; cin>>max; for (int i=2;i<=7;i++){ cin>>x...原创 2018-04-20 22:24:15 · 970 阅读 · 0 评论 -
求a+aa+aaa+aaaa+... ...+aa...a(n个)。
求a+aa+aaa+aaaa+... ...+aa...a(n个),其中a为1~9之间的整数。 例如:当a = 1, n = 3时,求1+11+111之和; 当a = 5, n =7时,求5+55+555+5555+55555+555555+5555555之和。 程序运行结果如下: 输入:2 3输出:246分析:用双层for循环结构,外层循环确定这是第几个数字(即第i个数字由i个a组成)内层循环进...原创 2018-04-20 22:21:10 · 9577 阅读 · 0 评论 -
使用do-while结构计算常数e的值。
使用do-while结构计算常数e的值。 e = 1+1/1!+1/2!+1/3!+…+1/n!+… , 当通项1/n! 小于一个很小的正数k(如10e-7)时停止计算。正数k由用户输入。 程序的运行结果如下所示: 输入:10e-7输出:2.71828分析:把for循环改成do-while循环就行了--建议新手自己联系一下do-while结构,体会一下逻辑关系(我懒,就不改了--)#include...原创 2018-04-19 21:58:50 · 3719 阅读 · 0 评论 -
计算欧拉常数e
计算e = 1+1/1!+1/2!+1/3!+…+1/n!+… , 当通项1/n! 小于一个很小的正数k(如10e-7)时停止计算。正数k由用户输入。 程序的运行结果如下所示: 输入:10e-7输出:2.71828分析:简单阶乘--不想分析。#include "stdio.h"int main(){ int i; double t,e,k; scanf("%lf",&a...原创 2018-04-19 21:56:08 · 5618 阅读 · 0 评论 -
带日期的生日卡程序
修改例1-4的生日卡程序,使其能够输入和显示日期。 程序运行结果如下: 输入:zhang wang 2010.9.1输出:====================================My dear zhang, Happy birthday to you! yours, wang 2010.9.1 ==========...原创 2018-03-30 22:19:46 · 492 阅读 · 0 评论 -
显示生日卡
显示生日卡。该程序首先要求输入收信人和发信人的姓名(一个人的姓名之间无空格),然后在屏幕上显示出完整的生日卡。 程序运行结果如下: 输入:zhang wang输出:====================================My dear zhang, Happy birthday to you! yours, wang =========...原创 2018-03-30 22:13:28 · 313 阅读 · 0 评论 -
乘法计算器
编写一个乘法计算器程序。用户输入两个数,计算它们的乘积并显示。 程序运行结果如下: 输入: 3.4 72 输出: 244.8分析:这是个算乘法的题,数据范围是没有了,但是毕竟大计基(基础),所以目测估计数据范围不大,放心不会乘爆的#include<iostream>using namespace std;int main(){ double a,b,c; cin...原创 2018-03-30 22:09:55 · 3767 阅读 · 0 评论 -
将百分制成绩转化为5分制成绩。
编写一个程序,将百分制的学生成绩转换为优秀(5)、良好(4)、中等(3)、及格(2)和不及格(1)的5级制成绩。标准为:优秀: 100-90分;良好: 80-89分;中等: 70-79分;及格: 60-69分; 不及格: 60分以下。 程序的运行结果如下所示: 输入:83输出:4想让我用case是吧,我就不用,用case是不可能的,这辈子都不可能用case的,用switch一定会写错,还不如用i...原创 2018-04-07 20:03:00 · 34889 阅读 · 0 评论 -
字符加密
编写一个程序,将字符串“Love”译成密码,译码方法采用替换加密法,其加密规则是:将原来的字母用字母表中其后面的第N个字母的来替换,N由用户输入。如果N=3,字母c就用f来替换,字母y用b来替换。 提示: (1)分别用4个字符变量来存储'L'、'o'、'v'和'e'。 (2)加密公式为: 如果x为大写字母,密文y为 y=((x-'A')+N)%26+'A';如果x为小写字母,密文y为 y=((...原创 2018-04-07 19:56:24 · 4329 阅读 · 1 评论 -
求平均值并四舍五入
从键盘输入任意四个整数,计算其平均值并显示。再对平均值四舍五入并显示。 程序运行结果如下: 输入:1 2 3 4输出:2.5 3沿用上一题的round()函数,可以轻松解决这个问题#include<iostream>#include<cmath>using namespace std;double round(double r) { return (r...原创 2018-04-07 19:53:53 · 3726 阅读 · 0 评论 -
数的和与四舍五入
编写一个程序,要求完成以下要求:1) 提示用户输入任意的4个小数;2) 将这四个小数相加,并显示其结果;3) 将结果按四舍五入方法转换成整数并显示。 程序运行结果如下: 输入:3.2 2.3 4.8 8.4输出:18.7 19分析,这里我第一次在大计基的习题里定义子程序,子程序的存在我认为是为了方便多次调用(有道题的答案是增强可读性--)然后对于子程序中用到的三个函数(1) Floor()会...原创 2018-04-07 19:52:44 · 431 阅读 · 0 评论 -
计算公式的值
输入两个角度值x,y,计算如下式子的值。z=sin(|x|+|y|)/SQRT(|cos(x+y)|)其中,SQRT表示开方。如果|cos(x+y)|小于1.0E-5,输出“divided by zero!”。 程序能连续接收两组输入,给出两组结果。 提示:两组输入可用下列循环实现:for(int i=0;i<2;i++) {……}程序运行结果如下: 输入:3 6 1.5707963 0输出...原创 2018-04-07 19:47:22 · 900 阅读 · 0 评论 -
计算万有引力
编写程序,计算两个星球之间的万有引力。 两个星球的质量m1,m2由用户从键盘输入,单位为kg(千克)。 两个星球的质量R由从用户从键盘输入,单位为m(米)。 万有引力衡量为G=6.67E-11( N.m.m/(kg.kg) 牛顿.米.米/(千克.千克)。 万有引力的计算公式为:F=G*m1*m2/R/R程序的运行结果如下所示: 输入(三个数据依次为:m1, m2和R):1.987E30 5.975...原创 2018-03-30 18:29:44 · 4643 阅读 · 2 评论 -
加法计算器程序
原题:编写程序,求用户从键盘输入的任意两个数的的和。 程序运行结果如下: 输入:45.8 54.7输出:100.5分析:这个题……加法运算嘛~读入,加法over~,小数的话用一下double定义变量~#include<iostream>using namespace std;int main(){ double a,b,t; cin>>a>>...原创 2018-03-30 18:02:55 · 2427 阅读 · 0 评论 -
Hello,world!
Hello World 中文意思是『你好,世界』。因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。 所以这可是最基础的一道程序哇~#include <cstdio>#include <iostream>using namespace std; i...原创 2018-03-30 18:00:09 · 384 阅读 · 0 评论 -
计算矩形面积
编写程序,计算矩形面积。面积计算要编写为 一个函数。 程序运行结果如下: 输入:3 5输出:15分析:计算矩形面积?其实就是乘法计算器吧……把乘法计算器代码复制粘贴一遍估计能A……但是多少尊敬一下……重新写一下……定义成整数吧……#include<iostream>using namespace std;int main(){ int a,b,ans; cin...原创 2018-03-30 22:21:52 · 5606 阅读 · 0 评论 -
计算定积分
使用梯形法计算定积分函数sin(x)在区间在指定区间上的定积分。计算时积分区间等分数为 1000。 程序运行结果如下: 输入:0 1输出:0.459698分析:我……数学不好……所以我们还是直接看程序吧……程序里面对变量进行强行解释#include<iostream>#include<math.h>using namespace std;int main(){ ...原创 2018-03-30 22:32:17 · 3407 阅读 · 1 评论