人人范文网 其他心得体会

c语言程序设计心得体会(精选多篇)

发布时间:2020-09-02 08:36:02 来源:其他心得体会 收藏本文 下载本文 手机版

推荐第1篇:C语言程序设计心得体会

C语言程序设计心得体会

在设计打字游戏的过程中,通过我们小组各成员之间的相互讨论和合作,我们完成了打字练习的程序设计。在这个学期中,我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

一学期的学习成果,都体现在了这次打字游戏的设计过程中。这个学期,我学得不算认真,一开始做感觉力不从心,但在几个同学的帮助和努力下,我翻阅课本,询问ACM大神,绞尽脑汁的情况下做完这个程序设计,我的自信一下子提高了。尽管对于有些人这种程序会很简单,可对我这个C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!

推荐第2篇:C语言程序设计心得体会

C语言程序设计心得体会

在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。

虽然在上个学期中,我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。

这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。

当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。

三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。

推荐第3篇:C语言程序设计学习心得体会

C语言程序设计学习心得体会

通过一学期对C语言的学习,我感觉学习C语言是有一定难度却又是非常有趣的科目。也是很有帮助的,特别是对将要面对的计算机二级考试。

这段时间的学习我知道了C语言的基本特点有以下几点: 1. 语言简洁,使用灵活方便。 2. 运算符丰富,表达能力强。 3. 数计类型丰富。

4. 目标程序质量高,具有面向硬件系统的特点。 5. 具有结构化的控制语句和模块化的程序结构。 6. 具有编译预处理功能。

7. 程序设计自由度大,可移植性好。 这段时间学习使我掌握了:

一、我学习了C语言的数据类型、常量与符号常量、变量、C语言的运算符和表达式、赋值运算符和赋值表达式、自增自减运算符以及逗号表达式等。

二、了解了结构化程序的三种基本结构、C语句概述、数据输出包括字符输出函数putchar()和格式输出函数printf()、数据输入包括字符输入函数getchar()和格式输入函数scanf(),还有一些简单的C语程序设计举列等。

前几天一直在看C++语法,所以对一些比较实际的例子总感到比较抽象,但是那也是一个必需阶段,可能大家和我的学习方式不一样,但从刚接触程序到现在来看,发现这样学习语言的方法挺不错的。 经过第一阶段对语法的学习,我觉得实例阶段应该是一个过渡阶段吧,通过前一阶段对语法的学习之后,可能有很多概念我们都比较模糊,或者说很多东西太抽象了,这就为我们第二个阶段的学习做好了实例化的准备,可以这样说吧,第一个阶段就我们为我们的学习一样东西而构建的一个类,里面讲了我们应该在这里面要做什么?第二阶,也就是本阶段,我们就应该去把前一段的东西具体化(实例化先前创建的类),也就是去练习一些小例 子,从网上下载的电子书上有很多这方面的例子的,如果有自己去书店买书的话,里面也应该提供了不少,里面的例子,我是每次都打了一遍,也许有的人不会亲自去用手打一遍,什么copy等,当然这样也行,但我个人认为,对于初学者来说,最好还是自己动手打一遍比较好,毕竟这些东西对我们来说,都比较陌生,如果每个字都自己打完的话,有些代码你不想记住也难了,在这里,我们得弄懂练习的每一个例子,如果能把一些例子稍稍修改,弄懂里面精髓的东西,让自己知道为什么这样做,那么是最好不过的了,我平时练习时,这一步是少不了的,都习惯了,所以也就成了条件反射,想不这样都不行。最后,我们就应该汇一下总,把前面做过的例子里所用的技术理一下,再做一个比较大的例子,尽量把到目前为止所懂的知识全部应用到里面去,只是尽量,当然有些东西是不能集成到一起的,也是是代码之间的排斥性。

这是我个人的一点学习心得,希望能更好的运用到学习中去。C语言是一门很有用的、对于我们的就业很实际的语言,学习好C语言是一项必须而实际的任务。我们必须要好好掌握。

推荐第4篇:C语言程序设计

1.Problem A: Hello world! Description Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。

Input 无

Output 请输出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!

HINT 请注意换行符

Append Code #include int main() {

printf("Hello Da_min,\n");

printf("Hello Er_min,\n");

printf("Hello Xiao_ming!\n"); } 2. Problem B: 求圆的面积和周长 Description 从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。

Input 输入一个浮点型数据,有效数字不会超过十进制的6位。

Output 输出为两行。

第一行为圆的面积,第二行为圆的周长,格式见sample。

Sample Input 3

Sample Output Area: 28.260000 Perimeter: 18.840000

HINT 了解浮点类型的输入、输出和算术运算符

Append Code 法一

#include int main() { double r,p,s; scanf("%lf",&r); p=2*3.14*r; s=3.14*r*r; printf("Area: %lf\n",s); printf("Perimeter: %lf\n",p); } 法二

#include #define pi 3.14 int main() {

double r;

scanf("%d",&r);

printf("Area: %lf\n",pi*r*r);

printf("Perimeter: %lf\n",2*pi*r);

}

3.

Problem C:平均值 Description 求3个数的平均值。

Input 输入只有一行,为3个较小的整数。

Output 输出为这3个整数的平均值,保留3位小数。

Sample Input 1 2 3 Sample Output 2.000

HINT 注意除法运算对整型数据和浮点型数据是不一样的。

Append Code #include int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%.3lf",(a+b+c)/3.0); }

4.Problem D: 求字符的值 Description 从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。

Input 输入为3个字符。

Output 输出为3行。

每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。

Sample Input 0 A

Sample Output 048 060 030 032 040 020 065 101 041

HINT 了解字符值的存储和整型的关系。

Append Code #include int main() { char a,b,c; scanf("%c%c%c",&a,&b,&c); printf("%.3d %.3o %.3x\n",a,a,a); printf("%.3d %.3o %.3x\n",b,b,b); printf("%.3d %.3o %.3x\n",c,c,c); }

5.

Problem A: 最简单的程序 Description 输出一行“Hello world!”。

Input 无

Output Hello world!

Sample Input Sample Output Hello world!

HINT Append Code #include int main() {

printf("Hello world!"); }

6. Problem B: 算术基本运算 Description 计算两整数x和y(0

Input 输入只有一行,格式见sample。

Output 输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sample

Sample Input x = 11, y = 3

Sample Output x + y : 14 xy : %d\n",x-y);

printf("x * y : %d\n",x*y);

printf("x / y quotient: %d, remainder: %d\n",x/y,x%y);

printf("x ^ 2 : %d\n",x*x);

printf("y ^ 3 : %d\n",y*y*y); } 7.Problem C: 自增自减运算 Description C语言中有自增运算++、自减运算--,并且可以前置和后置。

编写一个程序:对输入的一个整数a,输出a++、a--、++a、--a的值。

Input 一个整数a,a是很小的整数。

Output 输出为5行,第一行为a的值,后面依次为--a、a--、a++、++a的值。

5行输出纵向a要对齐,“:”对齐,“:”前后各一个空格,后面的数值不用对齐。每行行尾都有回车。

Sample Input 0

Sample Output a : 0 --a : -1 a-- : 0 a++ : 0 ++a : 1

HINT Append Code #include int main() { int a,x; scanf("%d\n",&x); a=x; printf(" a

: %d\n",a); printf("--a

: %d\n",--a); a=x; printf(" a-- : %d\n",a--); a=x; printf(" a++ : %d\n",a++); a=x; printf("++a

: %d\n",++a); }

8. Problem F: 绝对值 Description 求整型数据和浮点型数据的绝对值。

Input 输入两个数,第一个是整数,第二个是浮点数。

Output 输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。

Sample Input -1 1

Sample Output 1 1

HINT 求绝对值可以用标准库函数来完成,也可以自己判断。注意浮点数的输出格式。求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人!

Append Code #include //#include int main(){

int n;

float m;

scanf("%d%f",&n,&m);

//n=abs(n);

//m=fabs(m);

if(n

{

n=-n;

}

if(m

{

m=-m;

}

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

printf("%g",m);

return 0; }

9. Problem A: 奇数还是偶数? Description 输入一个整数,判读它是奇数还是偶数。

Input 输入只有一行,为一个100以内的正整数。

Output 输出为一行。

若输入为偶数则输出“even”,奇数输出“odd”。 Sample Input 30

Sample Output even

HINT 用整数运算可以解决,练习“?:”表达式。

Append Code #include int main(){

int n;

scanf("%d",&n);

if(n>=0&&n

if(n%2==0)printf("even\n");

else printf("odd\n");

}

return 0; }

10.Problem B: 简单的打折计算 Description 商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。

Input 输入只有一行,三个整数m、n和x,且0

Sample Input 95 300 4

Sample Output 334.40

HINT 了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。

Append Code #include int main() {

int m,x,n,a;

float b;

scanf("%d%d%d",&m,&n,&x);

0

x

m

a=m*x;

if(a>n)

b=0.88*a;

else

b=a;

printf("%.2f\n",b);

}

11. Problem C: 判断闰年 Description 输入一个正整数的年份,判断是否为闰年。

Input 输入只有一行,为一个10000以内的正整数。

Output 输出为一行。

若输入为闰年偶数则输出“Yes”,否则输出“No”。

Sample Input 2010

Sample Output No

HINT 了解逻辑运算符和关系运算符。

Append Code #include int main() {

int x;

scanf("%d",&x);

if(x>0&&x

{

if(x%4==0&&x%100!=0)

printf("Yes\n");

else if(x%400==0)

printf("Yes\n");

else

printf("No\n");

}

else

printf("error"); }

12.Problem D: 水仙花数 Description 如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。

Input 一个整数x,100

Output x是水仙花数,则输出“YES”,否则为“NO”。

Sample Input 153

Sample Output YES

HINT Append Code #include int main() {

int a,b,c,x;

scanf("%d",&x);

a=x/100;

b=x/10%10;

c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf("Yes");

else

printf("No"); }

13.Problem E: 三个数比较大小 Description 从键盘上输入0~100之间的三个数,按从小到大的顺序输出。

Input 输入只有一行,为三个整数。

Output 按从小到大输出这三个数。

Sample Input 15 10 20

Sample Output 10 15 20

HINT 用if语句判断各种情况可以解决这个问题。

Append Code #include int main() {

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a>=b)

{

if(b>=c)

printf("%d %d %d\n",c,b,a);

else if(c>=a)

printf("%d %d %d\n",b,a,c);

else

printf("%d %d %d\n",b,c,a);

}

else

{

if(a>=c)

printf("%d %d %d\n",c,a,b);

else if(b>=c)

printf("%d %d %d\n",a,c,b);

else

printf("%d %d %d\n",a,b,c);

} }

14.Problem F: 奇怪的求和之一 Description 给定3个正整数a、b和c,按照如下规则求和: 如果这个数字是偶数,则累加到和中;

如果这个数字是奇数,则将大于该数的最小偶数累加到和中。

Input 三个正整数,均在100以内。

Output 一个和。

Sample Input 2 3 5

Sample Output 12

HINT 如果不会使用分支语句, 可使用条件运算符判断到底将哪个数累积到和中。

Append Code #include int main() {

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a%2!=0)a++;

if(b%2!=0)b++;

if(c%2!=0)c++;

printf("%d\n",a+b+c);

}

15.Problem G: 你过线了吗? Description 经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗? Input 输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。第二行有3个非负整数,分别表示你考的三门课程的成绩。

Output 如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。

Sample Input 70 80 70 240 80 80 82

Sample Output congratulations

HINT 如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

Append Code #include int main() {

int a,b,c,d,e,f,g,h;

scanf("%d %d %d %d\n%d %d %d",&a,&b,&c,&d,&e,&f,&g);

h=e+f+g;

if(e>=a&&f>=b&&g>=c&&h>=d)

printf("congratulations");

else

printf("sorry"); } 16.Problem I: A+B Problem (II) : Input/Output

Practice Description 计算a+b,0

Input 输入的第一行是一个整数N,后面有N对整数a和b,每对a和b占一行,a,b用空格分开。

Output 每行输出一个a+b的和,顺序与输入对应。

Sample Input 2 1 2 10 20

Sample Output 3 30

HINT N给出了测试样例数,用for循环处理方便。

Append Code #include int main() {

int n,a,b,i; Scanf(“%d”,&n); For(i=0;i

17.

Problem H: A+B Problem Description 计算a+b,0

Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。

Output 每行输出一个a+b的值,顺序与输入对应。

Sample Input 1 2 10 20

Sample Output 3 30

HINT OJ系统上测试输入结束符为EOF(End Of File),其值为-1。用scanf()把文件所有内容读完后,会读到EOF,所以可以用来判断输入是否完成,测试时可以用Ctrl+Z产生EOF。本题解法参看FAQ。 Append Code #include int main(){

int a,b;

while(scanf("%d%d",&a,&b)!=EOF){

printf("%d\n",a+b);

}

return 0; }

18.Problem A: 判断是否是元音字母 Description 输入一个英文字母,判断是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

Input 输入一个英文字母

Output 是元音字母,输出“yes”,否则输出“no”,行尾没有回车。

Sample Input A

Sample Output yes

HINT Append Code #include void main() {

char ch;

scanf("%c",&ch);

if(ch>='A'&&ch

ch=ch+32;

if(ch=='a')

printf("yes");

else if(ch=='e')

printf("yes");

else if(ch=='i')

printf("yes");

else if(ch=='o')

printf("yes");

else if(ch=='u')

printf("yes");

else

printf("no");

}

19.Problem B: 按顺序输出三个数 Description 对于输入的3个整数,按照从小到大的顺序输出。

Input 输入3个int类型内的整数,两两之间用一个空格隔开。

Output 按照从小到大的顺序输出上述三个数,两两之间用一个空格隔开。

Sample Input 2 1 3 Sample Output 1 2 3

HINT Append Code #include void main() {

int a,b,c,temp;

scanf("%d%d%d",&a,&b,&c);

if(a

{

temp=a;

a=b;

b=temp;

}

if(a

{

temp=a;

a=c;

c=temp;

}

if(b

{

temp=b;

b=c;

c=temp;

}

printf("%d %d %d\n",c,b,a); }

20.Problem E: Description 判断输入整数的奇偶性。

判断奇偶数 Input 输入为一个整数。

Output 输出只有一行,代表判断结果。如果输入的整数n是一个偶数,输出: n is an even number.否则输出:

n is an odd number.见样例。

Sample Input 12

Sample Output 12 is an even number.

HINT Append Code #include int main() {

int a;

scanf("%d",&a);

if(a%2==0)

printf("%d is an even number.",a);

else

printf("%d is an odd number.",a); }

21.Problem A: 判断两个整数的大小关系 Description 输入2个整数a和b,如果a>b,则输出1,否则输出0。

Input 两个整数a和b,均不超过int类型的表示范围。

Output 表示a>b的结果:如果a>b,则输出1,否则输出0。

Sample Input 3 4

Sample Output 0

HINT

Append Code #include int main() { int a,b; scanf("%d %d",&a,&b); if (a>b)

printf("1");

else

printf("0"); return 0; } 22.Problem D: 成绩的等级 Description 把百分制的考试成绩转换成五级制的成绩: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pa 0~59:Failing

不在0~100之间的输入是非法数据,输出“Error”。

Input 输入多行,每行一个整数。

Output 输入所对应的成绩等级。

Sample Input -1 81 92 35 68 72 100

Sample Output Error Good Excellent Failing Pa Average Excellent HINT 用switch语句解决这个问题比较方便。

Append Code #include int main() {

int score;

while(scanf("%d",&score)!=EOF)

{

if (score100)

printf("Error\n");

else

{

switch (score/10)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:printf("Failing\n");break;

case 6:printf("Pa\n");break;

case 7:printf("Average\n");break;

case 8:printf("Good\n");break;

case 9:

case 10:printf("Excellent\n");break;

}

}

}

return 0; }

23.Problem E: 输出是m的倍数或n的倍数、但不是

m和n的公倍数的数 Description 输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1

Input 输入三个整数,依次为k、m、n。

Output 从小到大输出符合题意的所有整数,两数之间用一个空格分开。

Sample Input 15 2 3

Sample Output 2 3 4 8 9 10 14 15

HINT 难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。

Append Code #include int main() { int k,m,n,a,i=1; scanf("%d %d %d",&k,&m,&n); if(m

a=m; else

a=n; printf("%d",a); for(i=a+1;i

}

if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0))

printf(" %d",i); } return 0;

24.Problem B: 两整数相加减 Description 计算a+b和a-b。

Input 输入为一对整数a和b。a,b用空格分开。

Output 输出a+b和a-b的计算结果,各占一行。

Sample Input 1 2

Sample Output 3 -1

HINT Append Code #include int main() { int a,b; scanf("%d %d",&a,&b);

printf("%d\n",a+b);

printf("%d\n",a-b); } 25 Problem C: 它满足条件吗? Description 需要判断给定的一个整数是否同时满足如下三个条件: 1.它是一个完全平方数。 2.它是一个偶数。 3.它是一个正数。

注:若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。例如:

0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一个int范围内的整数。

Output 如果输入的数字满足条件,则输出yes,否则输出no。

Sample Input 100

Sample Output yes

HINT 注意逻辑表达式判断三个条件的顺序。 如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

库函数sqrt()可以用于求一个数的平方根。

Append Code #include #include int main() { int a; scanf("%d",&a);

if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)

printf("yes");

else

printf("no"); }

26.Problem F: 多路分支 Description 编写一个完整的程序,运行时向用户提问"你考试考了多少分?(0-100)"接受输入后判断其等级并显示出来等级: 优:90

Input 输入任意一个整数分数值,显示等级; 再输入任意一个整数分数值,显示等级; ....直到测试数据较充分,可输入-1止。

Output 对任意输入的分数值,输出对应的等级,直到输入的数为-1时才退出运行.Sample Input 102 100 90 80 70 60 50 0 -80 -1

Sample Output grad must between 0 and 100 优

grad must between 0 and 100 grad must between 0 and 100

HINT Append Code #include int main() {

int x;

while(scanf("%d",&x)!=EOF)

{

if (x100)

printf("grad must between 0 and 100\n");

else if(x>=90)

printf("优\n");

else if(x>=80)

printf("良\n");

else if(x>=60)

printf("中\n");

else if(x>=0)

printf("差\n");

}

return 0; }

27 Problem D: 有多少人? Description 学校举行运动会,如果全体学生按照3人一队列队,则多了1个人;如果按照4人一队列队,则多了2个人;如果按照5人一队排队,则多了3个人。请问这个学校有多少学生?

Input 一个int类型的正整数N,是学生人数的上界,即:该校学生数不超过N。

Output 所有可能的学生数,每个数占一行。

Sample Input 200

Sample Output 58 118 178

HINT Append Code #include #include int main() {

int n,i;

scanf("%d",&n);

for(i==1;i

printf("%d\n",i); }

return 0; }

28 Problem C: 正负数各有几个? Description 输入若干个整数,求其中正数、负数的个数。

Input 输入分为2行:第一行是一个数字N>0,表示下面有N个整数。第2行是N个整数,都是int类型的。

Output 输出所输入的N个整数的正数个数和负数个数,并用空格分开2个输出。 Sample Input 10

1 2 3 4 5 -1 -2 -3 -4 -5

Sample Output 5 5

HINT 貌似还有一种叫做0的数。

Append Code #include int main() {

int n,a,i,num1=0,num2=0;

scanf("%d",&n); for(i=0;i

{

scanf("%d",&a);

if(a>0)

num1++ ;

else if(a

num2++;

}

printf("%d %d\n",num1,num2);

return 0; }

29 Problem A: A+B Problem (III) : Input/Output

Practice Description 计算a+b,0

Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。当测试样为0 0时表示输入结束,0 0不参与运算。

Output 每行输出一个a+b的值,顺序与输入对应。

Sample Input 1 2 10 20 0 0

Sample Output 3 30

HINT 练习break的使用。

Append Code #include int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF)

{

if(a!=0||b!=0)

}

printf("%d\n",a+b);

else

break;

return 0; } 30 Problem B: A+B Problem (IV) : Input/Output

Practice Description 计算a+b,0

Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。

Output 每行输出一个a+b的值,顺序与输入对应。每个格式样例之间用一个空行分隔开。

Sample Input 1 2 10 20 15 35

Sample Output 3 30 50

HINT 由于输出的和比空行多一个,所以全部计算放在一个循环里是不行的,必须要特殊处理开头或者结尾。

Append Code #include int main() { int a,b,n=0; while (scanf("%d %d",&a,&b)!=EOF) {

n++;

if(n==1)

printf("%d\n",a+b);

else

printf("\n%d\n",a+b);

}

return 0; }

31 Problem C: n个数的最大值和最小值 Description 找出n个数中最大的数和最小的数,并将它们的值输出出来。

Input 输入为n+1个整数,都在int类型范围内。这些数可能用若干空格或者换行符分隔开。 输入的第1个数为n,表示后续有n个数输入。从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。

Output 输出为两行,格式见sample。

Sample Input 3 0 1 -1

Sample Output The maximum number is 1. The minimum number is -1.

HINT 分隔符是空格还是回车都是空白符,对scanf("%d")来说没有区别;先读入n,然后用for循环就很容易控制读入n个数的过程。

Append Code #include int main() {

int n,i,max,min;

scanf("%d",&n);

int a[n];

for(i=0; i

scanf("%d",&a[i]);

max=a[0];

min=a[0];

for(i=0; i

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

printf("The maximum number is %d.\n",max);

printf("The minimum number is %d.",min);

return 0; } 32.Problem D: 求100以内的素数 Description 素数是只能被1和自身整除的正整数,根据数学定义1不是素数。素数也叫质数。

Input 输入为两个整数m和n,满足0

Output 从大到小输出m~n之间的所有素数,一个素数一行。如果m~n之间没有素数,则不输出任何数。

输出的所有数在两行“=====”之间。

Sample Input 2 12

Sample Output ===== 11 7 5 3 2 =====

HINT 利用素数的数学规律可以很容易的解出此题,题目给出的数据范围是关键。

Append Code #include #include int main() { int m,n,i,j,k,t; scanf("%d %d",&m,&n); printf("=====\n"); for(i=n;i>=m;i--) {

t=0;

for(j=2;j

if(i%j==0)

t=1;

if(t==0&&i>1)

printf("%d\n",i); } printf("====="); return 0; } 33.Problem E: 是否构成三角形? Description 给出三个整数,代表三条边的长度,判断这三条边的长度是否能构成一个三角形?

Input 第一行是n(1

接下来有n行,每一行包含三个整数,表示三个边长(1

Output 如果三条边能构成三角形,输出YES,否则输出NO

Sample Input 3 1 2 3 2 8 7 20 20 1

Sample Output NO YES YES

HINT Append Code #include int main() { int a,b,c,n,i; scanf("%d",&n); for(i=0;i

{scanf("%d%d%d",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

printf("YES\n"); else printf("NO\n"); }

return 0; } 34.Problem C: 简单的整数排序 Description 对给出的若干整数按从小到大排序。

Input 输入的第一个数为n(n

Output 按从小到大的顺序输出这些整数,每两个整数之间用一个空格分隔开,最后一个整数后面没有空格。

Sample Input 10 3 9 1 5 2 8 5 6 7 3

Sample Output 1 2 3 3 5 5 6 7 8 9

HINT 排序前必须把所有的整数都存储下来。因为只有最多1000个数,1秒的时间足够任何排序算法运行处结果来。

Append Code #include int main() {

int c,i,n,j;

int a[1000];

scanf("%d",&n);

for (i=0;i

scanf("%d",&a[i]);

for(i=1;i

{

for(j=0;j

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

printf("%d",a[0]);

for(i=1;i

printf(" %d",a[i]);

return 0; }

35.Problem A: Description

购物的路程 Saya和Kudo一起去购物。假定她们逛的街是一条直线,而商铺是这条直线上的一些点。她们将车停在该直线最左端的店铺处,然后从左向右开始逛每一个店铺,然后从最右边的店铺再返回到停车处。你的任务是计算她们走了多少路。

Input 输入有多组。每一组的第一行是N(0

Output 对每组输入,输出她们走的路长。

Sample Input 4

24 13 89 37 6 7 30 41 14 39 42 0

Sample Output 152 70

HINT Append Code #include int main() {

int n,i,max,min,a[100001];

while(scanf("%d",&n)&&n!=0)

{

scanf("%d",&a[0]);

min=max=a[0];

for(i=1;i

{

scanf("%d",&a[i]);

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

printf("%d\n",(max-min)*2);

}

return 0; } 36.Problem B: 求累加和 Description 编程求min~max的累加和(含min和max),其中max>=min>0。部分程序已经给出,请填充其中的空白语句,并提交填充后的完整程序。

Input 输入为多行。第一行是一个整数N>0,表示后面有N个测试用例。后面有N行,每行包含2个整数,分别是min和max。

Output 输出为N行,每个测试用例的计算结果占据一行。每行的格式为: case i:sum=s.

其中i表示测试用例的编号(从1开始),s是该测试用例对应的累加和(设不超过int的表示范围)。

Sample Input 3 1 10 1 100 1 1

Sample Output case 1:sum=55. case 2:sum=5050. case 3:sum=1.

HINT Append Code #include int main() {

int n,i,j,max,min,sum;

scanf("%d",&n);

for(i=0;i

{ sum=0;

scanf("%d%d",&min,&max);

if(max==min)

printf("case %d:sum=%d.\n",i+1,min);

else

{

for(j=min;j

sum=sum+j;

printf("case %d:sum=%d.\n",i+1,sum);

}

} return 0; } 37.Problem G: 顺序输出字母 Description 按字母顺序输出两个字母st和ed之间的所有字母,但不包括st和ed。不输出逆序。

Input 两个字母st和ed,都是大写字母,用一个空格分开。

Output 在一行内按顺序输出st和ed之间的所有字母,但不包括st和ed。 例如:

输入为A和E,则输出为BCD;

输入为A和B,则什么字母也不输出,只有一个空行; 输入为E和A,也是什么字母也不输出, 只有一个空行。 最后要输出一行(行尾不回车): ***END***

Sample Input A C

Sample Output B

***END***

HINT Append Code #include int main() {

char st,ed,a;

int i;

scanf("%c%c%c",&st,&a,&ed);

{

for(i=st+1;i

printf("%c",i);

printf("\n***END***");

}

return 0; } 38.Problem F: 单字母变换 Description Tom和Jack是密码学爱好者,他们在聊天时经常使用一些暗语。他们使用的一种最简单的暗语是:将要说的每句话里面的英文字母变成这个字母之后的某个字母。现在要求你写一个程序,将一个字母变成它之后的某个字母。

Input 输入有2个:一个大写字母c和一个正整数d(0

Output 输出字母c之后的第d个字母。大小写与c一致。如果c之后的某个字母已经超出'Z',则再从字母'A'开始计数。

如:c='A',d=3,则输出应为:D。 若:c='Y',d=3,则输出应为:B。

Sample Input A 3

Sample Output D

HINT Append Code #include int main() {

char c;

int d;

scanf("%c%d",&c,&d);

if(c+d

printf("%c",c+d);

else

printf("%c",c+d-26);

return 0; }

39.Problem B: 登录密码验证 Description 编写一个程序,模拟用户登录系统的密码验证过程。系统提供给用户的密码长度最长为20个字符,若密码输入错误可以再次输入。但为了保证用户密码安全,若连续输入密码错误超过5次就会锁定账号一段时间。

Input 输入为若干个串,至EOF结束。输入的第一个串是用户的正确密码,后面的串为模拟用户登录时的输入的密码。

Output 每次输入错误的密码,输出一个“Wrong!”,若输入的密码为正确的,输出一个“Welcome!”,并结束密码测试。若前5次输入的密码都是错误的,则后面的输入中不管是否有正确的密码都输出“Out of limited!”。

Sample Input abcdefg

123456 kkkkkkkk abcdefg

Sample Output Wrong! Wrong! Welcome!

HINT 输入可以用scanf("%s")处理,密码比较用字符串的比较可以完成。

Append Code #include #include int main() {

char a[20],b[20];

int i,j=1;

scanf("%s",a);

while(scanf("%s",b)!=EOF)

{

if(j

{

if((strcmp(a,b)==0))

{

printf("Welcome!\n");

break;

}

else

printf("Wrong!\n");

j++;

}

else printf("Out of limited!\n");

} } 40.Problem C: 兔子的繁殖问题 Description 假设一对兔子每月能生一对小兔(一雌一雄),每对小兔出生后的下一个月是没有繁殖能力的,至出生后的第三个月开始又可以每月生一队小兔,问从一对刚出生的小兔开始,经过若干个月后一共有多少兔子(假设在此过程中兔子没有死亡)?

这个问题是意大利数学家菲波那契(Fibonacci)在他1202年出版的《算盘全书》中提出来的,从第一对刚出生的小兔开始每月的兔子数被乘坐菲波那契序列。

Input 输入的第一个数为n,接下来有n个数字。每个数字为一个月份m(m

Output 输出为n行,每行为第m个月后的兔子总数。

推荐第5篇:C 语言程序设计

《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业的重要专业基础课。

本校从2001至今,每年都开设《C语言程序设计》课程,由于,我校最开始时的特殊情况,主要把重点放在C语言中的各类重点、难点的语法、语义上,使得学生经过比较复杂和痛苦的过程后,对C语言在使用上很难做到自己编写程序。而且很多学生产生了畏惧心理。

2004年,学院成立计算机科学与技术系,为了更好学习和掌握C语言,计算机科学与技术专业和计算机维护专业(计算机应用技术前身)除了开设《C语言程序设计》课程外,在后续一学期还开设了《C语言程序设计课程设计》,使得计算机专业学生编程思想和能力得到了极大提高。

2005年,为了让我院工科学生更好的掌握C语言编程以及通过四川省计算机二级考试,在《C语言程序设计》课程后设置《C语言程序设计课程设计》,极大地提高了学生的动手机会和能力,过级率显著提高!

2007年,依托我校建设精品课程的契机,我们将C语言中的各个知识点进行重新规整,提出适用于三本院校学生的语言设计学习的方法。我们提出,先了解C语言,再学习C语言,再用C语言的思想。即在开始时让学生初步知道C语言,然后引入比较简单的运算符以及基本输入、输出和简单的顺序结构程序设计。通过这样的方式,我们发现,学生在C语言的学习就不会从开始的时候陷入大量难懂的语法、语义和数据结构中。有了以上铺垫再层层进入,最终进入复杂的各类数据结构以及指针等学习。通过以上的内容规整后,教学效果有明显提高。

推荐第6篇:1032C语言程序设计

1032]《C语言程序设计》

选择题 [单选题]

12.关于C语言程序描述正确的是(

)

A:每个函数必须要有return语句

B:主函数必须位于程序的开头

C:程序中每行只能写一条语句

D:一个程序中只能有一个主函数

参考答案:D [单选题]

3.正确的实型常数是()

A:0 B:e2 C:0.871

D:3e-1.5

参考答案:C [单选题]

18.变量定义并初始化正确的是(

A:int a=l,*p=a;

B:int a=2,p=*a;

C:int a=3,p=&a;

D:int a=4,*p=&a;

参考答案:D

)[单选题]

19.设struct{int age;int num;}stu,*p=&stu;对结构型变量stu的成员age引用错误的是(

)

A:stu.age

B:p->age

C:*p.age

D:(*p).age

参考答案:C

[单选题] 当调用函数时,实参是一个数组名,则想函数传递的是(

A:数组长度

B:数组每一个元素的地址

C:数组的首地址

D:数组中每个元素的值

参考答案:C [单选题]

25.循环语句\"for(i=-1;i

)次

A:3 B:4 C:5 D:6

参考答案:C [单选题]

27、从循环体内某一层跳出,继续执行循环外的语句是:(

A:break 语句

B:return 语句

C:continue 语句

D:空语句

参考答案:A [单选题]

29、设char s[2*5]=\"12345678\";,数组s的长度是()

A:10 B:9 C:8 D:7

参考答案:C [单选题]

20.设int a[10];,对数组元素引用正确的是(

)

A:a[10]

B:a[′0′]

C:a(6)

D:a[10-10]

参考答案:D [单选题]

30、设变量b是int,c为float,则表达式b+c之值的数据类型是(

A:int B:float

C:double

D:不确定

参考答案:C

[单选题]4.设float a,b,c;,函数调用语句f(((a,b),a+c),5);中参数的个数是()

A:1 B:2 C:3 D:4

参考答案:B [单选题]

5.设intm[]={5,4,3,2,l},i=2;,其值为l的数组元素是()

A:m[i+2]

B:m[i+3]

C:m[i-l]

D:m[m[i]]

参考答案:A

[单选题]6.下列叙述正确的是()

A:while语句中的循环体至少被执行一次

B:do-while语句中的循环体至少被执行一次

C:switch语句中每个case后必须有break语句

D:continue和break在循环语句中的作用是相同的

参考答案:B [单选题] 7.设chars[2*5]=\"1234567\";,数组s的长度是()

A:10 B:9 C:8 D:7

参考答案:A [单选题]

8.下列二维数组定义并初始化正确的是( )

A:int a[3][3]=[0,3];

B:int a[2][]={{3,4},{5,6}};

C:int a[2,3]={2,3,4,5,6,7,8,9};

D:int a[][4]={{l,2,4,5},{2,3},{3,4,9}};

参考答案:D [单选题]

9.设chars1[20]=\"China\",s2[10]=\"Beijing\";,执行下列语句后的输出结果是()

strcat(sl,s2); print f(\"%s, %d\\n\",s1,strlen(s1));

A:China,5

B:Beijing,7

C:ChinaBeijing,12

D:BeijingChina,12

参考答案:C [单选题]10.设变量A是int,f为float,则表达式a+f之值的数据类型是( )

A:int B:float

C:double

D:不确定

参考答案:C [单选题]

11.用户自定义标识符正确的是(

)

A:2abC B:float C:aa2_a

D:sin(x)

参考答案:C [单选题]

14.设int a[][2]={1,2,3,4,5,6,7,8};,其中缺省的行长度是(

A:2 B:3 C:4 D:5

参考答案:C [单选题]

15.设int x=6;,执行语句x+=x-=x*x;后,x的值是(

)

A:-60

) B:0 C:6 D:36

参考答案:A [单选题]

16.下列为C语言保留字的是(

)

A:Double B:long C:FLOAT

D:integer

参考答案:B [单选题]

17.设int a=3,b=8,c=10;,表达式(a,b),(c,10)的值是(

)

A:2 B:6 C:8 D:10

参考答案:D [单选题]

21.若已定义:int a[9],*p=a;,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( )。

A:p+1 B:a+1 C:a++ D:++p

参考答案:D [单选题]

22.定义一个具有10个元素的整型数组,应该使用语句( )。

A:int a[10];

B:int a[2,5];

C:int a[];

D:int *a[10]

参考答案:A [单选题]

23.在宏定义#define PI 3.1415926中,用宏名PI代替一个(

)。

A:单精度数

B:双精度数

C:常量

D:字符串

参考答案:D [单选题]

26、C语言程序的三种最基本结构是(

)结构、选择结构和循环结构。

A:顺序

B: 递归

C:转移 D:嵌套

参考答案:A [单选题]

28、设int m[]={5,4,3,2,l},i=2;,其值为2的数组元素是()

A:m[i+1]

B:m[i+2]

C:m[i-l]

D:m[m[i+1]]

参考答案:A [单选题]

1.正确的自定义标识符是()

A:2C B:x#y C:case

D:Word_2

参考答案:D [单选题]

2.设int a=2,b=3,c;,正确的赋值语句是()

A:(a+b)++

B:b=a%2.5

C:a+=b+=5

D:c=a+b=5

参考答案:C [单选题]

13.设int i=2,a,b;double x=2.12,y=1.2;,正确的表达式是(

)

A:a+=(b=3)*(a=5)

B:a=a*5=3

C:x%(-5)+y**4

D:y=double(i)

参考答案:A 问答题 [论述题]

1. 什么是算法?算法的特点是什么?请画出求s=1+2+3+…+n之值的算法流程图。

参考答案:

1.算法是求解问题的方法或步骤

算法的特点:确定性、有效性、有穷性、有0个或一个以上输入、有一个或多个输出

s=1+2+3+…+n之值的算法流程图(略)

[论述题]

3.程序的基本结构有哪些?请画出这些基本结构的流程图。

参考答案:

3.程序基本结构包括顺序结构、分支结构、循环结构 三种基本结构的流程图见书18页

[论述题] 2. 结构程序设计方法的基本思想是什么?程序包括哪三种基本结构?请画出求100以内能够被7整除的数的算法流程图。

参考答案:

2.结构程序设计方法的基本思想是自顶向下,逐步求精、模块化的方法 程序包括顺序结构、分支结构、循环结构

请画出求100以内能够被7整除的数的算法流程图。

填空题 [填空题]

16.设char s[3]=\"AB\",*p=s;,则*(p+2)的值是_______。

17.在VC环境下,编译C语言的源程序文件f1.cpp时出现的错误是__________。18.一个C语言函数由函数的首部和__________组成。

19.设float a,b,c;,函数调用语句f(((a,b),a+c),5);中参数的个数是

20.设int a[][3]={1,2,3,4,5,6};,其中缺省的行长度是

21、设int x=6;,执行语句x+=x-=x*x;后,x的值是

。 22.设int a=3,b=8,c=10;,表达式(a,b),(c,10)的值是

。 23.设int a,b;,与a+=5-b;等价的赋值语句是__________。

24.设int n=657;,执行语句printf(\"%d",n/10%10);后的输出结果是_______。

25、设int x=4,y=2;,表达式x

26、执行语句for(i=8;i>0;i--,);后,变量i的值是___________。

参考答案: 16.设char s[3]=\"AB\",*p=s;,则*(p+2)的值是____0___。

17.在VC环境下,编译C语言的源程序文件f1.cpp时出现的错误是____语法错误______。

18.一个C语言函数由函数的首部和___函数体______组成。19.设float a,b,c;,函数调用语句f(((a,b),a+c),5);中参数的个数是 2

20.设int a[][3]={1,2,3,4,5,6};,其中缺省的行长度是 2 。

21、设int x=6;,执行语句x+=x-=x*x;后,x的值是( -60 ) 22.设int a=3,b=8,c=10;,表达式(a,b),(c,10)的值是( 10 ) 23.设int a,b;,与a+=5-b;等价的赋值语句是_____a=a+(5-b)______。 24.设int n=657;,执行语句printf(\"%d",n/10%10);后的输出结果是__5___。

25、设int x=4,y=2;,表达式x

26、执行语句for(i=8;i>0;i--,);后,变量i的值是____0___。

[填空题]

27.计算1!+2!+3!的值并输出,请完善程序。#include int f(int n) {int c=1,i;

for(i=1;i

);

} void main() {int i, k=0;

for(i=1;i

; printf(\"

\\n\",k); }

参考答案:

27.计算1!+2!+3!的值并输出,请完善程序。

① c

② f(i) ;

③ %d

[填空题]

1.设float x,y,z;, 式是__________。

的C语言算术表达2.设int a,b;,与a*=5-b;等价的赋值语句是__________。 3.系统函数sqrt()应使用的文件包含命令是__________。 4.在C语言中,表示逻辑\"假”的值是__________。

5.设int n=123;,执行语句printf(\"%d",n/10%10);后的输出结果是__________。

6.在C语言中,将圆周率(PI=3.1415926)定义为常量的宏定义命令是__________。

7.一个C程序由一个或多个__________组成。8.在VC环境下,对一个C语言的源程序文件f1.cpp进行编译链接后生成的可行文件名是__________。

9.x=(a=1),(b=2),(a+b);执行该语句后,变量x的值为

。 10.(int)2.56被转换后为

11.代数表达式 言表达式是_______。

对应的C语12.设int a,b;,表达式(a=2)*(b=5)的值是__________。 13.设int x=4,y=2;,表达式x

14.执行语句for(i=10;i>0;i--,);后,变量i的值是___________。 15.若函数内定义变量的存储类别是static,该变量被称为___________静态变量。

参考答案:

1.____2*a(x+y)______。2.____a=a*(5-b)______。

3.__#include \"math.h\"或#include ________。 4.___0_______。 4.__a,97________。 5.___2_______。

6._#define PI 3.1415926___。 7.____函数______。 8.在VC环境下,对一个C语言的源程序文件f1.cpp进行编译链接后生成的可行文件名是___f1.exe_______。 9.

3 .10.

2 .

11._(-b+sqrt(b*b-4*a*c))/(2*a)______。

12.设int a,b;,表达式(a=2)*(b=5)的值是__10________。 13.设int x=4,y=2;,表达式x

14.执行语句for(i=10;i>0;i--,);后,变量i的值是______0_____。 15.若函数内定义变量的存储类别是static,该变量被称为___局部____静态变量。

[填空题]

29.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。void main( ) { int i,j;

int a[3][4],max, min, sum=0; for(i=0;i

for(j =0 ;j

); max=min=a[0][0]; for(i=0;i

(2)

;

if(a[i] [j]>max) max=a[i] [j]; if(a[i] [j]

printf(\"max=%d,min=%d,sum=%d\\n\", (3) );

}

参考答案:

29.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。(1)&a[i][j]

(2) sum+= a[i][j]

(3) max,min,sum

[填空题]

30.程序的功能是从键盘上任意输入一个正整数,求各位数字之和。请用模块化方法改写下列程序,功能不变。

#include \"stdio.h” void main() {int n;

intr,s=0;

scanf(\"(1)”,&n);

do{r=(2) ;

s+=r; n=n/10;

}while((3)); printf(\"%d”, s);

}

参考答案:

30.(1) n%10 (2) %d

(3) n>0

[填空题]

28.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 main()

{float x[1000],sum=0.0,ave,score; int n=0,i;

printf(\"Enter mark:\n”);scanf(\"%f”,& score); while(

① )

{sum_

_;x[n]= score ;n++; scanf(\"%f”,& score);}

ave=_ ③ __;

printf(\"Output:\n”);

printf(\"ave=%f\n”,ave);

for(i=0;i

参考答案:

28.

① score>=0

② =sum+ score ;

③ sum/n

程序分析 [论述题]

1.#include void main() { char op; int a=10,b=20;

for(op=\'a\';op

{case\'a\':printf(\"a+b=%d\\n\",a+b);break; case\'b\':printf(\"a-b=%d\\n\",a-b);break; case\'c\':printf(\"a*b=%d\\n\",a*b);break; case\'d\':printf(\"a/b=%d\\n\",a/b);break; } }

参考答案:

1. a+b=30 a*b=200

[论述题]

2.#include \"stdio.h\" void sort(int x[],int n)

{int i,j,k,t;

for(i=0;i

for(j=i+1;j

if(x[k]>x[j])k=j;

if(i!=k)

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

void main( )

{inta[10]={34,50,89,67,102,11,75,30,125,145},i;

sort(a,10);

for(i=0;i

}

参考答案: 2.11 30

34 50

67

75

89 102

125

145

[论述题]

6.#include \"stdio.h” fun(int x,int y,int z) { z=x*x+y*x;} Void main() { Int a=31; fun(5,2,a); printf(\"%d”,a); }

参考答案:

6.31

[论述题]

4.#include #include int f(int x) {int i;

for(i=2;i

if(x%i==0) return 0;

return 1;

}

void main()

{int a[10]={34,50,89,67,102,11,75,30,125,145}; int i,n=0,j,t;

for(i=0;i

if(f(a[i]))

printf(\"%d \",a[i]); }

参考答案:

4.89 6711 [论述题]

5、#include &stdio.h>

void main ()

{ int x ,*p;

x=55;

p=&x;

printf(\"%d,%u\\n\", x, *p) ;

*p=65;

printf(\"%d,%u\",x, *p) ;

}

参考答案: 5. 55,55

65,65 [论述题]

3.#include \"stdio.h\" int fun(int num) {int k=1;

do

{k*=num%10;

num/=10; }while(num);

return k; }

void main() {int x=651,y=123;

printf(\"%d,%d\",fun(x),fun(y)); }

参考答案:

3. 30 6

程序设计 [论述题] 1.从键盘上输入x,依据公式 算y的 值。要求有输入输出提示,计算结果精度为3。

计2.从键盘输入一个正整数n,若能同时被3和5整除,则输出\"Yes”,否则输出\"No”。 3.编一程序找出所有三位整数的\"水仙花数”并输出结果。其中\"水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一\"水仙花数”,因为153=13+53+33。

4.编写程序找出200以内能够被9整除的所有整数,并输出结果。5.利用循环结构输出下列图形。

A BBB CCCCC DDDDDD

6.依据下列计算公式,编写一个程序将输入的华氏温度转换为对应的摄氏温度。要求有输入输出提示,计算结果精度为2。

7.编一程序求:s=1+(1+2)+(1+2+3)+……+(1+2+3+……+10)

8.从键盘上输入三条边a、b和c,若能构成三角形则输出其面积,否则输出不能构成三

角形的提示信息\"No triangle”。 三角形面积计算公式 其中:s=(a+b+c)/2。 9.从键盘上任意输入一个正整数,求各位数字之和。 10.编写程序打印下列图形

11.从键盘输入一个正整数n,若能同时被2和3整除,则输出\"OK”,否则输出\"No”。

12.编写程序找出100以内能够被7整除的所有整数,并输出。

推荐第7篇:程序设计心得体会

程序设计心得体会

程序设计心得体会一:程序设计心得体会

在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。

虽然在上个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。

这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。

当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。

三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。

>程序设计心得体会二:程序设计心得体会>>(845字)

做了两周的课程设计,有很多的心得体会,更多的是同学之间的合作精神,这道课程设计花了我们一到两周的时间,几人合作,老师的帮忙才完成。我第一次完成这么完美的杰作,心理有一份别样的滋味,在设计过程中,我付出了很多,也懂得了只有付出才有回报。在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询资料,虚心向同学、老师请教,才一一得到了解决。我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。在设计过程中,合作精神必不可少。单凭一个人的力量是不能完成的,毕竟一个人学的很有限。每个人掌握的不同。我相信:态度决定一切,只有努力才有收获。

第一天上机时对如何编计数器程序一点头绪都没有,只是将从图书馆借来的关于如何制作图形看了一遍,大体上有了了解。

第二天我就着手画计数器图形,虽然有些人图形已画好,可我没有着急,毕竟别人花的时间比我多,为了使图形美观我不断运行、调试,直到自己满意为止。

接下来是星期五,说实话那天蛮难熬的,一天都泡在机房。眼睛有点吃不消,可没有办法,将来我们就靠计算机吃饭,再苦再累也要坚持。在已编好的程序上又加了一点精髓,怎样使字符闪烁,这也是我们几个人互相讨论的结果。

第二周,通过周末到网上查的资料,和参考资料又加入计数器的灵魂算法。

接下来几天再将程序不断完善、加工,计数器程序初露头角。

最后小结:程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法。可得最后结论。

在程序设计中,可认为也是一个社会,每个一同的社会成员都有不同的想法。程序设计学得的好坏要看你在社会中解决问题的能力的高低,所以不同的人编程的结果是不同的。在这个社会中,经验与想法最为重要。

>程序设计心得体会三:windows程序设计心得体会>>(1247字)

windows程序设计也就是基于微软的windows操作系统而进行的程序设计。(这是一句废话,但不要小看废话阿!真理往往就在其中)你有没有想过,为什么是基于windows操作系统呢?下面就来解答:windows应用程序需要利用由windows操作系统开放出来公用用程序使用的应用程序接口“API”(说道重点了)windows提供了上千种API函数供应用程序使用。

上面说了,windows程序其实就是在非逻辑的使用这些API函数,我这里提到了“非逻辑”三个字(这是本人的看法),这正是windows程序的精髓,这是一切windows程序运行的方式(可能严重了点)。非逻辑也就是指程序不是按照事先安排好的顺序来进行的,是根据用户的不同操作或者是其他某些原因一步一步进行的。这种运行方式就叫做“消息驱动”

简单一点来解释一下何谓消息驱动,就是指应用程序始终在等待(等待一词也许不他恰当,但可能好理解),它绝对不是在等待谁会给它爱(本人爱开玩笑请别见怪!)它是在等待用户或者是系统的消息(也就是命令),当接到消息后呢,它会把消息通过DispatchMeage(&msg)传递给窗口函数(窗口函数就是一个应用程序的核心)窗口函数就会对照事先由程序编写好的消息对照表调用对应的方法来处理消息。这样就完成一个消息的处理,接下来准备处理下一个消息。

你也许会问那不是无休止的运行下去了吗?当然不会,下面我用程序本身来说明这个问题:

//消息循环,通过此处来不断的取得消息。

while(GetMeage(&msg,NULL,0,0))

//消息进行一些转换

TranslateMeage(&msg);

//把消息传向窗口函数

DispatchMeage(&msg);

}

return msg.wParam;

就是这样了:当我们点击窗口右上角的小叉或者点击退出按钮时,windows就会自动在我们的消息队列中加入一条消息“WM_DESTROY”,这时呢窗口程序有这么一部分:

switch(meage)

{

//其它代码.........//case WM_DESTROY:

PostQuitMeage(0);

return 0;

相信一般的朋友都会明白吧,它的作用的就是在接收到WM_DESTROY时呢,通过调用PostQuitMeage(0)让windows在消息列表中呢在加入另一条消息“WM_QUIT\'.当GetMeage函数抓取到WM_QUIT时返回0,其余返回非0值,懂了吧,这下可以退出消息循环了。 这就是windows程序设计最基础的部分了,可以说是核心。

该说一些心得了,我认为学习windows程序设计不要基于某一部分,而要把握住其大局,要有整体观,有了整体观对windows程序设计有了一定的了解后在对其各部分下功夫(这下可不是照顾全局了,要静下心来细心的咀嚼,要不然你会咽到的。)这样才不会走火入魔(嘿嘿)就写到这吧,以后等我水平高些了再写(还早着呢,嘿嘿),希望我没白费功夫,也希望对你有用。

推荐第8篇:程序设计心得体会

程序设计心得体会

【收获及体会】

通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。

也许完成不了!两个星期前我们这样说,完成他没问题!一个星期前我们这样说,现在我们可以说:哈哈,完成啦!

刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。 虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!

做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊! 姜*

【收获及体会】

忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。

另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是small case。

在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。 从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。

总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会共11页,当前第1页1234567891011 薛** 【收获及体会】

自从记事以来就听过了电脑这个高科技,现在终于实现了自己的一个小小愿望成为了计算机系的一名学生,这学期我们学的c语言,以前就听过这个名字,打开书一看简直一窍不通,学好这门科简直就是一个挑战,课前课后都要把书啃一遍,要不然上课就跟不上,终于学期快结束了,我们有一个课程设计,在两个星期内,完成一个复杂的程序,我们的题目是做一个计算器,计算器从小就见过但让我自己设计一个出来就有点困难了。

第一天,我们都按照老师教的画图函数画计算器的外貌,但发现一个一个画实在是太烦琐,后来在老师的点拨下,我们采取了for语句,果然很快地画出来了,接下来的事就是计算了,用什么函数?怎么用?那个上午就坐那发呆,没有什么新突破,自性心严重受到打击,下午立马找了份材料到图书馆去研究,还专门找了位高手教我,研究了一个下午终于有眉目了,第三天我们成功地把计算功能搞定了,但还有闪烁的功能没有搞,这确实是一个问题,这时团结的力量得到了充分的体现,大家齐心协力,有的找资料,有的帮忙改错,有的&&俗话说:三个臭皮匠顶个诸葛亮。在大家的共同努力下,我们胜利了。

感谢刘金平老师的淳淳教诲,感谢同学的积极帮忙,我的程序终于顺利完成了,接下来的就是写报告收尾了,看着自己的劳动成果写起报告来特有劲,特有灵感。

很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记团结二字,它好比通向成功的铺路石,不可或缺。

人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧! 毛** 【收获及体会】

做了两周的课程设计,有很多的心得体会,更多的是同学之间的合作精神, 这道课程设计花了我们一到两周的时间,几人合作,老师的帮忙才完成。我第一次完成这么完美的杰作,心理有一份别样的滋味,在设计过程中,我付出了很多,也懂得了只有付出才有回报。在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询资料,虚心向同学、老师请教,才一一得到了解决。我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。在设计过程中,合作精神必不可少。单凭一个人的力量是不能完成的,毕竟一个人学的很有限。每个人掌握的不同。我相信:态度决定一切,只有努力才有收获。

第一天上机时对如何编计数器程序一点头绪都没有,只是将从图书馆借来的关于如何制作图形看了一遍,大体上有了了解。

第二天我就着手画计数器图形,虽然有些人图形已画好,可我没有着急,毕竟别人花的时间比我多,为了使图形美观我不断运行、调试,直到自己满意为止。

接下来是星期五,说实话那天蛮难熬的,一天都泡在机房。眼睛有点吃不消,可没有办法,将来我们就靠计算机吃饭,再苦再累也要坚持。在已编好的程序上又加了一点精髓,怎样使字符闪烁,这也是我们几个人互相讨论的结果。共11页,当前第2页1234567891011 第二周,通过周末到网上查的资料,和参考资料又加入计数器的灵魂算法。 接下来几天再将程序不断完善、加工,计数器程序初露头角。 最后小结:程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法。可得最后结论。

在程序设计中,可认为也是一个社会,每个一同的社会成员都有不同的想法。程序设计学得的好坏要看你在社会中解决问题的能力的高低,所以不同的人编程的结果是不同的。在这个社会中,经验与想法最为重要。 左** 【收获及体会】

c语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对c语言的了解,熟悉了其环境,更增强了对turbo c的使用技巧。

另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。

虽说捧着自己的成果很高兴,但成果背后总是付出很大的努力。

一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题.一个多礼拜的挣扎,绞尽脑汁终于带着麻木的手指和大脑脱出那堆泥潭。现在的心情是如鱼得水,干涩的眼睛前方是万里晴空。终于,所有的努力即将化成了一个个铅字,打印机滋滋的声音仿佛已经宛如天籁般悦耳地在耳畔响起。此时此刻,真想把一切抛上天空。高呼:出来了!我的成果即将出来了!,心里也在默默的感慨着:有志者,事竟成,破釜沉舟,百二秦关终归楚。苦心人,天不负,卧薪尝胆,三千越甲可吞吴。 ----刘** ★点滴感悟★

这两星期一直在做程序设计,今天终于完成了,心里别提有多兴奋。看着这两礼拜自己的劳动成果,这两个礼拜发生的种种历历在目。

还记得刚开始时,进展可以用一筹莫展来形容,当时真想放弃,可自身不轻易认输的性格支持着我。

同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。c语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。c语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们c语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。共11页,当前第3页1234567891011 心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。

高中的教育模式化倾向太强,整齐划一的教育模式使学校变成工厂,学生成为统一式模子加工出来的标准件。但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。我可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。并且,它无形中促进我们自主学习,使我们对c语言有了更深刻地了解,对程序设计有了更高的操作水平。 通过这次实践我明白:人是在与他人交往中认识世界,在交流中不断调整和修正自己的错误,从而使之更全面,更透彻。这套运算器的程序都由我们自己互相帮助,经过无数次的修改而成,老师只是辅导。我们知道老师不再是全知全能的权威,不再是知识的来源,他们只是学生的协作和促进者,只有我们才是学习的主人。

请允许我把这种课堂模式称作放水养鱼模式,它很自由,有利与培养我们的独立思考、求异思维,创新能力,使我们获得更多的知识和更强的能力。 我觉得这次程序设计课相当成功,学校应多多开展。 孙** 【收获及体会】

终于挨到了写收获和体会的时候了,也就意味着这个课程设计接近了尾声,的确令人兴奋,看着自己的劳动成果,应该是大家,全班同学的共同努力,才有现在的这个程序。

一个星期前的现在,当听到老师布置给我们的这个题目时,我们都蒙了,这么难的题目我们怎么会啊,我们都表示不满,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。

上网查资料是我们迈开的第一步,有类似的题目,可是不一样,我们失望而回,然后再是去图书馆查,肯定没有现成的,我们只能查相关的函数,经过两三天的努力,我们把框架弄出来了,可是还有计算和闪烁这两大难题摆在我们面前,真的是个难题,自从把框架弄好了以后就没有进展了,眼看一个星期快过去了,我们那个急啊,可是急也没有用。29个人总归可以搞定,这是我们可以坚持到现在的信念,终于工夫不负有心人,我们参照类似程序,改改和添添,终于大功告成,我们欢呼我们雀跃,终于相信我们自己是足够的伟大。

这一个多星期以来,我们坐在电脑旁,又累又热,可是当程序做出来了之后,那点累那点苦又算得了什么呢。

当现在敲打这些字的时候,满足感油然而生,如果有人问我物质和精神哪个更让人满足,那答案一定是精神,那种感觉只有自己体会了才能懂。

这可不是大话,原来一直认为这样一个程序我们是不能完成的,可是现在我会很自信的说:没有什么可以难倒我们。程序设计提升了我们的自信心,真的是受益匪浅啊。 这当然得感谢刘金平老师和全班同学的帮助。 我们不仅仅是尽力,更是竭尽全力。 这就是年少轻狂的我们什么都敢做,什么都不怕,就算跌倒了,再爬起来,没有什么大不了。 陆** 【收获及体会】

二十一世纪是计算机的世纪,是一个全新的世纪,计算机正逐步入侵我们的生活。刚开始接触计算机的时候感觉很新奇,那时觉得计算机很神秘,于是就产生了以后一定要熟练掌控计算机的念头。怀着这个愿望,我选择了计算机科学与技术为专业,有点兴奋又有点担忧,兴奋的是以后可以经常接触和了解计算机了,担忧的是我几乎没有任何基础,怕跟不上大家的步伐。有死党说我杞人忧天,结果证实我忧得不无道理。依然清楚地记得第一学期的上机课,每次上机老师都计分,所以经常手忙脚乱,用惨不忍睹来形容是最适合不过了。共11页,当前第4页1234567891011 紧张的一个学期过后,我们迎来了c语言的学习和一位风趣博学的老师。虽然刚开始学习c语言的时候大家都一筹莫展,但在老师的鼓励和教育下一步步地往前迈,很令人欣慰。在这之后的学习中仍然困难重重,然而坚持到底就是胜利这个坚定的信念激励着我们勇往直前。c语言课本的学习总算结束了,多么崎岖的一条学习之路。

大学的教育模式和中学有很大不同,从平常的课程安排和教学就可以知道,但是独立完成课程设计和写论文这种任务对我们来说无疑是一个很大的挑战。十七周开始进行课程设计,老师要求我们写一个计算器的程序,起初大家都被难倒了,然后开始一步步地摸索,先查找有关资料,画计算器的图形,写了好长一段程序才把图形搞定,可老师一看都不满意,要求我们用循环来做,师令如山,不得不听从,改吧,这一改又让大家死了好多脑细胞,感觉有点残忍。

完成了计算器的图形很有成就感,毕竟六月天坐在机子前不是令人愉快的事。接下来要进行计算器内部运算程序的设计,说实话,我根本就不知道要做,更不清楚如何着手,不是我妄自菲薄,独立完成这个程序设计根本就是不可能的事,可想而知只能寻求帮助了,但这个程序不是轻而易举就能完成的。有些积极的同学从网上搜索了好多有关这方面的资料,拼拼凑凑,进行了多次讨论,终于完成了这部分的设计,在同学的互相帮助下,大多数人都完成了最重要的一部分程序设计。

接下来就是用循环语句使按键上的数字有闪烁的功能,这个因为之前老师有过提点,所以相对简单一些。

完成了整个程序设计,这次课程设计就接近尾声了,不过最后的课程报告着实让我们苦恼了一两天。小小的抱怨一下应该没关系吧。

整个课程设计终于完成了,完成的好辛苦,好艰难,但还是顺利的完成了。我们付出了很多心血和汗水,但我认为我们得到的更多。如果没有同学们的互相帮助,这次课程设计就不会这么顺利,这种同舟共济的团队精神深深震撼了我,《礼记学记》上也有讲过:独学而无友,则孤漏而寡闻。同时有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。当然这次程序设计也让我看到了自己基础的薄弱。古人有诗云:路漫漫其修远兮,吾将上下而求索。从今天起我将不断继续求索,学习之路也好,人生之路也罢。 总之我受益匪浅。 戴* 【收获及体会】

c语言是一门计算机基础语言,通过这一学期的学习,对于它的一些特点和算法有了一定程度的了解,并能够做一些中等的题目,但并没有完全掌握。这两周的课程设计正是让我们巩固以前的知识并在此基础上能够有所突破。

这次做的是计算器,对于我来说有一定困难,因为我的c语言基础并不是很过硬,所以在第一周我的程序并没有太大的进展,除了一个框架外并无其他任何功能,每天别人在绞尽脑汁想如何做程序的时候,我都会看着自己写的框架发呆,或者做一些与课程无关的事情,那一个礼拜过的蛮无聊,蛮郁闷的,心情也不是很好。一个礼拜的煎熬终于过去了,终于有了让我喘息的机会。周末的时候,拿出了网上找到的计算器的程序,静下心来认真的研究别人的算法,终于初步看懂了那些在我看来深奥的一塌糊涂的语言。第二周又要上机,不过这次情况有所改善,毕竟有了一点小头绪了,当然趁热打铁,把那个程序中有用的部分copy了一下,就变成了自己的计算器程序啦。运行了一下也成功了。虽然程序有的是copy的,外形也不如别人的美观,可其中包含了我的心血,应该并不算盗用吧。共11页,当前第5页1234567891011 c语言是一门较难的语言,我感觉学的蛮累的,尤其是这两周的课程设计,我更体会到了这一点,虽然我们是在同一条起跑线上学习的,可每个人的能力都是不同的,有人掌握的好,也有人掌握的不是很好。而我属于后者,因此,在做设计的时候,单单靠我自己的能力是不行的,需要靠大家的帮忙,需要运用集体的智慧,需要大家团结合作。所以,通过两个礼拜的努力和同学的帮忙,我终于做出了比较传统的计算器,在此过程中,我体会到了失败后的失落,同时也体会到了成功后的喜悦,也许在以后的学习生活中我会更加体会到这一点。 吴鋆绩

【收获及体会】

通过这段时间的课程设计,我认识到c语言是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。

刚开始做这个程序的时候,感到完全无从下手,觉得让我完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献:谭浩强著.c程序设计(第二版).北京:清华大学出版社,1999;徐金梧、杨德斌、徐科著.turboc实用大全.北京:北京机械工业出版社,1996。之后便开始着手写程序,写完运行时有很多问题,如输入的数据总是覆盖之前的数据,在做按键的闪烁时,闪烁后的按键不能变回原来的颜色等,后来花了很长时间才解决了这些问题。我的程序有许多值得改进的地方,如可以增加一些函数:cos、sin、ln、sqrt等;在画界面矩形的时候可以使用for语句。

总的来说,这次程序设计让我获益匪浅,对c语言也有了进一步的认识:c语言功能高、表达能力强、使用灵活方便、目标程序效率高。

c语言是在国内外广泛使用的一种计算机语言,我相信除了以上优点之外还有许多,希望能在以后的学习中有更深入的认识。 周** 【收获及体会】

我有一个很不好的习惯,对新事物只有三分钟热度。刚开始接触c语言的时候我觉得这东西很好玩,特别是它能编写一些简单的游戏程序,我很喜欢玩游戏,但是随着时间的推移,特别是上c语言的理论课,说实话,真的很无聊啊!就这样,我渐渐也对她失去了兴趣。上课也不听了。

直到刘老师说我们要做一个c程序的简单设计---计算器。我当时一听就傻了,我可是什么有用的东西也没学到啊!我怎么可以做出这么牛叉的东西出来呢?我肯定要挂了!但是也没办法啊,别人都做,我总不能在机房里面傻玩吧?就这样我开始借课代表的笔记本来看了,其实刘老师已经把一些关键的函数告诉了我们,我们只要把它们有机的结合起来,再加一些小细节就行了。我看了几遍笔记后就基本上把界面搞定了,当然期间我问了几位同学,也寻求过刘老师的帮助,受益良多。后面的程序有点小难,当然是对我这种菜鸟来说的。但是经过同学的细心耐心的讲解,我总算也能在黑暗的道路上曲折前进。直到整个程序写完的那一刻我才松了一可气。终于完成了,想想几天来的认真和辛苦,值啊!毕竟也算是做出来得啊。那种成就感很强啊!

通过这次的设计课我明白了编程员的伟大很不容易。也明白了集体的智慧是伟大的。还有刘老师他总能在我们走投无路的时候雪中送炭!他,亦师亦友!共11页,当前第6页1234567891011 王**

当得知要编一计算器的程序时,觉得不是很难,但后来仔细一想似乎要满足老师的要求并不是那么容易,越想越觉得复杂.当老师给我们上了一节指导课后,我看到了希望.再经过两个星期的仔细构想,我感到胜利在望.于是兴孜饽饽得坐进了机房,手指在键盘上不停的跳跃,不一会就一部分写好了,真的蛮兴奋的.于是又开始第二部分的编写,又好了,当我按下alt+f4+回车时,没得到我预想的结果,有点意外.于是移动光标上下扫描,好象没发现任何语法错误,我猜可能是结构的顺序出了问题,再仔细的将程序看了遍,想了想.结果发现第二部分没被运行.接下来我对疹下药,果然有用,这人真是喜啊!在接下来的几节课我完成了余下的部分,当然不可能一切非常顺利,其中的曲曲折折是很难说清楚的.当写完了这程序我深深地感到写程序是一件很有趣的事,给人喜悦,给人快感,给人满足.其中的感觉真是难以用言语来表达,即使是一个小小的程序运行成功那也要比打游戏打死一个大bo要爽快!总之这一切只有身临其境才知道.其次还对同学之间的合作精神深感赞叹,同学之间的互相帮助精神在这时体现的淋漓浸渍。 蒋*

通过这次的上机练习我还是有那么一点点的小收获

首先 由于平时没有太多的上机实验,我很多的东西都不会弄,有时看别人弄了几次都不会,真是太悲哀了

第二 就是tc并不象我想的那么简单,当时我为了一个简单的闪要问了n多的人 但是到了最后当我会做了才发现原来写程序还是蛮好玩的 第三 一开始的时候我一做不出来就在那边发呆或是打游戏,但是当我每运行出一步时,总感觉自己也蛮厉害的,这时就有往下面做的信心了 最后 还是蛮后悔上课没有认真听,如果上天能给我一个重来的机会,我估计我还是会比以前认真的,以后学习也一定要认真 徐**

刚开始学习c语言的时候觉得他很无聊,但是随着不断的学习还是越来越感兴趣了。

通过这次的程序设计,我学到了很多,首先就是能够更加熟练的使用和深入的了解c语言这门通用的计算机语言,还有就是可以自己编写程序了,还是很有成就感的。同时还让我们学会同学之间的相互合作,共同完成一个任务。

c语言是一门深奥的语言,我从一开始的懵懂到现在的有点理解可以说和老师的教导分不开的。虽然俗语说师傅领进门,修行靠自身。但是师傅的作用还是不可取代的。刘老师不仅是我们的老师,还是我们的朋友。和他在一起的时候没有那种隔阂感,这也是我们能好好学习的基础吧。不过有时开小差是不可避免的,但也只是偶尔啦。

光书本的知识的确不行,还是要理论联系实践才行。因此不断的练习是必要的,上机实践更重要。有时理论是对的,但是实践起来就不行了啊。所以通过这次的程序编写让我对c语言产生更大的兴趣了,我相信以后会越来越好的。 钱**

在大学以前我从来就没见过c语言,这东西对我来说是十分陌生的。刚开始学c语言,感到每天都在云里雾里飘着,感觉对这个东西真的好难入手。但学了一段时间后逐渐对c语言有了认识,并能进行简单操作。现在我们又要开始进行课程设计,我的天空突然彻底black了,阿门!不过我不会放弃,前辈们都说:坚持到底就是胜利!,恩!我也是这么认为的。万事开头难,只要我找到方法,我一定可以的,嘿,嘿,嘿!不过我们都知道,我们是一定会成功的,因为我们有我们的太阳,至于是谁呢,我就不说了,大家都知道了,是吧!刚开始编程时,那个error啊,多得已经无法用多来形容了,那是很多啊!于是我开始了漫长而繁琐的地毯式搜查,我累的地暗天黑都已无所谓,那个疯狂的人,是我,是我,还是我!海阔凭鱼跃,天高任我飞!我曾经花了整整一个上午的时间来弄一个麻烦的闪烁,那做出来后的感觉,就能用一个字来形容,那就是爽,人生最幸福的事也就莫过于此,这小小的成功使我的信心十足,我看到希望了,来西牙!共11页,当前第7页1234567891011 于是,我开始了更为艰巨的任务,那就是把整体结构弄出来,我为此都白了少年头。在我们整个宿舍的团结合作下,终于把框架弄出来了。接下来就应该改错误了,随着一个个错误的纠正,终于一个程序浮出了水面!!!我们成功了,高兴啊,真高兴!通过这次课程设计,我对c语言更有兴趣了,我相信以后我一定赶上我们的太阳的。 许**

在老师第一次说,我们的课程设计是一个具有界面操作的计算机时,说实话当时的确没有底,似乎有一些害怕,应为从没有与c语言中的图形函数接触过,但经过老师的初步介绍图形函数,了解一部分,更了解了之所以给我们下我们不怎么熟悉的部分,是应为让我们能够在其课程设计时充分体会到自己的自学能力,并发挥它,以及在设计过程中的团队作用,提高自己解决问题能力.在设计程序时也增长了自己的自己翻阅有关文献,加强了自己实践能力.从接触c语言,到达了解c语言,是一个过程,是自身学习的过程,熟话说,师傅领进门,修行靠自身.在编写过程中也认知了自身的不足,这些有的是上课时小漏动,也有是自己容易出错的地方,在这放面的认知,只有实打时的多练习,也希望老师能在以后的学习生活中多多的能给予指导,这样我们也可以少走一些弯路,c语言只是人生中的学习的一个小插曲,但让我认识到要在学习中学习,不断进步.最后,谢谢老师在学习中对我的指导.盛**

计数器是windows的一个附加功能,给使用者带来极大的方便。通过近两个星期的课程设计,我完成了一个简单计数器的程序。虽然其中不乏他人的帮助,但我自己还是收获颇多。 首先,我学会了利用函数画矩形,椭圆;用for语言做循环;如何输出一个多位数,怎样在闪完之后键上的数字不消失;

其次,如何在矩形和椭圆中填充颜色,以及如何定义键的闪动; 再次,如何添加运算功能。

c语言是在国内外广泛使用的一种计算机语言 。语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

编写程序需要牢固的理论基础,同时,上机实践也是至关重要的一环。想要学好c语言,一定要培养自己认真、塌实、细心的性格。 最后,感谢刘老师对我们的教导。 张*

在刚听到这个课程设计的题目时,我顿感那时一个无法实现的难题,就光在tc中画图,对我来说就难于上青天了,毕竟那个我一无所知;老师上课对于课程设计的讲解还能听懂,不过理论与实践之间是有鸿沟的。

看着笔记上机,发现始终不能通过编译,改了又改,还是error,就在我焦头烂额的时候,身边一阵清风袭过,熟悉的身影出现在眼前,赶紧举手求助,老师过来了,只改动了一点点地方,程序就ok了。我寒!!

这人怎么就这么大的差距呢??几时我才有他那种水平啊!

开始的一周就这样毫无头绪的度过了,没有老师的帮忙修改,根本没办法做下去,我不可能总依靠老师,得自己想办法的。

后来从图书馆和网上找到了一些资料,从中收获不少,同时在同学的帮助下,逐渐学会了对图形的操作。后面几天逐渐完成了计算器的基本界面和功能设计。这其中老师的帮助也是不可或缺的。共11页,当前第8页1234567891011 在实践过程中不但提高了对已知知识的认知度,更令我们掌握了不少新知识。知道了要学的还有很多。在设计程序时也增长了自己的自己翻阅有关文献,加强了自己实践能力.alt+r按下后,千万不要在意error有多少,平静的对待,错误才是提高的前提。

在上机操作过程中,得到了不少同学的帮助,集体的力量的确很大!但在必要的时候还是得依靠自己!

两周的时间,挺快!喜怒哀乐,喧闹后,一切归于平静。

当写完了后,喜悦,快感,满足,安慰;凝冻的空气,闷热的天,流动的汗,平静中我继续前进,该学的还有很多很多&& 最后,还得要谢谢刘金平老师及同学在这过程中对我的指导帮助。 钱** 在编写计算器这个程序过程中,遇到不少麻烦!一开始,就碰到了没有学过的图形函数,虽然课上老师反复重复着:画图不难的,it’s so easy!但是当自己实际操作时,感觉并不是那么容易。课上笔记拿来上机,发现始终不能通过编译~改了又改,还是error,那时真的要多郁闷有多郁闷但老师过来,只改动了一点点地方,程序就ok了,说明一个问题:上课记错东西了~汗

接下来的输入,显示,闪烁,都是不小的难题。翻阅了一本又一本参考书,也借鉴了一个类似的计算器程序,并在同学的帮助下,才最终搞定了一个简单的计算器程序! 现在才发现原来编个程序这么复杂 通过一个学期对c语言的学习,逐渐对写程序有了兴趣,从刚开始的编译出现n多个error,然后根据提示,可以自己把错误改出来,心里有了一点小小的成就感。不仅如此,刘老师上课的风格,也给我留下了深刻的印象,让我也学到了c程序以外的东西 董** 完成了这次计算器的程序设计,我收获很多,也体会很多,要学好一门学科,没有刻苦钻研的精神是不行的,只有在不断的尝试中,不断经历失败,然后又不断的尝试才能获得成功。 要完成一个优秀的程序,必须熟练掌握各种语句的特点及用法,要学会举一反三,充分实现c程序的灵活性。在平时的学习实践中,要不断开动脑筋,活学活用。要发扬团体合作的精神,互帮互助,共同进步。善于发问,善于思考。

刚开始接触c程序,就觉得有一种似曾相识的感觉,因为以前学过vb。说实话,我对编程挺感兴趣,一个程序编写完成运行成功之后的喜悦真的让人难忘,就像次的课程设计,一开始画图,计算器有许多数字键,要一个一个方框的画很麻烦,我就试着能不能找到一个简单的方法能一下子画完。我联想到了二维数组,每一个方框就好象数组中的每一个元素。于是我就试着用两个for嵌套的方法,经过反复尝试,终于成功了,你说的没错,当时的感觉真的比游戏打通关了还要好。 在写程序的过程中,我又碰到了一些难题,比如按键的闪烁问题,按键不能直接运行的问题,不能连续运行问题,还有数字不能成串显示问题。其中有些是问你的,有些是我自己解决的。比如连续运行,闪烁做好后,我发现每次运行只能按一个数字,按第二个数字的时候就跳出了,后来我想到了在switch之前加for的办法,这样就可以用循环的办法达到我想达到的目的。至于数字成串问题,其实我是不成功的,因为计算器数字显示从显示条的右边开始,而我的是从左边开始。我在switch前的for前给b附值为0,然后在最后一个case后写b++,再把每一个case中数字输出的横坐标都写成140+b*10,这样,我就达到了成串输出的目的。共11页,当前第9页1234567891011 要学好c程序,光有知识是不够的,还得有经验,上机操作的经验,只有大脑中有了经验,在碰到问题的时候才有许多解决的方案,然后才能去尝试。 好象差不多500字了吧?不过我还想说些东西。题目只写收获与体会,也没有强调是做程序设计的收获与体会哦,那我就写了。

为什么偏偏让我重写啊?不就是在书上抄了一段嘛,你也没说不能抄书啊,我能想到抄书就说明我对书了解的比别人多,其他人的大发感慨也不见得比我抄书有用吧?写这个收获和体会就真的那么重要吗?你如果仔细看了程序,你会发现有些人的程序基本上是一样的,就坐标改了一下,这样算不算要重新做啊?当然,我也有抄的,计算部分是抄的,真的不会,时间又来不及了,我周四要回家了。我也不对你发牢骚了,一句话,做人难,不可能把每一个人都安排的服服帖帖。一个人有人喜欢的同时必有人讨厌,当然,我并不是说你,我不讨厌你,我挺喜欢你的教学方式。

就到这里吧,好象太多了,也浪费你时间看,不写了。 朱*

学习c程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识

这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。记得刚开始学这门课的时候,对这门课充满了希望,自己有信心学好这门课,但是经过一段时间的学习之后。才发现程序设计并不好学,它既要你有很强的领悟能力,还要你课后的努力,也许是自己之前太有信心学好这门课了吧,中间遇到了很大的瓶颈,一度陷入无休止的烦恼中编程序时没有一次是成功的,总会遇到很多的error,改完一个又有一个,哎!这时我会想到一句古话天将降大人于斯人也,必先苦其心志,劳其筋骨,饿其体肤,也许以后会有些许光明吧。之后,随着时间的推移,慢慢掌握了这门课学习的一些窍门,学习起来也比刚开始的时候好了一点,至于编程序吗还是有错误,但比以前少了,呵呵,总让我看到希望了。这次的课程设计要求我们编一个简易计算器,刚开始的时候我一头雾水,丈二摸不着头脑,不知从哪里下手,后来经过老师和同学的帮助,从最简单的编框开始,慢慢的到最关键的算法,这其中经历了很多弯路,也犯过了很多错误,但是还是一一攻克了,好比红军长征两万五千里终于到达了终点。看到最后自己编写出来的计算器感到格外的高兴,暂且不说计算器的功能方面吧,但毕竟是自己写的第一个正式的程序吗,感到格外的高兴。

在编写程序的过程中受到了其他同学的指点,也许在某些程序方面会和有的同学想类似,另外老师也帮助了很多,一个好的学生离不开一个好老师吗,虽说我不算一个好学生,但是老师在我编程序过程中也起到了很大的作用,就像刘老师说的一句话一样革命尚未成功,同志仍需努力,我们在c语言这门课上还会继续走下去,以后还会经常碰到,我会努力的。 沈*

【收获及体会】

当我揉着干涩的眼睛,吃力的看者显示屏,我已经是不耐烦了,而且我含情默默注视着的竟然是那可恶的源程序。我的身体在流汗,我的心在滴血,六月的天写程序,苦不堪言也......共11页,当前第10页1234567891011 显示是残酷的,人情是冷暖的,c程序还是要交的,我不得不继续抗战于闷热的机房内,继续我的夙命。以前叫嚷着中国应试教育的不好,还不是一路走过来了,我只有无奈,这c程序也是如此,认了。

微风试图抚平我的烦躁,那它在做梦。此刻的我,正如98年的时候乔丹最后时刻持球,哪平静的了啊。等我的论文完成了,老爷子的球也进了。 言归正转,这个程序的完成过程是跌跌撞撞,曲折的。即便没有红军两万五,也有个一万两千五。不过,咱值!你说为什么?咱学到东西呗。

查书,查资料,请教同学的过程就是我提高的过程,久违的认真又体会了一次。

真正的收获更多是思想上的,让我认识程序的复杂,自己的微不足道,学无止境头一次认识的这么深刻,察觉自己的不足。在这次编程中,同学帮了我很多,我一个人是不能完成的。以后的学习生活真的要踏踏实实,自己的计算机生涯必定是坎坷的,信心受挫了。 【随想】相比之下,原来篮球是那么好学。 陆*共11页,当前第11页1234567891011

推荐第9篇:程序设计心得体会

【收获及体会】

通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。

“也许完成不了!”两个星期前我们这样说,“完成他没问题!”一个星期前我们这样说,现在我们可以说:“哈哈,完成啦”!

刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。

虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!

做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!

——姜*

【收获及体会】

忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。

另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是small case。

在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。

从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。

总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会

——薛**

【收获及体会】

自从记事以来就听过了电脑这个高科技,现在终于实现了自己的一个小小愿望——成为了计算机系的一名学生,这学期我们学的c语言,以前就听过这个名字,打开书一看简直一窍不通,学好这门科简直就是一个挑战,课前课后都要把书啃一遍,要不然上课就跟不上,终于学期快结束了,我们有一个课程设计,在两个星期内,完成一个复杂的程序,我们的题目是做一个计算器,计算器从小就见过但让我自己设计一个出来就有点困难了。

第一天,我们都按照老师教的画图函数画计算器的外貌,但发现一个一个画实在是太烦琐,后来在老师的点拨下,我们采取了for语句,果然很快地画出来了,接下来的事就是计算了,用什么函数?怎么用?那个上午就坐那发呆,没有什么新突破,自性心严重受到打击,下午立马找了份材料到图书馆去研究,还专门找了位高手教我,研究了一个下午终于有眉目了,第三天我们成功地把计算功能搞定了,但还有闪烁的功能没有搞,这确实是一个问题,这时团结的力量得到了充分的体现,大家齐心协力,有的找资料,有的帮忙改错,有的……俗话说:“三个臭皮匠顶个诸葛亮。”在大家的共同努力下,我们胜利了。

感谢刘金平老师的淳淳教诲,感谢同学的积极帮忙,我的程序终于顺利完成了,接下来的就是写报告收尾了,看着自己的劳动成果写起报告来特有劲,特有灵感。

很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。

人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!

——毛**

【收获及体会】

做了两周的课程设计,有很多的心得体会,更多的是同学之间的合作精神, 这道课程设计花了我们一到两周的时间,几人合作,老师的帮忙才完成。我第一次完成这么完美的杰作,心理有一份别样的滋味,在设计过程中,我付出了很多,也懂得了只有付出才有回报。在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询资料,虚心向同学、老师请教,才一一得到了解决。我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。在设计过程中,合作精神必不可少。单凭一个人的力量是不能完成的,毕竟一个人学的很有限。每个人掌握的不同。我相信:态度决定一切,只有努力才有收获。

第一天上机时对如何编计数器程序一点头绪都没有,只是将从图书馆借来的关于如何制作图形看了一遍,大体上有了了解。

第二天我就着手画计数器图形,虽然有些人图形已画好,可我没有着急,毕竟别人花的时间比我多,为了使图形美观我不断运行、调试,直到自己满意为止。

接下来是星期五,说实话那天蛮难熬的,一天都泡在机房。眼睛有点吃不消,可没有办法,将来我们就靠计算机吃饭,再苦再累也要坚持。在已编好的程序上又加了一点精髓,怎样使字符闪烁,这也是我们几个人互相讨论的结果。

第二周,通过周末到网上查的资料,和参考资料又加入计数器的灵魂算法。

接下来几天再将程序不断完善、加工,计数器程序初露头角。

最后小结:程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法。可得最后结论。

在程序设计中,可认为也是一个社会,每个一同的社会成员都有不同的想法。程序设计学得的好坏要看你在社会中解决问题的能力的高低,所以不同的人编程的结果是不同的。在这个社会中,经验与想法最为重要。

—左**

【收获及体会】

c语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对c语言的了解,熟悉了其环境,更增强了对turbo c的使用技巧。

另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。

虽说捧着自己的成果很高兴,但成果背后总是付出很大的努力。

一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题.一个多礼拜的挣扎,绞尽脑汁终于带着麻木的手指和大脑脱出那堆“泥潭”。现在的心情是如鱼得水,干涩的眼睛前方是万里晴空。终于,所有的努力即将化成了一个个铅字,打印机“滋滋”的声音仿佛已经宛如天籁般悦耳地在耳畔响起。此时此刻,真想把一切抛上天空。高呼:“出来了!我的成果即将出来了!”,心里也在默默的感慨着:“有志者,事竟成,破釜沉舟,百二秦关终归楚。苦心人,天不负,卧薪尝胆,三千越甲可吞吴。”

----刘**

★点滴感悟★

这两星期一直在做程序设计,今天终于完成了,心里别提有多兴奋。看着这两礼拜自己的劳动成果,这两个礼拜发生的种种历历在目。

还记得刚开始时,进展可以用一筹莫展来形容,当时真想放弃,可自身不轻易认输的性格支持着我。

同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。c语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。c语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们c语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。

紧张的一个学期过后,我们迎来了c语言的学习和一位风趣博学的老师。虽然刚开始学习c语言的时候大家都一筹莫展,但在老师的鼓励和教育下一步步地往前迈,很令人欣慰。在这之后的学习中仍然困难重重,然而“坚持到底就是胜利”这个坚定的信念激励着我们勇往直前。c语言课本的学习总算结束了,多么崎岖的一条学习之路。

大学的教育模式和中学有很大不同,从平常的课程安排和教学就可以知道,但是独立完成课程设计和写论文这种任务对我们来说无疑是一个很大的挑战。十七周开始进行课程设计,老师要求我们写一个计算器的程序,起初大家都被难倒了,然后开始一步步地摸索,先查找有关资料,画计算器的图形,写了好长一段程序才把图形搞定,可老师一看都不满意,要求我们用循环来做,“师”令如山,不得不听从,改吧,这一改又让大家死了好多脑细胞,感觉有点残忍。

完成了计算器的图形很有成就感,毕竟六月天坐在机子前不是令人愉快的事。接下来要进行计算器内部运算程序的设计,说实话,我根本就不知道要做,更不清楚如何着手,不是我妄自菲薄,独立完成这个程序设计根本就是不可能的事,可想而知只能寻求帮助了,但这个程序不是轻而易举就能完成的。有些积极的同学从网上搜索了好多有关这方面的资料,拼拼凑凑,进行了多次讨论,终于完成了这部分的设计,在同学的互相帮助下,大多数人都完成了最重要的一部分程序设计。

接下来就是用循环语句使按键上的数字有闪烁的功能,这个因为之前老师有过提点,所以相对简单一些。

完成了整个程序设计,这次课程设计就接近尾声了,不过最后的课程报告着实让我们苦恼了一两天。小小的抱怨一下应该没关系吧。

整个课程设计终于完成了,完成的好辛苦,好艰难,但还是顺利的完成了。我们付出了很多心血和汗水,但我认为我们得到的更多。如果没有同学们的互相帮助,这次课程设计就不会这么顺利,这种同舟共济的团队精神深深震撼了我,《礼记学记》上也有讲过:“独学而无友,则孤漏而寡闻”。同时有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。当然这次程序设计也让我看到了自己基础的薄弱。古人有诗云:“路漫漫其修远兮,吾将上下而求索”。从今天起我将不断继续求索,学习之路也好,人生之路也罢。

总之我受益匪浅。

——戴*

【收获及体会】

c语言是一门计算机基础语言,通过这一学期的学习,对于它的一些特点和算法有了一定程度的了解,并能够做一些中等的题目,但并没有完全掌握。这两周的课程设计正是让我们巩固以前的知识并在此基础上能够有所突破。

这次做的是计算器,对于我来说有一定困难,因为我的c语言基础并不是很过硬,所以在第一周我的程序并没有太大的进展,除了一个框架外并无其他任何功能,每天别人在绞尽脑汁想如何做程序的时候,我都会看着自己写的框架发呆,或者做一些与课程无关的事情,那一个礼拜过的蛮无聊,蛮郁闷的,心情也不是很好。一个礼拜的煎熬终于过去了,终于有了让我喘息的机会。周末的时候,拿出了网上找到的计算器的程序,静下心来认真的研究别人的算法,终于初步看懂了那些在我看来深奥的一塌糊涂的语言。第二周又要上机,不过这次情况有所改善,毕竟有了一点小头绪了,当然趁热打铁,把那个程序中有用的部分copy了一下,就变成了自己的计算器程序啦。运行了一下也成功了。虽然程序有的是copy的,外形也不如别人的美观,可其中包含了我的心血,应该并不算盗用吧。

c语言是一门较难的语言,我感觉学的蛮累的,尤其是这两周的课程设计,我更体会到了这一点,虽然我们是在同一条起跑线上学习的,可每个人的能力都是不同的,有人掌握的好,也有人掌握的不是很好。而我属于后者,因此,在做设计的时候,单单靠我自己的能力是不行的,需要靠大家的帮忙,需要运用集体的智慧,需要大家团结合作。所以,通过两个礼拜的努力和同学的帮忙,我终于做出了比较传统的计算器,在此过程中,我体会到了失败后的失落,同时也体会到了成功后的喜悦,也许在以后的学习生活中我会更加体会到这一点。

——吴鋆绩

【收获及体会】

通过这段时间的课程设计,我认识到c语言是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。

刚开始做这个程序的时候,感到完全无从下手,觉得让我完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献:谭浩强著.c程序设计(第二版).北京:清华大学出版社,1999;徐金梧、杨德斌、徐科著.turboc实用大全.北京:北京机械工业出版社,1996。之后便开始着手写程序,写完运行时有很多问题,如输入的数据总是覆盖之前的数据,在做按键的闪烁时,闪烁后的按键不能变回原来的颜色等,后来花了很长时间才解决了这些问题。我的程序有许多值得改进的地方,如可以增加一些函数:cos、sin、ln、sqrt等;在画界面矩形的时候可以使用for语句。

总的来说,这次程序设计让我获益匪浅,对c语言也有了进一步的认识:c语言功能高、表达能力强、使用灵活方便、目标程序效率高。

c语言是在国内外广泛使用的一种计算机语言,我相信除了以上优点之外还有许多,希望能在以后的学习中有更深入的认识。

——周**

【收获及体会】

我有一个很不好的习惯,对新事物只有三分钟热度。刚开始接触c语言的时候我觉得这东西很好玩,特别是它能编写一些简单的游戏程序,我很喜欢玩游戏,但是随着时间的推移,特别是上c语言的理论课,说实话,真的很无聊啊!就这样,我渐渐也对“她”失去了兴趣。上课也不听了。

直到刘老师说我们要做一个c程序的简单设计---计算器。我当时一听就傻了,我可是什么有用的东西也没学到啊!我怎么可以做出这么牛叉的东西出来呢?我肯定要挂了!但是也没办法啊,别人都做,我总不能在机房里面傻玩吧?就这样我开始借课代表的笔记本来看了,其实刘老师已经把一些关键的函数告诉了我们,我们只要把它们有机的结合起来,再加一些小细节就行了。我看了几遍笔记后就基本上把界面搞定了,当然期间我问了几位同学,也寻求过刘老师的帮助,受益良多。后面的程序有点小难,当然是对我这种菜鸟来说的。但是经过同学的细心耐心的讲解,我总算也能在黑暗的道路上曲折前进。直到整个程序写完的那一刻我才松了一可气。终于完成了,想想几天来的认真和辛苦,值啊!毕竟也算是做出来得啊。那种成就感很强啊!

通过这次的设计课我明白了编程员的伟大很不容易。也明白了集体的智慧是伟大的。还有刘老师他总能在我们走投无路的时候雪中送炭!他,亦师亦友!

——王**

当得知要编一计算器的程序时,觉得不是很难,但后来仔细一想似乎要满足老师的要求并不是那么容易,越想越觉得复杂.当老师给我们上了一节指导课后,我看到了希望.再经过两个星期的仔细构想,我感到胜利在望.于是兴孜饽饽得坐进了机房,手指在键盘上不停的跳跃,不一会就一部分写好了,真的蛮兴奋的.于是又开始第二部分的编写,又好了,当我按下alt+f4+回车时,没得到我预想的结果,有点意外.于是移动光标上下扫描,好象没发现任何语法错误,我猜可能是结构的顺序出了问题,再仔细的将程序看了遍,想了想.结果发现第二部分没被运行.接下来我对疹下药,果然有用,这人真是喜啊!在接下来的几节课我完成了余下的部分,当然不可能一切非常顺利,其中的曲曲折折是很难说清楚的.

当写完了这程序我深深地感到写程序是一件很有趣的事,给人喜悦,给人快感,给人满足.其中的感觉真是难以用言语来表达,即使是一个小小的程序运行成功那也要比打游戏打死一个大bo要爽快!总之这一切只有身临其境才知道.

其次还对同学之间的合作精神深感赞叹,同学之间的互相帮助精神在这时体现的淋漓浸渍。

——蒋*

通过这次的上机练习我还是有那么一点点的小收获

首先 由于平时没有太多的上机实验,我很多的东西都不会弄,有时看别人弄了几次都不会,真是太悲哀了

第二 就是tc并不象我想的那么简单,当时我为了一个简单的闪要问了n多的人

但是到了最后当我会做了才发现原来写程序还是蛮好玩的

第三 一开始的时候我一做不出来就在那边发呆或是打游戏,但是当我每运行出一步时,总感觉自己也蛮厉害的,这时就有往下面做的信心了

最后 还是蛮后悔上课没有认真听,如果上天能给我一个重来的机会,我估计我还是会比以前认真的,以后学习也一定要认真

——徐**

刚开始学习c语言的时候觉得他很无聊,但是随着不断的学习还是越来越感兴趣了。

通过这次的程序设计,我学到了很多,首先就是能够更加熟练的使用和深入的了解c语言这门通用的计算机语言,还有就是可以自己编写程序了,还是很有成就感的。同时还让我们学会同学之间的相互合作,共同完成一个任务。

c语言是一门深奥的语言,我从一开始的懵懂到现在的有点理解可以说和老师的教导分不开的。虽然俗语说师傅领进门,修行靠自身。但是师傅的作用还是不可取代的。刘老师不仅是我们的老师,还是我们的朋友。和他在一起的时候没有那种隔阂感,这也是我们能好好学习的基础吧。不过有时开小差是不可避免的,但也只是偶尔啦。

光书本的知识的确不行,还是要理论联系实践才行。因此不断的练习是必要的,上机实践更重要。有时理论是对的,但是实践起来就不行了啊。所以通过这次的程序编写让我对c语言产生更大的兴趣了,我相信以后会越来越好的。

——钱**

在大学以前我从来就没见过c语言,这东西对我来说是十分陌生的。刚开始学c语言,感到每天都在云里雾里飘着,感觉对这个东西真的好难入手。但学了一段时间后逐渐对c语言有了认识,并能进行简单操作。现在我们又要开始进行课程设计,我的天空突然彻底black了,阿门!不过我不会放弃,前辈们都说:“坚持到底就是胜利!”,恩!我也是这么认为的。万事开头难,只要我找到方法,我一定可以的,嘿,嘿,嘿!不过我们都知道,我们是一定会成功的,因为我们有我们的太阳,至于是谁呢,我就不说了,大家都知道了,是吧!刚开始编程时,那个“error”啊,多得已经无法用“多”来形容了,那是“很多”啊!于是我开始了漫长而繁琐的地毯式搜查,我累的地暗天黑都已无所谓,那个疯狂的人,是我,是我,还是我!海阔凭鱼跃,天高任我飞!我曾经花了整整一个上午的时间来弄一个麻烦的闪烁,那做出来后的感觉,就能用一个字来形容,那就是“爽”,人生最幸福的事也就莫过于此,这小小的成功使我的信心十足,我看到希望了,来西牙!

在实践过程中不但提高了对已知知识的认知度,更令我们掌握了不少新知识。知道了要学的还有很多。在设计程序时也增长了自己的自己翻阅有关文献,加强了自己实践能力.

alt+r按下后,千万不要在意“error”有多少,平静的对待,错误才是提高的前提。

在上机操作过程中,得到了不少同学的帮助,集体的力量的确很大!但在必要的时候还是得依靠自己!

两周的时间,挺快!喜怒哀乐,喧闹后,一切归于平静。

当写完了后,喜悦,快感,满足,安慰;凝冻的空气,闷热的天,流动的汗,平静中我继续前进,该学的还有很多很多……

最后,还得要谢谢刘金平老师及同学在这过程中对我的指导帮助。

——钱**

在编写计算器这个程序过程中,遇到不少麻烦!一开始,就碰到了没有学过的图形函数,虽然课上老师反复重复着:“画图不难的,it’s so easy!”但是当自己实际操作时,感觉并不是那么容易。课上笔记拿来上机,发现始终不能通过编译~改了又改,还是“error”,那时真的要多郁闷有多郁闷——但老师过来,只改动了一点点地方,程序就ok了,说明一个问题:上课记错东西了~汗——

接下来的输入,显示,闪烁,都是不小的难题。翻阅了一本又一本参考书,也借鉴了一个类似的计算器程序,并在同学的帮助下,才最终搞定了一个简单的计算器程序!

现在才发现原来编个程序这么复杂——

通过一个学期对c语言的学习,逐渐对写程序有了兴趣,从刚开始的编译出现n多个error,然后根据提示,可以自己把错误改出来,心里有了一点小小的成就感。不仅如此,刘老师上课的风格,也给我留下了深刻的印象,让我也学到了c程序以外的东西——

——董**

完成了这次计算器的程序设计,我收获很多,也体会很多,要学好一门学科,没有刻苦钻研的精神是不行的,只有在不断的尝试中,不断经历失败,然后又不断的尝试才能获得成功。

要完成一个优秀的程序,必须熟练掌握各种语句的特点及用法,要学会举一反三,充分实现c程序的灵活性。在平时的学习实践中,要不断开动脑筋,活学活用。要发扬团体合作的精神,互帮互助,共同进步。善于发问,善于思考。

刚开始接触c程序,就觉得有一种似曾相识的感觉,因为以前学过vb。说实话,我对编程挺感兴趣,一个程序编写完成运行成功之后的喜悦真的让人难忘,就像次的课程设计,一开始画图,计算器有许多数字键,要一个一个方框的画很麻烦,我就试着能不能找到一个简单的方法能一下子画完。我联想到了二维数组,每一个方框就好象数组中的每一个元素。于是我就试着用两个for嵌套的方法,经过反复尝试,终于成功了,你说的没错,当时的感觉真的比游戏打通关了还要好。

在写程序的过程中,我又碰到了一些难题,比如按键的闪烁问题,按键不能直接运行的问题,不能连续运行问题,还有数字不能成串显示问题。其中有些是问你的,有些是我自己解决的。比如连续运行,闪烁做好后,我发现每次运行只能按一个数字,按第二个数字的时候就跳出了,后来我想到了在switch之前加for的办法,这样就可以用循环的办法达到我想达到的目的。至于数字成串问题,其实我是不成功的,因为计算器数字显示从显示条的右边开始,而我的是从左边开始。我在switch前的for前给b附值为0,然后在最后一个case后写b++,再把每一个case中数字输出的横坐标都写成“140+b*10”,这样,我就达到了成串输出的目的。

要学好c程序,光有知识是不够的,还得有经验,上机操作的经验,只有大脑中有了经验,在碰到问题的时候才有许多解决的方案,然后才能去尝试。

好象差不多500字了吧?不过我还想说些东西。题目只写收获与体会,也没有强调是做程序设计的收获与体会哦,那我就写了。

为什么偏偏让我重写啊?不就是在书上抄了一段嘛,你也没说不能抄书啊,我能想到抄书就说明我对书了解的比别人多,其他人的大发感慨也不见得比我抄书有用吧?写这个收获和体会就真的那么重要吗?你如果仔细看了程序,你会发现有些人的程序基本上是一样的,就坐标改了一下,这样算不算要重新做啊?当然,我也有抄的,计算部分是抄的,真的不会,时间又来不及了,我周四要回家了。我也不对你发牢骚了,一句话,做人难,不可能把每一个人都安排的服服帖帖。一个人有人喜欢的同时必有人讨厌,当然,我并不是说你,我不讨厌你,我挺喜欢你的教学方式。

就到这里吧,好象太多了,也浪费你时间看,不写了。

——朱*

学习c程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识

这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。记得刚开始学这门课的时候,对这门课充满了希望,自己有信心学好这门课,但是经过一段时间的学习之后。才发现程序设计并不好学,它既要你有很强的领悟能力,还要你课后的努力,也许是自己之前太有信心学好这门课了吧,中间遇到了很大的瓶颈,一度陷入无休止的烦恼中编程序时没有一次是成功的,总会遇到很多的error,改完一个又有一个,哎!这时我会想到一句古话“天将降大人于斯人也,必先苦其心志,劳其筋骨,饿其体肤”,也许以后会有些许光明吧。之后,随着时间的推移,慢慢掌握了这门课学习的一些窍门,学习起来也比刚开始的时候好了一点,至于编程序吗还是有错误,但比以前少了,呵呵,总让我看到希望了。这次的课程设计要求我们编一个简易计算器,刚开始的时候我一头雾水,丈二摸不着头脑,不知从哪里下手,后来经过老师和同学的帮助,从最简单的编框开始,慢慢的到最关键的算法,这其中经历了很多弯路,也犯过了很多错误,但是还是一一攻克了,好比红军长征两万五千里终于到达了终点。看到最后自己编写出来的计算器感到格外的高兴,暂且不说计算器的功能方面吧,但毕竟是自己写的第一个正式的程序吗,感到格外的高兴。

在编写程序的过程中受到了其他同学的指点,也许在某些程序方面会和有的同学想类似,另外老师也帮助了很多,一个好的学生离不开一个好老师吗,虽说我不算一个好学生,但是老师在我编程序过程中也起到了很大的作用,就像刘老师说的一句话一样“革命尚未成功,同志仍需努力”,我们在c语言这门课上还会继续走下去,以后还会经常碰到,我会努力的。

——沈*

【收获及体会】

当我揉着干涩的眼睛,吃力的看者显示屏,我已经是不耐烦了,而且我含情默默注视着的竟然是那可恶的源程序。我的身体在流汗,我的心在滴血,六月的天写程序,苦不堪言也......

显示是残酷的,人情是冷暖的,c程序还是要交的,我不得不继续抗战于闷热的机房内,继续我的夙命。以前叫嚷着中国应试教育的不好,还不是一路走过来了,我只有无奈,这c程序也是如此,认了。

微风试图抚平我的烦躁,那它在做梦。此刻的我,正如98年的时候乔丹最后时刻持球,哪平静的了啊。等我的论文完成了,老爷子的球也进了。

言归正转,这个程序的完成过程是跌跌撞撞,曲折的。即便没有红军两万五,也有个一万两千五。不过,咱值!你说为什么?咱学到东西呗。

查书,查资料,请教同学的过程就是我提高的过程,久违的认真又体会了一次。

真正的收获更多是思想上的,让我认识程序的复杂,自己的微不足道,“学无止境”头一次认识的这么深刻,察觉自己的不足。在这次编程中,同学帮了我很多,我一个人是不能完成的。以后的学习生活真的要踏踏实实,自己的计算机生涯必定是坎坷的,信心受挫了。

【随想】相比之下,原来篮球是那么好学。

——陆*

推荐第10篇:c语言程序设计基础

《c语言程序设计基础》重修试卷

一、选择题(2’*20=40’)

1、c程序由构成。

A.函数B.命令C.程序D.表达式

2、以下选项中合法的变量名是

A.#y2B.a

3、设有说明:int x;float y;double z;则表达式x+z-y值的数据类型为

A.floatB.charC.intD.double

4、在我们使用的turboC中,一个int型数据在内存中占个字节

A.0B.1C.2D.4

5、若有定义:int a=8,b=5,c;执行语句c=a\\b+0.4后c=

A.1.4B.1C.2.0D.2

6、在c语言中,char型数据在内存中的存储形式是

A.补码B.ASSCIIC.原码D.反码

7、若运行时给变量x输入

第11篇:C语言程序设计报告

C语言程序设计报告

(二)

第一章:使用数组和指针统计成绩

1.设计题目:假设给定班级各科考试平均成绩的原始资料如下

数学:75 物理:80 外语:83 政治:85 体育:86 人数:30

要求统计出全班学期总平均成绩以及得分最低的科目和该科目的成绩。要求的输出结果如下:

全班各科平均成绩如下: 数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 统计结果如下: 人数:30

平均成绩:81

最低分数科目的成绩:75 最低分数的科目:数学

2.设计要求

对存放原始数据的要求如下:

(1)、使用整形数组a数学、物理、外语、政治、体育、人数、平均成绩、最低科目成绩 ;

(2)、使用字符串数name存放数学、物理、外语、政治、体育、最低分数的科目

(3)、使用字符串数组MeanLow存放人数、平均成绩、最低分数科目的成绩、最低分数的科目。

实现本设计功能的方法很多,这里给出4种难易成度不同的要求,以便加深对数组和指针知识的理解。

1.使用数组实现

使用数组和指针数组实现。 2..使用分配的内存实现

要求将数组a的内容存入到分配的内存中,使用指针实现对内存的存取和计算。

3.将数组内容全部存入内存

为字符分配内存,并将字符数组的内容存入所分配的内存中,使用指针来实现。

源程序:

int pingjun( int *x); int zuidi(int *x);

int kemu(int *y,int n); #include int zuidi(int *x) {int t=x[0],i; for(i=0;ix[i]) t=x[i];} return t; }

int kemu(int *y,int n) {int i, t=y[0],m=0; for(i=1;i

{if(t>y[i]) {t=y[i];m++;} } return m;} int pingjun( int *x) {int sum=0 ,i,aver; for(i=0;i

void main()

{int a[9]={75,80,83,85,86,30},i,x;

char *name[5]={\"数学\",\"物理\",\"外语\",\"政治\",\"体育\"};

char *meanlow[4]={\"人数\",\"平均成绩\",\"最低分数科目成绩\",\"最低分科目\"};

printf(\"原始信息如下:\\n\"); for(i=0;i

printf(\"%s:%d\\n\",name[i],a[i]); for(i=0;i

printf(\"%s:%d\\n\",meanlow[i],a[i+5]); printf(\"全班各科平均成绩如下:\\n\"); for(i=0;i

printf(\"%s:%d\\n\",name[i],a[i]); printf(\"统计结果如下:\\n\");

printf(\"%s:%d\\n\",meanlow[0],a[5]);

printf(\"%s:%d\\n\",meanlow[1],pingjun(a)); printf(\"%s:%d\\n\",meanlow[2],zuidi(a)); x=kemu(a,5);

printf(\"%s:%s\\n\",meanlow[3],name[x]); }

第12篇:E语言程序设计基础

总第3课时备课

第 3课时

课题:E语言程序设计基础

教学内容:青岛版八年级下册信息技术第 13页至第 17 页

一、教学分析

【教学内容分】 本课是在第1课学习用E语言程序解决高斯问题的基础上,继续学习用E

语言的基础知识,包括数据类型、常量、变量等以及赋值的方法 。

【教学对象分析】学生对程序运行的结果或者说是对程序能够解决的问题比较感兴趣,但对

设计程序所要设计的组件,编写代码比较陌生,无从下手,还没有形成一个编写程序的思想。

【教学目标】

知识和技能目标:了解E语言的基础知识,包括基本数据类型、常量、变量、运算符、命

令等;能够正确定义常量和变量及其数据类型;掌握赋值、输入、输出的方法;熟悉程序设计中的运算符与数学运算符号的区别

过程与方法目标: 通过学生的自主探究,组内交流及教师的耐心指导完成任务情感态度与价值观目标:了解E语言的基础知识,熟悉E语言编程代码的输入以及数据类

型的定义与使用,尝试通过设计小程序来解决问题,培养学习E语言的兴趣和信心。

【教学重点】 定义常量和变量及其数据类型;赋值、输入、输出的方法。

【教学难点】 正确定义常量和变量及其数据类型;赋值、输入、输出的方法;熟悉程序设计

中的运算符与数学运算符号的区别

【教学方法】 自主探究、合作交流

【教学资源】

硬件资源:计算机、电子教室软件资源:E语言 软件

【评价方法】

评价量规:优秀、良好、一般评价方式: 自我评价与小组评价

二、教学过程

教学进程

教师活动

学生活动

设计意图

修订

复习导入: 回顾上节课所学知识并回答 巩固所学知识让学生回顾解决高斯问有利于本课的学

导入新课 题的大体步骤习

引入:使用E语言编程解决1+2等于几 探究任务一:启动E语同学们参照课本完成组件的锻炼学生的动手

探究任务言,并在程序窗体中设计设计并思考 操作能力,并培养一如需组件: 学生在操作中思

考方法 要求:想一想能不能不用

让同学们在掌握组内交流 课本中给的方法,你有其学生思考并交流是否可行

方法的基础上勇 他方法吗 于探索 完成任务让学生脱离课本进行操

加深记忆

一 作

学生观察并识记

探究任务定义变量、并了解全局变学生参照课本正确定义所需

二量和局部变量以及常量

的区别 变量

检查任务有的同学不会输入变量

二的完成行,或者是不能删除多余

情况的行 探究任务

编写代码并运行程序 学生自主完成

发挥学生的主观三

能动性

并检查完成情况

要求同学们在有限的时

巩固本课知识 限进作业 间内完成课本第17页实同学们认真完成

并让学生进行知 践与创新部分

识的迁移

发挥学生的主观师生评价 先让组内进行交流评价 同学们观察,并进行评价发表能力性,让学生参

老师随机抽取每个组内自己的观点或建议 与评价,激发学生

一个作品进行演示 的兴趣

巩固本课的知识归纳总结 师让生归纳,师进行补充学生归纳

要点

或强调

第13篇:C语言程序设计心得

C语言教学心得交流

通过本次教师发展在线的C语程培训中,我受益匪浅,几位教授的精彩演讲,让我找到了自己的不足和日后教学中的改革方向和内容。同时,也让我感觉到了,有今天各位教授的良好教学效果,这其中包含了他们的艰辛、背后的大量付出和无私奉献。

我是一直从事C类语言的教学工作,对C语言的教学已有5年教龄,在这几年的教学过程中,我们也一直在寻找好的教学方法和新的教学理念。通过本次学习,我总结要教好《C语言程序设计》这门课,最基本要把握好以下几个方面:

(一)要重视实践环节,上机调试成绩非常重要。

学习一门语言,就是要按照它的语法来编程。要编程,当然就要上机操作来验证你程序的正确性。所以上机非常重要,通过执行你所写的程序,完成你所写程序的目标,最终达到你的目的。而且通过执行程序,你会发现程序中的错误,从而使你了解你所学知识中的不足,同时,要学会根据编译时提示的错误来改正程序中发生的错误,以便下次不会再犯同样的错误。

(二)基本语法学习虽然枯草乏味,但是它相当于高楼大厦的一砖一瓦,一定要下硬功夫让学生掌握熟练。

C语言的语法部分。这部分内容是学好C语言的基础,只有学好了这些语法,才会写程序,看程序。所以对一个初学者来说,这部分内容是非常重要的,所以要扎实地熟悉每一个语法,并能根据这些语法来编程。

(三)学习要抓住重点,难点部分要多讲、多学、多练。

通过这次学习使得我对C语言的重点,难点,以及易出错的地方把握的更精准了。当然,这只是针对我个人而言。在C语言学习过程,重点就是数组,指针,以及结构体了。难点也是它们了,不过数组和结构体还是挺简单,所以在此主要就指针方面谈谈自己的看法。

下面谈谈通过这次学习,结合我们学校的教学情况,打算对该课程的教学进行如下几个方面的改革:

(一)理论教学内容的组织

C语言的重点知识包括:结构化程序设计方法、流程图的组织、三种程序设计结构、三种基本数据类型和三种自定义数据类型;难点包括:结构程序设计方法、算法的分析、流程图的组织与设计、函数、指针等。

根据知识内容和每年的新学时安排,我们将理论教学内容分为授课内容和自学内容两大模块。

(1)授课内容

C语言的授课内容分为两阶段:①基础准备阶段 这部分内容确保学生“实用、够用”,主要包括三种基本数据类型(只要求掌握常用的int,float,char);三种常用运算符及其表达式(赋值、算术、逻辑(包括关系));三种程序设计结构(顺序、选择、循环)。②实训项目驱动阶段 这部分内容主要是“实训实战”,主要包括数组、函数、指针和结构体。通过第一阶段的学习,学生已经具备了一些程序设计的基础知识,在这一阶段将通过一个实训项目的完成来熟悉主要内容,同时巩固第一阶段的成果。

(2)自学内容

课本中的内容上课没重点介绍或者说就是没提到的,划为自学内容。但这些内容,我们并不是在课堂要求学生回去自学:要求过高,规矩过多,这样效果不佳。而是让学生在实验中发现问题后,带着问题去学习,去找答案。

例:整型 我们只介绍int基本类型,当学生想计算n!时,学生测试5!=120时,他可能会去测试20!、50!,这时,存放阶乘的变量Factorial再定义为int,结果就是0了,这时问题就来了,他就会去寻找正确的处理方法(long int)。

(二)实验教学的安排与设计

教学改革方案确定后,我们对本课程实验教学上从多方面进行了教学更新。我们考虑到学生处于了解计算机语言及编程的初级阶段,有许多最基础的内容有待掌握,所以本课程的实验教学不太适合完全以项目开发的形式进行,注重的是加强模块化实训。

(1)上好第一节实验课

我们常说“上好第一节课”,那么第一节实验节的重要性也不言而喻。这节课对培养学生的学习兴趣、增强学生的学习信心、锻炼学生的自主学习等多方面影响很大。

第一次实验项目是—熟悉Turbo C的运行环境,主要是掌握一些在TC中的一些键盘操作方式。一般是教师给学生提供程序代码(三个),但我们在学生不知情的情况下,给学生两个有语法错误的和一个正确的程序。这样,当学生运行正确的程序时,知道计算机可以帮我们处理问题,原来程序就是这样写的;当学生运行错误的程序,首先他会诧异(老师给的程序原来是错的),于是要求他们自己修改,尤其是有时一个致命错误导致的10多个errors,被学生修改后,没有了errors或所剩无几,这时学生表现的很兴奋、很有成就感,从而加强了本课程的学习兴趣和信心。

(2)分两阶段进行 实验内容与理论教学内容相互应,在基础准备阶段,这方面教学方法上主要是加强操练。通过各种大小程序、多重训练和一个问题的多种解法来加强语法知识点的掌握和训练,开阔学生编程的思路,掌握编程基础。同时,在这过程中我们严格把关,让学生课后认真准备,每次进实验室时,应有写好的完整代码,上机调试,发现问题同时解决问题,要求认真完成实验内容,并在课后书写实验报告。鼓励学生多写程序,要加强实践环节,首先要从量上有个划分。在实训项目驱动阶段。本阶段实训项目的设计非常重要,原则是既要使学生有切入点能够动手又要使各章的内容之间有联系点。

(三)案例教学法

C语言的教学,教师一般受传统应试教育的影响,狠抓理论考试,忽略了程序设计能力的培养,把授课重点放在程序设计语言的基本语法的讲授和掌握上,所选的编程实例大多用于语法规则的验证和说明,仅从程序设计语言的使用这个单一的角度进行教学,而使得大多数学生在学完本课程后,“吃不透、用不活”,表现为学生在程序调试时,对程序中出现的逻辑错误经常不知所措,在开发较大的应用程序时,不知道如何入手。

采用案例教学法,以程序设计为主线,以编程应用为驱动,通过案例和问题引出教材内容,重点讲解程序设计的思想和方法,穿插讲解相关的语言知识。使教学效果既有深度又有广度,学生实际动手能力大为增强。

以上是我个人结合我院C语言程序设计的教学情况,自己总结了几点看法和一些改革措施,拿出来和大家一起分享,请大家多提宝贵意见。通过这次学习,我将会灵活运用几位教授的教学经验,根据我院的教学对象,调整一些上课方法和措施,望能更好的提高教学质量。

第14篇:《C语言程序设计》教案.

《C语言程序设计》教案

使用教材:谭浩强,《C程序设计》,清华大学出版社,2005年7月第3版

任课教师:王琪

授课班级:信息科学与技术学院06(1)

授课时间:06年秋学期

课时安排:第一学期每周5课时,其中上机每周2课时,讲授至第9章。第二学期每周4课时,其中上机每周2课时,讲授至第13章。

盐城师范学院信息科学与技术学院

第15篇:c语言程序设计复习

第一章C语言概述

一、选择题:

1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束

2、在 C 语言中,每个语句必须以( D )结束。 A.回车符 B.冒号 C.逗号 D.分号

3、C 语言规定:在一个源程序中,main函数的位置( C )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后

4、一个C 语言程序是由( B )。

A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成

5、下列说法中错误的是( D )。

A.主函数可以分为两个部分:主函数说明部分和主函数体 B.主函数可以调用任何非主函数的其他函数 C.任何非主函数可以调用其他任何非主函数 D.程序可以从任何非主函数开始执行

6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A.生成可执行目标文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件

二、填空题:

1、C 语言只有 32 个关键字和 9 种控制语句。

2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \\* 符号作为开始标记,以 */ 符号作为结束标记。

4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。

6、C 语言的标识符只能由字母、数字和 下划线 三种字符组成。

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的 C 语言浮点型常量是( C )。 A.160.B.0.12 C.2e4.2 D.0.0

2、以下选项中,( D )是不正确的 C 语言字符型常量。 A.\'a\' B.\'\\x41\' C.\'\\101\' D.\"a\"

3、在 C 语言中,字符型数据在计算机内存中,以字符的( C )形式存储。 A.原码 B.反码 C.ASCII 码 D.BCD码

4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。 x=(i=4,j=16,k=32) A.4 B.16 C.32 D.52

5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。 A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算

6、若有代数式 ,则不正确的C语言表达式是( C )。 A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3

7、表达式!x||a==b 等效于( D )。

A.!((x||a)==b) B.!(x||y)==b C.!(x||(a==b)) D.(!x)||(a==b)

8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A)。 A.0,0 B.0,1 C.1,0 D.1,1

9、设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。 A.3 B.0 C.9 D.-12

10、在以下一组运算符中,优先级最低的运算符是( D )。 A.* B.!= C.+ D.=

11、设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是( B )。 A.6 B.12 C.15 D.表达式出错

12、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C )。 A.1 B.2 C.2.0 D.2.5

13、sizeof (double)的结果值是( A )。 A.8 B.4 C.2 D.出错

14、设a=1,b=2,c=3,d=4,则表达式:a

15、设a 为整型变量,不能正确表达数学关系:1010 && a=15)

16、设 f是实型变量,下列表达式中不是逗号表达式的是( D )。 A.f= 3.2, 1.0 B.f>0, f0 D.f=(3.2, 1.0)

17、表达式18/4*sqrt(4.0)/8值的数据类型是( C )。 A.int B.float C.double D.不确定

18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句 C2=’A’+’6’-‘3’;后c2中的值是( A )。 A.D B.68 C.不确定的值 D.C

19、以下用户标识符中,合法的是( B )。 A.int B.nit C.123 D.a+b 20、C 语言中,要求运算对象只能为整数的运算符是( A )。 A.% B./ C.>D.*

21、若有说明语句:char c=\'\\72\';则变量c在内存占用的字节数是( A )。 A.1 B.2 C.3 D.4

22、字符串\"ABC\"在内存占用的字节数是( B )。 A.3 B.4 C.6 D.8

23、要为字符型变量 a赋初值,下列语句中哪一个是正确的( B )。 A.char a=\"3\"; B.char a=’3’; C.char a=%; D.char a=*;

24、下列不正确的转义字符是( C )。 A.\\ B.\\\' C.074 D.\\0

二、填空题:

1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。

3、设 c=\'w\',a=1,b=2,d=-5, 则表达式 \'x\'+1>c, \'y\'!=c+2, -a-5*b

4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。

5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。

6、求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。

7、求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3 。

8、数学式a/(b*c)的 C 语言表达式 a/b/c 。

三、编程题:

1、设长方形的高为 1.5,宽为 2.3,编程求该长方形的周长和面积。

2、编写一个程序,将大写字母 A转换为小写字母 a。 1. main() {float x=1.5,y=2.3;printf(“area is %6.2f\\n”,x*y);} 2.main() {char c=’A’;printf(“%d”,c+32);}

顺序结构答案

一、单项选择题 AADAB CCBBD

二、程序改错题 1.正确的程序为 # include \"stdio.h\" main( ) { char c ; getchar(c); putchar(\'\\007\') ; /*鸣笛*/ putchar( ); } 2. 正确的程序为 main( ) { int a,b,s,l; scanf(\"%d,%d\",&a,&b); s=a*b; l=2*(a+b); printf(\"l=%d,s=%d\\n\", l ,s); }

三、写出程序运行结果 1. 68 2.x=4 y=11

四、编程题 1.main( ) { int a,b,c,sum; float ave; scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=sum/3.0; printf(“sum=%d,ave=%.2f\\n”,sum,ave); }

五、选做题 1.void main( ) { float a,b,temp; printf(\"input a and b:\"); scanf(\"%d,%d\",&a ,&b); temp = a; a = b; b = temp; printf(\"a=%d , b=%d\\n\", a , b); } 选择结构答案

一、单项选择题

1.B 2.A 3.D 4.C 5.D 6.B 7.C

二、填空题 1.5 5 4 5 5 4 3 3 4 2.4 0 3.VeryGood Good VeryGood Fail Pa Pa

三、阅读程序,写出运行结果 1.10, 4, 3; -1 3 6 1

四、程序设计题 1.main( ) { int a,b,x,y; scanf(“%d %d”,&a,&b); x=a*a+b*b; if(x>100) {y=x/100; printf(“%d”,y);} else printf(“%d”,a+b); }

2.if结构 main() { float t;char c; printf(“input score,max as 100:\\n”); scanf(“%f”,&t); if(t>=90) ch=’A’; else if(t>=80) ch=’B’; else if(t>=70) ch=’C’; else if(t>=60) ch=’D’; else ch=’E’;

printf(“Grade=%d\\n”,ch); } switch结构 main() {float t;char c; printf(“input score,max as 100:\\n”); scanf(“%f”,&t); switch(t/10) { case 10: case 9: ch=’A’;break; case 8: ch=’B’;break; case 7: ch=’C’;break; case 6: ch=’D’;break; case 5: ch=’E’; } printf(“Grade=%d\\n”,ch); }

五、选做题 1.main() { int a,b,c,t; scanf(“%d%d%d”,&a,&b,&c); if(a

2.switch((s>0)&&(s=3)&&(s1)||(s>8)) { case 1: x=3; break; case 0: x=1; break; } } break; case 0: x=0; break; }

循环结构答案

一、选择题

1.B 2.A 3.A 4.C 5.A 6.B 7.A 8.C 9.D 10.D

二、填空题 1.x1 x1/2-2 2.ch=getchar() ch>=’A’&&ch

三、阅读下列程序,写出程序运行的输出结果 1.852 2.8921 3.5 4.SUM=2468

四、程序改错 1.main() { int i=200,n=0; /*n用来记录每行已打印数的个数*/ while(i

2).main( ) { int i,s=0,t=1; for(i=1;i

五、程序设计题 1.main() {int x,g,s,b; for(x=100;x

2.main() { int i,s=0,f=1; for(i=2;i

六、选做题 1.main() { float s=0,m=2.0,n=1.0,p; int i; for(i=1;i

2.#include main( ) { int i,j,k,s=1; for(i=1;i=0) { printf(“%2d %2d %2d”,i,j,k); s=s+1; if(s%5==0) printf(“\\n”); } } }

第7章 数组习题 A卷

1.单项选择题 (1) int a[4]={5,3,8,9};其中 a[3]的值为( )。D A.5 B.3 C.8 D.9 (2) 以下 4 个字符串函数中,( )所在的头文件与其他 3 个不同。A A.gets B.strcpy C.strlen D.strcmp (3) 以下 4 个数组定义中,( )是错误的。 D A.int a[7]; B.#define N 5 long b[N]; C.char c[5]; D.int n,d[n]; (4) 对字符数组进行初始化,( )形式是错误。 B A.char c1[ ]={\'1\', \'2\', \'3\'}; B.char c2[ ]=123; C.char c3[ ]={ \'1\', \'2\', \'3\', \'\\0\'}; D.char c4[ ]=\"123\"; (5) 在数组中,数组名表示( )。 A A.数组第 1 个元素的首地址 B.数组第 2 个元素的首地址 C.数组所有元素的首地址 D.数组最后 1 个元素的首地址

(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。 B int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; A.1,12 B.0,11 C.1,11 D.0,12 (7) 若有以下说明,则数值为 4 的表达式是( )。 D int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ; A.a[g-c] B.a[4] C.a[\'d\'-\'c\'] D.a[\'d\'-c] (8) 设有定义:char s[12] = \"string\" ; 则printf( \"%d\\n\",strlen(s)); 的输出是( )。 A A.6 B.7 C.11 D.12 (9) 设有定义:char s[12] = \"string\"; 则printf(\"%d\\n \", sizeof(s)); 的输出是( )。 D A.6 B.7 C.11 D.12 (10) 合法的数组定义是( )。 A A.char a[ ]= \"string \" ; B.int a[5] ={0,1,2,3,4,5}; C.char a= \"string \" ; D.char a[ ]={0,1,2,3,4,5} (11) 合法的数组定义是( )。 D A.int a[3][ ]={0,1,2,3,4,5}; B.int a[ ][3] ={0,1,2,3,4}; C.int a[2][3]={0,1,2,3,4,5,6}; D.int a[2][3]={0,1,2,3,4,5,}; (12) 下列语句中,正确的是 ( )。D A.char a[3][ ]={\'abc\', \'1\'}; B.char a[ ][3] ={\'abc\', \'1\'}; C.char a[3][ ]={\'a\', \"1\"}; D.char a[ ][3] ={ \"a\", \"1\"}; (13) 下列定义的字符数组中,输出 printf(\"%s\\n\", str[2]) ;的输出是( )。 C static str[3][20] ={ \"basic\", \"foxpro\", \"windows\"}; A.basic B.foxpro C.windows D.输出语句出错

(14) 下列各语句定义了数组,其中哪一个是不正确的( )。 C A.char a[3][10]={\"China\",\"American\",\"Asia\"}; B.int x[2][2]={1,2,3,4}; C.float x[2][ ]={1,2,4,6,8,10}; D.int m[][3]={1,2,3,4,5,6}; (15) 数组定义为 int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( )。 B A.a[3][2] B.a[2][1] C.a[1][2] D.a[2][3] (16) 下面的程序中哪一行有错误( )。D #include main() { float array[5]={0.0}; //第A行 int i; for(i=0;i

(17) 下面哪一项是不正确的字符串赋值或赋初值的方式( )。A.char *str; str=\"string\"; B.char str[7]={\'s\',\'t\',\'r\',\'i\',\'n\',\'g\'}; C.char str1[10];str1=\"string\"; D.char str1[]=\"string\",str2[]=\"12345678\"; (18) 若有以下说明和语句,则输出结果是哪一项( )。C (strlen(s)为求字符串s的长度的函数) char s[12]=\"a book!\"; printf(\"%d\",strlen(s)); A.12 B.8 C.7 D.11 (19) 若有以下说明和语句,则输出结果是( )。B (strlen(s)为求字符串s的长度的函数) char sp[]=\"\\t\\v0will\\n\"; printf(\"%d\",strlen(sp)); A.14 B.3 C.9 D.字符串中有非法字符 (20) 若有以下说明和语句,则输出结果是( )。 C char str[]=\"\"c:\\abc.dat\"\";

C printf(\"%s\",str); A.字符串中有非法字符 B.\"c:\\abc.dat\" C.\"c:\\abc.dat\" D.\"c:\\abc.dat\"

2.填空题

(1) C 语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,下标必须是正整数、0、或者 。但在程序执行过程中,不检查元素下标是否 。 数据类型,0,符号常量,越界

(2) C 语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 常量,不能对它进行赋值运算。连续,数组名,地址

(3) 执行 static int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] = ,a[1][2] = 。 0,6 (4) 设有定义语句 static int a[3][4] ={{1},{2},{3}}; 则 a[1][0]值为 ,a[1][1] 值为 ,a[2][1]的值为 。 2,0,0 (5) 如定义语句为 char a[ ]= \"windows\",b[ ]= \"95\";,语句 printf(\"%s\",strcat(a,b));的输出结果为 。Windows95 (6) 根据以下说明,写出正确的说明语句:men是一个有10个整型元素的数组。 step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20.6。 grid是一个二维数组,共有4行,10列整型元素。

int mesh[10]; float step[4] = {1.9, -2.33, 0, 20.6}; int grid[4][10]; (7) array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,正确的说明语句为:

。该数组下标的取值范围是从___到___(从小到大)。用scanf函数输入数组的第二个元素表示为: 。用赋值语句把39存入第一个元素表示为: 。 把第六个和第四个元素之和存入第一个元素表示为: 。

int array[10] = {9,4,7,49,32,-5}; 0 9 scanf(\"%d\",&array[1]); array[0] = 39; array[0]= array[5]+array[3]; (8) 写出以下初始化数组的长度:①int chn[3];数组chn的长度为___。②float isa[]={1.0,2.0,3.0,4.0,5.0}; 数组isa的长度为___。③int doom[8];数组doom的长度为___。④float pci[4][2];数组pci的长度为___。

⑤int ast[3][3];数组ast的长度为___。⑥int att[3][4];数组att的长度为___。 ⑦float dell[][3]={{1,4,7},{2,5},{3,6,9}};数组dell的长度为___。 6 20 16 32 18 24 36 (9) 若有以下整型的a数组,数组元素和它们得值如下所示: 数组元素: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 元素的值: 9 4 12 8 2 10 7 5 1 3 ①请写出对该数组的说明,并赋以上初值。 ②该数组的最小下标值为___,最大下标值为___。

③写出下面各式的值:a[a[9]]的值为___ ;a[a[4]+a[8]]的值为___。 int a[10]={9,4,12,8,2,10,7,5,1,3}; 0 9 8 8 (10) 字符串\"ab\\n\\012/\"\"的长度为___。10

3.判断题

( × )(1) C允许对数组的大小作动态定义,即可用变量定义数组的大小。 ( × )(2) 字符数组不要求它的最后一个字符为‘\\0’,甚至可以不包含‘\\0’。 ( × )(3) 数组定义 int a[10]; 也可以写成 int a(10); 。 ( √ )(4) 在对全部数组元素赋初值时,可以不指定数组长度。 ( × )(5) 定义s为5×6(5行6列)的数组可写成 float a[5,6]; ( √ )(6) 数组定义 int a[10]; 表示数组名为a,此数组有10个元素。

( × )(7) 数组定义 int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。

( √ )(8) static char c[]={“a book”}; 与static char c[]=“a book”; 等价。 ( × )(9) static char c[]={\'a\' ,\' \',\'b\',\'o\',\'o\',\'k\',\'\\0\'};与 static char c[]={\'a\' ,\' \' ,\'b\',\'o\',\'o\',\'k\'}; 等价。 ( × )(10) 设已有说明:static char c1[10],c2[10]; 下面程序片段是合法的。c1={“book”}; c2=c1;

4.程序填空题

(1) 输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。

#include void main( ) { float a[20],pjz=0,s,t; int i,k; for(i=0;i

(2) 以下程序以每行 10个数据的形式输出 a 数组,请填空。 void main( ) { int a[50],i; printf(\"输入50个整数:\"); for(i=0; i

(3) 下面程序的功能是输出数组 s 中最大元素的下标,请填空。 void main( ) { int k, p; int s[ ]={1,-9,7,2,-10,3}; for(p=0,k=p; ps[k]) ; printf(\"%d\\n\" ,k); } k=p

(4) 这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、20个数的和及它们的平均值。请填空。 void main() { char array ; int max,min,average,sum; int i; for(i=0;iarray[i]) sum= ; } average = ; printf(\"20个数中最大值是%d,\",max); printf(\"最小值是%d,\",min); printf(\"和是%d,\",sum); printf(\"平均值是%d.\\n\",average); } [20] 20 &array[i] 19 max=array[i]; min=array[i]; sum+array[i] sum/20 B卷

5.阅读程序,分析程序的功能。(1) #include #include void main( ) { char s[80]; int i ; for(i=0; i

(2) #include #include void main( ) { char str[10][80], c[80]; int i; for(i=0; i

(3) #include #include void main( ) { char a[10][80], c[80]; int i, j, k; for(i=0; i

(4) 阅读程序,写出运行结果 #include void main( ) { int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i

(5) 阅读程序,写出运行结果。 #include void main( ) { char a[8],temp; int j,k; for(j=0;j0;k--) a[k]=a[k-1]; a[0]=temp; printf(\"%s\\n\",a); } } gabcdef fgabcde efgabcd

(6) 阅读下列程序,写出程序运行的输出结果。 #include #include void main( ) { char str1[ ]=\"*******\"; for(int i=0;i

(7) 该程序的运行结果是: min= ,m= ,n= 。 void main() { float array[4][3]={ {3.4,-5.6,56.7}, {56.8,999.,-.0123}, {0.45,-5.77,123.5}, {43.4,0,111.2} }; int i,j; int min; int m,n; min = array[0][0]; m=0;n=0; for(i=0;i array[i][j]) { min = array[i][j]; m=i;n=j; } printf(\"min=%d,m=%d,n=%d\\n\",min,m,n); } -5.77 2 1

(8) 写出下面这个程序的输出结果: void main() { char str[]=\"ABCDEFGHIJKL\"; printf(\"%s\\n\",str); 屏幕上显示 printf(\"%s\\n\",&str[4]); 屏幕上显示 str[2]=str[5]; printf(\"%s\\n\",str); 屏幕上显示 str[9]=\'\\0\'; printf(\"%s\\n\",str); 屏幕上显示 } ABCDEFGHIJKL EFGHIJKL ABFDEFGHIJKL ABFDEFGHI

(9) 读懂下面的程序并填空。 void main() { char str[80]; int i=0; gets(str); while(str[i]!=0) { if(str[i]>=\'a\'&&str

1.单项选择题

(1)C 语言总是从 函数开始执行。 A A.main B.处于最前的 C.处于最后的 D.随机选一个

(2)函数在定义时,省略函数类型说明符,则该函数值的类型为 。A A.int B.float C.long D.double (2)以下 函数,真正地没有返回值。 B A.int a(){int a=2;return (a);} B.void b(){printf(\"c\");} C.int a(){int a=2;return a;} D.以上都是 (3)在 C 语言中,有关函数的说法,以下正确的是 。 A A.函数可嵌套定义,也可嵌套调用 B.函数可嵌套定义,但不可嵌套调用 C.函数不可嵌套定义,但可嵌套调用 D.函数不可嵌套定义,也不可嵌套调用 (4)以下函数调用语句中,含有实参的个数为 。C fun((2,3),(4,5+6,7)); A.1 B.2 C.5 D.6 (5)函数调用可以在 。 D A.函数表达式中 B.函数语句中 C.函数参数中 D.以上都是 (6)被调函数返回给主调函数的值称为 。C A.形参 B.实参 C.返回值 D.参数 (7) ,可以不进行函数类型说明。 D A.被调函数的返回值是整型或字符型时 B.被调函数的定义在主调函数定义之前时 C.在所有函数定义前,已在函数外预先说明了被调函数类型 D.以上都是 (8)被调函数通过 语句,将值返回给主调函数。 D A.if B.for C.while D.return (9)被调函数调用结束后,返回到 。 D A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处

C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句 (10)以下对 C语言函数的有关描述中,正确的是 。A A.在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B.C函数既可以嵌套定义又可递归调用 C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中 (11)C 语言中函数的隐含存储类型是 。 C A.auto B.static C.extern D.无存储类型

(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 。A A.return 这两个数 B.形参用两个元素的数组 C.形参用两个这种数据类型的指针 D.用两个全局变量 (13)C语言可执行程序从什么地方开始执行 ( )。 C A.程序中第一条可执行语句 B.程序中第一个函数 C.程序中的main函数 D.包含文件中的第一个函数

(14)有一个函数原型如下所示,则该函数的返回类型为( ) 。 C abc(float x,float y); A.void B.double C.int D.float

2.填空题

(1) 变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。 所处的位置,所处的位置,存储类型

(2) 说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。动态,auto (3) 静态型局部变量的作用域是 ,生存期是 。它所在的局部,整个程序

(4) 函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。 址传递,值传递

(5) 函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, _________变量优先。 该函数中,局部

(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。 return,void (7) 若函数的形式参数是指针类型,则实参可以是 或 。指针,数组名 (8) 函数的参数为 char *类型时,形参与实参结合的传递方式为 。址传递 (9) 函数的实参为常量时,形参与实参结合的传递方式为 。值传递

(10) 下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。int int int* *result void mul(___x,___y,___result) { ___=x*y; }

3.判断题

( × )(1) 函数说明指的是在程序中设定一个函数模块。 ( √ )(2) 形参只有在被调用时才分配存储空间。 ( × )(3) 在C的函数中,最好使用全局变量。

( × )(4) 在调用函数时,实参传值给形参,调用结束时,形参值传给实参。 ( √ )(5) 所有函数定义都是并行的,相互独立的。 ( × )(6) 函数的隐含存储类型是extern。 ( × )(7) 形参可以是常量、变量或表达式。 ( × )(8) 函数调用可以作为一个函数的形参。

( √ )(9) C语言规定,实参应与其对应的形参类型一致。 ( × )(10) 定义函数时,形参的类型说明可以放在函数体内。

4.程序填空题

(1) 对数组按值从大到小的顺序排序后输出,请填空。 #include void main() { float a[7]={2,6,3,8,3,12,9}; int i ; void sort(float*,int); ; for(i=0;i

(2) 下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。 #include void find(float *p, int max, int min, int n) { int k; *max=*p; for(k=1;k

5.写出下列程序运行结果 (1) main() { int i=1,p; p=fun(i,i+1); printf(\"%d\\n\",p); } int fun(int a,int b) { int f; if(a>b) f=1; else if(a==b) f=0; else f=-1; return f; } -1

(2)键盘输入 abcdef #include void fun( ) { char c ; if((c=getchar( ))!=\'\\n\') fun( ) ; putchar(c); } void main( ) { fun( ); } fedcba (3) #include #define C 5 int x=1,y=C; void main( ) { int x; x=y++; printf(\"%d %d\\n\", x,y); if(x>4) { int x ; x=++y; printf(\"%d %d\\n\",x,y) ; } x+=y--; printf(\"%d %d\\n\",x,y); } 5 6 7 7 12 6 (4) #include int c , a=4 ; func(int a , int b) { c=a*b ; a=b-1 ; b++ ; return (a+b+1) ; } void main( ) { int b=2 , p=0 ; c=1 ; p=func(b , a) ; printf(\"%d,%d,%d,%d\\n\", a,b,c,p) ; } 4,2,8,9 (5) unsigned fun6(unsigned num) { unsigned k=1; do { k*=num%10; num/=10; } while(num); return k; } void main( ) { unsigned n=26; printf(\"%d\\n\", fun6(n)); } 12 (6) #include int max(int a,int b); main() { int x,y,z,t,m; scanf(\"%d,%d,%d\",&x,&y,&z); t=max(x,y); m=max(t,z); printf(\"%d\",m); } int max(int a,int b) { if(a>b) return(a); else return(b); } 运行时若输入:10,15,9 则输出:___ 15 运行时若输入:300,129,300 则输出:___ 300 (7) #include long sum(int a,int b); long factorial(int n); main() { int n1,n2; long a; scanf(\"%d,%d\",&n1,&n2); a=sum(n1,n2); printf(\"a=%1d\",a); } long sum(int a,int b) { long c1,c2; c1=factorial(a); c2=factorial(b); return(c1+c2); } long factorial(int n) { long rtn=1; int i; for(i=1;i int s(); int x,y; main() { int n; x=1;y=2; n=s(); printf(\"x=%d,y=%d,n=%d\",x,y,n); } int s() { int z; x=3;y=4; z=x+y; return(z); } 程序运行后输出:___ 3,4,7

(9) 以下程序的输出结果是a=___,b=___,c=___。 #include int func(int a,int *p); void main() { int a=1,b=2,c; c=func(a,&b); b=func(c,&a); a=func(b,&c); printf(\"a=%d,b=%d,c=%d\",a,b,c); } int func(int a,int *p) { a++; *p=a+2; return(*p+a); } 36 16 19 第九章 预处理

A部分(本、专科必做)

一、选择题

以下不正确的叙述是(D)

A、宏替换不占用运行时间。 B、宏名无类型。

C、宏替换只是字符替换。 D、宏名必须用大写字母表示。 C语言的编译系统对宏命令的处理(D)

A、在程序运行时进行的。 B、在程序连接时进行。 C、和C程序中的其它语句同时进行编译的。 D、在对源程序中其它语句正式编译之前进行的。

3、以下程序的输出结果是(C)。A、15 B、100 C、10 D、150 #define MIN(x,y) (x)

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

用#include包含的文件的后缀必须是“.h”。

若一些源程序中包含某个头文件;当该文件有错时,只需对该头文件进行修改,包含此头文件的所有源程序不必重新进行编译。 宏命令行可以看作是一行C语句。 预处理是在编译之前进行的。

5、以下叙述中正确的是(C) A、源程序中所有的行都参加编译。 B、宏定义常量与const定义常量是一样的。

C、宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。 D、以上都不正确。

二、填空题

以下程序中for 循环执行的次数是 6 。 #define N 2 #define M N+1 #define NUM (M+1)*M/2 void main() { int i; for(i=1;i

2、以下程序的输出结果是 x=93 。 #define A 3 #define B(a) ((A+1)*a) void main() { int x; x=3*(A+B(7)); printf(“x=%d\\n”,x); }

B部分(本科必做)

编程:请写出一个宏定义MYALPHA(c),用以判断c是否是字母字符,若是,得1,否则,得0。

解:#define MYALPHA(c) ((c>=’A’&&c=’a’&&c

A部分(本、专科必做)

一、选择题

1、若有定义:int x,*pb;则以下正确的表达式是(A) A、pb=&x B、pb=x C、*pb=&x D、*pb=*x

2、以下程序的输出结果是(B)

A、因变量无定义输出不定值 B、0 C、-1 D、1 #include void main() {printf(“%d\\n”,NULL);}

3、以下程序的输出结果是(B)

A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7 #include void sub(int x,int y,int *z) {*z=y-x;} void main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%d\\n”,a,b,c); }

4、以下程序的输出结果是(C) A、4 B、6 C、8 D、10 #include void main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\\n”,n); }

5、已知指针p的指向(图一)的a[1],则执行语句*p++;后,*p的值是(B)。 A、20 B、30 C、21 D、31 a[0] a[1] a[2] a[3] a[4] 10 20 30 40 50 (图一)

6、已知指针p的指向(图一)的a[1],则表达式*++p的值是(B)。A、20 B、30 C、21 D、31

7、已知指针p的指向(图一)的a[1],则表达式++*p的值是(C)。A、20 B、30 C、21 D、31

8、以下程序的输出结果是(D)。A、23 B、24 C、25 D、26 #include void prtv(int *x) {printf(“%d\\n”,++*x);} void main() { int a=25;prtv(&a); }

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

A、运行出错 B、100 C、a的地址 D、b的地址 #include void main() { int **k,*a,b=100; a=&b;k=&a; printf(“%d\\n”,**k); }

10、以下程序运行后,输出结果是(D)。A) 8 B) 7 C) 6 D) 5 #include (char *s) { char *p=s; while(*p) p++; return(p-s); } main() { char *a=\"abded\"; int i; i=(a); printf(\"%d\\n\",i); }

二、填空题

1、若有定义:char ch; (1)使指针p指向变量ch的定义语句是 char *p=&ch; 。

(2)若已定义char *p;,使指针p指向变量ch的赋值语句是 p=&ch; 。 (3)在(1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是 scanf(“%c”,p); 。

(4)在(1)的基础上,通过指针p给变量ch赋字符’a’的语句是*p=’a’; 。 (5)在(1)的基础上,通过指针p用格式输出函数输出ch中字符的语句是printf(“%c”,*p); 。

2、以下程序输出的是 C 。 void main( ) { int i=3, j=2; char *a=\"DCBA\"; printf(\"%c%c\\n\",a[i],a[j]); }

3、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。 void exchange(int *x, int *y) { int t; t=*y; *y= *x ; *x= t ; }

B部分(本科必做) 程序填空:

1、下面程序的输出结果是 A B C D B C D C D D 。 char b[]=\"ABCD\"; void main() { char *chp; for(chp=b; *chp: chp+=2) printf(\"%s\",chp); printf(\"\\n\"); } 下面是一个字符串连接函数,请补充完整。 void mystrcat(char *s1,char *s2) { char *p,*q; for(p=s1; *p ; p++ ); for( q=s2 ;*q;q++) *p++=*q ; *p=’\\0’ ; } 第十一章 结构体与共用体 A部分(本、专科必做)

一、选择题

1、设有如下定义: struct sk {int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是(B)。 A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a

2、根据以下定义,能输出字母M的语句是(D)。

A、printf(“%c\\n”,cla[3].name); B、printf(“%c\\n”,cla[3].name[1]); C、printf(“%c\\n”,cla[2].name[1]); D、printf(“%c\\n”,cla[2].name[0]); struct person{char name[9];int age;}; struct person cla[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16,};

3、以下程序的输出结果是(D)。A、0 B、1 C、3 D、6 #include void main() { struct emplx{int x;int y;}enum[2]={1,3,2,7}; printf(“%d\\n”,enum[0].y/enum[0].x*enum[1].x); }

4、若有以下说明及语句,则值为6的表达式是(D)。A、p++->n B、p->n++ C、(*p).n++ D、++p->n struct st{int n;struct st *next;}; struct st a[3],*p; a[0].n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2]; a[2].n=9;a[2].next=’\\0’;p=&a[0];

5、已知字符0的ASCII码的十进制的值是48,且数组的第0个元素在低位,以下程序的输出结果是(B)。A、39 B、9 C、38 D、8 void main() { union{int i[2];long k;char c[4];}r,*s=&r; s->i[0]=0x39;s->i[1]=0x38; printf(“%x\\n”,s->c[0]); }

6、以下程序输出的结果是(C)。A、32 B、16 C、8 D、24 typedef union{long x[2];int y[4];char z[8];}MYTYPE; MYTYPE them; void main() { printf(“%d\\n”,sizeof(them)); }

7、设有以下语句 typedef struct S { int g; char h;} T; 则下面叙述中正确的是(B)。

A) 可用S定义结构体变量 B)可以用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量

8、有以下说明和定义语句 struct student { int age; char num[8];}; struct student stu[3]={{20,\"200401\"},{21,\"200402\"},{10\\9,\"200403\"}}; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是(D)。 A) (p++)->num B) p->num C) (*p).num D) stu[3].age

二、填空题

1、为了建立结构体(含有两个成员,data是数据成员,next是指向自身结构体的指针成员),请填空: Struct link { char data; struct link *next ; }

2、把类型int另取一个类型名称INT,则以下应填:

第16篇:语言程序设计课程设计指导书

汇编语言程序设计课程设计指导书

一、课程设计的目的

本课程设计是《汇编语言程序设计》课程的后继教学环节,其宗旨是使学生通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作,对汇编语言程序设计有更进一步的认识,提高编程技巧和阅读理解复杂程序的能力。

二、课程设计的任务要求

根据所给的“Reader.asm”应用程序框架,在此基础上修改和添加功能。 1.基本任务: 

   认真阅读“Reader.asm”源程序,理解程序每一条指令在程序中的作用; 用→、←键在窗口内左右移动文本;

用PgDn,PgUp键上下快速移动文本(每次移半帧); 设计专用键放大、缩小窗口,改变窗口位置。

2.扩展任务:   对文本内的Tab字符(ASCII码09H)进行处理:遇到Tab键,下一个字符显示在下一个表站开始处(每个6个字符一个表站);

设置状态行,显示当前文件名、文本位置(仿垂直滚动条)。

3.自行设计的其它任务:

三、课程设计报告的内容

1.课程设计题目名称、班级号、学号、学生姓名和课程设计起止日期(封面);

2.上海应用技术学院课程设计任务书(下发) 3.课程设计目的和要求;

4.课程设计任务内容;5.详细设计说明; 6.软件使用说明; 7.课程设计总结;

8.附录:1 参考文献 2 程序清单(电子版)。

四、课程设计详细设计说明及其它要求

1.

2.3.4.5.6.分析原“Reader.asm”程序结构:每个模块说明,较大模块程序流程图;对你已经实现的功能做详细的说明,并附上流程图及部分程序清单; 自己对该“文件阅读器”的进一步设想;

对于有设想但最终未实现的功能的大致编程思路的阐述; 论述在设计过程中遇到的并且对你具有启发性的问题; 交课程设计报告手写版,源程序交电子版。

五、评分标准

1.根据平时出勤情况和设计时的工作情况;

2.根据课程设计程序的完成情况,必须有可运行的软件。3.根据课程设计报告的质量。课程设计报告不能抄袭,抄袭判为不及格。 4.在题目要求之外附加具有实用性的功能。

六、课程设计工作进度计划

星期一:课程设计介绍,源程序阅读理解,功能设计,程序编写。 星期二:功能设计,程序编写。

星期三:程序编写与调试,课程设计报告撰写。 星期四:程序编写与调试,课程设计报告撰写。

星期五:程序最终修改,课程设计报告撰写,提交报告并答辩。

七、主要参考资料

[1]杨文显.汇编语言程序设计简明教程.北京:电子工业出版社,2005

八、附录

《文本阅读器》汇编语言源程序清单

; Title: Aemble Program “Reader.asm”

; Read a file from disk, display it‟s contents on screen ; Move the content on screen by up/down arrow keys ; ========================== MYDAT SEGMENT MAXLEN DW 1000 ; 最大行数 INDEX DW 1000 DUP(?) ; 行索引 LENCT DW 0 ; 实际行数 CURLINE DW 0 ; 当前页第一行行数 CCOUNT DW ? ; 文件总字符数

TOP DB 5 ; 窗口左上角行数 LEFT DB 5 ; 窗口左上角列数 WS DW 60 ; 窗口宽度 HS DW 15 ; 窗口高度 FG DB 17H ; 文字属性 FGB DB 1FH ; 窗口边框属性

MSG1 DB \'File:$\' ; 输入文件名提示 MSG2 DB \'File open error!$\' ; 打开文件出错时提示 MSG3 DB \'File read error!$\' ; 读文件出错时提示 FILENA DB 80,?,80 DUP(?) ; 输入文件名缓冲区

; 定义功能键和相应的处理程序

; 每个功能定义两个数据:扫描码,处理程序入口地址 ; 该数据由DOSUB子程序使用

KEYSUB DW 48H, SUB1 , 50H, SUB2, 0

MYDAT ENDS

; ==========================

BUFFER SEGMENT PARA DB 65535 DUP(?) ; 文件缓冲区,文件最大为64K BUFFER ENDS

; ==========================

SSEG SEGMENT STACK „STACK‟ ; 堆栈段

DW 100 DUP(?) SSEG ENDS

; ==========================

; 宏定义 DISPINIT: 设置显示器显示方式 DISPINIT MACRO MOV AX,0003H ; 文本方式 25x80 INT 10H ENDM ; ---------- ; 宏定义 PROMPT: 显示字符串 PROMPT MACRO OUTMSG LEA DX, OUTMSG MOV AH, 09H ; INT 21H ; ENDM ; -------- ; 宏定义KRYIN: 从键盘读入一个字符 KEYIN MACRO MOV AH,0 ; 读键

INT 16H ; AH中为扫描码

ENDM ; ========================== ; 代码段开始 CODE SEGMENT

ASSUME CS: CODE, DS: MYDAT, ES: BUFFER, SS: SSEG

START: MOV AX, MYDAT ; 装载DS,ES MOV DS, AX MOV AX, BUFFER MOV ES, AX

DISPINIT ; 显示方式初始化

CALL READFILE ; 读入文件

JC DONE

CALL CLIST ; 初始化索引行

CALL CLSCREEN ; 清屏

CALL CREWIN ; 创建窗口

CALL SHOWCUR ; 显示当前页

NEXT: KEYIN ; 进入主程序: 读键盘

CALL COMMAND ; 命令分析与处理

JNC NEXT ; 非x键继续循环

DONE: CALL CLSCREEN ; 清屏

MOV AX, 4C00H INT 21H ; 退出

; ------- ; 子程序READFILE: 提示并读入文件名,将文件读入缓冲区 READFILE PROC PROMPT MSG1 ; CALL SIN ; 读入文件名

MOV AX, 3D00H MOV DX, OFFSET FILENA+2 INT 21H ; 打开文件(读) JC GETERR1 ; 打开文件出错转GETERR1 PUSH DS PUSH ES POP DS ; 将DS指向文件缓冲区段

MOV BX, AX ; BX=文件号

MOV AH, 3FH ; 读文件 MOV CX, 0FFFFH ; 读入最多64K-1 MOV DX, 0 ; DS: DX指向文件缓冲区

INT 21H POP DS JC GETERR2 ; 读入文件出错转GETERR2 MOV CCOUNT, AX ; 实际读入字符数存入CCOUNT中

CLC JMP GETFILEXIT

GETERR1: PROMPT MSG2 ; 读入文件出错处理

KEYIN STC JMP GETFILEXIT ;

GETERR2: PROMPT MSG3 ; 打开文件出错处理

KEYIN STC

GETFILEXIT: RET

READFILE ENDP ; ------- ;输入文件名子程序 SIN PROC MOV AH, 0AH MOV DX, OFFSET FILENA INT 21H ; 输入文件名

XOR CH, CH MOV CL, FILENA+1 ; 取文件名长度

LEA BX, FILENA+2 ADD BX, CX ; 计算字符串结尾地址

MOV BYTE PTR [BX], 0 ; 在字符串尾部加0 RET SIN ENDP ; ------- ; 索引行初始化子程序 CLIST PROC MOV CX, CCOUNT JCXZ CSTX ; 文件为空结束

MOV SI,0 ; 文件缓冲区字符指针

MOV DI,0 ; 索引行指针

MOV DX,0 ; 行数计数

MOV INDEX[DI], 0 INC DX ; 假设文件至少有一行 CST1: CMP WORD PTR ES:[SI], 0A0DH ; 判断是否为回车换行符

JNZ CST2 ; 不是行结束,转CST2 INC DX ; 行数加一

ADD SI, 2 ; 跳过回车换行符

ADD DI, 2 ; 索引行指针加一

MOV INDEX[DI], SI ; 指向本行开始地址

CMP DX, MAXLEN JNC CST4 ; 是否超过最大行,超过转CST4,结束

JMP CST3 ; CST2: INC SI ; 文件缓冲区字符指针指向下一字符 CST3: LOOP CST1 ; CST4: MOV LENCT, DX ; 保存行数到LENCT中 CSTX: RET CLIST ENDP ; ------- ;清屏子程序

CLSCREEN PROC MOV AX, 0600H ; 清屏

MOV CX, 0 MOV DH, 50 MOV DL, 79 MOV BH, 07H INT 10H RET CLSCREEN ENDP ; ------ ;显示当前页子程序 SHOWCUR PROC MOV DH, 0 ; 窗口最顶行

MOV SI, CURLINE ; 取当前页第一行行数

MOV CX, HS ; 窗口的第一行和最后一行为边框,

SUB CX, 2 ; 所以能够显示内容的高度为窗口高度减二 SC1:

CALL SHOWLINE ; 显示一行

INC DH ; 窗口下一行

INC SI ; 文件下一行

MOV AX, LENCT ; CMP SI, AX ; 文件是否显示完

JNC SC2 ; 显示完则转SC2 LOOP SC1 JMP SC1X SC2: JCXZ SC1X ; 该页显示满则结束

;该页没有显示满,则用空行填满该页 SC3: PUSH CX PUSH DX CALL SHOWSPLINE ; 显示空行

POP DX POP CX INC DH LOOP SC3 SC1X: RET SHOWCUR ENDP ; ------ ;显示一行子程序

;输入:SI=显示行行号 ; DH=窗口中的行号 SHOWLINE PROC PUSH CX PUSH SI PUSH DX PUSH AX

ADD DH, TOP ; INC DH ; 实际行数=窗口左上角行数+DI+1 MOV DL, LEFT ; INC DL ; 实际列数=窗口左上角列数+1 CALL VADD ;

MOV CX, WS ; 窗口的第一列和最后一列是边框,

SUB CX, 2 ; 所以能够显示内容的宽度为窗口宽度减二

SHL SI, 1 ; 行索引为字类型,所以乘二

MOV SI, INDEX[SI] ; 取该行第一个字符在文件缓冲区的地址

PUSH DS MOV AX, 0B800H MOV DS, AX ; DS指向显示缓冲区段地址 SL1: MOV AX, ES:[SI] CMP AX, 0A0DH JZ SL2 ; 如果是回车换行,则该行结束

MOV DS: [DI], AL ; 显示一个字符 ADD DI, 2 ; INC SI ; 取下一个字符

LOOP SL1 ; JCXZ SLX ; 该行正好显示完,则结束,否则用空格填满

SL2: MOV BYTE PTR DS:[DI], \' \' ; 该行没有显示满,则用空格填满

ADD DI, 2 LOOP SL2

SLX: POP DS

POP AX POP DX POP SI POP CX

RET SHOWLINE ENDP ; -------- ;显示空行子程序

;输入:DI=窗口中的行号 SHOWSPLINE PROC ;

MOV AX, HS ; SUB AX, 2 ; CMP DH, AL ; 显示的空行是否超出最低行

JNC SSLX ; 如果是,则转SSLX ADD DH, TOP ; INC DH ; 实际行数=窗口左上角行数+DI+1 MOV DL, LEFT ; INC DL ; 实际列数=窗口左上角列数+1 CALL VADD ;

MOV CX, WS ; 窗口的第一列和最后一列是边框,

SUB CX, 2 ; 所以能够显示内容的宽度为窗口宽度减二

PUSH DS MOV AX, 0B800H MOV DS, AX SSL1: MOV BYTE PTR DS:[DI], \' \' ADD DI, 2 LOOP SSL1 POP DS SSLX: RET SHOWSPLINE ENDP ; ------- ;创建窗口子程序 CREWIN PROC PUSH ES MOV AX, 0B800H ; 显示缓冲区地址为B800:0 MOV ES, AX ;

MOV DH, TOP MOV DL, LEFT ; 窗口左上角行列数

MOV CX, HS ; 窗口高度(行数) CW1: PUSH DX ; CALL VADD ; 计算地址

PUSH CX ; MOV CX, WS ; 窗口宽度(列数)

MOV AL, FG ; 取属性 CW2: MOV BYTE PTR ES:[DI], \' \' ; 送空白字符

INC DI ; MOV BYTE PTR ES:[DI], AL ; 送属性

INC DI ; LOOP CW2 ;

POP CX POP DX INC DH ; 行数加一

LOOP CW1

CALL DRAWB ; 画边框

POP ES RET CREWIN ENDP ; - ;画边框子程序 DRAWB PROC PUSH DX PUSH CX PUSH BX PUSH AX MOV BL, FGB MOV DH, TOP MOV DL, LEFT CALL VADD

;画左上角角框

MOV BYTE PTR ES:[DI], 0C9H INC DI MOV BYTE PTR ES:[DI], BL INC DI

;画第一行边框

MOV CX, WS SUB CX,2 DB1: MOV BYTE PTR ES:[DI], 0CDH INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB1

;画右上角角框

MOV BYTE PTR ES:[DI], 0BBH INC DI MOV BYTE PTR ES:[DI], BL

;画第二行到倒数二行左右边框

MOV DH, TOP MOV DL, LEFT INC DH MOV CX, HS SUB CX, 2 DB2: PUSH DX CALL VADD MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL DEC DI MOV AX, WS DEC AX SHL AX, 1 ADD DI, AX MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL POP DX INC DH LOOP DB2 ; 取边框属性 ; 窗口左上角行列数 ; 计算地址 ; 角框╔ ; 因为去掉了左右角框,所以宽度减二; 上下边框═ ; 角框╗ ; 从第二行开始 ; 第一行和最后一行没有左右边框, ; 所以高度减二 ; ; 计算左边框地址 ; 左右边框║ ; ; ; ; 计算右边框地址 ; ;下一行 ;

; 画左下角角框

MOV DH, TOP ; MOV DL, LEFT ; MOV AX, HS ; DEC AX ; ADD DH, AL ; 左下角行数=右上角行数+窗口高度-1 CALL VADD MOV BYTE PTR ES:[DI], 0C8H ; 角框╚

INC DI MOV BYTE PTR ES:[DI], BL INC DI

; 画最低行边框

MOV CX, WS ; SUB CX, 2 ; 因为去掉了左右角框,所以宽度减二 DB3: MOV BYTE PTR ES:[DI], 0CDH ; 上下边框═

INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB3

; 画右下角角框

MOV BYTE PTR ES:[DI], 0BCH ; 角框╝

INC DI MOV BYTE PTR ES:[DI], BL

POP AX POP BX POP CX POP DX

RET DRAWB ENDP ; ------ ; 计算窗口内某行列位置对应显存地址 ; 输入:DH=行 DL=列 ; 输出:DI为显存地址 VADD PROC MOV AL, 80 ; MUL DH ; XOR DH, DH ; ADD AX, DX ; 行数×80+列数

SHL AX, 1 ; 乘2,因为每个字符占两个字节

MOV DI, AX RET VADD ENDP ; -------- ;命令分析子程序 COMMAND PROC CMP AH, 2DH ; 2DH为x键的扫描码

JNZ COM1 ; 不是x键,转COM1 STC ; 值x键标志

RET COM1: CALL DOSUB ; 转命令散转子程序

CLC RET COMMAND ENDP ; -- ;命令散转子程序 DOSUB PROC MOV AL, AH MOV AH, 0 ; 将键扫描码放入AX中

MOV BX, OFFSET KEYSUB ; BX指向KEYSUB DOSUB1: CMP WORD PTR [BX], 0 JZ DOSUBX ; KEYSUB表查完,即没有找到转DOSUBX CMP AX, [BX] JZ DOSUB2 ; 找到扫描码转DOSUB2 ADD BX, 4 JMP DOSUB1 ; DOSUB2: ADD BX, 2 MOV BX, [BX] ; 取处理程序入口地址

JMP BX ; 转处理程序 DOSUBX: RET

; SUB1和SUB2均为功能键处理程序 ; 处理完后应使用JMP DOSSUBX结束

; 上箭头键处理程序 SUB1: CMP CURLINE, 0 JZ SUB1X ;已到第一行,结束

DEC CURLINE ;向上一行

CALL SHOWCUR ;显示当前页 SUB1X: JMP DOSUBX

;下箭头键处理程序 SUB2: MOV AX, LENCT DEC AX DEC AX ;至少显示一行

CMP AX, CURLINE ;已到最后一行

JZ SUB2X INC CURLINE ;向下一行

CALL SHOWCUR ;显示当前页 SUB2X: JMP DOSUBX

DOSUB ENDP ; --------

CODE ENDS

; ========================= END START

第17篇:C语言程序设计题

【第1题】题目:请编写函数fun,对长度为7的字符串,除首、尾字符外,将其余5个字符按将序排列。例如,雨来的字符串为CEAedca,排序后输出为CedcEAa。 Int fun(char *s,int num) { Int i,j; chat t; for(i=1;i=2)&&(b

void fun(int a[], int n) { int I,j,t; for(i=0;i[j]) {t=a[i];a[i]=a[j];a[j]=t; } } 【第4题】题目:请编写函数fun,它的功能是:判断m是否为素数。主函数的功能是:求出100到200之间的素数的个数。 int fun(int m) {int i,j; int k=1; if(ms[k]) k=I; return(k=1); { 【第7题】题目;编写函数fun其功能是:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返货1,否则返回0。 int fun(int w) { int k,s=0; do {s=s+(w%10)*(w%10); w=w/10; }while(w!=0); if(s%5= =0)k=1; else k=0; return(k); } 【第8题】题目:编写函数fun其功能是:求给定正整数n以内的素数之积。(na[i]) k++; return(k); } 【第13题】题目:用函数将第2个字符串连接到第1个字符串之后,不允许使用strcat函数。

void len_cat(char cl[],char c2[]) { int i,j; for(i=0;c1[i]!=’\\0’;i++);

for(i=0;c2[i]!=’\\0’;i++) cl[i+j]=c2[j]; cl[i+j]=’\\0’; } 【第14题】题目:编写函数fun,函数的功能是:找出一批正整数中的最大的偶数。 int fun(int a[],int n) { int i,amax=-1; for(i=0;iamax) amax=a[i]; return amax; } 【第15题】题目:编写函数fum,函数的功能是:求一个给定字符串中的字母的个数。

int fun(char s[]) { int i,k=o; for(i=0;s[i]!=’\\0’;i++)

if(s[i]>=’a’&&s[i]=’A’&&s[i]

int fun(char*str,char*substr) { int I,n=0; for(i=0;i

int i, k=1; if(m

【第28题】题目:程序的功能是:把20个随机数存入一个数组,然后输出该数组中的最大值。其中确定最大值的下标的操作在fun函数中实现,请给出该函数的定义。 int fun(int list[],int size) { int i ,max=0;

for(i=1;i

【第29题】题目:函数fun的功能是:求图1所示数列的第n项。数列为:l/a,l/(l+a),l/(l+(1+a)),l/(l+(l+(l+a))),…… float fun(int n) { float a=1; int i; for(i=1;i

if (year%400==0||&&( year%100!=0))flag=1; else flag=0; return(flag); } 【第33题】题目:编写函数fun,函数的功能是:求一个四位数的各位数字的立方和。 int fun(int n) { Int d,k,s=0; While (n>0) {d=n%10; s+=d*d*d; n/=10; } return s; } 【第34题】题目:求一批数中最大值和最小值的差。 Int max_min(int a[],int n) { int i,max,min; max=min=a[0]; for(i=1;imax) max=a[i]; else if(a[i]a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} } 【第37题】题目:请编写一个函数fun,函数的功能是:统计出若干个学生的平均成绩,最高分一级最高分的人数。例如,输入10名学生的成绩分别为92.87.68.56.92.84.67.75.92.66.则输出平均成绩77.9。最高92.最高分人数3人。 float Max=0; int J=0; float fun(float array[],int n) {int i.j=0; float sum=0,ave; max=array[0]; for(i=0;i,n;i++) {if(Max,array[i])Max=array[i]; Sum=sum+array[i]; } ave=sum/n; for(i=0;I,n;i++) if(array[i]==max) J++; return(ave); } [第38题]编写函数fun,函数功能是:计算n门功课的平均值,计算结果作为换数值返回。5门成绩92.76.69.58.88,函数的值72..599998。 float fun(int a[]int n) { int i; float y=0;

for(i=0;ia[j]) k=j; if(k!=i) {t=a[i];a[i]=a[k];a[k]=t; } } } 【第42题】 题目:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。 int fun(int x[],int n) {int min,I; min=x[0]; for(i=1;i

Int fun(char s[]) { int ik=0; for(i=0;s[i]!=’\\0’;i++)

if(s[i]>=’a&&s[i]=’A’&&s[i]

说明:pos保存最大值在数组中的位置:p保存最大值内存地址。 int*fun(int *s,int t,int *pos) {int I,*p; p=s; for(i=1;i

[第47题目]题目: 编写函数fun,函数的功能是:求1到100之间的偶数之积.double fun(int m) { double y=1; int i; for(i=1;i

if(*(ptr+i)=’a’||*(ptr+i)=’A’ {*(ptr+j)=*(ptr+1);j++;} *(ptr+j)=’\\0’; return(j); } [第49题]题目:从键盘输入任意实数,求出其所对应的函数值 z=e的x次幂(x>10) 答案: double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); [第50题]题目:功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在答案:---------------------- int sum; int i,j; sum=1; for(i=0;i=\'0\'&&s[i]

答案:---------------------- int i,j; char t; for(i=1;i0) {d=n%10; s+=d*d*d; n/=10; } return s; [第59题]题目:功能:从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。

答案:---------------------- long sl=10; t = s % 10; while(s >0) { s = s/100; t = s%10*sl + t; sl = sl * 10; [第60题]题目:功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。 答案:---------------------- int s=0,i; for(i=2;i=\'a\'&&s[i]=\'A\'&&s[i]

答案:---------------------- int sum,i; sum =0; for(i=1;ipp[j]) pp[j]=tt[i][j]; [第64题]题目:功能:求一组数中大于平均值的数的个数。 答案:---------------------- int i,k=0; float s=0,ave; for(i=0;iave)k++; return k; [第65题]题目:功能:求大于lim(lim小于100的整数)并且小于100的所有素数并放在aa数组中,该函数返回所求 答案:---------------------- int n=0; int i,j; for(i=lim;i=\'A\' && str[i]

答案:---------------------- char *q=s; for(; *q; q++) if(*q != c) *(s++)=*q; *s=0; [第69题]题目:功能:对长度为8个字符的字符串,将8个字符按降序排列。 答案:---------------------- int i,j; char t; for(i=0;i

int i;float sum=0,ave; Max=array[0]; for(i=0;i=\'a\'||*(ptr+i)=\'A\') {*(ptr+j)=*(ptr+i); j++;} *(ptr+j)=\'\\0\'; return(j); [第77题]题目:.功能:找出一批正整数中的最大的偶数。 答案: int i,amax=-1; for(i=0;iamax) amax=a[i]; return amax; [第78题]题目:.功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是: 将a数的十位和个位

答案:*c=a/10+a%10*100+b/10*10+b%10*1000;

第18篇:C语言程序设计题库

郑州大学现代远程教育

《C语言程序设计》课程

学习指导书

柳宏川 编

第1章

绪论

(一)本章学习目标

掌握结构化程序设计的思想,结构化流程图描述,算法设计基础和良好程序设计风格。

(二)本章重点、要点

C语言特点,算法概念及NS图形描述,结构化程序设计思想,三种基本结构:顺序结构、选择结构和循环结构,使用良好的程序设计风格。

(三)练习题

1_1.什么是低级语言? 1_2.什么是高级语言?

1_3.面向过程语言的特点是什么? 1_4.什么是算法? 1_5.算法有什么特点?

1_6.结构化算法的基本结构有哪些? 1_7.结构化程序设计的标准有哪些?

第2章

C语言程序的开发过程

(一)本章学习目标

熟悉C程序开发环境,熟练掌握调试工具的使用,掌握C语言程序结构与语法规则。

(二)本章重点、要点

C程序开发环境工具的使用,C语言程序结构与语法规则。

(三)Turbo C 的操作指南

开发一个C语言程序一般包括3个主要步骤:编辑,编译和连接。掌握调试C语言程序的全过程。

 编辑:根据求解算法,开发人员使用文本编辑器编辑代码,生成源程序代码,扩展

   1) 2)   名为.C。

编译:编译时,编译器首先检查源程序中每条语句的词法和语法。当发现错误时,在屏幕上显示错误的位置、错误类型等相关信息。根据错误信息,重新使用编辑器进行查错并修改,然后重新编译直到所有的词法和语法错误都被排除。正确编译后产生二进制目标文件,扩展名为.OBJ。

连接:编译后产生的目标文件是可重定位的程序模块,但不能直接运行。连接是将目标程序、库函数和其它目标程序连接到一起,生成可执行的程序。扩展名为.EXE。 运行:源代码经过编译、连接,生成可执行程序后,就可以进行程序的运行了。 编译过程发现的错误可分为两类。

一类是局部语法错误。例如,缺失了分号、逗号,或者引用了错误的数据对象。 另一类是程序内部上下文关系方面的错误。例如,需要使用的数据对象没有定义。 连接时,也可能产生错误。例如,连接文件找不到等,具体不再叙述。

源代码经过编译、连接,生成可执行程序后,还需要进行测试。测试的目的是发现程序的错误。一般通过输入一些实际数据来验证程序执行结果的正确性。如果程序执行中出现问题,或发现程序的输出结果不正确,需要设法找到出错的原因,并修改源程序,重新进行编译、连接,再测试和调试,不断反复,直到程序正确无误。

第3章

基本数据类型

(一)本章学习目标

熟练掌握标识符的概念,基本数据(整型、实型、字符型等),常量,转义符,变量,变量的赋值。

(二)本章重点、要点

标识符的组成规则,基本数据类型及对应的名称(整型、实型、字符型等),常量,转义符,变量,变量名,变量的赋值等。

(三)练习题

3_1.基本整型数据的输出。 3_2.实型数据的输出。 3_3.字符型数据的输出。

3_4.C语言标识符的命名规则如何? 3_5.C语言的基本数据类型有哪些? 3_6.什么是常量? 3_7.什么是变量?

3_8.转义字符有什么作用?举例说明。

3_9.字符串常量与字符常量的表示有什么不同?

- 23

(二)本章重点、要点

循环控制语句:while语句,do…while语句,for语句,循环初始条件、循环终止条件、循环体和循环变量,循环的嵌套,辅助控制语句,continue语句,break语句,goto语句。

(三)练习题

7_1.用while语句,求连加式1 + 2 + ...+ n( n >2)的值。 7_2.用do…while语句,求连加式1 + 2 + ...+ n( n >2)的值。 7_3.求解奇数的连加式1 + 3 + 5 + ...+ n ( n >10 )的值。 7_4.将如图所示的三角形图案显示到屏幕上。

7_5.判断一个整数是否为素数。

第8章

函数

(一)

(一)本章学习目标

熟知函数的结构,正确进行函数定义,掌握函数头部,函数体,函数的返回值等概念,理解函数的功能,理解函数参数的意义,掌握有参函数的调用和无参函数的调用,掌握运用函数调用的方式,掌握函数的声明方法,理解函数的原型的概念。

(二)本章重点、要点

函数的定义,函数头部,函数体,函数的值,返回语句,函数的功能,函数的调用,有参函数的调用,无参函数的调用,函数调用的方式,函数的声明与函数的原型。

(三)练习题

8_1.编写程序,通过调用函数imin,求两个表达式的最小值。

8_2.编写程序,通过调用PtrStar函数,输出4行“@”号,每行10个。

8_3.编写程序,输入一个年份,通过调用函数判断其是否为闰年。

8_4.编写程序,输入两个数,输出其中绝对值最大的数。要求:求绝对值和求最大值分别使用函数完成,在求最大值的函数中调用求绝对值的函数。。 8_5.编写函数,完成显示下列所示的三角形图案, 行数由函数参数决定。

8_6.编写程序,通过调用【实例8_5】中的函数,输出三个三角形的图案。

第9章

数组

(一)本章学习目标

张确使用一维数组和二维数组去解决问题。学会使用数组作为函数参数、数组元素作为函数的参数和数组名作为函数参数的方法。

(二)本章重点、要点

一维数组,一维数组的定义,一维数组元素的引用,一维数组在内存中的存储,一维字符数组的说明。二维数组,维数组的定义,二维数组元素的引用,二维数组在内存中的存储。数组作为函数参数,数组元素作为函数的参数,数组名作为函数参数。

(三)练习题

9_1.用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数

9_2.将一个一维数组a[9]中各元素值按行的顺序放入二维数组b[3][3]中。 9_3.将一个二维数组b[5][5]中各元素值列优先的顺序放入一维数组a[25]中。 9_4.有一个m×n矩阵,各元素值由随机数产生,求其转置矩阵并输出。

9_5.有一个m×n矩阵,找出最大元素值及其最大元素值所在的行、列位置。 9_6.将矩阵M(n,n)对角线上的元素置为1,其余元素置为0。

第10章

结构体与共用体

(一)本章学习目标

掌握并正确使用结构体类型、结构体与数组,共用体,共用体类型。

(二)本章重点、要点

结构体类型的定义,结构体变量的定义,结构体变量的引用,结构体成员变量的引用,结构体变量的初始化。结构体与数组,共用体,共用体类型和共用体变量的定义,共用体变量的引用。

(三)练习题

10_1.设有学生信息如下:学号(长整型)、姓名(字符串型)、年龄(整型)、课程1成绩(实型)、课程2成绩(实型)、课程3成绩(实型)、课程4成绩(实型)、课程5- 6

读写。

(三)练习题

12_1.利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件。编写程序将建立的数据文件读出且求出每个学生的平均成绩。 12_2用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的记录文件。 12_3编写程序,利用第12_2建立的记录文件,从键盘上输入一个学号,查寻该位同学信息。 12_4编写程序,将第12_3题建立的文件复制到另一个文件。

第13章

运算符与表达式

(一)本章学习目标

深入理解运算符和表达式,掌握位运算方法。

(二)本章重点、要点

运算符与表达式,赋值运算符,复合赋值运算符,赋值表达式,赋值运算符的优先级和结合方向。逗号运算符与逗号表达式,逗号表达式的求解顺序,逗号运算符的优先级,逗号运算符的扩展形式。条件运算符与条件表达式,条件运算符的求解顺序,条件运算符的优先级,条件运算符的结合方向,条件表达式的其它形式。自增自减运算符,前置运算,后置运算,自增自减运算符的优先级与结合方向,位运算,位运算符,位运算的功能,与位运算有关的复合赋值运算符,不同长度的数据的位运算,表达式的求解。

(三)练习题

13_1.利用条件运算符实现大小写字母的转换。

13_2.使用for循环求1至100的和。要求将所有的命令放入一个for循环结构。 13_3.将下列符号函数使用一个条件表达式完成。

13_4.若int a=0,b=1,c=2,判断下列表达式执行后a,b,c及表达式的值 (1) 逻辑表达式

a++&&b++&&c++ (2) 逻辑表达式

++a&&b++&&c++ (3) 逻辑表达式

++a&&--b&&c++ (4) 逻辑表达式

a++||b++||c++ (5) 逻辑表达式

++a||b++||c++ (6) 逻辑表达式

a++||--b||c++ (7) 逻辑表达式

a++||b++&&(c-=2) (8) 逻辑表达式

a++&&b++||(c-=2) (9) 逻辑表达式

++a&&b++||(c-=2)

13_5.若a=1,b=2,c=3,d=4,m=1,n=3,则逻辑表达式 (m=a>b)&&(n=c>d) 13_6.解释x != 0.0 && y/x >1.0的功能。

第14章

变量的存储

(一)本章学习目标

掌握变量的存储概念,理解变量的类别和作用域。

(二)本章重点、要点

变量的存储单元,整型变量在内存中的存储,字符型变量在内存中的存储,实型变量在内存中的存储。变量的作用域,内部变量,外部变量,变量的生存期,auto变量,全局变量,static变量,register变量。

(三)练习题

14_1.在C语言中,变量的存储类别有哪4种? 14_2.什么是外部变量?其特点有哪些? 14_3.寄存器变量有什么特点? 14_4.什么是变量的作用域? 14_5.什么是变量的生存期?

第15章

指针

(二)

(一)本章学习目标

深入理解指针,掌握高层次指针应用,掌握链表的使用。

(二)本章重点、要点

指针与数组,一维数组与一维数组指针,二维数组的指针及数组元素的访问,字符串指针。指针数组,指针数组,指向指针的指针,main函数的参数,函数指针。结构体指针,指向结构体的指针,指向结构体数组的指针,存储管理函数。链表,链表的概念,单链表的基本操作。

(三)练习题

15_1.编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键盘输入整数为1到12 时,显示相应的月份名,键入其他整数时显示错误信息。 15_2.调用MaxMin函数,返回数组的最大值和最小值。

第16章

函数

(二)

(一)本章学习目标

深入理解函数,从存储方面解释函数的调用。

(二)本章重点、要点

函数调用时的内存,函数的活动,程序运行时存储空间的划分,函数的活动记录。参数的传递机制,C语言参数传递,指针参数,数组参数。递归函数,直接递归与间接递归,递归函数的调用过程。

(三)练习题

16_1.设计一个函数把两个整数形参中较大的那个数的地址作为函数值返回,并编写主函数实现调用。

16_2.编写函数,比较两个字符串大小。若相等返回0,大于时返回1,否则返回-1。

第17章

预处理命令

(一)本章学习目标

正确理解预处理命令的概念,掌握预处理命令的使用方法。

(二)本章重点、要点

宏定义,无参宏定义,带参宏定义,宏的作用域。带参的宏与函数的区别,文件包含,条件编译,“# ifdef”命令,“# ifndef”命令,“# if”命令,条件编译和条件语句的比较。

(三)练习题

17_1.C语言的预处理有哪些?

17_2.预处理命令在书写格式上有什么要求?

17_3.#include 和#include “文件名”有什么不同? 17_4. 条件编译和条件语句有什么区别?

参考答案

第1章 绪论

1_1.什么是低级语言?

答:低级语言较依赖于所在的计算机系统,也称为面向机器的语言。使用低级语言编写的程序,移植性较差。低级语言主要包括机器语言和汇编语言。

机器语言是由二进制代码“0”和“1”组成的若干个数字串。用机器语言编写的程序,称为机器语言程序。机器语言程序能够被计算机直接识别并执行。但是,程序员直接编写或维护机器语言程序是很难完成的。

汇编语言是一种借用助记符表示的程序设计语言。汇编语言的每条指令都对应着一条机器语言代码。汇编语言也是面向机器的,即不同类型的计算机系统使用的汇编语言也不同。 1_2.什么是高级语言?

答:高级语言编写的程序易读,易修改,移植性好。但使用高级语言编写的程序不能直接在机器上运行,必须经过语言处理程序的转换,才能被机器识别。按照转换方式的不同,可将高级语言分为解释型和编译型两大类。 1_3.面向过程语言的特点是什么?

答:(1) 采用模块分解与功能抽象的方法,自顶向下,逐步求精。 (2) 按功能划分为若干个基本的功能模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立。每一个功能模块内部都是由顺序、选择或循环三种基本结构组成。 1_4.什么是算法?

答:问题的求解过程,是对数据对象的加工过程。问题的求解过程包括两个方面的内容,即对问题涉及的“数据”进行描述和对“加工过程”进行描述。对“数据”的描述,称为“数据结构”,对“加工过程”的描述,称为算法。 1_5.算法有什么特点? 答:算法具有以下特点:

(1) 有穷性。一个算法包含的操作步骤是有穷的,而不能是无穷的,并且操作时一般还要求是合理可行的。

(2) 确定性。算法的每个操作都是确定的,而不应该具有二义性。

(3) 有零个或多个输入。“输入”指的是执行算法时,需要从外界获取的必要信息。

(4) 有一个或多个输出。算法的目的是为了得到计算的结果。一般地,计算结果即为输出。没有输出的算法是没有意义的。

(5) 有效性。算法的每一个操作都应能有效地执行,并得到确定的结果。 1_6.结构化算法的基本结构有哪些?

答:(1) 顺序结构。 (2) 选择结构。(3) 循环结构。

- 11121314num2 * num2; printf( \"%d ^ 2 + %d ^ 2 = %d\\n\", num1, num2, SquareSum ); printf( \"%d ^ 264 ) % 26 + 65; printf ( \"%c\'s back is %c\\n\", ch, BackCh ); return 0; } 第5章 C语言程序的输出与输入

325_1.编写程序求多项式 ax+bx+c的值( 键盘输入a=2, b=3, c=4, x=1.414)。 # include int main ( ) { float a,b,c,x,y; printf ( \"Input a,b,c,x: \" ); scanf ( \"%f%f%f%f\", &a,&b,&c,&x );/*数据之间以空格分隔*/

y = a*x*x+b*x*c; printf ( \"%fx^2+%fx+%f=%f\\n\", a,b,c,y ); getchar(); getchar(); return 0; } 变化二:

# include int main ( ) { float a,b,c,x,y; printf ( \"Input a,b,c,x: \" ); scanf ( \"%f%f%f%f\", &a,&b,&c,&x );/*数据之间以空格分隔*/ y = a*x*x+b*x*c; printf ( \"%.0fx^2+%.0fx+%.0f=%f\\n\", a,b,c,y ); getchar(); getchar(); return 0; } 变化三:

# include int main ( ) { int a,b,c; float x,y; printf ( \"Input a,b,c,x: \" ); scanf ( \"%d%d%d%f\", &a,&b,&c,&x );/*数据之间以空格分隔*/ y = a*x*x+b*x*c; printf ( \"%dx^2+%dx+%d=%f\\n\", a,b,c,y ); getchar(); getchar(); return 0; } 运行结果参见变化二的结果图。

5_2.已知华氏温度,根据公式:C = 5/9(F-32),求摄氏温度C(结果保留两位小数)。 #include int main ( ) { float f,c; printf ( \"Input f: \" ); scanf ( \"%f\", &f ); c = 5.0/9*(f-32); /* 因为整除的原因,使用了5.0,而不是5 */ printf ( \"C=%f\\n\", c ); return 0; } 5_3.使用宏定义定义符号常量 PI,其值为3.14159,并使用符号常量,求圆半径r=2.456时的圆周长、圆面积。

#include #define PI 3.14159 int main ( ) { float r,c,s; printf ( \"Input r: \" ); scanf ( \"%f\", &r ); c = 2*PI*r; s = PI*r*r; printf ( \"C=%f\\nS=%f\\n\", c,s ); return 0; } 注:也可以采用赋值的方式对r赋值2.456。

5_4.用getchar()分别输入‘A’,‘B’,‘C’,并赋值给a,b,c, 然后将其转换成对应的小写字母,用putchar()将其输出。 #include #include int main ( ) { char a,b,c; printf ( \"Input Upper Characters A,B,C: \" );/* 输入时ABC之间不能有空格! */ a=getchar(); b=getchar(); c=getchar(); a = a+32; b = b-\'A\'+\'a\'; c = tolower(c); printf ( \"a=\"); putchar(a);putchar(\'\\n\'); printf ( \"b=\"); putchar(b);putchar(\'\\n\'); printf ( \"c=\"); putchar(c);putchar(\'\\n\'); return 0; } 5_5.若a=3,b=4,c=5,编写程序,要求用一个scanf()函数完成输入,按以下要求的格式输出:

x1=a+b+c= 3+ 4+ 5= 12 x2=a-b-c= 3- 4- 5= -6 #include #include int main ( ) { int a,b,c; printf ( \"a=\" ); scanf(\"%d\",&a);

printf ( \"b=\" ); scanf(\"%d\",&b); printf ( \"c=\" ); scanf(\"%d\",&c); printf ( \"x1=a+b+c=%d+%d+%d=%d\\n\",a,b,c,a+b+c); printf ( \"x1=a-b-c=%d-%d-%d=%d\\n\",a,b,c,a-b-c); return 0; }

第6章 流程控制—选择控制结构

6_1.使用if语句,求解两个数中的最大值。 /*程序功能:输入两个数,输出其中的大者*/ # include int main ( ) { int num1, num2; printf ( \"Input two numbers: \" ); scanf ( \"%d %d\", &num1, &num2 ); if ( num1 >= num2 ) { printf ( \"max num is %d\", num1); } else { printf ( \"max num is %d\", num2 ); } return 0; } 6_2.使用switch语句,求解简单算术表达式的值。 int main ( ) { int num1, num2, result; char ch; printf ( \"Input a expreion ( e.g.3 + 5): \" ); scanf ( \"%d%c%d\", &num1, &ch, &num2 ); switch ( ch ) /*根据ch的值,选择分支执行*/ {case \'+\': result = num1 + num2;

break; /*求和完毕,退出当前switch语句*/ case \'-\': result = num1181932;

break;

} break; case 1: /*是大写英文字母*/ ch2 = ch1 + 32; break; } printf ( \"Input: %c\\nOutput: %c\\n\", ch1, ch2 ); return 0; } 6_6.编写程序,输入一个年份,判断其是否为闰年。

分析:一个年份,当且仅当符合下列两个条件之一的,即是闰年。 能被4整除,但不能被100整除的年份。例如,1992年、2008年。 能被400整除的年份。例如,2000年、2400年。

用flag的值,表示是否为闰年。如果flag的值为1,表示闰年;如果是0,表示非闰年。 # include

int main ( ) { int year, flag; printf ( \"Input a year: \" ); scanf ( \"%d\", &year ); if ( year % 4 == 0 ) { if ( year % 100 != 0 ) flag = 1; else { if ( year % 400 == 0 ) flag = 1; else flag = 0; } } else flag = 0; if ( flag ) printf ( \"%d is a leap year\\n\", year ); else printf ( \"%d is not a leap year\\n\", year ); return 0; } 第7章 流程控制—循环控制结构

7_1.用while语句,求解连加式1 + 2 + „+ n( n >2)的值。 # include int main( ) { int i = 1,sum = 0 ,n;

printf( “Input a number: ” );

scanf (“%d”,&n); while( i 2)的值。 # include int main ( ) { int i = 1, n; long product = 1; printf ( \"Input a number: \" );

scanf ( \"%d\", &n); do { product = product * i; i = i + 1; } while ( i 10 )的值。 # include int main ( ) { int i, sum = 0; int n; printf ( \"Input a number: \" ); scanf ( \"%d\", &n ); for ( i = 1; i

{ printf ( \"*\" ); j = j + 1; } /*第i行输出2 * i23242526i; ) { printf ( \" \" ); j = j + 1; } /*第i行输出n1 ) { printf ( \"*\" ); j = j + 1; } /*第i行输出2 * ii; ) { printf ( \" \" ); j = j + 1; } /*第i行输出n271 ) { printf ( \"*\" ); j = j + 1; } /*第i行输出2 * i2829303132333435363738394041424344

若要求x

1、x

2、y

1、y2的值分别为

10、20、A、B,正确的数据输入是( )。(注:└┘代表空格)

A.10A└┘20B

B.10└┘A20B C.10 └┘A└┘20└┘ B

D.10A20└┘B 43.若变量已正确说明为float类型, 要通过语句scanf(”%f %f%f”, &a, &b, &c);给a赋予10.0, b赋予22.0, c赋予33.0, 不正确的输入形式为( )。

A.10

B.10.0,22.0,33.0

22

33 C.10.0

D.10

22 22.0

33.0

33 44.有如下程序,若要求x

1、x

2、y

1、y2的值分别为

10、20、A、B,正确的数据输入是( )。(注:└┘代表空格) int x1,x2; char y1,y2;

scanf(”%d%d”,&x1,&x2); scanf(”%c%c”, &y1,&y2); A.1020AB

B.10└┘20└┘ABC C.10└┘20

D.10└┘20AB AB 45.已有定义int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是( )。 A.整型变量的输出格式符只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据 C.%x是格式符

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 46.有如下程序段,对应正确的数据输入是( )。 float x,y; scanf(”%f%f”, &x,&y); printf(”a=%f,b=%f”, x,y); A.2.04

B.2.04,5.67

5.67 C.A=2.04,B=5.67

D.2.055.67 47.有如下程序段,从键盘输入数据的正确形式应是( )。(注:└┘代表空格) float x,y,z; scanf(“x=%d,y=%d,z=%d”,&a,&y,&z); A.123

B.x=1,y=2,z=3 C.1,2,3

D.x=1└┘ y=2└┘ z=3 48.以下说法正确的是( )。

A.输入项可以为一个实型常量,如scanf(”%f”,3.5); B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f); D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f); 49.根据定义和数据的输入方式,输入语句的正确形式为:( )。(注:└┘代表空格) 已有定义:float x,y;

数据的输入方式:1.23

4.5 A.scan(”%f,%f”,&x,&y);

B.scanf(”%f%f”,&x,&y); C.scanf(”%3.2f└┘%2.1f”,&x,&y);

D.scanf(”%3.2f%2.1f”,&x,&y); 50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( )。 #include ”stdio.h” main() {char s1,s2,s3; 输入语句;

printf(”%c%c%c”,s1,s2,s3); } 输入形式:A└┘B└┘C

(注:└┘代表空格) 输出形式:A└┘B A.scanf(”%c%c%c”,&s1,&s2,&s3); B.scanf(”%c└┘%└┘c%c”,&s1, &s2,&s3); C.scanf(”%c,%c,%c”,&s1,&s2,&s3); D.scanf(”%c%c”, &s1, &s2,&s3); 51.以下程序的执行结果是:( )。 #include ”stdio.h” main() { int x=2,y=3; printf(”x=%%d,y=%%d\\n”,x,y); } A.x=%2,y=%3

B.x=%%d,y=%%d C.x=2,y=3

D.x=%d,y=%d 52.以下程序的输出结果是( )。(注:└┘代表空格) #include ”stdio.h” main() { printf(”\\nstring1=%15s*”, ”programming”); printf(”\\nstring2=%-5s*”, ”boy”); printf(”string3=%2s*”, ”girl”); } A.string1=programming└┘└┘└┘└┘*

B.string1=└┘└┘└┘└┘programming*

string2=boy*

string2=boy└┘└┘*string3=gi*

string3=gi*

C.string1=programming└┘└┘└┘└┘*

D.string1=└┘└┘└┘└┘programming*

string2=└┘└┘boy*string3=girl*

string2=boy└┘└┘*string3=girl* 53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )。 #include ”stdio.h” main() { int a;

float b;

- 4748

第19篇:《C语言程序设计》讲稿

《C语言程序设计》讲稿模板

授课题目:

一、目的要求

二、内容概述

三、重点、难点

四、学习方法指导

五、教学方法指导

六、教学内容

七、布置作业

河南财经学院成功学院 信息工程系 马友忠

第20篇:语言程序设计教学大纲(新)

《汇编语言程序设计》理论课程教学大

适用专业:计算机科学与技术

计算机科学与技术系 2009年7月15日

《汇编语言程序设计》理论教学大纲

课程代码:08120013 学 分:3 理论学时:54

课程类别:专业必修

一、课程的目的与任务

汇编语言是高等院校计算机软、硬件及应用专业的专业基础(核心)课,它不仅是计算机原理、接口技术及操作系统等其它核心课程的先行课,而且对训练学生掌握程序设计技术、加深对计算机工作原理的理解有非常重要的作用。通过本课程的学习,使学生了解80x86计算机组织,掌握8086至Pentium微处理器的指令系统和寻址方式,掌握汇编语言程序设计基本思想和方法,同时通过汇编语言程序设计进一步掌握利用程序设计充分发挥计算机效率的基本思想。能进行汇编语言程序的设计、调试。

二、课程内容与要求

1、基本知识 (2学时)

教学内容: 1.1 进位计数制与不同基数的数之间的转换

1.2 二进制数和十六进制数运算 1.3 计算机中数和字符的表示 1.4 几种基本的逻辑运算

教学要求:要求学生深刻理解与牢固掌握二进制数、八进制数、十六进制数、十进制数各数制格式和互换方法, “AND”“OR”“NOT”“XOR”逻辑运算;了解数的补码的加减法,字符的表示法。

重点: 计算机中的数制格式和互换。补码的加减法,字符的表示法。 难点:计算机中的数制格式和互换。

2、80x86计算机组织 (2学时) 教学内容: 2.1 80x86微处理器 2.2 2.3 2.4 2.5 基于微处理器的计算机系统构成 中央处理器 存储器 外部设备

教学要求:熟练掌握80x86的微处理器、中央处理器、各寄存器的作用和存储单元物理地址的计算;一般掌握存储器概念;了解计算机系统和外部设备。

重点:80x86系列CPU寄存器结构、功能和寻址方式。

难点:80x86系列CPU寄存器结构、功能和寻址方式;特别是段寄存器和标志寄存器的寻址方式及使用用法。

3、80x86的指令系统和寻址方式 (16学时) 教学内容: 3.1 80x86的寻址方式

2 3.2 程序占有的空间和执行时间

3.3 80x86的指令系统

教学要求:熟练掌握80x86的各种寻址方式,数据传送指令,加,减,乘除指令,逻辑运算指令,移位指令,串处理指令,控制转移指令,循环指令;一般掌握处理机控制指令,输入输出指令,中断指令,十进制调整指令;了解IBM-PC机器语言指令。

重点:80x86的寻址方式;80x86的指令系统。

难点:80x86的各种寻址方式;数据传送指令;算术指令;移位指令。各种数制运算指令的格式,使用方法,寻址方式和对标志位的影响,特别是对溢出标志位OF的影响。

4、汇编语言程序格式 (8学时) 教学内容: 4.1 4.2 4.3 汇编程序功能 伪操作

汇编语言程序格式

4.4 汇编语言程序的上机过程

教学要求:熟练掌握各种伪操作、汇编语言程序格式和上机过程;一般掌握汇编程序功能。 重点:汇编源程序的书写格式及编译和连接程序的使用。

难点:熟练掌握各种伪操作、汇编语言程序格式和上机过程;

5、循环与分支程序设计 (6学时) 教学内容: 5.1 5.2 循环程序设计 分支程序设计

5.3 如何在实模式下发挥80x86及其后继机型的优势

教学要求:熟练掌握循环程序结构形式与设计方法及多重循环程序设计、分支程序设计结构形式和分支程序设计方法;一般掌握在实模式下发挥80x86及其后继机型的优势。 重点:循环程序结构形式与设计方法及多重循环程序设计、分支程序设计结构形式和分支程序设计方法。 难点:循环程序设计方法和分支程序设计方法。

6、子程序结构 (6学时) 教学内容:

5.

4子程序的设计方法 6.2 子程序的嵌套

6.3 子程序的举例

教学要求:熟练掌握子程序的设计方法、过程定义伪操作、子程序的调用和返回;一般掌握子程序的参数传送;理解结构伪操作STRUC的定义,预赋值和调用;了解子程序的嵌套与递归和DOS功能调用,学会应用子程序解题。

重点:子程序的设计方法、过程定义伪操作、子程序的调用和返回,学会应用子程序解题。 难点:子程序设计以及调用及程序模块间的数据传递方法。

7、高级汇编语言技术 (8学时) 教学内容: 7.1 宏汇编 7.2 7.3 重复汇编 条件汇编

教学要求:熟练掌握宏定义、宏调用、宏展开以及重复伪操作和不定重复伪操作,掌握各条件伪操作的使用。

3 重点:常用伪指令的功能和使用方法。

难点:常用伪指令的功能、用法及注意事项。

8、输入输出程序设计 (4学时) 教学内容: 8.1 I/O设备的数据传送方式 8.2 程序直接控制I/O方式 8.3 中断传送方式

器存取(DMA)方式,了解I/O端口与I/O指令以及中断分类、中断向量表、中断过程、优先级和中断嵌套、中断处理程序。

重点:I/O指令的概念及使用。软硬件中断的概念、功能、用途。

难点:设置、取中断的方法。CPU与外设的数据传送方式及直接存储器存取(DMA)方式。

9、BIOS和DOS中断 (2学时) 教学内容: 9.1 9.2 9.3 9.4 键盘I/O 显示器I/O 打印机I/O 串行通信口I/O 显示中断、DOS显示功能调用、BIOS与DOS的打印功能、中断通信接口、串行口功能调用。

重点:BIOS和DOS中断功能调用;中断处理程序的编写。 难点:中断处理程序的编写。

教材及主要参考书: 《IBM-PC汇编语言程序设计》(第2版) 清华大学出版社 编者:沈美明 温冬婵编著 教学要求:熟练掌握设置、取中断的方法,一般掌握CPU与外设的数据传送方式及直接存储教学要求:熟悉字符码与扫描码,一般掌握BIOS键盘中断、DOS键盘中断、字符属性、BIOS 4

c语言程序设计心得体会
《c语言程序设计心得体会.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档