厦门理工学院+C语言+实验4
实验报告二厦门理工学院C语言选修课上机实验实验4循环结构

《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。
2.学会如何书写一个整型、字符型、实型常量。
3.掌握C算术运算符的基本概念、基本属性、运算规则。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。
程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。
2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。
(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。
2019级C语言实验四--数组 (集美大学)

题目:实验四、数组
学号:201921121073
成
绩
班级:计算1913
日期:2019/11/11
姓名:……
指导老师:林颖贤
助教:
一、实验目的:
掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的ห้องสมุดไป่ตู้值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。
掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。
掌握与数组相关的算法,包括排序算法和二分查找算法等。
二、实验内容:
思路:利用isalpha判断是否是字母,然后用toupper判断大小并进行交换
代码:# include <stdio.h>
# include <string.h>
# include <ctype.h>
int main ()
{
char s[80],h;
int i,j;
gets(s);
int len=strlen(s);
for(i=0;i<len;i++)
for(j=i+1;j<len;j++)
if(isalpha(s[i])&&isalpha(s[j])&&toupper(s[i])>toupper(s[j])){
h=s[j];
s[j]=s[i];
s[i]=h;
}
printf("%s",s);
return 0;
厦理工基于CC++的嵌入式软件综合实训深化部分实验报告

《基于C/C++的嵌入式软件综合实训》课程设计报告(2014— 2015学年第 3 学期)计算机科学与技术系目录设计任务书 (3)分工 (3)一.数组操作 (4)1.1 设计要求 (4)1.2 主要函数 (4)1.3 功能实现 (4)1.4 模块流程图 (5)1.5 实验结果与分析 (5)二.文本编辑系统 (8)2.1 设计要求 (8)2.2 主要函数 (8)2.3 功能实现 (8)2.4 模块流程图 (8)2..5 实验结果与分析 (11)三.计算24游戏 (11)3.1 设计要求 (11)3.2 主要函数 (11)3.3 功能实现 (11)3.4 模块流程图 (11)3.5 实验结果与分析 (14)四.仿LED数码显示 (16)4.1 设计要求 (16)4.2 主要函数 (16)4.3 功能实现 (16)4.4 模块流程图 (17)4.5 实验结果与分析 (17)五.成绩综合处理程序 (19)5.1 设计要求 (19)5.2 主要函数 (19)5.3 功能实现 (19)5.4 模块流程图 (20)5.5 实验结果与分析 (21)六.统计C源程序的代码行数 (24)6.1设计要求 (24)6.2 主要函数 (24)6.3 功能实现 (24)6.4 模块流程图 (25)6.5 实验结果与分析 (27)七.实验心得与体会 (28)八. 参考文献 (30)设计任务书题目:1.数组操作、文本编辑系统、计算24游戏、仿LED数码显示、编写一个成绩综合处理程序、统计C语言源程序的代码行数。
总要求:1、分组讨论,全面透彻的认识问题;2人一组。
2、找出问题的解决算法;3、根据算法画出流程图;4、根据流程图写出代码。
分工一.数组操作1.1设计要求:设计菜单处理程序,对一维数组进行不同的操作。
1、数据输入;2、数据输出;3、数据排序;4、最大值;5、最小值;1)操作项目包括求数组最大值、最小值、求和、求平均值、排序、二分查找、有序插入;2)设计并利用字符菜单进行操作项目的选择,程序一次运行可根据选择完成一项或多项操作;通过菜单“退出”来结束程序的运行;3)数组的输入、输出可支持命令行输入文件名、界面输入文件名从数据文件中输入和输出;也支持界面录入。
厦门理工学院 单片机硬件实验四 定时器实验 硬件实验五计数器实验 C程序

机械工程系微机原理与接口技术实验报告书实验时间:2011年10月31日实验名称:年级专业及班级:姓名:学号:指导教师:刘建春评定成绩:教师评语:硬件实验四定时器实验一、实验要求用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转。
二、实验目的1、学习8031内部计数器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
三、实验电路及连线四、实验说明1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。
内部计数器在单片机中主要有定时器和计数器两个功能。
本实验使用的是定时器。
2、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。
TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
3、内部计数器用作定时器时,是对机器周期计数。
每个机器周期的长度是12个振荡器周期,实验系统的晶振是6MHZ。
4、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
五、实验框图主程序框图定时中断子程序框图硬件实验五计数器实验一、实验要求8031内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。
将其数值按二进制数在P1口驱动LED 灯上显示出来。
二、实验目的1、学习8031内部定时/计数器使用方法。
三、实验电路及连线四、实验说明1.本实验中内部计数器起计数器的作用。
外部事件计数脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。
这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。
同时这就决定了输入波形的频率不能超过机器周期频率。
单次脉冲连线连接孔1连接孔21P1.0L02P1.1L13P1.2L24P1.3L35单脉冲输出T0五、实验框图开始设置工作方式开始计数计数,输出计数值六、实验程序硬件实验五计数器实验#include<reg52.h> void main(){P1=0x00;TMOD=0x05;TH0=0xff;TL0=0xff;IE=0x83;TCON=0x11;while(1);}void time0int()interrupt1{P1++;TH0=0xff;TL0=0xff;}硬件实验四定时器实验#include<reg52.h>sbit rect_wave=P1^0;#define uint unsigned intuint counter=0;void main(){TMOD=0x02;EA=1;ET0=1;TH0=0x06;TL0=0x06;TR0=1;while(1);}void time0int()interrupt1{counter++;if(counter==2000){rect_wave=!rect_wave;counter=0;}}。
c语言 数据结构实验4_厦门理工

《数据结构》实验报告实验序号:4 实验项目名称:栈的操作1.#include <iostream>#define MaxSize 100using namespace std;typedef int ElemType;typedef struct{ElemType data[MaxSize];int top;}SqStack;void InitStack(SqStack *st) //初始化栈{st->top=-1;}int StackEmpty(SqStack *st) //判断栈为空{return (st->top==-1);}void Push(SqStack *st,ElemType * x,int k) //元素进栈{int i;for(i=1;i<k;i++){if(st->top==MaxSize-1){printf("栈上溢出!\n");}else{st->top++; //移动栈顶位置st->data[st->top]=x[i-1]; //数组进栈printf("%d\n",st->data[st->top]);}}}void Pop(SqStack *st,ElemType &e,int k) //出栈{int i;for(i=1;i<k;i++){if(st->top==-1){printf("栈下溢出\n");}else{e=st->data[st->top]; //元素出栈printf("%d \n",e);st->top--; //移动栈顶位置}}}int main(){SqStack L;SqStack *st=&L;ElemType e;ElemType num [9]={1,2,3,4,5,6,7,8,9};InitStack(st);printf("入栈元素是:\n");Push(st,num,10);printf("出栈元素是:\n");Pop(st,e,10);return 0;}2.#include<stdio.h>#include<stack> //引入栈using namespace std;int main(void){int temp=1;char ch;stack<char>s;s.push('#');printf("请输入一个算法表达式,以# 结束!\n");ch=getchar();while(ch!='#'&&temp==1){if(ch=='(')s.push(ch);else if(ch==')'){if(s.top()=='#') //右括号多于左括号temp=0;elses.pop();}ch=getchar();}if(s.top()!='#') //左括号多于右括号temp=0;if(temp==0)printf("圆括号匹配错误!\n",temp);else if(temp==1)printf("圆括号匹配正确!\n",temp);return 0;}。
厦门理工c语言课课程设计

厦门理工c语言课课程设计一、教学目标本课程旨在通过C语言的学习,让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编程思维和解决问题的能力。
同时,通过课程的学习,使学生了解编程在实际应用中的重要性,提高学生对计算机科学的兴趣和热情。
具体的教学目标如下:1.知识目标:(1)理解C语言的基本语法和编程规范;(2)掌握C语言的数据类型、运算符和表达式;(3)熟悉C语言的控制结构,如顺序结构、分支结构和循环结构;(4)了解函数的定义和调用,掌握函数的参数传递和返回值;(5)理解编程中常用的数据结构,如数组、链表、栈和队列等。
2.技能目标:(1)能够使用C语言编写简单的程序,解决实际问题;(2)具备基本的编程思维,能够独立分析和解决编程问题;(3)掌握C语言的调试技巧,能够有效地查找和修复程序错误。
3.情感态度价值观目标:(1)培养学生对编程的兴趣,提高学生对计算机科学的认识;(2)培养学生良好的编程习惯,提高学生的自律性和责任感;(3)培养学生团队合作精神,提高学生的沟通能力和协作能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.第一章:C语言概述介绍C语言的发展历程、特点和应用领域,使学生对C语言有一个整体的认识。
2.第二章:数据类型和运算符讲解C语言的基本数据类型、复杂数据类型和运算符,使学生能够熟练使用C语言进行数据操作。
3.第三章:控制结构介绍C语言的控制结构,包括顺序结构、分支结构和循环结构,使学生能够根据实际问题选择合适的控制结构。
4.第四章:函数讲解函数的定义、声明和调用,使学生能够理解函数的基本概念,并掌握函数的参数传递和返回值。
5.第五章:数组和字符串介绍数组和字符串的概念及其在C语言中的应用,使学生能够熟练使用数组和字符串解决实际问题。
6.第六章:指针讲解指针的概念和用法,使学生能够掌握指针在C语言中的应用,提高程序的性能。
厦门理工学院 C语言报告实验6_函数

} } 2. #include<stdio.h> #define PI 3.14 void main() { float perimeter(float a); float area(float a); float surface(float b,float h); float volume(float b,float h); float r,hh; printf("请输入半径 r 和高 h:"); scanf("%f%f",&r,&hh); printf(" 圆 周 长 : %-10.2f\n 圆 面 积 : %-10.2f\n 圆 柱 表 面 积 : %-10.2f\n 圆 柱 体 积:%-10.2f\n",perimeter(r),area(r),surface(r,hh),volume(r,hh)); } float perimeter(float a) { float p; p=2*a*PI; return p; } float area(float a) { float ar; ar=a*a*PI; return ar; } float surface(float b,float h) { float area(float a); float perimeter(float a); float s; s=area(b)*2+h*perimeter(b); return s; } float volume(float b,float h) { float area(float a); float v; v=h*area(b); return v; }
m=m*I;
int k,n; scanf("%d",&n); m=0; for(k=0;k<=n;k++) m=m+fun(k); printf("%ld\n",m); } 6. 7.
厦门理工c语言课程设计

厦门理工c语言课程设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握数据类型、变量、运算符的使用。
2. 学会使用C语言进行顺序、选择和循环结构的编程,并能运用逻辑思维解决问题。
3. 掌握函数的定义、调用和参数传递,理解模块化编程的思想。
4. 了解数组、字符串、指针在C语言中的应用,并能运用它们进行数据处理。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题。
2. 学会使用C语言调试工具,具备基本的程序调试能力。
3. 能够阅读和分析C语言代码,理解他人编写的程序逻辑。
4. 培养良好的编程习惯,编写规范、简洁、高效的代码。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习主动性和创新精神。
2. 增强学生的逻辑思维能力,提高问题分析和解决能力。
3. 培养学生的团队协作意识,学会与他人共同解决问题。
4. 培养学生严谨、务实的科学态度,树立正确的价值观。
本课程针对厦门理工学院学生特点,结合C语言课程性质和教学要求,将目标分解为具体的学习成果。
课程旨在使学生掌握C语言的基本知识和技能,培养编程兴趣和逻辑思维能力,同时注重团队协作和科学态度的培养,为后续课程和实际应用打下坚实基础。
二、教学内容1. C语言基础知识:数据类型、变量、常量、运算符、表达式。
教材章节:第1章 C语言概述,第2章 数据类型与运算符。
2. 控制结构:顺序结构、选择结构、循环结构。
教材章节:第3章 控制语句。
3. 函数:函数定义、调用、参数传递、递归函数。
教材章节:第4章 函数。
4. 数组与字符串:一维数组、二维数组、字符串操作。
教材章节:第5章 数组与字符串。
5. 指针:指针的概念、指针与数组、指针与字符串、函数指针。
教材章节:第6章 指针。
6. 结构体与联合体:结构体的定义、初始化、结构体数组、联合体。
教材章节:第7章 结构体与联合体。
7. 文件操作:文件的概念、文件打开与关闭、文件读写、文件定位。
教材章节:第8章 文件。
厦门理工学院操作系统实验4

《操作系统》实验报告a.程序运行结果ret= 是一个不确定的值,试说明原因b.将程序中int a=20语句调换到红颜色位置,结果如何c. 将程序中int a=20 int*p=&a;语句置换成蓝颜色语句,结果又如何?(2)阅读下面接收创建子线程返回一个复杂的数据结构变量程序代码并输入、调试、输出结果;针对下列问题进行说明或修改:将temp定义和赋值变为create()函数内定义的局部变量,应如何修改程序对结果又什么影响并说明原因?四、实验结果与数据处理1.线程的创建(1)实验结果:图1:进程的创建一代码图2:程序运行结果(2)结果分析:运行结果:我们可以看到主线程会先打印出相应的ID,然后再是子线程打印自己的ID原因:当一个程序启动时,就有一个进程被操作系统(OS)创建,与此同时一个线程也立刻运行,该线程通常叫做程序的主线程(Main Thread),因为它是程序开始时就执行的,如果你需要再创建线程,那么创建的线程就是这个主线程的子线程。
每个进程至少都有一个主线程,所以没有干预的情况下,主线程都是优先于子线程运行的。
所以在输出ID的时候,主线程会比子线程早输出自己的ID。
(3)思考:a.通过以上实验线程执行与函数调用的不同,线程与进程的不同答:线程是程序执行部分,是操作系统的划分。
函数是编程中的概念,是功能模块的划分。
b.如何控制主线程与子线程的执行顺序答:我们可以使用sleep函数来对线程进行挂起的操作,从而来控制主线程与子线程的执行顺序。
图3:修改后的代码图4:修改后的代码运行结果总结:①线程被创建后,并不能保证那个线程先执行,新创建的线程和调用线程的执行顺序不确定,由操作系统进行调度,注意:编译时要连接库libpthread;就是编译的时候要加-lpthread②在C程序中, main(int argc, char **argv) 就是一个主线程。
我们可以在主线程中做任何普通线程可以做的事情,但它和一般的线程有有一个很大的区别:主线程返回或者运行结束时会导致进程的结束,而进程的结束会导致进程中所有线程的结束。
C语言实验报告实验4-8章答案

{
if(y%400==0||(y%4==0&&y%100!=0))/*判断是否是闰年*/
a[2]=29;
for(i=1;i<m;i++)
day=day+a[i];
day=day+d;
printf("day=%d\n",day);
}
}
T4_
#include "stdio.h"
void main()
C语言实验报告(4-8章)答案目录
实验
T4_1.C
#include "stdio.h"
void main()
{
int x,y;
scanf("%d",&x);
if(x<1)
y=x;
else if (x<10) /* else表示已经>=1 */
y=2*x-1;
else
y=3*x-1;
printf("%d",y);
else
printf("no\n");
}
T
#include "stdio.h"
#include "string.h"
void main()
{
char str[30];
int i,k=0;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
if(!(str[i]>='0'&&str[i]<='9'))
C语言实验报告(精选9篇)

C语言实验报告C语言实验报告(精选9篇)在经济发展迅速的今天,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。
写起报告来就毫无头绪?下面是小编帮大家整理的C语言实验报告,欢迎阅读与收藏。
C语言实验报告1在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c 语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
实验一实验三报告实验报告二厦门理工学院C语言选修课上机实验实验循环结构

实验序号:1实验项目:初识C语言与C编程环境
学 号
0908012232
姓 名
叶志伟
专业、班级
09机制2
实验地点
1-511
指导教师
胡亮
实验时间
0301
一、实验目的及要求
1.掌握Visual C 6.0程序设计集成环境的使用。
2.学会简单程序的调试。
二、实验设备(环境)及要求
程序:#include<math.h>
main ( )
{
float x;
x=sin(0.45456);
printf("%f \n",x);
}
运行结果截图:
可知语句float x;的作用是:
定义X为单精度的浮点型
可知sin的作用是:三角函数名
5.模仿教材中的例题,编写一个求两数之差的程序。编辑、编译、连接和运行。运行结果是什么?
打造全网一站式需求
欢迎您的下载,资料仅供参考
}
运行结果截图:
3.输入下列源程序,进行修改、编译、连接和运行。运行的结果是什么?
程序:main ( )
{
printf("Programming \n");
printf("is Fun.\n");
}
运行结果截图:
可知\n的作用是:
使输出数据另起一行
4.输入下列源程序,进行修改、编译、连接和运行。运行的结果是什么?
运行结果截图:
【思考题】
1.什么是源程序?什么是编译程序?C语言源程序结构是怎样的?
2.对照课本源程序,举例说明程序中哪些是注释、预处理命令、声明语句、可执行语句、函数定义、函数调用、关键词、main()函数等。
厦门理工学院11级C语言 实验8_结构体

{
………
}
return k; //返回最高平均分数组元素的下标
}
【测试数据】
自己设计一组测试数据。
运行结果截图:
【思考与扩展】
如果这样定义结构体
typedef struct Student
{
int num;//学号
char name[20];//姓名注意字节长度
三、实验内容与步骤
1.学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。
【实验要求】
(1)定义学生结构体。
(2)用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数中输出。
《高级语言程序设计》实验报告
实验序号:8实验项目名称:结构体
学 号
姓 名
专业、班级
实验地点
指导教师
实验时间
一、实验目的及要求
1、掌握结构体变量的定义和使用;
2、掌握结构体数组的定义和使用;
3、了解结构指针的定义和使用
二、实验设备(环境)及要求
使用turbo c 2.0+windows系列操作系统的环境。
{
stu[i].aver_score = (stu[i].score[0]+ stu[i].score[1]+stu[i].score[2])/3.0
C语言程序设计实验报告(四).doc11111111111111111

三、实验内容及要求:
内容:
1.下列程序计算SUM的值。调试该程序,使之能正确地计算SUM。写出调试过程。SUM=1+1/2+1/3+...+1/n
mቤተ መጻሕፍቲ ባይዱin( )
{
int t,s,i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
t=1/i;
s=s+t;
s=s*i;
printf("%d! = %d",n,s);
}
首次运行先输入n=4,输出结果为4!=24,这时正确的。为了检验程序的正确性,再输入n=10,输出为10!=24320,这显然是错误的。为了找到程序的错误,可以通过单步执行来观察变量的变化。分析产生这种现象的原因,把程序改正过来,再用n=20进行实验,分析所得到的结果。
printf("%2d",j);
for(j=i-1;j>=1;j--)
printf("%2d",j);
printf("\n");
}
}
五、教师评语(或成绩)
教师签字:徐时芳年月日
printf("s=%f\n",s);
}
在调试过程中,用单步执行的方法观察变量s和t的值的变化,找到程序中存在的问题,加以改正。
2.下面程序的功能是计算n!。
main()
{
int i,n,s=1;
printf("Please enter n:");
scanf("%d",&n);
厦门理工学院C语言选修课上机实验-实验4-循环结构

《高级语言程序设计》实验报告实验序号:4 实验项目:循环结构附源程序清单:1.#include <stdio.h>void main(){int a=0,b=0,c=0; // a->男, b->女, c->小孩,变量初始化为0while(a<=36){b=0;while(b<=36){c=36-a-b;if(c>=0){if((36==a*4+b*3+c/2)&&(0==c%2)) //小孩个数需要为偶数才成立printf("男人:%d 女人:%d 小孩:%d\n",a,b,c);}b++;}a++;}}2.#include "stdio.h"int main(){int i=0,count=0;while (count<10){if (i%3==2 && i%5==4 && i%7==3){printf("%d ",i);count++;}i++;}}3.#include<stdio.h>#include<math.h>main(){long int x;int i=0;printf("input:");scanf("%ld",&x);do{x=x/10;i++;}while(x>0);printf("the nubmer is:%d\n",i);}4.#include<stdio.h>main(){int i,x=3,y=0;for(i=1;i<=10;i++){x=(x-0.5)*2;y+=x;}printf("x=%d\n,y=%d\n",x,y);}5.#include "stdio.h"void main(){int i,a,b,c;int count=0;for(i=100;i<1000;i++){if(i%2==0){a=i%10;b=(i/10)%10;c=i/100;if((a==b && b!=c)||(a==c && b!=c)||(b==c && a!=c)){count++;printf("%d\t",i);}}}printf("\nTotally: %d\n",count);}6.#include<stdio.h>main(){float sum,term,a,b,c;int i;sum=0;a=2;b=1;i=1;while(i<=20){term=a/b;sum=sum+term;c=a+b;b=a;a=c;i++;}printf("数列前20项之和为%.2f\n",sum);}7.#include<stdio.h>int main(){int i,j;for (i=1;i<=7;++i){for(j=1;j<=(i<4?4-i:i-4);++j){printf(" ");}for(j=1;j<=(i<4?i*2-1:15-2*i);++j){printf("*");}for(j=1;j<=(i<4?4-i:i-4);++j){printf(" ");}printf("\n");}}8. #include<stdio.h>void main(){for(int i=0;i<=10;i++){for(int j=0;j<=5;j++){if(i*1+j*2==10)printf("10元可兑换成%d张1元和%d张2元\n",i,j);}}}。
厦门理工c语言数据结构实验

《数据结构》实验报告实验序号:6 实验项目名称:树和二叉树的操作}while(x!=-9999);}改写以上程序,实现功能如下(任选两题):1.编写函数实现前序、中序和后序遍历。
运行结果截图:2.编写函数实现计算叶节点个数。
运行结果截图:四、分析与讨论附源程序清单:1.#include <stdlib.h>#include <stdio.h>typedef int TElemType;typedef struct BiTNode{TElemType data;struct BiTNode *lchild,*rchild;}BiNode, *Bitree;DLR( Bitree root ){ if (root !=NULL) { //非空二叉树printf("%d",root->data); //访问DDLR(root->lchild); //递归遍历左子树DLR(root->rchild); //递归遍历右子树}return(0);}LDR(Bitree root){ if(root !=NULL){LDR(root->lchild);printf("%d",root->data);LDR(root->rchild);}return(0);}LRD (Bitree root){ if(root !=NULL) {LRD(root->lchild);LRD(root->rchild);printf("%d",root->data);}return(0);}Bitree root;//定义根结点void insert_data(int x) /*生成/树*/{Bitree p,q,s;s=(Bitree)malloc(sizeof(BiNode)); //创建结点s->data=x; //结点赋值s->lchild=NULL;s->rchild=NULL;if(!root){root=s;}else{p=root;while(p) /*如何接入二叉排序树的适当位置*/{q=p;if(p->data==x) //相同结点不能重复插入{printf("data already exist! \n");return;}else if(x<p->data)p=p->lchild;elsep=p->rchild;}if(x<q->data)q->lchild=s;elseq->rchild=s;}}void main() /*先生成二叉排序树*/{int i=1,x; //i记录结点个数,x存放结点值root=NULL; /*千万别忘了赋初值给root!*/printf("请输入数据,-9999表示输入结束\n");do{printf("please input data %d:",i);i++;scanf("%d",&x); /*从键盘采集数据,以-9999表示输入结束*/if(x==-9999){printf("\nNow output data value:\n");}elseinsert_data(x); /*调用插入数据元素的函数*/}while(x!=-9999);printf("\nDLR");DLR(root);printf("\nLDR");LDR(root);printf("\nLRD");LRD(root);}2.#include <stdlib.h>#include <stdio.h>typedef int TElemType;typedef struct BiTNode{TElemType data;struct BiTNode *lchild,*rchild;}BiNode, *Bitree;Bitree root;//定义根结点int CountLeaf (Bitree root){ //返回指针T所指二叉树中所有叶子结点个数int m,n;if (!root ) return 0;if (!root->lchild && !root->rchild) return 1;else {m = CountLeaf( root->lchild); n = CountLeaf( root->rchild);return (m+n);} //else} // CountLeafvoid insert_data(int x) /*生成/树*/{Bitree p,q,s;s=(Bitree)malloc(sizeof(BiNode)); //创建结点s->data=x; //结点赋值s->lchild=NULL;s->rchild=NULL;if(!root){root=s;}else{p=root;while(p) /*如何接入二叉排序树的适当位置*/{q=p;if(p->data==x) //相同结点不能重复插入{printf("data already exist! \n");return;}else if(x<p->data)p=p->lchild;elsep=p->rchild;}if(x<q->data)q->lchild=s;elseq->rchild=s;}}void main() /*先生成二叉排序树*/{int i=1,x; //i记录结点个数,x存放结点值int sum;root=NULL; /*千万别忘了赋初值给root!*/printf("请输入数据,-9999表示输入结束\n");do{printf("please input data %d:",i);i++;scanf("%d",&x); /*从键盘采集数据,以-9999表示输入结束*/if(x==-9999){printf("\nNow output data value:\n");}elseinsert_data(x); /*调用插入数据元素的函数*/ }while(x!=-9999);printf(" \n叶节点个数=");sum=CountLeaf (root);printf("%d\n",sum);}。
实验三报告实验报告二厦门理工学院C语言选修课上机实验实验4循环结构

《高级语言程序设计》实验报告实验序号:3 实验项目名称:顺序、选择结构09机制2班学号0908012232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间3月15日一、实验目的及要求1.掌握正确使用逻辑运算符和逻辑表达式表示逻辑判断;2.熟练掌握用if语句编写选择结构的程序;3.掌握switch语句的正确使用;4.初步了解调试程序的一般方法。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入一个华氏温度f,要求输出摄氏温度c。
公式为c=5/9(f-32)。
输出要求有文字说明,取2位小数。
【算法提示】1)定义实变量c,f2)提示输入"Please enter f:"3)读入f4)根据公式计算c5)打印两位精度的结果。
测试结果:华氏温度f 摄氏温度c100.250.523.782.有一函数x (x<1)y= 2x-1 (1<=x<10)3x-11 (x>=10)用scanf函输入x的值,求y值。
【算法提示】1)定义实变量x,y2)提示输入"Please enter x:"3)读入x4)判断x所在的区间,对应出y的计算公式并求值(进一步细化)5)打印结果。
运行结构截图:3.从键盘上输入一个正整数,判断这个数能否同时被3和5整除;运行结构截图:4.假设手机有两种收费方式,第一种是每分钟0.6元,无月租费;另一种是每分钟0.4元再收50元月租费,输入一个月打电话的时间(分钟),判断那一种更省钱。
运行结构截图:5.税收问题。
假设某国家收税是分段计费,标准如下:在1万元以上部分收税20%;5000-10000元部分收税10%;1000-5000元部分收税5%;1000元以下部分免税。
根据输入的金额计算应缴纳的税金。
如:某人收入是12000元,则应缴纳的税金为4000*5%+5000*10%+2000*20%=1100元【实验提示】①给你的变量起个好名字,不要什么变量都用a,b,c…等,变量最好用英文单词或单词的缩写命名,变量名字要体现变量在程序的含义和作用。
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际编程操作,加深对 C 语言基本语法、数据类型、控制结构、函数等知识的理解和运用,提高编程能力和解决实际问题的能力。
二、实验环境操作系统:Windows 10编译器:DevC++ 511三、实验内容(一)基本数据类型与运算1、定义不同类型的变量,如整型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和基本运算。
2、观察不同数据类型在内存中的存储方式和取值范围。
(二)控制结构1、编写使用 ifelse 语句实现条件判断的程序,根据输入的数值输出不同的结果。
2、运用 for 循环和 while 循环结构,实现计算指定范围内的整数和、平均值等。
(三)数组与字符串1、定义数组并进行初始化,实现数组元素的遍历和操作。
2、处理字符串的输入、输出和基本操作,如字符串的连接、比较等。
(四)函数1、定义和调用自定义函数,实现特定功能,如计算阶乘、判断素数等。
2、理解函数的参数传递方式(值传递和地址传递)。
四、实验步骤及代码实现(一)基本数据类型与运算```cinclude <stdioh>int main(){int num1 = 10;float num2 = 314;char ch ='A';printf("整型变量 num1 的值为:%d\n", num1);printf("浮点型变量 num2 的值为:%f\n", num2);printf("字符型变量 ch 的值为:%c\n", ch);int sum = num1 +(int)num2;printf("num1 和num2 的和(强制转换为整型)为:%d\n",sum);return 0;}```(二)控制结构1、 ifelse 语句```cinclude <stdioh>int main(){int num = 5;if (num > 10) {printf("数字大于 10\n");} else {printf("数字小于或等于 10\n");}return 0;}```2、 for 循环```cinclude <stdioh>int main(){int sum = 0;for (int i = 1; i <= 10; i++){sum += i;}printf("1 到 10 的整数和为:%d\n", sum);return 0;}```3、 while 循环```cinclude <stdioh>int main(){int num = 1;int product = 1;while (num <= 5) {product = num;num++;}printf("1 到 5 的乘积为:%d\n", product);return 0;}```(三)数组与字符串1、数组```cinclude <stdioh>int main(){int arr ={1, 2, 3, 4, 5};for (int i = 0; i < 5; i++){printf("数组元素 arr%d 的值为:%d\n", i, arri);}return 0;}```2、字符串```cinclude <stdioh>include <stringh>int main(){char str1 ="Hello, ";char str2 ="World!";char str320;strcpy(str3, str1);strcat(str3, str2);printf("连接后的字符串为:%s\n", str3);int result = strcmp(str1, str2);if (result == 0) {printf("两个字符串相等\n");} else if (result < 0) {printf("str1 小于 str2\n");} else {printf("str1 大于 str2\n");}return 0;}```(四)函数1、计算阶乘```cinclude <stdioh>int factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}int main(){int num = 5;int fact = factorial(num);printf("%d 的阶乘为:%d\n", num, fact);return 0;}```2、判断素数```cinclude <stdioh>int isPrime(int n) {if (n <= 1) {}for (int i = 2; i i <= n; i++){if (n % i == 0) {return 0;}}return 1;}int main(){int num = 7;if (isPrime(num)){printf("%d 是素数\n", num);} else {printf("%d 不是素数\n", num);}return 0;}五、实验结果与分析(一)基本数据类型与运算程序运行结果符合预期,不同数据类型的变量能够正确存储和运算,对浮点型数据的强制类型转换也能得到正确的结果。
新编jw1[工学]C语言程序设计实验报告——实验四
![新编jw1[工学]C语言程序设计实验报告——实验四](https://img.taocdn.com/s3/m/3dbc03babe23482fb5da4c40.png)
C语言程序设计实验报告一一实验四实验内容与步骤prin tf("%d",x)?}(4)#in clude<stdio.h>void mai n(){int a,b,c?a=2?b=7?c=5?switch(a>0){ case 1:switch(b<10){ case 1:pri ntf("@")?break?case O:printf(”!”)?break?}case 0:switch(c==5){ case 0:pri ntf("*")?break ?case1:pri ntf("#")?break?default: prin tf("%%")?break?}default:pri ntf("&")?}(5)以下程序在执行时,从键盘输入3,输出为。
#in clude<stdio.h>void mai n(){int x?scan f("%d",& x)?switch(x){ case 5: prin tf("Excelle nt")? default: prin tf("Poor")? case 4: prin tf("Good")?case 3: prin tf("Pass")?case 2: prin tf("Fail")?}}2 •以下程序可能有多处错误,请改正并上机调试。
(1)实验内容与步骤#in clude<stdio.h>void mai n(){int year,leap?scan f("%d",year)?if((year%4=0 &year%100!=0)OR(year%400==0)) leap=1? elseleap=0?if(leap=1)n ",year)?elsen",year)?}3.在横线处给程序填空。
C语言程序设计实验(4)

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
课程实验报告课程名称:C语言程序设计专业班级:信息安全1302班学号:姓名:指导教师:报告日期:2014年6月16日计算机科学与技术学院目录目录 .................................................................................................................. 错误!未定义书签。
1 实验概述....................................................................................................... 错误!未定义书签。
2 第一次实验................................................................................................... 错误!未定义书签。
2.1 实验目的........................................................................................... 错误!未定义书签。
2.2 实验内容........................................................................................... 错误!未定义书签。
2.3 实验小结........................................................................................... 错误!未定义书签。
3 第二次实验................................................................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》实验报告
实验序号:4 实验项目:循环结构
附源程序清单:
1.
方法1:用while语句:
#include<stdio.h>
main()
{
float sum=0,term,a,b,c;
int i=1;
sum=0,a=2,b=1;
while(i<20)
{
sum=sum+a/b;
b=a,a=a+i;
i=i+1;
}
printf("%f",sum);
}
方法2:用do-while语句:#include<stdio.h> main()
{
float sum=0,term,a,b,c;
int i=1;
sum=0,a=2,b=1;
do{
sum=sum+a/b;
b=a,a=a+i;
i=i+1;
}while(i<20);
printf("%f",sum);
}
方法3:用for语句:#include<stdio.h> main()
{
float sum=0,term,a,b,c;
int i=1;
sum=0,a=2,b=1;
for(;i<20;)
{
sum=sum+a/b;
b=a,a=a+i;
i=i+1;
}
printf("%f",sum);
}
2.#include<stdio.h>
main()
{
int x,y,z;
for(x=1;x<9;x++)
for(y=1;y<12;y++)
for(z=2;z<36;z+=2)
if(x+y+z==36 && 4*x+3*y+z/2==36)
printf("boy:%d,gilr:%d,child:%d\n",x,y,z); }
3.
#include<stdio.h>
main()
{
int x,y=0;
x=1;
while(y!=10)
{
if(x%3==2 && x%5==4 && x%7==3)
{
printf("%d\n",x++);
y=y+1;
}
else
x=x+1;
}
}
4.
#include<stdio.h>
main()
{
long int x,a,i=0;
scanf("%ld",&x);
do{
a=x/10;
i=i+1;
x=a;
}while(a!=0);
printf("它的位数是:");
printf("%d",i);
}
5.#include<stdio.h>
main()
{
long float x=3.0,a,b=0;
int i=1;
for(;i<=10;i++)
{
a=(x-0.5)*2;
b+=a;
x=a;
}printf("第十年产量a=%f\n十年的总产量b=%f",a,b);
}
6.
#include<stdio.h>
main()
{
int x,a;
for(x=0;x<=5;x++)
for(a=0;a<=10;a++)
if(2*x+a==10)
printf("两元纸币x=%d,一元纸币a=%d\n",x,a);
}
7.#include<stdio.h>
main()
{
int i,j,a=4,b=1;
for (i=1;i<=3;i++)
{for (j=1;j<=a;j=j+1)
printf(" ");
for (j=1;j<=b;j=j+1)
printf("*");
printf("\n");
b=b+2;
a=a-1;
}
for(i=1;i<=4;i++)
{for(j=1;j<=i;j++)
printf(" ");
for (j=1;j<=8-(2*i-1);j++)
printf("*");
printf("\n");
}
}
;
}
}
8#include<stdio.h>
main()
{
int x=100,d=1,a,b,c,i=0;
do{
if(d==x%2) x++;
else {
a=x%10;
b=x/100;
c=(x/10)%10;
if((a==b&&a!=c)||(a==c&&a!=b)||(b==c&&b!=a)) printf("%d\n",x++),i++;
else x++;
}
}while(x!=999);
printf("共有%d个",i);
}.。