好文档 - 专业文书写作范文服务资料分享网站

C primer plus(第五版)课后编程练习答案(完整) 

天下 分享 时间: 加入收藏 我要投稿 点赞

#include

double min(double ,double );

int main(void) {

double x,y;

printf(\ scanf(\

printf(\ return(0); }

double min(double a,double b) {

return a

2.设计函数chline(ch, i, j),实现指定字符在i列到j列的输出,并用一个简单的驱动程序测试该函数。

#include

void chline(char , int , int );

int main(void) { int x,y; char ch;

printf(\ scanf(\

printf(\ scanf(\ chline(ch,x,y); return 0; }

void chline(char ch, int i, int j) { int k;

for(k=1; k

for( ; k<=j; k++) printf(\ printf(\}

3.编写一个函数。函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。

#include

void chline(char , int , int );

int main(void) { int x,y; char ch;

printf(\ scanf(\

printf(\ scanf(\ chline(ch,x,y); return 0; }

void chline(char ch, int column, int row) { int x,y;

for(y=0; y

for(x=0; x

4.两数值的谐均值可以这样计算:首先对两数值的倒数取平均值,最后再取倒数。编写一个带有两个double参数的函数,计算这两个参数的谐均值。

#include

double calculate(double ,double );

int main(void) {

double a,b;

printf(\ scanf(\

printf(\ return 0; }

double calculate(double x,double y) {

return 1/( (1/x+1/y) / 2 ); }

5.编写并测试函数larger_of(),其功能是将两个double类型变量的数值替换成它们中的较大值。例如,larger_of(x,y)会把x和y中的较大数值重新赋给变量x和y

#include

void large_of(double *,double *);

int main(void) {

double a,b;

printf(\ scanf(\ large_of(&a,&b);

printf(\ return 0; }

void large_of(double *x,double *y) {

*x = *y = *x>*y? *x:*y; }

6.编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对于每个字符,程序需要检查并报告该字符是否是一个字母。如果是的话,程序还应报告该字母在字母表中的数值位置。例如,c和C的字母位置都是3。可以先实现这样一个函数:接受一个字符参数,如果该字符为字母则返回该字母的数值位置,否则返回-1。

#include #include int ABC(char ch);

int main(void) { char ch;

printf(\ scanf(\

printf(\ return 0; }

int ABC(char ch) {

if(isalpha(ch)) return tolower(ch) - 'a' + 1 ; else return -1; }

7.在第6章“C控制语句:循环”的程序清单6.20中,函数power()的功能是返回一个double类型数的某个正整数次幂。现在改进该函数,使其能正确地计算负幂。同时,用该函数实现0的任何次幂为0,并且任何数值的0次幂为l。使用循环的方法编写该函数并在一个程序中测试它。

#include

double power(double , int );

int main(void) {

double x; int exp;

printf(\ scanf(\

printf(\

return 0; }

double power(double n, int p) { int i; double pow=1; if (p>0)

for(i=1;i<=p;i++) pow *= n; else if(p<0) for(i=-1;i>=p;i--) pow /= n; else if(n != 0) pow = 1;

else pow = 1 / n; //0的0次幂无意义,所以用1/0这个无意义数(1.#INF)代替

return pow; }

8.使用递归函数重做练习7。

#include

double power(double , int );

int main(void) {

double x; int exp;

printf(\ scanf(\

printf(\ return 0; }

double power(double n, int p) { int i; double pow=1; if (p>0)

C primer plus(第五版)课后编程练习答案(完整) 

#includedoublemin(double,double);intmain(void){doublex,y;printf(\scanf(\printf(\return(0);}doublemin(doublea,doubleb){
推荐度:
点击下载文档文档为doc格式
5z8290lv46670et7bbey
领取福利

微信扫码领取福利

微信扫码分享