若有定义inti=6;则正确的赋值表达式是【】。A i++=2Bi+=i/3i*2=5Di=%6
时间: 2024-05-31 16:11:00 浏览: 150
正确的赋值表达式是 `i += i/3`,即将 `i` 除以 3 的商加到 `i` 上。其他选项都存在语法错误或逻辑错误。具体解释如下:
- A. `i++=2`:语法错误,`i++` 是后置自增运算符,其结果是值本身加 1,无法作为左值。
- B. `i+=i/3`:正确的赋值表达式,将 `i` 除以 3 的商加到 `i` 上。
- C. `i*2=5`:语法错误,`i*2` 是右值,无法作为左值。
- D. `i=%6`:逻辑错误,`%` 是取模运算符,其结果不一定小于等于 6,无法用于赋值。应该使用赋值取模运算符 `i %= 6`。
相关问题
intGetValue(int n) { inti=0,f=0; intj=10,g=20,h=30; while(i<n) { intk=i; switch(k) { case0:f=i+j;break;/*k=0*/ case1:f=g+h;break;/*k=1*/ case2:f=g–h;break;/*k=2*/ case3:f=i–j;break;/*k=3*/ default:f=i; } i++; } returnf; } void main() { int a=6; GetValue(a); }
这段代码有一些问题:
1. 函数名应该是 `int GetValue(int n)` 而不是 `intGetValue(int n)`。
2. 在 `main()` 函数中,调用的函数名与实际定义的函数名不一致,应该是 `GetValue(a)` 而不是 `intGetValue(a)`。
3. 函数中使用了未初始化的变量 `i`。
4. `switch` 中的 `k` 没有被定义,应该是 `switch (i % 4)` 来根据 `i` 的余数来判断。
5. 在第 3 个 `case` 中,使用了错误的减号符号 `g–h`,应该是 `g - h`。
下面是修正后的代码:
```
int GetValue(int n) {
int i = 0, f = 0;
int j = 10, g = 20, h = 30;
while (i < n) {
int k = i % 4;
switch (k) {
case 0:
f = i + j;
break;
case 1:
f = g + h;
break;
case 2:
f = g - h;
break;
case 3:
f = i - j;
break;
default:
f = i;
}
i++;
}
return f;
}
int main() {
int a = 6;
GetValue(a);
return 0;
}
```
3.设变量 i和i的定义如下,试分别计算下列表达式的值 int i= 1;double d= 1.0 (2) 46%9+4*4-2;(4)45+45* 50%i--;(5)45+45* 50%(--i);(6) 1.5* 3+(++d);(7)1.5 * 3+d+十;(8)i+=3/i+3 4.计算下列逻辑运算表达式的值 (x! =0)ll(x==0); 9.循环跳转语句 break的作用是什么?试给出下列程序的运行结果 inti=1000; while(true){ if( i<10){ break; } i=i-10; } System.out.println("The value of i is " + i); 10.循环跳转语句 continue 的作用是什么?试给出下列程序的运行结果 inti=1000; while(true){ if(i<10){ continue; } i= i-10; }
1. 计算下列表达式的值:
(2) 46%9+4*4-2 = 17
(4) 45+45*50%i--; = 45
(5) 45+45*50%(--i); = 90
(6) 1.5*3+(++d); = 7.5
(7) 1.5*3+d+十; = 15.5
(8) i+=3/i+3 = 2
2. 计算逻辑运算表达式的值:
(x!=0) || (x==0) 等价于 true
3. break语句的作用是跳出循环,终止循环的执行。该程序的运行结果是:The value of i is 990。
4. continue语句的作用是跳过本次循环的剩余代码,直接进行下一次循环。该程序的运行结果是无限循环,因为i的值永远大于等于10,无法触发continue语句。
阅读全文