实验四 数据的输入与输出
一、实验目的
1.掌握C程序输入输出语句的使用方法。 2.掌握常用占位符的使用。
3.掌握scanf,printf输出数据时格式的控制方法。 二、预习内容
1. 请总结使用scanf输入语句时,间隔符使用的注意点?(提示:空格、TAB
和回车对%s同样适用)假设有int x; char c; double d; float f;四个变量,现有输入语句如下:
scanf(“x=%d,d=%f,c=%c,f=%f”,&x,&d,c,&f);
请问:以上scanf语句是否正确?如不正确请给出改正方法,如改正后想要使x获得3,c获得字符a,d获得3.1415,f获得12.3,则在键盘上应该如何输入这些值,请给出具体输入的方法。
答:字符前后不用空格 回车Tab
scanf(“%d%lf%c%f”,&x,&d,&c,&f); 输入3空格3.1415a12.3
2. 输出语句printf具有灵活的显示格式控制能力,其能力是通过输出格式控制串
来实现的,尤其是对变量输出所占列数的控制,请问printf是如何来实现对整数和浮点数实现显示列数控制的,请尽可能详细地说明?假设现有int x=12345; float y=-3.14159;现要求先输出一行参照行并换行,即12345678901234567890,然后在第二行将x输出时占8列显示且实现左对齐,紧接着让y占7列显示且保留3位小数,请给出具体的printf语句和现实结果,并说明y显示那个结果的原因。
答:%md占m行 %m.nf m表示输出总宽度 n表示小数保留位数 (包括小数点) printf(“12345678901234567890\\n”); Printf(“%-8d,%7.3f”,x,y);
3. 大家对printf语句的输出格式掌握后,下面这个内容课堂上没有涉及到,即
scanf是否也能控制输入数据的列数呢。请大家完成下面的实验,并根据实验结果总结出你所获得的关于scanf语句在这方面的规则。 假设有:int x,y; char c; float z;
scanf(“%2d%3d%c%f”,&x,&y,&c,&z);
假设用户在键盘上输入了一行数据为:123456789,请问下面语句输出的结果是什么?
printf(“x=%d,y=%d;c=%c,z=%f”,x,y,c,z);
1
《计算机程序设计》实验报告
请根据实验结果总结规则。
答:x=12,y=345,c=6,z=789.000000
4. C语言中字符的输入输出除了可以使用scanf和printf实现外还可以使用哪两
个字符专用的输入输出函数?并简要说明他们和scanf、printf的区别是什么?最后,使用字符专用的输入输出韩式编程实现从键盘输入一个字符,但要求输出其前后面第5个字符。(要求:如果输入的字符是26个字母表中的后5个的情况,则自动按尾巴接头的环型方式显示字母表中对应的开头字母,例如:如你输入的小写字母x,那么你应该显示的是小写字母c,输入的是大写字母,情况亦然,请将你的源代码和运行结果截图粘贴在本题的解答中。
答:putchar在显示器上输出单个字符 putchar(‘a’)输出字符a putchar(ch)输出ch 的值
Getchar char c; c=getchar();通常把输入的字符赋予一个字符变量 #include 2 《计算机程序设计》实验报告 三、实验内容: 1. 程序调试的目的是发现程序存在的错误并改正,请问C语言程序可能存在哪 三种错误?然后,下面的程序实现的功能是从键盘输入一个三位数,然后判断其是否是水仙花数,所谓水仙花数,指的是该数每一位的立方和等于该数本身。例如:153就是一个水仙花数,因为1^3 + 5^3+ 3^3 = 153。但是下面这个程序存在多个错误,请利用VC++6.0调试并改正错误,注意对于逻辑性错误大家要学会单步调试的方法,即先设断点然后开始单步执行,执行是可以通过F10或F11来控制程序一条一条执行。 存在错误的程序如下:请将正确的代码(文本)写在下面,并在修改之处用红色字体标明。 #include int x,b,g,s; printf(\"请输入一个三维数:%d\"); scanf(\"%d\ b=x/100; s=x%10; g=x%10/10; if(b^3+s^3+g^3==x); printf(\"%d是水仙花数!\ else printf(\"很遗憾,你输入的%d不是水仙花数!\"); } 源代码:#include int x,b,g,s; printf(\"请输入一个三维数:%d\"); scanf(\"%d\&x); b=x/100; s=x%10; g=(x-100*b)/10; if(b^3+s^3+g^3==x) printf(\"%d是水仙花数!\ else printf(\"很遗憾,你输入的%d不是水仙花数!\",x); } 运行结果截图: 3 《计算机程序设计》实验报告 2. 编程实现从键盘输入三个整数,并输出其中的最大数?请将源程序和运行结果截图粘贴在后面。 源代码:#include int a,b,c; printf(\"请输入三个数字:\"); scanf(\"%d%d%d\ if(a>b) { if(b>c) printf(\"a>b>c\"); else if(a>c) printf(\"a>c>b\"); else printf(\"c>a>b\"); } else { if(a>c) printf(\"b>a>c\"); else if(b>c) printf(\"b>c>a\"); else printf(\"c>b>a\"); } return 0; } 运行结果截图: 4 《计算机程序设计》实验报告 四、实验小结 请总结一下本次试验中你所遇到的错误,分析原因并说明该如何避免? 5 因篇幅问题不能全部显示,请点此查看更多更全内容