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