day02练习

Day02

Key Point

变量

运算符

计算机常量

进制及其转换

数据类型及其转换

算术运算符

赋值运算符

关系运算符

逻辑运算符

位运算符

三元运算符

一、 选择题

  1. 下列关于计算机常量的说法正确的是:
    1. "2"是整数常量
    2. 2.0是整数常量
    3. '2'是字符常量
    4. "2.0"是小数常量
    5. '2.0'是小数常量
  2. 3.15e2表示的数据是:
    1. 3.15×2  B. 3.15×2-2  C. 3.15×22  D. 3.15×10-2  E. 3.15×102
  3. 下列各项可以正确赋值的是:
    1. int i = 'a';  
    2. B. float f = -2;  
    3. C. byte b = 128;  
    4. D. double d = 100d; 
    5.  E. char c = 97;
  4. 运算符优先级别由高向低排序正确的是:
    1. ()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;
    2. ()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;
    3. ()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;
    4. ()!、关系运算符、赋值运算符、算术运算符、逻辑运算符;
    5. ()、逻辑运算符、关系运算符、!、算术运算符、赋值运算符
  5. 对于下列各项能够正确编译的是:
    1. byte b = 5; b = b + 1;(int不能变byte)  B. byte a = 3,b = 5; byte c = a + b;(同理)

C. byte b = 127; b ++;  D. byte b = 127; b += 3;

E. byte b = 5; b += 'a';(这些运算符都含有强制类型转换))

  1. 对于下列程序:

public class Test {     public static void main(String[] args){         int a = 3, b = 4, c = 5;         boolean d = a > b && c++ > 4;

        System.out.println(c + "," + d);

    }  

}

的运行结果是:

    1. 5,true  B. 5,false  C. 6,true  D. 6,false  E. 编译错误
  1. 对于int a = 3,b = 4;下列各项能够正确交换两个数的值的是:
    1. int c = a; a = b; b = c;  B. a += b; b = a - b; a -= b;

C. a ^= b; b ^= a; a ^= b;  D. int c = b; b = a; a = c;

E. int c = a + b; a = c - a; b = c -a;

  1. 对于代码:

public class Test {     public static void main(String[] args){

        System.out.println(1.0 / 0);

    }

}

的运行结果是:

    1. 0  B. Infinity  C. -Infinity  D. NaN  E. 运行时报错
  1. 对于代码:

public class Test {     public static void main(String[] args){         int i = 5;         int j = 2 * i++ (10)+ 3 * ++i;(21)

        System.out.println(j);

    }

}

的运行结果是:

  1. 31  B. 32  C. 33  D. 34  E. 35
  2. 下列说法正确的是:
    1. 2 + 3 + "a"的结果是23a
    2. 'a' + 2 + 3的结果是a23
    3.  2 + 'a' + 3的结果是2a3 
    4.  2 + 'a'的结果是99 
    5.  "a" + true的结果是atrue 

二、 简答题

  1. 简述常量与变量的区别
  2. 有如下代码:

int a = 5;

int b = (a++) + (--a) +(++a);

问执行完之后, b 的结果是多少?(5+5+6=16)

  1. 一家商场在举行打折促销,所有商品都进行8 折优惠。一位程序员把这个逻辑写成:

short price = ...; // 先计算出原价

short realPrice = price * 8 / 10; //再计算出打折之后的价格

问:这段代码是否正确?如果正确,假设price 100,那计算之后的realPrice值为多少?如果不正确,应该怎么改正?

应该定义为double类型,因为价格不可能全是正数

  1. 请说明>>>>>之间的区别。
  2. 分别计算7-9的原码、反码、 补码。
  3. 有如下代码:

a = (a>b)?a:b;

请问这段代码完成什么功能。

  1. 请最有效率的计算2*8的值。2<<3
  2. 对于int i = 3, j = 5;请写出能够交换ij的值的方式并比较各种方式的优劣性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是将之前day2练习生成的音乐添加混响效果并进行实时处理和显示的代码: ```matlab clc; clear; close all; % 生成音乐 fs = 44100; t = 0:1/fs:5; f1 = 440; f2 = 880; f3 = 1320; y = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t); % 创建音频播放器和图形窗口 sigPlayer = audioplayer(y, fs); myFigure = figure('Name', '实时混响'); waveAxes = subplot(2, 1, 1); axis(waveAxes, [0 numel(y)/fs -3 3]); waveAxes.NextPlot = 'replacechildren'; fftAxes = subplot(2, 1, 2); axis(fftAxes, [0 fs/2 0 100]); fftAxes.NextPlot = 'replacechildren'; % 设置音频播放器的参数 windLength = fs / 10; sigPlayer.TimerPeriod = windLength / fs; sigPlayer.TimerFcn = {@realtimeReverb, waveAxes, fftAxes, y, fs}; % 添加混响效果 reverbObject = reverberator('PreDelay', 0.5, 'WetDryMix', 0.5); % 创建实时波形和频谱图对象 realtimeWavePlot = animatedline(waveAxes); realtimeFFTPlot = bar(fftAxes, [], []); % 播放音乐 play(sigPlayer); function realtimeReverb(plr, ~, axwave, axfft, sigData, fs) persistent reverbObject; persistent ind; persistent indbase; if isempty(reverbObject) reverbObject = reverberator('PreDelay', 0.5, 'WetDryMix', 0.5); end if isempty(indbase) indbase = 1:numel(sigData); end windLength = plr.TimerPeriod * fs; ind = fix((plr.CurrentSample) / windLength) * windLength + indbase; segData = sigData(ind); % 混响处理 reverbAudio = reverb(reverbObject, segData); ydata_fft = fft(reverbAudio); ydata_abs = abs(ydata_fft(1:numel(segData)/2)); % 更新实时波形和频谱图的数据 addpoints(realtimeWavePlot, (1:numel(segData))/fs, segData); set(realtimeFFTPlot, 'ydata', log(ydata_abs)); drawnow; end ``` 这段代码首先生成了一个简单的音乐信号 `y`,然后创建了一个音频播放器对象 `sigPlayer` 和一个图形窗口 `myFigure`。在图形窗口中,创建了两个子图 `waveAxes` 和 `fftAxes`,用于显示实时波形图和频谱图。 接下来,设置音频播放器的参数,包括定时器周期和定时器函数。定时器函数 `realtimeReverb` 用于实时处理音频数据并更新图形。在定时器函数中,使用 `reverberator` 函数创建了混响效果对象 `reverbObject`,并对音频数据进行混响处理。然后,通过 FFT 算法计算音频数据的频谱,并将数据更新到实时波形图和频谱图中。 最后,通过调用 `play` 函数开始播放音乐,并启动定时器以实现实时处理和显示。 请注意,在运行此代码之前,您需要确保已经安装了 Matlab,并具有 `reverberator` 函数和 Day 2 练习生成的音乐信号 `y`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值