单机像素游戏大全:这个题 怪!! 因为我不会 请具体分析下

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/19 20:21:41
以下程序运行后的输出结果是( 12 )。
main()
{ int i=5, j=0;
do
{ j=j+i; i--;
while(i>2);
printf("%d\n",j);
}

(19) 设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为( 8921 )。

(22) 设有以下程序 运行结果是 :(07)
main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m;
a=pl==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b); }

第一题:第一次循环 j=5,i=4,第二次循环: j=9(因为j=j+i,所以为5+4),i=3,第三次循环: j=12(同上理),i=2, 由于i=2,跳出循环
所以j=12

第二题:n2为1298,那么每一次/10操作之后,就少一位,第一次循环:n1为1(因为1298除以10的余数为8),n2为129,第二次循环,n1为9,n2为12,第三次循环,n1为2,n2为1,第四次循环,n1为1,n2为0,然后跳出循环。所以n1输出4次,结果为 8921

3+2-5

1)12. while循环条件i>2,每执行一次循环,i--,j其实就是5+4+3的和即12.当i=2时已经执行printf("%d\n",j); 去了。所以。。。
2)8921.这个答案是每次循环一次,打出个位的数,并让你输入的数/10,其商再执行循环,只是这种方法只是能显示出来1298的倒序数为8921,但并没有将这个8921放入一个变量中,其实我们只需要在循环中加入一句就可以实现。
main()
{ int n1,n2,s=0;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
s=s+n1*10
}
printf("%d",n1);

}

3) a=0
b=7

其中a=pl==&m; 这是让p1==&m的值赋于a,p1==&m是一个逻辑判断式,因为是不等的,所以为0,所以a=0;
b=(*p1)/(*p2)+7; *p1是K的值,为4,*P2是M的值,为6,所以b=4/6+7=0+7=7