lesson16_sanf_s 作业

不运行任何代码写出下面语句的执行结果(未知的值请写为未知及理由)

printf("%2.2lf",2.33333);

答:2.33    小数点前如实显示,小数点后面显示2位

printf("%c%c%c",'A','49','\44');

答:A  三个字符都带单引号,打印字符本身char

printf("%10+-.3lf",3.1415927);

 答:+3.142这题想不通,我是能过vs得出的。

 


 

1,宽度和位数相同的十进制整数     

    答: %g

2,  232.666,使用0填充到10位

  答:%010.f

3,  宽度为30,左对齐的字符串

  答:%30.s

4,  宽度为12的十六进制的整数

  答:%12x

5,  宽度为15的unsigned long的整数

  答:%15lu

6,  宽度为7,左对齐,字符串中的前5个字符

 答:%-7.5s


 

请写出读取下面内容的转换说明符:

1.  10109

 scanf_s("%5d",&num);

2.   22.1111

 scanf_s("%6.4f"&num);

3.    ILoveMark

 char str_ch[10]={0};

scanf_s("%s",str_ch,sizeof(str_ch));

 

4.  I Love Mark(要求一次性读取完成)

  以换行符为读入字符串的终结标志

#include <stdio.h>

int main()
{
    char str_ch[15] = {0};

        scanf_s("%[^\n]s",str_ch,sizeof(str_ch));
        printf("\n%s", str_ch);

        
        system("pause");
        return 0;

}

得出:

 

 

 

 

5.  if 22 (只读取值)

   

#include <stdio.h>

int main()
{
    char strbuff[10] = {0};
    scanf_s("%[^\n]s", strbuff, sizeof(strbuff));
    printf("\n%*3c", strbuff);

    system("pause");
    return 0;

}

以上代码没有能够完成题目要求,存疑……

 

 


编程练习:

1.  提示用户以“姓 名”(英语)的方式输入,用“名姓”的方式打印出来

 答:代码如下:

#include <stdio.h>
// 提示用户以“姓 名”(英语)的方式输入,用“名姓”的方式打印出来
int main()

{
    char Xing[50] = { 0 }; char Ming[50] = {0};
    printf("请输入你的姓氏的拼音:\n");
    scanf_s("%s", Xing,sizeof(Xing));
    printf("请输入你的名的拼音:\n");
    scanf_s("%s", Ming, sizeof(Ming));
    printf("%s  %s \n", Ming, Xing);




    getchar();
    getchar();
    return 0;
}

运行结果:

 

 

2.  同上题输出

  a)包括双引号的姓名

答:代码如下 

  

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
    char str_namex[40] = { 0 };
    char str_namem[40] = {0};
    printf("请输入你的姓和名:先输入姓,后输入名,都写拼音。\n");
    scanf_s("%s", str_namex, sizeof(str_namex));
    scanf_s("%s", str_namem, sizeof(str_namem));
    printf("\n\"%s %s\" ", str_namex,str_namem );

    /*getchar();
    getchar();*/
    system("pause");
    return 0;
}

运行结果:

 

 

  b)打印宽度为20 ,右端打印

 printf("%-20s",string);

 

 

3.  要求用户输入当前的带宽(Mb)及需要下载文件的大小(GB).计算出下载需要的时间(小时)。

    计算公式为:需要下载的大小  /  (带宽大小/10) =  需要的秒数

   

#include <stdio.h>

//3.  要求用户输入当前的带宽(Mb)及需要下载文件的大小(GB).计算出下载需要的时间(小时)。

//        计算公式为:需要下载的大小 / (带宽大小 / 10) = 需要的秒数

int  main()
{
    int num1 = 0;
    int num2 = 0;
    printf("请输入带宽,注意格式为:xxMb\n");
    scanf_s("%d",&num1);
    printf("\n请输入你下载文件的大小:(单位GB)\n");
    scanf_s("%d", &num2);
    double ln = (num2*1024*8)/(num1);
    printf("计算得出下载时间为:%d 秒下载完成\n换成分钟是:%d 分钟。", (int)ln,(int)ln/60);
    
    
    
    getchar();
    getchar();
    return 0;
}

运行结果

 

 

 4.  使用头文件和宏打印出所有基础类型的最大值和最小值t 

答:代码如下

#include <stdio.h>
#include <limits.h>
#include <float.h>
//4.  使用头文件和宏打印出所有基础类型的最大值和最小值

int main()
{
    
    printf("int的最大值是:%d\nint的最小值是: %d\n",INT_MAX,INT_MIN);
    printf("无符号int最大值是:%u\n无符号int最小值是:%u\n",UINT_MAX,0);
    printf("short的最大值是:%hd\nshort的最小值是:%hd\n",SHRT_MAX,SHRT_MIN);
    printf("无符号short的最大值是:%uhd\n无符号short的最小值是:%uhd\n", USHRT_MAX, 0);
    printf("char的最大值是:%hhd\nchar的最小值是:%hhd\n", CHAR_MAX, CHAR_MIN);
    printf("无符号char的最大值是:%hhu\n无符号char的最小值是:[hhu]\n", CHAR_MAX, CHAR_MIN);
    printf("char的最大字符是:%c\nchar的最小字符是:[%c]\n", CHAR_MAX, CHAR_MIN);

    printf("long的最大值是:%ld\nlong的最小值是:%ld\n", LONG_MAX, LONG_MIN);
    printf("无符号long的最大值是:%lu\n无符号long的最小值是:%lu\n", ULONG_MAX, 0);
    printf("long long 的最大值是:%ll\nlong long的最小值是:%ll\n", LLONG_MAX, LLONG_MIN);
    printf("无符号long long 的最大值是:%llu\n无符号long long 最小值是:%llu\n", ULLONG_MAX, 0);

    printf("float的最大值是:%f\nfloat的最小值是:%f\n", FLT_MAX,FLT_MIN);
    printf("double的最大值是:%lf\ndouble的最小值是:%lf\n", DBL_MAX, DBL_MIN);

    getchar();
    return 0;
}

 

posted on 2016-09-19 00:10  zzdoit  阅读(355)  评论(0编辑  收藏  举报

导航