第九章C程序设计_第1页
第九章C程序设计_第2页
第九章C程序设计_第3页
第九章C程序设计_第4页
第九章C程序设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C程序设计教程程序设计和C语言简单的C语言程序【例1.1】在屏幕上显示输出一行信息:HelloWorld!解题思路:在主函数中用printf函数原样输出以上文字。#include<stdio.h>

//这是编译预处理指令intmain()

//定义主函数{

//函数开始的标志

printf("HelloWorld!\n");

//输出所指定的一行信息

return0; //函数执行完毕时返回函数值0}

//函数结束的标志程序运行后输出的结果VisualC++系统在输出完运行结果后自动输出的信息,用户按任意键后,返回程序编辑窗口简单的C语言程序#include<stdio.h>

//这是编译预处理指令intmain()

//定义主函数{

//函数开始的标志

printf("HelloWorld!\n");

//输出所指定的一行信息

return0; //函数执行完毕时返回函数值0}

//函数结束的标志程序分析main是函数的名字,表示“主函数”;每一个C语言程序都必须有一个main函数。main前面的int表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其值为整型。return0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。函数体由花括号{}括起来。简单的C语言程序#include<stdio.h>

//这是编译预处理指令intmain()

//定义主函数{

//函数开始的标志

printf("ThisisaCprogram.\n"); //输出所指定的一行信息

return0; //函数执行完毕时返回函数值0}

//函数结束的标志程序分析printf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号内的字符串″ThisisaCprogram.″按原样输出。\n是换行符,即在输出″ThisisaCprogram.″后,显示屏上的光标位置移到下一行的开头。每个语句最后都有一个分号,表示语句结束。简单的C语言程序#include<stdio.h>

//这是编译预处理指令intmain()

//定义主函数{

//函数开始的标志

printf("ThisisaCprogram.\n"); //输出所指定的一行信息

return0; //函数执行完毕时返回函数值0}

//函数结束的标志程序分析在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息,程序第1行“#include<stdio.h>”的作用就是用来提供这些信息的。stdio.h是系统提供的一个文件名,stdio是standardinput&output的缩写,文件后缀.h的意思是头文件(headerfile),因为这些文件都是放在程序各文件模块的开头的。输入输出函数的相关信息已事先放在stdio.h文件中。简单的C语言程序#include<stdio.h>

//这是编译预处理指令intmain()

//定义主函数{

//函数开始的标志

printf("ThisisaCprogram.\n"); //输出所指定的一行信息

return0; //函数执行完毕时返回函数值0}

//函数结束的标志程序分析//表示从此处到本行结束是“注释”,用来对程序有关部分进行必要的说明。在写C程序时应当多用注释,以方便自己和别人理解程序各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在编译时注释部分不产生目标代码,注释对运行不起作用。注释只是给人看的,而不是让计算机执行的。简单的C语言程序【例1.2】求3个整数之和解题思路:设置3个变量,a,b,c用来存放3个整数,sum用来存放和数。用赋值运算符“=”把相加的结果传送给sum。#include<stdio.h> //这是编译预处理指令intmain() //求3个整数之和{

inta,b,c,sum; //定义变量a,b,c,sum为整型变量

a=123; //以下3行是对3个变量赋值

b=456;

c=-43;

sum=a+b+c; //求3个变量的值之和,放在变量sum中

printf("sumis%d\n",sum); //输出sum的值

return0; //使main函数返回值为0}简单的C语言程序#include<stdio.h> //这是编译预处理指令intmain() //求3个整数之和{

inta,b,c,sum; //定义变量a,b,c,sum为整型变量

a=123; //以下3行是对3个变量赋值

b=456;

c=-43;

sum=a+b+c; //求3个变量的值之和,放在变量sum中

printf("sumis%d\n",sum); //输出sum的值

return0; //使main函数返回值为0}程序分析printf("sumis%d\n",sum);printf函数圆括号内有两个参数。第一个参数是双引号中的内容sumis%d\n,它是输出格式字符串,作用是输出用户希望输出的字符和输出的格式。其中sumis是用户希望输出的字符,%d是指定的输出格式,d表示用“十进制整数”形式输出。圆括号内第二个参数sum表示要输出变量sum的值。在执行printf函数时,将sum变量的值(以十进制整数表示)取代双引号中的%d。printf("sumis%d\n",sum);输出时用sum的值取代%d简单的C语言程序【例1.3】输入两个学生的年龄,要求输出其中较大的年龄解题思路:从键盘输入两个年龄,用一个函数来实现求两个整数中的较大者。在主函数中调用此函数并输出结果。#include<stdio.h>intmain() //主函数{

intmax(intage_1,intage_2); //对被调用函数max的声明

intage_1,age_2,age_max; //定义整型变量age_1,age_2,age_max scanf("%d,%d",&age_1,&age_2); //从键盘输入变量age_1和age_2的值

age_max=max(age_1,age_2); //调用max函数,将得到的值赋给age_max printf("Maxis%d\n",age_max); //输出age_max的值

return0; }//下面是求两个整数中的大者的函数intmax(intx,inty) //定义max函数,函数值为整型,形式参数x和y为整型{ intz; //定义本函数中用到的变量z为整型 if(x>y)z=x; //如果x>y,则将x的值赋给变量z elsez=y; //否则,将y的值赋给变量z return(z); //将z的值返回到主函数中调用max函数的位置}简单的C语言程序#include<stdio.h>intmain() //主函数{

intmax(intage_1,intage_2); //对被调用函数max的声明

intage_1,age_2,age_max; //定义整型变量age_1,age_2,age_max scanf("%d,%d",&age_1,&age_2); //从键盘输入变量age_1和age_2的值

age_max=max(age_1,age_2); //调用max函数,将得到的值赋给age_max printf("Maxis%d\n",age_max); //输出age_max的值

return0; }//下面是求两个整数中的大者的函数intmax(intx,inty) //定义max函数,函数值为整型,形式参数x和y为整型{ intz; //定义本函数中用到的变量z为整型 if(x>y)z=x; //如果x>y,则将x的值赋给变量z elsez=y; //否则,将y的值赋给变量z return(z); //将z的值返回到主函数中调用max函数的位置}程序分析本程序包括两个函数:①主函数main;②被调用的函数max。max函数的作用是将x和y中的大者的值赋给变量z,最后通过return语句将z的值作为max的函数值返回给main函数中调用max函数的位置。scanf是输入函数的名字(scanf和printf都是C的标准输入输出函数)。该scanf函数的作用是输入变量age_1和age_2的值。其中,&age_1中&表示取变量的地址。max(age_1,age_2)调用max函数。在调用时将age_1和age_2作为max函数的实际参数的值分别传送给max函数中的形式参数x和y。简单的C语言程序#include<stdio.h>intmain() //主函数{

intmax(intage_1,intage_2); //对被调用函数max的声明

intage_1,age_2,age_max; //定义整型变量age_1,age_2,age_max scanf("%d,%d",&age_1,&age_2); //从键盘输入变量age_1和age_2的值

age_max=max(age_1,age_2); //调用max函数,将得到的值赋给age_max printf("Maxis%d\n",age_max); //输出age_max的值

return0; }//下面是求两个整数中的大者的函数intmax(intx,inty) //定义max函数,函数值为整型,形式参数x和y为整型{ intz; //定义本函数中用到的变量z为整型 if(x>y)z=x; //如果x>y,则将x的值赋给变量z elsez=y; //否则,将y的值赋给变量z

return(z);

//将z的值返回到主函数中调用max函数的位置}注意:本例程序中两个函数都有return语句,请注意它们的异同。两个函数都定义为整型,都有函数值,都需要用return语句为函数指定返回值。main函数中的return语句指定的返回值一般为0。max函数的返回值是max函数中求出的两数中的最大值z,只有通过return语句才能把求出的z值作为函数的值并返回调用它的main函数中。C语言程序的结构C语言程序主要是由函数构成的,函数是C语言程序的基本单位一个C语言源程序必须有且只有一个main函数,可以包含若干个其他函数。main函数可以调用其他函数,其他函数可以相互调用,但其他函数不能调用主函数C语言的函数库十分丰富,在程序中既可以调用系统提供的库函数,也可以调用用户自己编写的函数一个函数由函数首部和函数体组成,函数体又包括声明部分和执行部分一个C语言程序总是从main函数开始执行,与main函数在程序中的位置无关C语言程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上每个语句和数据声明的最后必须有一个分号。分号是C语句的必要组成部分C语言本身没有输入输出语句(一般输入输出操作是通过库函数完成的)可以用“//”对程序做注释#include<stdio.h>intmain(){

intmax(intage_1,intage_2);

intage_1,age_2,age_max; scanf("%d,%d",&age_1,&age_2);

c=max(age_1,age_2); printf("Maxis%d\n",age_max);

return0; }intmax(intx,inty)

{

intz;

if(x>y)z=x;

elsez=y;

return(z);}预处理指令main函数自定义函数库函数调用自定义函数调用函数首部函数体声明部分执行部分执行部分执行部分int max (int x, int y)↓

↓函数类型

函数名

参数类型

参数名

参数类型

参数名运行C程序的步骤与方法开始编辑编译有错?连接执行结果正确?结束无正确有不正确可执行目标程序f.exe源程序f.c目标程序f.obj库函数和其他目标程序程序设计的任务问题分析设计算法和数据结构编写程序对源程序进行编辑、编译和连接,得到可执行程序运行程序分析结果调试和测试程序编写程序文档数据结构对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。算法对操作的描述。即要求计算机进行操作的步骤。算法+数据结构=程序沃思算法——程序的灵魂算法程序员数据结构语言工具程序设计方法算法——程序的灵魂算法广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。对同一个问题,可以有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。算法——程序的灵魂非数值运算算法数值运算算法算法数值运算的目的是求数值解。由于数值运算往往有现成的模型,可以运用数值分析方法,因此对数值运算的算法的研究比较深入,算法比较成熟。计算机在非数值运算方面的应用远超在数值运算方面的应用。非数值运算的种类繁多,要求各异,需要使用者参考已有的类似算法,重新设计解决特定问题的专门算法。算法——程序的灵魂算法的表示伪代码结构化流程图传统流程图自然语言计算机语言通俗但不严格,文字冗长,歧义直观形象,解书写方便,格式紧凑,修改方便,容,便于向计算机语言过渡算法——程序的灵魂严格遵循所用语言的语法规则,计算机能够执行用流程图表示算法起止框输入输出框判断框处理框流程线连接点注释框三种基本结构ABabABP成立不成立abAP成立不成立ab顺序结构选择结构三种基本结构AP1成立不成立ab循环结构AP2不成立成立ab当型(while型)直到型(until型)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论