湖北理工学院C语言实验七
《C语言程序设计》实验报告(实验1-12)
《C语⾔程序设计》实验报告(实验1-12)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运⾏结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
湖北理工学院14本科C语言实验报告实验一 顺序结构程序设计
问题4要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改?
将scanf("%c%c%d",&a,&b,&c);
#include <stdio.h>
void main()
{
float a,b,c,s,v;
printf("Input a,b,c:");
scanf("%f %f %f", &a,&b,&c);
s=a*b;
v=a*b*c;
printf("a=%f b=%f,c=%f\n",a,b,c);
printf("s=%f,v=%f\n",s,v);
第1种输入方式:1,2,34↙(以逗号作为分隔符)
第2种输入方式:1 2 34↙(以空格作为分隔符)
第3种输入方式:1 2 34↙(以Tab键作为分隔符)
第4种输入方式:1↙
2↙
34↙(以回车符作为分隔符)
将整个程序改成
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
}
当程序执行时,屏幕的显示和要求输入形式如下:
input a,b,c:1.0 2.0 3.0此处的1.0 2.0 3.0是用户输入的数据
C语言程序设计实验实验报告7
C语言程序设计实验实验报告7实验名称:链表实现学生信息管理系统实验目的:通过设计链表实现学生信息管理系统,掌握链表的操作方法及其应用。
实验内容:设计一个学生信息结构体,包括学号、姓名、性别、年龄和成绩五个成员变量,并选择链式结构存储这些数据。
实现以下功能:1. 添加学生信息:从键盘输入学号、姓名、性别、年龄和成绩等信息,添加到链表中。
2. 删除学生信息:从链表中删除指定学号的学生信息。
5. 按成绩排序:按学生的成绩从高到低排序,并输出所有学生的信息。
7. 退出程序:退出学生信息管理系统。
实验方法:1. 设计学生信息结构体,定义链表节点结构体,并编写初始化链表和销毁链表的函数。
2. 编写添加学生信息函数,新建链表节点并插入链表末尾。
3. 编写删除学生信息函数,根据学号查找需要删除的节点,先将该节点从链表中删除,再释放节点空间。
4. 编写修改学生信息函数,根据学号查找需要修改的节点,并修改其成员变量。
6. 编写按成绩排序函数,使用冒泡排序法对链表进行排序,并输出所有学生的信息。
7. 编写输出所有学生信息函数,遍历链表并输出每个节点的信息。
8. 完成学生信息管理系统的主函数,实现菜单及相应功能的选择。
实验结果:依次选择菜单中的各个功能,添加、修改、删除、查找、排序和输出学生信息都能实现。
经测试,程序稳定运行,功能正常,符合需求。
本次实验主要让我们掌握了链式结构的概念、链表节点的定义、链表的初始化、插入、查找、删除和销毁链表的操作方法,以及在实际应用中如何使用链表来实现数据管理。
虽然链表操作相对于数组稍微有些繁琐,但其可以灵活处理数据结构的长度变化,具有更高的可扩展性和更好的操作效率,可以更好的适应各种实际需求。
在实验中,还需要注意节点指针的正确使用、各个函数之间的调用关系和输入输出数据格式的合理选择等问题,以保证程序能够正常运行。
同时,还需要保持认真细致的态度,严格按照实验需求和要求来完成每个步骤,以达到更好的实验效果和运行效率。
c语言实验报告实验
c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C实验报告7参考答案
}
(2)下列程序的功能为:将字符数组中的字符串逆序输出。纠正程序中存在的错误,
以实现其功能。程序以文件名 sy7_2.c 存盘。
#include<string.h>
#include<stdio.h>
#define ARR_SIZE = 80;
#define ARR_SIZE 80
void Inverse(char str[])
t[d+i]=s[i] ;
t[2*d]='/0' ;
t[2*d]='\0'
}
main( )
{
char s[100], t[100];
printf( " Please enter string s : " );
scanf("%s" , s );
sub(s,t) ;
printf( " \n The result is : %s \n ", t );
b[n]=number%2; number=number/2; n++; } } void main(void) { int inumber; int a[20],i; printf("please input nunber: "); scanf("%d",&inumber); printf("\n"); tentotwo(inumber,a ); for(i=n-1;i>=0;i--) printf("%d",a[i]); printf("\n"); }
湖北理工学院14本科C语言实验报告实验三 循环控制
}
}
解答: (1)源代码: #include<stdio.h> void main() {
long data; scanf("%ld",&data); while(data) { printf("%ld,",data%10);
data=data/10; } }
(2)运行结果:
(3)运行结果分析:data 的定义为长整型,当输入 12345 时,while(data),则进入一个 while 循 环,先输出 12345 除以 10 的余(加一个逗号),即输出 12345 的个位数。再令 data 等于 12345 除以 10 的模,从而 data 等于 1234,再次,输出 1234 除以 10 的余(加一个逗号), 即输出 12345 的十位数。接下来依次类推,最终实现输出 5,4,3,2,1。
{ scanf("%d", &mark); if ( mark > 100 ) { printf(" Mark > 100 , Please reinput \n "); break; } if ( mark=-1) break; n ++ ; sum=sum + mark ; if( mark > max ) max = mark ; if( mark < min ) min = mark ;
2. 比较下列两个程序。(验证) #include <stdio.h> void main() { int i,n,sum=0; scanf("%d",&i); n=i; while(i<=10) { sum+=i; i++; } printf("%d+...+10=%d",n,sum); } #include <stdio.h> void main() { int i,n,sum=0; scanf("%d",&i); n=i; do { sum+=i; i++; } while(i<=10); printf("%d+...+10=%d",n,sum); }
c 实验报告7
c 实验报告7实验报告7:C 语言程序设计实验摘要:本实验报告旨在介绍C语言程序设计实验的过程和结果。
在本次实验中,我们使用了C语言编程语言,通过编写程序来实现各种功能。
在实验过程中,我们学习了C语言的基本语法和编程技巧,掌握了如何使用C语言进行程序设计和开发。
通过本次实验,我们对C语言程序设计有了更深入的了解,并且提高了我们的编程能力。
引言:C语言是一种通用的高级编程语言,广泛应用于系统软件和应用软件的开发中。
它是一种结构化的语言,具有丰富的表达能力和灵活的特性。
在本次实验中,我们将运用C语言来实现一些基本的功能,以加深对C语言的理解和掌握。
实验目的:1.了解C语言的基本语法和编程技巧2.学习如何使用C语言进行程序设计和开发3.提高编程能力,加深对C语言程序设计的理解实验材料和方法:在本次实验中,我们使用了C语言编程语言,并且通过编写程序来实现各种功能。
我们使用了一台配备C语言编译器的计算机,以及相应的开发环境和工具。
在编写程序的过程中,我们遵循了C语言的基本语法规则,并且运用了各种编程技巧。
实验结果:在本次实验中,我们成功地编写了一些C语言程序,实现了一些基本的功能。
我们学会了如何定义变量、使用控制结构、编写函数等等。
我们还学会了如何调试程序,发现并解决程序中的错误。
通过实验,我们对C语言程序设计有了更深入的了解,并且提高了我们的编程能力。
讨论:通过本次实验,我们对C语言程序设计有了更深入的了解,掌握了C语言的基本语法和编程技巧。
我们学会了如何使用C语言进行程序设计和开发,提高了我们的编程能力。
在今后的学习和工作中,我们将继续加强对C语言的学习和应用,不断提高自己的编程水平。
结论:通过本次实验,我们对C语言程序设计有了更深入的了解,掌握了C语言的基本语法和编程技巧。
我们学会了如何使用C语言进行程序设计和开发,提高了我们的编程能力。
在今后的学习和工作中,我们将继续加强对C语言的学习和应用,不断提高自己的编程水平。
湖北理工学院c语言实验报告七答案(完整版)
湖北理工学院c语言实验报告七答案(完整版)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March实验七结构体和共用体实验课程名:高级语言程序设计(C)专业班级:学号:姓名:实验时间:实验地点:指导教师:input(stu);print(stu);}运行结果:运行结果分析:首先定义的是结构体(其中要注意结构体中数组),在定义和引用结构体数组是要注意结构体数组的引用,定义函数和引用函数要注意括号内部的变量时结构体。
2、任务名称scanf("%d", &stu[i].score[j]);}}average=0;max=0;maxi=0;for(i=0;i<3;i++){sum=0;for(j=0;j<3;j++)sum+=stu[i].score[j];stu[i].avr=sum/3.0;average+=stu[i].avr;if(sum>max){max=sum;maxi=i;}}average/=N;printf("NO. name score1 score2 score3 average\n");for(i=0;i<N;i++){printf("%5s%10s",stu[i].num, stu[i].name);for(j=0;j<3;j++)printf("%9d",stu[i].score[j]);printf("%8.2f\n",stu[i].avr);}printf("average=%6.2f\n",average);printf("The highest score is:%s,score total:%d.",stu[maxi].name,max); }运行结果:运行结果分析:输入输出时要引用结构体数组中的各种变量,弄清输入输出时的格式,要把简单的排序、求和、求平均值运用于结构体时不能搞混乱了,思路要清晰。
c 实验报告7
c 实验报告7实验报告7:C语言程序设计的应用与实践引言:C语言是一种广泛使用的高级编程语言,它的应用涵盖了各个领域,从嵌入式系统到大型软件开发。
本实验报告将探讨C语言程序设计的一些应用与实践,旨在帮助读者更好地理解和应用C语言。
一、C语言在嵌入式系统中的应用嵌入式系统是现代科技中不可或缺的一部分,而C语言在嵌入式系统的开发中发挥着重要的作用。
通过C语言,开发者可以编写底层的驱动程序和控制程序,实现对硬件的精确控制。
例如,通过C语言编写的嵌入式程序可以控制机器人的运动、传感器的数据采集以及设备的通信等。
二、C语言在游戏开发中的应用游戏开发是C语言的另一个重要应用领域。
C语言的高效性和灵活性使得它成为游戏开发中的首选语言之一。
通过C语言,开发者可以实现游戏的逻辑、图形和音效等方面的功能。
例如,通过C语言编写的游戏引擎可以处理复杂的物理模拟、碰撞检测和图形渲染等任务,为玩家提供流畅的游戏体验。
三、C语言在网络编程中的应用随着互联网的快速发展,网络编程成为了一个重要的技能。
C语言提供了丰富的网络编程库,使得开发者可以轻松地实现网络通信功能。
通过C语言编写的网络程序可以实现客户端和服务器之间的数据传输和通信。
例如,通过C语言编写的网络服务器程序可以处理客户端的请求,如Web服务器可以向客户端提供网页内容。
四、C语言在科学计算中的应用科学计算是许多领域的核心,而C语言在科学计算中的应用也非常广泛。
C语言提供了丰富的数学库和算法,使得开发者可以进行复杂的数值计算、数据分析和模拟等任务。
例如,通过C语言编写的科学计算程序可以解决线性方程组、求解微分方程、进行数据拟合等。
五、C语言在系统开发中的应用系统开发是C语言的又一个重要应用领域。
C语言可以用于开发操作系统、编写驱动程序和系统工具等。
例如,通过C语言编写的操作系统内核可以管理计算机的资源、调度进程和提供系统服务。
此外,C语言还可以用于编写系统工具,如编译器、调试器和性能分析工具等。
湖北理工单片机实验报告
湖北理工单片机实验报告实验报告实验项目名称:P1口实验同组人:实验时间:实验室:指导教师:一、实验目的:(l)学习P1口的使用方法; 熟悉Proteus软件电路设计和Keil软件程序调试方法。
(2)学习软件延时程序的编写。
重点:延时程序,P1口结构二、实验顶备知识:(l)Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
(2)Proteus软件应用,Keil软件程序调试应用。
三、实验内容:㈠模拟开关灯的Proteus仿真及C语言程序设计1、设计要求:监视开关K1(接在P3.0端口上),用发光二级管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2、仿真电路原理图元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管;⑥SW ITCH:开关。
模拟开关灯的电路原理图3、程序设计内容①开关状态的检测过程单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨动开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。
单片机可以采用if(K1= =1)或者if(K1= =0)指令来完成对开关状态的检测。
②输出控制当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二级管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二级管L1亮。
开始K1开关闭合了吗?L1灭L1亮模拟开关灯的程序流程图4、程序清单㈡广告灯(利用查表方式)的Protues仿真及程序设计1、设计要求:利用查表的方法,使端口P1作单一灯的变化;左移2次,右移2次,闪烁2次(延时的时间0.2 s)。
2、仿真电路原理图元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管。
c语言课程实训报告
C语言课程实训报告题目:简单计算器学院名称:湖北文理学院理工学院专业班级:计算机科学与技术学生姓名:张璟东,卢焓,王叶子,陈聪聪学号:15353118,15353111,15353120,15353122指导老师:朱艳艳一、实训目的1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想(请完整填写)1、系统功能与分析(填写你所设计的菜单及流程图)。
2、模块设计根据功能需要:源文件函数名:简单的计算器功能:进行简单的加减乘除平方开方立方运算3、总体设计思想:定义各种算法,再让各种字母对应各种算法,输出不同运算结果。
4、源程序清单(主要代码)# include <stdio.h># include <ctype.h># include <math.h>char get_choice(void); //获取用户输入的选项,并建立目char get_first(void); //获取用户输入的选项,并剔除错误输入float get_int(void); //获取用户输入的计算值float add(void); //定义加法函数float subtraction(void); //定义减法函数float multiplication(void); //定义乘法函数float division(void); //定义除法函数float extract(void); //定义开方函数float square(void); //定义平方函数float cube(void); //定义立方函数int count = 0;int main(void){char choice;printf("***欢迎使用计算器***\n");choice = get_choice();while(choice != 'q'){switch(choice){case 'a':add(); break;case 'b':subtraction(); break;case 'c':multiplication(); break;case 'd':division(); break;case 'e':extract(); break;case 'f':square(); break;case 'g':cube(); break;default :printf("您输入有误,请重新输入:"); break; }fflush(stdin);choice = get_choice();}printf("bye");return 0;}//获取用户输入的选项,并建立目录char get_choice(void){char ch;int a = 0;//建立目录printf("\n--------------------------------\n");printf("a. 加法\t\t\tb. 减法\nc. 乘法\t\t\td. 除法\n"); printf("e. 开方\t\t\tf. 平方\ng. 立方\t\t\tq. 退出\n"); printf("--------------------------------\n");printf("请输入你的选项:");ch = get_first();while(ch == ' ' || ch == '\n' || ch == '\t')ch = get_first();//判断用户输入的选项是否有误while((ch<'a' || ch>'g') && ch !='q'){putchar(ch);printf(" 你输入的选项有误,请重新输入:");ch = get_first();}return ch;}//获取用户输入的选项,并剔除错误输入char get_first(void){char ch;ch = getchar();//剔除由用户输入选项时产生的换行符while(ch == '\n'){ch = getchar();}return ch;}//获取用户输入的计算值float get_int(void){float input;char ch;int a;if(count == 0)printf("亲!请输入数值:");if(count == 1)printf("亲!请输入第一个数值:");if(count == 2)printf("亲!请输入第二个数值:");a = scanf("%f", &input);//判断用户的输入是否为一个数值while(a != 1){//剔除用户输入错误的字符while((ch = getchar()) != '\n'){putchar(ch);printf(" 不是一个数值,请输入例如3、111.2、或者-1");a = scanf("%f", &input);}}return input;}//定义加法函数float add(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();sum = i + j;printf("%.2f + %.2f = %.2f\n", i, j, sum); return sum;}//定义减法函数float subtraction(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();sum = i - j;printf("%.2f - %.2f = %.2f\n", i, j, sum); return sum;}//定义乘法函数float multiplication(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();sum = i * j;printf("%.2f * %.2f = %.2f\n", i, j, sum); return sum;}//定义除法函数float division(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();//判断除数是否为0while(j == 0){printf("除数不能为0\n请重新输入!!!\n"); j = get_int();}sum = i / j;printf("%.2f / %.2f = %.2f\n", i, j, sum);return sum;}//定义开方函数float extract(void){float i, sum;count = 0;i = get_int();//判断开方数是否小于0,如果小于0,则让用户重新输入 while(i < 0){printf("请输入大于0的数值\n");i = get_int();}sum = sqrt(i);printf("%.2f的开方等于%.2f\n", i, sum);return sum;}//定义平方函数float square(void){float i, sum;count = 0;i = get_int();sum = i * i;printf("%.2f的平方等于%.2f\n", i, sum);return sum;}//定义立方函数float cube(void){float i, sum;count = 0;i = get_int();sum = i * i * i;printf("%f的立方等于%.3f\n", i, sum); return sum;}2、程序有待改进的地方及本次实训的收获和建议有待改进的地方:该程序还可以再添加一些其他的功能,比如能够实现ln 、sin 、x^y 、log 、cos 等这些函数的运算,但作为一个计算器,它还不够人性化,功能也不够丰富,所以整个程序的功能有待进一步完善,让更多功能得以实现。
武汉理工大学《C语言程序设计》实验报告
《C语言程序设计》实验报告
实验课程名称C语言程序设计
开课学院计算机科学与技术学院指导教师姓名
学生姓名X X
学生专业班级信息管理与信息系统1101班2012—2013学年第1学期
实验一顺序结构的程序设计
题目一:
程序代码:
题目二:
程序代码:
实验二:选择结构的程序设计题目一:
程序代码:
运行结果:
题目二
程序代码:
运行结果:
实验三循环结构的程序设计题目一
程序代码:
运行结果:
题目二:程序代码:
运行结果:
实验四数据和指针应用的程序设计题目一
程序代码:
运行结果:
运行结果:
程序代码:
运行结果:
实验五函数应用的程序设计程序代码:
运行结果:
程序代码:
运行结果:。
c 实验报告7
c 实验报告7C 实验报告7实验目的:通过C语言编程实现对数组的排序和查找功能。
实验设备:计算机、C语言编程环境实验原理:数组是一组连续存储的相同数据类型的元素,可以通过下标来访问数组中的元素。
排序是将数组中的元素按照一定的顺序重新排列,查找是在数组中寻找指定的元素。
实验步骤:1. 编写C语言程序,实现对数组的排序功能。
利用冒泡排序、快速排序或其他排序算法对数组进行排序,使数组中的元素按照从小到大或从大到小的顺序排列。
2. 编写C语言程序,实现对数组的查找功能。
利用线性查找、二分查找或其他查找算法在数组中寻找指定的元素,并输出该元素的位置或提示未找到。
3. 编译并运行程序,测试排序和查找功能的正确性和效率。
实验结果与分析:经过实验,我们成功地实现了对数组的排序和查找功能。
通过对不同大小的数组进行排序和查找操作,我们发现排序算法的效率对于数组的大小有一定的影响,而查找算法的效率则受到排序后数组的影响较大。
因此,在实际应用中,需要根据具体情况选择合适的排序和查找算法。
实验总结:通过本次实验,我们深入了解了C语言中数组的排序和查找操作,掌握了不同的排序和查找算法,并通过实验验证了它们的正确性和效率。
这对我们进一步提高编程能力和解决实际问题具有重要意义。
实验中遇到的问题和解决方法:在实验过程中,我们遇到了一些问题,如排序算法的选择、查找算法的实现等。
我们通过查阅资料、与老师和同学讨论等方式,最终解决了这些问题,并得以顺利完成实验。
下一步工作展望:在今后的学习和实践中,我们将继续深入研究和应用C语言中的排序和查找算法,探索更多的优化方法和技巧,提高程序的效率和性能,为解决实际问题提供更好的支持。
通过本次实验,我们不仅学到了实际编程技能,还培养了解决问题的能力和团队合作精神,为我们今后的学习和工作打下了坚实的基础。
湖北理工单片机实验报告
湖北理工单片机实验报告一、实验目的本次单片机实验的主要目的是让我们深入了解单片机的工作原理和应用,通过实际操作和编程,掌握单片机的基本开发流程和技能,提高我们的实践动手能力和解决问题的能力。
二、实验设备本次实验所使用的设备包括:1、单片机开发板:_____型号,具备丰富的接口和资源,方便进行实验和开发。
2、计算机:安装有相应的编程软件和调试工具。
3、下载器:用于将编写好的程序下载到单片机中。
4、示波器:用于观察电信号的波形和参数。
5、万用表:用于测量电路中的电压、电流等参数。
三、实验原理单片机是一种集成了中央处理器(CPU)、存储器、输入输出接口等功能的微型计算机系统。
它通过执行预先编写好的程序,对外部输入的信号进行处理,并控制输出设备的工作状态。
在本次实验中,我们主要涉及到单片机的输入输出控制、定时器/计数器的使用、中断系统等原理。
四、实验内容与步骤(一)点亮 LED 灯1、硬件连接:将一个 LED 灯连接到单片机的某个输出引脚,通过限流电阻与电源相连。
2、软件编程:使用相应的编程语言(如C 语言),编写控制程序,使指定的输出引脚输出高电平或低电平,从而点亮或熄灭 LED 灯。
3、下载程序:将编写好的程序通过下载器下载到单片机中。
4、观察现象:观察 LED 灯的亮灭情况,验证程序的正确性。
(二)按键控制 LED 灯1、硬件连接:将按键连接到单片机的输入引脚,LED 灯连接到输出引脚。
2、软件编程:编写程序,实现当按键按下时,LED 灯状态改变(如点亮或熄灭)。
3、下载程序并测试:重复上述下载和观察步骤,验证按键控制的效果。
(三)定时器/计数器实验1、配置定时器/计数器:设置定时器/计数器的工作模式、初值等参数。
2、编写中断服务程序:当定时器/计数器溢出时,触发中断,在中断服务程序中执行相应的操作(如控制 LED 闪烁)。
3、下载和调试:将程序下载到单片机中,观察定时器/计数器的工作效果。
(四)综合实验1、设计一个综合的应用场景,如电子时钟、温度控制系统等。
武汉理工大学《C语言程序设计》实验报告答案
注:在Visual C++ 6.0编译环境中亲自调试通过,但不保证在Turbo C 中通过。
实验二 选择结构的程序设计(题目当初没抄下来,这是根据程序整理的)1.编程实现分段函数⎪⎩⎪⎨⎧<≤-+-<≤-+<≤--=2112381011030184242x x x x x x x x x y#include<stdio.h> main() { float x,y; printf("Please input x:"); scanf("%f",&x); if (x<-1||x>=2) printf("Data Error\n"); else { if (x>=-1&&x<0) y=4*x-8; if (x>=0&&x<1) y=3*x*x+10*x-1; if (x>=1&&x<2) y=8*x*x*x*x-3*x*x+2*x-1; printf("\ny=%f\n",y); } } 2. 苹果有三个等级,一级5.50元/斤,二级3.00元/斤,三级2.50元/斤。
编写程序,输入苹果的等级,购买的数量和所付的钱数,输出等级,购买的数量、应付钱数和找零。
#include<stdio.h> main() { int level; double weight,pay,money,charge; printf("Please input the level:"); scanf("%d",&level); printf("Please input the weight you want:"); scanf("%lf",&weight); printf("Please input the money you pay:"); scanf("%lf",&pay); if (level<1||level>4||weight<0) printf("Data Error\n"); else{ if (level==1) money=weight*5.50; else if (level==2) money=weight*4.20; else if (level==3) money=weight*3.00; else if (level==4) money=weight*2.50; charge=pay-money; printf("\nLevel:%d\nweight:%g\n",level,weight); printf("money:%g\ncharge:%g\n\n",money,charge); } }实验三循环结构1.编程计算1!+2!+3!+4!+5!●分别用单层循环和双层循环实现●考虑∑∑==201101iiii!和!#include<stdio.h>main(){int i,x;double j,k,sum;printf("Please input a number:");scanf("%d",&x);//用单层循环for(sum=0,j=1,i=1;i<=x;i++){j*=i;sum+=j;}printf("The result is %lf\n",sum);//用双层循环for(sum=0,i=1;i<=x;i++){for(k=1,j=1;j<=i;j++) k*=j;sum+=k;}printf("The result is %lf\n",sum);}2.共20个评委给选手评分,去掉1个最高分,去掉1个最低分,其余18名评委的平均分即选手最终得分#include <stdio.h>main(){double score,min,max,avg=0;int i;//下面是为了输入第一个数printf("Please input 20 scores...\n");printf("Score 1: ");scanf("%lf",&score);min=score;max=score;avg+=score;// 下面为了输入剩余19个数for(i=2;i<=20;i++){do{printf("Score %d: ",i);scanf("%lf",&score);}while(score<0);if(score>max) max=score;avg+=score;}avg=avg-min-max;avg/=18;printf("\nThe average score is %lf:\n",avg);}实验四数组和指针的应用1.定义一个有10元素的一位数组count,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排序后的数组输出(1)数组方法#include<stdio.h>main(){int count[10],t,i,j;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&count[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (count[i]<count[j]){t=count[i];count[i]=count[j];count[j]=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d ",count[i]);}(2)指针方法#include<stdio.h>main(){int count[10],t,i,j,*p=count;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&p[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (*(p+i)<*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d ",count[i]);}2.输入2个字符串,将二者连接并输出,再将连接后的字符串反向排列并输出,并求连接后字符串的长度#include<stdio.h>#include<string.h>main(){int i,len;char a1[51],a2[26],t[51];printf("Please input 2 strings:\n");gets(a1);gets(a2);strcat(a1,a2);printf("The joint string is: %s",a1);len=strlen(a1);printf("\nThe length of the linked string is: %d\n",len);for(i=0;i<len;i++)t[i]=a1[len-i-1];t[len]=0;strcpy(a1,t);printf("The reversed string is: %s\n",a1);}实验五函数应用的程序设计1.要求是:编写一函数,统计字符串中字母、数字、空格和其他字符的个数在主函数中输入字符串并输出统计结果值传送:#include<stdio.h>void fun(char a,int *b){if(a>='A'&&a<='Z'||a>='a'&&a<='z')b[0]++;else if(a>='0'&&a<='9')b[1]++;else if(a==32)b[2]++;else b[3]++;}main(){char a[50];int b[4],i,j,k;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);k=0;while(a[k]!=0){fun(a[k],b);k++;}printf("The string have %d letters, %d numbers, %d spaces, %d other chars\n",b[0],b[1],b[2],b[3]);}}地址传递:#include<stdio.h>void fun(char *a,int *b){int i=0;while(a[i] != 0){if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z')b[0]++;else if((a[i]>='0')&&(a[i]<='9'))b[1]++;elseif(a[i]==32)b[2]++;else b[3]++;i++;}}main(){char a[50];int b[4],i,j;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);fun(a,b);printf("\nThe string have %d letters, %d numbers, %d spaces, %d other chars",b[0],b[1],b[2],b[3]);}}。
C语言实验报告
C语⾔实验报告上机要求:禁⽌玩游戏、看视频及从事与课程⽆关的活动。
实验内容按照指导书内容填写,可以把⾃⼰上机编写的程序、遇到的问题、解决办法写上(得到⾼分的条件)。
在有输⼊输出的程序部分,应该写上输⼊输出的结果,以表⽰程序能正确⼯作。
实验⼀编程环境的使⽤⼀、⽬的和要求1.了解编程环境的使⽤。
2.学会处理简单的错误,观察运⾏结果。
3.掌握基本的输⼊输出。
⼆、实验原理VisualC++6.0是⼀个集成的开发环境,包括编辑、编译连接和调试。
编写程序的主要过程是:建⽴⼯作区、建⽴⼯程、添加源⽂件、输⼊程序、运⾏程序、改正出现的错误直到有正确的输出结果。
三、实验内容及步骤1.编程环境的使⽤。
(1)打开VisualC++6.0开发环境。
(2)单击“⽂件-〉新建”菜单命令,显⽰出“新建”对话框(如图1-3)。
在新建对话框单击“⼯程”标签,选中Win32 Console Application项,然后在⼯程框中键⼊控制台应⽤程序项⽬名称,并且选中空⼯程。
(3)添加C++源⽂件,输⼊⽂件名。
(4)打开编辑窗⼝,输⼊程序,保存。
(5)编译运⾏程序,找到其错误位置,改正错误。
2.编写如下程序,从键盘读⼊两个整数,计算它们的和差积商,将结果输出在屏幕上。
3.编写如下程序,从键盘读⼊两个字符,并输出在屏幕上。
四、思考问题1.如何使⽤不同的数据类型。
2.如何处理输⼊输出。
3.如何查找程序中的错误?实验⼆选择结构⼀、⽬的和要求1. 掌握if ...else 及其嵌套的⽤法。
2. 掌握switch 的⽤法。
⼆、实验原理if 语句是专门⽤来实现选择结构的语句,是根据⼀个条件满⾜与否来决定是否执⾏某条语句或从两个语句中选择⼀个语句执⾏。
if-else 语句的⼀般格式为:if (表达式1) 语句1else if (表达式2)语句2……else if (表达式n )语句nelse 语句n+1当程序中有多个条件判断时,若使⽤if 语句可能使嵌套太多,降低了程序的可读性,switch 语句能很好的解决这个问题。
《C语言》实验指导书-上机编程--湖北理工学院
《C语言程序设计》实验指导书实验一顺序结构程序设计一、实验目的及要求1. 了解如何编辑、编译、连接和运行一个C程序;2. 熟悉基本类型的变量的定义;3. 掌握C语言中使用最多的一种语句——赋值语句的使用;4. 掌握数据的输入输出的方法,能正确使用各种格式转换符。
二、实验任务1.熟悉使用VC++6.0编辑、编译、连接和运行一个C程序的过程。
1)启动Visual C++,选择“文件”菜单中的“新建”命令,选择“文件”标签中的“C++ Source File”选项。
2)选择源程序存放的目录和输入源程序名,单击“确定”。
3)在编辑器中编写源程序。
4)单击F7或“编译”中的“重建全部”编译源程序,若编译通过,单击“执行”,在DOS屏上看结果,任按一键返回编辑器。
2. 输入并运行一个简单的程序。
输入下面的程序#include <stdio.h>void main(){printf(“This is a C program.\n”);}编译和连接该程序,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译。
如果编译无错误,运行该程序,观察分析运行结果。
3. 输入并编辑一个C程序。
输入以下程序#include <stdio.h>void main(){ int a,b,sum;a=123;b=456;sum=a+b;print (“sum is %d、n”,sim);}编译改程序,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不出现错误。
运行程序,分析运行结果。
4. 掌握各种格式转换符的正确使用方法。
a. 输入程序#include <stdio.h>void main( ){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61; b=62;f=3157.8901121; g=0.123456789;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);printf(“f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u,q=%u\n”,f,q,m,n,p,q);}b. 运行此程序并分析结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七结构体和共用体
实验课程名: C语言程序设计
专业班级:15级工管1班学号:201540620104 姓名:张润泽实验时间:12.19—12.23 实验地点:k4—508 指导教师:吴桂芳
(2)
(2)运行结果分析:
运行结果正确。
2、有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求打印出3门课总平均成绩,以及及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
程序源代码如下:
#define N 5
struct student
{
char num[ 6 ];
char name[ 8 ];
int score[ 4 ];
(2)运行结果分析:
运行结果正确。
3、使用结构体类型数组编写一个程序用来输入并显示教师的基本情况信息。
教师的基本情况信息包括:姓名、性别、出生年月日、住址、电话、月收入。
要求使用嵌套的结构体类型表示出生年月日,模拟输如下列两个教师的信息,并按下列格式输出在屏幕上。
姓名性别出生日期住址电话月收入
1. 李四女1965年5月8日莲花小区6号7432156 1200.00
2. 王五男1972年8月9日和平里12号8654367 950.00
解答:
(1)源代码:
#include<stdio.h>
#include<string.h>
(3)运行结果分析:
运行结果正确。
三、实验小结
1、结构体类型与基本数据类型的不同,它是复合数据类型。
2、结构体成员变量与普通变量的定义一样,可以是结构体变量。