C语言结构化程序设计实验报告
- 格式:doc
- 大小:51.00 KB
- 文档页数:4
实验四结构化程序设计一、实验目的1.掌握结构化程序设计思想和算法设计方法2.掌握各类语句的用途和使用方法3.掌握条件的表示方法4.掌握表示条件结构的几种语句形式5.掌握表示循环结构的几种语句形式6.掌握break语句和continue语句的功能和使用7.了解goto语句的适用范围及使用二、实验相关知识本次实验涉及如何根据一个问题来设计算法,采用“自顶向下,逐步细化”的结构化程序设计方法,以及如何将算法用C语言描述出来。
掌握C语言中三种程序控制结构:顺序、选择和循环及对应的各类语句。
如表达式语句、复合语句、空语句、条件语句、循环语句和跳转语句,以及表示条件的关系运算符(<、<=、>、>=、==、!=)和逻辑运算符(!、&&、||)的使用。
基本的顺序结构语句有表达式语句、空遇句、复合语句等,选择结构语句有if语句和switch语句等,循环结构语句有while语句、do-while语句和for语句以及跳转语句break和continue等。
1.表示选择结构的语句形式●if(表达式)语句●if(表达式)语句1else语句2●if(表达式1)语句1else if(表达式2)语句2…else if(表达式n-1)语句n-1else语句n●if (表达式1)if (表达式2)语句1else 语句2elseif (表达式3)语句3else 语句4●switch (表达式) {case 常量表达式1: 语句列1case 常量表达式2: 语句列2 …case 常量表达式n: 语句列ndefault: 语句列n+1}2.表示循环结构的语句●while (表达式) 语句●do语句while (表达式);●for (表达式1;表达式2;表达式3)语句3.表示跳转的语句●break语句可用来跳出switch语句或循环结构,其一般形式为:break;要注意的是,break语句仅用于跳出所在的switch语句或循环语句。
安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期2019.09.30 指导教师实验名称顺序结构程序设计一、实验目的1.掌握数据的输入/输出方法,能正确使用有关格式转换符。
2.掌握顺序结构程序中语句的执行过程。
3.掌握顺序结构程序的设计方法。
二、实验内容1.P47页第一个程序的作用是依次输入2个整数,计算并输出这2个整数之差。
(1)分析程序,若运行时输出:200,160<回车>,预期结果是多少?(2)上机运行该程序,查看程序运行结果是否符合题目要求。
如果不符合,请分析原因并修改程序,直至符合要求为止。
2.P47页第二个程序用于实现按下列公式计算并输出s1和s2的值:s1=3/(a+b)2,s2=ab/(a+b)3,其中a,b为整型数据。
(1)根据题意修改上述程序,并进行调试,直到正确为止。
(2)在(1)的基础上,将“scanf("%d,%d",&a,&b);”改为“scanf("%d%d",&a,&b);”后再编译、连接、运行。
3.分析P47页第三个程序,写出预期结果,然后输入调试,查看运行结果与预期结果是否一致,并分析其原因。
4.编程实现下列功能并上机调试运行。
(1)设圆半径为r,求圆周长和面积。
要求用scanf函数输入数据,输出时取小数点后两位。
(2)输入一个3位十进制整数,分别输出百位、十位以及个位上的数。
(3)从键盘输入一个带两位小数的实数,将其整数部分和小数部分分离后输出。
(4)用getchar函数读入两个字符,然后分别用putchar和printf函数输出这两个字符。
*思考题:5. 若实验内容1的程序改为P48页第一个程序段,运行该程序,输入5,3,查看程序运行结果是否与自己预测的结果一致,并分析原因。
6.若实验内容1的程序改为P48页第二个程序段,运行该程序,输入5,3,查看程序运行结果是否与自己预测的结果一致,并分析原因。
《C程序设计》选择结构程序设计实验报告2、完成改错后的程序#include <stdio.h>#include <ctype.h>char fun(char c){ if (c>='A' && c<='Z')/**********found**********/c=c+32;if (c>='a' && c<='u')/**********found**********/c=c+5;else if(c>='v' && c<='z')c=c-21;return c;}main ( ){ char cl, c2;printf("Enter a letter(A-Z):");cl=getchar( );if (isupper(cl)){ c2=fun(cl);printf("\n\nThe letter %c change to %c\n",cl,c2);}elseprintf("\nEnter (A-Z) !\n");}运行结果:(截图)3、解题思路:源程序:1.#include<stdio.h>#include<math.h>void main(){float s;int m,year;printf("please input money and year:");scanf("%d%d",&m,&year);switch(year){case 1:s=m*pow((1+0.03),year);break;case 2:s=m*pow((1+0.033),year);break;case 3:case 4:s=m*pow((1+0.038),year);break;case 5:s=m*pow((1+0.042),year);break;default:s=m*pow((1+0.042),year);break;}printf("s=%f\n",s);}2.#include<stdio.h>#include<math.h>void main(){float s;int m,year;printf("please input money and year:");scanf("%d,%d",&m,&year);if(year==1)s=m*pow((1+0.03),year);if(year==1)s=m*pow((1+0.03),year);if(year==2)s=m*pow((1+0.033),year);if(year>=3&&year<=4)s=m*pow((1+0.038),year);if(year>=5)s=m*pow((1+0.042),year);printf("s=%f\n",s);}运行结果:(截图)4、解题思路:源程序:#include<stdio.h>main(){int i,yue,year,day;printf("please input nian and yue :");scanf("%d,%d",&year,&yue);switch(yue){case 1:printf("有31天");break;case 2:if(year%4==0&&year%100!=0||year%400==0)printf("有29天");else printf("有28天");break;case 3:printf("有31天");break;case 4:printf("有30天");break;case 5:printf("有31天");break;case 6:printf("有30天");break;case 7:printf("有31天");break;case 8:printf("有31天");break;case 9:printf("有30天");break; case 10:printf("有31天");break; case 11:printf("有30天");break; case 12:printf("有31天");break; }}运行结果:(截图)。
贵州大学《C程序设计实验》实验报告实验名称:逻辑结构程序设计专业电子信息科学与技术班级姓名学号教师2010年elsey=3*x-11;printf("x=%d,y=%d\n",x,y); }○1输入输出○2输入输出分析:声明变量int x,y;用scanf函数从屏幕输入x的值scanf("%d",&x);当x<1时,执行y=x;党1<=x<10时,执行y=2*x-1;党x是其他值时执行//}if(score==100)temp=9;elsetemp=(score-score%10)/10;switch(temp){case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf("score=%d,grade=%c\n",score,grade); }输入:输出:输入输出②再运行一次程序,输入分数为负值(如一70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输人数据错”,程序结束。
为了解决以上问题,程序改为#include<stdio.h>void main(){int score,temp,logic;char grade;//printf("请输入成绩:");//scanf("%d",&score);logic=1;while(logic){}printf("score=%d,grade=%c\n",score,grade);}运行情况当输入负数时分析:这几条语句logic=1;while(logic){printf("请输入成绩:");scanf("%d",&score);if(score>=0&&score<=100),logic=0;printf("\n");}是先把logic的值赋1,用while循环内的语句来判断输入的值,并控制程序运行情况:处理的数为1位正整数处理的数为2位正整数处理的数为3位正整数处理的数为4位正整数处理的数为5位正整数处理的数超过5位正整数if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("计算后的结果为:%d %d %d %d\n",a,b,c,d); 运行情况:输入输出:修改程序使之按由大到小顺序输出。
c语言程序设计—结构体—实验报告
实验报告
一、实验背景
随着计算机科学的发展,数据的处理和存储已经发生了巨大的变化,变得更加结构化和更有效率。
考虑到这一点,结构体在计算机程序设计中尤其重要。
因此,本实验的目的是练习使用C语言编程,设计并实现相应的结构体,来实现一定的功能。
二、实验目标
设计一个结构体struct book,包含书名、作者名、出版社、价格等字段,并实现以下功能:
(1)按照书名查找图书;
(2)将书籍信息以字符串格式输出;
(3)将书籍信息保存到文件中;
三、实验内容
1. 用C语言定义结构体struct book,包含书名字段name(char类型)、作者author(char类型)、出版社publisher(char类型)、价格price(float类型)等信息。
2. 创建一个函数findBook,输入参数为书名字符串,输出参数为书籍信息struct book。
该函数实现按照书名查找图书功能,若查找成功返回书籍信息,否则返回null。
四、实验结果
经过上述步骤,已经编写了相应的C语言程序实现了按照书名查找图书、将书籍信息以字符串格式输出、将书籍信息保存到文件中、从文件中读取书籍信息等功能。
五、总结
本实验中,使用C语言实现了结构体struct book的定义及四个功能的程序,理解并大致掌握了结构体的使用,学会用程序实现数据的存取。
因此,我们可以看到,结构体的使用可以使数据的存取更加有效率和简单,对于程序设计是很重要的一个概念。
哈尔滨理工大学软件学院《结构化程序设计(C)》项目实践报告题目:********班级:软件15-*班专业:软件工程/集成电路设计与集成系统姓名:****学号:**********指导教师:****日期:2015年12月4日目录一、需求分析(三号,宋体,粗体) (2)二、系统设计(三号,宋体,粗体) (2)(一)系统中的数据定义(四号,黑体,粗体) (2)(二)系统的概要设计 (2)(三)系统的详细设计 (2)(四)系统的核心算法 (2)三、系统编码及运行(三号,宋体,粗体) (3)(一)系统开发涉及的软件 (3)(二)系统运行界面及结果 (3)四、系统测试(三号,宋体,粗体) (3)五、总结 (3)附录(源代码) (4)(注:这部分可以点击右键更新生成,重新设置字体为四号)一、需求分析(三号,宋体,粗体)正文用小四字体,行间距为1.5倍。
正文用小四字体,行间距为1.5倍。
正文用小四字体,行间距为1.5倍。
报告中的图要有标号,如图1,图2,并给图加注释。
需求分析主要介绍系统开发的背景、意义、有哪些主要的功能,可以通过画框图说明系统的主要功能,并说明每一个功能模块。
注意不要展示运行的结果界面。
二、系统设计(三号,宋体,粗体)(一)系统中的数据定义(四号,黑体,粗体)说明系统中定义使用了哪些数据,比如学生管理系统,学生的定义包括哪些数据,以及设计的类型。
(二)系统的概要设计可以通过画框图或流程图阐述系统模块之间的关系以及运行的先后顺序。
(三)系统的详细设计各个功能模块内部结构执行的过程,可以画流程图。
(四)系统的核心算法可以使用伪代码或者流程图表示系统各模块设计中用到的核心算法。
三、系统编码及运行(三号,宋体,粗体)(一)系统开发涉及的软件包括代码编写工具,画图工具,文档撰写工具(二)系统运行界面及结果要求有运行结果截图展示,可以分模块说明。
如图1所示为系统登录界面。
图1 系统登录界面四、系统测试(三号,宋体,粗体)主要列举测试数据,及结果,发现系统的bug,以及解决方法。
c语言顺序结构实验报告篇一:实验三顺序结构程序设计实验报告实验三顺序结构程序设计实验报告一、实验目的1. 掌握掌握赋值语句的使用方法。
2. 各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3. 进一步掌握编写程序和调试程序的方法。
二、实验内容(源代码)1. sy3-(1) ①#includeint main() { int a,b;//基本整型float d,e; //单精度浮点型 char c1,c2;//字符型 double f,g;//双精度浮点型long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型a=61,b=62; c1='a';c2='b';//'a''b'的"'"不能掉了d=3.56;e=-6.87; //d,e之间用";"隔开f=3157.890121;g=0.9; m=50000;n=-60000; p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/" printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g}③#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开 f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g④#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%d,c2=%d\nd=%d,e=%d\n",sizeof (a),sizeof(b),sizeof(c1),sizeof(c2),sizeof(d),sizeo f(e));printf("f=%d,g=%d\nm=%d,n=%d\np=%d,q=%d\n",sizeof(f ),sizeof(g),sizeof(m),sizeof(n),sizeof(p),sizeof(q) );}2. sy3-(2)#include int main() {float h,r,c,s1,s2,v1,v2; //定义float pi=3.1415926; //赋值printf("圆半径r=,圆柱高h=:");//提示scanf("%f,%f",&r,&h); //输入c=2*pi*r; //计算s1=pi*r*r;//"*"不可省略s2=4*s1;v1=4.0/3.0*s1*r; v2=s1*h;printf("圆周长:c=%6.2f\n",c); //输出 printf("圆面积:s1=%6.2f\n",s1);printf("圆球表面积:s2=%6.2f\n",s2); printf("圆球体积:v1=%6.2f\n",v1); printf("圆柱体积:v2=%6.2f\n",v2); return 0;}3. sy3-(3)#include#include //不要忘了数学函数 int main() {float p,r5,r3,r2,r1,r0,p1,p2,p3,p4,p5; //定义p=1000;//赋值printf("r5=,r3=,r2=,r1=,r0=:");//提示 scanf("%f,%f,%f,%f,%f",&r5,&r3,&r2,&r1,&r0); //输入 p1=p*r5*5; //计算}p2=p*(1+2*r2)*(1+3*r3)-p; p3=p*(1+3*r3)*(1+2*r2)-p; p4=p*pow(1+r1,5)-p; p5=p*pow(1+r0/4,20)-p;printf("方案1的利息:p1=%f\n",p1); //输出printf("方案2的利息:p2=%f\n",p2); printf("方案3的利息:p3=%f\n",p3); printf("方案4的利息:p4=%f\n",p4); printf("方案5的利息:p5=%f\n",p5); return 0;4. sy3-(4)① #include int main() {char c1='C',c2='h',c3='i',c4='n',c5='a';//定义与赋值 c1=c1+4;//计算 c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}② #include int main(){ }char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-22;//计算 c2=c2-22; c3=c3-22; c4=c4-22; c5=c5-22;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;③ #include int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-4;//计算 c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}篇二:C语言实验二程序、总结顺序结构与输入、输出方法实验二顺序结构与输入/输出方法1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期2019.10.31 指导教师实验名称综合运用3种基本结构进行程序设计一、实验目的1.熟练运用“数据类型与表达式”相关内容,选择合适的数据结构定义问题需要的变量。
2.熟练使用scanf函数和printf函数,进行数据的输入与输出。
3.进一步掌握顺序、选择、循环结构程序设计的方法与技巧。
4.综合运用3种基本结构进行程序设计。
二、实验内容1.百马百担。
100匹马,共驮100担,大马驮3担,中马驮2担,2个小马驮1担,问大、中、小马各多少?2.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
3.打印输出“水仙花数”。
“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
4.讲一个正整数分解成每个质因数的乘积。
如输入90,打印90=2*3*3*5.5.利用循环语句编写程序实现以下功能:对一个正整数,将各位数字反序后形成一个新的整数输出。
6.一个素数加上1000以后是37的倍数,求满足这个条件的最小素数。
7.找1000以内的所有“完数”。
一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6就是一个完数,因为6=1+2+3。
8.从键盘输入一串数字字符(该字符串至多包含一个点号'.'),将其转换成对应的实数。
说明:点号前有0~9位数字字符,点号后有0~6位数字字符,但是点号前后不能同时没有数字字符。
例如输入“36.8”或“36.80”,则输出实数36.800000;输入“.8”、“0.8”或“0.800”,则输出实数0.800000;输入字符串“36”或“36.0”,则输出实数36.000000.9.两个羽毛球队进行两两单打比赛(每名选手只能上场1次),每队3名选手。
甲队为A、B、C三人,乙队为X、Y、Z三人,已知A不和X对抗,C不和X、Z对抗。
10.*思考题已知VINGTCINQ11.+ CINQTRENTE试编写程序用尽可能少的时间求解各个字母代表的数字。
c语言选择结构程序设计实验报告实验目的:通过程序设计,熟悉C语言中选择结构if-else、switch-case的使用,掌握结构化程序设计方法。
实验环境:Windows10操作系统、Dev C++编译器实验内容:1. if-else结构首先,我们先来看看if-else结构的语法格式:if(条件1){//如果条件1成立,执行该语句块}else if(条件2){//如果条件1不成立,但条件2成立,执行该语句块}else{//如果条件1和条件2都不成立,执行该语句块}if-else语句块的执行顺序是:先判断条件1是否成立,如果成立,就执行if语句块中的语句,然后跳过else-if和else语句块;如果条件1不成立,就继续判断条件2是否成立,如果成立,就执行else-if语句块中的语句,然后跳过else语句块;如果条件2也不成立,就执行else语句块中的语句。
下面给出一个简单的例子,通过if-else结构来判断一个数的正负性:2. switch-case结构switch(表达式){case 常量1://如果表达式的值等于常量1,执行该语句块break;case 常量2://如果表达式的值等于常量2,执行该语句块break;...default://如果表达式的值既不等于常量1,也不等于常量2,执行该语句块break;}switch-case语句块的执行过程是:首先计算表达式的值,然后与每个case后的常量进行比较,如果匹配成功,则执行对应的语句块,直到遇到break或者switch-case语句块执行完毕;如果所有case都不匹配,就执行default语句块中的语句。
实验总结:本次实验是一次很好的C语言程序设计练习,通过对选择结构的学习和应用,不仅巩固了基本知识点,还学习了如何使用结构化程序设计方法来解决实际问题。
在实验过程中,我遇到了一些问题,比如在switch-case语句块中,没有添加break语句会导致程序出错,需要仔细检查。
实验报告专业软件工程班级X 班学号_ XXXXXXXXX_ 姓名实验日期:201X年X月X日报告退发(订正、重做)课程C程序设计实验实验名称结构体一、实验目的二、实验环境(描述实验的软件、硬件环境)①软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;②硬件环境:PC机一台三、实验内容、步骤和结果分析题目一:#include <stdio.h>#include <stdlib.h>struct Stu{int num;char name[20];char sex;int age;float score[3];};void fun(struct Stu *stu, int i){float sum = stu->score[0] + stu->score[1] + stu->score[2], aeg = sum / 3.0;printf("\n第%d位学生的基本信息如下:\n\n", i);printf("学号:(%d)\t姓名:(%s)\t性别:(%c)\t年龄:(%d)\n\n", stu->num, stu->name, stu->sex, stu->age);printf("三科成绩:(%.2f,%.2f,%.2f)\n\n", stu->score[0], stu->score[1], stu->score[2]);printf("总成绩:(%.2f) 平均成绩:(%.2f)\n", sum, aeg);printf("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"); }int main(){int i, n;printf("The number of students is:");scanf("%d", &n);struct Stu *stu = (struct Stu *)calloc(n, sizeof(struct Stu));for (i = 0; i<n; i++){printf("请输入第%d位学生的基本信息:\n", i + 1);printf("学号:");scanf("%d", &(stu + i)->num);printf("姓名:");scanf("%s", (stu + i)->name);printf("性别:");scanf(" %c", &(stu + i)->sex);printf("年龄:");scanf("%d", &(stu + i)->age);printf("三科成绩:");scanf("%f%f%f", &(stu + i)->score[0], &(stu + i)->score[1], &(stu + i)->score[2]);putchar('\n');}printf("===================================================================\n");for (i = 0; i<n; i++){fun(stu + i, i + 1);}return 0;}题目二:计算每一个结构体的两个变量所表示的长度之和(单位:厘米)(1)分别定义公制METRIC(成员包括:米、厘米)和英制BRITISH(成员包括:英尺、英寸)两个结构体;(2)为每一个结构定义两个变量。
c语言顺序结构程序实验报告C语言顺序结构程序实验报告引言:C语言作为一种高级编程语言,具有广泛的应用领域。
在本次实验中,我们将学习和实践C语言中的顺序结构程序设计。
通过编写一系列的实验程序,我们将深入了解顺序结构的概念和原理,并掌握如何使用C语言编写简单的顺序结构程序。
实验目的:1. 了解顺序结构程序的概念和特点;2. 掌握C语言中的基本数据类型和变量的声明;3. 学习使用C语言中的输入输出函数;4. 熟悉C语言中的基本运算符和表达式;5. 掌握C语言中的条件语句和循环语句的使用。
实验步骤:1. 实验程序一:计算圆的面积和周长首先,我们需要声明一个常量PI,并定义一个变量radius用于存储圆的半径。
然后,通过输入函数获取用户输入的半径值,并使用相应的公式计算圆的面积和周长。
最后,通过输出函数将计算结果显示在屏幕上。
2. 实验程序二:华氏温度转换为摄氏温度在这个实验中,我们需要定义一个变量fahrenheit用于存储华氏温度的值。
然后,通过输入函数获取用户输入的华氏温度,并使用相应的公式将其转换为摄氏温度。
最后,通过输出函数将转换后的摄氏温度显示在屏幕上。
3. 实验程序三:判断一个数是否为偶数在这个实验中,我们需要定义一个变量num用于存储用户输入的数值。
然后,通过输入函数获取用户输入的数值,并使用条件语句判断该数是否为偶数。
最后,通过输出函数将判断结果显示在屏幕上。
4. 实验程序四:计算1到n的累加和在这个实验中,我们需要定义一个变量n用于存储用户输入的数值。
然后,通过输入函数获取用户输入的数值,并使用循环语句计算1到n的累加和。
最后,通过输出函数将计算结果显示在屏幕上。
实验结果与分析:通过以上实验程序的编写和运行,我们成功实现了顺序结构程序的设计。
在实验程序一中,我们计算了圆的面积和周长,通过输入函数获取用户输入的半径值,并使用相应的公式计算出了圆的面积和周长。
在实验程序二中,我们将华氏温度转换为摄氏温度,通过输入函数获取用户输入的华氏温度,并使用相应的公式将其转换为摄氏温度。
安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期指导教师实验名称综合运用3种基本结构进行程序设计一、实验目的1.熟练运用“数据类型与表达式”相关内容,选择合适的数据结构定义问题需要的变量。
2.熟练使用scanf函数和printf函数,进行数据的输入与输出。
3.进一步掌握顺序、选择、循环结构程序设计的方法与技巧。
4.综合运用3种基本结构进行程序设计。
二、实验内容1.百马百担。
100匹马,共驮100担,大马驮3担,中马驮2担,2个小马驮1担,问大、中、小马各多少2.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
3.打印输出“水仙花数”。
“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
4.讲一个正整数分解成每个质因数的乘积。
如输入90,打印90=2*3*3*5.5.利用循环语句编写程序实现以下功能:对一个正整数,将各位数字反序后形成一个新的整数输出。
6.一个素数加上1000以后是37的倍数,求满足这个条件的最小素数。
7.找1000以内的所有“完数”。
一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6就是一个完数,因为6=1+2+3。
8.从键盘输入一串数字字符(该字符串至多包含一个点号'.'),将其转换成对应的实数。
说明:点号前有0~9位数字字符,点号后有0~6位数字字符,但是点号前后不能同时没有数字字符。
例如输入“”或“”,则输出实数;输入“.8”、“”或“”,则输出实数;输入字符串“36”或“”,则输出实数.9.两个羽毛球队进行两两单打比赛(每名选手只能上场1次),每队3名选手。
甲队为A、B、C三人,乙队为X、Y、Z三人,已知A不和X对抗,C不和X、Z对抗。
10.*思考题已知VINGTCINQ11.+ CINQTRENTE试编写程序用尽可能少的时间求解各个字母代表的数字。
提示:题目要求所用时间尽可能少,那么下面这种方法很显然是不可行的:for (V=1;V<=9;V++)for(I=0;I<=9; I++)…for (E=0;E<=9; E++)12.{..}可以通过找出某个字母的范围,减少循环次数来节约运算时间。
C语言程序设计-控制结构程序设计实验报告实验报告实验课程名称C C 语言程序设计实验项目名称控制结构程序设计年级专业姓学生姓名学号实验时间:年月日学生所在学院:专业:班级:姓名学号实验组实验时间指导教师成绩实验项目名称控制结构程序设计实验目的及要求:目的:(1). 以简单例证熟悉scanf()、printf()函数的使用及顺序结构程序设计。
(2). 用if-else 语句及其嵌套形式编写一个选择结构问题的程序设计。
(3). 用switch 语句实现一个多分支选择的应用问题程序设计。
(4). for 语句、while 语句、do…while 语句的应用设计,包括多重循环问题。
要求:能熟练掌握采用选择控制语句(if 语句、switch 语句)、循环控制语句(for 语句、while 语句、do…while 语句)进行程序设计;掌握break 语句、continue 语句;掌握控制结构的嵌套。
要求用流程图表示算法。
实验(或算法)原理:在许多问题中需要用到循环控制。
循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。
循环分为两种:无休止循环和有终止循环。
构成有效循环的条件:循环体和循环结束条件。
实验硬件及软件平台:计算机Viscual VC++6.0实验步骤:1.分析题目,写出算法;2.用C 语言写出程序;3.检查并改进所写程序;4.编译并连接,运行程序,若有错误,再检查并修改。
)实验内容(包括实验具体内容、算法分析、源代码等等):(1 1 )数据加密算法分析、源代码如下:# includestdio.h void main() {char c1="c",c2="h",c3="i",c4="n",c5="a";c1=c1+16;c2=c2+12;c3=c3-5;c4=c4-5;c5=c5+14;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 实验结果如下:((2 )成绩等级判定算法分析、源代码如下:#includestdio.h main() {int score;scanf("%d",score);printf("score=%d:",score);switch(score/10) {case 10:printf("very good\n");case 9:printf("A\n");case 8:printf("B\n");case 7:printf("C\n");case 6:printf("D\n");case 5:printf(" 挂科\n");} } 实验结果如下:((3))***-*****0011k k kkk k算法分析、源代码如下:#include stdio.h main() {int i;double s=0;for(i=1;ii++)s+=i;for(i=1;ii++)s+=i*i;for(i=1;ii++)s+=1.0/i;printf("%lf\n",s);} 实验结果如下:((4 )不多于5 位的正整数的操作(P113.7 )算法分析、源代码如下:#include stdio.h #include string.h main() {char a,b; int n,i; printf(" 输入一个不多于五位的正整数:"); scanf("%s",a); n=strlen(a); printf(" 它的位数是:%d\n",n); printf(" 它的各位数字是:\n"); for(i=0;ii++) printf("%c\t",a[i]); printf("\n"); for(i=0;ii++) b[n-i-1]=a[i]; b[n]=0; printf(" 它的逆序是:\n"); puts(b); } 实验结果如下:((5 )生成水仙花数#include stdio.h main() {int i,k,j; long s,q; for(i=1;ii++)for(k=0;kk++)for(j=0;jj++){s=i*100+k*10+j;q=i*i*i+j*j*j+k*k*k;if(s==q)printf("%ld\n",s);} } 实验结果如下:实验结果与讨论:经过上次的实验操作,这次的实验虽然难了点。
实验2 顺序结构程序设计一、实验目的1. 学会使用自然语言或伪代码描述算法2. 掌握变量、运算符、表达式的使用3. 熟悉顺序结构程序中语句的执行过程4. 掌握标准输入流对象cin及标准输出流对象二、实验内容编写程序在屏幕上显示如图2-1所示的菜单。
图2-1 学生选课管理系统主界面实验步骤:范例:1)在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。
//***************************************************************//* 程序名:实训2_1.cp *//* 主要功能: *//* 显示主菜单,并获取用户输入的模块编号 *//***************************************************************#include <iostream> // 包含输入输出接口文件using namespace std; // 引用标准命名空间void mainMenu();int main() // 定义主函数{ // 主函数开始mainMenu();return 0;}void mainMenu(){system("cls");cout<<"\n\n\n\n\n";cout<<"\t\t|---------------学生选课系统(学生版)------------|\n";cout<<"\t\t|\t 0. 退出 |\n";cout<<"\t\t|\t 1. 学生信息管理 |\n";cout<<"\t\t|\t 2. 教师信息管理 |\n";cout<<"\t\t|\t 3. 课程信息管理 |\n";cout<<"\t\t|\t 4. 学生选课管理 |\n";cout<<"\t\t|\t 5. 学生成绩管理 |\n";cout<<"\t\t|\t 6. 信息统计模块 |\n";cout<<"\t\t|-----------------------------------------------|\n\n";cout<<"\t\t\t请输入模块编号(0-6):";}2)运行范例所示程序,观察输出结果实训1要求编写程序在屏幕上显示如图2-2所示的菜单。
C语言程序设计实验报告范文c语言程序设计实验报告书c语言程序设计实验报告篇一一、实验目的:1、掌握C语言的`数据类型和变量的声明。
2、掌握不同类型数据之间赋值的规律。
3、掌握C语言的运算符和表达式的使用。
4、熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容:①输人程序: includevoid main() { int a, b; float d,e; charc1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000;p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果按习题4. 8要求编写程序题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。
程序:三、实验步骤:①输人程序:includevoid main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%dc1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果。
西南石油大学实验报告一、实验目的1、学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式;2、熟练掌握if语句和switch语句;3、熟练掌握三种循环语句:while、do-while和for的使用。
4、掌握break和continue语句在循环中的控制作用。
5、掌握利用循环语句求解一些常用算法的方法。
二、实验环境1、硬件环境:微型计算机一台2、软件环境:Windows XP操作系统、VC6.0三、实验内容菜单设计:输出如下图所示的菜单,实现菜单命令的选择。
*************************************** 1---成绩输入** 2---查找最高分** 3---查找最低分** 4---计算平均成绩** 5---成绩输出** 6---成绩排序输出** 0---退出***************************************输入0-6之间的任意整数,实现对应菜单命令的输出。
1、用户输入1时,实现输入3个学生的成绩。
2、用户输入2时,查找并显示出最高分。
3、用户输入3时,查找并显示出最低分。
4、用户输入4时,计算并显示出平均成绩(保留1位小数)。
5、用户输入5时,输出所有成绩和成绩总和。
6、用户输入6时,对成绩排序并输出排序结果。
7、用户输入0时,退出程序。
注:清屏函数是system("cls"),结束程序运行函数是exit(0),用户输入0时才结束程序,不输入0则保持运行状态。
先运行以下程序代码,体会清屏和退出程序的功能#include<stdio.h>#include<stdlib.h>void main(){printf("测试清屏\n");system("pause");system("cls");printf("结束程序运行\n");system("pause");exit(0);printf("***不会显示***\n");}四、项目分析与设计(分析问题,给出解决方法及流程图)五、程序实现及运行结果(程序代码,运行结果截图)六、实验小结(遇到的问题,解决的方法,意见和建议)#include<stdio.h>#include<stdlib.h>void main(){int x,i,j;float a[3],max,min,sum=0,ave=0,t,fen,b[3];while(1){system("cls");printf("1---成绩输入\n");printf("2---查找最高分\n");printf("3---查找最低分\n ");printf("4---计算平均成绩\n");printf("5---成绩输出\n");printf("6---成绩排序输出\n");printf("0---退出\n");scanf("%d",&x);switch(x){case(1):{for(i=0;i<3;i++){ scanf("%f",&fen);a[i]=fen;}printf("%f",a[i]);}break;case(2):{max=a[0];for(i=0;i<3;i++){if(max<a[i])max=a[i];}printf("max=%f",max);system("pause");}break;case(3):{min=a[0];for(i=0;i<3;i++){if(min>a[i])min=a[i];}printf("min=%f",min);system("pause");}break;case(4):{for(i=0;i<3;i++)sum+=a[i];ave=sum/i;printf("ave=%.1f\n",ave);system("pause");}break;case(5):{for(i=0;i<3;i++){sum+=a[i];printf("%f\n",a[i]);}printf(“sum=%f”,sum);system("pause");}break;case(6):{for(i=0;i<2;i++){for(j=i+1;j<3;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}for(i=0;i<3;i++)printf("%f\n",a[i]);system("pause");}break;case(0):exit(0);}}}。
c语言程序设计实验报告C语言程序设计实验报告一、实验目的1. 熟悉C语言的基本语法和程序结构。
2. 掌握C语言的基本输入输出操作。
3. 学会使用C语言进行简单的数据处理。
二、实验环境- 操作系统:Windows 10- 编译器:Visual Studio 2019- 开发工具:Visual Studio Code三、实验内容本次实验主要包括以下几个部分:1. 编写一个C语言程序,实现基本的输入输出功能。
2. 编写一个C语言程序,实现简单的数学运算。
3. 编写一个C语言程序,实现数组的基本操作。
四、实验步骤4.1 实验一:基本输入输出编写一个程序,要求用户输入一个整数和一个浮点数,然后输出这两个数的和。
```c#include <stdio.h>int main() {int num1;float num2;printf("请输入一个整数和一个浮点数:");scanf("%d %f", &num1, &num2);printf("整数和浮点数的和是:%f\n", num1 + num2);return 0;}```4.2 实验二:数学运算编写一个程序,实现两个整数的加、减、乘、除运算,并输出结果。
```c#include <stdio.h>int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);printf("加法结果:%d\n", a + b);printf("减法结果:%d\n", a - b);printf("乘法结果:%d\n", a * b);printf("除法结果:%d\n", a / b);return 0;}```4.3 实验三:数组操作编写一个程序,实现对整型数组的初始化、遍历和求和。
实验2 结构化程序设计
一、 实验目的
1.了解C/C++语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。
2.学会正确使用逻辑运算符和逻辑表达式。
3.熟练掌握if 语句和switch 语句。
4.熟练掌握while 语句、do ...while 语句和for 语句格式、使用方法以及区别,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
5.掌握break 和continue 程序控制语句的使用。
6.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
7.结合程序掌握一些简单的算法。
8.学习调试程序。
二、实验环境
PC 微机
Windows 操作系统
VS 2019 程序集成环境
三、实验内容与步骤
1.编写程序:根据公式
2
222213121116n ++++= π ,输出 π的值。
要求:
(1)变量π为单精度类型,n 为整型;
(2)计算当n 的取值分别为20,50 ,100,200时的π值,说明什么问题?
(3)修改程序,不给出n 值,而改为求π值,直到最后一项的数值小于10-4 为止。
(4)对修改后的程序,输出π值以及总的项数n 。
输出格式为:π=值;n=值。
代码①:
#include <stdio.h>
#include<math.h>
int main()
{
int n,i;
float pi;
double sum = 0;
while ((scanf("%d", &n) != EOF)) {
for (i = 1; i <= n; i++) {
sum += 1.0 / (i * i);
}
pi = (float)sqrt(6 * sum);
printf("%f\n", pi);
sum = 0;
}
return 0;
}
代码②:
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
float pi;
double sum = 0;
for (i = 1; 1.0 / (i * i) >= 1e-4; i++) {
sum += 1.0 /( i * i);
}
pi = (float)sqrt(6.0 * sum);
n = i;
printf("pi = %f;n = %d",pi,n);
return 0;
}
结果分析:
1.第一问:当n = 20、50、100、200时pi分别为“3.094670、3.122627、3.132077、3.136826”,
由此可知当n越大时,pi的精度越高。
2.第二问:pi =
3.132077,n = 101。
实验总结:这道题主要是运用for语句来实现变量的增长和控制,做题时应注意对限制量的思考。
2.编程实现:由用户从键盘输入一串字符(以回车键结束),统计其中数字、大、小写字母、空格、其它字符的个数。
要求:
(1)通过键盘输入字符。
(2)给出相应的输入/输出信息提示。
并按照数字、大写字母、小写字母、空格、其它字符数的顺序输出结果。
代码:
#include<stdio.h>
int main()
{
int a = 0, b = 0, C = 0, d = 0,e = 0;
char c;
while ((c = getchar()) != '\n') {
if ('0' <= c && c <= '9') a++;
else if ('A' <= c && c <= 'Z') b++;
else if ('a' <= c && c <= 'z') C++;
else if (c == ' ') d++;
else e++;
}
printf("%d %d %d %d %d", a, b, C, d, e);
return 0;
}
实验结果:
输入:123 asvdu23ADasd @#$a
输出:5 2 9 2 3
实验结果和预期一致。
实验总结:应注意题目要求回车键结束和对各种类型的字符的判断。
3.计算并输出1000以内最大的10个素数以及它们的和。
要求:
(1)在程序内部加必要的注释。
(2)由于偶数不是素数,可以不考虑对偶数的处理。
(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。
(4) 输出形式为:素数1+素数2+素数+…+素数10=总和值。
代码:
#include<stdio.h>
int main()
{
int a[11] = { 0 }, sum = 0, n = 0, cnt = 0, j;
for (int i = 1000;cnt < 10; i--) {//从1000倒着搜索,取前十个素数
if (i % 2 == 0) continue;//排除偶数
for (j = 2; j*j <= i; j++) {//判断是否为素数
if (i % j == 0) break;
}
if (j * j > i) {
a[n++] = i;
cnt++;
sum += i;
}
}
printf("%d+%d+%d+%d+%d+%d+%d+%d+%d+%d=%d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], sum);
return 0;
}
实验结果:997+991+983+977+971+967+953+947+941+937=9664
实验心得:起初采取暴力搜索的方式选取1000以内的素数并递减排序,最终输出预期结果,但自己也觉得繁琐,开始优化程序,思考后发现可以直接倒着搜索,取前十个素数即可。
所以做题前应尽量避免暴力搜索,通过设置搜索条件减少循环空间,并养成优化程序的习惯。
实验总结:因为是要最大的10个素数,所以i应从大到小。
判断是否为素数就是判断从2到i的开方中是否有数可以整除j。
对于不足十个数的情况可以用数组来解决。