C语言课后习题答案(最终)(5)

2019-04-16 22:06

{

int i;

for(i = 1;i < 4;i ++ ) { }

printf(”\\n”); return 0; } 答:

246

5. 指出下列函数定义中的错误:

double sum(double x,y); {

return (x*x+y*y); } 答:

函数的第二个参数应改为:double y

6.问一个人的年龄多大,问第五个人他说比第四个人大2岁。问第四个人,他说比第三个人大2岁。问第三个人,他说比第二个人大2岁。问第二个人,他说比第一个人大2岁。问第一个人,他说是10岁。用递归调用实现。 答:

void age(int n)

{

int c;

if(n == 1) c = 10; else c = age(n-1)+2; return(c); }

int main() {

printf(\return 0; }

7.编写一个函数,将两个字符串连接。 答:

char *strcat(char *cTarget, const char *cSource) {

fun();

char *cOriginal = cTarget;

while(*cTarget) cTarget ++; // Find the end of the string while(*cTarget++ = *cSource ++); return(cOriginal); }

8.编写函数int fullNumber(int value),其功能是如果参数是完数则返回该数。所谓完数,即指该数等于其所有真因子(不包括其本身)之和,例如,6的因子有1、2、3,且6=1+2+3,故6为完数。 答:

int fullNumber(int iValue) {

int i = 1;iSum = 0; do {

if(value%i == 0) iSum = iSum+i; i++

}while(i <= iValue) if(iSum == iValue)

return iValue; else

}

9. 编写一函数,由实参传入一个字符串。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数,在主函数中输入字符串以及输出上述结果。 答:

stat(char cArticle[240])

{

int i;

int iUpper = 0,iLower = 0,num = 0,iSpace = 0,iOther = 0; for(i = 0;i < 240;i++) {

return -1;

if(cArticle[i] == ’ ’) iSpace++;

else if(cArticle[i] >= 'A'&& cArticle[i] <= 'Z') iUpper++; else if(cArticle[i] >= 'a'&& cArticle[i] <= 'z') iLower++; else if(cArticle[i] >= '0'&& cArticle[i] <= '9') num++; else iOther++; }

printf(\

are

%d

upper

letter

%dlower

letter } main() {

%dnumber %dother %dspace in this article\

iUpper,iLower,num,iOther,iSpace);

char cArticle[240]; scanf(\

stat(cArticle); }

10.给出年、月、日,计算该日是该年的第几天。 答:

int main() {

int day,month,year,sum,leap;

printf(”\\nplease input year,month,day\\n”); scanf(”%d,%d,%d”,&year,&month,&day); switch(month) {

case 1: sum = 0; break; case 2: sum = 31; break; case 3: sum = 59; break; case 4: sum = 90; break; case 5: sum = 120; break; case 6: sum = 151; break; case 7: sum = 181; break; case 8: sum = 212; break; case 9: sum = 243; break; case 10: sum = 273; break; case 11: sum = 304; break; case 12: sum = 334; break;

default: printf(”data error”); break; }

sum = sum + day;

if(year@0 == 0||(year%4 == 0&&year0 != 0))

leap = 1; leap = 0; else

if(leap == 1&&month > 2) sum ++;

printf(”It is the %dth day.”,sum);

} 思考题

1. 编写一个递归函数void palin (int n),其功能为将给定的n个字符逆序输出。例如,通过n输入字符 abc,输出cba。 答:

#include int main() {

int i=5;

}

void palin(int n) {

char cNext; if(n<=1) { } else {

}

2. 用C程序实现简单计算器。要求分别用子函数实现+、-、*、/的功能,且根据您的输入自动调用相应的子函数。 答:

float add(float x,float y) {

}

float sub(float x,float y) {

return (x+y); }

cNext=getchar(); palin(n-1); putchar(cNext); cNext=getchar(); printf(\putchar(cNext); void palin(int n); printf(\palin(i); printf(\

}

return (x-y);

float mul(float x,float y) {

}

float div(float x,float y) {

return (x/y); }

int main() {

float x,y,fResult; char c; if(c == '+')

fResult = add(x,y); fResult = sub(x,y); fResult = mul(x,y); fResult = -1; fResult = div(x,y); else if(c == '-')

else if(c == '*') else if(y == 0) else

if(fResult == -1)

printf(\

else

printf(\return 0; }

return (x*y);

scanf(\


C语言课后习题答案(最终)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青年员工培养方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: