c语言实验报告2
❶ c语言先排序后折半查找程序的实验报告
1实验目的:熟练掌握一维数组,二维数组的定义,初始化和输入输出方法;熟练掌握与数组有关的常用算法(如查找,排序等)。
2实验内容:设定一个整形数组存放20个元素,用直接赋值的方法在程序中初始化该数组。先对这些无序的数据进行排序,然后采用折半查找,把要寻找的数的位置输出出来。
3算法描述流程图
源程序:#include<stdio.h>
void main()
{int k,s,b,i,j,m,n,a[20]={12,9,16,21,6,11,19,4,8,20,15,2,5,18,14,7,3,10,13,17};
for(s=0;s<20;s++)
{
for(i=s+1;i<20;i++)
{
if(a[s]>a[i])
{
j=a[s];
a[s]=a[i];
a[i]=j;
}
}
}
scanf("%d",&b);
m=0;
n=19;
while(m<=n)
{
k=(m+n)/2;
if(b==a[k])
{
printf("FOUND\n");
printf("%d\n",k+1);
break;
}
else
{
if(b<a[k])
n=k-1;
else
m=k+1;
}
if(m>n)
printf("NO FOUND");
}
}
5测试数据:3,5, 20,30
6运行结果:FOUND 2;FOUND 4;FOUND 19 ;NO FOUND
7出现问题及解决方法:编译时出错,修改源程序,直到没有错误为止
8实验心得:通过折半查找,可以实现对数组数据的处理,并且增加了查找速度
❷ 咋写C语言实验报告
c(c++)上机实验报告格式:
⒈ 实验目的
(1) 了解在具体的语言环境下如何编辑、编译、连接和运行一个 C 程序。
⑵ 通过运行简单的 C 程序,初步了解 C 源程序的特点。
⑶ 掌握 C 语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
⑷ 掌握不同的类型数据之间赋值的规律。
⑸ 学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
2.实验内容和步骤
⑴ 检查所用的计算机系统是否已安装了 C 编译系统并确定他所在的子目录。
⑵ 进入所用的集成环境。
⑶ 熟悉集成环境的界面和有关菜单的使用方法。
⑷ 输入并运行一个简单的、正确的程序。
⒊ 实验题目
⑴ 输入下面的程序
# include “stdio.h” void main()
{ printf(“This is a c program. ”); }
❸ c语言实验报告 求大神
1、
#include<stdio.h>
intmain(){
intyear;
scanf("%d",&year);
if(year%400==0||year%100!=0&&year%4==0)
printf("%d年是润年 ",year);
else
printf("%d年不是润年 ",year);
return0;
}
2、
#include<stdio.h>
intmain(){
intyear,month;
intmonthOfDay[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d",&year,&month);
if(month!=2)
printf("该月一共%d天 ",monthOfDay[month]);
else{
if(year%400==0||year%100!=0&&year%4==0)
printf("该月一共%d天 ",monthOfDay[month]+1);
else
printf("该月一共%d天 ",monthOfDay[month]);
}
return0;
}
3、
#include<stdio.h>
intmain(){
intyear,month,op;
intmonthOfDay[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请选择: ");
printf("1、判断闰年 ");
printf("2、判断某月多少天 ");
printf("输入其他数字退出 ");
scanf("%d",&op);
if(op==1){
printf("请输入年份:");
scanf("%d",&year);
if(year%400==0||year%100!=0&&year%4==0)
printf("%d年是润年 ",year);
else
printf("%d年不是润年 ",year);
}
elseif(op==2){
printf("请输入年月,以空格分开(例如199311):");
scanf("%d%d",&year,&month);
if(month!=2)
printf("该月一共%d天 ",monthOfDay[month]);
else{
if(year%400==0||year%100!=0&&year%4==0)
printf("该月一共%d天 ",monthOfDay[month]+1);
else
printf("该月一共%d天 ",monthOfDay[month]);
}
}
else{
printf("退出啦! ");
}
return0;
}
4、我把上面几个功能转成函数了,否则代码量有点大了。。
#include<stdio.h>
intisLeapYear(intyear);
intgetDayOfMonth(intyear,intmonth);
intmain(){
intyear,month,day;
intans=0,i;
printf("请输入年月日,以空格分开(例如20151220):");
scanf("%d%d%d",&year,&month,&day);
ans+=day;
for(i=1;i<month;i++)
ans+=getDayOfMonth(year,i);
printf("这是%d年中的第%d天 ",year,ans);
return0;
}
intisLeapYear(intyear){
if(year%400==0||year%100!=0&&year%4==0)
return1;
return0;
}
intgetDayOfMonth(intyear,intmonth){
intmonthOfDay[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(month!=2)
returnmonthOfDay[month];
returnmonthOfDay[month]+isLeapYear(year);
}
5、用函数跑还是比较方便的
#include<stdio.h>
#include<windows.h>
intisLeapYear(intyear);
intgetDayOfMonth(intyear,intmonth);
intgetDayOdYearFormData(intyear,intmonth,intday);
intmain(){
intyear,month,day,op;
intans=0,i;
while(1){
printf("请选择: ");
printf("1、判断闰年 ");
printf("2、计算某月多少天 ");
printf("3、计算某日是一年中的第几天 ");
printf("输入其他数字退出 ");
scanf("%d",&op);
if(op==1){
printf("请输入年份:");
scanf("%d",&year);
if(isLeapYear(year)==1)
printf("%d年是润年 ",year);
else
printf("%d年不是润年 ",year);
}
elseif(op==2){
printf("请输入年月,以空格分开(例如199311):");
scanf("%d%d",&year,&month);
printf("该月一共%d天 ",getDayOfMonth(year,month));
}
elseif(op==3){
printf("请输入年月日,以空格分开(例如20151220):");
scanf("%d%d%d",&year,&month,&day);
printf("这是%d年中的第%d天 ",year,getDayOdYearFormData(year,month,day));
}
else{
printf("退出啦! ");
system("pause");
break;
}
system("pause");
}
return0;
}
intisLeapYear(intyear){
if(year%400==0||year%100!=0&&year%4==0)
return1;
return0;
}
intgetDayOfMonth(intyear,intmonth){
intmonthOfDay[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(month!=2)
returnmonthOfDay[month];
returnmonthOfDay[month]+isLeapYear(year);
}
intgetDayOdYearFormData(intyear,intmonth,intday){
inti,ans=0;
ans+=day;
for(i=1;i<month;i++)
ans+=getDayOfMonth(year,i);
returnans;
}
6、
#include<stdio.h>
intmain(){
inti,j;
for(i=0;i<5;i++){
for(j=0;j<4-i;j++)
printf("");
for(j=0;j<2*i+1;j++)
printf("*");
printf(" ");
}
return0;
}
❹ C语言程序设计实验报告怎么写啊
通过本试验初步培养计算机逻辑解题能力。熟练掌握赋值语句和if语句的应用;掌握switch多路分支语句和if嵌套语句的使用
❺ C语言实验报告
我写了个,不知道行不,有什么不妥的请指出哈,如要格式请加我,将之发给你
四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
学号: 姓名: 专业:计算机科学与技术 班级:5 第 13 周
课程名称 c/C++ 实验课时 2
实验项目 字符串的复制与追加 实验时间 08.5. 16
实验目的 1.掌握字符串的基本操作和理解数据结构
实验环境 VC 6.0
实验内容(算法、程序、步骤和方法) 先计算出S1和S2的字符个数,为S3分配好空间,利用已有库函数先将S1复制到S3中,再将S2追加到S3中,当显示完后要记住收回空间,做好善后处理。
源代码如下:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char *s1="abcdef";
char *s2="123456f";
int n=strlen(s1)+strlen(s2);//计算s1,和s2的总长度n
char *s3=new char[n+1]; //定义S3并分配空间大小为n
strcpy(s3,s1); //将s1复制到s3中
strcat(s3,s2); //将s2追加到s3后面
cout<<"s3="<<s3<<endl;
delete []s3; //收回空间
s3=NULL; //将指针指向空
return 0;
}
(接上)
实验内容(算法、程序、步骤和方法)
结构是顺序存储结构,算法顺序链接法
数据记录
和计算 数据有:字符串S1 ,S2;和一未知字符串S3
只需计算前两个字符串长度之和
结 论
(结 果) 利用字符数组可以顺序存储字符数据,并且能够顺序处理数据;
算法复杂度O(n+m);处于中性
小 结 字符数组能够带来很好的存储结构,便于操作,但是算法不是很好,只能顺序遍历数组,故复杂度不是很小
指导老师评 议
成绩评定: 指导教师签名:
❻ C语言实验报告怎么写
#include <stdio.h>
int main()
{
unsigned long a;
char c;
printf("Input a binary number: ");
for(a=0;(c=getchar())!=' ';)
a=a*2+c-'0';
printf("The number is %lu in decimal ",a);
printf("The number is %lo in octal ",a);
printf("The number is %lX in Hexadecimal ",a);
return 0;
}
❼ C语言实验报告总结
你只需要按那个模版就行,那些内容就改成你的作业
班级: 学号: 姓名:
实验9 指针
一、实验目的
(1)掌握指针概念,并定义与使用它。
(2)使用数组的指针和指向数组的指针变量。
(3)使用字符串的指针和指向字符串的指针变量。
二、实验内容
1. 将一个3*3的矩阵转置,用函数实现。
2. 有n个人围成一圈,顺序排号。从第一个人开始报数(1~3),凡报到3的人退出,问第几号的人能留下。
三、实验环境
硬件:(1)学生用微机
(2)多媒体实验教室
软件:(1)Windows XP 中文操作系统
(2)VC++ 6.0
四、实验结果
程序1:
#include<stdio.h>
void main()
{
void move(int *pointer);
int a[3][3],*p,i;
printf("input marix:\n");
for(i=0;i<3;i++)
scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf("matrix:\n");
for(i=0;i<3;i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{
int i,j,t;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
程序2:
#include<stdio.h>
void main()
{
int i,k,m,n,num[50],*p;
printf("input num of person:");
scanf("%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0)k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
printf("the last num is %d\n",*p);
}
结果1:(就是程序运行之后出现的框,截图后粘贴这里)
结果2:
五、总结:
通过这个实验的学习, 基本掌握了指针的基本用法。
❽ c语言程序设计实验报告
五、 课程设计小结心得体会
1设计思想
1)、设定一个一维数组,可先按员工序号设定每位员工的工资
2)、利用While语句和Prinft语句完成用户菜单的设计
功能为:第1项 设为员工编号和工资数据
第2项 设为修改员工工资数据
第3项 设为查询员工工资数据
第4项 设为结束系统
3)、当用户选择1、2项时,需输入员工编号,所以需要设计编号校正功能,如果出错可输出“The error employe number”
4)、当选择2时,进行工资数据的修改,并将新数据存回该员工的工资数组中
5)、利用for循环中判断语句,将用户工资数与数组中的工资数进行比较,如相同则输出,将计数器加1,如此下去,直到把整个数组遍历一遍
6)、判断计数器是否为0, 是0表示找不到相符的工资,如果不为0,则输出共查出几比相符的工资
以上当然里面也涉及了“函数的模块化”理念,可以避免但需要重复打印头文件时重复编写打印信头的语句。像这样的程序是多见的,这样不但降低了程序还发效率,而且耗时浪费资源“共用体”的使用简化了程序的“复杂”性,正如(4)中,学号与姓名同时表示一个人,但在函数使用了“共用体”,从而程序的简单可以便于纠错,查找问题,避免了代码的重复,这样就给编译时带来了一定的难度与“量”的繁杂。一般不采取这样的做法,力求“简单、明了、清晰”。