若i为整型变量,则程序段 i=123; if(i%2==0) printf("####"); else printf("****"); 输出结果是()
A.####
B.****
C.####****
D.有语法错误,无输出结果
A.####
B.****
C.####****
D.有语法错误,无输出结果
第1题
某程序中有如下循环代码段P: for (i=0; i<n; 1 2 3 4 5 6 i++) sum+="A[i];" 假设编译时变量sum和i分别分配在寄存器r1和r2中。常量n在寄存器r6中,数组a的首地址在寄存器r3中,程序段p的起始地址为08048100h,对应汇编代码和机器代码如下表所示: 编号 地址 机器码 汇编码 操作注释 08048100h 00022080h loop: sll r4,r2,2 08048104h 00083020h add r4,r4,r3 (r4)+(r3)→r4 08048108h 8c850000h load r5,0(r4) ((r4)+0)→r5 0804810ch 00250820h r1,r1,r5 (r1)+(r5)→r1 08048110h 20420001h addi r2,r2,1 (r2)+1→r2 08048114h 1446fffah bne r2,r6,loop if (r2) ≠ (r6) goto loop 如果执行上述代码的计算机采用32位定长指令字,其中的分支指令bne格式如下: 31:26 25:21 20:16 15:0 op rs rd offset 其中的op为操作码,rs和rd为寄存器编号,offset为偏移量(用补码表示),请回答下列问题: 计算机的存储器编址单位是( ) a. 8位 b. 16位 c. 32位 d. 64位>
第2题
以下为MED分类器的C语言核心代码,请对代码段填空。 变量介绍: X为样本的x轴坐标,Y为样本的y轴坐标 sum_An 为Cn类中A轴坐标的总和 mean_An 为Cn类中A轴坐标的均值 代码段: int main() { printf("请输入C1类中点的数量"); scanf("%d ",&n1); printf("请输入C2类中点的数量"); scanf("%d ",&n2); for(int i=0;i<=n1;i++) 1 2 3 { printf("请输入c1类中每个点的坐标"); scanf("%d %d",&c1[i].x,&c1[i].y); sum_x1 +="c1[i].x;" sum_y1 } for(int i="0;i<=n2;i++)" printf("请输入c2类中每个点的坐标"); %d",&c2[i].x,&c2[i].y); sum_x2 sum_y2 printf("请输入待测点的坐标"); %d",&x,&y); ( )="sum_x1/n1;" mean1_y="sum_y1/n1;" mean2_x="sum_x2/n2;" mean2_y="(" n2; distance1="((X-mean1_x)^2+(Y-mean1_y)^2);" distance2="((X-mean2_x)^2+(Y-mean2_y)^2);" if (distance1( )distance2) printf("该点属于c1类"); else printf("该点属于c2类"); return 0;>
第3题
TIME=1867
b=9
i=123
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
源程序文件代码清单如下:
import java.io.*;
public class DataType
{
public ______ void main(String args[])
{
byte b;
int i;//定义变量i为int类型
______//定义常量TIME为整型,且值为1867
i=123;//给变量i赋值,该值为十进制的123
______//给变量赋值,改值为八进制的11,十进制的9
System.out.println("TIME"+TIME);
System.out.println("b="+b);
System.out.println("i="+i);
}
}
第4题
B、1 3 5
C、2 4 6
D、6 5 4
第5题
B.123
C.357
D.321
第6题
下列程序的输出结果是( )。
main
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf("%d%d%d\n",i,j,k);
}
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
【我提交的答案】: |
【参考答案与解析】: 正确答案:D |
本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
谢谢
第7题
下列程序的输出结果是( )。
main
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf("%d%d%d\n",i,j,k);
}
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
【我提交的答案】: |
【参考答案与解析】: 正确答案:D |
本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
判定条件中的运算i++等在判定条件外会真的会改变吗?
第8题
下列程序的输出结果是( )。
main
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf("%d%d%d\n",i,j,k);
}
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
【我提交的答案】: |
【参考答案与解析】: 正确答案:D |
本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
k自加后不是应该等于4吗?
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!