第1题
编程实现一个猜数字游戏,使用Random类产生一个1~100的随机整数,使用弹出对话框提示用户输入数字,使用信息框对用户猜数字的结果进行提示(猜对、偏大、偏小),用户有8次机会。根据下面的代码提示分析问题,先画出实现猜数字的程序流程图,然后将下面的程序代码补充完整,编辑运行程序查看运行结果。 提交补充的代码,标明标号;提交绘制的流程图。 import java.util.Random; import javax.swing.JOptionPane; public class GuessNumber { public static void main(String[] args) { int start = JOptionPane.showConfirmDialog(null,"猜数字,游戏开始?","游戏开始", JOptionPane.YES_NO_OPTION); if( ① ){ //若用户单击“确定”按钮,开始游戏 ② //产生一个1~100的随机整数 String inputValue; //保存用户输入的字符串 int inputNum; //保存字符串转换成的整数 int i = 1; //循环变量:记录猜数字的次数 while( ③ ){ //用户最多8次猜数字的机会 inputValue = ④ ("请输入一个0~100的整数\n共8次机会,这是第" + i + "次"); //生成一个信息输入对话框,并接收用户输入的一个整数保存在变量inputValue中 inputNum = Integer.parseInt(inputValue); //将用户输入的字符串转换成整数 if( ⑤ ){ ⑥ //使用消息对话框提示"恭喜您,猜对啦!" break; //如果猜对,退出循环游戏结束 }else if( ⑦ ){ ⑧ //使用消息对话框提示"您猜的数字偏大!" }else{ ⑨ //使用消息对话框提示"您猜的数字偏小!" } i++; } if(i >8){ //若由于满8次未猜中而结束循环,则进行提示 ⑩ //使用消息对话框提示"8次机会用尽,游戏结束!" } }else //否则退出游戏 JOptionPane.showMessageDialog(null,"退出游戏", "猜数字游戏",JOptionPane.INFORMATION_MESSAGE); } }
第2题
(1)假如系统中的离散连续转换电路产生的脉冲是理想冲激序列,试证明该系统实现了一个延时器电路,其输出比输入延时了
(2)假设输入信号为求输出信号。
(3)假如其中的离散-连续转换电路产生的脉冲为方波脉冲,宽度为10us,求此时的输出信号。
第3题
第4题
[说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。
整数a和b(a>b)的组合数为:,其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。
[函数]
define NAXN 100
int gcd(int a,int b)//求两个整数a和b的最大公因子
{
if(a<b){
intC=a;a=b;b=c;
}
for(inti=b;i>=2;i--){
if( (1) )return i;
}
return 1;
void format(int *a)//将长整数数组归整
{
int i;
for(i=1;i<a[0]||a[i]>=10;i++){
if(i>=a[0]) (2);
a[i+1]+=a[i]/10;
a[i]=a[i]%10;
}
if(i>a[0]) (3);
}
void combine(int a,int b,int *C)
{
int i,J,k,x;
int d[MAXN],u[MAXN];
k=0;
for(i=a;i>=a-b+1;i--)u[++k]=i;
u[0]=b;
for(i=1;i<=b;i++)d[i]=i;
for(i=1;i<=u[0];i++){//从u中各元素去掉d中整数的因子
for(j=1;j<=b;j++){
x=gcd(u[i],d[j]);//计算最大公约数
u[i]/=X;
d[j]/=x;
}
(4);C[1]=1;//长整数c初始化
for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中
if(u[i]!=1){
for(j=1;j<=c[0];j++){
C[j]=(5);
}
format(C);//将长整数c归整
}
}
}
(1)
第5题
编程产生输入三个0~100之间(包含0和100)的随机数a、b和c,要求实现 (1)至少使用两种不同的方法,将三个数字按从小到大的顺序排序。 (2)计算输出三个数的和与平均值。 输出效果如下(其中a、b和c的值随机生成): 原始值: a=97, b=89, c=99 (方法一)升序值: a=89, b=97, c=99 (方法二)升序值: a=89, b=97, c=99 三个数值的和=285 ,平均值= 95 提示: (1)可使用比值法或求最大最小值函数等多种方法 (2)随机数生成可以使用 import random random.randint(0,100) 来生成0~100之间的随机整数。
第6题
算法设计:对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值.
数据输入:文件input.txt提供输入数据.文件的第1行是数字三角形的行数n(1≤n≤100).接下来的n行是数字三角形各行中的数字.所有数字在0~99之间.
结果输出:将计算结果输出到文件output.txt.文件第1行中的数是计算出的最大值.
第7题
给你一个数列,但其中缺少一项,要求你仔细观察数列的排列规律,然后从四个供选择的选项中选择你认为最合理的一项,来填补空缺项,使之符合原数列的排列规律。
请开始答题:
41 . 2 , 12, 36, 80, ( )
A .100 B .125 C .150 D .175
第8题
给你一个数列,但其中缺少一项,要求你仔细观察数列的排列规律,然后从四个供选择的选项中选择你认为最合理的一项,来填补空缺项,使之符合原数列的排列规律。
请开始答题:
41 . 2 , 12, 36, 80, ( )
A .100 B .125 C .150 D .175
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!