C语言输入输专项训练chen

更新时间:2023-11-14 22:54:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言实训教程

----输入输出专项练习

一、 实验目的

1. 能够熟练并正确定义、输入、输出并使用常用数据类型:整型、实型、字符型 2. 能够使用scanf(),printf(),getchar(),putchar(),gets(),puts()进

行各种数据正确格式的输入输出

二、 实验内容及实验步骤

(一) 验证性试验,验证以下实验,并分析实验结果

1. 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=

ˊAˊ,c2=ˊaˊ,问在键盘上如何输入数据? #include int main() {

int a,b; float x,y; char c1,c2;

scanf(“a=%d b=%d”,&a,&b); scanf(“%f%e”,&x,&y); scanf(“%c%c”,&c1,&c2);

printf(\return 0; }

运行时分别按以下方式输入数据,观察输出结果,分析原因。 ① a=3,b=7,x=8.5,y=71.82,A,a↙

a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=,,c2=b

Press any key to continue ② a=3 b=7 x=8.5 y=71.82 A a↙ ③ a=3 b=7 8.5 71.82 A a↙ ④ a=3 b=7 8.5 71.82Aa↙ ⑤ 3 7 8.5 71.82Aa↙ ⑥ a=3 b=7↙ 8.5 71.82↙ A↙ a↙

⑦ a=3 b=7↙

8.5 71.82↙ Aa↙

⑧ a=3 b=7↙ 8.5 71.82Aa↙

原因:“ ,”号、enter键都会被当做值给输入进去。

2. 字符输入

#include

main() {

int a; char b; float c;

printf(\ scanf(\

printf(\

printf(\ scanf(\

printf(\

printf(\ scanf(\

printf(\ }

如果把scanf(\改为scanf(\观察运行结果 原因:

发 3. 验证格式输入

#include void main() { int a, b; printf(\ scanf(\ printf(\}

(1)输入123456,验证上述实验结果 (2)输入12345a,验证上述实验结果

4. 格式输入与输出

#include main() {

int a=-1;

printf (\,%o, %x\,a,a, a); printf(\,a, a); }

验证程序分析实验结果

5. 无符号数据的输出

#include void main() {

unsigned int a=65535;int b=-2;

printf(“a=%d,%o,%x,%u\\n”,a,a,a,a); printf(“b=%d,%o,%x,%u\\n”,b,b,b,b); }

验证程序分析实验结果

6. 字符串的输出

#include void main() {

printf(“%3s,%7.2s,%.4s,%-5.3s\\n”, “CHINA”, “CHINA”, “CHINA”, “CHINA”); }

验证程序分析实验结果

%3s,格式输出字符串,右对齐,超出3个长度的,就全部输出; %7.2s,输出字符串占7个位置,有对齐,左补空格,输出2个字符; %.4s,仅输出4个字符,占位4个位置,右对齐; %-5.3s:输出3个字符,占位5个位置,左对齐右补空格.

7. 输出实数时的有效位数 #include void main() { float x,y; 3 x=111111.111;

y=222222.222; prinft(“%f”,x+y); }

验证程序分析实验结果

8. 输出双精度数时的有效位数 #include void main()

{double x,y;

x=1111111111111.111111111;

y=2222222222222.222222222; printf(“%f”,x+y); }

验证程序分析实验结果

9. 输出实数时指定小数位数 #include void main() {

float f=123.456;

printf(“%ff.2f%.2f%-10.2f\n”,f,f,f,f,f); }

验证程序分析实验结果

10. 字符输出

#include int main(void) { int c;

for ( ; ; ) { c = getchar(); if (c == EOF) break;

if ((c >= ’a’) && (c <= ’z’)) c += ’A’ - ’a’; putchar(c); }

return 0; }

(1)对比下列五种代码,将4-7、10行代码替换如下,程序应该如何修改才能保持输出结果相同?

for (c=getchar(); c!=EOF; c=getchar()) putchar(c);

(2)将4-7、10行代码替换如下,程序应该如何修改才能保持输出结果相同?

while ((c=getchar())!=EOF) putchar(c); (3)将4-7、10行代码替换如下,程序应该如何修改才能保持输出结果相同?

c = getchar(); while (c!=EOF)

{ putchar(c); c = getchar(); }

(4)如果用ASCII码修改if ((c >= ’a’) && (c <= ’z’)); c += ’A’ - ’a’;这两句代码,应该如何修改?

(5) 利用ctype函数修改上面代码,验证程序结果

#include #include int main(void) { int c;

for ( ; ; ) { c = getchar();

if (c == EOF) break; if (islower(c)) c = toupper(c); putchar(c); }

return 0; }

11. 转义符输出

#include

void main ( ) {

printf(\printf(“h\\ti\\b\\bjk\\n”); }

验证程序分析实验结果

12. 字符串输入输出,连续输入三个单词,每个单词以空格分隔

#include

void main ( ) {

char str1[5],str2[5],str3[5];

scanf(”%s%s%s”,str1,str2,str3); printf(\}

验证程序分析实验结果

(二)编程题

1. 编写printf函数调用下列格式来显示float型变量x:

a) 指数表示形式: 最小为8的字段宽度内左对齐; 小数点后保留1位数字.

b) 指数表示形式: 最小为10的字段宽度内右对齐; 小数点后保留6位数字

c) 定点十进制表示形式: 最小为8的字段宽度内左对齐; 小数点后保留3位数字

本文来源:https://www.bwwdw.com/article/stmv.html

Top