文档库 最新最全的文档下载
当前位置:文档库 › Ch4.2-程序设计

Ch4.2-程序设计

Ch4.2-程序设计
Ch4.2-程序设计

4.2.1条件语句

最简单的条件语句是公由if和end组成,它可根据逻辑表达式的值选择是否执行。如:(1)

function z=ex1(a)

if rem(a,2)==0

disp('a is even')

b=a/2

end

将这一段程序取名为ex1.m保存在适当路径下,然后运行:

>>a=4;

>>ex1(a)

结果为:

>> a=4;

>> ex1(a)

a is even

b = 2

当a为偶数时,b=a/2; 否则不作任何处理。

(2)表达式不是标量时,则只有当矩阵的所有值为非零时,条件才满足,因此如果X 为矩阵,则

if X

statements

end

等效于

if all(X(:))

statements

end

(3)利用else和lseif可进一步给出条件,从而构成复杂的条件语句。Else表示当前面的if(也可能是elseif)表达式为0或FALSE时,执行与之相关联的语句;eseif 语句表示前面的if或lseif为0或FALSE时,计算本语句的表达式,当表达式为非零或TRUE 时,执行与之相关联的语句。注意在同一个if块中,可含有多个elseif语句。例如,针对输入n的情况,分别进行处理:

function z=ex2(n)

if n<0

disp('Input n must be positive.')

elseif n==0

disp('n=0')

elseif rem(n,2)==0

disp('n是2的倍数')

elseif rem(n,3)==0

disp('n是3的倍数')

else

disp('其它情况')

end

如:

>> n=-3;

>> ex2(n)

Input n must be positive.

>> n=3;

>> ex2(n)

n是3的倍数

>> n=5;

>> ex2(n)

其它情况

(4)当逻辑表达式为空阵列时,则表示FALSE,例如,当A为空阵列,则语句:

if A

statemetns 1

else

statements 2

end

执行 statements 2.

4.2.2情况切换语句

switch语句可根据表达式的不同取值执行不同的语句,这相当于多条if语句的嵌套使用。例如,根据var1变量的取值{-1,0,1},分别执行相应的语句,可输入:function z=ex4221(var1)

switch var1

case -1

disp('var1 is negative one.')

case 0

disp('var1 is zero.')

case 1

disp('var1 is positive one.')

otherwise

disp('var1 is other value.')

end

将上述内容以文件ex4221.m存于路径下,则在MATLAB下有:

>>var1 =-1;

>> ex4221(var1)

var1 is negative one.

>> var1=0;

>> ex4221(var1)

var1 is zero.

>> var1=-9;

>> ex4221(var1)

var1 is other value.

但这里只有当var1=-1,0,1时才执行相应的语名,所有其它的值都执行otherwise中的语句。在if语句中,我们可设定>,<.,≥

≤,这样的关系,但switch中只能采用相等的关系。

Switch语句的表达式还可能是字符串,这时采用的是字符串比较,例如:

>> method='linear'; %字符串用“’’”括住作为数据而不是变量给method switch lower(method) %将大写的字符换成小写,输入:’LineaR’,结果同下

case{'linear', 'bilinear'},disp('Mathod is linear.')

case 'cubic', disp('Method is cubic.')

case 'nearest', disp('Method is nearest.')

otherwise, disp('Unknown method.')

end %回车后给出下行的结果

Mathod is linear.

上面是直接在工作窗口输入的结果, 若将switch所在行直到end的程序段存为脚本文件(名为ex4222b.m),则有:

>> method='CUBIC';

>> ex4222b

Method is cubic.

若将程序段前加上函数名,也可调用M函数文件(名为ex4222.m),则有:>> method='CUBIC';

>> ex4222(method)

Method is cubic. % 输出结果

4.2.3 指定次重复循环语句

for语句可完成指定次数重复的循环,这是广泛应用的语句。例如,为求n!, 我们可循环n次,每次求出k!=(k-1)!*k. MATLAB程序为

>> r=1;

>> for k=1:20

r=r*k;

end

>> disp(r)

2.4329e+018

>> format long g %长格式

>> disp(r)

2.43290200817664e+018

>> format long e %长格式

>> disp(r)

2.432902008176640e+018

>> format rat %比率格式

>> disp(r)

2432902008176640000

输出格式上,可以用format 加以下格式:

short 5位定点格式

long 15位定点格式

short e 5位浮点

long e 15位浮点

short g 5位定点或浮点取优

long g 15位定点或浮点取优

hex 十六进制数

bank 货币格式

rat 分数之比

+ 以+、-、空的形式表示

compact 消去显示之间的空行,即以紧凑的格式显示

loose 行间加一空行

上程序也可改为(名e20.m):

function z=e20(n)

r=1;

for k=1:n

r=r*k;

end

disp(r)

执行:

>> n=20;

>> e20(n) %代替两行,也可执行:e20(20)

2432902008176640000 %比率格式

也可一般地改为(名为en. m):

function z=en (n)

r=1;

for k=1:n-1

k=k+1;

r=r*k;

end

disp(r)

>>format short

>> n=20;

>> en(n) %代替两行,也可执行:en(20)

2432902008176640000 %程序语句不同,但结果一致。

for语句可利用数组(即阵列)任意指定循环变量的值,例如:

varx=[7 3 10 5];

vary=zeros(size(varx));

k=0;

for x=varx;

k=k+1; vary(k)=x.^2;

end

disp([varx;vary])

上述程序的第二行为给vary预先分配存贮空间。事实上,MATLAB可根据要求自动分配存贮空间,即去掉这一行,执行结果相同。

MATLAB一旦检测到超出下标范围的赋值语句,会自动给这量增加存贮单元,修改变量的尺寸,但这样会影响执行速度,特别当变量规模较大时,会明显降低计算效能。因此,最

好养成先预分配存贮空间(指可预见的变量的良好习惯。

问题1:仍然想实现上述目的,运行下面这段程序,找出错误(答案在本节后面):varx=[7 3 10 5];

vary=zeros(size(varx));

k=0;

for k=k+1;

x=varx; vary(k)=x.^2;

end

disp([varx;vary])

for语句还可嵌套使用,从面构成多重循环。例如,利用rand函数产生10个随机数,然后利用嵌套for循环进行排序,使之从大到小排序。MATLAB程序为:

x=fix(100*rand(1,10));disp(x) %随机数乘100后取整,并显示

n=length(x);

for i=1:n-1

for j=n:-1:i+1

if x(j)>x(j-1)

y=x(j);x(j)=x(j-1);x(j-1)=y;

end

end

end

disp(x),disp([‘循环次数为’,num2str(i)]) % 相似于C语言的逗号“表达式”

结果为:

45 4 2 31 1 38 68 9 3 61

68 61 45 38 31 9 4 3 2 1

循环次数为9

问题2:如何实现在上面两行数据前输入“生成数据”及“排序结果”?

4.2.4 不定次重复循环语句

1.通用循环

While语句可完成不定次重复的循环,它与for语句不同,每次循环前要判断其条件,如果条件为真或非零值,则循环,否则结束循环。而条件是一表达式,其值必定会受到循环语句的影响。

例如为求一个值n,使其n!最大但小于1050,则可输入:

r=1;k=1;

while r<10

r=r*k;k=k+1;

end

k=k-1;r=r./k;k=k-1;

disp([‘The’,num2str(k),’! is’,num2str(r)])

结果为:

The 41! is3.345253e+049

问题3:将程序的倒数第二行改进在循环过程中,写出改进后的程序。

2.也可采用变量的值加以控制例如

答案:1。缺少循环量

C语言程序设计说课教案

页眉内容 C 语言程序设计》说课教案从以下方面说明: 一、二、课程性质、地位教学对象分析及要求 三、课程体系 四、 五、六、七、课程的重点、难点及突破教学方法与教学手段学生考核 教学计划 一、课程性质、地位 1.课程的性质 《C语言程序设计》课程是高职高专通信类和电子信息类各专业职业素质必修课,旨在培养高职学生运用计算机进行逻辑思维的能力,掌握运用C 语言编程来解决岗位工作中实际问题的方法和步骤,为提高职业能力和拓展职业空间打下坚实基础。所以,本课程主要针对培养这类人才基本程序设计能力的目的而设置的课程。 学生毕业后工作岗位主要有计算机管理员、单片机应用设计员、网络 应用等,在计算机控制、单片机应用、电子技术、通信技术等相关行业中都将使用C 语言作为应用系统开发设计语言,C 语言也是其它编程语言类课程的前导课程,也是信息产业部计算机专业和软件专业水平资格考试(程序员、网络管理员等)考试中要求的主要程序设计语言。 2.课程的地位 通信技术(计算机网络方向)专业和电子信息技术专业,C 语言室基础,是计算机应用设计的基础。是学习其他程序语言的前导及基础。 二、教学对象分析及要求 1.教学对象 本系学习C 语言课程的生源是高中生源和中专生源。高中生文化基础扎

实,但计算机专业知识薄弱,开始学习时较困难,但入门提高较快。中专生,文化基础薄弱,但计算专业已经学习一些,开始学习不会很困难,但是知识转换能力方面会有困难,学习进度会慢一点。针对不同生源学生在教学方法和重难点方面有所区别。 2.对同一生源不同程度学生采取如下策略 高职智力不差,但自控能力相比较差。所以要从非智力因素入手,培养学生的学习积极性,提高实际动手能力。 3.在教学中教与学 三、课程体系 《C 语言程序设计》教学学时为60,理论内容以“够用为度”的原则,按照程序设计能力,通过一个项目“学生成绩管理系统”为主线,介绍C 语言基本概念、三种基本程序结构设计、指针、函数体等重点内容。然后通过1 周的课程设计,完成项目“学生成绩管理系统” 综合设计题目。课程内容附表1。 1.课程内容选取依据 1)C 语言编程规范 根据C 语言编程规范等资料,选取的内容是C 语言教学中必须掌握的适应中。另外还根据C 语言程序设计和后继课程(数据库、网络编程语言等)之间的关系、C 语言知识与技能要求及高职学生人才培养目标要求来确定本课程的教学内容。 2)职业素质要求 具备基本的阅读程序和程序的编写能力。同时具备实际问题转换为计算机程序解决的能力。 3)实际工作中岗位能力需求 通过对通信和电子专业毕业生的调查、人才招聘信息和一线专业技术人员交流,确定本系通信技术专业和电子专业的学生主要有程序设计员、单片机开发员、网站设计员、计算机维护管理、企业应用软件实施员、通信工程施工等工作岗位,这些岗位中,程序设计思维和源代码编写能力是关键技能,而C 语言作为专业核心课程中的基础课程,必须掌握结构化程序设计思路,我们选取本课程内容是根据这些要求选取的。 2.课程体系模块

数据结构程序设计题目共29题

目录 题目1:设计一元多项式简单计算.................................. 错误!未定义书签。题目2:链表应用1 ....................................................... 错误!未定义书签。题目3:链表应用2 .......................... 错误!未定义书签。题目4:?通讯录 ............................ 错误!未定义书签。题目5:停车场管理系统....................... 错误!未定义书签。题目6:约瑟夫环............................ 错误!未定义书签。题目7:运动会分数统计....................... 错误!未定义书签。题目8:文学研究助手问题..................... 错误!未定义书签。题目9:银行业务模拟与离散事件模拟 ............ 错误!未定义书签。题目10:学生信息管理系统任务(用顺序表/链表).. 错误!未定义书签。题目11:文章编辑功能 ....................... 错误!未定义书签。题目12:实验室管理......................... 错误!未定义书签。题目13:二叉树的基本操作(建立、求二叉树树深度、遍历).错误!未定义 书签。 题目14:纸牌游戏任务 ....................... 错误!未定义书签。题目15:算术表达式求值...................... 错误!未定义书签。题目16:内部排序算法比较.................... 错误!未定义书签。题目17:哈夫曼树的构造和哈夫曼编码/译码 ....... 错误!未定义书签。题目18:构造可以使n个城市连接的最小生成树..... 错误!未定义书签。题目19:交通咨询系统中的最短路径............. 错误!未定义书签。题目20:集合的交、并、差运算................. 错误!未定义书签。题目21:长整数四则运算...................... 错误!未定义书签。题目22:机订票系统......................... 错误!未定义书签。题目23:图书管理系统 ....................... 错误!未定义书签。题目24:哈希表应用......................... 错误!未定义书签。题目25:模拟旅馆管理系统的一个功能——床位的分配与回收.错误!未定义 书签。 题目26:地图着色问题 ....................... 错误!未定义书签。题目27:俄罗斯套娃问题...................... 错误!未定义书签。题目28:扫雷.............................. 错误!未定义书签。题目29:用C语言设计一个日历系统............. 错误!未定义书签。

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

程序设计心得体会讲课教案

程序设计心得体会 程序设计心得体会一:程序设计心得体会 在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。 虽然在上个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。 C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。 在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。 这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。 在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽

程序设计问题13

第 1 章VisualBasic程序设计概述 1.能被对象所识别的动作与对象可执行的动作分别称为对象的______。 A.方法、事件B.事件、方法C.事件、属性D.过程、方法 2.以下有关对象属性的说法中正确的是____ ____。 A.对象所有的属性都罗列在属性窗口列表中 B.不同对象不可能有同名属性 C.不同对象的同名属性取值一定相同 D.对象的某些属性既可在属性窗口中设置,也可通过程序代码设置或改变 3.在以下有关对象属性的叙述中,不正确的是________。 A.一个对象的属性可分为外观、行为等若干类 B.不同属性可能具有不同的数据类型 C.一个对象的所有属性都可在属性窗口的列表中进行设置 D.属性窗口中的属性列表既可按字母排列也可按类别排列 4.以下有关对象属性的说法中错误的是__ _____。 A.所有的对象都具有Name(名称)属性 B.只能在执行时设置或改变的属性为执行时属性 C.对象的某些属性只能在设计时设定,不能使用代码改变 D.Enabled属性值设为False的控件对象在窗体上将不可见 5.以下关于方法的叙述中,错误的是____ _____。 A.方法是构成对象实体的一个部分 B.方法是一种特殊的过程或函数 C.调用方法的一般格式是:对象名称.方法名称[参数] D.在调用方法时,对象名称是不可缺少的 6.有程序代码“Text1.Text="Visual Basic"”,其中的Text1、Text和"visual Basic"分别代表_____ ____。 A.对象、值、属性B.对象、方法、属性 C.对象、属性、值D.属性、对象、值 7.在一个工程中,可以有多个____ ____。 A.资源文件B.工程文件C.标准模块文件D.机器代码文件 8.扩展名为.vbp的工程文件中包含有________。 A.工程中所有模块的有关信息 B.每个窗体模块中的所有控件的有关信息 C.每个模块中所有变量的有关信息 D.每个模块中所有过程的有关信息 第 2 章VB的界面设计 1.若在一个应用程序窗体上,依次创建了CommandButton、TextBox、Label等控件,则运行该程序显示窗体时,____ ____会首先获得焦点。 A.窗体B.CommandButton C.Label D.TextBox 2.单选按钮(OptionButton)用于一组互斥的选项中。若一个应用程序包含多组互斥条件,可在不同的__ ____中安排适当的单选按钮,即可实现。 A.框架控件(Frame)或图像控件(Image) B.组合框(ComboBox)或图像控件(Image) C.组合框(ComboBox)或图片框控件(PictureBox) D.框架控件(Frame)或图片框控件(PictureBox)

C语言程序设计_第二阶段练习参考答案

江南大学现代远程教育第二阶段 练习题 考试科目 : 《 C 语言程序设计》 第七 章至第九章 学习中心(教学点) 批次: 专业: 学号: 姓名: 、单项选择题 (本题共 20 小题,每小题 2分,共 40 分。 1、有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i];i++;} printf("%d\n",k); } 执行后输出结果是( 静态( static )类别变量的生存期贯穿于整个程序的运行期间 函数的形参都属于全局变量 #define N main() { int i; 4、有如下程序 voi d f(int x,int y) 总分 100 分) 层次: 身份证号: 得分: A 、 58 B 、 56 、45 、24 2、 )。 A 、 以下叙述中正确的是( 全局变量的作用域一定比局部变量的作用)。 B 、 D 、 未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值 3、 程序如下: #define M1 N*3 #define M2 N*2 i=M1+M2; printf( “%d n ”,i); } 程序编译后运行的输出结 果是( )。 A 、 10 B 、20 C 、25 D 、 30

{ int t; if(x

程序设计课程设计要求

《程序设计基础》课程设计安排及要求附件一: 《程序设计基础》课程设计登记表 班级姓名学号电话题目 题目 描述 及要 求

1.题目可从参考中选择,也可以自选,但要得到指导教师认可; 附件二: 游戏类题目: 1.扑克游戏 (1)21点游戏 (要求:1.源文件采用多文件的工程结构2.标准的C输入输出3.功能完善,适当的注释) 2.五子棋游戏 要求:模块化程序设计,能实现人人对弈,能悔棋一步,并判断玩家输赢。 3.中国象棋游戏 要求:模块化程序设计,能实现人人对弈,能判断走棋是否合法,允许悔棋一步,并能对玩家记时。 4.俄罗斯方块 要求:模块化程序设计,能显示方块的堆放及消除效果,可以选难度,记分规则等。 5.汉诺塔的动态演示 要求:模块化程序设计,能自动移动hanoi的盘子,要求能输入塔盘的数量。 6.重排九宫游戏 要求:“重排九宫”,8个数字放在3*3九个格子中,余下一个格子为空。要求可以用鼠标拖动数字,并记录玩家花费的时间。 7.贪食蛇游戏 要求:模块化程序设计,可以选择难度,实现记分功能。 8.打地鼠游戏 要求:实现打地鼠的动画效果。

应用程序类题目: 1. 工具软件 (1)简易计算器(自学数据结构“栈”部分内容) 小型整数、实数、复数计算器,设计并实现一个小型计算器,包括如下功能:实现加减乘除等功能,并显示运算结果 2. 工具软件 (2)回文判断程序(自学数据结构“栈”、“队列”相关内容) 写一个栈及一个队列,实现判断一个字符串是否为回文。 (要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学) 3. 实用工具的设计与使用 (1)编写一个DateTime函数:用并实现如下功能:设置日期、时间,用日/月/年,时:分:秒格式输出日期和时间,可实现日期增加、减少一天、增加一小时、减少一小时的操作,以及某一天是星期几、判断闰年,十二小时与二十四小时制转换、等操作。 (要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学) 4. 实用工具的设计与使用 (2)CString函数 定义一个CString函数,实现字符串的全部操作(例如strcpy、strcmp、strlen、strcat等,具体可以查Turboc2的帮助说明)。 (要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学) 5. 实用工具的设计与使用 (3)多项式矩阵操作函数 定义一个多项式矩阵操作函数,实现多项式矩阵的操作(赋值、+、-、*、/、转置等)。(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学) 6. 单词类软件 (1)单词学习软件 单词(中英文)录入、修改、删除管理、提供多种(至少三种,例如,给出英文选中文,给出中文写英文等)单词学习方法,对出错单词能够进行查询、统计、排序。 (要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)

编程经典问题

编程经典问题 1.“兔子繁殖问题”,已知一对兔子,每个月可以生一对兔子,而小兔过一个月后也可生 一对小兔。即兔子的对数是:第一个月1对,第二个月2对,第三个月3对,第四个月5对,……,假设兔子的生育期是12个月,并且不死,问一年后,这对兔子有多少对活着的后代?(P45)(斐波尔系数) 2.判断素数。(P55 P68) 3.猴子摘了一堆桃子,第一天吃了一半,觉得不过瘾又吃了一个;第二天吃了剩下的一半 零一个;以后每天如此,到第十天,猴子一看只剩下一个了。问最初由多少个桃子? 4.求两个数的最大公约数。(P49) 5.求两个数的最小公倍数。 6.验证歌尔巴德猜想:任意一个充分大的偶数n(n >= 4),都可以用两个素数之和表示。 (P57 P98) 7.逻辑判断题:警官在老王被害现场发现ABCD四名犯罪嫌疑人,讯问中A说“我没有杀 人”,B说“C是凶手”,C说“杀人者肯定是D ”,D 说“C在冤枉好人”。现已知:四人中有三人说的是真话,一人说的是假话,四名犯罪嫌疑人中有且只有一人是凶手。请编写程序确定四个嫌疑人中哪个是凶手?(P57) 8.宾馆里有100个房间,从1~100编了号。第一个服务员把所有的房间门都打开了,第二 个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间再作“相反处理”,……,以后每个服务员都是如此。当第三个服务员把所有编号是3的倍数的房间再作“相反处理”,……,以后每个服务员都是如此。当第100个服务员来过后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开)(P65) 9.约瑟夫问题:n个人(n >= 100)围成一圈,从第一个人开始报数,数到m的人出圈, 再由下一个人重新从1开始报数,数到m的人出圈;……直到所有人出圈。输出依次出出圈的人的编号。 10.围绕着山顶有10个洞,一只狐狸和一只兔子各住一个洞。狐狸总想吃掉兔子。一天兔 子对狐狸说:“你想吃我有一个条件,先把洞从1~10编上号,你从10号洞出发,先到1号洞找我;第二次隔一个洞找我,第三次隔2个洞找我,以后依此类推,次数不限。若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应就开始找了,它从早到晚找了1000次洞,累得昏了过去也没有找到兔子。请问,兔子躲在几号洞里。(P70) 11.N只猴子选大王,选举办法如下:从头到尾1、2、3报数,凡报3的退出,余下的从尾 到头,1、2、3报数,凡3退出;余下的又从头到尾报数,还是报3的退出;依此类推,

C语言程序设计作业2答案

第2次作业答案 一、单项选择题答案 1B 2B 3D 4C 5B 6B 7D 8D 9B 10C 11C 12B 13A 14C 15B 16B 17D 18A 19D 20B 一.单项选择题 1.若有以下定义:int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a; 则值为5的表达式是()。 A)p+=5, *(p+1) B)p+=1, * ++p C)p+=4, *p++ D)p+=1, ++ *p 2.下面函数调用语句含有实参的个数为() fun( ( a, b, c, d ), ( m, n ), (f, g ) ); A)1 B)3 C)4 D)2 3.函数形式正确的是()。 A) double myfun( int x, int y) B) int myfun( int x, y) { m=x+y; return m; } { int m; } C) int myfun( int x, int y) D) int myfun( int x, int y) { int x, y; double m; { int m; m=x+y; return m; } m=x+y; return m; } 4.不正确的字符串赋值或赋初值方式是()。 A)char *str; str=”string”; B)char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’} C) char str[10]; str=”string”; D)char str[]=”string”; str2[]=””; strcpy(str2, str1); 5.以下程序的输出结果是()。 #include main() { char str[]="SSSWLIA", c; int k; for (k=2; (c=str[k])!='\0'; k++) { switch (c) { case 'I': ++k; break; case 'L': continue; default: putchar(c); continue; } } putchar('*'); } A)SSW* B)SW* C)SW*A D)SW 6.以下程序的输出结果是()。 #include int w=3; fun( int k) { if ( k==0) return w; return ( fun(k -1 )*k); }

编程解决问题

教学目标评论 知识与技能:(1)了解编制程序解决问题的一般过程(2)了解算法概念,了解流程图(3)会用流程图设计和描述算法。 过程与方法:在自主学习常用的程序流程图符号中了解流程图,在小组合作绘制流程图中加强对算法的理解,学习用流程图设计和描述算法。 情感、态度与价值观:教育学生正确对待学习生活中的实际问题,培养学生多角度思考问题的能力。 2学情分析评论 高中数学有涉及到,但学生掌握的不够;学生没有一点程序的基础 3重点难点评论 会用流程图设计和描述算法。 4教学过程 4.1 第一学时 4.1.1教学活动 活动1【讲授】教学过程评论 一、编制程序解决问题的大致过程 师:现在请同学们讨论交流一下,编制程序解决问题的大致过程是怎么的呢? 生:讨论交流 (设计意图:在小组讨论交流中学会合作。) 2、师:组织、引导学生在全班范围内交流编制程序解决问题的大致过程。 (首先分析与确定实际问题中各种数据间的关系,然后设计出解决这个问题的方法和步骤,再使用某种程序设计语言编制程序,达到最终解决问题之目的。在程序设计中,把解决问题的方法和步骤称为算法。) 生:在全班范围内交流。 (设计意图:共享成果。) 算法的特性 1.有穷性 2.确定性 3.有效性 4.有零或多个输入 5.有一个或多个输出 描述算法的4种方法 自然语言 流程图 伪代码 程序语言 二、用自然语言描述s=1+2+......+ 100 的算法。 1、师:提出任务:用自然语言描述s=1+2+......+ 100 的算法。 生:学生思考问题 (设计意图:引导学生发现问题。) 2、师:下面先让我们来设想一下,怎样解决? 提问:以下每一步提问做什么,诱导学生按日常逻辑思维思考回答。 S1:把0放入S单元; S2:把1放入i单元;

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

Web程序设计课程设计报告模板

Web程序设计课程设计报告课程设计题目:某电子杂志网站 姓名:肖琴霞 专业:软件工程(国际教育) 班级:10211133 学号:1021113321 指导教师:吴光明 2013 年 3 月 10 日

一、设计目的 《Web应用开发课程设计》是实践性教学环节之一,是《Web程序设计》课程的辅助教学课程。通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握软件开发的基本概念、原理和技术,将理论与实际相结合,应用现有的开发工具,规范、科学地完成一个完整地应用软件的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正使得计算机被广泛的应用于信息管理系统。计算机的最大好处在于利用它能够进行信息管理和查询。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。制作电子杂志网站可以方便读者阅读,且可以扩大读者的视野以及提高阅历。 二、设计解决方案 问题解决方案: 经过分析,我们决定利用ASP编程,使用Dreamweaver MX作前端开发工具,利用SQLServer2000作后台数据库管理,数据库驱动使用ADO。 前台功能模块:系统主界面与登录程序设计,杂志查询及订阅,读者服务模块,杂志分类设计等。 后台功能模块:管理主界面与登录程序设计,最新杂志信息管理模块,杂志订阅管理模块,在留言管理模块设计等。后台管理的建立,使管理员可以通过后台很容易的对杂志城进行管理,比如:对最畅销杂志,公告和杂志城注册用户进行添加,删除等管理工作,还可以对读者在线留言的处理。 三、电子杂志网需求分析 3.1 需求分析 需求分析是整个设计过程的基础,最困难、最消耗时间的一步。它的最终结果是提供

《程序设计》课程标准

《程序设计》课程标准 所属学院:信息学院适用专业:计算机应用、网络、信管 课程编号:031J21A 课程类型:行业基础平台 1 前言 1.1课程性质与任务 《程序设计》是信息学院电子信息类的一门必修的行业平台课程。课程的主要功能是:通过理论和实践教学,训练和培养学生获得C语言编程方面的能力,使学生具备相关职业应用性人才所必需的程序编制及创新设计等基本知识与技能。 通过本课程的学习和训练,使学生具备C语言基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用 VC++环境进行C语言的编写、编译与调试,达到省二级考试要求的能应用C语言解决一般编程问题的水平。 本课程是信息学院电子信息类的一门先修的行业平台课程,与该课程相关的后序课程有:《数据库技术与应用》、《数据结构》和《Java程序设计》等,为电子信息类为后续的应用性课程和系统开发课程的学习打好软件基础、技能和素质准备。 1.2设计思路 课程开设的依据。21世纪是一个信息化的社会,这个社会对人才素质和知识结构都提出了更高的要求。尤其对于高职教育的电子信息类学生来说,计算机的作用已不仅仅是一种工具,而是一个重要的组成部分。它要求学生必须获得一定的编程能力,必须具备程序设计方面的基本知识和技能。C语言是计算机基础性程序设计语言,它的发展贯穿了计算机发展的历程,蕴含了程序设计的基本思想;学会了C语言,那么将能够相对轻松地学习任何现代的编程语言,因为现代的编程语言大都是基于C语言之上发展而来的(比如Java,C++,C#等等)。课程内容以结构化程序设计为框架,以顺序结构、选择结构、循环结构为核心,突出程序设计的基本理念及技能。使学生能应用C语言程序解决实际问题。开设本课程,对学生的职业能力、就业等方面起到非常重要的作用。 内容选择标准。本课程立足于实际能力的培养,因此对课程内容的选择标准作了根本性改革,打破以知识传授为主要特征的传统学科课程模式,转变为以工作任务为中心组织课程

程序设计题目-2018

程序设计题1:小学100以内正整数加减运算 1 问题描述 设计并实现“小学100以内整数加减运算”系统,程序要求如下: (1)随机出10道题,这10道题目不能重复,如果是减法运算,要求被减数大于减数。 (2)这些题目,可以选择以下两种方式中的一种给出: a.选择题,要求随机生成4个选项,正确答案包含其中; b.填空题,可以让用户从键盘输入答案。 (3)用户每次答题,能根据答案计算是否得分,并计入总分。 (4)答题完毕,系统给出总用时。 (5)根据答题情况,能将用户的错误作答题目及答案保存,可以提供用户查看错题功能2 功能要求 代码要能提供以下几个基本功能。 (1)提供菜单选项,让用户登录,答题。 (2)提供菜单选项,让用户查阅答题情况,答题期间不能查阅。 (3)提供菜单选项,错题再答,如果错题答对了,应从错题集中删除。 (4)提供菜单选项,可以选择生成题目到文本文件,同时生成所对应的答案到相应的文本文件,以便线下测试。 【选做要求】 (1)在运算中添加括号,比如5-(95-93),系统也能正确算出答案。 (2)在菜单选项中,增加帮助功能,提供系统使用说明,模拟答题功能。 【其他要求】 (1)界面美观,交互方便。 (2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。 (3)程序的层次清晰,可读性强。 (4)变量、函数命名符合规范。 (5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。 3 开发环境 可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

为什么会有这么多种程序设计语言

为什么会有这么多种程序设计语言? 传说人类建造通天塔触怒上帝,上帝施法使人类语言混乱彼此之间无法交流。这就是说各种各样的语言其实就是祸乱之源——只会导致交流的不便。可是看看如今的程序设计语言的数量,你会怀疑人类是否又在造“通天塔”了?真的有这么多语言的必要吗?我到底要学习多少种程序设计语言才够用呢? 根据维基的资料,可以称得上相对“主流”(有人用、有文档)的程序设计语言至少有600种,还有大量的商业化失败、实用性不高、语言小众(这里的“语言”指的是编码的语言,一般的程序设计语言都习惯用拉丁字母集合或其超集来作为源码的字符集,也有用日文、俄文编程、汉语编程的,比如易语言)就难以统计了(保守估计可以上万种),尽管已经有了这么多种程序设计语言,仍然有大量的人投入了大量的时间来研发新的语言,这难道不是重复通天塔的故事吗?

为了解释“为什么会有这么多种程序设计语言”这个问题,想让我们来看一份较新的最流行编程语言流行榜: 排行榜上排名前十的依次是:C、Java、Object-C、C++、C#、PHP、Python、JavaScript、Perl 和VB。下面我会根据这份排行榜来回答我们的问题。首先阐述一个基本观点:程序设计语言被创造的目的主要有三个——实用目的、学术目的、商业及特殊应用需要。且听一一分解:一、实用目的 可以看见在排行榜中,C,Java,C++这样的语言几乎是年年稳居前五。这些语言的实用性都是非常高的。让我们回顾一下C语言的历史:1973年AT&T的Ken Thompson因为研发和维护操作系统的需要,要求一种高效简洁的程序设计语言,于是在BCPL语言的基础上创造了C语言。Java、C++等语言也都是在有着类似的高要求的任务下临时创造出来,然后再不断发布标准进行改进的(C语言是为了操作系统,Java是为了嵌入式应用和网络开发……)如果现有的轮子不够好,那么就去自己造一个轮子,也正是因为这个特殊的原因,所有这些以实用为目的的语言都很高效,语法构造方法、编程逻辑和配套的编译技术都很成功,所以能够切切实实地解决工程上的问题。另外,这些实用目的语言的语法都很自由(Python因为“明确”、“简单”的哲学所以算个例外),正好符合了不同性格的程序员的需要。另外非常重要的一点是:“决定一种程序设计语言是否强大的是这个语言的库(标准程序库、类库、包、组件、单元、模块……每种语言都有自己的叫法)而不是程序设计语言本身”;这可能会让很多人不高兴:说实话,C语言在语言的优雅性和友好性上(比如==和=)完全和Ada、Pascal比不了(Ada是军方人员设计的,Pascal是数学家设计的),但是C语言依然非常流行,这是因为你想要写一个含有系统调用的程序,用C语言是最佳选择,Ada和Pascal这样的语言想要直接和内核交流是很麻烦的。同理也可以解释C++、Java、Perl等语言的流行,你想要写多线程的程序用C++的多线程库和Java的包就行了,你想写正则表达式相关的程序用Perl或者C++ boost库就好了……懂得不要重复造轮子是很重要的,遇到不能解决的问题,先去查查资料看有没有人已经写好了类似的程序,直接把他的函数抄过来就是了——这恐怕

C语言程序设计说课教案.docx

C语言程序设计说课教案 《C语言程序设计》说课教案 从以下方面说明 : 一、课程性质、地位 二、教学对象分析及要求 三、课程体系 四、课程的重点、难点及突破 五、教学方法与教学手段 六、学生考核 七、教学计划 一、课程性质、地位 1.课程的性质 《C语言程序设计》课程是高职高专通信类和电子信息类各专业职业素质必修 课,旨在培养高职学生运用计算机进行逻辑思维的能力,掌握运用 C 语言编程来解决岗位工作中实际问题的方法和步骤,为提高职业能力和拓展职业空间打下坚实基 础。所以,本课程主要针对培养这类人才基本程序设计能力的目的而设置的课程。 学生毕业后工作岗位主要有计算机管理员、单片机应用设计员、网络应用等, 在计算机控制、单片机应用、电子技术、通信技术等相关行业中都将使用 C 语言作为应用系统开发设计语言, C语言也是其它编程语言类课程的前导课程,也是信息产业部计算机专业和软件专业水平资格考试 ( 程序员、网络管理员等 ) 考试中要求的主要程序设计语言。 应用程序设计 软件工程

C++、 VC、VB 数据结构 C语言程序设计 2.课程的地位 通信技术 ( 计算机网络方向 ) 专业和电子信息技术专业,C语言室基础,是计算机应用设计的基础。是学习其他程序语言的前导及基础。二、教学对象分析及要求 1( 教学对象 本系学习 C 语言课程的生源是高中生源和中专生源。高中生文化基础扎 1 实,但计算机专业知识薄弱,开始学习时较困难,但入门提高较快。中专 生,文化基础薄弱,但计算专业已经学习一些,开始学习不会很困难,但 是知识转换能力方面会有困难,学习进度会慢一点。针对不同生源学生在 教学方法和重难点方面有所区别。 ( 对同一生源不同程度学生采取如下策略2 状态策略 1 厌学扎实其理论基础,找到实践成功点 2 较差结合实际案例,提高解决问题的能力 3 乐学知识转换,提高具体的应用能力 4 较好知识转换,提高综合的应用能力 高职智力不差,但自控能力相比较差。所以要从非智力因素入手,培养 学生的学习积极性,提高实际动手能力。 3( 在教学中教与学 问题教学演示探究教

相关文档