电子科大C语言实验报告
计算机专业类课程
实验报告课程名称:程序设计基础
学 院:计算机科学与工程学院
专 业:计算机科学与技术
学生姓名:
学 号:
指导教师:阎炜日 期: 2012年 12月 15日电 子 科 技 大 学
实 验 报 告
实验一
一、实验名称:C语言基础实验
二、实验学时:4 学时
三、实验内容和目的:
目的:
熟练掌握C语言数据类型、变量的声明及使用,运算符与表达式等基本概念。
熟练掌握条件、循环等基本程序结构的应用。
熟练掌握数组的定义与使用,掌握排序算法。
熟练掌握函数的编写与应用。
内容:
1、编写程序,计算以下公式:
2、在100和1000之间,有多少个其数字之和等于9而且该数可被5整除的整数?
4、编写程序。功能:在键盘上输入N个整数,保存在数组中,并对该数组进行排序。(从小到大)
分析:(1)C中数组长度必须是确定大小,即指定N的值,可在实验中指定N=10。
(2)排序的方法有多种,如冒泡排序、选择排序等,可任选一种。
四、实验原理:
1.1:递归,函数的声明和使用
1.2:取出每位数字进行处理,累加思想
1.4:冒泡排序,数组的定义和使用
五、实验器材(设备、元器件)
PC微机一台
实验步骤:
1、编写源程序;
保存为一个以后缀为c的文件;
连接目标程序,产生可执行程序;
调试程序直至成功;
5、保存程序,记录数据内容。
七、实验数据及结果分析:
1.1
【代码】
#include"stdio.h"
void main()
{ int i;
long sum=0;
long jc(int n);/*jc阶乘声明*/
for (i=1;i<11;i++)
sum=sum+jc(i);/*sum累加*/
printf("the sum of 1! to 10! is:%d",sum);
}
long jc(int n)/*递归定义jc函数*/
{
if (n==1) return(1);
return(n*jc(n-1));
}
【输入数据】 无。
【输出数据】 the sum of 1! To 10! is :4037913
【截图】
【结果分析】 结果正确,和人工算出来一致。
1.2
【代码】
#include
void main()
{ int i,a,b,c,sum=0;
for (i=100;i<=999;i++)/*i为循环变量*/
{
a=i%10;/*a是个位*/
b=(i/10)%10;/*b是十位*/
c=i/100;/*c是百位*/
if ((a+b+c==9)&&(i%5==0))
sum++;/*sum累加*/
}
printf("the result is:%d",sum);
}
【输入数据】 无。
【输出数据】 the result is :13
【截图】
【结果分析】 结果正确,和人工算出来一致。
1.4
【代码】
#include"stdio.h"
#define N 10/*输入数的个数*/
void main()
{
long a[N+1],tp;
int i,j;
printf("input %d integers please:\n",N);
for (i=1;i<=N;i++)
scanf("%d",&a[i]);/*读入数组*/
for (i=1;i<=N;i++)/*冒泡排序*/
for (j=i;j<=N;j++)
if (a[j]
{
tp=a[j];
a[j]=a[i];
a[i]=tp;
}
printf("after sort(from small to large):\n");
for (i=1;i<=N;i++)
printf("%d ",a[i]);
}
【输入数据】 120 410 214 5891 92193 0 -12321 42145 2132 21321
【输出数据】 after sort(from small to large):
-12321 0 120 214 410 2132 5891 21321 42145 92193
【截图】
【结果分析】实现了要求的功能,与人工计算一致。
实验结论、心得体会和改进建议:
实验结论:
通过对C语言数据类型、变量的声明及使用,运算符与表达式等概念,条件、循环等基本程序结构的应用,数组的定义与使用,排序算法,函数的编写与应用的合理运用,成功实现了各个功能,得出了正确结果。
心得