C语言printf()和scanf()中的%m.nf,%mf,%md

设有定义: double x=2.12;, 以下不能完整输出变量x值的语句是A
A.printf("x=%5.0f\n",x);
B.printf("x=%f\n",x);
C.print("x=%lf\n",x);
D.printf("x=%0.5f\n",x);


【解析】float类型变量有效位数为6 - 7位,double类型变量有效位数为15 - 16位。printf函数控制字符%f输出float类型,%lf 输出double类型。
 
对于float或double型数据,在指定数据输出宽度的同时,也可以指定小数位的位数。
函数printf()中,格式为 %m.nf,表示数据输出总的宽度为m位(包括小数点),其中小数部分占n位。当数据的小数位多于指定宽度n时,截去右边多余的小数,并对截去的第一位小数做四舍五入处理;而当数据的小数位少于指定宽度n时,在小数的右边补零;当m小于有效位数时,整数部分输出所有有效数字并且自动对齐,小数部分按照n指定位数输出。
 

函数printf()中,%md,指输出带符号的十进制整数,给定最小宽度为m位,不足m位左端补空格,超过m位按实际位数输出, %nf表示以小数形式输出实数,小数占n位。
 

 A选项按照float格式输出数据,宽度为5位,保留小数0位,输出为2,不能完整输出x,选择A选项。
 B选项按照float格式输出数据,输出为2.120000。
 C选项按照double格式输出数据,输出为2.120000。
 D选项按照float格式输出数据,保留小数位数为5,输出为2.12000。
 

设有定义: double x;,以下选项中不能将输入数据3.14读入赋给变量x的是(A
A、scanf("%4.2f" ,&x);
B、scanf("%lf" ,&x);
C、scanf("%le" ,&x);
D、scanf("%4lf" ,&x);

【解析】函数scanf()中,函数格式字符串的一般形式为: %[*][输入数据宽度][长度类型]。输入数据宽度必须是十进制的整数,它没有精度控制。

 
 %4.2f是错误的,不能企图用此语句输入小数点为2位的实数,选项A错误;
 scanf()函数的长度格式符为1和h, %lf表示用小数形式输入双精度浮点数,选项B正确; 
 %le表示用指数形式输入双精度浮点数,满足条件,选项C正确; 
 %4lf表示用小数形式输入宽度为4的双精度浮点数,选项D正确。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值