1本科实验报告课程名称:程序设计技术B实验地点:明相校区软件学院机房208专业班级:软件1409学号:2014005763学生姓名:王璐指导教师:曹棣2014年12月实验名称实验一C语言的运行环境和运行过程2实验二C语言运算符和表达式实验目的和要求1.学会安装C语言编译系统,如:TurboC、Win-TC、VisualC++等;2.学会在上述某种编译系统中程序的编辑、编译、连接和运行;3.通过运行简单的C程序,初步了解C源程序的特点;4.理解C语言的数据类型,掌握各种常量的表示方法,变量的定义、初始化和赋值;5.学会使用C语言的算术运算符以及表达式的求值过程。实验内容1.下载并安装C,语言编译系统,设置编辑。2.输入并运行第1章例1-1和例1-2中程序,并记录遇到的问题和解决方法。3.输入并运行第2章例2-2和例2-3中程序,并记录遇到的问题和解决方法。4.求下面算术表达式的值(先自己分析,再试着用程序求解,比较得到的结果是否一致)。⑴设x=2,a=7,y=4,求x+a%3*(x+y)%2/4;⑵设a=2,b=3,x=3.5,y=2.5,求(float)(a+b)/2+(int)x%(int)y;5.写出下面表达式运算后a的值,设原来a=10。设a和n已定义成整型变量(先自己分析,再试着用程序求解,比较得到的结果是否一致)。⑴a+=a⑵a-=2⑶a*=2+3⑷a/=a+a⑸a%=(n%=2),n的值等于5;⑹a+=a-=a*=a;主要仪器设备台式或笔记本电脑实验记录(写出实验内容中2,3,4,5的程序代码和运行结果)(可分栏或加页)2.1-1.#includestdio.hvoidmain(){floata,b,sum,average;scanf(%f,%f,&a,&b);sum=a+b;average=(a+b/2);printf(sum=%f,average=%f\n,sum,average);}1-2#includestdio.hvoidmain(){floats[10],max,min,sum,score;inti;for(i=0;i10;i++)scanf(%f,&s[i]);max=min=sum=s[0];for(i=1;i10;i++){if(maxs[i])max=s[i];if(mins[i])min=s[i];sum+=s[i];}score=(sum-max-min)/8;printf(score=%.4f,score);}3.2-2./*计算两个整数之和,并输出*/#includestdio.hvoidmain()3{intvalue1,value2,sum;value1=30;value2=45;sum=value1+value2;printf(sum=%d\n,sum);}2-3#includestdio.hintmax(intx,inty){intz;if(xy)z=x;elsez=y;returnz;}voidmain(void){inta,b,c;printf(a,b=);scanf(%d,%d,&a,&b);c=max(a,b);printf(max=%d\n,c);}4.(1)#includestdio.hvoidmain(){intx=2,a=7,y=4,sum;sum=x+a%3*(x+y)%2/4;printf(%d\n,sum);}(2)#includestdio.hvoidmain(){floata=2,b=3,x=3.5,y=2.5,sum;sum=(float)(a+b)/2+(int)x%(int)y;printf(%f\n,sum);}5.#includestdio.hvoidmain(){inta=10,n=5;printf(%d\n,a+=a);printf(%d\n,a-=2);printf(%d\n,a*=2+3);printf(%d\n,a/=a+a);printf(%d\n,a%=(n%=2));printf(%d\n,a+=a-=a*=a);}4遇到的问题、解决方法和心得体会问题:1.编程过程中没有遇到什么太大问题,主要是这部分的学习涉及的逻辑问题较少。2.分号、逗号常打成中文符号,或者忘记加分号。3.编写完程序后不能正常运行,找不出问题所在。解决方法:1.仔细检查,学会运用vc本身的查错功能。2.询问老师和同学。心得体会:编程的主要难点在于程序的逻辑结构设计,编写中要认真仔细。5实验名称实验三简单程序、分支程序和循环程序设计实验四数组应用程序设计实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;5.掌握数组的定义、初始化和数组元素的引用方法;6.掌握与数组有关的算法,如:求最大(小)值,排序等;7.理解字符数组与字符串的关系,掌握字符串的处理过程和常用字符串处理函数。实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。4.输入一百分制成绩,输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。要求程序能处理错误的输入数据。5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。(fabs(t)表示t的绝对值,1e-6=1*10-6)。6.在C语言允许的整数范围内验证哥德巴赫猜想,即任意大于6的偶数都可以表示为两个素数之和,如:100=3+97。7.有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中。8.输入一个英文句子,统计单词的个数。主要仪器设备台式或笔记本电脑实验记录(写出实验内容中3,5,6,8的程序代码和运行结果)(可分栏或加页)3.#includestdio.h#definePI3.14voidmain(){floatr=1.5,h=3.0,c,s,v;c=2*PI*r;s=PI*r*r;v=s*h;printf(该圆柱横切面圆周长为c=%f\n圆面积为s=%f\n圆柱体积为v=%f\n,c,s,v);}4.#includestdio.hvoidmain(){intscore;scanf(%d,&score);if(score=90&&score=100)printf(A\n);elseif(score=80&&score=89)printf(B\n);elseif(score=70&&score=79)printf(C\n);elseif(score=60&&score=69)printf(D\n);elseif(score60&&score=0)printf(E\n);elseprintf(error\n);}65.#includestdio.h#includemath.hvoidmain(){doublePI=0.0,b,c;intsign;sign=-1;b=3.0;do{c=sign*1.0/b;PI=PI+c;sign=-sign;b=b+2.0;}while(fabs(c)1e-6);PI=(PI+1.0)*4.0;printf(π的近似值为%f,PI);}6.#includemath.h#includestdio.hvoidmain(){unsignedintm,n,i,j,f1,f2;printf(Input6evennumber:\n);for(;;){printf(m=);scanf(%d,&m);if(m%2!=0||m=6){printf(error\n);break;}for(i=3;i=m/2;i+=2){for(f1=f2=0,j=2;j=sqrt(i);j++)if(i%j==0){f1=1;break;}if(f1==1)continue;for(n=m-i,j=2;j=sqrt(n);j++)if(n%j==0){f2=1;break;}if(f2==1)continue;elsebreak;}printf(%d=%d+%d\n,m,i,n);}}7.#includestdio.hvoidmain(){inta[6]={2,4,6,8,10},i,t;scanf(%d,&t);for(i=4;ta[i]&&i=0;i--){a[i+1]=a[i];}a[i+1]=t;for(i=0;i6;i++)printf(%d,a[i]);printf(\n);}8.#includestdio.hvoidmain()7{charstr[256],word='';inti,count=0;printf(输入句子:\n);gets(str);for(i=0;str[i]!='\0';i++){if(word==''&&(str[i]='A'&&str[i]='Z'||str[i]='a'&&str[i]='z'))count++;word=str[i];}printf(\n单词数为%d\n,count);}遇到的问题、解决方法和心得体会8问题:1.本章学习涉及到程序结构设计和算法的使用,错误更多的体现在程序的逻辑结构上,不能很好地合理使用有些结构。2.对一些格式说明符和数据输入函数掌握不熟。解决方法:逐步适应把问题按计算机编程的方式分解,并使用课本、课堂上的代码模块填充,学会从课本例题中寻求解决方法。心得体会:编程时应当注意程序的逻辑结构是否有问题,并兼顾简洁性。实验名称实验五指针应用程序设计实验六函数应用程序设计实验目的和要求1.理解指针的概念,掌握指针变量的定义和赋值,掌握使用指针变量访问数据的方法;2.学会使用指针处理数组中的数据,学会用指针处理字符串;3.了解指针数组和指向指针的指针;4.掌握C语言函数的定义、调用和声明方法,掌握函数的参数传递方式;5.了解变量的作用域和存储类别。实验内容1.输入并运行第5章例5-1、例5-3中的程序,观察输出结果,理解指针变量的用法。2.输入并运行第5章例5-5中的程序,掌握使用指针变量访问数组元素的方法。3.编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。(使用指针)4.设计一函数,判断一个字符串是否是回文。“回文”是一种顺序读和反序读都一样的字符串,例如:“121”“abcba”“ABCCBA”。在主函数中输入字符串并输出判断结果。5.编写一个程序,由主函数和如下函数构成。⑴设计函数:input(),输入n个无序的整数存储在一个数组中;⑵设计函数:sort(),用起泡法对数组中的n各数据从大到小排序;⑶设计函数:search(),用折半查找法在已排序的n个数种查找指定的数据,若存在,返回其所处的位置,否则,将其插入适当位置使数据仍有序。在主函数中调用上述函数,验证函数的功能。6.输入并运行第6章例6-27中的程序,根据输出结果总结局部静态变量的特点。主要仪器设备台式或笔记本电脑实验记录(写出实验内容中3,4,5的程序代码和运行结果)(可分栏或加页)3.#includestdio.hvoidmain(){chara[255],*p;printf(输入\n);gets(a);p=a;*p-=32;for(p=a;p(a+255);p++)9{if(*p=='\0')break;elseif(*p=='')*(p+1)-=32;}puts(a);}4.#includestdio.hcharhuiwen(charstr[256]){inti=0,n,a=0;for(n=0;n256;n++){if(str[n]=='\0')brea