exercise for printf functions in c run-time library

 

 

printf函数族功能强大,语法简洁,速度快,也容易掌握。所以,与c++流风格的输出相比,更加受到程序员的青睐,在各种API上都可以看到它们的踪迹,因此,掌握printf函数族是非常重要的。

 

1 回答问题(有些可能比较难,尽所知道的回答。我们今后会专题讲解):

A)   列举你知道的printf族函数。

B)   printf函数可以传递可变个参数,其他函数可以吗?尽你所知,予以说明。

C)   vprintf函数的用途是什么?

D)   _snprintfsprintf函数的不同,你更倾向于使用哪个?

E)   下面的printf调用都多少有些问题,分析其后果:

     int _i = 1;

     int _j = 2;

     int _k = 3;

     printf("%d %d %d", _i, _j);

     printf("%d %d", _i, _j, _k);

 

     char _c = 1;

     printf("%d", _c);

 

     short _s = 1;

     printf("%d", _s);

 

     double _d = 3.0;

     printf("%d", _d);

    

     float _f = 3.0f ;

     printf("%f", _f);

F)        从上面的问题代码,能否分析出规律,以及写代码的注意事项。

G)        上面的问题代码, 传统的c/c++编译器为什么没有警告呢?

 

 

2 完成下面程序:

 

#include "stdafx.h"

#include <stdlib.h>

#include <stdio.h>

 

int main(int argc, char* argv[])

{

     int _i = 83543532;

     printf(__________, _i);

     printf(__________, _i);

     printf(__________, _i);

     printf(__________, _i);

 

     __int64 _i64 = __int64(_i) * _i;

     printf(__________, _i64);

     printf(__________, _i64);

     printf(__________, _i64);

 

     printf("-----------+-----------+-----------+-----------+-----------+-----------+/n");

     for (_i = 0; _i < 10; _i++)

     {

         printf(____________________,

              rand() - 5000,

              rand() - 5000,

              rand() - 5000,

              rand() - 5000);

     }

 

     return 0;

}

 

使得输出下面形式文本:

83543532

0x4fac5ec

0x4FAC5EC

0x04FAC5EC

6979521739035024

0x18CBD 689F 51190

0x0018CBD 689F 51190

-----------+-----------+-----------+-----------+-----------+-----------+

21500               1334 +0000013467  -4959

24358               6478 +0000010724  +14169

23145                705 +0000019464  +21962

-4509               4961 +0000011827  +18281

436                 -173 +0000006942  -2005

-4847              -1098 +0000009604  +27391

13716              12421 +0000007382  -4708

16726                447 +0000014895  +14718

14912              -3131 +0000006538  +9771

4894                                             12035 +0000021299  +20667

 

以上问题,每个人尽量自己解决,经过思考后也可以互相讨论。答卷不用交。我们将在最近一次代码评审会上抽查、提问、讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值