实验报告
第 页
专业__软件工程 __ 班级 软工*班 学号_123012012*** _ 姓名
实验日期:20##年11 月1 日 报告退发 (订正 、 重做)
课程 c语言实验设计 实验名称 数组
一、实验目的
(1)掌握一维数组的基本操作;
(2)掌握二维数组的基本操作;
二、实验环境(描述实验的软件、硬件环境)
安装有Microsoft VC++6.0的PC机
三、实验内容、步骤和结果分析
(列出实验内容,阐明实验步骤及中间的结果或现象、最终结果和现象,对这些结果和现象进行分析,若出现误差也予以分析误差原因)
题目一:从键盘上输入六个整数,存放到整型数组arr中,再从键盘上输入一个整数,存放到整型变量n中。
要求:
编程查找整数n是否在数组arr中出现过。若出现,则输出第一次出现的位置,否则,输出no found
(1)源码
#include <stdio.h>
#define N 6
int main()
{
int arr[N];
int i,n;
printf("输入六个整数:");
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
printf("输入一个整数:");
scanf("%d",&n);
for(i=0;i<N;i++)
{
if(arr[i]==n)
{
printf("%d\n",i);
break;
}
}
if(i>=N)
printf("no found\n");
return 0;
}
(2)运行结果截图
题目二:编程实现将原数组中的元素逆序存储:例如原数组a[]={5,2,7,4} ,则逆序后的数组a[]={4,7,2,5}.
要求:
(1)分别输出逆序前、后数组各元素的数值;
(2)逆序实现不要借助其他数组;
(1)源码
#include <stdio.h>
int main()
{
int a[4]={5,2,7,4};
int i;
printf("原数组:");
for(i=0;i<4;i++)
printf("%2d",a[i]);
printf("\n");
printf("逆序数组:");
for(i=3;i>=0;i--)
printf("%2d",a[i]);
printf("\n");
return 0;
}
(2)运行结果截图
题目三:输出数组中的元素(重复的元素只输出一次):
例如数组int a[]={1,1,2,3,26,3,4,5,8,7,7,4};则应输出 1 2 3 26 4 5 8 7
(1)源码
#include <stdio.h>
int main()
{
int a[]={1,1,2,3,26,3,4,5,8,7,7,4};
int b,i,n;
printf("%3d",a[0]);
for(i=1;i<12;i++)
{
for(n=0;n<i;n++)
{
if(a[i]==a[n])
{
b=0;
break;
}
else
b=1;
}
if(b==1)
printf("%3d",a[i]);
}
printf("\n");
return 0;
}
(2)运行结果截图
题目四:编写一个程序,将用户输入的十进制正整数转换成任意进制(2~16)的数(将结果存储在一维数组中,最后显示结果)
(1)源码
#include<stdio.h>
int main()
{
int a,b,d;
int i,m,n;
int c[100];
for(d=1;d!=-1;)
{
printf("请输入一个十进制整数<-1结束输入>:");
scanf("%d",&a);
if(a==-1)
goto done;
printf("请输入要转换成的进制:");
scanf("%d",&b);
for(i=0,m=1;m!=0;i++)
{
c[i]=a%b;
m=a/b;
a=m;
}
printf("转换结果为:");
for(n=i-1;n>=0;n--)
printf("%d",c[n]);
printf("\n");
printf("----------------------------------------\n");
}
done:
printf("----------------------------------------\n");
return 0;
}
(2)运行结果截图
题目五:
? 假设共有3名学生,每名学生都有5门成绩(语文、数学、英语、化学、物理)。
? 要求:
(1)从键盘上输入每位学生的5门课程成绩;
(2)输出每位同学的总成绩和平均分;
(1)源码
#include<stdio.h>
int main ()
{
int a[3]={1,2,3};
float b[5];
int i,j;
float sum;
for (i=0;i<3;i++)
{
printf("请输入第%d位学生的课程成绩(语文、数学、英语、化学、物理):",a[i]);
for(j=0,sum=0;j<5;j++)
{
scanf("%f",&b[j]);
sum =sum+b[j];
}
printf("总分:%.2f 平均分:%.2f\n",sum,sum/5.0);
printf("\n");
}
return 0;
}
(2)运行结果截图
题目六:使用二维数组打印如下图形(杨辉三角)
(1)方法1:
#include<stdio.h>
int main ()
{
int a[6][6]={1};
int i,j;
for(i=1;i<6;i++)
a[i][0]=1;
printf("-------------------------------------\n");
for(i=0;i<6;i++)
{
for(j=0;j<=i;j++)
{
if(j==0)
printf("%4d",a[i][j]);
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%4d",a[i][j]);
}
}
printf("\n");
}
printf("-------------------------------------\n");
return 0;
}
方法2:
#include<stdio.h>
int main ()
{
int a[6][6]={1};
int i,j;
for(i=1;i<6;i++)
a[i][0]=1;
printf("-------------------------------------\n");
for(i=0;i<6;i++)
{
for(j=0;j<=i;j++)
{
if(j==0)
a[i][j]=a[i][j];
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<6;i++)
{
for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("-------------------------------------\n");
return 0;
}
(2)运行结果截图
题目七:编写一个程序,将两个字符串连接起来。
注意:不要用strcat函数。
(1)源码
#include<stdio.h>
int main ()
{
char a[3];
char b[5];
char c[50];
int i;
printf("input the value of array a:");
scanf("%s",a);
printf("input the value of array b:");
scanf("%s",b);
for(i=0;i<8;i++)
{
if (i<3)
c[i]=a[i];
else
c[i]=b[i-3];
}
for(i=0;i<8;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
(2)运行结果截图
题目八:编写程序,读入一个以符号"!"结束的长度小于20字节的英文句子,检查其是否为回文(即正读和反读都是一样的)。例如:
读入句子:MADA ADAM! 它是回文,所以输出:YES
读入句子:ABCDBA)! 它不是回文,所以输出:NO
(1)源码
#include<stdio.h>
int main ()
{
char a[20];
int i,k,h;
printf("读入一个以符号!结束的长度小于20字节的英文句子:");
for(i=0;i<20;i++)
{
scanf("%c",&a[i]);
if(a[i] == '!')
break;
}
for(k=0;k<i;k++)
{
h=i-k-1;
if(a[k]!=a[h])
{
printf("No\n");
break;
}
}
if(k==i)
printf("Yes\n");
return 0;
}
(2)运行结果截图
四、讨论
(说明实验过程中遇到的问题及解决办法;未解决/需进一步研讨的问题或建议新实验方法等)
题目四中开头会出现这种问题
。
后来问了老师,就知道是怎么回事啦!!!明白问题出在哪里真是高兴。
题目八开头也是运行不出来,但是在11月9日下午的课上,听老师讲课时恍然大悟 原来自己忘记在输入的那个地方加入地址符,所以总是运行不了。
题目六中,把输出语句放入判断的循环内和循环外,好像应该是没有什么区别吧,方法一比较省代码吧。
华北科技学院计算机系综合性实验
实 验 报 告
课程名称 程序设计语言(C)
实验学期 2007 至 2008 学年 第 2 学期
学生所在系部 计算机系
年级 07级 专业班级 信管B072班
学生姓名 XXX 学号 200707034201
任课教师 刘士杰
实验成绩
计算机系制
《C程序设计》课程综合性实验报告
开课实验室:软件开发实验室一 20##年7月2日
研究生实验报告范本实验课程实验名称实验地点学生姓名学号指导教师范本实验时间年月日一实验目的熟悉电阻型气体传感器结构及工作原理进行基…
学生实验报告书实验课程名称开课学院指导教师姓名学生姓名学生专业班级200200学年第学期实验教学管理基本规范实验是培养学生动手能力…
AMT执行机构实验报告实验对象NJ7150变速箱总成实验内容第四代选换档执行机构高低温实验报告人审核批准报告时间20xx苏州绿控传…
滁州市政府组织退耕还林(黑体,小二,1.5倍行距,段前段后0.5行)——5060451007范雪花(学号,TimesNewRoma…
Determinationofheavymetalsinsoilbyatomicabsorptionspectrometry(AA…
研究生实验报告范本实验课程实验名称实验地点学生姓名学号指导教师范本实验时间年月日一实验目的熟悉电阻型气体传感器结构及工作原理进行基…
学生实验报告书实验课程名称开课学院指导教师姓名学生姓名学生专业班级200200学年第学期实验教学管理基本规范实验是培养学生动手能力…