C语言输入输专项训练chen.docx

上传人:b****5 文档编号:7692077 上传时间:2023-01-25 格式:DOCX 页数:11 大小:18.15KB
下载 相关 举报
C语言输入输专项训练chen.docx_第1页
第1页 / 共11页
C语言输入输专项训练chen.docx_第2页
第2页 / 共11页
C语言输入输专项训练chen.docx_第3页
第3页 / 共11页
C语言输入输专项训练chen.docx_第4页
第4页 / 共11页
C语言输入输专项训练chen.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言输入输专项训练chen.docx

《C语言输入输专项训练chen.docx》由会员分享,可在线阅读,更多相关《C语言输入输专项训练chen.docx(11页珍藏版)》请在冰豆网上搜索。

C语言输入输专项训练chen.docx

C语言输入输专项训练chen

C语言实训教程

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

一、实验目的

1.能够熟练并正确定义、输入、输出并使用常用数据类型:

整型、实型、字符型

2.能够使用scanf(),printf(),getchar(),putchar(),gets(),puts()进行各种数据正确格式的输入输出

二、实验内容及实验步骤

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

1.用下面的scanf函数输入数据,使a=3,b=7,x=,y=,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入数据?

#include<>

intmain()

{

inta,b;

floatx,y;

charc1,c2;

scanf(“a=%db=%d”,&a,&b);

scanf(“%f%e”,&x,&y);

scanf(“%c%c”,&c1,&c2);

printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

return0;

}

运行时分别按以下方式输入数据,观察输出结果,分析原因。

1a=3,b=7,x=,y=,A,a↙

Pressanykeytocontinue

2a=3b=7x=y=Aa↙

3a=3b=7Aa↙

4a=3b=7↙

537↙

6a=3b=7↙

A↙

a↙

⑦a=3b=7↙

Aa↙

⑧a=3b=7↙

原因:

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

2.字符输入

#include<>

main()

{

inta;

charb;

floatc;

printf("Pleaseinputaninteger:

");

scanf("%d",&a);

printf("integer:

%d\n",a);

printf("Pleaseinputacharacter:

");

scanf("%c",&b);

printf("character:

%c\n",b);

printf("Pleaseinputafloatnumber:

");

scanf("%f",&c);

printf("float:

%f\n",c);

}

如果把scanf("%c",&b);改为scanf("%1s",&b);观察运行结果

原因:

3.验证格式输入

#include<>

voidmain()

{

inta,b;

printf("Pleaseinputaandb:

");

scanf("%2d%*2d%2d",&a,&b);

printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);

}

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

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

4.格式输入与输出

#include<>

main()

{

inta=-1;

printf("%d,%o,%x",a,a,a);

printf("%8o,%12x",a,a);

}

验证程序分析实验结果

5.无符号数据的输出

#include<>

voidmain()

{

unsignedinta=65535;intb=-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<>

voidmain()

{

printf(“%3s,%,%.4s,%\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);

}

验证程序分析实验结果

%3s,格式输出字符串,右对齐,超出3个长度的,就全部输出;

%,输出字符串占7个位置,有对齐,左补空格,输出2个字符;

%.4s,仅输出4个字符,占位4个位置,右对齐;

%:

输出3个字符,占位5个位置,左对齐右补空格.

7.输出实数时的有效位数

#include<>

voidmain()

{floatx,y;

3  x=;

y=;

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

验证程序分析实验结果

8.输出双精度数时的有效位数

#include<>

voidmain()

{doublex,y;

 

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

验证程序分析实验结果

9.输出实数时指定小数位数

#include<>

voidmain()

  {

floatf=;

printf(“%f%10f%%.2f%\n”,f,f,f,f,f);

验证程序分析实验结果

10.字符输出

#include<>

intmain(void){

intc;

for(;;){

c=getchar();

if(c==EOF)

break;

if((c>=’a’)&&(c<=’z’))

c+=’A’-’a’;

putchar(c);

}

return0;

}

(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<>

intmain(void){

intc;

for(;;){

c=getchar();

if(c==EOF)break;

if(islower(c))

c=toupper(c);

putchar(c);

}

return0;

}

11.转义符输出

#include<>

voidmain()

{

printf("abc\tde\rf\tg\n");

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

}

验证程序分析实验结果

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

#include<>

voidmain()

{

charstr1[5],str2[5],str3[5];

scanf(”%s%s%s”,str1,str2,str3);

printf("%s%s%s",str1,str2,str3);

}

验证程序分析实验结果

(二)编程题

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

a)指数表示形式:

最小为8的字段宽度内左对齐;小数点后保留1位数字.

b)指数表示形式:

最小为10的字段宽度内右对齐;小数点后保留6位数字

c)定点十进制表示形式:

最小为8的字段宽度内左对齐;小数点后保留3位数字

d)定点十进制表示形式:

最小为6的字段宽度内右对齐;小数点后无数字.

#include""

main()

{floatx;

x=;

printf("%\n",x,x,x);/

printf("%\n",x);/

return0;

}

2.设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入

#include""

main()

{inta,b;

printf("pleaseinputadate:

");

scanf("%d%*c%d",&a,&b);

printf("%d\t%d",a,b);

return0;

}

3.编写一个程序,接收用户录入的日期信息并且将其显示出来.其中,输入日期的形式为月/日/年(mm/dd/yy),输出日期的形式为年月日(yymmdd)

#include""

main()

{intyear,month,day;

printf("pleaseinputthedate:

month,day,year\n");

scanf("%d%d%d",&month,&day,&year);

printf("%d/%d/%d\n",year,month,day);

return0;

}

4.有3个字符串,要求找出其中最大者

#include""

#include<>

main()

{charstr1[20],str2[20];

inta;

printf("pleaseinputthestr1andstr2:

\n");

gets(str1);

gets(str2);

if(strcmp(str1,str2)>0)

printf("str1>str2");

elseprintf("str1

returna;

}

#include""

#include<>

#include<>

main()

{charstr1[20],str2[20],str3[20];

inta;

printf("pleaseinputthestr1,str2andstr3:

\n");

gets(str1);

gets(str2);

gets(str3);

a=strcmp(str1,str2);

if(a>0)

if(strcmp(str1,str3)>0)

printf("str1>str2,str1>str3\nstr1ismaxstring\n");

else

printf("str1>str2,str1

else

if(str2,str3>0)printf("str2>1,str2>str3,\nstr2ismaxstring\n");

elseprintf("str2>str1,str3>str2\nstr3ismaxstring\n");

returna;

}

5.编写一个程序,对用户录入的产品信息进行格式化,程序运行后需要有以下会话:

Enteritemnumber:

583

Enterunitprice:

Enterpurchasedate(mm/dd/yy):

10/24/95

ItemUnitPricePurchaseDate

583$10/24/95

其中,数字项和日期项左对齐,单位价格右对齐,美元数量最大取值为

#include""

#include<>

main()

{intnum_ber;

intmm,dd,yy;

floatUnitprice;

printf("请输入itemnum_ber:

number=583\t");

scanf("%d",&num_ber);

printf("请输入Unitprice:

Unitprice=\t");

scanf("%f",&Unitprice);

printf("请输入日期mm/dd/yy=10/24/95");

scanf("%d/%d/%d\t",&mm,&dd,&yy);

printf("Itemnumber\tUnitPrice\tPurchaseDate");

printf("%4d\t%f\t%3d/%3d/%3d,num_ber,UnitPrice,mm,dd,yy");

return0;

}

6.计算若干整数的值,要求输入有若干行,每行第一个整数n,代表后面还有n个数据,如果n=0代表输入结束。

输出:

要求对于每一行都要在相应的行输出和。

#include""

#include<>

main()

{intm,n,i,j,sum=0;

inta[5][5];

scanf("%d",&m);

if(m==0)

printf("ê?

è?

?

áê?

\n");

else

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

a[0][0]=m;

for(i=0;i

{for(j=0;j

{printf("%d\t",a[i][j]);}

printf("\n");

}

for(i=0;i

{for(j=0;j

{sum=sum+a[i][j];}

printf("sum=%d\n",sum);

sum=0;

}

}

7.编程实现如下程序,输入Bba=7b=6并输出,每个数据以逗号分隔,每个数据宽度为10,浮点型数据小数后保留2位。

8.有如下结构体,编程实现n(n<=10)名同学的数据输入与输出,n为通过键盘输入,成绩输出格式为左对齐,总长度为6,保留小数点后2位,要求当所有数据输入后再输出。

structstudent

{

charname[20];

charsex;

longnum;

floatscore[3];

};

9.通过键盘不断输入字符,当输入到?

号时停止输入将输入的字符转换为整型输出到屏幕上,数字之间以空格分隔,要求每输出5个字符换一次行。

10.实现一个密码程序,输出到屏幕上的字符显示为*,回车后停止输入密码,并将用户键入密码输出到屏幕上,并与已知密码进行比较,如果相同,则显示密码正确,不同则显示密码错误提示。

#include""

#include<>

#include<>

main()

{

charstr1[5],str2[5]="1234";

printf("?

?

ê?

è?

?

?

?

?

?

ü?

?

\t");

gets(str1);

if(strcmp(str1,str2)==0)

printf("?

ü?

?

?

yè·\n");

elseprintf("?

ü?

?

′í?

ó\n");

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1