第2章 程序结构

合集下载

c语言程序设计第二章课后参考答案

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

第二章顺序结构程序设计教案

第二章顺序结构程序设计教案

一、实验准备实验准备实验准备实验准备1、C语言程序的上机操作语言程序的上机操作语言程序的上机操作语言程序的上机操作C是编译型语言,设计好一个C源程序后,需要经过编译生成目标文件(扩展名.obj)、连接生成可执行文件(扩展名.exe),然后执行。

一个C程序的具体开发步骤如下: (1) 启动启动启动启动VC++ 6.0:“开始”“程序”“Microsoft Visual C++ 6.0” (2) 新建文件新建文件新建文件新建文件:“文件”“新建”在“新建”对话框中选择“文件”标签列表框中选“C++ Source File”,在右边指定文件名和保存位置。

(3) 编辑编辑编辑编辑:录入或修改源程序并保存(Ctrl+S) (4) 调试运行调试运行调试运行调试运行:编译(Ctrl+F7)连接(F7)运行(Ctrl+F5),若有错需修改源程序后再调试程序 (5) 关闭工作区关闭工作区关闭工作区关闭工作区:“文件”“关闭工作空间”,一个程序调试结束后需关闭当前工作空间,再从第(2)步开始下一个程序的调试 2、、、、C程序的调试程序的调试程序的调试程序的调试调试即是在源程序中查找错误并修改错误的过程。

程序的错误一般分为两类:语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误。

①语法错误语法错误语法错误语法错误:指不符合C语言语法规则而产生的错误。

语法错误系统能检测出来并告之原因及位置,设计者可参考修改。

②逻辑错误逻辑错误逻辑错误逻辑错误:指程序的运行结果与预期的结果不符而产生的错误。

这类错误拔除难度较大,一般需祥细分析算法或在程序运行过程中设置断点、追踪程序的运行来纠错。

(1)语法错误调试案例(建立程序名为ex1-1.c)# include <stdio.h> void main() { int i=0 //错误原因:语句结束位置缺分号printf("i=%d\n",i); } 调试并查找以上程序的语法错误并分析原因并改正。

计算机二级vfp 第二章 Visual Foxpro程序基础

计算机二级vfp 第二章 Visual Foxpro程序基础
– ?[<表达式表>] – ??[表达式表]
•Hale Waihona Puke 内存变量的显示:– List memory [like <通配符>] [to printer|to file<文件名>] – Display memory [like <通配符>] [to printer|to file<文件名 >] » 说明: » 1、 List memory 一次性显示与通配符匹配的内存变量, 一屏显示不下自动上滚; Display memory 分屏显示。 » 2、通配符有*和?,*表示多个字符,?表示一个字符
? {^2004/7/15 4:20:10a}-100 04:18:30AM && 显示07/15/04
– 关系表达式
• 运算符
– <、>、<=、>=、=、<>、#、!=、==、$
• 运算符优先级:相同优先级
关系运算符的比较规则:
1、数值型数据按数值大小进行比较;日期型数据按年月日的先后进行比较;字 符型数据按相应位置上两个字符的ASCII码值的大小进行比较;汉字按内码进 行比较。 2、在Set exact off状态下,只要“=”右面字符串与左边的字符串的左端部分一 样,系统就认为相同。注意:左边和右边的左端部分一样时不相同。 y="abce"="ab" ?y y="ab"="abc“ ?y 3、运算符$只能比较两个字符串,若左面的字符串是右面的子串 则结果为.T.,否则为.F.。
4、数值型、货币型数据比较 按数值大小比较,包括正负号 5、日期、日期时间型数据比较 越早的日期或时间越小,越晚的日期或时间越大 6、逻辑型数据比较 .T.大于.F. 7、设置字符的排序次序 字符串比较的时候系统对两个字符串的字符自左向右逐个进行比较,一旦发 现两个对应位置上的字符不相同,就根据这两个字符的大小决定字符串 的大小。VFP中默认按PinYin。可以重新设置。 Set collate to “<排序次序名>” 排序次序名必须放在“”中,次序名称可以是“machine”、 “PinYin”、”Stroke” Machine(机内次序):西文字符按ASCII码排列:空格在最前面,大 写ABCD字母在小写abcd字母的前面。对汉字而言,机内码与 国标码一样,次序由拼音顺序不决定。 PinYin : 对 西 文 字 母 而 言 , 空 格 在 最 前 面 , 小 写 abcd 在 大 写 ABCD的前面。 Stroke:按照书写笔画的多少排序

C++程序设计基础(第二版)[周霭如等编著][课后习题解答]3 (2)

C++程序设计基础(第二版)[周霭如等编著][课后习题解答]3 (2)
continue;
else cout << i << endl;
}
【答案】
4
7
10
4. #include <iostream.h>
void main()
{ int i = 0 , j = 5;
do
a = c = 0; b = 1; d = 20;
if( a ) d = d-10;
else if( !b )
if( !c )
x = 15;
else x = 25;
cout << d << endl;
{ if( j % 2 ) continue;
x++;
}
x++;
}
cout << "x=" << x << endl;
}
【答案】
x= 16
}
【答案】
20
2. #include <iostream.h>
void main()
{ int a = 0, b = 1;
switch( a )
{ case 0: switch( b )
{ case 0 : cout << "a=" << a << " b=" << b << endl; break;
do{ i--; cout<<i<<endl;}while( i!= 1 );
(a) 1 (b) 2 (c) 3 (d) 无限

C语言程序设计教程第2章程序流程

C语言程序设计教程第2章程序流程
画出
流程图
算法
确定
程序结构
变量类型
程序语句
(7)调试
调试
C语言程序设计
第二章 程序设计和程序结构
良好的程序编写风格会大大缩 短调试过程,附录4介绍了C语言程 序的一般书写风格,附录11介绍了 一些常见的错误。
C语言程序设计
第二章 程序设计和程序结构
2.1.2 算法
在实际的编程过程中要注意:
1、避免拿起题目就开始写程序的 2、应该先设计出合适的算法
第二章 程序设计和程序结构
本章概述
2.3程序结构 2.1程序设计与算法 2.4流程图及程序例子 2.2流程图
C语言程序设计
第二章 程序设计和程序结构
本章概述
• 本章主要介绍了C语言的程序结构、 流程图的绘制和程序设计的过程。 • 学习目标: • 1、理解程序的开发、设计过程 • 2、掌握C语言程序结构
C语言程序设计
第二章 程序设计和程序结构
其中最后一行的“Press any key to
continue”是VC6.0自动添加在每个
程序运行结果后面的一句提示信息,它
表示当程序执行结束时,操作者可以按
任意键返回到编辑界面。在后面的程序 运行结果中,将不再给出这一信息。
C语言程序设计
第二章 程序设计和程序结构
scanf("%d",&num1);
printf("Input the 2nd integer number: "); scanf("%d",&num2); sum=num1+num2; printf("sum=%d\n",sum); }
C语言程序设计

C语言程序设计 第2章 顺序结构与分支结构程序设计

C语言程序设计 第2章 顺序结构与分支结构程序设计

main() { char op;float x,y;
scanf("%f%c%f",&x,&op,&y); switch (op) { case '+' : printf("=%f\n",x+y); break;
case '-' : printf("=%f\n",x-y); break; case '*' : printf("=%f\n",x*y); break; case '/' : if (y!=0.0)
200,0,0
空语句
空语句是只有分号 ;的语句。示什么操作也不做。 从语法上讲,空语句也是一条语句。 在程序设计中,若某处在语法上需要一条语句,而实际上不需要 执行任何操作时就可以使用它。 例如,在设计循环结构时,有时用到空语句。
int i,s=0; for(i=1;i<=10;s=s+i++);
main() { int a;
scanf("%d",&a); switch(a) { case 3+8:printf("a==11");break; case 90: printf("a==90");break; case 'a': printf("a==97");break; case a>100:printf("a>100");break; default:printf("default"); } }
printf("%c\n",c); }

第二章 C语言程序设计

第二章 C语言程序设计
有符号 (signed) 整型变量 无符号 (unsigned) 基本整型(int) 短整型(short int) 长整型(long int)
例:整型数据的溢出。 main( ) { int a, b; a=32767; b=a+1;
printf(“%d,%d”,a,b);
}
返回
整型变量的定义
[unsigned][short][long] int <变量名1>, <变量名2>,……<变量名n>;
表达式1,表达式2……表达式n
说明:
1、逗号运算符的结合性为从左到右
2、所有运算符中,逗号运算符的优先级最低
练习题
执行下列语句后,a和b的值 分别为
int a, b; a=1+(b=2+7%-4-’A’)
练习题
执行下列语句后,a和b的值 分别为 -59,-60
int a, b; a=1+(b=2+7%-4-’A’)
练习题
一个C语言的源程序中,
(A)必须有一个主函数

(B)可以有多个主函数
(C)必须有主函数和其他函数
(D)可以没有主函数
练习题
1、编程实现,输入一个数,输出其 绝对值。 2、编程实现,输入a,b,c三个数, 输出其中最大者。
题 1、
Void Main()
{
int a, result; /*定义变量*/ scanf(“please input a number:%d”, &a); if (a>=0) result=a; else result=-a;
3、类型转换
例:
void main( )
{ float x, y;

第2章 简单程序设计(C++版)_第五节 数据输入输出

第2章 简单程序设计(C++版)_第五节 数据输入输出

例2.8 利用getchar函数接收键盘输入。 #include <cstdio> #include <iostream> using namespace std; int main( ) { char ch; ch=getchar(); //读入字符 cout<<"input="<<ch<<endl; }
一、字符输入函数getchar
getchar函数是接收从键盘输入的单个字符数据。它是一个无参
函数,其语法格式为: getchar(); 【说明】 1)通常把输入的字符赋予一个字符变量,构成赋值语句。例如: char ch; ch=getchar(); 2) getchar函数只能接受单个字符,输入数字也按字符处理。 3)输入多于一个字符时,只接收第一个字符。 4) getchar函数等待用户输入,直到按回车键才结束,可用于暂 停程序的运行,直到输入一个回车键。system(“pause”); 5)如果在程序中连续有两个以上getchar()函数,应该一次性输 入所需字符,最后再按回车键,否则会把回车作为一个字符传给后 面的getchar()函数。
f e
用于输入十进制整数 以无符号十进制形式输入十进制整 数 用于输入八进制整数 用于输入十六进制整数 用于输入单个字符 用于输入字符串(非空格开始,空 格结束,字符串变量以′\0′结尾) 用于输入float型实数(小数或指数 均可) 与f相同(可与f互换)
表2-7 scanf函数的附加格式说明符 附加格式 l(字母) h 说 明
例如,对如下程序段 int i=1; long j=123; printf("%d,%2d,%03d,%1d,%-4ld,%05ld",i,i,i,j,j,j); 输出:1, 1,001,123,123 ,00123
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章程序结构COBOL程序在编写时需要遵循严格的程序结构规则。

每个完整的COBOL程序代码都是由4个部组成的。

这4个部依次为标志部、环境部、数据部、以及过程部。

并且部与部之间的先后顺序不可更改。

下面依次对COBOL程序结构里的这4个部进行讲解。

2.1 标志部标志部是COBOL程序中的第一个部。

标志部通过“IDENTIFICATION DIVISION”标识,主要用来描述与程序本身相关的信息。

任何一个COBOL程序中都必须包含有标志部。

标志部中主要包含以下字段。

❑PROGRAM-ID❑AUTHOR❑INSTALLATION❑DATE-WRITTEN❑DATE-COMPILED❑SECURITY其中,第一个字段PROGRAM-ID用于指明程序名,是必须具备的字段。

其他字段则都是可选的。

但通常情况下,除以上第一个字段以外,还会包含有第二个字段。

第二个字段用于指明开发该程序的程序员名。

因此,通常情况下,COBOL程序在标志部中的格式如下。

IDENTIFICATION DIVISION.PROGRAM-ID. SAMPLE-PGM.AUTHOR. XXX.……以上代码指定了该程序的程序名为“SAMPLE-PGM”,开发该程序的程序员为“XXX”。

需要注意的是,程序名通常应该选择一个比较有意义的名字,最好能反映出该程序的大体功能。

在规范的开发部门中,程序名通常是由公司所指定的。

对于标志部中的程序员名字段,虽然不是必须要求具备的,但通常都会包含在内。

注明程序员名,对于该程序的后期维护是很重要的。

本书中该字段通常都指定为“XXX”。

在实际编写自己的程序时,可以署上自己的名字或代号。

关于标志部中其他几个字段简要介绍如下。

❑INSTALLATION:通常指设计该程序的公司或部门。

❑DATE-WRITTEN:指明程序编写或修改的日期。

❑DATE-COMPILED:指明程序编译的日期。

❑SECURITY:通常用于列出具有访问该程序权限的用户。

·2·2.2 环境部环境部紧接在标志部之后,主要用于指定该程序同外部系统环境之间的各种对应关系。

这种对应关系主要体现在程序的逻辑部分和环境的物理部分的对应。

环境部包含有两个节(也可称作“区”),其中一个为配置节,另一个为输入/输出节。

以下分别予以讲解。

2.2.1 配置节在讲解配置节之前,首先需要了解一下该节所在的环境部特征。

环境部通过“ENVIRONMENT DIVISION”标识。

同标志部不一样,如果该部没有任何内容,是可以省略不写的。

不过通常按规范至少应该加上该部的标识字段。

环境部在程序中的格式如下。

IDENTIFICATION DIVISION.PROGRAM-ID. SAMPLE-PGM.AUTHOR. XXX.*ENVIRONMENT DIVISION.……环境部中的配置节由“CONFIGURATION SECTION”标识。

该节主要用于指定程序同外部环境之间的一些配置信息。

该节也是可以省略不写的。

对于该节所包含的字段简要介绍如下。

❑SOURCE-COMPUTER:指示编译程序的计算机。

❑OBJECT-COMPUTER:描述运行程序的计算机。

❑SPECIAL-NAMES:指定货币符号选择小数点、提供开关名和定义字母表。

2.2.2 输入/输出节在COBOL程序中,数据主要是保存在文件中的。

数据的输入和输出通常是以文件为对象进行的。

因此,输入/输出节主要用于指定程序中所用到文件同外部环境之间的对应关系。

也就是说,输入/输出节主要是将程序中的逻辑文件同环境中的物理文件相对应起来。

输入/输出节由“INPUT-OUTPUT SECTION”标识。

在输入/输出节中,包含有两个字段,分别简要介绍如下。

❑FILE-CONTROL:用于指定文件的对应关系,是该节中主要用到的字段。

❑I-O-CONTROL:用于定义程序返回点,不同文件共享的内存区,以及多文件卷中文件的位置。

下面重点讲解输入/输出节中的FILE-CONTROL字段。

该字段在COBOL程序中基本的使用格式如下所示。

IDENTIFICATION DIVISION.PROGRAM-ID. SAMPLE-PGM.AUTHOR. XXX.*ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT CUSTOMER-FILEASSIGN TO S-SYSIN.SELECT PRINT-FILEASSIGN TO S-SYSOUT.·3·……在以上代码中,通过SELECT语句指定了两条文件对应关系。

其中第一条将CUSTOMER-FILE文件同S-SYSIN文件相对应。

第二条将PRINT-FILE文件同S-SYSOUT文件相对应。

以上4个文件所处位置分别如下。

❑在COBOL程序中的逻辑文件:CUSTOMER-FILE、PRINT-FILE;❑在外部环境中的物理文件:S-SYSIN、S-SYSOUT。

需要注意的是,对于S-SYSIN和S-SYSOUT,必须同相应JCL中指定的文件名一致。

而对于CUSTOMER-FILE和PRINT-FILE,通常需要在接下来的数据部中对其进行相关定义。

此处实际上主要是在程序里的逻辑名称和环境中的相应物理设备之间建立起了一定的联系。

2.3 数据部数据部紧接在环境部之后,由“DATA DIVISION”标识。

COBOL程序中所用到的各项数据都统一在数据部中定义,因此数据部十分重要。

数据部中常用的有3个节,分别为文件节、工作存储节、以及连接节。

此处主要讲解文件节和工作存储节。

连接节将在后面的子程序调用和CICS伪会话程序中具体讲解到。

下面对数据部的几个节作详细介绍。

2.3.1 文件节文件节由“FILE-SECTION”所标识,用于对程序中用到的文件里的数据进行定义。

需要注意的是,此处所说的文件指的是程序中的逻辑文件。

其文件名必须和环境部输入/输出节中由SELECT语句指定的文件名一致。

在文件节中,主要是通过FD语句实现对文件的定义。

在FD语句下,则通过PIC语句依次定义文件中每条记录所包含的数据项。

任何在程序中所使用到的文件都需要在此处定义。

以下代码反映了文件节在程序中的大致用法。

IDENTIFICATION DIVISION.PROGRAM-ID. SAMPLE-PGM.AUTHOR. XXX.*ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT CUSTOMER-FILEASSIGN TO S-SYSIN.SELECT PRINT-FILEASSIGN TO S-SYSOUT.*DATA DIVISION.FILE SECTION.FD CUSTOMER-FILERECORDING MODE IS F.01 CUST-RECORD.05 ACCOUNT-NO PIC 9(10).05 CLIENT-NAME PIC X(20).·4·05 PRI-FINANCE.10 F-SALARY PIC 9(5).10 F-STOCK PIC 9(7).10 F-FUND PIC 9(7).10 F-FOREX PIC 9(7).FD PRINT-FILERECORDING MODE IS FLABEL RECORDS ARE OMITTEDRECORD CONTAINS 132 CHARACTERSDATA RECORD IS PRINT-LINE.01 PRINT-LINE PIC X(132).……以上代码在环境部中指定了两个文件,因此在数据部中也相应的有两条FD语句用于对其定义。

其中FD是“File Descrtptor”的缩写,即文件描述符的意思。

关于在数据部文件节中的FD语句,有以下两点需要注意。

❑FD语句主要用来描述与文件记录相关的物理信息,如记录实际的格式、长度等等。

❑FD语句通过句点表示结束。

此外,可以看到,以上代码中的FD语句实际上是通过各种从句描述文件记录信息的。

关于这些从句分别介绍如下。

❑RECORDING MODE IS F:该从句用于指明文件记录的格式。

其中F表示“Fixed-length records”,即定长记录的意思。

通常情况下所用到的文件记录大多都为定长的。

当其不为定长时,也可通过其他字符进行指明。

❑LABEL RECORDS ARE OMITTED:表明忽略文件记录的标号。

当缺省时,OMITTED处为STANDARD。

其中手工指定为OMITTED时,将对应于用作输出打印的文件。

❑RECORD CONTAINS 132 CHARACTERS:表明每条文件记录包含132个字符。

标准情况下输出文件中的记录是包含132个字符的。

同时,此处所指定的字符个数需要与后面由PIC语句指定的总字符个数一致。

❑DATA RECORD IS PRINT-LINE:指明该文件所包含的记录名。

该从句是在COBOL-85版本中新创建的。

实际上,关于FD语句,其完整的语法格式如下。

FD file-nameBLOCK CONTAINS n RECORDSRECORD CONTAINS n CHARACTERSLABEL RECORD IS OMITTED/STANDARD(or: LABEL RECORDS ARE OMITTED/STANDARD)RECORDING MODE IS FDATA RECORD IS record-name.对于以上格式,主要需要补充的是关于BLOCK CONTAINS n RECORDS这条从句。

该从句用于指明在一个数据块中包含有多少条数据记录。

通常情况下,此处的数值n为0,表示在程序执行过程中动态地对数据记录组块。

对于所定义的数据,可以看到,实际上主要分为两大类型。

其中一类为数据组,另一类则为单元数据项。

数据组是由多个单元数据项或数据分组所组成的。

FD语句下所有的数据组和数据项组成了该文件的一条记录。

实际上,在文件节中各条FD语句下所定义的数据组和数据项是对相应文件记录逻辑上的一个划分。

在以上示例代码,对于CUSTOMER-FILE文件记录中各项数据的定义如下。

·5·……DATA DIVISION.FILE SECTION.FD CUSTOMER-FILERECORDING MODE IS F.01 CUST-RECORD.05 ACCOUNT-NO PIC 9(10).05 CLIENT-NAME PIC X(20).05 PRI-FINANCE.10 F-SALARY PIC 9(5).10 F-STOCK PIC 9(7).10 F-FUND PIC 9(7).10 F-FOREX PIC 9(7).……首先关注一下数据定义中的层。

相关文档
最新文档