鱼C论坛

 找回密码
 立即注册
查看: 1670|回复: 4

考题

[复制链接]
发表于 2015-2-12 00:44:26 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 haiouda 于 2015-2-12 01:28 编辑

一、执行后,y 的值为什么是 3,最好能详细点说下,谢谢
double x = 35;
int y;
y = (int)( x / 4) % 5;





二、这里的 011 为什么代表八进制???

#include <stdio.h>
main()
{
        int a = 011;
        printf("%d", a ++);
}


最佳答案

查看完整内容

一、(int)(x/4)表示类型的强制转换;因为在本题中x的类型为double型,所以x/4的值为8.75;所以(int)(x/4)=8; (int)(x/4)%58%5;所以y的值3。 二、在c语言中八进制必须在前面加0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-12 00:44:27 | 显示全部楼层
一、(int)(x/4)表示类型的强制转换;因为在本题中x的类型为double型,所以x/4的值为8.75;所以(int)(x/4)=8;   (int)(x/4)%5<=>8%5;所以y的值3。
二、在c语言中八进制必须在前面加0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-12 11:44:42 | 显示全部楼层
第一   35 / 4 (35除4 取 ) = 8 余 3  ( 取值,    忽略余数 )
           8 % 5 ( 8除5取)   = 1 余  3  ( 取余数,  忽略 值)   所以答案为  3
第二   在平时的书写的时候,八进制前面加0表示这个数是八进制
            011,,前面0 是八进制的意思,,,,在二级C语言考试中常出现这种无语的题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-12 19:39:22 | 显示全部楼层
第一题,分解步骤
x / 4 = 8.75
(int)(x / 4) = 8
于是y = 8 % 5 = 3
第二题
c语言中0开头的常数都被认为是八进制,谢谢采纳{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-12 19:43:40 | 显示全部楼层
谢谢各位的热心,真 的很想,都给你们鱼币,
可系统不让:sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 16:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表