首页 > 代码库 > lesson16_sanf_s 作业

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;}

技术分享

 

lesson16_sanf_s 作业