【c++灵魂科普】(2)第一部分第一章-初识c++语言

今天带来初识c++语言的第二节~

第二节 C++语言程序结构

无论做任何事情,都要有一定的方式方法与处理步骤,所谓“无规矩无以成方圆”。计算机程序设计比日常生活中的事务处理更具有严谨性、规范性和可行性。为了使计算机有效地解决实际问题,必须将处理步骤编排好,用计算机能理解的计算机语言编写成“序列”,让计算机自动识别并执行这个“序列”,达到解决实际问题的目的。将处理问题的步骤编排好,用计算机语言组成序列,就是常说的编写程序。在C++语言中,执行每条语句都是由计算机完成相应的具体操作,编写程序是利用C++语句的功能来实现预定的处理要求。“千里之行,始于足下”,我们从简单程序学起,逐步了解和掌握怎样编写程序。
在学习C++语言之前,让我们绕过那些繁琐的语法规则细节,通过一些简单的例题,来熟悉程序的基本组成和基本语句的用法,选手刚接触编程时,多动手模仿是一条捷径。

例1.2 在梯形中阴影部分面积是150平方厘米,求梯形面积。
在这里插入图片描述

【分析】
已知梯形上、下底长为15和25。令梯形的高为h,则由已知三角形面积为150平方厘米,有150=(15*h)/2,得h为20,然后根据梯形面积公式算出梯形面积。程序如下:

#include<cstdio>                //printf和scanf调用cstdio库,在C语言中可调用stdio.h库
#include<cstdlib>               // 使用system( )调用cstdlib库
using namespace std;       //在C语言中要省略,例如在VC++和TC++中
int main()                           //有的C语言可用void main(),例如TC++和VC++
{                                        //整个程序开始
   float s,h,up,down;     // float定义s,h,up,down为单精度实型变量
   up=15; 	                 //已知上底
        down=25; 	  //已知下底
   h=2*150/up;             //根据上底求出梯形的高
   s=(up+down)*h/2; 	  //求出梯形的面积
   printf("s=%0.2f\n",s);// \n是换行控制符,0.2f按实际位数输出,保留2位小数
   system("pause");     //暂停作用,TC++和VC++中使用system( )调用stdlib.h库
   return 0;                   //结束程序,在TC++和VC++中也要保留
}

运行结果: s=400.00
【说明】:
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
   当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现;当使用<iostream的时候,该头文件没有定义全局命名空间,必须使用namespace
std;这样才能正确使用cout、cin和endl。

例1.3 已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少?

【分析】 假设总票价用y来表示,则这个问题可以用以下几个步骤来实现:   
①输入小朋友的数目x;   
②用公式y=10*x计算总票价;
③输出总票价y的值。 程序如下:

 #include<iostream>               //使用cin,cout,须调用iostream
  using namespace std;
  int main()
  {
      int x,y;                                //定义整型变量
      cout<<"Input x=";               //输入提示
      cin>>x;        	              //小朋友的人数
      y=10*x; 		              //计算总票价
      cout<<"total="<<y<<endl;  //输出总票价
      return 0;                             //结束程序
  }

【说明】:
1、int定义x,y为整型变量,有关整型变量将在第二章详细介绍。   
2、cout<<的作用是在屏幕中显示字符串"Input x="。   
3、cin>>x的作用是输入一个数,赋予变量x。
4、cout<<“total=”<<y<<endl的作用是输出提示符total=,输出y的值,endl是换行的意思。   通过以上例1.2和例1.3两个例子,可以总结出C++语言程序的结构如下:
1)C++语言变量在使用之前必须先定义其数据类型,未经定义的变量不能使用。
2)程序由一个或多个函数组成,一个程序中必须有且只有一个主函数,主函数的名字为main。不论main()函数在程序中什么位置,程序都是从main()函数开始执行,main()函数执行完毕,程序也就结束了。
3)在程序中可以调用系统提供的库函数。在调用库函数之前,必须将相应头文件包含在程序中。
4)程序中可以有注释行。注释是为了使程序更易于理解和提示。   
5)程序的语句以分号结束。分号是C++语言不可缺少的组成部分。
6)程序的书写要注意适当的缩进,一般采用“逐层缩进”形式,以便使程序更加清晰易读。
   把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的基本特征。再来分析下面一道例题的程序结构,同时继续学习基本语句。

例1.4 有一个牧场,牧场上的牧草每天都在匀速生长,这片牧场可供15头牛吃20天,或可供20头牛吃10天,那么,这片牧场每天新生的草量可供几头牛吃1天?

【分析】解决这类问题的关键是利用牛吃的草量,最终求出这片牧场每天新生长的草量,我们设1单位的草量为1头牛1天所需的草量,于是15头牛20天所食的草量为300单位(包括这20天内的新生草量),20头牛10天所食的草量为200单位(包括这10天内的新生草量),两者的差值即为10天内的新生草量。程序如下:

    #include<iostream>               //使用cin,cout,须调用iostream库
  using namespace std;
  int main()
  {
     int s1,s2,s3;                 //变量定义
     s1=15*20;                     //15头牛20天所食的草量
     s2=20*10;                     //20头牛10天所食的草量
     s3=(s1-s2)/(20-10);       //每天新生的草量单位数
     cout<<"s="<<s3<<endl;  //1单位为1头牛1天的食量
     return 0;                        //结束程序
    }

运行结果:   s=10

例1.5 给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
程序如下:

#include<iostream>                   //使用cin,cout,须调用iostream库
using namespace std;
int main()
{
	char a;                      //定义字符变量,
	cin>>a;                      //输入给定一个字符
	cout<<"  "<<a<<endl;         //输出1个字符,先输出2个空格
	cout<<" "<<a<<a<<a<<endl;    //输出3个字符,先输出1个空格
	cout<<a<<a<<a<<a<<a<<endl;   //输出5个字符
	return 0;                    //结束程序
}

【Dev C++版本注意事项】
在5.0版本Dev C++中,不是万能库,不包括cstdio,cstring,cstdlib,其他常用的min, max函数也不保证包括,需要注意如下几个细节:
①、getchar(),stdin,stdout,freopen(),fclose(), scanf()在c++中需要调用
②、memset()需要包含C头文件<string.h>,在c++中需要调用
③、qsort(),exit()需要包含C头文件<stdlib.h>,在c++中需要调用
在5.0版本C++中,根据标准去除了iostream对cstdio, cstring, algorithm的依赖性,需要显式包括。你现在还可能不透彻理解以上注意事项,就慢慢消化吧,在信息学奥赛中一定要注意以上细节,请记住:“细节决定成败”。

【上机练习】

1.Hello,World!【1.1编程基础之输入输出01】

编写一个能够输出“Hello,World!”的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。
输入:
无。
输出:
一行,仅包含一个字符串:“Hello, World!”
样例输入:
(无)
样例输出:
2.输出第二个整数【1.1编程基础之输入输出02】

输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数。把第二个输入的整数输出。
输入:
只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。
输出:
只有一行,一个整数,即输入的第二个整数。
样例输入:
123 456 789
样例输出:
456
Hello, World!
3. 对齐输出【1.1编程基础之输入输出03】

读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。
输入:
只有一行,包含三个整数,整数之间以一个空格分开。
输出:
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
样例输入:
123456789 0 -1
样例输出:
123456789 0 -1
4.字符三角形【1.1编程基础之输入输出08】
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
输入:
输入只有一行, 包含一个字符。
输出:
该字符构成的等腰三角形,底边长5个字符,高3个字符。
样例输入:
*
样例输出:
*
***
*****
5.地球人口承载力估计【小学奥数7653】
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。
为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
输入:
一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000
输出:
一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。
样例输入:
110 90 90 210
样例输出:
75.00

这上面题目练习的【】里是openjudge题库里题目的编号~
看到这了 点个赞 再点个关注再走呗~

猜你喜欢

转载自blog.csdn.net/sunshine_running/article/details/107761117