2道C语言的题目大家帮忙看看

46、下列程序的输出结果为()。#include<stdio.h>main(){inti;for(i=100;i++)if(i%5==0)continue;printf(... 46、下列程序的输出结果为( )。
#include <stdio.h>
main( )
{
int i;
for(i=100; i++)
if (i%5==0) continue;
printf("%d", i);
break;
}
A、100 B、101
C、无限循环 D、无输出结果
47、下列程序的输出结果为( )。
main()
{ int x=3, y=2, z=1;
printf("%d\n, x / y & ~z); }
A、0 B、1
C、2 D、3

答案分别是D和B,求解答啊谢谢了!
展开
 我来答
校花丶窼頿齔
推荐于2016-11-07 · TA获得超过2333个赞
知道小有建树答主
回答量:800
采纳率:80%
帮助的人:412万
展开全部
46题 如果for语句里面只写了两部分 则其中的第一部分表示进入循环的条件 第二部分表示计数器的变化 所以直至此时 i并没有赋初值 i的值还是系统随机赋予的一个数 所以进不了for循环

47题 答案应该是a。。。。 先进行计算 ~z 意思是取反 即把1的二进制00000001 0变为1 1变为0 得11111110 在进行x/y运算 意思是整除 得数为1 在进行1&11111110运算 意思是把1的二进制00000001 与11111110 对位比较 含0的那一位清零 得数为0
追问
i没有赋初值所以没有执行循环么?所以也就没有进行if语句了?i没有初值所以没有输出结果的意思么? 47题的那几个运算符的优先顺序分别是怎么样的?
追答
i没有赋值 所以不进for语句 
不输出是因为输出语句在for语句里面 不进for语句自然也不输出
47那几个运算符 先计算 ~ 再计算/ 再计算&

其实我觉得你第一个函数有点问题 大括号貌似少了不少。。。。

for语句可以没有赋值 也可以没有条件 但是分号是不可以省略的 如果把i=100 当做赋值 就没有循环条件 也就是说程序一定会进入for循环 第一次进入for循环 100%5==0 成立 跳过此次循环 i=101 输出 然后退出 这样 会输出101 但是既然你说没有输出结果 那就说明i=100被当成了循环条件 也就是说i没有附初值 是一堆随机数字 没有进for语句 没有输出结果
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式