资源描述:
《C语言程序设计 (何钦铭 颜晖 著) 浙江科学技术出版社 习题5 课后答案.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题参考答案习题五4.0.00,15.0101006.111110127.C8.D9.C10.ch>=’A’&&ch<=’Z
2、
3、ch>=’a’&&ch>=’z’11.312.013.A:6B:4C:1D:1E:3F:114.A15.B16.C17.(i-1)%3或者(i+2)%318.119.#####020.9,821.7共循环7次,每次循环中k=k*(k+1)/2都使k赋值为1,因此s每次加1,循环条件是sum%7,即sum%7!=0,因此s:01234567(结束循环)22.(1)for(;;)中没有设定循环条件,相当于无条件地循环;在
4、循环体内也没有break语句,不可能结束循环(2)循环变量i的初值是4,循环体中i++使它的值越来愈大,而循环条件是while(i),即i!=0,因此会死循环23.略24./*输入一个十进制整数,输出相应的八进制和十六进制整数)*/#includevoidmain(){intk;printf("Inputk:");scanf("%d",&k);printf("o:%o,x:%X",k,k);}25./*输入一批整数,以0或负数为结束标志,求其中的偶数之和*/#includevoidmain(){intn1,n2,n3
5、,n4;//n1:字母n2:空格n3:数字n4:其他charch;n1=n2=n3=n4=0;//输入一行字符,即以回车为结束符号,统计各类字符数量printf("Inputalineofcharacters:");while((ch=getchar())!=''){if(ch>='a'&&ch<='z'
6、
7、ch>='A'&&ch<='Z')n1++;elseif(ch=='')n2++;elseif(ch>='0'&&ch<='9')n3++;elsen4++;}printf("n1=%d,n2=%d,n3=%d,n4=%d",n1,n2,n
8、3,n4);}26./*输入一行字符,统计其中单词的个数,各单词之间以一个或多个空格分隔*///可以简单地认为#includevoidmain(){intnum;//单词个数charch;num=0;//输入一行字符,即以回车为结束符号,统计单词数量printf("Inputalineofwords:");while((ch=getchar())!=''){if(ch=='')//输入空格if(first){n++;first=0;}//输入的是单词后的第1个空格else;else//输入非空格first=1;}printf("%
9、d",num);}27./*简单运算器,如2+5×3=7×3=21,题意更改了运算优先级别,按先后顺序计算*/#includevoidmain(){intresult=0,num=0;//num操作数result运算结果charch,op='+';//op存放运算符//result初值为0,op初值为‘+’,输入第1个操作数和运算符后,按流程该操作数与result(0)相加,保持不变//输入算式,以等号'='为结束符号printf("Inputaformula:");do{ch=getchar();if(ch>='0'&&ch<=
10、'9')//数字字符,转换成十进制整数numnum=num*10+ch-'0';elseif(ch=='+'
11、
12、ch=='-'
13、
14、ch=='*'
15、
16、ch=='/'
17、
18、ch=='=')//输入运算符,表示操作数num已输完,需做一次运算{switch(op){//op中是上一次的运算符case'+':result+=num;break;case'-':result-=num;break;case'*':result*=num;break;case'/':result/=num;}op=ch;//再保存当前输入的运算符num=0;//操作数清0,为下一次输入数
19、字——转换成十进制整数做准备}elsebreak;//若输入其他字符,提前结束循环}while(ch!='=');//输入‘=’,结束循环printf("%d",result);}n位28./*输入2个正整数a和n,求a+aa+。。。+aa…a,要求定义并调用函数fn(a,n),它的功能是返回由n位a组成的整数aa…a*/算法分析:1.函数分工:主函数main()负责输入a和n,循环调用fn(),即fn(a,1),fn(a,2),…fn(a,n),并求累加和,输出累加和;函数fn(a,n)负责计算并返回由n位a组成的整数#include20、>intfn(inta,intn);voidmain(){inta