c程序设计_c程序设计语言 - CSDN
c程序设计 订阅
《c程序设计》是2003年8月1日电子工业出版社出版的图书,作者是田淑清。本书主要讲述了C语言中最基本的数据类型等有关内容。 展开全文
《c程序设计》是2003年8月1日电子工业出版社出版的图书,作者是田淑清。本书主要讲述了C语言中最基本的数据类型等有关内容。
信息
页    数
305页
作    者
田淑清 [1]
定    价
24元
又    名
新编21世纪高等职业教育电子信息类教材--C程序设计(第2版)
书    名
c程序设计
出版时间
2003-8-1
开    本
平装16开
出版社
电子工业出版社
ISBN
9787505389960 [1]
c程序设计内容简介
为了使初学者易于接受,能尽快地学会用C语言编写程序并上机实践,在第一部分中只介绍了整数中的int类型和浮点数float,double类型;介绍了对这三种类型数据的输入和输出,从而暂时避开了C语言中繁多的整数类型和整数的各种表示方式、避开了烦琐的输入、输出的各种规则。在这一部分,介绍了结构化程序设计的基本组成结构以及相关的语句,使读者能掌握一些最基本的算法;学习编写最简单的、具有良好风格的C语言程序。在第5章介绍了函数的初步知识之后,所有章节中的例题基本都以函数的形式给出,要求读者自这一章开始,全部运用函数来完成各个练习,以便由易到难逐步培养编写C函数的能力,逐步掌握对函数的应用。在这部分,结合C语言的学习,陆续介绍了程序设计中的一些基本算法,如数的交换、累加、连乘、选最大最小数、递推、枚举等。在这些算法的基础上,介绍了求一元高次方程的一个根、求定积分等有关数值计算的基本算法。第6章是有关结构化程序设计的基本常识,不需要死记硬背,其中的内容应该体现在具体的程序设计中。在这一段的学习时间内,读者可在教师或有关专业人员的指导下,参考附录F中“简单的上机操作”中的内容,在Turbo C的环境下运行自己编写的练习程序,通过上机实践,逐步熟悉上机操作的步骤,并有意识地去练习看懂系统给出的各种信息,为培养自己独立调试程序的能力做好准备。在第二部分中,引进了指针的概念,在C语言中,指针几乎是无处不在,只有建立了“地址”、“指针”以及“引用指针所指存储单元”的概念才能正确地使用数组、字符串,才能在函数之间通过实参和形参正确地传送数据。这也是学习C语言的重点和难点所在,希望读者从一开始,就要特别重视指针概念的建立,以便为后续章节的学习打下基础。在这一部分,进一步介绍C语言中的各种复杂数据结构,介绍了各种数据结构在函数间的数据传递,同时也讨论了函数的递归调用,文件的基本应用。在第7章介绍了字符类型,字符处理是当前程序设计中很重要的一个方面,因此读者应该很好地掌握。第9、10章分别介绍了一维和二维数组,数组是程序设计中不可缺少的一种数据结构,而在C语言中,数组和指针又有着密不可分的关系,在这两章中分别讨论了一维和二维数组和指针的关系、讨论了如何通过指针引用数组元素、如何通过指针向函数传递数组。并以大量的例题,例举了利用数组这一存储结构,进行查找、插入、删除、排序等的基本算法。第16章介绍了C语言中另外一种复杂的数据结构——结构体类型。在这一章除讨论了结构体变量的一般应用外,重点介绍了利用指向本身的结构体,通过动态存储分配建立动态链表的算法,以及对链表进行基本操作(插入、删除结点等)的算法。在计算机的应用中,建立“文件”的概念和掌握对文件的操作是一种最基本的技能,第21章,简单介绍了有关文件的概念以及C程序中对文件的基本操作。在学习这一部分内容时,读者应当参考附录F“简单的程序调试”中介绍的内容,在Turbo C环境下,逐步学会调试程序的简单步骤,培养自己独立调试程序的能力。在程序设计中,这一能力的培养是十分重要的。以上两部分,在介绍C语言的同时,较侧重于帮助读者掌握用C语言来进行“程序设计”的基本知识,因而尽量避开了C语言中的一些语法细节。第三部分就C语言的“语言”内容进行了补充,例如:第13章的“用户标识符的作用域”,第14章的“编译预处理”,第17章的“C语言中的整型数和整型变量”,第20章的“在终端上按格式进行输入和输出”等章节,都是在真正用C语言进行程序设计时所必须具备的知识。这些章节的内容相对独立,有关内容的教与学,可以根据学时的安排,按需要随时穿插进行;读者也可根据需要随时查阅。尽管作者根据多年的教学经验,试图按照初学者的学习规律来安排本书的内容,主观上有着良好的愿望,但由于水平的限制,书中会有很多不足和错误,欢迎广大读者批评和指正。
收起全文
精华内容
参与话题
  • C语言程序设计第五版 谭浩强 第五版课后答案

    万次阅读 多人点赞 2020-07-03 10:31:02
    谭浩强 C语言程序设计第五版 第4章课后答案 3.求两个正整数m和n,求其最大公约数和最小公倍数。 #include<stdio.h> void main() { int m, n, t, i, a = 1; scanf("%d%d", &m, &n); if (m < n) ...

    谭浩强 C程序设计第五版 第五版课后答案

    c程序设计

    第一章

    在这里插入图片描述

    1.什么是程序?什么是程序设计?

    • 程序:就是一组能识别和执行的指令,每一条指令使计算机执行特定的操作

    • 程序设计:是指从确定任务到得到结果、写出文档的全过程

    2.为什么需要计算机语言?高级语言有哪些特点?

    • 为什么需要计算机语言:计算机语言解决了人和计算机交流是的语言问题,使得计算机和人都能识别

    • 高级语言有哪些特点:
      2.1 高级语言的数据结构要比汇编和机器语言丰富;
      2.2 高级语言与具体机器结构的关联没有汇编以及机器语言密切;
      2.3 高级语言更接近自然语言更容易掌握;
      2.4 高级语言编写的程序要经过编译或解释计算机才能执行;

    3.正确理解以下名词及其含义:

    (1)源程序,目标程序,可执行程序。

    • ​源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令

    • 目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名

    • 可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序

    (2)程序编辑,程序编译,程序连接。

    程序编辑:上机输入或者编辑源程序。

    程序编译:

    • 先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理
    • 对源程序进行语法检查, 判断是否有语法错误,直到没有语法错误未知
    • 编译程序自动把源程序转换为二进制形式的目标程序

    程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接

    (3)程序,程序模块,程序文件。

    • 程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具

    • 程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令

    • 程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序

    (4)函数,主函数,被调用函数,库函数。

    • 函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能

    • 主函数:又称main函数,是程序执行的起点

    • 被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数

    • 库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是

    ​ 编译器特定的库函数

    (5)程序调试,程序测试。
    • 程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程

    • 程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行

    4.编写一个C程序,运行时输出

    Hello World!
    这个程序是一些国外C教材中作为第一个程序例子介绍的,一般称为Hello程序。

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	printf("%s\n", "Hello World!");
    	return 0;
    }
    

    运行截图:

    C程序设计第五版谭浩强第4题答案

    5.编写一个C程序,运行时输出以下图形:

    ****

    ****

    ​ ****

    ​ ****

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < i; j++)
    		{
    			printf("%s", "  ");
    		}
    		printf("%s\n", "*****");
    	}
    	return 0;
    }
    

    运行截图:

    C语言程序设计第五版谭浩强第5题答案

    6.编写一个C程序,运行时输人a,b,c三个值,输出其中值最大者。

    代码示例:

    #include<stdio.h>
    
    int main()
    {
    	int a, b, c, max;
    	printf("请输入三个数:\n");
    
    	scanf("%d%d%d", &a, &b, &c);
    	if (a > b)
    	{
    		max = a;
    	}
    	else
    	{
    		max = b;
    	}
    
    	if (c > max)
    	{
    		max = c;
    	}
    	printf("三个数中最大的数为:%d", max);
    	return 0;
    
    }
    

    运行截图:

    C语言程序设计第五版谭浩强第6题答案

    7.看懂《C程序设计(第五版)学习辅导》第16章中介绍的用Visual Studio 2010对C程序进行编辑、编译、连接和运行的方法,并进行以下操作:

    (1)建立一个新项目,定名为project1.

    C语言程序设计第五版谭浩强第6题答案

    (2)建立一个新文件,定名为test1。

    C语言程序设计第五版谭浩强课后答案 第二题

    (3)向test1 文件输人源程序(此源程序为读者自己编写的程序)。

    C语言程序设计第五版谭浩强课后答案 第三题

    (4)编译该源程序,如发现程序有错,请修改之,直到不出现“编译出错”为止。

    (5)连接并运行, 得到结果。分析结果。

    C程序设计第五版课后答案

    更多相关文章

    C程序设计第五版谭浩强课后习题答案 第一章
    C程序设计第五版谭浩强课后习题答案 第二章
    C程序设计第五版谭浩强课后习题答案 第三章
    C程序序设计第五版谭浩强课后习题答案 第四章
    C语言程序设计第五版谭浩强课后习题答案 第五章
    C语言程序设计第五版谭浩强课后习题答案 第六章
    C语言程序设计第五版谭浩强课后习题答案 第七章
    C语言程序设计第五版谭浩强课后习题答案 第八章
    C语言程序设计第五版谭浩强课后习题答案 第九章
    C语言程序设计第五版谭浩强课后习题答案 第十章

    展开全文
  • 《C程序设计》(第五版)

    千次阅读 2019-02-17 18:09:59
    @[Top](第三章 最简单的C程序设计—顺序程序设计) ##例3.1 有人用温度计测量出用华氏法表示的温度(如64℉),今要求把它转化为以摄氏法表示的温度(如17.8℃)。 运行结果如下: ##例3.2 计算存款利息。有1000元,想存...

    @[Top](第三章 最简单的C程序设计—顺序程序设计)
    ##例3.1 有人用温度计测量出用华氏法表示的温度(如64℉),今要求把它转化为以摄氏法表示的温度(如17.8℃)。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.2 计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1;(2)一年期定期,年利率为r2;(3)存两次半年定期,年利率为r3。请分别计算出一年后按3种方法所得到的本息和。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.3 给定一个大写字母,要求用小写字母输出
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.4 给出三角形的三边长,求三角形的面积
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.5 求ax²+bx+c=0方程的根。a,b,c有键盘输入,设b²-4ac>0。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.6 用%f输出实数,只能得到6位小数。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.7 float型数据的有效位数。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.8 先后输出BOY三个字母。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.9 从键盘上输入BOY 3个字符,然后把它们输出到屏幕。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    ##例3.10 改写例3.3程序,使之可以适用于任何大写字母。从键盘上输入一个大写字母,在显示屏上显示对应的小写字母。
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述

    展开全文
  • 谭浩强教授,我国著名计算机教育专家。1934年生,广东台山人。1985年清华大学自动控制系毕业。学生时代曾担任清华大学学生会主席、北京市人民代表。他是我国计算机普及和高校计算机基础教育开拓者之一,现任全国高等...
  • C语言及程序设计初步

    万人学习 2018-10-22 21:38:02
    课程针对没有任何程序设计基础的初学者,全面介绍C语言及利用C语言进行程序设计的方法。课程注重知识的传授,更关注学习者能够通过实践的方式,真正学会利用C语言解决问题,奠定程序设计的基础。为此,专门设计了...
  • C语言程序设计50例(经典收藏)(一)

    万次阅读 多人点赞 2018-07-10 10:58:02
    程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。http://www.jiakang021.com组成所有的排列后再去掉不满足条件...

    【程序1】
    题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。http://www.jiakang021.com组成所有的排列后再去掉不满足条件的排列。 
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      int i,j,k;
      printf("\n");
      for(i=1;i<5;i++) /*以下为三重循环*/
        for(j=1;j<5;j++)
          for (k=1;k<5;k++)
          {
            if(i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
           printf("%d,%d,%d\n",i,j,k);
          }
      getch();
    }

    【程序2】
    题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
    1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      long int i;
      int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
      scanf("%ld",&i); 
      bonus1=100000*0. 1;
      bonus2=bonus1+100000*0.75;
      bonus4=bonus2+200000*0.5;
      bonus6=bonus4+200000*0.3;
      bonus10=bonus6+400000*0.15;
      if(i<=100000)
        bonus=i*0.1;
        else if(i<=200000)
          bonus=bonus1+(i-100000)*0.075;
            else if(i<=400000)
             bonus=bonus2+(i-200000)*0.05;
                elseif(i<=600000)
                 bonus=bonus4+(i-400000)*0.03;
                   else if(i<=1000000)
                     bonus=bonus6+(i-600000)*0.015;
                       else
                         bonus=bonus10+(i-1000000)*0.01;
      printf("bonus=%d",bonus);
      getch(); 
    }

    【程序3】
    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
    2.程序源代码:

    代码如下:

    #include"math.h"
    #include "stdio.h"
    #include "conio.h"
    main()
    {
      long int i,x,y,z;
      for (i=1;i<100000;i++)
      {
        x=sqrt(i+100); /*x为加上100后开方后的结果*/
        y=sqrt(i+268); /*y为再加上168后开方后的结果*/
        if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
        printf("\n%ld\n",i);
      }
      getch();
    }

    【程序4】
    题目:输入某年某月某日,判断这一天是这一年的第几天?
    1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
          int day,month,year,sum,leap;
          printf("\nplease inputyear,month,day\n");
          scanf("%d,%d,%d",&year,&month,&day);
          switch(month) /*先计算某月以前月份的总天数*/
          {
                case1:sum=0;break;
                case2:sum=31;break;
                case3:sum=59;break;
                case4:sum=90;break;
                case5:sum=120;break;
                case6:sum=151;break;
                case7:sum=181;break;
                case8:sum=212;break;
                case9:sum=243;break;
                case10:sum=273;break;
                case11:sum=304;break;
                case12:sum=334;break;
               default:printf("dataerror");break;
          }
          sum=sum+day; /*再加上某天的天数*/
         if(year%400==0||(year%4==0&&year%100!=0))        /*判断是不是闰年*/
                leap=1;
          else
                leap=0;
          if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
                sum++;
          printf("It is the %dth day.",sum);
          getch(); 
    }

    【程序5】
    题目:输入三个整数x,y,z,请把这三个数由小到大输出。
    1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      int x,y,z,t;
      scanf("%d%d%d",&x,&y,&z);
      if (x>y)
        {t=x;x=y;y=t;} /*交换x,y的值*/
      if(x>z)
        {t=z;z=x;x=t;} /*交换x,z的值*/
      if(y>z)
        {t=y;y=z;z=t;} /*交换z,y的值*/
      printf("small to big: %d %d %d\n",x,y,z);
      getch(); 
    }

    【程序6】
    题目:用*号输出字母C的图案。
    1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      printf("Hello C-world!\n");
      printf(" ****\n");
      printf(" *\n");
      printf(" * \n");
      printf(" ****\n");
      getch(); 
    }

    【程序7】
    题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
    1.程序分析:字符共有256个。不同字符,图形不一样。      
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      char a=176,b=219;
      printf("%c%c%c%c%c\n",b,a,a,a,b);
      printf("%c%c%c%c%c\n",a,b,a,b,a);
      printf("%c%c%c%c%c\n",a,a,b,a,a);
      printf("%c%c%c%c%c\n",a,b,a,b,a);
      printf("%c%c%c%c%c\n",b,a,a,a,b);
      getch(); 
    }

    【程序8】
    题目:输出9*9口诀。
    1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      int i,j,result;
      printf("\n");
      for (i=1;i<10;i++)
      {
        for(j=1;j<10;j++)
        {
          result=i*j;
          printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/
        }
        printf("\n"); /*每一行后换行*/
      }
      getch();
    }

    【程序9】
    题目:要求输出国际象棋棋盘。
    1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      int i,j;
      for(i=0;i<8;i++)
      {
        for(j=0;j<8;j++)
          if((i+j)%2==0)
            printf("%c%c",219,219);
          else
            printf("  ");
        printf("\n");
      }
      getch(); 
    }

    【程序10】
    题目:打印楼梯,同时在楼梯上方打印两个笑脸。 
    1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
    2.程序源代码:

    代码如下:

    #include"stdio.h"
    #include "conio.h"
    main()
    {
      int i,j;
      printf("\1\1\n"); /*输出两个笑脸*/
      for(i=1;i<11;i++)
      {
        for(j=1;j<=i;j++)
          printf("%c%c",219,219);
        printf("\n");
      }
      getch(); 
    }

    展开全文
  • C语言程序设计50例(经典收藏)

    万次阅读 多人点赞 2017-12-18 10:57:33
    程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去  掉不满足条件的排列。 #include ...

    【程序1】

    题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

          掉不满足条件的排列。

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,j,k;
    printf(“\n”);
    for(i=1;i<5;i++) /*以下为三重循环*/
    for(j=1;j<5;j++)
    for (k=1;k<5;k++)
    {
    if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
    printf(“%d,%d,%d\n”,i,j,k);
    }
    getch();
    }

    ==============================================================
    【程序2】
    题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
       于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
       成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
       40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
       100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
    1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    long int i;
    int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    scanf(“%ld”,&i);
    bonus1=100000*0. 1;
    bonus2=bonus1+100000*0.75;
    bonus4=bonus2+200000*0.5;
    bonus6=bonus4+200000*0.3;
    bonus10=bonus6+400000*0.15;
    if(i<=100000)
    bonus=i*0.1;
    else if(i<=200000)
    bonus=bonus1+(i-100000)*0.075;
    else if(i<=400000)
    bonus=bonus2+(i-200000)*0.05;
    else if(i<=600000)
    bonus=bonus4+(i-400000)*0.03;
    else if(i<=1000000)
    bonus=bonus6+(i-600000)*0.015;
    else
    bonus=bonus10+(i-1000000)*0.01;
    printf(“bonus=%d”,bonus);
    getch();
    }

    ==============================================================
    【程序3】
    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
          的结果满足如下条件,即是结果。请看具体分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “math.h”
    #include “stdio.h”
    #include “conio.h”
    main()
    {
    long int i,x,y,z;
    for (i=1;i<100000;i++)
    {
    x=sqrt(i+100); /*x为加上100后开方后的结果*/
    y=sqrt(i+268); /*y为再加上168后开方后的结果*/
    if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
    printf(“\n%ld\n”,i);
    }
    getch();
    }

    ==============================================================
    【程序4】
    题目:输入某年某月某日,判断这一天是这一年的第几天?
    1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
          情况,闰年且输入月份大于3时需考虑多加一天。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    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%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
    leap=1;
    else
    leap=0;
    if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
    sum++;
    printf(“It is the %dth day.”,sum);
    getch();
    }

    ==============================================================
    【程序5】
    题目:输入三个整数x,y,z,请把这三个数由小到大输出。
    1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
          然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int x,y,z,t;
    scanf(“%d%d%d”,&x,&y,&z);
    if (x>y)
    {t=x;x=y;y=t;} /*交换x,y的值*/
    if(x>z)
    {t=z;z=x;x=t;} /*交换x,z的值*/
    if(y>z)
    {t=y;y=z;z=t;} /*交换z,y的值*/
    printf(“small to big: %d %d %d\n”,x,y,z);
    getch();
    }

    ==============================================================
    【程序6】
    题目:用*号输出字母C的图案。
    1.程序分析:可先用’*’号在纸上写出字母C,再分行输出。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    printf(“Hello C-world!\n”);
    printf(” ****\n”);
    printf(” *\n”);
    printf(” * \n”);
    printf(” ****\n”);
    getch();
    }

    ==============================================================
    【程序7】
    题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
    1.程序分析:字符共有256个。不同字符,图形不一样。      
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    char a=176,b=219;
    printf(“%c%c%c%c%c\n”,b,a,a,a,b);
    printf(“%c%c%c%c%c\n”,a,b,a,b,a);
    printf(“%c%c%c%c%c\n”,a,a,b,a,a);
    printf(“%c%c%c%c%c\n”,a,b,a,b,a);
    printf(“%c%c%c%c%c\n”,b,a,a,a,b);
    getch();
    }

    ==============================================================
    【程序8】
    题目:输出9*9口诀。
    1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,j,result;
    printf(“\n”);
    for (i=1;i<10;i++)
    {
    for(j=1;j<10;j++)
    {
    result=i*j;
    printf(“%d*%d=%-3d”,i,j,result); /*-3d表示左对齐,占3位*/
    }
    printf(“\n”); /*每一行后换行*/
    }
    getch();
    }

    ==============================================================
    【程序9】
    题目:要求输出国际象棋棋盘。
    1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,j;
    for(i=0;i<8;i++)
    {
    for(j=0;j<8;j++)
    if((i+j)%2==0)
    printf(“%c%c”,219,219);
    else
    printf(” “);
    printf(“\n”);
    }
    getch();
    }

    ==============================================================
    【程序10】
    题目:打印楼梯,同时在楼梯上方打印两个笑脸。
    1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,j;
    printf(“\1\1\n”); /*输出两个笑脸*/
    for(i=1;i<11;i++)
    {
    for(j=1;j<=i;j++)
    printf(“%c%c”,219,219);
    printf(“\n”);
    }
    getch();
    }

    【程序11】
    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
       后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    long f1,f2;
    int i;
    f1=f2=1;
    for(i=1;i<=20;i++)
    {
    printf(“%12ld %12ld”,f1,f2);
    if(i%2==0) printf(“\n”); /*控制输出,每行四个*/
    f1=f1+f2; /*前两个月加起来赋值给第三个月*/
    f2=f1+f2; /*前两个月加起来赋值给第三个月*/
    }
    getch();
    }

    ==============================================================
    【程序12】
    题目:判断101-200之间有多少个素数,并输出所有素数。
    1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
          则表明此数不是素数,反之是素数。       
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    #include “math.h”
    main()
    {
    int m,i,k,h=0,leap=1;
    printf(“\n”);
    for(m=101;m<=200;m++)
    {
    k=sqrt(m+1);
    for(i=2;i<=k;i++)
    if(m%i==0)
    {
    leap=0;
    break;
    }
    if(leap)
    {
    printf(“%-4d”,m);
    h++;
    if(h%10==0)
    printf(“\n”);
    }
    leap=1;
    }
    printf(“\nThe total is %d”,h);
    getch();
    }

    ==============================================================
    【程序13】
    题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
       本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
    1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,j,k,n;
    printf(“‘water flower’number is:”);
    for(n=100;n<1000;n++)
    {
    i=n/100;/*分解出百位*/
    j=n/10%10;/*分解出十位*/
    k=n%10;/*分解出个位*/
    if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
    printf(“%-5d”,n);
    }
    getch();
    }

    ==============================================================
    【程序14】
    题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
    (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
     重复执行第一步。
    (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
    2.程序源代码:
    复制代码 代码如下:

    /* zheng int is divided yinshu*/
    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int n,i;
    printf(“\nplease input a number:\n”);
    scanf(“%d”,&n);
    printf(“%d=”,n);
    for(i=2;i<=n;i++)
    while(n!=i)
    {
    if(n%i==0)
    {
    printf(“%d*”,i);
    n=n/i;
    }
    else
    break;
    }
    printf(“%d”,n);
    getch();
    }

    ==============================================================
    【程序15】
    题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
       60分以下的用C表示。
    1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int score;
    char grade;
    printf(“please input a score\n”);
    scanf(“%d”,&score);
    grade=score>=90?’A’:(score>=60?’B’:’C’);
    printf(“%d belongs to %c”,score,grade);
    getch();
    }

    ==============================================================
    【程序16】
    题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
    1.程序分析:利用辗除法。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int a,b,num1,num2,temp;
    printf(“please input two numbers:\n”);
    scanf(“%d,%d”,&num1,&num2);
    if(num1<num2)/*交换两个数,使大数放在num1上*/
    {
    temp=num1;
    num1=num2;
    num2=temp;
    }
    a=num1;b=num2;
    while(b!=0)/*利用辗除法,直到b为0为止*/
    {
    temp=a%b;
    a=b;
    b=temp;
    }
    printf(“gongyueshu:%d\n”,a);
    printf(“gongbeishu:%d\n”,num1*num2/a);
    getch();
    }

    ==============================================================
    【程序17】
    题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    1.程序分析:利用while语句,条件为输入的字符不为’\n’.
          
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    char c;
    int letters=0,space=0,digit=0,others=0;
    printf(“please input some characters\n”);
    while((c=getchar())!=’\n’)
    {
    if(c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’)
    letters++;
    else if(c==’ ‘)
    space++;
    else if(c>=’0’&&c<=’9’)
    digit++;
    else
    others++;
    }
    printf(“all in all:char=%d space=%d digit=%d others=%d\n”,letters,
    space,digit,others);
    getch();
    }

    ==============================================================
    【程序18】
    题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
       共有5个数相加),几个数相加有键盘控制。
    1.程序分析:关键是计算出每一项的值。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int a,n,count=1;
    long int sn=0,tn=0;
    printf(“please input a and n\n”);
    scanf(“%d,%d”,&a,&n);
    printf(“a=%d,n=%d\n”,a,n);
    while(count<=n)
    {
    tn=tn+a;
    sn=sn+tn;
    a=a*10;
    ++count;
    }
    printf(“a+aa+…=%ld\n”,sn);
    getch();
    }

    ==============================================================
    【程序19】
    题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
       找出1000以内的所有完数。
    1. 程序分析:请参照程序<–上页程序14.
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    static int k[10];
    int i,j,n,s;
    for(j=2;j<1000;j++)
    {
    n=-1;
    s=j;
    for(i=1;i<j;i++)
    {
    if((j%i)==0)
    {
    n++;
    s=s-i;
    k[n]=i;
    }
    }
    if(s==0)
    {
    printf(“%d is a wanshu”,j);
    for(i=0;i<n;i++)
    printf(“%d,”,k);
    printf(“%d\n”,k[n]);
    }
    }
    getch();
    }

    ==============================================================
    【程序20】
    题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
       第10次落地时,共经过多少米?第10次反弹多高?
    1.程序分析:见下面注释
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “stdio.h”
    main()
    {
    float sn=100.0,hn=sn/2;
    int n;
    for(n=2;n<=10;n++)
    {
    sn=sn+2*hn;/*第n次落地时共经过的米数*/
    hn=hn/2; /*第n次反跳高度*/
    }
    printf(“the total of road is %f\n”,sn);
    printf(“the tenth is %f meter\n”,hn);
    getch();
    }

    【程序21】
    题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
       第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
       的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    1.程序分析:采取逆向思维的方法,从后往前推断。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int day,x1,x2;
    day=9;
    x2=1;
    while(day>0)
    {
    x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
    x2=x1;
    day–;
    }
    printf(“the total is %d\n”,x1);
    getch();
    }

    ==============================================================
    【程序22】
    题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
       比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
       三队赛手的名单。
    1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
          则表明此数不是素数,反之是素数。       
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
    for(i=’x’;i<=’z’;i++)
    for(j=’x’;j<=’z’;j++)
    {
    if(i!=j)
    for(k=’x’;k<=’z’;k++)
    {
    if(i!=k&&j!=k)
    {
    if(i!=’x’&&k!=’x’&&k!=’z’)
    printf(“order is a–%c\tb–%c\tc–%c\n”,i,j,k);
    }
    }
    }
    getch();
    }

    ==============================================================
    【程序23】
    题目:打印出如下图案(菱形)
    *
    ***
    *****
    *******
    *****
    ***
    *
    1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重
          for循环,第一层控制行,第二层控制列。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,j,k;
    for(i=0;i<=3;i++)
    {
    for(j=0;j<=2-i;j++)
    printf(” “);
    for(k=0;k<=2*i;k++)
    printf(“*”);
    printf(“\n”);
    }
    for(i=0;i<=2;i++)
    {
    for(j=0;j<=i;j++)
    printf(” “);
    for(k=0;k<=4-2*i;k++)
    printf(“*”);
    printf(“\n”);
    }
    getch();
    }

    ==============================================================
    【程序24】
    题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
    1.程序分析:请抓住分子与分母的变化规律。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int n,t,number=20;
    float a=2,b=1,s=0;
    for(n=1;n<=number;n++)
    {
    s=s+a/b;
    t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/
    }
    printf(“sum is %9.6f\n”,s);
    getch();
    }

    ==============================================================
    【程序25】
    题目:求1+2!+3!+…+20!的和
    1.程序分析:此程序只是把累加变成了累乘。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    float n,s=0,t=1;
    for(n=1;n<=20;n++)
    {
    t*=n;
    s+=t;
    }
    printf(“1+2!+3!…+20!=%e\n”,s);
    getch();
    }

    ==============================================================
    【程序26】
    题目:利用递归方法求5!。
    1.程序分析:递归公式:fn=fn_1*4!
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i;
    int fact();
    for(i=0;i<5;i++)
    printf(“\40:%d!=%d\n”,i,fact(i));
    getch();
    }
    int fact(j)
    int j;
    {
    int sum;
    if(j==0)
    sum=1;
    else
    sum=j*fact(j-1);
    return sum;
    }

    ==============================================================
    【程序27】
    题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i=5;
    void palin(int n);
    printf(“\40:”);
    palin(i);
    printf(“\n”);
    getch();
    }
    void palin(n)
    int n;
    {
    char next;
    if(n<=1)
    {
    next=getchar();
    printf(“\n\0:”);
    putchar(next);
    }
    else
    {
    next=getchar();
    palin(n-1);
    putchar(next);
    }
    }

    ==============================================================
    【程序28】
    题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
       3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
       问第一个人,他说是10岁。请问第五个人多大?
    1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
          第四人的岁数,依次类推,推到第一人(10岁),再往回推。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    age(n)
    int n;
    {
    int c;
    if(n==1) c=10;
    else c=age(n-1)+2;
    return(c);
    }
    main()
    {
    printf(“%d”,age(5));
    getch();
    }

    ==============================================================
    【程序29】
    题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
    1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main( )
    {
    long a,b,c,d,e,x;
    scanf(“%ld”,&x);
    a=x/10000;/*分解出万位*/
    b=x%10000/1000;/*分解出千位*/
    c=x%1000/100;/*分解出百位*/
    d=x%100/10;/*分解出十位*/
    e=x%10;/*分解出个位*/
    if (a!=0) printf(“there are 5, %ld %ld %ld %ld %ld\n”,e,d,c,b,a);
    else if (b!=0) printf(“there are 4, %ld %ld %ld %ld\n”,e,d,c,b);
    else if (c!=0) printf(” there are 3,%ld %ld %ld\n”,e,d,c);
    else if (d!=0) printf(“there are 2, %ld %ld\n”,e,d);
    else if (e!=0) printf(” there are 1,%ld\n”,e);
    getch();
    }

    ==============================================================
    【程序30】
    题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   
    1.程序分析:同29例
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main( )
    {
    long ge,shi,qian,wan,x;
    scanf(“%ld”,&x);
    wan=x/10000;
    qian=x%10000/1000;
    shi=x%100/10;
    ge=x%10;
    if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
    printf(“this number is a huiwen\n”);
    else
    printf(“this number is not a huiwen\n”);
    getch();
    }

    【程序31】
    题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
       判断第二个字母。
    1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    void main()
    {
    char letter;
    printf(“please input the first letter of someday\n”);
    while((letter=getch())!=’Y’)/*当所按字母为Y时才结束*/
    {
    switch (letter)
    {
    case ‘S’:printf(“please input second letter\n”);
    if((letter=getch())==’a’)
    printf(“saturday\n”);
    else if ((letter=getch())==’u’)
    printf(“sunday\n”);
    else printf(“data error\n”);
    break;
    case ‘F’:printf(“friday\n”);break;
    case ‘M’:printf(“monday\n”);break;
    case ‘T’:printf(“please input second letter\n”);
    if((letter=getch())==’u’)
    printf(“tuesday\n”);
    else if ((letter=getch())==’h’)
    printf(“thursday\n”);
    else printf(“data error\n”);
    break;
    case ‘W’:printf(“wednesday\n”);break;
    default: printf(“data error\n”);
    }
    }
    getch();
    }

    ==============================================================
    【程序32】
    题目:Press any key to change color, do you want to try it. Please hurry up!
    1.程序分析:            
    2.程序源代码:
    复制代码 代码如下:

    #include “conio.h”
    #include “stdio.h”
    void main(void)
    {
    int color;
    for (color = 0; color < 8; color++)
    {
    textbackground(color);/*设置文本的背景颜色*/
    cprintf(“This is color %d\r\n”, color);
    cprintf(“Press any key to continue\r\n”);
    getch();/*输入字符看不见*/
    }
    }

    ==============================================================
    【程序33】
    题目:学习gotoxy()与clrscr()函数   
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “conio.h”
    #include “stdio.h”
    void main(void)
    {
    clrscr();/*清屏函数*/
    textbackground(2);
    gotoxy(1, 5);/*定位函数*/
    cprintf(“Output at row 5 column 1\n”);
    textbackground(3);
    gotoxy(20, 10);
    cprintf(“Output at row 10 column 20\n”);
    getch();
    }

    ==============================================================
    【程序34】
    题目:练习函数调用
    1. 程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    void hello_world(void)
    {
    printf(“Hello, world!\n”);
    }
    void three_hellos(void)
    {
    int counter;
    for (counter = 1; counter <= 3; counter++)
    hello_world();/*调用此函数*/
    }
    void main(void)
    {
    three_hellos();/*调用此函数*/
    getch();
    }

    ==============================================================
    【程序35】
    题目:文本颜色设置
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    void main(void)
    {
    int color;
    for (color = 1; color < 16; color++)
    {
    textcolor(color);/*设置文本颜色*/
    cprintf(“This is color %d\r\n”, color);
    }
    textcolor(128 + 15);
    cprintf(“This is blinking\r\n”);
    getch();
    }

    ==============================================================
    【程序36】
    题目:求100之内的素数   
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “math.h”
    #define N 101
    main()
    {
    int i,j,line,a[N];
    for(i=2;i<N;i++) a=i;
    for(i=2;i<sqrt(N);i++)
    for(j=i+1;j<N;j++)
    {
    if(a!=0&&a[j]!=0)
    if(a[j]%a==0)
    a[j]=0;
    }
    printf(“\n”);
    for(i=2,line=0;i<N;i++)
    {
    if(a!=0)
    {
    printf(“%5d”,a);
    line++;
    }
    if(line==10)
    {
    printf(“\n”);
    line=0;
    }
    }
    getch();
    }

    ==============================================================
    【程序37】
    题目:对10个数进行排序
    1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
          下次类推,即用第二个元素与后8个进行比较,并进行交换。       
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    #define N 10
    main()
    {
    int i,j,min,tem,a[N];
    /*input data*/
    printf(“please input ten num:\n”);
    for(i=0;i<N;i++)
    {
    printf(“a[%d]=”,i);
    scanf(“%d”,&a);
    }
    printf(“\n”);
    for(i=0;i<N;i++)
    printf(“%5d”,a);
    printf(“\n”);
    /*sort ten num*/
    for(i=0;i<N-1;i++)
    {
    min=i;
    for(j=i+1;j<N;j++)
    if(a[min]>a[j])
    min=j;
    tem=a;
    a=a[min];
    a[min]=tem;
    }
    /*output data*/
    printf(“After sorted \n”);
    for(i=0;i<N;i++)
    printf(“%5d”,a);
    getch();
    }

    ==============================================================
    【程序38】
    题目:求一个3*3矩阵对角线元素之和
    1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    /* 如果使用的是TC系列编译器则可能需要添加下句 */
    static void dummyfloat(float *x){ float y; dummyfloat(&y);}
    main()
    {
    float a[3][3],sum=0;
    int i,j;
    printf(“please input rectangle element:\n”);
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    scanf(“%f”,&a[j]);
    for(i=0;i<3;i++)
    sum=sum+a;
    printf(“duijiaoxian he is %6.2f”,sum);
    getch();
    }

    ==============================================================
    【程序39】
    题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
    1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
         此元素之后的数,依次后移一个位置。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int a[11]={1,4,6,9,13,16,19,28,40,100};
    int temp1,temp2,number,end,i,j;
    printf(“original array is:\n”);
    for(i=0;i<10;i++)
    printf(“%5d”,a);
    printf(“\n”);
    printf(“insert a new number:”);
    scanf(“%d”,&number);
    end=a[9];
    if(number>end)
    a[10]=number;
    else
    {
    for(i=0;i<10;i++)
    {
    if(a>number)
    {
    temp1=a;
    a=number;
    for(j=i+1;j<11;j++)
    {
    temp2=a[j];
    a[j]=temp1;
    temp1=temp2;
    }
    break;
    }
    }
    }
    for(i=0;i<11;i++)
    printf(“%6d”,a);
    getch();
    }

    ==============================================================
    【程序40】
    题目:将一个数组逆序输出。
    1.程序分析:用第一个与最后一个交换。
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    #define N 5
    main()
    {
    int a[N]={9,6,5,4,1},i,temp;
    printf(“\n original array:\n”);
    for(i=0;i<N;i++)
    printf(“%4d”,a);
    for(i=0;i<N/2;i++)
    {
    temp=a;
    a=a[N-i-1];
    a[N-i-1]=temp;
    }
    printf(“\n sorted array:\n”);
    for(i=0;i<N;i++)
    printf(“%4d”,a);
    getch();
    }

    ==============================================================
    【程序41】
    题目:学习static定义静态变量的用法   
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    varfunc()
    {
    int var=0;
    static int static_var=0;
    printf(“\40:var equal %d \n”,var);
    printf(“\40:static var equal %d \n”,static_var);
    printf(“\n”);
    var++;
    static_var++;
    }
    void main()
    {
    int i;
    for(i=0;i<3;i++)
    varfunc();
    getch();
    }

    ==============================================================
    【程序42】
    题目:学习使用auto定义变量的用法
    1.程序分析:      
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,num;
    num=2;
    for(i=0;i<3;i++)
    {
    printf(“\40: The num equal %d \n”,num);
    num++;
    {
    auto int num=1;
    printf(“\40: The internal block num equal %d \n”,num);
    num++;
    }
    }
    getch();
    }

    ==============================================================
    【程序43】
    题目:学习使用static的另一用法。   
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    main()
    {
    int i,num;
    num=2;
    for(i=0;i<3;i++)
    {
    printf(“\40: The num equal %d \n”,num);
    num++;
    {
    static int num=1;
    printf(“\40:The internal block num equal %d\n”,num);
    num++;
    }
    }
    getch();
    }

    ==============================================================
    【程序44】
    题目:学习使用external的用法。
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    int a,b,c;
    void add()
    {
    int a;
    a=3;
    c=a+b;
    }
    void main()
    {
    a=b=4;
    add();
    printf(“The value of c is equal to %d\n”,c);
    getch();
    }

    ==============================================================
    【程序45】
    题目:学习使用register定义变量的方法。
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    void main()
    {
    register int i;
    int tmp=0;
    for(i=1;i<=100;i++)
    tmp+=i;
    printf(“The sum is %d\n”,tmp);
    getch();
    }

    ==============================================================
    【程序46】
    题目:宏#define命令练习(1)   
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    #define TRUE 1
    #define FALSE 0
    #define SQ(x) (x)*(x)
    void main()
    {
    int num;
    int again=1;
    printf(“\40: Program will stop if input value less than 50.\n”);
    while(again)
    {
    printf(“\40:Please input number==>”);
    scanf(“%d”,&num);
    printf(“\40:The square for this number is %d \n”,SQ(num));
    if(num>=50)
    again=TRUE;
    else
    again=FALSE;
    }
    getch();
    }

    ==============================================================
    【程序47】
    题目:宏#define命令练习(2)
    1.程序分析:            
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上”\”*/
    #define exchange(a,b) { \
    int t;\
    t=a;\
    a=b;\
    b=t;\
    }
    void main(void)
    {
    int x=10;
    int y=20;
    printf(“x=%d; y=%d\n”,x,y);
    exchange(x,y);
    printf(“x=%d; y=%d\n”,x,y);
    getch();
    }

    ==============================================================
    【程序48】
    题目:宏#define命令练习(3)   
    1.程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #define LAG >
    #define SMA <
    #define EQ ==
    #include “stdio.h”
    #include “conio.h”
    void main()
    {
    int i=10;
    int j=20;
    if(i LAG j)
    printf(“\40: %d larger than %d \n”,i,j);
    else if(i EQ j)
    printf(“\40: %d equal to %d \n”,i,j);
    else if(i SMA j)
    printf(“\40:%d smaller than %d \n”,i,j);
    else
    printf(“\40: No such value.\n”);
    getch();
    }

    ==============================================================
    【程序49】
    题目:#if #ifdef和#ifndef的综合应用。
    1. 程序分析:
    2.程序源代码:
    复制代码 代码如下:

    #include “stdio.h”
    #include “conio.h”
    #define MAX
    #define MAXIMUM(x,y) (x>y)?x:y
    #define MINIMUM(x,y) (x>y)?y:x
    void main()
    {
    int a=10,b=20;
    #ifdef MAX
    printf(“\40: The larger one is %d\n”,MAXIMUM(a,b));
    #else
    printf(“\40: The lower one is %d\n”,MINIMUM(a,b));
    #endif
    #ifndef MIN
    printf(“\40: The lower one is %d\n”,MINIMUM(a,b));
    #else
    printf(“\40: The larger one is %d\n”,MAXIMUM(a,b));
    #endif
    #undef MAX
    #ifdef MAX
    printf(“\40: The larger one is %d\n”,MAXIMUM(a,b));
    #else
    printf(“\40: The lower one is %d\n”,MINIMUM(a,b));
    #endif
    #define MIN
    #ifndef MIN
    printf(“\40: The lower one is %d\n”,MINIMUM(a,b));
    #else
    printf(“\40: The larger one is %d\n”,MAXIMUM(a,b));
    #endif
    getch();
    }
    • 本文已收录于以下专栏:

    C语言程序设计经典50例

    【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 解答:
    #include int main() { int i,j,k,n=0; for(…

    C语言程序设计经典50例,会用到的

    【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去       掉…
    (function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
    '); (window.slotbydup=window.slotbydup || []).push({ id: '4765209', container: s, size: '808,120', display: 'inlay-fix' }); })();

    C语言程序设计50例(经典收藏)

    【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去       掉…

    C语言程序设计50例(经典收藏)

    • 2016年06月02日 10:33
    • 34KB
    • 下载

    c语言教程(经典收藏)

    • 2013年02月05日 17:21
    • 731KB
    • 下载
    (function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
    '); (window.slotbydup=window.slotbydup || []).push({ id: '4983339', container: s, size: '808,120', display: 'inlay-fix' }); })();

    C语言 - 经典程序设计100例

    C语言经典程序设计100例

    C语言之贪吃蛇 经典收藏)——

    • 2010年02月22日 22:45
    • 41KB
    • 下载

    经典C语言程序设计100例11-20

    【程序11】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月     后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子…
    • vfast12
    • vfast12
    • 2014年05月05日 17:14
    • 229

    经典C语言程序设计100例,部分有个人注解

    C语言经典程序设计,前面40道题都是比较基础的,后面的有点难~~~如果哪一个题目需要我详细注释的,可以留言我或加评论…

    经典C语言程序设计100例 – C 和 Python 版 (01 - 05)

    写在开头的话 Python 重写C语言程序设计百例,每篇5题,每题分别用C语言和Python实现,方便对比。 C语言编译器:GCC 4.8.2 Python版本:Python …
    (function() { var s = “_” + Math.random().toString(36).slice(2); document.write(‘
    ‘); (window.slotbydup=window.slotbydup || []).push({ id: ‘5384130’, container: s, size: ‘300,300’, display: ‘inlay-fix’ }); })();
    (function() { var s = “_” + Math.random().toString(36).slice(2); document.write(‘
    ‘); (window.slotbydup=window.slotbydup || []).push({ id: ‘4770930’, container: s, size: ‘300,250’, display: ‘inlay-fix’ }); })();
    内容举报
    返回顶部
    收藏助手
    src="" id="collectIframe" width="100%" height="360" scrolling="no">
    不良信息举报
    您举报文章:C语言程序设计50例(经典收藏)
    举报原因:
    原文地址:
    原因补充:

    (最多只允许输入30个字)

    btn_cancel.jpg
    <script language="javascript" type="text/javascript">
        var isComment=0;
        //显示隐藏地址
        $(function () {
          console.log("version:phoenix");
            if(isComment){
                $("#report_description").attr("disabled",true);
                $("#sp_n").hide();
                $("#sp_reason").html("评论内容:");
            }
            $(".report_type").click(function () {
                $("#panel_originalurl,#report_other_content").hide();
                switch ($(this).val()) {
                    case '3':
                        $("#panel_originalurl").show();
                        $("#originalurl").focus();
                        break;
                    case '7':
                        if(isComment){
                            $("#report_other_content").show().focus();
                        }
                        break;
                }
    
            });
    
            $("#frmReport").submit(function () {
                if (!currentUserName) {
    
                    if (confirm("您的操作必须登录,是否登录?")) {
                        location.href = "http://passport.csdn.net/account/login?from=" + encodeURIComponent(location.href);
                        return false;
                    }
                    return false;
                }
    
                var reportType = $("input[name=report_type]:checked").val();
                if(!reportType){
                    alert("请选择举报原因!");
                    return false;
                }
                var otherInfo = "";
                switch (reportType) {
                    case '3':
                        otherInfo = $("#originalurl").val();
                        if (otherInfo == ""||otherInfo=="http://") {
                            alert("举报抄袭必须提供原创文章地址!");
                            $("#originalurl").focus();
                            return false;
                        } else if(!checkeURL(otherInfo)) {
                            alert("请输入正确的原创文章地址!");
                            $("#originalurl").focus();
                            return false;
                        }
                        break;
                    case '7':
                        otherInfo = $("#report_other_content").val();
                        if (isComment && !otherInfo) {
                            alert("请填写举报的具体原因!");
                            $("#report_other_content").focus();
                            return false;
                        }
                        if(!isComment){
                            if(!$("#report_description").val()){
                                alert("请填写举报的具体原因!");
                                $("#report_description").focus();
                                return false;
                            }
                        }
                        break;
                }
                if(!isComment){
                    if($("#report_description").val().length>30){
                        alert("举报原因最多只允许输入30个字!");
                        return false;
                    }
                }
                nowTime = {
                    year: new Date().getFullYear(),
                    month: parseInt(new Date().getMonth())+1,
                    day: new Date().getDate(),
                    hours: parseInt(new Date().getHours())+1,
                    minutes: parseInt(new Date().getMinutes())+1,
                    seconds: parseInt(new Date().getSeconds())+1
                };
                var data = {
                    articleId: fileName,
                    commentId: 0,
                    reportType: reportType,
                    originalurl: $("#originalurl").val(),
                    report_other_content: $("#report_other_content").val(),
                    report_description: $("#report_description").val(),
                    currentUserName: currentUserName,
                    updatetime: nowTime.year+'/'+nowTime.month+'/'+nowTime.day+' '+ nowTime.hours+':'+nowTime.minutes+':'+seconds,
                    blogUser: username
                };
                if(!isComment){//如果是举报文章
                    data.report_other_content = data.report_description;
                    // data.report_description = "1. 神经网络这是一个常见的神经网络的图:这是一个常见的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层";
                }
    
                $.post(blog_address + "/common/report?id="+fileName+"&t=2", data, function (data) {
                    if (data.result == 1){
                        SetError("感谢您的举报,我们会尽快审核!");
                    }else{
                        if (data.content) alert(data.content);
                    }
    
                });
                return false;
            });
    
            $("#btnCloseReportDialog").click(function () {
                CloseDiv();
            });
    
        });
    
        //提示后关闭方法
        function SetError(error) {
            $("#btnCloseReportDialog").trigger("click");
            alert(error);
            CloseDiv();
        }
    
        //关闭方法
        function CloseDiv() {
    
            $.removeMask();
            $("#report_dialog").hide();
            return false;
        }
    
        //验证url
        function checkeURL(url){
            return /^http(s)?:\/\/([\w-]+\.)+[\w-]+/i.test(url);
        }
    </script>
    


    if((".articlecollectli").length==1)$(".articlecollect").hide();if((".article_tags li").length==1){(".article_tags").hide();}(".edit a").attr("href","http://write.blog.csdn.net/postedit/"+fileName); .each((".edu_li a"),function(){(this).attr("href",(this).attr("href").replace("blog7","blog9"))}); new CNick('#uid').showNickname(); if(("#fan").html()=="")
        {
            $("#fan").html(0);
        }




        appendMark(
    ('.recommend_list').children('a').find('dt'),$('.extension_other'))

    展开全文
  • 练习1-1#include &lt;stdio.h&gt; int main() { printf("hello world!"); return 0; }练习1-2#include &lt;stdio.h&gt; int main() { printf("1 \n 2"...{...
  • c程序设计第四版pdf

    2020-07-30 23:32:03
    c程序设计第四版pdf,清晰容易在线阅读 第一章:程序设计和c语言 第二章:算法-程序的灵魂 第三章:最简单的C程序设计--顺序程序设计 ...
  • C语言程序设计基本步骤

    千次阅读 2007-05-25 22:33:00
    一、Turbo C程序设计基本步骤程序设计方法包括三个基本步骤:第一步: 分析问题。第二步: 画出程序的基本轮廓。第三步: 实现该程序。3a. 编写程序3b. 测试和调试程序3c. 提供数据打印结果下面, 我们来说明每一步的具体...
  • C程序设计第五版 谭浩强 清华大学出版社 课后答案 习题解析 微信扫描小程序二维码查看答案 第一章 程序设计和C语言 第二章 算法—程序的灵魂 第三章 最简单的C程序设计—顺序程序设计 第四章 选择结构程序设计 第...
  • Java语言程序设计(基础篇)(原书第10版) 练习题答案 第6章
  • http://www.chinastor.org/upload/2014-12/14122310427265.pdf
  • C语言程序设计第四版谭浩强课后习题答案 完整版下载地址:http://download.csdn.net/download/xw791488540/3778054?utm_source=blogseo第一章 程序设计和C语言 【第15页】 1-5 #include
  • 历届蓝桥杯C/C++程序设计省赛试题

    万次阅读 多人点赞 2018-02-14 10:40:04
    2012年第三届蓝桥杯C/C++程序设计本科B组省赛2013年第四届蓝桥杯C/C++程序设计本科B组省赛2014年第五届蓝桥杯C/C++程序设计本科B组省赛2015年第六届蓝桥杯C/C++程序设计本科B组省赛2016年第七届蓝桥杯C/C++程序设计...
  • 经典教材--C语言程序设计(第五版)pdf

    万次阅读 2019-07-13 15:45:35
    下载地址:网盘下载 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9729993.html
  • windows程序设计(第五版珍藏版)清华大学出版

    万次阅读 多人点赞 2016-11-21 14:39:30
    就这本的PDF版本,我找了几天了,找的全部是
  • 编程的7个主要步骤:

    万次阅读 2019-11-08 16:50:28
    1. 定义程序目标 2. 设计程序 3.编写程序 4. 编译程序 5.运行程序 6. 测试与调试程序 7. 维护与修改程序 记着,别忘。
  • 微信小程序毕业设计、微信小程序商城毕业设计

    万次阅读 热门讨论 2019-07-04 11:36:36
    【微信小程序毕业设计、商城小程序】 该微信小程序商城功能模块包含: 首页、分类、商品详情页面,包含加入购物车、收藏商品、商品评论功能、用户登录、微信登录、订单管理、地址管理;完整的购物流程,商品的加入、...
  • Java语言程序设计(基础篇)课后答案

    万次阅读 多人点赞 2019-07-06 10:21:51
    Java语言程序设计(基础篇)课后习题配套答案,仅1-12章偶数题,这是此书的配套答案。 http://download.csdn.net/detail/xunciy/9887093 Java语言程序设计(基础篇)1-11章课后44条代表性习题答案,这是我自己的写...
  • 计算机程序设计艺术--pdf--百度云--4卷全

    万次阅读 多人点赞 2019-11-10 10:01:13
    他的系列巨著《计算机程序设计艺术》在计算机科学界享誉多年。多年前,高德纳对现有的数学文本处理工具感到不满,于是创建了自己的工具 TeX 和 Metafont。如今,这两个工具成为广泛应用的免费软件。 需要的...
1 2 3 4 5 ... 20
收藏数 2,460,314
精华内容 984,125
关键字:

c程序设计