《C程第3单元作业2 数据IO.doc》由会员分享,可在线阅读,更多相关《C程第3单元作业2 数据IO.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3单元作业2 数据IO注:本次作业100分。请将答案写到后面的模板中。1.说明下列每对scanf格式串是否等价?如果不等价请指出它们的差异。可举例说明。(8分)(1) “%d”与“ %d”(2) “%d-%d-%d”与“%d -%d -%d”(3) “%f”与“%f ”(4) “%f,%f”与“%f, %f ”2.假设scanf函数调用的格式如下:(6分) scanf(“%d%f%d”,&i,&x,&j); 如果用户录入如下信息: 10.3 5 6 调用执行后变量i、x、j的值分别是多少?(假设i j都是int型,x是float型)。3.假设scanf函数调用的格式如下:(6分) scanf
2、(“%f%d%f”,&x,&i,&y); 如果用户录入如下信息: 12.3 45.6 789 调用执行后变量x、i、y的值分别是多少?(假设x y都是float型,i是int型)。4.假设按照下列形式调用scanf函数:(8分) n=scanf(“%d%f%d”,&i,&x,&j); (其中i j n都是int型变量,x是float型变量)假设输入流中含有下面所示的字符,请指出这个调用后i、j、n、x的值。此外,请说明一下调用会消耗掉哪些字符。(1)102030(2)1.02.03.0(3)0.10.20.3(4) .1.2.35.下面的printf函数产生的输出分别是什么?(8分)(1)pr
3、intf(“%6d,%4d”,86,1040 );(2) printf(“%12.5e”,20.253 );(3) printf(“.4f”,83.162 );(4) printf(“%-6.2g”, . );6.编写printf函数调用以下格式来显示float型变量x:(8分)(1) 指数表示形式:最小为8的字段宽度内左对齐;小数点后保留1位数字(2) 指数表示形式:最小为10的字段宽度内右对齐;小数点后保留6为数字(3) 十进制表示形式:最小为8的字段宽度内左对齐;小数点后保留3位数字(4) 十进制表示形式:最小为6的字段宽度内右对齐;小数点后无数字7.指出如果printf函数用%#012
4、.5g作为转换说明来执行显示操作,下列数据显示的形式:(8分)(1)83.7361(2)29748.6607(3).0(4)0.8.按要求补充下面程序代码,并运行通过。(8分)include int main() int a; unsigned b; long c; unsigned long d; printf(enter a b:n); /*参照后面的人机交互形式1,编写一条scanf语句输入变量a b 的值。*/ /*参照后面的人机交互形式2,编写一条printf语句输出a、b的值*/ getchar(); printf(enter c d:n); /*参照后面的人机交互形式3,编写一条
5、scanf语句输入变量c d 的值。*/ /*参照后面的人机交互形式4,编写一条printf语句输出c、d的值*/return 0;要求:补充程序中的printf和scanf,使得程序运行后人机交互形式和程序输出形式如下所示:enter a b:a=3b=4 /* 形式1:编写scanf. 注:表示空格 */a=3;b=4 /* 形式2: 编写printf. 说明:要求在3个域宽内右对齐 */enter c d:c=51274;d= /* 形式3:编写scanf. */c=51274;d= /* 形式4:编写printf. 说明:要求在10个域宽内左对齐 */思考:删除程序中的getchar(
6、) ; 后运行程序会出现什么情况?getchar()在这里什么作用?9.按要求补充程序代码,并运行通过。(6分)#include int main() char c1,c2; printf(enter c1,c2:n); /*参照人机交互形式1,编写一条scanf语句输入变量c1 c2的值。*/ /*参照人机交互形式2,编写一条printf语句输出c1的两种显示形式:字符和ASCII值*/ /*参照人机交互形式3,编写一条printf语句输出c2的两种显示形式:字符和ASCII值*/return 0;要求:补充程序中的printf和scanf,使得程序运行后人机交互形式和程序输出形式如下所示:
7、enter c1 ;c2:c1=a;c2=b /* 形式1:编写scanf. */ c1=aor97(ASCII) /* 形式2:编写pirntf. 说明: 输出字符与其Ascii码值*/ c2=bor98(ASCII) /* 形式3:编写pirntf. 说明: 输出字符与其Ascii码值*/ 10.读程序写结果。下面程序运行后若输入123.45678,输出结果是什么?(4分) #include int main() float x; printf(enter x:); scanf(%f,&x); printf(x=|%-15.4f|nx=|%15.4f|nx=|%15.2e|nx=|%15.
8、4g|n,x,x,x,x);11.编写一个程序,接收用户录入的日期信息并且将其显示出来。其中,输入日期的形式为月/日/年(即mm/dd/yy),输出日期的形式为年月日(即yymmdd)。格式如下所示:(10分)Enter a date(mm/dd/yy): 2/17/96You entered the date 提示:输出年月日时都是两位输出,若不满两位则前面补012.编写一个程序,对用户录入的产品信息进行格式化。程序运行后需有如下会话:(10分)Enter item number: 583Enter unit price:13.5Enter purchase date(mm/dd/yy):
9、10/24/95itemUnitPurchasePriceDate583$ 13.5010/24/95其中,数字项和日期项采用左对齐方式;单位价格采用右对齐方式,美元单价的最大取值为9999.99。提示:使用t控制列对齐13.图书用国际标准图书编号(ISBN)进行标识,如0-393-30375-6。编号中的第一个数字说明编写书籍所用的语言(例如,0表示英语,3表示德语)。接下来的一组3个数字表示出版社(例如,393是清华出版社的编号),而随后的一组5个数字则是出版社设定的,用来识别图书(例如,30375是作者莫言的一本书红高粱的编号)。最后,结尾一个数字是“校验数字”,它用来验证前面数字的准确
10、性。(10分)编写一个程序来分解用户录入的ISBN信息,格式如下:Enter ISBN: 0-393-30373-6Language:0Publisher:393Book Number:30375Check digit:6第3单元作业2:数据IO序号:_ 姓名:_ _ 实验课时间:_ _ 分数:_1.(1)等价。(2)不等价,前者输入格式为1-2-3,后者输入格式为1 -2 -3。(3)不等价,前者可以结束,后者无法输入结束。(4)不等价,两者无法输入第二个实型,但前者可以结束,后者无法结束。2. i:1,x:0.,j:563. x:12.,i:45,y:0.4(1)10、20、0.0000、
11、3 (2)1、0.0000、2、3(3)0、0.1000、0、3 (4)0、1.0000、0、05.(1)86、1040 (2) 2.0253e00001(3)83.1620 (4)000.006. (1) printf(%-8.1e/n, x); (2) printf(%10e/n, x); (3) printf(%-8.3f/n, x); (4)printf(%6.0f, x);7. (1).736 (2). (3)01.0549e+009 (4)02.3522e-0068. scanf(a=%d b=%u,&a,&b); 其作用是结束之前的程序 printf(a=%3d;b=%3un,a
12、,b); scanf(c=%ld d=%lu,&c,&d); printf(c=%-10ld;d=%-10lun,c,d);9. scanf(c1=%c;c2=%c,c1,c2); printf(c1=%c or %dn); printf(c2=%c or %dn);10. x=|123.4568 |x=| 123.4568|x=| 1.23e+002|x=| 123.5|11. #include int main() printf(Enter a date (mm/dd/yy): ); int year = 0, month = 0, day = 0; scanf(%d/%d/%d, &mo
13、nth, &day, &year); printf(You entered the date %02d%02d%02d, year, month, day); return 0; 12.#include int main() int number = 0,float price = 0, int year = 0,month = 0,day = 0; printf(Enter item number: ); scanf(%d, &number); printf(Enter unit price: ); scanf(%f, &price); printf(Enter purchase date
14、(mm/dd/yy): ); scanf(%d/%d/%d, &month, &day, &year); printf(Item Unit Purchase/n); printf(%-9d$ %-9.2f%02d%02d%02d, number, price, month, day, year); return 0; 13#include int main() int language, publisher, booknumber, checkdigit; printf(please enter the ISBN: ); scanf(%d-%d-%d-%d, &language, &publisher, &booknumber, &checkdigit); printf(Language: %d/nPublisher: %d/nBook Number: %d/nCheck digit: %d, language, publisher, booknumber, checkdigit); return 0;