2019独角兽企业重金招聘Python工程师标准>>>

1、编写一个程序,创建一个具有26个元素的数组,并在其中存储26个小写字母。并让该程序显示该数组的内容。

#include
int main (void)
{int i;int max=26;char CH[max];for(i=0;i

2、使用嵌套循环产生下列图案:

$

$$

$$$

$$$$

$$$$$


#include
int main (void)
{int i,j;for(i=0;i<5;i++){for (j=0;j<=i;j++)printf("$");printf("\n");}return 0;
}

3、使用嵌套循环产生下列图案:

F

FE

FED

FEDC

FEDCB

FEDCBA


#include
int main (void)
{int i,j;char ch='F';for(i=0;i<6;i++){for (j=0;j<=i;j++)printf("%C",ch-j);printf("\n");}return 0;
}

4、让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这们的金字塔图案:

    A

   ABA

  ABCBA

 ABCDCDA

ABCDEDCBA

这种图案要扩展到用户输入的字符。例如前面的图案是在输入E时需要产生的。提示:使用一个外部循环来处理行,在每一行中使用三个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母。

#include
int main (void)
{int i,j,k;char letter;printf("Please input a capital:");scanf("%c",&letter);k=letter-'A'+1;                    //计算字符的个数;for(i=0;i=0;j--)            //第三个循环,降序打印字母(比升序时少1个字母)printf("%c",'A'+j);printf("\n");}
return 0;
}

 5、编写一个程序打印一个表,表的每一行都给出一个整数、它的平方以及它的立方。要求用户输入表的上限和下限。使用一个for循环。

#include
int main (void)
{int i,min,max;printf("Please input the min and the max :");scanf("%d %d",&min,&max);printf("%10s%10s%10s\n","num","square","cube");for(i=min;i<=max;i++){printf("%10d%10d%10d\n",i,i*i,i*i*i);}return 0;
}

6、编写一个程序把一个单词读入一个字符数组,然后反向打印这个词。提示:使用strlen()计算数组中最后一个字符的索引。

#include
#include   //使用strlen()
int main (void)
{char word[20];int i;printf("Please input a word:");scanf("%s",&word);for(i=strlen(word)-1;i>=0;i--)  //最后一个字符的下标strlen(word)-1,word是数组名称printf("%c",word[i]);printf("\n");return 0;
}

7、编写一个程序要求输入两个浮点数,然后打印用两者的差值除以两者的乘积所得的结果。在用户键入非数字的输入之前程序循环处理每对输入值。

#include
int main (void)
{float f1,f2;printf("Please input tow floats:");while(scanf("%f%f",&f1,&f2)==2){printf("The result is %.2f\n",(f1-f2)/(f1*f2));printf("Please input tow floats:");}printf("end\n");return 0;
}

8、对练习7进行修改,让它使用一个函数来返回计算值。

#include
float fac(float a,float b);
int main (void)
{float f1,f2;printf("Please input tow floats:");while(scanf("%f%f",&f1,&f2)==2){printf("The result is %.2f\n",fac(f1,f2));printf("Please input tow floats:");}printf("end\n");return 0;
}
float fac(float a,float b)
{float c;c=(a-b)/(a*b);return c ;
}

9、编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果。程序将不断提示用户输入下限整数和上限整数并显示出方法,直到用户输入的上限整数等于或小于下限整数为止。程序运行结果示例应该如下所示

Enter lower and upper integer limits:5 9

The sums of the squares from 25 to 81 is 255

Enter next set of limits :3 25

The sums of the squares from 9 to 625 is 5520

Enter next set of limits :5 5

Done

#include
int fac(int a,int b);
int main (void)
{int n1,n2;printf("Enter lower and upper integer limits:");scanf("%d %d",&n1,&n2);while(n1

10、编写一个程序,把8个整数读入一个数组中,然后以相反的顺序打印它们;


#include
int main (void)
{int abc[8];int i;printf("Please input 8 numbers:");for(i=0;i<8;i++)          //循环读取输入{scanf("%d",&abc[i]);}for(i=7;i>=0;i--){printf("The %d is %d\n",i+1,abc[i]);}return 0;
}

11、考虑这两个无限序列:

1.0+1.0/2.0+1.0/3.0+1.0/4.0+......

1.0-1.0/2.0+1.0/3.0-1.0/4.0+......

编写一个程序来计算这两个序列不断变化的总和,直到达到 某个次数。让用户交互的输入这个次数。看看在20次、100次和500次之后 的总和。是否每个序列都看上去要收敛于某个值?提示:奇数个-1的乘积为-1,而偶数个-1的乘积为1。

#includeint main(void)
{double i,sum1,sum2;int sign,count;printf("Enter the count:");scanf("%d",&count);for(i=1.0,sign=1,sum1=0,sum2=0;i<=count;i++,sign *= -1){sum1 += 1.0 / i;sum2 += sign * 1.0 / i;      //利用sign的变化规律,使运算符在正负间交替变化}printf("1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 ...(%d terms) = %lf\n",count,sum1);printf("1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 ...(%d terms) = %lf\n",count,sum2);printf("%d\n",sign);return(0);
}

 12、编写一个程序,创建一个8个元素的int数组,并且把元素分别设置为2的前8次幂,然后打印出它们的值。使用for循环来设置值;为了变化,使用do while来显示这些值。

#include
#include
int main(void)
{int num[8];int i;for (i=0;i<8;i++){num[i]=pow(2,i);  //POW乘幂函数,利用math.h头文件}i=0;     //使用do while时需将i初始为0;doprintf("%d\t",num[i]);while(++i<8);  //退出条件为++i<8return 0;
}
/*do while 至少为执行一次,检测退出条件是否满足,满足时返回再次执行,直到while的值为flase*/

13、编写一个程序,创建两个8元素的double数组,使用一个循环来让用户键入第一个数组的8个元素的值。程序把第二个数组的元素设置为第一个数组的元素的累积和。例如,第二个数组的第4个元素应该等于第一个数组 的前4个元素的和,第二个数组的第5个元素应该等于第一个数组的前5个元素的和(使用嵌套循环可以做到这一点。不过利用第二个数组的第5个元素等于第二个数组的第4个元素加上第一个数组的第5个元素这个事实,可以避免嵌套,而使用单个循环来完成这个任务)。最后,使用一个循环来显示这两个数组的内容,第一个数组在一行中显示 ,而第二个数组的每个元素在第一个数组的对应元素之下进行显示。

#include
int main(void)
{double num[8],sum[8];int i,j;printf("Please enter 8 numbers:");for(i=0;i<8;i++)    //在一个循环中为两个数组赋值{scanf("%lf",&num[i]);for(j=0,sum[i]=0;j<=i;j++)  //从数组元素等于主数组元素的累加和;sum[i] += num[j];  /*注意此处的公式,sum数组的第n个元素等于第n-1个元素加num数组的第n元素的值*/}for(i=0;i<8;i++)printf("%8.3lf",num[i]);printf("\n");for(i=0;i<8;i++)printf("%8.3lf",sum[i]);printf("\n");return 0;
}

14、编写一个程序读入一行输入,然后反向打印该行。您可以把输入存储在一个char数组中;假定该行不超过255个字符。回忆一下,您可以使用具有%c说明符的scanf()从输入中一次读入一个字符 ,而且当您按下回车键时会产生换行符(\n).

#include<stdio.h>
#define LENGTH 20
int main(void)
{char a[255];int i;for(i=0;i<LENGTH;i++)scanf("%c",&a[i]);for(i=LENGTH-1;i>=0;i--)  //注意:i=LENGTH-1,而不等于LENGTHprintf("%c",a[i]);printf("\n");return 0;
}

15、Daphne以10%的单利息投资了100美元(也就是说,每年投资赢得的利息等于原始投资的10%)。Deirde则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息)。编写一个程序,计算需要多少年Deirdre 的投资才会超过Daphne,并且显示出到那里两个人的投资额。

#include<stdio.h>
int main(void)
{double Daphne=100,Deirdre=100;int i=0;                         //不要忘记变量的初始化while(Daphne>=Deirdre){Daphne+=100*0.1;Deirdre+=Deirdre*0.5;i++;}printf("After %d years,Deirdre's investment is %f ,Daphne's investment is %f \n",i,Deirdre,Daphne);return 0;}

16、Chuckie Luchy赢了100万美元,他把它存入每年赢得8%的帐户。在每年的最后一天,Chuckie取出10万美元。编写一个程序,计算需要多少年Chuckie就会清空他的帐户。

#include<stdio.h>int main(void)
{double investment = 100;int i=0;while(investment > 0){investment += investment * 0.08;investment -= 10;i++;}printf("After %d years,Chuckie Lucky's investment is out\n",i);return(0);
}

转载于:https://my.oschina.net/idreamo/blog/689759

C Primer Plus 第6章 C控制语句 6.16 编程练习及答案相关推荐

  1. [转载] C Primer Plus 第6章 C控制语句 6.16 编程练习及答案

    参考链接: 用Python打印金字塔图案的程序 2019独角兽企业重金招聘Python工程师标准>>> 1.编写一个程序,创建一个具有26个元素的数组,并在其中存储26个小写字母.并 ...

  2. C Primer Plus 第6章 C控制语句:循环 6.3 关系运算符和表达式

    2019独角兽企业重金招聘Python工程师标准>>> 关系运算符 运算符 含义 < 小于 <= 小于等于 == 等于 >= 大于等于 > 大于 != 不等于 ...

  3. C Primer Plus 第7章 C控制语句:分支和跳转 7.1 if语句

    2019独角兽企业重金招聘Python工程师标准>>> 这个程序读入一系列每日的最低温度(摄氏度),并报告输入的总数,以及最低温度在零度以下的天数的百分率.在一个循环里使用scanf ...

  4. C Primer Plus 第6章 C控制语句:循环 6.9 选择哪种循环

    2019独角兽企业重金招聘Python工程师标准>>> 首先要确定您需要入口条件循环还是退出条件循环.通常是需要入口条件循环.首先是因为一般原则是在跳过(或循环)之前进行查看要比之后 ...

  5. C Primer Plus 第7章 C控制语句:分支和跳转 7.4 一个统计字数的程序

    2019独角兽企业重金招聘Python工程师标准>>> 首先,这个程序应该逐个读取字符,并且应该有些方法判断何时停止:第二,它应该能够识别并统计下列单位:字符.行和单词.下面是伪代码 ...

  6. C++ Primer 第十六章 模板与范型编程

    16.1 模板定义     模板和c#范型一样,建立一个通用的类或函数,其参数类型和返回类型不具体指定,用一个虚拟的类型来代表,通过模板化函数或类实现代码在的重用.     定义语法是:    tem ...

  7. c++ primer 5th第13章拷贝控制知识点和自编习题答案

    首先,先给大家提个醒.在网上的随书源代码里关于hasptr类的类指针版本编写的移动构造函数.移动赋值运算符.和析构函数部分是有错误的.大家可以把hasptr累指针版本(里面带移动构造函数和移动赋值运算 ...

  8. C++ Primer plus 第12章类和动态内存分配复习题参考答案

    假设String类有如下私有成员 class String { private:char* str; //points to string allocated by newint len; //hol ...

  9. C Primer Plus 第7章之菜鸟儿的编程题答案

    本文仅为记录自己手打编程题答案所用,不能保证正确性,欢迎大家学习交流,有问题请随时指出~ 1.原版: #include<stdio.h>int main(void) {int i = 0; ...

最新文章

  1. 动态规划中的多段图问题
  2. 鼠标终将消失,未来我们有哪些人机交互方式?
  3. 在单链表和双链表中删除倒数第K个节点
  4. 【开源】接口管理平台eoLinker AMS 开源版3.1.5同步线上版!免费增加大量功能!...
  5. 微软一顿操作猛如虎,PowerShell 排名直线上升
  6. idea中每次push/pull都需要输入账号密码
  7. 笨办法学 Python · 续 练习 45:创建 ORM
  8. 极简风海报作品合集|过目不忘的海报大片,越看越过瘾
  9. Entity Framework 延伸系列目录
  10. 黑莓桌面管理器更新到5.0.1.37版本
  11. 代码敲累了就来看看《创业计划书结构》
  12. 使用PROJ将空间坐标点从WGS84坐标系转换到UTM坐标系
  13. 宝塔面板SSpanel-v3-mod安装教程 搭建sspanel v3魔改前端
  14. 如何用python解码base32/base64
  15. DDR4两根4G组的双通道跟1根8G单通道有什么区别?
  16. 阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
  17. 可视化系列讲解:css3D:如何绘制正方体,长方体等
  18. 状态压缩技巧:动态规划的降维打击
  19. Linux文件类型和根目录结构
  20. 如何在https协议下访问http等不安全的资源

热门文章

  1. sharepoint 配置站点导航栏 顶级菜单栏的下拉菜单
  2. 索引贴——移动开发(.Net CF 停止更新)
  3. Linux下 su命令与su - 命令的区别
  4. 华为荣登2015年VoIP和IMS市场榜首
  5. python标准异常
  6. 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
  7. JBoss7官方下载最新版本
  8. 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第二步)(4)...
  9. apache workprefork
  10. asp.net mvc fckeditor全攻略(补充:Controller中传值的问题)