1.题略

/*返回较小值,设计驱动程序测试该函数*/
#include <stdio.h>
double min (double a, double b); int main (void)
{
double x, y; printf ("Please enter two numbers: \n");
scanf ("%lf %lf", &x, &y);
printf ("The smaller one is %lf\n", min (x, y));
return ;
} double min (double a, double b)
{
return (a < b) ? a: b;
}

2.题略

/**/
#include <stdio.h>
void chline (char, int, int); int main (void)
{
int i, j;
char ch; printf ("Please enter a char and two int: \n");
scanf ("%c %d %d", &ch, &i, &j);
chline (ch, i, j);
return ;
} void chline (char ch, int i, int j)
{
int count;
for (count = ; count <= j; count++)
{
if (count < i)
putchar (' ');
if (count >= i && count <= j)
putchar (ch);
if (count < || count > j)
break;
}
putchar ('\n');
}

3.题略

/**/
#include <stdio.h>
void p_ch (char, int, int); int main (void)
{
int i, j;
char ch; printf ("Please enter a char you like: \n");
scanf ("%c", &ch);
printf ("How many of them do you want to see in a line: \n");
scanf ("%d", &i);
printf ("How many lines do you want to have: \n");
scanf ("%d", &j);
p_ch (ch, i, j);
printf ("Is it what you want? \n");
return ;
} void p_ch (char ch, int cols, int rows)
{
int i, j;
for (i = ; i <= rows; i++)
{
for (j = ; j <= cols; j++)
putchar (ch);
printf ("\n");
}
}

4.题略

/**/
#include <stdio.h>
double calculate (double, double); int main (void)
{
double a, b;
printf ("input two doubles: ");
scanf ("%lf %lf", &a, &b);
printf ("1 / ((1/x + 1/y) / 2) = %.3f\n", calculate (a, b));
return ;
} double calculate (double x, double y)
{
return / ((/x + /y) / );
}

5.题略

/**/
#include <stdio.h>
void larger_of (double *, double *); int main (void)
{
double a, b;
printf ("Please enter two numbers: ");
scanf ("%lf %lf", &a, &b);
larger_of (&a, &b);
printf ("Now the a is %.2f and b is %.2f", a, b);
return ;
} void larger_of (double * x, double * y)
{
*x = *y = (*x > *y) ? *x : *y;
}

6.题略

/**/
#include <stdio.h>
void Judge(int ch); int main(void)
{
int ch; printf("enter some txt to be analyzed(ctrl+z to end):\n");
while ((ch = getchar()) != EOF)
Judge(ch);
printf("Done\n");
} void Judge(int ch)
{
if (ch>= && ch<=) printf("%c is number %d\n", ch, ch-);
else if (ch>= && ch<=) printf("%c is number %d\n", ch, ch-);
else printf("%c is not a letter\n",ch);
}

7.题略

#include <stdio.h>
double power(double n, int p); int main (void)
{
double Do;
int In; printf("Please enter a double and a int(to calculate pow):\n");
while (scanf("%lf %d",&Do, &In))
{
printf("%lf\'s %d mi is %lf\n", Do, In, power(Do, In));
}
printf("Done!\n");
} double power(double n, int p)
{
int i;
double pow=; if (n==)
return ; if (p==)
return ;
else if (p > )
{
for (i=; i<p; i++)
pow*=n;
return pow;
}
else if (p < )
{
for (i=; i<(-p); i++)
pow*=n;
return /pow;
}
}

8.题略

主函数与7题相同,关键是幂函数(递归形式),代码如下,还是挺考验逻辑的。

double power(double n, int p)
{
double ans; if (p < )
{
ans = power(n,-p);
ans = /ans;
}
else if (p > )
ans = n * power(n,p-);
else if (p == )
ans = ;
return ans;
}

9.题略

/*binary.c 以二进制形式输出整数*/
#include <stdio.h>
void Binary(int x, int y); int main(void)
{
int x, y; printf("Please enter a int (>=0)\n");
while (scanf("%d %d", &x,&y) == )
{
if (y> || y<) continue;
Binary(x,y);
printf("\nPlease enter 2 int(q to quit):\n");
}
printf("Done!\n");
} void Binary(int x, int y)
{
int z;
z = x % y;
if (x/y != )
Binary(x/y, y);
printf("%d",z);
}

10.题略

关键点:利用循环的方式生成斐波那契数列,从下往上计算。即通过f(0) + f(1) 得到f(2), 再由f(1) + f(2)得到f(3)....直到计算出f(n),每次都必须从底层算起,然后三个变量相互赋值,迭代计算。

int Fibonacci( unsigned int n )
{
unsigned int FibN, FibNOne, FibNTwo;
unsigned int i; int result[] = { , };
if( n < )
return result[n-]; FibNOne = ;
FibNTwo = ;
FibN = ;
for( i = ; i <= n; i++ )
{ /*以第一次循环执行过程为例*/
FibN = FibNOne + FibNTwo; /*f(2) = f(0) + f(1)*/
FibNOne = FibNTwo; /*f(1)*/
FibNTwo = FibN; /*f(2)*/
}
return FibN;
}

C Primer Plus_第9章_函数_编程练习的更多相关文章

  1. C Primer Plus_第6章_循环_编程练习

    1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...

  2. C Primer Plus_第5章_运算符、表达式和语句_编程练习

    Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...

  3. C Primer Plus_第四章_字符串和格式化输入输出_编程练习

    Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...

  4. Oracle学习总结_day03_day04_条件查询_排序_函数_子查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...

  5. C Primer Plus_第10章_数组和指针_编程练习

    1. /*rain.c 针对若干年的降水量数据,计算年降水总量.年降水平均量,以及月降水平均量*/ #include <stdio.h> #define MONTHS 12 #define ...

  6. C Primer Plus_第8章_字符输入输出和输入确认_编程练习

    1.题略 #include <stdio.h> int main(void) { ; printf("Please enter text here(end with Ctrl + ...

  7. C Primer Plus_第三章_数据和C_复习题与编程练习

    Review long代替int类型变量的原因是什么? 在您的系统中,long可以容纳比int更大的数:如果您确实需要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型会使程序的可移植性更 ...

  8. [C++ Primer Plus] 第8章、函数探幽(二)课后习题

    1.编写通常接受一个参数(字符串的地址),并打印该字符串的函数.不过,如果提供了第二个参数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第 ...

  9. [C++ Primer Plus] 第8章、函数探幽(一)程序清单——内联、引用、格式化输入输出、模板、decltype

    程序清单8.1(inline内联函数) #include<iostream> using namespace std; inline double square(double x) {// ...

随机推荐

  1. Android利用Jsoup解析html 开发网站客户端小记。

    这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容.好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体 ...

  2. CSS3系列之3D制作

    一.序 博主最近这些天,突发奇想的想研究一下CSS3的东西,从而提升一下CSS的能力,在学习的过程中发现其实CSS3是一个挺复杂的东西,深入的研究,你可能会涉及到初中的光学理论来帮助理解一些概念,同时 ...

  3. 平行四边形导航,背景颜色渐变动画(不支持IE6/7/8)

    body{ font-size: 14px; } ul ,li{ margin:0px; padding:0px; list-style: none; } .box{ width: 1000px; h ...

  4. 【JavaScript】[bind,call,apply] (function cal(){}());声明函数立即执行

    ---恢复内容开始--- 1.js 里函数调用有 4 种模式:方法调用.正常函数调用.构造器函数调用.apply/call 调用.同时,无论哪种函数调用除了你声明时定义的形参外,还会自动添加 2 个形 ...

  5. pyhton 学习

    官方学习文档 https://docs.python.org/3/tutorial/

  6. input-placeholder

    :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #f00; } ::-moz-placeholder { /* Mozilla Fir ...

  7. IIS如何配置可以下载APK、IPA文件

    解决步骤: 1).打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性: 2.单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口: 3).单击“新建”,建立新的MIME类型 ...

  8. 个人学习记录2:ajax跨域封装

    /** * 跨域提交公用方法 * @param param 参数 * @param url 跨域的地址 * @param callFun 回调函数 callFun(data) */ function ...

  9. elasticsearch snapshot

    一.Repositories 在elasticsearch.yml文件中增加path.repo路径配置: $ vim /etc/elasticsearch/elasticsearch.yml path ...

  10. 11月14日用AJAX、PHP、SESSION做购物车

    购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...