资源描述:
《c语言地4章课后题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、第四章p56-58页的习题4.1—4.3。4-1(1)分析并写出下列程序运行结果#includemain(){charc1='a',c2='b',c3='c';/*定义三个字符*/printf("a%cb%cc%c",c1,c2,c3);/*格式化输出三个字符*/}结果:(2)#includemain(){inta=12,b=15;printf("a=%d%%,b=%d%%",a,b);/*格式化输出a=12%,b=15%*/}结果:(3)假设程序输入1
2、23456#includemain(){inta,b;scanf("%2d%*2s%2d",&a,&b);/*对输入的数取前两位赋给a,跳过长度为2的字符串,再取两位数赋给b*/printf("%d,%d",a,b);}结果:4-2分析下面程序,请指出错误原因和程序错在哪里,并改正错误改正后:#includemain(){longa,b;floatx,y;scanf("%ld,%ld",&a,&b);getchar();scanf("%5f,%5f",&x,&y
3、);printf("a=%ld,b=%ld",a,b);printf("x=%f,y=%f",x,y);}错误分析:1、定义long型,输入时要写成%ld,输入时不能加入,取址符号&丢掉,scanf函数中不.n,规定精度2、输出a,b对应为long型,输出格式符为%ld,x,y对应为float型,输出格式为%f,%f3、在两个scanf()函数中,输入4个数时,会在两个整数和两个浮点型数之间加入逗号,但加入逗号后,第二条scanf()语句会认为逗号也为有效输入项,后面的浮点型数就不会被读入
4、,所以要加入getchar()函数将逗号吸收掉。4-3、填空题(1)要使下面程序在屏幕上显示1,2,34,则从键盘输入的数据格式应为1234#includemain(){chara,b;intc;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d",a,b,c);}结果:(2)在与上面程序的键盘输入相同的情况下,若将程序中的第7条语句修改为Printf(“%-2c%-2c%d”,a,b,c);则屏幕输出为1234(3)要使上面程序的键盘输入数据
5、格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应将程序中的第六条语句修改为scanf("%c%*c%c%*c%d",&a,&b,&c)(4)在(3)的程序基础上,程序仍然输入1,2,34,若将程序中的第7条语句修改为Pirntf(“’%c’,’%c’,%d”,a,b,c);则程序的屏幕输出为’1’,’2’,34(5)要使上面程序的键盘输入无论用哪种格式输入数据,程序在屏幕上的输出结果都为1,2,34,则将程序中的第6条语句修改为scanf("%c%*c%c%*c%d",
6、&a,&b,&c);第1种输入方式:1,2,34(以逗号作为分隔符)第2种输入方式:1234(以逗号作为分隔符)第3种输入方式:1234(以逗号作为分隔符)第4种输入方式:1234(以回车作为分隔符)二、收集资料,总结printf和scanf函数的用法。一、print格式化输出函数1、print(“要输出的字符序列”)注意:“要输出的字符序列”必须用英文的双引号括起来,其作用是在屏幕上原样输出“要输出的字符序列”。例如:printf(“Ilovechina!”);屏幕结果:Ilovechina!2、p
7、rintf(“输出格式控制符”,输出列表项)注意:“输出格式控制符”必须用英文的双引号括起来,其作用是按照输出格式来输出后面的输出列表项的值。Printf(“%d,%d”,x,y);的作用是:以%d的格式输出变量x,y的值,中间以逗号分隔。“输出格式控制符”可以是:(1)格式符:即由%和格式字符组成,如:%d,%f等(2)普通字符:如printf(“a=%d,b=%d”,a,b);中的“a=”、“b=”都是普通字符,普通字符原样输出。(3)转义字符:如printf(“a=%d,b=%d”,a,
8、b);中的“”。其含义是“换行”。C语言中常使用的格式字符共用9种。格式符字说明d,i输出带符号位的十进制整数(整数前无符号)O以八进制无符号形式输出整数(无前导o)X或x以十六进制无符号形式输出整数(无前导ox),用x则输出的a~f是小写的形式,用X则输出的a~f是大写的形式U以十进制无符号型输出整数C输出一个字符S输出字符串的字符,遇到“ ”时结束输出,或者输出由精度指定的字符数F以小数形式输出单精度或双精度数,隐含输出六位小数,当指定精度为0