C语言上机实验_代码_上课用
C语言程序设计上机实验报告

(1)创建新项目
选择“文件”一“新建”一“项目”命令;或者按[Ctrl+Shif+N]组合键;也可以在主窗口的起始页面中单击“新建项目”按钮,进入新建项目向导 在“新建项目”对话框左窗格的已安装的模板中选择"VisualC++”--“ Win32”
在对话框中窗格中选择“Win32控制台应用程序”
②在“添加命令”对话框中(见图2.4),从“类别”列表框中选择类别名称,如“调试”,从“命令”列表框中选择要添加的命令,如“开始执行(不调试)”
③单击“确定”按钮,再单击“关闭”按钮。
单击工具栏右侧的下拉按钮,也可以添加或删除命令按钮。
(4)菜单或工具栏的其他操作
在“自定义”对话框“命令”选项卡的“请选择要重新排列的菜单或工具栏”选项组中,选择要移动的菜单或工具栏,单击“上移”或“下移”按钮移动菜单或命令:单击“删除”菜单成命令,单击“全部重置”按钮将所选的菜单栏、工具栏或上下文菜单恢复为其原单需覆由“键盘”按租,可给选中的命令设定快捷键:单击“修改所选内容”按键可以对菜单或命令进行分组
选中“自动换行”复选框,行中水平方向超出可视编辑器区域的任何部分会自动显示在下一行。
选中“行号”复选框,行号出现在每行代码的旁边。行号不会添加到代码中,也不会打印出来,仅供参考。
制表符相关设置。
在“选项”对话框的左侧窗格中选择“文本编辑器”一“C/C++”或“所有语言”一“制表符”,如图2.20所示。各选项的含义如下:
单击“移除”按钮,将选定的文件从当前项目中移除,文件没有被删除,依然存于该项目单击“删除”按钮,选定的文件将永久删除,该项目文件夹内不再含有此文件。
(3)建立多项目文件
C语言上机实训

上机实验二变量的定义及基本数据类型一、实验概要1、熟练掌握C语言变量的定义和使用。
2、掌握C语言的基本数据类型。
二、实验内容1.运行下面程序,写出运行结果,并分析原因。
#include"stdio.h"main(){char x,y,z;x='a';y=3+x;printf("%c\t%d\n",x,x);printf("%c\t%d\n",y,y);x=-28;z=98+x;printf("%c\t%d\n",x,x);printf("%c\t%d\n",z,z);}2. 运行下面程序,写出运行结果,并分析原因。
#include"stdio.h"main(){char x,y;x=’a’;y=’B’;printf("%c \n",x-32);printf("%c \n",y+32);}3 运行下面程序,写出运行结果,并分析原因。
#include “stdio.h”main( ){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“%c%c\t%c\tabc”,c1,c2,c3);printf(“\t\b%c%c\n”,c4,c5);}4. 运行下列程序,写出运行结果。
#include “stdio.h”main( ){char x,y;x=’a’; /*第5行*/y=’b’; /*第6行*/printf(“x=%c,y=%c\n”,x,y);printf(“x=%d,y=%d\n”,x,y);}并分析在下面三种情况下的运行结果:(1)该程序的变量定义原来为char x,y;现在改成int x,y; 运行程序,分析运行结果。
(2)将5、6行改为:x=a;y=b; 再运行程序,分析程序为什么有错误出现。
C语言上机实验

实验1目的1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
实验二二、实验目的:1、掌握C语言的数据类型。
2、学会使用C语言的运算符及表达式。
3、掌握不同数据类型的输入输出方法。
三、实验内容:说明:前四题为必做题目,后两题为选做题目。
1、输入r1、r2,求出圆形垫片面积。
(实验指导书P84)2、输入华氏温度h,输出摄氏温度c。
(实验指导书P85)3、从键盘输入一个3位整数,将输出该数的逆序数。
(实验指导书P89)4、输入并运行以下程序,分析运行结果。
#include <stdio.h>void main( ){ int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}5、输入三角形三条边的边长,求三角形的面积。
(书P55)6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
C语言程序设计

C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:#include<stdio.h>int main(){printf("hello world!\n");return 0;}运行结果1:程序分析1:代码2:#include<stdio.h> int main(){int a=5,b=6,c;c=a+b;printf("c=%d\n",c);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){int a=5,b=6,c;if(a>b){c=a;}else{c=b;}printf("%d\n",c);return 0;}运行结果3:程序分析3:五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:#include<stdio.h>int main(){char c1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1-32;printf("%c,%d\n",c2,c2);return 0;}运行结果1:程序分析1:代码2:#include<stdio.h>int main(){int a=5,c1,c2;double b=3.141592653,c3,c4;c1=a/b;c3=a/b;c2=a+b;c4=a+b;printf("%d,%d,%lf,%lf\n",c1,c2,c3,c4);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){here: printf("计算三角形的面积请输入‘1’,立方体的体积和表面积请输入‘2’,圆的面积和周长请输入‘3’.\n");int a;scanf("%d",&a);if(a==1){double l,h,s;printf("请输入三角形的底边长和所在底边的高.");scanf("%lf%lf",&l,&h);s=l*h/2;printf("三角形的面积为%.16f\n",s);}else if(a==2){printf("请输入立方体的长宽高.");double b,c,d,v,s;scanf("%lf%lf%lf",&b,&c,&d);v=b*c*d;s=b*c+b*d+c*d;printf("立方体的体积为%.16f,表面积为%.16f\n",v,s);}else{double r,s,c,m;printf("请输入圆的半径");scanf("%lf",&r);m=3.141592653;s=m*r*r;c=2*m*r;printf("圆的面积为%.16f,圆的周长为%.16f\n",s,c);}goto here;}运行结果3:程序分析3:代码4:#include<stdio.h> int main(){getchar();putchar('b');return 0;}运行结果4:程序分析4:代码5:#include<stdio.h>int main(){int a;printf("请输入任意十进制整数:");scanf("%d",&a);printf("转换为八进制数为:%o\n转化为十六进制数为:%x\n",a,a); return 0;}运行结果5:程序分析5:五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句,学习调试程序。
C语言上机实验报告1

C语言上机实验报告1
实验目的:1、初步知道什么是C语言
2、了解C语言的特点
3、会上机运行简单的C程序
4、了解怎样从程序得到运算结果
实验器材:电脑、C程序设计课本
实验内容:1、在屏幕上输出以下一行信息。
This is a C program.
2、求两个整数之和。
3、求两个整数中的较大者。
实验步骤及结果:
实验结果分析及结论:
对于实验一利用printf函数输出了题目中要求的信息This is a C program.
对于实验二我们定义了a,b来存放两个整数,定义了sum来存放和数。
用赋值运算符“=”把相加的结果传送给sum,最后输出sum就得到两数之和。
所以123和456的和为579。
对于实验三我们调用max函数来得出两数中的较大者。
所以输入8和5运行得较大者为8.实验心得体会和建议:
1、#include<stdio.h>是编译预处理指令。
2、int表示此函数的类型是整型。
3、main是函数的名字,表示“主函数”。
每一个C语言程序都必须有一个main函数。
4、函数体由{}括起来。
5、\n是换行符。
6、每一个语句最后都有一个分号,表示语句结束。
7、程序右侧的//表示从此出道本行结束是“注释”。
8、return0表示函数执行完毕时返回函数值0.
实验评价及结论:
通过这次实验我初步知道了什么是C语言,了解了C语言的特点,会上机运行简单的C程序,知道了怎样从程序得到运算结果。
实验指导老师签字:年月日。
C语言上机实验报告

n=2.0;
t=1.0;
m=1.0;
scanf("%f", &x);
while( t > 0.00000000000001||t<-0.0000000000001)
{
m=-(x*x)/(4*n*n-6*n+2);
t=m*t;
sinx=sinx+t;
n++;
}
printf("sin%.0fis %.20f\n", x, sinx);
printf("50个分数中最高的分数是第%d个学生的第%d门课,分数为:%.2f\n",li,lj,largest);
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
if(score[i][j]<90)
printf("5门课不都高于90分的是%d位同学\n",i+1);
}
}
实验结果:
getchar();
return 0;
}
实验结果:
输入:2
Sin2 is 0.45464870333671570000
一、实验项目:
数组
二、实验目的:
掌握一维数组和二维数组的定义、赋值和输入输出的方法,字符数组和字符串函数的使用,与数组有关的算法(特别是排序算法)。
三、实验平台:
Microsoft Visual C++
(2)求没门课程的平均分;
(3)输出一张包括10个学生成绩的成绩单;
(4)找出最高分所对应的学生和课程;
(5)分别统计5门课的成绩都高于90分的学生人数。
C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。
(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。
(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。
(6)熟悉指针含义及其使用。
(7)熟悉结构体和共用体的使用。
(8)熟悉文件的使用。
4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。
(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。
(3)运行程序,输入数据,分析结果。
5.实验结果:输出程序清单和运行结果。
(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。
第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。
C语言程序设计上机实验指导

C语言程序设计上机实验指导目录实验一 c语言程序的开发环境 (1)实验二数据类型描述 (3)实验三顺序结构 (6)实验四选择结构 (9)实验五循环结构 (12)实验六函数与编译预处理 (16)实验七数组 (19)实验八指针 (23)实验九结构体数据类型与链表 (25)实验十共用体与枚举类型 (27)实验十一文件 (29)实验一 c语言程序的开发环境一、目的、要求1、使学生了解c语言不同于其他语言的特点。
2、掌握在c语言的开发环境中如何实现简单程序的编辑、运行,熟悉c程序的开发环境及上机步骤。
3、通过简单的c程序,熟悉c语言程序的结构特点,掌握其基本结构框架。
4、通过实践,掌握c源程序的书写格式。
二、预习内容1、熟悉Turbo c的集成开发环境,掌握启动、退出、编辑运行的操作。
2、了解基本命令及函数:include<stdio.h>,include<math.h>,main(),printf(),scanf()等。
三、上机内容1、输入下列程序,记录在Turbo c 下的操作方法。
#include <stdio.h>main(){printf(“I am a student!”);}环境的启动操作:程序的编译方法:快捷键是;菜单操作是程序的保存方法:快捷键是;菜单操作是程序的运行方法:快捷键是;菜单操作是运行结构的查看:快捷键是;菜单操作是环境的退出操作:快捷键是;菜单操作是2、预测结果并上机验证#include <stdio.h>main(){printf(“************\n”);printf(“I am a student!\n”);printf(“************\n”);}预测的结果是:上机验证的结果是:3、预测结果并上机验证#include<stdio.h>#include<math.h>main(){int a,b,sum;scanf(“%d,%d”,&a,&b);sum=a+abs(b);printf(“a and b is %d”,sum);}程序运行后输入:5,-5预测的结果是:上机验证的结果是:4、分析程序的功能,并上机验证#include<stdio.h>#include<math.h>main(){int a,b,sum;scanf(“%d,%d”,&a,&b);sum=abs(a+b);printf(“%d+%d = %d”,a,b,sum);}程序的功能是:上机验证的结果是:5、试编写程序实现下列输出** ** * ** * * *编写的程序为:实验二数据类型描述一、目的、要求1、了解c语言的数据类型的种类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机实践1 初识C语言实验1 一个简单的C程序simple.c#include <stdio.h>int main() {【代码1】//输出"很高兴学习C语言\n"【代码2】//输出"We are students\n"getchar();return 0;}实验2 有多个函数的C程序twoFuction.c#include <stdio.h>void speakHello(); //函数的原型void showStar(); //函数的原型int main() {showStar();speakHello();showStar();speakHello();showStar();}void speakHello() {【代码1】//输出""how are you\n"}void showStar() {【代码2】//输出"******\n"}实验答案实验1【代码1】:printf("很高兴学习C语言\n");【代码2】:printf ("We are students\n");实验2【代码1】:printf("how are you\n");【代码2】:printf("******\n");上机实践2 C程序的基本结构实验1 有多个源文件的C程序main.c#include <stdio.h>int add(int,int); //add的函数原型int sub(int,int);int main(){int result = 0;int x=12,y=20;printf("调用add函数计算和\n");result = add(x,y);printf("result =%d \n",result);printf("调用sub函数计算差\n");result = sub(x,y);printf("result =%d \n",result);}computer.cint add(int,int); //函数原型int sub(int,int);int add(int a,int b) {int sum =0;sum = a+b;return sum;}int sub(int a,int b) {int difference =0;difference = a-b;return difference;}实验2 向C程序添加源文件like.c#include <stdio.h>void swim();void seeTV();void swim() {printf("我喜欢游泳\n");}void seeTV() {printf("我喜欢看电视\n");}上机实践3 标识符与基本数据类型change.c#include<stdio.h>int main(){【代码1】//用int声明名字是cupOne,cupTwo的变量【代码2】//用int声明名字是temp的变量cupOne = 12;cupTwo = 18;printf("cupOne中的液体体积是:%d\n",cupOne);printf("cupTwo中的液体体积是:%d\n",cupTwo);【代码3】//将cupOne赋值给temp【代码4】//将cupTwo赋值给cupOne【代码5】//将temp赋值给变量cupTwoprintf("cupOne中的液体体积是:%d\n",cupOne);printf("cupTwo中的液体体积是:%d\n",cupTwo);return 0;}实验2 戒指的价值ringRice.c#include<stdio.h>【代码1】使用define预处理指令定义符号常量UnitPrice,其值是789int main(){【代码2】//用float 声明名字是goldMeasure1的变量【代码3】//用double 声明名字是goldMeasure2的变量;double fingerRingPrice;goldMeasure1 = 8.987654321f;fingerRingPrice = UnitPrice*goldMeasure1;printf("计量工具1显示的戒指的质量是(小数点保留10位):%12.10f\n",goldMeasure1);printf("根据计量工具1给出戒指的价格是:%f\n",fingerRingPrice);goldMeasure2 = 8.987654321;fingerRingPrice = UnitPrice*goldMeasure2;printf("计量工具2显示的戒指的质量是(小数点保留10位):%12.10f\n",goldMeasure2);printf("根据计量工具2给出戒指的价格是:%f\n",fingerRingPrice);return 0;}实验3 录入、输出成绩单scoreList.c#include<stdio.h>int main(){【代码1】//声明存放成绩的float型变量: math,english,chinesefloat sum = 0;【代码2】//调用scanf函数从键盘为: math,english,chinese输入值,输入的值用空格分隔sum = math+english+chinese;printf("%f\t%f\t%f\t总成绩:%f\n",math,english,chinese,sum);【代码3】//调用scanf函数从键盘为: math,english,chinese输入值,输入的值用逗号分隔sum = math+english+chinese;printf("%f\t%f\t%f\t总成绩:%f\n",math,english,chinese,sum);【代码4】//调用scanf函数从键盘为: math,english,chinese输入值,输入的值用减号分隔sum = math+english+chinese;printf("%f\t%f\t%f\t总成绩:%f\n",math,english,chinese,sum);return 0;}实验4 因地制宜、量力而行scoreList.c#include<stdio.h>#include<limits.h>#include<float.h>int main(){char ch1=97,ch2=ch1+256;short m1,m2;printf("ch1是%c,ch2是%c\n",ch1,ch2);printf("char型取值范围%d至%d\n",CHAR_MIN,CHAR_MAX);printf("unsigned char型取值范围%d至%d\n",0,UCHAR_MAX);printf("short型取值范围%d值%d\n",SHRT_MIN,SHRT_MAX);printf("unsigned short型取值范围%u至%u\n",0,USHRT_MAX);m1 = 60;m2 = m1+65536;printf("m1=%d,m2=%d\n",m1,m2);printf("int型取值范围%d值%d\n",INT_MIN,INT_MAX);printf("unsigned int型取值范围%u至%u\n",0,UINT_MAX);printf("long型取值范围%ld值%ld\n",LONG_MIN,LONG_MAX);printf("unsigned longt型取值范围%lu至%lu\n",0,ULONG_MAX);printf("float型取值范围%e至%e\n",FLT_MIN,FLT_MAX);printf("double型取值范围%e至%e\n",DBL_MIN,DBL_MAX);return 0;}实验答案实验1【代码1】:int cupOne,cupTwo;【代码2】:int temp;【代码3】:temp = cupOne;【代码4】:cupOne = cupTwo;【代码5】:cupTwo = temp;实验2【代码1】:#define UnitPrice 789;【代码2】:float goldMeasure1;【代码3】:double goldMeasure2;实验3【代码1】:float math,english,chinese;【代码2】:scanf("%f %f %f",&math,&english,&chinese);【代码3】:scanf("%f,%f,%f",&math,&english,&chinese);【代码4】:scanf("%f-%f-%f",&math,&english,&chinese);上机实践4 运算符、表达式与语句ticket.c#include <stdio.h>int main() {int ticketNumber;char a1,a2,a3,a4,a5;printf("输入彩票号码:\n");scanf("%d",&ticketNumber);【代码1】//将ticketNumber%10的值赋值给变量a1【代码2】//将ticketNumber/10的值赋值给变量ticketNumbera2 = ticketNumber%10;ticketNumber = ticketNumber/10;a3 = ticketNumber%10;ticketNumber = ticketNumber/10;a4 = ticketNumber%10;ticketNumber = ticketNumber/10;a5 = ticketNumber%10;printf("个,十,百,千,万位上的数字依次是:%d,%d,%d,%d,%d\n",a1,a2,a3,a4,a5);【代码3】//输出a1+a2+a3+a4+a5【代码4】//输出a1*a2*a3*a4*a5ticketNumber = a5*10000+a4*1000+a3*100+a2*10+a1;printf("%d\n",ticketNumber);ticketNumber = a1*10000+a2*1000+a3*100+a4*10+a5;printf("%d\n",ticketNumber);return 0;}实验2 武林高手之对决InputArray.c#include <stdio.h>int main() {【代码1】//声明两个无符号的short型变量:personOne,personTwounsigned short energySum;personOne = 6;personTwo = 3;printf("当前高手1和高手2的能量:%u,%u\n",personOne,personTwo);【代码2】//将表达式personOne++*personTwo--赋值给energySum;【代码3】//输出energySum的值;printf("当前高手1和高手2的能量:%u,%u\n",personOne,personTwo);energySum = personOne++*personTwo--;printf("第二次互相击掌产生的能量:%u\n",energySum);printf("当前高手1和高手2的能量:%u,%u\n",personOne,personTwo);energySum = personOne++*personTwo--;printf("第三次互相击掌产生的能量:%u\n",energySum);printf("当前高手1和高手2的能量:%u,%u\n",personOne,personTwo);return 0;}实验3 电路图circuit.c#include <stdio.h>int main() {int above1,above2,center,bottom1,bottom2;int pass = 0;printf("输入开关above1的状态(非0或0)");scanf("%d",&above1);printf("输入开关above2的状态(非0或0)");scanf("%d",&above2);printf("输入开关center的状态(非0或0)");scanf("%d",¢er);printf("输入开关bottom1的状态(非0或0)");scanf("%d",&bottom1);printf("输入开关bottom2的状态(非0或0)");scanf("%d",&bottom2);【代码1】//above1和above2为开状态的逻辑表达式的值赋值给passprintf("pass = %d\n",pass);pass = (above1!=0||bottom1!=0)&&(center!=0)&&(above2!=0||bottom2!=0);【代码2】//above1或bootom1为开状态,center为开状态、above2或bootom2为开状态的逻辑表达式的值赋值给passprintf("pass = %d\n",pass);【代码3】//bottom1和bottom2为开状态的逻辑表达式的值赋值给passprintf("pass = %d\n",pass);return 0;}实验4 托运行李baggageAndMony.c#include <stdio.h>#define TrainCharge 12#define CarCharge 22#define PlaneCharge 0.062int main() {double weight,charge;printf("输入行李重量:");scanf("%lf",&weight);printf("行李重量:%f公斤(kg)\n",weight);printf("需要计费的重量:%d(kg)\n",(int)weight);【代码1】//将表达式(int)weight*TrainCharge的值赋值给chargeprintf("用火车托运(%d元/kg),费用:%f元\n",TrainCharge,charge);printf("需要计费的重量:%d(kg)\n",(int)(weight+0.5));【代码2】】//将表达式(int)(weight+0.5)*CarCharge的值赋值给chargeprintf("用汽车托运(%d元/kg),费用:%f元\n",CarCharge,charge);printf("行李重量:%f克(g)\n",weight*1000);printf("需要计费的重量:%d(g)\n",(int)(weight*1000+0.5));【代码3】//将表达式(int)(weight*1000+0.5)*PlaneCharge的值赋值给chargeprintf("用飞机托运(%f元/g),费用:%f元\n", PlaneCharge,charge);return 0;}实验答案实验1【代码1】:a1 = ticketNumber%10;【代码2】:ticketNumber = ticketNumber/10;【代码3】:printf("a1+a2+a3+a4+a5=%d\n",a1+a2+a3+a4+a5);【代码4】:printf("a1*a2*a3*a4*a5=%d\n",a1*a2*a3*a4*a5);实验2【代码1】:unsigned short personOne,personTwo;【代码2】:energySum=personOne++*personTwo--;【代码3】:printf("第一次互相击掌产生的能量:%u\n",energySum);实验3【代码1】:pass = (above1!=0)&&(above2!=0);【代码2】:pass = (above1!=0||bottom1!=0)&&(center!=0)&&(above2!=0||bottom2!=0);【代码3】:pass = (bottom1!=0)&&(bottom2!=0);实验4【代码1】:charge = (int)weight*TrainCharge;【代码2】:charge = (int)(weight+0.5)*CarCharge;【代码3】:charge = (int)(weight*1000+0.5)*PlaneCharge;上机实践5 分支语句equation.c#include <stdio.h>#include <math.h>int main() {double a,b,c;double root1,root2;double disc;printf("输入系数a,b,c(逗号分隔):");scanf("%lf,%lf,%lf",&a,&b,&c);disc = b*b-4*a*c;if(a==0) {【代码1】//使用if-else语句,根据b是否为0输出是否为方程以及是方程时,方程的根}else {【代码2】//使用if-else语句,根据disc是否为负输出是否为二次方程以及方程的根}return 0;}实验2 商场的优惠shop.c#include <stdio.h>#define POINT1 100#define POINT2 200#define POINT3 500int main(){float amountMoney = 0;float charge = 0;printf("输入商品的总额:");scanf("%f",&amountMoney);if(amountMoney<POINT1) {charge = amountMoney;}else if(amountMoney<POINT2&&amountMoney>=POINT1){【代码1】//计算支付金额并赋值给charge}else if(amountMoney<POINT3&&amountMoney>=POINT2){【代码2】//计算支付金额并赋值给charge}else if(amountMoney>=POINT3){【代码3】//计算支付金额并赋值给charge}printf("顾客支付金额:%-20.2f\n",charge);printf("顾客节省金额:%-20.2f\n",amountMoney-charge);return 0;}实验3 四则运算computer.c#include <stdio.h>int main(){double numberOne,numberTwo = 0;char opration = '+';double result = 0;printf("输入第一个运算数、运算符号、第二个运算数(不要有任何分隔符号):\n");scanf("%lf%c%lf",&numberOne,&opration,&numberTwo);switch(opration) {case '+' :【代码1】//将numberOne+numberTwo赋值给resultprintf("%lf%c%lf=%lf\n",numberOne,opration,numberTwo,result);break;case '-' :【代码2】//将numberOne-numberTwo赋值给resultprintf("%lf%c%lf=%lf\n",numberOne,opration,numberTwo,result);break;case '*' :【代码3】//将numberOne*numberTwo赋值给resultprintf("%lf%c%lf=%lf\n",numberOne,opration,numberTwo,result);break;case '/' :result = numberOne/numberTwo;printf("%lf%c%lf=%lf\n",numberOne,opration,numberTwo,result);break;default:printf("%lf %c %lf不符合要求\n",numberOne,opration,numberTwo);}return 0;}实验4 自动售货机machineSell.c#include <stdio.h>int main() {unsigned short money;char drinkKind;printf("投入金额:2,3或5元(回车确认):");scanf("%d",&money);getchar(); //消耗回车if(money==2) {printf("选择净净矿泉水(A),甜甜矿泉水(B)和美美矿泉水(C)之一:\n");printf("输入A,B或C:");drinkKind=getchar();switch(drinkKind) {case 'A' : printf("得到净净矿泉水\n");break;case 'B' : printf("得到甜甜矿泉水\n");break;case 'C' : printf("得到美美矿泉水\n");break;default: printf("选择错误");}}else if(money==3) {printf("选择爽口可乐(A),清凉雪碧(B),和雪山果汁(C)之一:\n");printf("输入A,B或C:");drinkKind=getchar();switch(drinkKind) {case 'A' : printf("得到爽口可乐\n");break;case 'B' : printf("得到清凉雪碧\n");break;case 'C' : printf("得到雪山果汁\n");break;default: printf("选择错误");}}else if(money==5) {printf("选择草原奶茶(A),青青咖啡(B)和甜美酸奶(C)之一:\n");printf("输入A,B或C:");drinkKind=getchar();switch(drinkKind) {case 'A' : printf("得到草原奶茶\n");break;case 'B' : printf("得到青青咖啡\n");break;case 'C' : printf("得到甜美酸奶\n");break;default: printf("选择错误");}}else {printf("输入的钱币不符合要求");}return 0;}实验答案实验1【代码1】:if(b==0) {printf("不是方程\n");}else {printf("是一元一次方程,只有一个根:%f\n",-c/b);}【代码2】:if(disc>=0) {root1 = (-b+sqrt(disc))/2*a;root2 = (-b-sqrt(disc))/2*a;printf("是一元二次方程,有两个实根:%f,%f\n",root1,root2);}else {printf("是一元二次方程,没有实根\n");}实验2【代码1】:charge = POINT1+(amountMoney-POINT1)*0.9f;【代码2】:charge = POINT1+(POINT2-POINT1)*0.9f+(amountMoney-POINT2)*0.8f;【代码3】:charge = POINT1+(POINT2-POINT1)*0.9f+(POINT3-POINT2)*0.8f+(amountMoney-POINT3)*0.7f;实验3【代码1】:result = numberOne+numberTwo;【代码2】:result = numberOne-numberTwo;【代码3】:result = numberOne*numberTwo;上机实践6 循环语句实验1 数字中的各位之和与积DigitSum.c#include <stdio.h>int main(){unsigned short number;unsigned short remainder;unsigned short sum = 0,ji=1,temp=0;printf("输入一个正整数:");scanf("%d",&number);temp=number;while(number!=0) {remainder = number%10;【代码1】//将sum + remainder赋值给sum【代码2】//将ji * remainder赋值给ji【代码3】//将number/10赋值给number}printf("%u上各位数字之和是:%u\n",temp,sum);printf("%u上各位数字之积是:%u\n",temp,ji);return 0;}实验2 转动数字turnDigit.c#include <stdio.h>#include <stdlib.h>int main(){unsigned int number;unsigned int remainder,i=1,temp,save,count =1 ;unsigned short a5,a4,a3,a2,a1;//number上从高位到低位上的数字printf("输入一个正整数:");scanf("%d",&number);save = number;if(number>99999||number<9999){printf("输入的数字不符合要求\n");exit(0);}while(count<=5){do {remainder = number%10;switch(i) {case 1 :a1=remainder;break;case 2 :a2=remainder;break;case 3 :a3=remainder;break;case 4 :a4=remainder;break;case 5 :a5=remainder;break;}number = number/10;i++;} while(remainder!=0);temp = a1;a1 = a2 ;a2 = a3;a3 = a4 ;a4 = a5 ;a5 = temp;number=a5*10000+a4*1000+a3*100+a2*10+a1;printf("%u转动%u次是:%u\n",save,count,number);count++;}return 0;}实验3 计算正弦值sin.c#include <stdio.h>#include <math.h>int main(){unsigned short i;unsigned long n =1,jiecheng =1;short fuhao = 1;double sum =0,x = 1,item = x/jiecheng;double t = x*x,temp = x;printf("输入x的值(在0至π/2之间即可):");scanf("%lf",&x);item = x/jiecheng;t = x*x;temp = x;for(;item>=1E-5;) {sum = sum +fuhao*item;fuhao = -fuhao;【代码1】//将t*x赋值给x【代码2】//将n+2赋值给nfor(i=1,jiecheng=1;i<=n;i++) {jiecheng = jiecheng*i ;}【代码3】//将x/jiecheng赋值给item}printf("for语句计算结果是:\n%11.10lf\n",sum);printf("库函数计算结果是:\n%11.10lf\n",sin(temp));}实验4 猜字母游戏guessLetter.c#include <stdio.h>#include <time.h>#include <stdlib.h>int main(){char randomLetter; //随机的小写英文字母char guess; //用户的猜测char c = 'A';while(c<='Z') {printf("%3c",c);c++;}srand(time(NULL)); //用当前时间做随机种子randomLetter = rand()%26+'A';printf("\n给你一个a~z之间的字母,请猜出这个字母.\n");printf("输入你的猜测(回车确认):");guess = getchar();if(guess<='z'&&guess>='a')guess = guess-32; //变成大写字母getchar(); //消耗回车while(guess != randomLetter) {if(guess > randomLetter){printf("所猜字母大于给你的字母!\n");}else if(guess < randomLetter){printf("所猜字母小于给你的字母!\n");}printf("再输入你的猜测(回车确认):");guess = getchar();if(guess<='z'&&guess>='a')guess = guess-32; //变成大写字母getchar(); //消耗回车}printf("您猜对了,这个字母就是:%c\n",randomLetter);return 0;}实验5 记忆测试test.c#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){long now;char c1,c2,c3,c4,c5,c6;char s1,s2,s3,s4,s5,s6;unsigned short score = 0,i;char ok ='y',temp;srand(time(NULL)); //用当前时间做随机种子while(ok=='y'||ok=='Y') {ok = 'n';c1 = rand()%26+'a';c2 = rand()%26+'a';c3 = rand()%26+'a';c4 = rand()%26+'a';c5 = rand()%26+'a';c6 = rand()%26+'a';printf("%c%c%c%c%c%c",c1,c2,c3,c4,c5,c6);now = clock();for( ;clock()-now<=5000;) {}printf("\r"); // 将输出光标移动到本行开头(不回行)for(i=1;i<=6;i++) //输出6个*,以便擦除曾显示的字符串printf("*");printf("输入刚才显示的字符序列(回车确认):\n");scanf("%c%c%c%c%c%c",&s1,&s2,&s3,&s4,&s5,&s6);temp =getchar(); //消耗调用户确认输入时所输入的回车if(temp!='\n') {printf("输入非法,程序退出!");exit(0);}if(c1==s1&&c2==s2&&c3==s3&&c4==s4&&c5==s5&&c6==s6) { score++;printf("恭喜,记忆力不错!\n");}else {printf("遗憾,记得不准确\n");}printf("目前得分%u:\n",score);printf("继续测试吗?输入y或n(回车确认):");ok = getchar();getchar();}}实验答案实验1【代码1】:sum = sum + remainder;【代码2】:ji = ji * remainder;【代码3】:number = number/10;实验3【代码1】:x = t*x;【代码2】:n = n+2;【代码3】:item = x/jiecheng;上机实践7 函数的结构与调用circle.c#include <stdio.h>double getCircleArea(double); //函数原型double getCircleArea(double radius) { //函数定义double area = radius*radius*3.1415926;return area;}computer.c#include <stdio.h>double getCircleArea(double); //函数原型(在该源文件中就可以调用getCircleArea函数了)int main() {double radius,height;double volume;printf("输入柱体的底圆半径和高(逗号分隔):\n");scanf("%lf,%lf",&radius,&height);【代码1】// 将getCircleArea(radius)*height赋值给volume;printf("柱体的体积:%lf\n",volume);printf("输入锥体的底圆半径和高(逗号分隔):\n");scanf("%lf,%lf",&radius,&height);【代码2】// 将getCircleArea(radius)*height/3赋值给volume;printf("锥体的体积:%lf\n",volume);return 0;}实验2 商厦与亲民小店largeShop.c#include <stdio.h>double expensiveComputer(); //函数原型double expensiveComputer() { //函数定义int m = 1;double price,sum =0;printf("这里是商厦,请依次输入商品的价格(逗号分隔).\n");printf("输入任意字母结束输入过程:\n");m=scanf("%lf,",&price);while(m!=0) {sum = sum+ price;m=scanf("%lf,",&price);}getchar();printf("实际价格总额:%lf\n",sum);return sum;}smallShop.c#include <stdio.h>double cheapnessComputer(); //函数原型double cheapnessComputer() { //函数定义int m = 1;double price,sum =0;printf("这里是亲民小店,请依次输入商品的价格(逗号分隔).\n");printf("输入任意字母结束输入过程:\n");m=scanf("%lf,",&price);while(m!=0) {sum = sum+ price;m=scanf("%lf,",&price);}getchar();printf("实际价格总额:%lf\n",sum);return sum; //返回值的类型级别高于函数类型级别,编译会有警告}buy.c#include <stdio.h>double expensiveComputer(); //函数原型int cheapnessComputer(); //函数原型int main() {double price;printf("在商厦购物:\n");【代码1】//调用expensiveComputer函数,并将返回值赋值给priceprintf("需要支付:%lf元\n",price);printf("在亲民小店购物:\n");【代码2】//调用cheapnessComputer函数,并将返回值赋值给priceprintf("需要支付:%lf元\n",price);return 0;}实验3 钻石展览diamond.c#include<stdio.h>void printDiamond(int,int);void printDiamond(int position,int size) { int i,j,number;number= 2*size-1;for(i=1;i<=size;i++) {for(j=1;j<=size-i+position;j++)printf("%2s"," ");for(j=1;j<=i;j++)printf("%4s","*");printf("\n");}for(i=size+1;i<=number;i++) {for(j=1;j<=i-size+position;j++)printf("%2s"," ");for(j=number-i;j>=0;j--)printf("%4s","*");printf("\n");}}look.c#include<stdio.h>void printDiamond(int,int);int main() {printDiamond(2,2);printDiamond(1,3);printDiamond(0,4);getchar();return 0;}实验4 日历leap.cint isLeapYear(int);int isLeapYear(int year) {int leap =0;leap = (year%4==0 && year%100!=0)||(year%400 == 0);return leap;}weekDay.c#define StartYear 1600 // //1600年的1月1日是星期六int isLeapYear(int); //本源文件需要调用的函数的原型unsigned int getWeekDay(unsigned int,unsigned int,unsigned int); //本源文件定义的函数的原型unsigned int getWeekDay(unsigned int year,unsigned int month,unsigned int dayNumber){unsigned int i,daySum =0;unsigned int weekDay;for(i=StartYear;i<=year-1;i++) {if(isLeapYear(i))daySum = daySum+366;elsedaySum = daySum+365;}for(i=1;i<=month-1;i++) {if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)daySum = daySum+31;else if(i==4||i==6||i==9||i==11)daySum = daySum+30;else if(i==2) {if(isLeapYear(year))daySum = daySum+29;elsedaySum = daySum+28;}}daySum=daySum+dayNumber-1; //daySum是year/month/dayNumber与1600/01/01相差的天数switch(daySum%7) { //1600年的1月1日是星期六case 0 :weekDay = 6; //星期六break;case 1 :weekDay = 7; //星期日break;case 2 :weekDay = 1; //星期一break;case 3 :weekDay = 2; //星期二break;case 4 :weekDay = 3; //星期三break;case 5 :weekDay = 4; //星期四break;case 6 :weekDay = 5; //星期五break;}return weekDay;}calendar.c#include<stdio.h>unsigned int getWeekDay(unsigned int,unsigned int,unsigned int );int isLeapYear(int);int main() {unsigned int year,month;unsigned int weekDay;unsigned int i,dayNumber,maxDay;printf("输入日历的年(不小于1600)和月(逗号分隔):\n");scanf("%d,%d",&year,&month);weekDay = getWeekDay(year,month,1);if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) maxDay=31;if(month==4||month==6||month==9||month==11)maxDay=30;if(month==2) {if(isLeapYear(year))maxDay=29;elsemaxDay=28;}printf("%5s%5s%5s%5s%5s%5s%5s\n","日","一", "二", "三", "四", "五", "六");for(i=0;i<weekDay;i++)printf("%5s","");for(i=weekDay,dayNumber=1;i<weekDay+maxDay;i++) {if(i%7==0)printf("\n");printf("%5d",dayNumber);dayNumber++;}for(i=weekDay+maxDay;i<42;i++)printf("%5s","");return 0;}实验5 有理数rational.c#include<stdio.h>double add(int,int,int,int);int gongYue(int,int); //函数原型int main() {double result;result=add(1,3,1,6);printf("\n结果用小数表示是:%lf\n",result);result=add(2,3,-1,7);printf("\n结果用小数表示是:%lf\n",result);}double add(int b,int a,int n,int m) {int x;int y;int p,q;x = b*m+a*n; //计算出分子y = a*m; //计算出分母if(x<0&&y<0) {x = -x;y = -y;}p=x/gongYue(x,y);q=y/gongYue(x,y);printf("(%d/%d)+(%d/%d)=%d/%d",b,a,n,m,p,q);return (double)p/(double)q;}int gongYue(int m,int n) {int r;int t;if(m<0) m=-m;if(n<0) n=-n;if(m<n){t=m;m=n;n=t;}r = m%n;while(r!=0){ //使用辗转相除法计算最大公约数m = n;n = r;r = m%n;}return n;}实验6 Hannoi-塔tower.c#include<stdio.h>unsigned short move(int ,char,char,char);unsigned short move(int n,char one,char two,char three) { static unsigned short count=0;count++;if(n==1) {printf("from %c to %c\n",one ,three);}else if(n>=2) {count = move(n-1,one,three,two);printf("from %c to %c\n",one ,three);count = move(n-1,two,one ,three);}return count;}int main() {unsigned short m1,m2=0;printf("\nA-座有2个盘子的情况:\n");m1 = move(2,'A','B','C');printf("小和尚共花费了%u天.\n",m1);printf("\nA-座有3个盘子的情况:\n");m2 = move(3,'A','B','C');printf("小和尚共花费了%u天.\n",m2-m1);return 0;}实验7 打开画笔openSoftware.c#include<stdio.h>#include<stdlib.h>int main() {printf("列出当前目录下的子目录和文件:\n");system("dir");printf("打开画笔:\n");system("mspaint.exe");printf("打开记事本:\n");system("notepad.exe");printf("其他软件都结束了,才能输出我:\n");getchar();return 0;}实验答案实验1【代码1】:volume = getCircleArea (radius)*height;【代码2】:volume = getCircleArea (radius)*height/3;实验2【代码1】:price = expensiveComputer();【代码2】:price = cheapnessComputer();上机实践8 数组evaluate.c.#include<stdio.h>#include<math.h>int main() {double max,min; //存放最高、最低成绩double sum =0,aver,squareAver; //存放成绩的和、平均成绩、方差int count=0,i,N;【代码1】//声明类型是double、名字是score、长度为20的一维数组N = sizeof(score)/sizeof(double);printf("输入%d人的成绩(空隔或回车分隔):\n",N);for(i=0,sum=0;i<N;i++) {scanf("%lf",&score[i]);}for(i=0;i<N;i++) {【代码2】//将sum+score[i]赋值给sum}【代码3】//将sum/N赋值给averfor(i=0,sum=0;i<N;i++) {sum = sum+(score[i]-aver)*(score[i]-aver);}squareAver = sqrt(sum/N);max=min=score[0];for(i=0,sum=0,count=0;i<N;i++) {if(score[i]>max)max=score[i];if(score[i]<min)min=score[i];if(score[i]<60)count++;}printf("平均成绩:%lf\n",aver);printf("方差:%lf\n",squareAver);printf("其中一个最高成绩:%lf\n",max);printf("其中一个最低成绩:%lf\n",min);printf("不及格人数:%d\n",count);return 0;}实验2 二进制转化为十六进制jinzhi.c#include<stdio.h>#include<math.h>#define FOUR 4int main() {int i=0,m=0,j=0;long sum=0;unsigned short a[15]={1,0,1,1,1,0,1,1,1,1,1,0,1,1,1};unsigned short b[15%FOUR?15/FOUR+1:15/FOUR];int M = sizeof(b)/sizeof(unsigned short);printf("二进制表示:");for(i=0;i<15;i++) {printf("%u",a[i]);}printf("\n");for(i=15-1,sum=0;i>=0;i--) {sum = sum+a[i]*(int)pow(2,15-(i+1));}printf("十进制表示:%ld\n",sum);for(i=15-1,j=M-1;i>=0;i=i-FOUR) {for(m=0,sum=0;m<=FOUR-1;m++) {if(i-m>=0)sum=sum+a[i-m]*(int)pow(2,m);}b[j] =(unsigned short)sum;j--;}printf("十六进制表示:");for(i=0;i<M;i++) {switch(b[i]){case 10: printf("A");break;case 11: printf("B");break;case 12: printf("C");break;case 13: printf("D");break;case 14: printf("E");break;case 15: printf("F");break;default: printf("%d",b[i]);}}return 0;}实验3 修改整数中的数字changeNumber.c#include<stdio.h>#include <math.h>#include <limits.h># define OutNumber 4# define FindNumber 0int main() {unsigned long number,change=0;short a[10]={-1};int N = sizeof(a)/sizeof(unsigned short);int i=N-1,count=0 ;for(i=0;i<N;i++) {a[i]=-1;}printf("输入1至%lu之间的数:",ULONG_MAX);scanf("%ld",&number);i = N-1;while(number!=0){a[i]=(short)(number%10);number = number/10;i--;}for(i=0;i<N;i++) {if(a[i]==OutNumber)a[i]=8;}for(i=0;i<N;i++) {if(a[i]==FindNumber)。