c语言推箱子设计心得体会和感想 C语言推箱子代码(七篇)

  • 上传日期:2023-01-10 11:09:29 |
  • ZTFB |
  • 13页

学习中的快乐,产生于对学习内容的兴趣和深入。世上所有的人都是喜欢学习的,只是学习的方法和内容不同而已。大家想知道怎么样才能写得一篇好的心得体会吗?接下来我就给大家介绍一下如何才能写好一篇心得体会吧,我们一起来看一看吧。

2022c语言推箱子设计心得体会和感想一

我的题目是文章处理系统的设计,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。

经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了c语言课程设计的真正用意--培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。

回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的`,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在郭老师的辛勤指导下,终于游逆而解。同时,在郭老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢

在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。

在本次实践中,给我印象最为深刻的是在文件删除程序的`编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。

x月x日,我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉及到c语言程序编译的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多。

2022c语言推箱子设计心得体会和感想二

1)。 关于c语言的变量,以下叙述中错误的是( )

a.所谓变量是指在程序运行过程中其值可以被改变的量

b.变量所占的存储单元地址可以随时改变

c.程序中用到的所有变量都必须先定义后才能使用

d.由三条下划线构成的符号名是合法的变量名

正确答案:b

答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。

2)。 当变量c的值不为2、4、6时,值也为″真″的表达式是( )

a.(c==2)||(c==4)||(c==6)

b.(c=2 && c=6)&&!(c%2)

c.(c=2 &&c=6)&&(c%2!=1)

d.(c=2 && c=6) || (c!=3)|| (c!=5)

正确答案:d

答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项d中c的值不为2、4、6时,那么表达式(c=2&& c=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。

3)。 在c语言中,函数返回值的类型最终取决于

a.函数定义时在函数首部所说明的函数类型

语句中表达式值的类型

c.调用函数时主调函数所传递的实参类型

d.函数定义时形参的类型

正确答案:a

答案解析:在c语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。

4)。 以下叙述中正确的是( )

a.在c语言中,预处理命令行都以″#″开头

b.预处理命令行必须位于c源程序的起始位置

c.#include 必须放在c程序的开头

d.c语言的预处理不能实现宏定义和条件编译的功能

正确答案:a

答案解析:在c语言中,凡是以″#″号开头的行,都称为″编译预处理″命令行。预处理命令可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。预处理命令有宏定义、文件包含和条件编译三类。#include 命令行表示程序中要引用c标准函数库中的标准输入输出函数。

5)。 下列叙述中,不属于测试的特征的是

a.测试的挑剔性

b.完全测试的不可能性

c.测试的可靠性

d.测试的经济性

正确答案:c

答案解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。

6)。 以下选项中不属于c语言标识符的是( )

a.用户标识符

b.关键字

c.常量

d.预定义标识符

正确答案:c

答案解析:c语言的标识符可分为以下3类:①关键字。c语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如,int、double、if、else、while、for等。②预定义标识符。即预先定义并具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。

7)。 以下关于字符串的叙述中正确的是( )

a.两个字符串中的字符个数相同时才能进行字符串大小的比较

b.可以用关系运算符对字符串的大小进行比较

c.空串比空格打头的字符串小

d.c语言中有字符串类型的常量和变量

正确答案:c

答案解析:c语言本身并没有设置一种类型来定义字符串变量,却允许使用″字符串常量″。字符串常量是由双引号括起来的一串字符。任意两个字符串的(白话文★)大小比较要调用字符串比较函数strcmp(s1,s2 )来进行,其比较的方法是依次对s1和s2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符决定所在串的大小(比较字符大小的依据是其ascⅱ码值)。

8)。 下列叙述中正确的是( )。

a.调用printf( )函数时,必须要有输出项

b.使用put )函数时,必须在之前包含头文件stdio.h

c.在c语言中,整数可以以二进制、八进制或十六进制的形式输出

d.调节get )函数读入字符时,可以从键盘上输入字符所对应的ascii码

正确答案:b

答案解析:选项a,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项c,在c语言中,整数可以十进制、八进制或十六进制的形式输出;选项d,getchar函数是从标准输入设备读取一个字符。

9)。 以下结构体类型说明和变量定义中正确的是( )

fstruct { int n; char c; } rec; rec t1,t2;

rec ; { int n; char c; }; rec t1,t2;

fstruct rec; { int n=0; char c=′a′; } t1,t2;

{ int n; char c; } rec; rec t1,t2;

正确答案:a

答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项b、c)错误,选项d中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项a为用户自定义类型,其为正确的定义形式。

10)。 若实体a和b是一对多的联系,实体b和c是一对一的联系,则实体a和c的联系是( )

a.一对一

b.一对多

c.多对一

d.多对多

正确答案:b

答案解析:由于b和c有一一对应的联系,而a和b只间有一对多的联系,则通过关系之间的传递,则a和c之间也是一对多的联系。

11)。 待排序的关键码序列为(15,20,9,30,67.65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。

a.2

b.3

c.4

d.5

正确答案:b

答案解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则被交换放在第三个位置。

2022c语言推箱子设计心得体会和感想三

c 语言是目前大多数职业学校及大专院校开设的一门计算机基础课。对于刚接触计算机语言的职业学生,它具有较强的抽象性且结构化程序设计语言,对初学者来说比较难于接受,也容易出现一些问题。现针对本学期教学中的工作进行总结,以便更好的进行下学期的工作。

本学期教学工作,归纳起来主要有一下几点。

在c语言教学中我们不仅要使得学生掌握语法知识,重要的是通过课程教学,培养学生抽象思维和逻辑推理能力,掌握程序设计的思想和方法。教学过程中我们有选择地使用多媒体教学,可以将语言语法中的深奥理论和逻辑推理的内容(如数据类型、运算符、语句及部分语法规则)运用多媒体教学直观形象地讲授给学生。加深学生对问题的理解。这样的多媒体教学,收到了将抽象问题形象化,枯燥问题生动化的效果。它使得相关的教学手段、教学方法、教学观念、教学形式、教学结构以致教育思想与教学理论都发生了相应的变革。 但是,在具体使用多媒体的课堂教学中,应依据教学的需要,根据不同的教学目标,教学内容合理适当地组合使用各种教学媒体,多媒体教学一定要实事求是,从学科教学的需要和效果出发,进行系统科学的设计,这样才能更好地为课堂教学服务,提高课堂教学效果。相反,如果盲目刻意追求现代化教学手段,不遵循教育教学的规律,一味的使用多媒体也将产生副作用(如学生将注意力只集中在投影效果上而忽视教师的语言表达)。因此,多媒

体不是万能的,它还不能代替教师独立完成教学活动,只能作为教学手段的补充和提高。

计算机语言课是一门实践性很强的课。教学过程中除了教师的课堂讲解外,主要靠学生的上机实践来培养学生的操作能力和灵活运用能力。我们提倡“精讲多练”,具体措施为:

(1)压缩讲授课时,加强上机训练,使学生能有更多的时间进行上机实践。

(2)布置与现实生活学习紧密联系的上机题目,培养学生编写程序解决问题的能力与兴趣。

(3)教师起引导作用。

(4)提倡上机实践互帮互助,使每个学生的优点都能得到锻炼。

(1)以实例为引导,讲解语法规则。《c语言程序设计》中很多知识比较抽象、枯燥,不容易被学生接受和理解,教师在课堂教学中应该巧用生活中的实例化繁为简,将深奥的理论讲得通俗易懂。例如,对于几种结构的理解,我们可以在讲解基本概念的同时,可以以通俗易懂的例子为引导逐步引出各个相关知识点和概念,然后以总结的形式讲解语法要点,避免纯粹学习语法的单调枯燥。这既容易激发学生的学习兴趣,又利于学生快速掌握抽象的概念。

(2) 从输入/输出函数入手逐步认识c语言程序。学生在学习c语言时,首先遇到的问题就是不知从何处人手,即使在课堂上听懂了老师所讲述的例题,但在上机输人这些程序后,编译时还会出现各种问题,加之学生的英语基础较差,看不懂message窗口中的英文提示信息,导致大多数学生面对机器不知所措,而这种情形又降低了他

们学好这门课的信心以及学习这门课的主动性。因此,教师要做的就是找到一种好的方法使学生少出现这种问题。要做到这一点,就必须要求学生对c语言知识进行积累, 从经典的小程序人手,一步步的实践和学习,其中学会使用输人/输出函数是很关键的一步。常用的输人/输出函数很具有代表性,特别是printf()和scanf()这两个格式输入/输出函数。通过运用这两个函数编写一些程序上机练习。对于学生而言,这样的程序既具有数据输入,又具有数据输出,具有较强的直观性。通过这些小程序不仅能提高学生对c语言程序结构化的认识。而且也能提高学生学好这门课程的信心。

(3)将算法教学融入到语言教学中。c语言学习过程中,学生感到困难的一般不是在于语法,而是如何用相关语法的语句实现编制程序,也就是根据算法编写程序问题。由于c语言语法的逻辑性较强、结构性要求较高,学生刚接触的时候容易考虑不全。因此在算法教学中可以通过实例进行,从最简单的例子入手使学生在解决其体问题的过程中学习一些基本逻辑结构和语句。同时让学生知道根据同一个问题可以提出不同的从易于理解到精简的算法,从而比较这些算法之间的优劣。了解算法的优化。通过对算法的优化练习,可以在无形中提高学生写算法的水平。使得学生真正了解到算法是程序的灵魂。

在 c 语言的教学过程中,我们可以采用项目教学法。项目教学法,是师生通过共同实施一个完整的项目工作而进行的教学活动。通过对完整的项目的系统分析,培养学生良好的编程习惯,善于获取他人经验的能力以及掌握综合运用所

学知识的能力,从而完全了解项目流程,真正提高编程水平。如让学生编写一个简单的学生信息管理系统,这不但使得学生掌握了所学的c语言知识,同时也使得学生了解了数据字典、流程图等其它软件工程方面的内容。这种教学方法,不但提高了学生的实践能力,同时也激发了学生的学习兴趣。

以上是本人在本学期c语言教学中遇到的几个问题作的简单讨论,在实际教学当中,还有其它一些具体问题,鉴于篇幅问题,我们在这里不作更深的讨论。希望以上思考能对实际的教学和学习有所帮助。

2022c语言推箱子设计心得体会和感想四

课程伊始,我便意识到汇编语言绝不是轻易能弄懂的。相较于曾经学过的c语言,电脑等于在迁就人的思维方式,但汇编却是接近机器语言的一门语言,我们学习和编写程序时必须要去迁就电脑的思维方式,有时候还要设身处地地用电脑的角度去思考问题,这就是我学习汇编语言时感受最深的地方,想起来很简单,写起来相当的不易。

在学习之前我们都需要明确何为汇编语言。计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。

在经过一个学期系统性的学习后,自己也算初窥门径,有所收获。首先,对一样新课程要学会与学过的课程作比较,这样有助于我们更快进入状态,最重要的是一些思考问题,实现功能的逻辑的思考,会帮助我们很快的找到编写程序的思路和方向。汇编语言与其它的程序设计语言相比,操作的是更加底层的东西,它可以直接与硬件打交道,而别的语言基本不可能实现这样的功能。既然是与硬件打交道,那么我们在写程序的时候就要更加小心了,可能一不小心就会把程序跑丢了。

其次,学习汇编语言,首要问题是学习80x86指令系统。如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了cpu所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。其中方括号中的内容为可选项。指令助记符决定了指令的功能,对应一条二进制编码的机器指令。指令的操作数个数由该指令确定,可以没有操作数,也可以有一个或多个操作数,大多数指令要显示写出来,还有些操作数是隐含的。

再者,在编写汇编程序时,应该注意特别容易出现的错误,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,cs不能作为目的操作数,offset后只能跟简单地址符号,等等。在学习汇编语言时,指令的功能是学习和掌握的重点,要准确有效并合理的使用这些指令,必须了解一些使用的规则。现对汇编语言编程时的规则进行总结,归纳起来有三点:

1、要求指令操作数的寻址方式;

2、指令对标志位的影响和标志位对指令的影响;

3、指令的执行时间,对可完成同样功能的指令,要选用执行时间短的指令。

最后,还有一点十分重要。和所有的程序设计语言一样,若要学好汇编语言,实验是必不可少的环节。我们深有体会:书上的程序都能看懂,基本原理也都明白,但是在自己亲手编写程序时,却无从下手,甚至连第一句该怎么写都不知道。通过实验,可以在很大程度上加深印象。在书上看程序,一切都是理所当然,十分顺利,而自己动手,才会真正发现自己的不足之处。毋庸置疑,我们大多数人并没有真正做到这点。

而今,这门课程即将结束,或许我们都还有许多不懂的地方,我们会尽己所能,将其攻克,将这些知识学以致用!

2022c语言推箱子设计心得体会和感想五

一 选择题(7分,每小题0.5分)

1.c语言源程序的基本单位是( )。

a 过程 b 函数 c 子程序 d 标识符

2、下列程序的输出结果是( )。

main( )

{ int a=7,b=5;

printf("%d",b=b/a);

}

a 5 b 1 c 0 d不确定值

3、假设变量a,b均为整型,表达式(a=5,b=2,ab?a++:b++,a+b)的值是( )。

a 7 b 8 c 9 d 2

4、设a为int型变量,执行下列赋值语句后,a的取值分别是( )。

a=125.534; a=(int)125.521%4; a=52;

a 125,31,1 b 125,1,20 c 125,31,20 d 125.534,2,20

5、设有如下程序段,下面描述中正确的是 ( )。

int k=10; while(k=0) k=k-1;

a 循环执行一次 b循环是无限循环 c循环体语句一次也不执行 d循环体语句执行一次

6、以下程序的输出结果为( )。

int i;

void prt( )

{ for(i=5;i8;i++) printf("%c",*);

printf(" ");

}

main( )

{ for(i=5;i=8;i++) prt( );

}

a *** b *** *** *** *** c *** *** d * * *

7、在c语言程序中,以下说法正确的是()。

a函数的定义可以嵌套,但函数的调用不可以嵌套

b函数的定义不可以嵌套,但函数的调用可以嵌套

c函数的定义和函数的调用都不可以嵌套

d函数的定义和函数的调用都可以嵌套

8、以下函数调用语句中含有( )个实参。

func((e1,e2),(e3,e4,e5));

a 2 b 3 c 5 d 语法错误

9、以下程序的输出结果为( )。

#define add(x) x*x

main( )

{ int a=4,b=6,c=7,d=add(a+b)*c;

printf("d=%d",d);

}

a d=70 b d=80 c d=140 d d=700

10、已知职工记录描述如下,在turbo c中,系统为变量w分配( )字节的空间。

struct worker

{ int no;

char name[20];

char sex;

union

{ int day; int month; int year;}birth;

} w;

a 29 b 20 c 25 d 6

11、设有以下定义,值为5的枚举常量是( )。

enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

a tue b sat c fri d thu

12、下面选项中正确的赋值语句是(设 char a[5],*p=a;)( )。

a p="abcd"; b a="abcd"; c *p="abcd"; d *a="abcd";

13、设有以下程序段,则值为6的表达式是( )。

struct st { int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;

p=&a[0];

a p++-n b ++p-n c p-n++ d (*p)。n++

14.c语言中的文件类型只有( )。

a 索引文件和文本文件两种 b 文本文件一种

c 二进制文件一种 d ascii码文件和二进制文件两种

二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)

1、在turbo c中,整型数据在内存中占2个字节。( )

i=20;switch(i/10){case 2:printf("a");case 1:printf("b");}的输出结果为a。( )

语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。( )

4、函数的递归调用不过是一个函数直接或间接地调用它自身。( )

5、函数strlen("asdfg")的值是7。( )

6、通过return语句,函数可以带回一个或一个以上的返回值。( )

7、结构体类型只有一种。 ( )

*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。( )

9、若有定义:char *p(char a[10]);则p是函数名。( )

10、用fopen("file","r+");打开的文件"file"可以进行修改。 ( )

三 写出下列程序的运行结果(10分,每小题2分)

average (float array[10])

{ int i;

float aver,sum=array[0];

for (i=1;i10;i++)

sum=sum+array[i];

aver=sum/10;

return(aver);

}

main( )

{ float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;

int i;

aver=average (score);

printf (“average score is %5.2f”,aver);

}

( )

{ char a[5]={‘a’,‘b’,‘c’,‘d’,‘e’},*p=a,**pa;

for(p=0;pa+5;p++) p=""

printf(“%2c”,*p);

printf(“”);

printf(“%2c”,**(pa=&p));

}

( )

{ int a,b,s=0;

for(a=1,b=1;a=100;a++)

{ if(b=20) break;

if(b%3==1)

{b+=3; continue; }

b-=5;

}

printf(“a=%d b=%d”,a,b);

}

()

{ printf(“main( ) :%d”,fact(5));

fact(-5);

}

fact(int value)

{ int f;

if(value0)

{ printf(“arg error");

return(-1);

}

else if(value==1||value==0) f=1;

else f=value*fact(value-1)+1;

printf(“this called value=%d”,f);

return f;

}

( )

{ int a=012,b=0x12,k=12;

char c=‘102’,d=‘’;

printf(“a=%d b=%d k=%d”,a,b,k);

printf(“c=%c,d=%c%o”,c,d,a);

a=‘a’; c=49;

printf(“a=%d c=%c”,a,c);

}

四 阅读下列程序,在 处填入适当内容,使程序完整(8分,每个空1分)

1、有一个3*4矩阵,求其中的最大元素。

max_value( (1) )

{ int i,j,max;

max=array[0][0];

for(i=0;i3;i++)

for(j=0;j4;j++)

if(array[i][j]max)

max=array[i][j];

(2) ;

}

main( )

{ int a[3][4], i,j;

for(i=0;i3;i++)

for(j=0;j4;j++)

(3) ;

printf(“max value is %d”,max_value(a));

}

2、输入x、y两个整数,按先大后小的顺序输出x、y。

#include “stdio.h”

main( )

{ int x,y, *px,*py, (4) ;

scanf(“%d%d”,&x,&y);

(5) ; (6) ;

if(xy) p=""

{ p=px; px=py; py=p; }

printf(“x=%d,y=%d”,x,y);

printf(“max=%d,min=%d”,*px,*py);

}

3、用选择排序法对任意10个整数按照由小到大排序。

main()

{ int a[11],i,j,k,t;

printf("please input 10 numbers:");

for(i=1;i11;i++) scanf("%d",&a[i]);

printf("");

for(i=1;i=9;i++)

{ (7) ;

for(j=i+1; (8) ;j++)

if(a[j]a[k]) k=j;

if(k!=i)

{ t=a[k]; a[k]=a[i]; a[i]=t;}

}

printf("the sorted numbers:");

for(i=1;i11;i++) printf("%d ",a[i]);

}

答案

一 选择题(7分,每小题0.5分)

1、 b 2. c 3. b 4. b 5. c

6、 a 7. b 8. a 9. a 10. c

11、 a 12. a 13. b 14. d

二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)

1、× 2.× 3.√ 4.√ 5.×

6、× 7.× 8.× 9.√ 10.√

三 写出下列程序的运行结果(10分,每小题2分)

1、 2. 3.

4、 5.

四 阅读下列程序,在 处填入适当内容,使程序完整(8分,每个空1分)

1、(1)int array[3][4](int array[][4]) (2)return(max) (3)scanf(“%d”,&a[i][j])

2、(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)

3、(7) (8)

2003c语言试题3

一 选择题(24分,每小题2分)

1、已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是( )。

a 存放读入数据项的存储区 b 存放读入数据的地址或指向此地址的指针

c 一个指向所读文件的文件指针 d 一个整形变量,代表要读入的数据项总数

2、以下程序的输出结果为( )。

main( )

{ int i=010,j=10;

printf("%d,%d",i++,j--);

}

a 11,9 b 9,10 c 8,10 d 9,9

3、设a为int型变量,执行下列赋值语句后,a的取值分别是( )。a=125.534;a=20.0/3;a=(int)125.521%4;a=52;

a 125,6,31,1 b 125,6,1,20 c 125,6.666666,31,20 d 125.534,6.666666,2,20

4、设i和k都是int类型,则for循环语句( )。

for(i=0,k=-1;k=1;i++,k++) printf("****");

a 循环结束的条件不合法 b 循环体一次也不执行 c 循环体只执行一次 d 是无限循环

5、以下程序的输出结果为( )。

main( )

{ char c;

int i;

for(i=65;i68;i++)

{ c=i+32;

switch(c)

{ case a:case b:case c:printf("%c,",c);break; default:printf("end");}

}

}

a a,b,c,end b a,a,a,end c a,a,a, d a,b,c,

6、函数调用语句:fseek(fp,-10l,2);的含义是( )。

a 将文件位置指针从文件末尾处向文件头的方向移动10个字节

b 将文件位置指针从当前位置向文件头的方向移动10个字节

c 将文件位置指针从当前位置向文件末尾方向移动10个字节

d 将文件位置指针移到距离文件头10个字节处

7、以下程序的输出结果为( )。

main( )

{ char s1[40]="country",s2[20]="side";

int i=0,j=0;

while(s1[i]!=\0) i++;

while(s2[j]!=\0) s1[i++]=s2[j++];

s1[i]=0;

printf("%s",s1);

}

a side b country c sidetry d countryside

8、下列说法不正确的是( )。

a 主函数main中定义的变量在整个文件或程序中有效

b 不同函数中,可以使用相同名字的变量

c 形式参数是局部变量

d 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效

9、在下列程序段中,枚举变量 c1的。值是( )。

enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;

a 1 b 3 c 5 d 6

10、设有说明 int (*ptr)();其中标识符ptr是( )。

a 是一个指向整形变量的指针 b 是一个指针,它指向一个函数值是int的函数

c 是一个函数名 d定义不合法

11、定义由n个指向整形数据的指针组成的数组p,其正确的方式为( )。

a int p; b int (*p)[n]; c int *p[n]; d int (*p)( );

12、具有相同类型的指针类型变量p与数组a,不能进行的操作是( )。

a p=a; b *p=a[0]; c p=&a[0]; d p=&a

二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)

1、参加位运算的数据可以是任何类型的数据。( )

2、若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,a,12.5,则a=10,c=‘a’,f=12.5。( )

3.c语言把文件看作是一个字符(字节)的序列。( )

4、若有宏定义:#define s(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。( )

5、在turbo c中,下面的定义和语句是合法的:file *fp;fp=fopen("","r");( )

6、若有定义:char s[ ]="china";则turbo c系统为数组s开辟6个字节的内存单元。( )

7、若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i3;i++) sum+=a[i][2-i];则sum=21。( )

8、若有定义和语句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。( )

9、在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。( )

10、在turbo c中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( )

三 写出下列程序的运行结果(36分,每小题6分)

( )

{ int i=29,j=6,k=2,s;

s=i+i/j%k-9;

printf(“s=%d”,s);

}

( )

{ int x=31,y=2,s=0;

do

{ s-=x*y;

x+=2;

y-=3;} while( x%3==0);

printf(“x=%d y=%d s=%d”,x,y,s);

}

( )

{ int a[6]={10,20,30,40,50,60},i;

invert(a,0,5);

for(i=0;i6;i++) printf(“%d,”,a[i]);

printf(“”);

}

invert(int s[ ],int i,int j)

{ int t;

if(ij) p=""

{ invert(s,i+1j-1);

t=s[i];s[i]=s[j];s[j]=t;

}

}

4、#include

main()

{ char str[ ]=“the c program”,c;

int i;

for(i=2;(c=str[i])!=‘\0’;i++)

{ switch(c)

{ case ‘g’: ++i; break;

case ‘o’: continue;

default: printf(“%c”,c); continue;

}

printf(“*”);

}

printf(“”);

}

w

{ char low;

char high;

};

union u

{ struct w byte;

short word;

}uw;

main( )

{ int result;

=0x1234;

printf(“word value:%04x”,);

printf(“high byte:%02x”,);

printf(“low byte:%02x”,);

=0x74;

printf(“word value:%04x”,);

result=+0x2a34;

printf(“the result:%04x”,result);

}

()

{ char *s2=“i love china!”,**s1=&s2;

char *s3,c,*s4=“w”;

s3=&c

*s3=‘h’;

s2=s2+2;

printf(“%s %c %s %c”,s2,*s3,s4,**s1);

}

四 阅读下列程序,在 处填入适当内容,使程序完整(20分,每个空2分)

1、 百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?

main( )

{ int hb,hm,hl,n=0;

for(hb=0;hb=100;hb+= (1) )

for(hm=0;hm=100-hb;hm+= (2) )

{ hl=100-hb- (3) ;

if(hb/3+hm/2+2* (3) ==100)

{ n++;

printf("hb=%d,hm=%d,hl=%d",hb/3,hm/2,2*hl);

}

}

printf("n=%d",n);

}

2、用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

#define n 10

char str[n];

main()

{ int i,flag;

for(flag=1;flag==1;)

{ scanf("%s",str);

flag=0;

printf("");

}

sort(___(4)___);

for(i=0;in;i++) p=""

printf("%c",str[i]);

printf("");

}

sort(char str[n])

{ int i,j;

char t;

for(j=1;jn;j++) p=""

for(i=0;(in-j)&&(str[i]!=\0);i++) p=""

if(str[i]str[i+1])

{ t=str[i];

____(5)____;

____(6)____;

}

}

3、以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)

例如,矩阵为:

3 0 0 3

2 5 7 3

1 0 4 2

则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。

add(int m,int n,int arr[])

{ int i,j,sum=0;

for(i=0;im;i=i+m-1) p=""

for(j=0;jn;j++) p=""

sum=sum+ (7) ;

for(j=0;jn;j=j+n-1) p=""

for(i=1; (8) ;i++)

sum=sum+arr[i*n+j];

return(sum);

}

4、用指针作函数参数,编程序求一维数组中的最大和最小的元素值。

#define n 10

main()

{ void maxmin(int arr[],int *pt1,int *pt2,int n);

int array[n]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

p1=&a p2=&b

maxmin(array,p1,p2,n);

printf("max=%d,min=%d",a,b);

}

void maxmin(int arr[],int *pt1,int *pt2,int n)

{ int i;

*pt1=*pt2=arr[0];

for(i=1;in;i++) p=""

{ if(arr[i]*pt1) (9) ;

if(arr[i]*pt2) (10) ;

}

}

2022c语言推箱子设计心得体会和感想六

通过本次课程设计,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了《数据结构与算法》这门课程之后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉他有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也就说明了想要把生活中的信息转化到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这就是一件很巧妙的事情,经过了思考和老师同学的帮助,我用edges[i][j]=up和edges[j][i]=up就能实现了一个双向图信息的存储。

对整个程序而言,dijkstra算法始终都是核心内容,其实这个算法在实际思考中并不难,也许我们谁都知道找一个路径最短的方法,及从顶点一步一步找最近的路线并与其直接距离相比较,但是,在计算机中实现这么一个很简单的想法就需要涉及到很多专业知识,为了完成设计,在前期工作中,基本都是以学习c语言为主,所以浪费了很多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的原因,只能做一些很累赘的函数,可见在调用知识点,我没有掌握好。

不过,有了这次课程设计的经验和教训,我能够很清楚的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf和包涵在#include头文件中的输入函数。因为课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。

1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。

2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:

1、认真上好专业实验课,多在实践中锻炼自己。

2、写程序的过程中要考虑周到,严密。

3、在做设计的时候要有信心,有耐心,切勿浮躁。

4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。

5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。

这是一门纯属于设计的科目,它需用把理论变为上机调试。在学习科目的第一节课起,李老师就为我们阐述了它的重要性。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。

刚开始学的时候确实有很多地方我很不理解,每次上课时老师都会给我们出不同的设计题目,对于我们一个初学者来说,无疑是一个具大的挑战,撞了几次壁之后,我决定静下心来,仔细去写程序。老师会给我们需要编程的内容一些讲解,顺着老师的思路,来完成自己的设计,我们可以开始运行自己的程序,可是好多处的错误让人看的可怕,还看不出到底是哪里出现了错误,但是程序还是得继续下去,我多次请教了老师和同学,逐渐能自己找出错误,并加以改正。

tc里检查错误都是用英文来显示出来的,经过了这次课程设计,现在已经可以了解很多错误在英文里的提示,这对我来说是一个突破性的进步,眼看着一个个错误通过自己的努力在我眼前消失,觉得很是开心。此次的程序设计能够成功,是我和我的同学三个人共同努力作用的结果。在这一段努力学习的过程中,我们的编程设计有了明显的提高。

其实现在想起来,收获还真是不少,虽然说以前非常不懂这门语言,在它上面花费了好多心血,觉得它很难,是需用花费了大量的时间编写出来的。现在真正的明白了一些代码的应用,每个程序都有一些共同点,通用的结构,相似的格式。只要努力去学习,就会灵活的去应用它。

2022c语言推箱子设计心得体会和感想七

c语言是一门高级程序设计语言,使用广泛,表达能力强,目标代码运行效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。因此《c语言程序设计》课程在教学中占有重要地位。

《c语言程序设计》是对口升学计算机专业的一门核心专业基础课程,该课程是一门实践性与应用性较强的课程,目的是培养学生算法设计的基本思想和程序设计的基本技能。课程的内容主要涉及c语言的基本概念、基本语法以及c语言程序设计的基本方法,在教学中既要重视严谨的系统理论教学,又要重视实践性环节和案例的讨论与分析,为以后有关课程的学习和从事软件开发奠定基础。以下是本人在《c语言程序设计》课程教学过程中的一些经验和体会,与大家共勉。

教师首先要提高自身的政治素质和业务水平,及时了解最新的科技成果并掌握c语言应用技术的发展方向,要不断拓宽知识面,具备一定的知识高度,同时不断研究与改进教学方法,理论联系实际,提高自身的教学水平。

高职教育是针对岗位一线培养应用型、技能型人才的,而目前高职教育的c语言教材普遍存在的问题是结合岗位的针对性不强,技能训练的实践性不够。教材是提高教学质量的基础和前提,是学生系统学习知识的依据,一本好的教材应能培养学生的自学能力和独立思考能力,使学生能够依据教材理解课堂教学内容,深入了解本学科各个领域的知识。在选择教材方面应注重以下几个方面:(1)充分考虑高职高专教学的特色,理论知识要够用,注重理论联系实际,突出实用性。(2)语言表达要通俗易懂,在内容编排上尽量符合初学者的要求。(3)注意点与面的结合,注重基础与新技术的结合,使教材不仅是师生教与学的媒介,还是能够培养学生编程能力的工具。(4)在选择好的教材的同时,教师应积极编写符合实际教学需要的高质量的教材。

明确c语言课程的教学目标,培养学生模块化程序设计的逻辑思维能力,掌握程序设计的基本语法规则和程序调试方法,具备初步的分析问题与解决问题的能力。主要的教学目标包括:掌握c语言语法,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能针对复杂问题进行合理分解,掌握基本算法分析与设计知识。

1.作为计算机专业的基础课,目的是使学生掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练地使用c语言进行程序设计,具备调试程序的能力,为

后继课程及其他程序设计课程的学习和应用打下基础。学生要在理解c语言的基础上更加专注于理解《算法》或者《数据结构》等课程,而不至于被语言本身的复杂语法现象干扰,要强调c语言的实用性。另外,在掌握c语言的基础上,比较容易学习其他主流编程语言,学生通过对c语言的学习,可以获得针对基本程序结构的程序编写与程序调试知识。

2.学生对c语言的熟练掌握可以在一定程度上降低后续计算机硬件技术基础课程的学习难度。计算机硬件技术基础课程中有很大一部分内容是对汇编语言的学习,同样作为面向机器模型的程序设计语言,c语言仅仅是抽象程度更高一些,其程序结构与汇编语言具有一定的相似性,c语言的编程经验对学生学习汇编语言会有很大的帮助。

3.对于非计算机专业理工类学生而言,该课程有比较强的工业基础应用前景,c语言为用计算机解决实际问题提供了方法,是后续理论与实践教学的基础和重要工具,同时也是计算机二级考试所统一要求的课程之一。教学内容的改革应本着突出基础理论知识的应用和实践能力培养的原则,以应用为目的,以“必需、够用”为度,加强针对性和实用性。

高职高专c语言课程理论性强,概念性强,抽象而且复杂,在教学过程中要注意的问题主要有:培养学生对c语言的兴趣;教给学生正确的学习方法;加强实践教学环节;有效地组织课程设计;培养学生分析和解决实际问题的能力。教学过程是教师和学生的双边活动,只有既注重教,又注重学,才能真正做到教为学服务。教师所要做的就是传道、授业、解惑,开阔学生的思路,激发学生学习的积极性和主动性,激发反思,调动潜能,引导学生讨论,帮助学生解决遇到的问题,寓教于学。只有把握好教与学的关系,才能优化整个教学过程。

1.将案例带到教学中来。c语言是应用性很强的一门课程,既有理论,又有实践,既讲方法,又讲动手能力。采用案例教学法可以改变“满堂灌”的做法,将学生的眼、手、脑全部调动起来,培养学生的学习兴趣。本人在上课过程中,将课程内容分为若干个主题,以程序设计作为贯穿各主题的主线,每个主题的教学过程由“要点讲解”、“自学/上机实践”和“疑难解答”三个阶段组成。通过案例分析,重点讲解程序设计的思想和方法,辅以语言知识的介绍;然后通过上机练习,包括基本训练(自测作业和主题作业)与综合训练(大型作业),教师针对学生暴露出的问题答疑解惑,结合案例教学,努力将c语言作为解决实际问题的工具,强化学生的编程能力,在分析程序与程序设计的过程中使学生逐步熟悉语法,应用语句,提高学生分析问题、解决问题的能力,由浅入深、由易到难、循序渐进地使学生在实践中掌握知识,培养程序设计能力,逐步理解和掌握程序设计的思想和方法。最终在课堂上教师扮演“和方法,运主导”角色,而学生真正地成为“主体”。

2.切合实际的分组教学。要真正掌握程序设计的思想用语言解决实际问题,综合训练势在必行。整个过程以学生独立完成为主,教师提供相应的理论辅导。经过这样的模拟实际软件开发的演练,不但提高了学生的学习兴趣,培养了学生问题求解和编程能力,还有利于培养他们探索与创新的能力,更加有利于激发学生学习的积极性。

3.分层次教学。即标准化教学与个性化教学相结合,结合不同专业、不同班级学生的具体情况,制定各有特色的教案、讲稿和教学课件。既发挥群体智力优势,又充分发挥教师个体的教学风格特长,有利于提高教学水平。

4.加强实验课与理论课的联系。在理论课上将上机实验任务题目进行讲解,也可以将案例算法作为实验内容。实验课程可以分为两部分,实验任务问题作为理论课的内容在课堂上讨论、讲述,确定实现算法。对于同样的题目,可以确定若干不同的算法,比较其优劣,分析其原因。上机实验的任务是完成已确定算法的编码实现和运行。这种做法相当于在教师带领下,对实验内容做了集体预习,贯彻了“算法重于语法,语法重于编码”的课程指导原则,综合运用学过的知识,加强实践教学。学生只有通过大量的练习,才能真正掌握语言知识,培养程序设计能力,逐步理解和掌握程序设计的思想和方法,学会利用计算机解决实际问题。

5.充分利用多元化、现代化的教学手段。在教学过程中应多方位应用现代教育技术手段,尤其是多媒体辅助教学手段与网络化辅助教学手段。在课堂教学中采用多媒体教学课件,加强直观教学,可提高学生的空间想象力。教师应从最简单的c语言程序的调试入手,详细演示c语言程序的调试过程与调试细节,同时让学生参与进来,实现教师与学生、学生与学生的双向交流和互动,提高学生的学习兴趣,加深学生的理解与记忆。使其检验自己本阶段的学习成果,加强对所学知识的吸收和消化。

您可能关注的文档