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

参考链接: 用Python打印金字塔图案的程序

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。 

 #include

 

int 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;

    do

        printf("%d\t",num[i]);

    while(++i<8);  //退出条件为++i<8

    return 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,而不等于LENGTH

        printf("%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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# String和string的区别

C#中同时存在String与string MSDN中对string的说明&#xff1a; string is an alias for String in the .NET Framework。string是String的别名而已&#xff0c;string是c#中的类&#xff0c;String是Framework的类&#xff0c;C# string 映射为 Framework的 String。如果用str…

要求用户在Python中输入整数| 限制用户仅输入整数值

input() function can be used for the input, but it reads the value as a string, then we can use the int() function to convert string value to an integer. input()函数可用于输入&#xff0c;但它将值读取为字符串&#xff0c;然后可以使用int()函数将字符串值转换为…

[转载] python——if语句、逻辑运算符号

参考链接&#xff1a; 用Python链接比较运算符 1.if条件判断语句&#xff1a; if 要判断的条件(True): 条件成立的时候&#xff0c;要做的事情 elif 要判断的条件(True): .... elif 要判断的条件(True): .... else: 条件不成立的时候要做的事情 示例&#xff1a; 判断学生…

洛谷 P2689 东南西北【模拟/搜索】

题目描述 给出起点和终点的坐标及接下来T个时刻的风向(东南西北)&#xff0c;每次可以选择顺风偏移1个单位或者停在原地。求到达终点的最少时间。 如果无法偏移至终点&#xff0c;输出“-1”。 输入输出格式 输入格式&#xff1a; 第一行两个正整数x1,y1&#xff0c;表示小明所…

单链表遍历_单链表及其遍历实现的基本操作

单链表遍历单链表 (Single linked list) Single linked list contains a number of nodes where each node has a data field and a pointer to next node. The link of the last node is to NULL, indicates end of list. 单个链表包含许多节点&#xff0c;其中每个节点都有一…

[转载] python中for语句用法_详解Python中for循环的使用_python

参考链接&#xff1a; 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 “探索 Python&#xff0c;第 5 部分&#xff1a;用 Python 编程” 一文讨论了 if 语句和…

windows 软链接的建立及删除

在windows服务器上有时有这样的需求&#xff0c;你的文件在f:\test中&#xff0c;但由于其它原因用户访问的是e:\test&#xff0c;如果又希望e:\test 中的文件与f:\test的保持同步&#xff0c;除了用同步软件来做外&#xff0c;可以用windows 的文件夹映射来做 cmd: mklink /J …

8086简单的指令流水线_在8086微处理器中执行流水线的指令和概念的步骤

8086简单的指令流水线Any computer or machine works according to some instructions. These instructions are responsible for all the work that the machine does. But how does a machine work to understand and execute that instruction? 任何计算机或机器都按照某些…

[转载] 使用Python编写打字训练小程序

参考链接&#xff1a; 在Python中切换大小写(替换) 你眼中的程序猿 别人眼中的程序猿&#xff0c;是什么样子&#xff1f;打字如飞&#xff0c;各种炫酷的页面切换&#xff0c;一个个好似黑客般的网站破解。可现实呢&#xff1f; 二指禅的敲键盘&#xff0c;写一行代码&#…

shell两个数字相乘_使用8086微处理器将两个16位数字相乘而不带进位

shell两个数字相乘Problem statement: 问题陈述&#xff1a; To perform multiplication operation between 2 16bit numbers with carry using 8086 Microprocessor. 使用8086微处理器在2个16位数字之间进行带进位的乘法运算。 Algorithm: 算法&#xff1a; Load the first…

Dwr 框架简单实例

Dwr 是一个 Java 开源库&#xff0c;帮助你实现Ajax网站。 它可以让你在浏览器中的Javascript代码调用Web服务器上的Java&#xff0c;就像在Java代码就在浏览器中一样。 Dwr 主要包括两部分&#xff1a; 在服务器上运行的 Servlet 来处理请求并把结果返回浏览器。 运行在浏览器…

[转载] Python进阶:设计模式之迭代器模式

参考链接&#xff1a; Python中的迭代器 在软件开发领域中&#xff0c;人们经常会用到这一个概念——“设计模式”&#xff08;design pattern&#xff09;&#xff0c;它是一种针对软件设计的共性问题而提出的解决方案。在一本圣经级的书籍《设计模式&#xff1a;可复用面向对…

JavaScript | 如何为变量分配十进制,八进制和十六进制值?

Just like C programming language, we can assign integer value in the different format to the variable. 就像C编程语言一样 &#xff0c;我们可以将不同格式的整数值分配给变量。 Assigning decimal value: It can be assigned simply without using any prefix. 分配十…

路由器DHCP和DHCP中继的配置

路由器 DHCP和DHCP中继的配置 路由器作为DHCP服务器&#xff1a; 1.配置router的地址&#xff1a;Route(config)# hostname gateway (更改主机名字) Gateway(config)# interface gigabitethernet 0/0 …

[转载] 大数据分析Python For循环教程

参考链接&#xff1a; Python中的迭代器函数1 大数据分析Python除了循环遍历列表之外&#xff0c;for循环还有很多其他功能&#xff0c;在现实世界的数据科学工作中&#xff0c;您可能需要将numpy数组和pandas DataFrames用于其他数据结构的循环。 大数据分析Python For循环教…

node.js 爬虫入门总结

node.js爬虫 前端同学可能向来对爬虫不是很感冒&#xff0c;觉得爬虫需要用偏后端的语言&#xff0c;诸如 php &#xff0c; python 等。当然这是在 nodejs 前了&#xff0c;nodejs 的出现&#xff0c;使得 Javascript 也可以用来写爬虫了。由于 nodejs 强大的异步特性&#xf…

数组重复次数最多的元素递归_使用递归计算链接列表中元素的出现次数

数组重复次数最多的元素递归Solution: 解&#xff1a; Required function: 所需功能&#xff1a; func_occurence ( node *temp) //recursive functionInput: 输入&#xff1a; A singly linked list whose address of the first node is stored in a pointer, say head and…

SecureCRT中文乱码解决方法

服务端export LANGzh_CN.UTF-8客户端SecureCRT编码选择UTF-8客户端SecureCRT字体选择新宋体&#xff0c;字符集选择中文总结&#xff1a;客户端和服务端字符编码一致&#xff0c;客户端字体字符集支持转载于:https://blog.51cto.com/leomars/1972669

[转载] Python 迭代器 深入理解 与应用示例

参考链接&#xff1a; Python | 可迭代和迭代器之间的区别 本篇文章简单谈谈可迭代对象&#xff0c;迭代器和生成器之间的关系。 三者简要关系图 可迭代对象与迭代器 刚开始我认为这两者是等同的&#xff0c;但后来发现并不是这样&#xff1b;下面直接抛出结论&#xff1a; 1…

Python程序查找表示O(1)复杂度的数字所需的位数

Problem statement 问题陈述 Find total Number of bits required to represent a number in binary 查找以二进制表示数字所需的总位数 Example 1: 范例1&#xff1a; input : 10output: 4Example 2: 范例2&#xff1a; input : 32output : 6Formula used: 使用的公式&am…