C语言第3章顺序结构

合集下载

C语言程序设计 第3版 第3章 算法与流程图

C语言程序设计 第3版 第3章 算法与流程图

输入/输出框
处理框
流程图表示法一般包括三部分:
(1)表示相应操作的框; (2)带箭头的流程线; (3)框内外符
C语言程序设计
2. 流程图
符号表示 简单实例
用流程图表示下面的分段函数。
2x 1 y 0
3x 1
x0 x0 x0
C语言程序设计
3. 程序设计结构
顺序结构 选择结构 循环结构
(4)有零或多个输入:根据算法的不同,有的在实现过程中需要输入一些原始数据,而有 些算法可能不需要输入原始数据;
(5)有一个或多个输出:设计算法的最终目的是为了解决问题,为此,每个算法至少应有 一个输出结果,来反应问题的最终结果。
C语言程序设计
2. 流程图
符号表示 简单实例
流程图常用的符号:
起止框
顺序结构 选择结构 循环结构
循环结构流程图:
某学生在操场上跑步,一共要跑四圈,每一圈 都要跨过障碍,请画出该算法的流程图。
不成立 条件? 成立
A
圈数≤4? 成立
跨障碍
不成立
执行过程:
先判断条件,如果条件成立,执行A,再循环判断条件, 否则,跳出循环。
C语言程序设计
谢谢
C语言程序设计
第3章 算法与流程图
提纲
1.算法定义及特征 2. 流程图表示法 3. 程序设计结构
1. 算法
算法定义 算法特征
定义:
现实生活中解决问题时,一般都要制订一个针对具体问题的步骤和方法,以此为据去实现目标。 将为了解决问题所制订的步骤、方法称为算法(Algorithm)。
计算下面的分段函数。
特征:
(1)有穷性:算法中所包含的步骤必须是有限的,不能无穷无止,应该在一个人所能接受 的合理时间段内产生结果;

数据结构(C语言)第3章 栈和队列

数据结构(C语言)第3章 栈和队列

Data Structure
2013-8-6
Page 13
栈的顺序存储(顺序栈)
利用一组地址连续的存储单元依次存放自栈底到栈顶的数 据元素。 结构定义: #define STACK_INIT_SIZE 100; // 存储空间初始分配量 #define STACKINCREMENT 10; // 存储空间分配增量 typedef struct { SElemType *base; // 存储空间基址 SElemType *top; // 栈顶指针 int stacksize; // 当前已分配的存储空间,以元素位单位 } SqStack;
解决方案2:
顺序栈单向延伸——使用一个数组来存储两个栈
Data Structure 2013-8-6 Page 21
两栈共享空间 两栈共享空间:使用一个数组来存储两个栈,让一个 栈的栈底为该数组的始端,另一个栈的栈底为该数组 的末端,两个栈从各自的端点向中间延伸。
Data Structure
2013-8-6
链栈需要加头结点吗? 链栈不需要附设头结点。
Data Structure
2013-8-6
Page 27
栈的链接存储结构及实现
Data Structure
2013-8-6
Page 11
GetTop(S, &e) 初始条件:栈 S 已存在且非空。 操作结果:用 e 返回S的栈顶元素。 Push(&S, e) 初始条件:栈 S 已存在。 操作结果:插入元素 e 为新的栈顶元素。 Pop(&S, &e) 初始条件:栈 S 已存在且非空。 操作结果:删除 S 的栈顶元素,并用 e 返回其值。
Data Structure

C语言 第三章 顺序结构程序设计期末测试习题与答案

C语言 第三章 顺序结构程序设计期末测试习题与答案
A.scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
B.scanf(“%dV%dV%d”,&a,&b,&c);
C.scanf(“%d,%d,%d”,&a,&b,&c);
D.scanf(“%2d%3d%4d”,a,b,c);
参考答案:C
5、若int a,b; double x;
以下不合法的scanf函数调用语句是( )。
参考答案:C
17、以下程序段的输出结果是
int a=1234;
printf("a=%2d\n",a);
A.提示出错、无结果
B.a=34
C.a=1234
D.a=12
参考答案:C
18、下列关于printf()函数说法错误的是( )。
A.printf()函数是库函数,必须使用#include命令将其包含进来
printf(" %d %d\n",(++x ,y++),z+2);}
运行该程序的输出结果是( )。
A.4 2
B.33
C.4 3
D.3 4
参考答案:B
24、下列程序的输出结果是( )。
main()
{ double d=3.2; int x ,y ;
x=1.2 ; y=(x+3.8)/5.0;
printf("%d \n", 7.3);}
A.3
B.3.07
C.0
D.3.2
参考答案:C
25、以下程序的输出结果是( )。
main( )
{
inmp;&!b||!c;

06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。

八进制数为从低位开始,以三位一组划分为一个八进制数。

3)x格式符。

以十六进制数无符号形式输出整数。

例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。

4)u格式符。

以十进制数无符号形式输出整数。

一个有符号的(int)型数据能够用%d格式输出,也能够用%u格式输出。

要注意两类数据的取值范畴大小。

例如:无符号数据的输出。

main(){unsigned int x=65535;int y=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。

5)c格式符。

用来输出一个字符。

例如:char x=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65能够看出,一个范畴在0~255的整数,既能够用%d格式输出,也能够用%c格式输出。

输出该整数或者整数对应ASCII的字符。

6)s格式符。

用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,假如%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。

③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若m<n,则m自动取n 值输出n个字符。

《数据结构(C语言)》第3章 栈和队列

《数据结构(C语言)》第3章 栈和队列
Data structures

❖ 栈的顺序存储与操作 ❖ 1.顺序栈的定义
(1) 栈的静态分配顺序存储结构描述 ② top为整数且指向栈顶元素 当top为整数且指向栈顶元素时,栈空、入栈、栈满 及出栈的情况如图3.2所示。初始化条件为 S.top=-1。
(a) 栈空S.top==-1 (b) 元素入栈S.stack[++S.top]=e (c) 栈满S.top>=StackSize-1 (d) 元素出栈e=S.stack[S.top--]
/*栈顶指针,可以指向栈顶
元素的下一个位置或者指向栈顶元素*/
int StackSize; /*当前分配的栈可使用的以 元素为单位的最大存储容量*/
}SqStack;
/*顺序栈*/
Data structures

❖ 栈的顺序存储与操作 ❖ 1.顺序栈的定义
(2) 栈的动态分配顺序存储结构描述 ① top为指针且指向栈顶元素的下一个位置 当top为指针且指向栈顶元素的下一个位置时,栈空 、入栈、栈满及出栈的情况如图3.3所示。初始化条 件为S.top=S.base。
…,n-1,n≥0} 数据关系:R={< ai-1,ai>| ai-1,ai∈D,i=1,2
,…,n-1 } 约定an-1端为栈顶,a0端为栈底 基本操作:
(1) 初始化操作:InitStack(&S) 需要条件:栈S没有被创建过 操作结果:构建一个空的栈S (2) 销毁栈:DestroyStack(&S) 需要条件:栈S已经被创建 操作结果:清空栈S的所有值,释放栈S占用的内存空间
return 1;
}
Data structures

C语言_第3章

C语言_第3章
第3章 顺序结构程序设计
简单程序的流程一般分为顺序结构、选择结构和循环结 构。其中顺序结构是最基本的控制结构,其包含的语句 是按照书写的顺序执行,且每条语句都将被执行。
程序流程如图3.1所示, #include<stdio.h> 语句按书写顺序执行。 main( ) 先执行A,再执行B。 {int a=10,x=5,y=6;
三、复合语句
用一对花括号,把若干条语句括起来,
就形成了一条复合语句。形式如下:
{[内部数据描述语句]
其中定义的变量是
语句1; …… 语句n;}
复合语句结束的 “}”之后,不需
局部变量,仅在复 合语句中有效。
要再加分号。
花括号中的语句,可以是简单语句、空语句、复合 语句、流程控制语句,所有这些语句括在一起,在 语法上看成是一条语句,执行时顺序执行花括号中 的每条语句。复合语句多用于流程控制语句中。
printf(“\n%d,%d”,a+i,i++);}
四、格式输入函数 格式输入函数一般形式 scanf(“格式控制字符串”,地址列表); 功能:按指定的格式从键盘上把数据输入到指定的 变量之中 。 在scanf语句的格式控制字符串中,有两类字符: 普通字符:必须按原样输入,不能省略; 格式说明部分:由%引导的格式字符串组成。
scanf语句格式说明部分的一般格式为: %[*][width][F|N][h|L]type type是必须的,表示输入后转换的数据类型。
d(D) o(O) x(X) i(I) u(U)
c s f,e,g F,E,G n
%
十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数

C语言 顺序结构(3)

C语言 顺序结构(3)

商学院
作业
P93 6, 7, 8, 9 补充: 1、求下列表达式的值: (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 2 、 用 下 面 的 Scanf 函 数 输 入 数 据 , 使 a=10,b=20,c1=„A‟,c2=„a‟,x=1.5,y=-3.75,z=67.8, 请 问 在 键 盘 上 如何输入数据? scanf(“%5d%5d%c%c%f%f%*f,%f”, &a,&b,&c1,&c2,&x,&y,&z);
商学院
数据输出
c格式字符,用来输出一个字符 例: main() { char c=‟a‟; int i=97; printf(“%c,%d\n”,c,c); printf(“%c,%d\n”,i,i); } 结果: a,97 a,97
商学院
数据输出
用来输出一个字符串
(1)%s :输出字符串 (2)%ms : 输出的字符串占m列,若串长小于m则左补空格,若大于m则按实际 长度显示. (3)%-ms : 若串长小于m则在m列范围内字符串向左靠,右补空格. (4)%m.ns : 输出占m列,但只取字符串中左端n个字符,这n个字符输出在m列的右 侧,左补空格.若m小于n,则m自动取n值. (5)%-m.ns : 输出占m列,但只取字符串中左端n个字符,这n个字符输出在m列的左 侧,右补空格.若m小于n,则m自动取n值.
; 不能有
商学院
C语言概述
表达式语句
运算符、常量、变量等可以组成表达式,而表达式后加分号就构成表 达式语句。 例如: x=y+3;

C语言

C语言

1234,1234 运行 结果: 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a 例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); %s\ %s n%15s\n%10.5s\n%2.5s\n%.3s\ 运行结果: 运行结果:Hello,world! Hello,world! Hello Hello Helfloat f=123.456; char ch=‘a’; printf(“%8d,%2d\n”,a,a) %8d,%2d\ ,a,a); %8d,%2d ,a,a) printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f); %f,%8f,%8.1f,%.2f,%.2e\ %f,%8f,%8.1f,%.2f,%.2e printf(“%3c\n”,ch); %3c\ %3c
//00001234 //0000123.46 //000+1234 //000+123.56
例 # 例 int a=123; printf(“%o,%#o,%X,%#X\n”,a,a,a,a); %o,%#o,%X,%#X\ %o,%#o,%X,%#X //173,0173,7B,0X7B
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 例 l 例 long a=65536; printf(“%d,%8ld\n”,a, a); %d,%8ld\ %d,%8ld //0, 65536 12
printf函数 printf函数
注意: 注意:
除X、G、E外,其余格式字符必须小写。 、 、 外 其余格式字符必须小写。 在printf()语句中,是从右向左计算输出表达式的值。 ()语句中 ()语句中,是从右向左计算输出表达式的值。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章顺序结构选择题1. 结构化程序设计的三种基本结构是()。

A. 函数结构、判断结构、选择结构B.平行结构、嵌套结构、函数结构C. 顺序结构、选择结构、循环结构D.判断结构、嵌套结构、循环结构2. putchar( )函数可以向终端输出一个()。

A. 整型变量表达式值B. 实型变量值C. 字符串D. 字符或字符型变量值3. 若已定义 double y; 拟从键盘输入一个值赋给变量y,则正确的函数调用是()。

A. scanf(“%d”, &y);B. scanf(“%7.2f”, &y);C. scanf(“%lf”, &y);D. scanf(“%ld”, &y);4.C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。

如果格式说明的个数小于输出项的个数,多余的输出项将;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。

A)不予输出 B)输出空格C)照样输出 D)输出不定值或05.在 scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配。

如果类型不匹配,系统。

A)不予接收B)并不给出出错信息,但不可能得出正确信息数据C)能接受正确输入D)给出出错信息,不予接收输入6.以下程序的输出结果是。

main(){int i=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,167.以下程序的输出结果是。

main(){int i=011,j=11,k=0x11;printf("%d,%d,%d\n",i,j,k);}A)9,11,17 B)9,11,11 C)11,11,11 D)11,11,168.以下程序的输出结果是。

main(){char c1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}A)因输出格式不合法,输出出错信息 B)6,0,6,102C)6,0,7,6 D)6,0,5,79.设有如下定义int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是。

A)3 B)0 C)4 D)110.设有如下定义int x=10,y=5,z;则语句printf("%d\n",z=(x+=y,x/y));的输出结果是。

A)1 B)0 C)4 D)311.以下程序的输出结果是。

main(){int x=10,y=10;printf("%d %d\n",x--,--y);}A)10 10 B)9 9 C)9 10 D)10 912.写出下面程序的输出结果。

main(){int x;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3*4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}A)11 1 0 1 B)11 -3 2 1 C)12 -3 2 1 D)11 1 2 1 13设有如下定义和执行语句,其输出结果为:。

int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 314 下列程序的输出结果是().main() {int a=011; printf("%d\n",++a); }A、11B、10C、9D、1215下列程序段的输出结果为(). float x=213.82631;printf("%3d",(int)x);A、213B、213.83C、3.8D、213.8216下列语句的结果是().main() { int j; j=3; printf("%d,",++j); printf("%d",j++); }A、4,3B、3,3C、3,4D、4,417若有定义 int x=4;则执行语句 x+=x*=x+1;后,x的值为A、5B、20C、40D、无答案18有以下程序main(){int a=0,b=0;a=10;b=20;printf("a+b=%d\n",a); }程序运行后的结果是().A、出错B、30C、a+b=10D、a+b=3019若x是int型变量,y是float型变量,所用的scanf调用语句格式为: scanf("x=%d,y=%f",&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应是: 。

A. x=10,y=66.6<回车>B. 10 66.6<回车>C. 10<回车>66.6<回车>D. x=10<回车>y=66.6<回车>20若有定义double x=1,y;则以下的语句执行的结果是。

y=x+3/2; printf(“%f”,y);A.2.500000B.2.5C.2.000000D.2二.填空题1 C语言中的空语句就是。

2 赋值语句的一般表示形式为。

3 getchar函数的作用是。

4 复合语句是由一对括起来的若干语句组成。

5 要求赋给变量a一个整数,请完善程序:scanf(“”,&a);6 要求赋给变量a一个单精度数,请完善程序:scanf(“”,&a);7 要求赋给变量a一个字符,请完善程序:scanf(“”,&a);8 "%md"表示如果实际数据位数小于m,则端补空格。

9 设int a=9; 语句a+=a-=a+a; 执行后,变量a的值是。

10 printf函数的一般表现形式为:printf(,输出表列);三判断1使用scanf输入数据时可以规定其精度2 C语言中float a=b=c=1.0是正确的。

3 putchar(c)中c可以是转义字符。

4 使用putchar函数时,必须在之前包含头文件stdio.h。

5 printf函数中,%c和%s都可以输出字符串。

6 用scanf函数向已定义的变量中输入数据时,在变量名前面必须加&。

7 C 语言程序的三种基本结构是顺序结构、选择结构和递归结构。

8当程序中有scanf("%d%d",&x,&y);则执行时,输入5,8后,x、y变量的值分别是5和8。

9按格式符“%d”输出float类型变量时,截断小数位取整后输出。

10 scanf函数中的格式符“%d”不能用于输入实型数据。

四编程1、编写程序,输入两个整数:1500和350,求出它们的商和余数并输出。

2、编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,b中原来的值给c, c中原来的值给a,且输出改变后的a,b,c的值。

3、输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,(float)a/b,a%b的结果,要求连同算式一起输出,每个算式占一行。

例:a等于10,b等于5,a+b的结果输成10+5=154、输入一个非负数,计算以这个数为半径的圆周长和面积。

5、输入任意一个3位整数,将其各位数字反序输出(例如输入123,输出321).6 输入3个双精度实数,分别求出它们的和、平均值、平方和并输出所求出各个值。

7输入任意一个3位整数,求出该数每个位上的数字之和。

如123,每个位上的数字和就是1+2+3=6。

8.编写一个程序,输出如下信息:******************** C LANGUAGE ********************9.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后2位数字。

请编程序。

10.请编程序将"China"译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。

例如,字母"A"后面第4个字母是"E", "E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为'C'、'h'、'i'、'n'、'a',经过运算,使c1、c2、c3、c4、c5分别变为'G'、'l'、'm'、'r'、'e',并输出。

答案选择题CDCABAABADDAABADCCAC填空题1; 2赋值表达式; 3输入一个字符 4 {} 5 %d 6 %f 7 %c 8左9 -18 10格式控制字符串三判断1 错误2错误3正确4正确5错误6正确7错误8错误9错误10正确。

相关文档
最新文档