《程序设计基础》作业三讲评Word文件下载.docx
- 文档编号:17727642
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:18
- 大小:26.96KB
《程序设计基础》作业三讲评Word文件下载.docx
《《程序设计基础》作业三讲评Word文件下载.docx》由会员分享,可在线阅读,更多相关《《程序设计基础》作业三讲评Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
1234,按照这种思路,可以构造出:
1234,1243,1324,1342,1432,2134,2143, 2314,2341,2431,3214, 3241,3421, 4321出栈序列。
2.写出下面二叉树的先序遍历、中序遍历、后序遍历时得到的定点序列
A
B
C
E
D
先序:
ABDEC
中序:
DEBAC
后序:
EDBCA
本题考核对树的遍历的方法的理解。
先序就是先遍历根节点,再遍历左,后遍历右;
中序就是先遍历左,再遍历根节点,后遍历右;
后序就是先遍历左,再遍历右,后遍历根节点;
以此方法遍历每一颗子树。
《程序设计基础》作业四
一、选择题
1、采用链式存储的有序数据要进行查找,可以采用__A____。
A顺序查找ﻩﻩB折半查找
C顺序索引查找 D 顺序或折半查找
2、螺旋模型中包括需求定义、风险分析、工程实现和评审四个阶段,在开发过程中___A___。
A每个周期都要包括这四个阶段
B每个周期可以包括不同的阶段
C在最后交付使用之前才进行评审ﻩﻩ
D开项目开始时才需要进行风险分析
3、在软件需求完全确定的情况下,应该采用的软件开发模型是___A___。
A瀑布模型ﻩﻩB渐进式开发模型
C原型模型ﻩD螺旋模型
4、流程图中表示判断框的是 B。
ﻫA 矩形框 B菱形框
C 圆形框 D 椭圆形框
回答此题需要掌握流程图的各种符号。
二、简答题(答案参考教材)
以下问题的回答需要对教材第七章涉及的内容理解并掌握。
1.什么是软件?
什么是软件工程?
2.在软件工程过程中围绕着工程设计、工程支持和工程管理应当遵循什么基本原则?
3.什么是软件的生存周期?
如何划分软件的生存周期?
4.快速原型法的主要思想和特点是什么?
作业二答案
1、C语言中,使用变量的要求是______。
A要先定义后使用ﻩﻩB 要先使用后定义
C不需要定义,可以直接使用ﻩD没有明确的要求
2、不是C语言的基本数据类型是______。
A intﻩﻩﻩﻩBdoubleCcharﻩDbool
3、编程语言提供的三种基本控制结构是______。
D
A 输入、处理和输出结构ﻩB 常量、变量和表达式结构
C表达式、语句和函数结构ﻩﻩﻩD顺序、选择和循环结构
4、在C语言中,决定int数的表示范围的因素是______。
A
Aint类型占用的字节数量ﻩﻩB人为事先的约定和习惯
C 所存储的数据是否有符号ﻩﻩD 数在内存中的编码方式
5、C语言中,关于运算符的正确概念是_____。
A运算符具有优先级,同优先级的运算符由括号决定运算次序
B在不同优先级运算符进行混合运算时,运算的先后次序取决于结合性
C在同优先级的运算符参与运算时,先计算左侧的运算符
D运算符具有优先级和结合性
6、在C语言中关于循环语句的结论中,错误的是______。
Ado-while语句构成的循环至少要执行一次
B while语句和for语句可以相互替代
C for和while语句的循环控制条件都是当条件成立时执行循环体
Ddo-while语句的循环控制条件是当条件不成立时继续执行循环体
二、填空题
1、最基本的程序控制有三种,它们是______,______和______。
这三种执行控制的任意组合和重复、嵌套就可以描述任意复杂的程序。
顺序执行、分支控制和循环控制
2、C语言中分支语言是______语句和______语句。
if,switch
3、C语言中循环语言是______语句,______语句和______语句。
while,for和do-while
4、C语言中自增运算符是______,求余数的运算符号是______。
++,%
5、C语言中要改变循环语句的流程可以使用语句______,______和______。
break,continue和goto
三、简答题
1、请简要介绍面向过程式语言中的三种程序设计的基本结构。
顺序结构是指按先后顺序从前到后执行的语句序列。
这些语句逻辑上可能有明确的顺序关系,即后一个程序语句依赖于前一个语句,也可能它们之间没有明确的顺序关系,即某些语句的先后顺序并不重要,一个语句逻辑上并不从属于另一些语句。
选择结构是指根据判定条件控制一些语句是否执行的语句。
选择结构可用if-then、if-then-else或case(或switch)等语句进行描述。
当判定条件成立时需要执行一组语句,且不成立时不需要执行这些语句,那么应当采用if-then语句。
当判定条件成立时需要执行一组语句,否则需要执行另一组语句时,可采用if-then-else语句。
当根据表达式的取值情况在多个动作中选取其一执行时,可采用case语句。
循环结构是指可重复执行一组语句(称为循环体)的程序语句。
根据重复方式的不同,循环结构可分为while型循环、until型循环和for型循环。
while型循环是在指定的条件(称为循环条件)成立时,重复执行循环体,其特点是执行循环体前先判定循环条件,因此可能一次也不执行循环体。
until型循环将重复执行循环体,直到循环条件成立才结束该重复,其特点是每执行一次循环体后判定循环条件,因此至少执行一次循环体。
for型循环将循环体重复执行给定次数,其特点是循环开始前可确定循环次数。
2、什么是面向过程式语言?
有什么特点?
面向过程式语言,也叫命令式语言或强制式语言,它是通过指明一列可执行的运算及运算的次序来描述计算过程的语言。
命令式语言以冯·
诺依曼式计算机体系结构为背景。
机器语言与汇编语言是最早问世的命令式语言。
FORTRAN,ALGOL,COBOL,PASCAL,C,Ada等高级语言也属过程式语言,其变量对应于存储单元,对变量的访问就是对相应存储单元的访问。
各个语句在程序中的顺序以及转向语句等控制语句则明确规定了机器的执行步骤,这就是冯·
诺依曼式体系结构的思维方式在程序设计中的反映。
过程式语言程序的本质是重复地、按步地计算低级(非抽象)值并将之赋给变量(对象),这就迫使程序人员去关心比较低级的细节,而这不适用于设计复杂算法。
因此,几十年来过程式语言一直向着隐蔽低级机器属性、提高程序层次与抽象性的方向发展。
3、结构化程序设计方法的主要技术是什么?
结构化程序设计方法的主要技术是自顶向下、逐步求精。
具体地说,就是在接受一个任务之后,纵观全局,先设想好整个任务分为几个子任务,每一个子任务又可以进行细分,直到不需要细分为止。
这种方法就叫做“自顶向下、逐步求精”。
采用这种方法考虑问题比较周全,结构清晰,层次分明。
用这种方法也便于验证算法的正确性。
在向下一层细分之前应检查本层设计是否正确,只有上一层是正确的才可以继续细分。
如果每一层设计都没有问题,则整个算法就是正确的。
由于每一层向下细分时都不太复杂,因此容易保证整个算法的正确性。
检查时也是由上而下逐层检查,这样做思路清晰,可以有条不紊地一步一步地进行,既严谨又方便。
4、结构化程序设计的主要特征与风格是什么?
结构化程序设计的主要特征与风格如下所述。
(1)一个程序按结构化程序设计方式构造时,由三种基本控制结构:
顺序结构、选择结构和循环结构构成。
(2)有限制地使用goto语句。
鉴于goto语句的存在使程序的静态书写顺序与动态执行顺序十分不一致,导致程序难读难理解,容易存在潜在的错误,难于证明正确性,有人主张程序中禁止使用goto语句,但有人则认为goto语句是一种有效设施,不应全盘否定而完全禁止使用。
结构程序设计并不在于是否使用goto语句,因此作为一种折衷,允许在程序中有限制地使用goto语句。
(3)往往藉助于体现结构化程序设计思想的所谓结构化程序设计语言来书写结构化程序,并采用一定的书写格式以提高程序结构的清晰性,增进程序的易读性。
(4)它强调了程序设计过程中人的思维方式与规律,是一种自顶向下的程序设计策略,它通过一组规则、规律与特有的风格对程序设计细分和组织。
对于小规模程序设计,它与逐步精化的设计策略相联系,即采用自顶向下、逐步求精的方法对其进行分析和设计;
对于大规模程序设计,它则与模块化程序设计策略相结合,即将一个大规模的问题划分为几个模块,每一个模块完成一定的功能。
5、程序的最基本控制结构有几种?
分别叫什么?
如何组成千变万化的程序?
最基本的程序控制有以下三种:
顺序执行、分支控制和循环控制。
(3分)
(2分)
四、写出程序的运行结果
1、写出程序运行结果。
#include<
stdio.h>
main ()
{ inta=3, b=7;
printf("%d\n", ++a+++b);
/*①*/
printf ("
%d\n"
b%a);
/*② */
}
程序运行结果是:
①12② 0
2、阅读下面的程序并回答问题。
#include <
stdio.h>
main()
{int a,b,m,n;
scanf ( ”%d%d",&
a,&
b);
m=n= 1;
if(a>
0)m=m+n;
if(a<b)n = 2*m;
elseif(a==b)n =5;
else n =m+n;
printf( "m=%dn=%d\n"
m,n);
}
为了输出n=4,变量a和b应具备条件。
0<
a<
b
3、阅读程序,写出程序的输出结果。
#include<
stdio.h>
main()
{chari,j;
for(i=’0’,j=’9’;
i<
j;
i++,j--)
printf("
%c%c"
,i,j);
printf("
\n"
);
}
运行结果是:
0918273645
4、写出程序运行结果。
#include<
stdio.h>
main ()
{ inta, b,c;
a=1;
b=2;
c=3;
if (a>
b)
if(a>c)
printf("
%d"
,a);
else printf("
b);
printf ("%d\n",c);
}
运行结果是:
3
5、阅读程序写出程序的输出结果。
#include <stdio.h>
main()
{inti=0,j=0,k=0,m;
for( m=0;
m<4;
m++)
switch( m)
{ case0:
i=m++;
case1:
j=m++;
case2:
k=m++;
case3:
m++;
}
printf("\n%d,%d,%d,%d"
i,j,k,m);
}
0,1,2,5
6.#include <
stdio.h>
voidmain()
{ inta=1,b=4,c=2;
a=(a+b)/c;
printf(“%d\n”,--a);
}
运行结果:
1
7.
voidmain( )
{ char c1=67;
/*‘A’的ASCII码值为65 */
if (‘A’ <
=c1&
&
c1<
=’Z’)
printf(“%d,%c”,c1,c1+1);
else printf(“%c”,c1);
}
运行结果:
67,D
8.
viod main( )
{int a=0, n=5;
for(;
;
)
{ a++;
n--;
printf(“%d,”,a);
a=n;
if(n==0) break;
}
printf(“%d”,a);
}
1,5,4,3,2,0
9. main()
{int k=10;
charc=’b’;
do
swith(c++)
{case‘a’:
k++;
case ‘b’:
k--;
case‘c’:
k+=3;
break;
case ‘d’:
k=k%4;
}
while(c!
=’c’);
printf(“%d\n”,k);
}
12
10. #include <stdio.h>
main()
{int x=1,a= 0,b =0;
switch(x)
{case0;
b+ +;
case 1;
a+ +;
case2;
a+ +;
b+ +;
}
printf (“a=%d,b=%d \n”,a,b);
a=1,b=1
11、写出程序的运行结果。
#include<
stdio.h>
main( )
{ int a=2,b=-1,c=2;
if ( a<b)
if (b<
0)c=0;
else c+=1;
printf ("
%d\n", c);
}
2
12、阅读程序写出运行结果。
#include<
stdio.h>
main()
{charch;
ch= getchar();
switch( ch)
{ case65:
printf(”%c”,’A’);
case66:
printf(”%c”, ’B’);
default:
printf(”%s\n”,”other”);
}
}
如程序可以正常运行,当从键盘输入字母A时,输出结果为 。
ABother
13、写出程序运行结果。
main()
{ intx=23, y=10;
do
{printf(”%d%d”,x--,++y);
while(!
x);
该程序的执行结果是______。
23 11
14、写出程序运行结果。
#include <
stdio.h>
main()
{ intk=1,j=0;
while (k+j<
=10)
if( k>j)j=j+2;
else k=k+2;
printf("
%d%d\n"
k,j);
}
该程序的执行结果是______和______。
5 6
15、阅读程序,写出程序的输出结果。
main( )
{ inta=0,n=5;
for( ;
;
)
{ a++;
printf(“%d,”,a);
a=n;
if(n==0)break;
}
printf(“%d”,a);
____________________
1,5,4,3,2,0
16、阅读下面的程序并回答问题。
#include <stdio.h>
main()
{inta=13,b=-7;
printf("
%d\n"
,a/b);
/*①*/
printf("
%d\n"
b/a*a);
/* ② */
}
______和______。
①1 ②0
17、阅读程序,写出程序的输出结果。
#include <
stdio.h>
main( )
{inti=1,j=2;
if (i!
=j)
printf("
YES\n"
);
else
printf("
NO\n"
}
______。
YES
18、阅读程序,写出程序的输出结果。
main ()
{ inta=0;
for(a=0;
a<
3;
a++);
printf("
a);
}
3
19、写出程序运行结果。
(2分)
#include<stdio.h>
main()
{ charc=’A’;
if(’0’<
=c<
=’9’)
printf (”YES”);
else
printf(”NO”);
}
该程序的执行结果是______。
YES
20、写出程序运行结果。
(4分)
#include<
stdio.h>
main()
{ inti,j;
for( i=0,j=10;
i<
j;
i+=2,j--) ;
printf("
i);
/*① */
printf("
j);
/*②*/
}
该程序的执行结果是______和______。
8 6
21、阅读程序,写出程序的输出结果。
main()
{intx=10,y=10,i;
for(i=0;
x>8;
y=++i )
printf(”%d%d ”,x--,y);
}
10 1091
22、以下程序的输出结果是_____ 。
voidmain()
{
intx=17,y=26;
printf("
%d \n"
y/=(x%6));
5
五、程序设计
1、编写一程序,从键盘输入10个实数,计算并输出这10个数的平均值。
#include<
stdio.h>
main()
{ inti;
doublex, sum=0;
ﻩﻩﻩﻩﻩﻩ
for (i=1;
x<=10;
x++)ﻩﻩﻩﻩﻩ
{ scanf(“%f”,%x)ﻩﻩﻩﻩﻩ
sum+=x;
ﻩﻩﻩﻩﻩ
ﻩ printf("%f\n"
sum/10);
ﻩﻩﻩﻩ
2、编写程序,计算1!
+2!
+3!
+…….+n!
的值,其中n的值由键盘输入。
#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础 程序设计 基础 作业 讲评