程序设计c实验报告江苏理工学院.docx

上传人:b****6 文档编号:4333293 上传时间:2022-11-29 格式:DOCX 页数:20 大小:98.68KB
下载 相关 举报
程序设计c实验报告江苏理工学院.docx_第1页
第1页 / 共20页
程序设计c实验报告江苏理工学院.docx_第2页
第2页 / 共20页
程序设计c实验报告江苏理工学院.docx_第3页
第3页 / 共20页
程序设计c实验报告江苏理工学院.docx_第4页
第4页 / 共20页
程序设计c实验报告江苏理工学院.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

程序设计c实验报告江苏理工学院.docx

《程序设计c实验报告江苏理工学院.docx》由会员分享,可在线阅读,更多相关《程序设计c实验报告江苏理工学院.docx(20页珍藏版)》请在冰豆网上搜索。

程序设计c实验报告江苏理工学院.docx

程序设计c实验报告江苏理工学院

《程序设计(C)》

实验报告

2014—2015学年第二学期

 

院系:

.

班级:

.

学号:

.

姓名:

.

 

江苏理工学院

计算机工程学院计算机应用基础教研室

实验1

题目

选择结构程序设计

实验学时

2学时

实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”);

2.学会正确使用逻辑运算符和逻辑表达式;

3.熟练掌握if语句的使用(包括if语句的嵌套);

4.熟练掌握多分支选择语句——switch语句;

5.结合程序掌握一些简单的方法;

6.学习调试程序的方法。

 

实验内容与题目要求

 

实验内容与题目要求

 

实验内容与题目要求

 

1.有一函数:

x(x<1)

y=2x-1(1≤x<10)

3x-11(x≥10)

写程序,输入x的值,输出y相应的值。

源程序代码如下:

#include

intmain()

{intx,y;

printf("输入x:

");

scanf("%d",&x);

if(x<1)

{y=x;

printf("x=%3d,y=x=%d\n",x,y);

}

elseif(x<10)

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);

}

else

{y=3*x-11;

printf("x=%d,y=3*x-11=%d\n",x,y);

}

return0;

}

运行结果贴图:

2.给出一百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。

90分以上为’A’,80-90分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。

源程序代码如下:

#include

intmain()

{

floatscore;

chargrade;

printf("请输入学生成绩:

");

scanf("%f",&score);

while(score>100||score<0)

{

printf("\n输入有误,请重输");

scanf("%f",&score);

}

switch((int)(score/10))

{case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

grade='E';

}

printf("成绩是%5.1f,相应的等级是%c\n",score,grade);

return0;

}

运行结果贴图:

3.从键盘输入1~12之间的任一数字,输出表示一年中对应该月的英文单词。

源程序代码如下:

#include

intmain()

{

intm;

printf("请输入月份:

\n");

scanf("%d",&m);

printf("m=%d\n",m);

while(m>12||m<1)

{

printf("\n输入有误,请重输!

\n");

scanf("%d",&m);

}

switch(m)

{case12:

printf("month:

December\n");break;

case11:

printf("month:

November\n");break;

case10:

printf("month:

October\n");break;

case9:

printf("month:

September\n");break;

case8:

printf("month:

August\n");break;

case7:

printf("month:

July\n");break;

case6:

printf("month:

June\n");break;

case5:

printf("month:

May\n");break;

case4:

printf("month:

April\n");break;

case3:

printf("month:

March\n");break;

case2:

printf("month:

February\n");break;

case1:

printf("month:

January\n");break;

}

return0;

}

运行结果贴图:

心得体会

注意各种运算符的优先次序。

“&&”和“||”是双目运算符,它要求有两个运算对象;“!

”是一目运算符,只要求有一个运算对象。

逻辑表达式的值应该是一个逻辑量“真”或“假”,逻辑运算的结果不是“0”就是“1”。

实验2

题目

循环结构程序设计

实验学时

2学时

实验目的

1.熟悉掌握用while语句、do…while语句和for语句实现循环的方法;

2.掌握在程序设计中用循环的方法实现一些常用方法;

3.进一步学习调试程序。

 

实验内容与题目要求

 

实验内容与题目要求

 

实验内容与题目要求

 

1.n从键盘输入,当n为偶数时,求1/2+1/4+…+1/n的值;当n为奇数时,求1/1+1/3+…+1/n的值。

源程序代码如下:

#include

intmain()

{

intn,i;

floatsum=0;

printf("请输入n:

\n");

scanf("%d",&n);

if(n<1)

printf("输入有误,请重新输入!

");

if(n%2!

=1)

{

{for(i=1;i<(n/2+1);i++)

sum=sum+1.0/(2*i);}

printf("1/2+1/4+...+1/n=%f\n",sum);

}

else

{

{for(i=1;i<(n+3)/2;i++)

sum=sum+1.0/(2*i-1);

}

printf("1/1+1/3+...+1/n=%f\n",sum);

}

return0;

}

运行结果贴图:

2.输出1,2,3,4四个数字能组成的所有无重复数字的三位数。

源程序代码如下:

#include

intmain()

{

inti,j,k;

intm=0;

printf("请输出1,2,3,4组成的无重复三位数:

\n");

for(i=1;i<5;i++)

for(j=1;j<5;j++)

for(k=1;k<5;k++)

{

if(i!

=j&&k!

=j&&i!

=k)

{printf("%d%d%d",i,j,k);

m++;

}

}

printf("\n组合三位数的个数:

%d\n",m);

return0;

}

运行结果贴图:

3.输出一个正整数的反序数,例如输入4578,则应输出8754。

源程序代码如下:

#include

intmain()

{

intx;

printf("请输入一个数字:

");

scanf("%d",&x);

printf("反序的数字:

");

while(x!

=0)

{

printf("%d",x%10);

x/=10;

}

printf("\n");

}

运行结果贴图:

心得体会

While与do…while区别为前者先判断条件表达式,后执行循环体语句;后者先执行循环体,然后在检查条件是否成立,若成立,再执行循环体。

在while中不要忽略给i和sum赋初值,否则它们的值是不可预测的。

While、do…while、for,都可以用break语句跳出循环,用continue语句结束本次循环。

实验3

题目

利用数组处理批量数据

实验学时

4学时

实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2.掌握字符数组和字符串函数的使用;

3.掌握与数组有关的算法。

 

实验内容与题目要求

 

实验内容与题目要求

 

实验内容与题目要求

 

1.输入一个3*3的整型矩阵,统计其中正数、负数以及零的个数并输出。

源程序代码如下:

#include

intmain()

{

inta[3][3];

inti,j;

intsum_0=0,sum_1=0,sum_2=0;

printf("请输入3*3矩阵:

");

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

scanf("%5d",&a[i][j]);

}

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%5d",a[i][j]);

printf("\n");

}

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{if(a[i][j]<0)

sum_2++;

elseif(a[i][j]>0)

sum_1++;

elsesum_0++;

}

}

printf("0有:

%d个\n",sum_0);

printf("正数有:

%d个\n负数有:

%d个\n",sum_1,sum_2);

}

运行结果贴图:

2.从键盘输入10个数,找出10个整数中的最大数并与第一个数交换位置,找出最小数与最后一个数交换位置,输出变换后的结果。

源程序代码如下:

#include

intmain()

{

inta[10];

intmax=0,min=0;

inti,temp;

printf("请输入10个整数:

");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

if(a[i]>a[min])

min=i;

temp=a[min];a[min]=a[0];a[0]=temp;

for(i=0;i<10;i++)

if(a[i]

max=i;

temp=a[max];a[max]=a[9];a[9]=temp;

printf("变换后的10个数:

");

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

}

运行结果贴图:

3.从键盘输入一字符串s,将该字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t数组中。

源程序代码如下:

#include

#include

intmain()

{

chars[50];

chart[50];

inti;

printf("请输入字符串:

");

scanf("%s",s);

memset(t,0,sizeof(t));

for(i=0;i

{t[i]=s[i*2];}

t[i]='\0';

printf("%s\n",t);

return0;

}

运行结果贴图:

心得体会

一位数组在比较大小排序时用“起泡法排序”,二维数组用“打擂台算法”

在字符数组的初始化中如果初值个数小于数组长度,则只将这些字符数组赋给数组中前面的那些元素,其余的元素自动定位空字符。

注意字符串的两端实用双撇号而不是单撇号括起来的。

实验4

题目

用函数实现模块化程序设计

实验学时

4学时

实验目的

1.掌握定义、声明函数的方法;

2.掌握调用函数时实参和形参的对应关系,以及“值传递”的方式;

3.熟悉函数的嵌套调用和递归调用的方法;

4.熟悉全局变量和局部变量的概念和用法。

 

实验内容与题目要求

 

实验内容与题目要求

 

实验内容与题目要求

 

1.函数intflag(intx0,intx1,intd[])的功能是找出x0至x1之间所有能被3整除的数存入d数组中,返回d数组中元素的个数。

编写main函数,调用flag函数求出15~50之间所有满足条件的整数。

源程序代码如下:

#include

intmain()

{

intflag(intx0,intx1);

inta,b,n;

printf("请输入区间范围:

");

scanf("%d~%d",&a,&b);

n=flag(a,b);

printf("能被3整除的数的个数是:

%d\n",n);

return0;

}

intflag(intx0,intx1)

{

intd[40],m,i=0;

m=x0;

for(;m<=x1;m++)

{if(m%3==0)

{

d[i]=m;

i++;

}

}

return(i);

}

运行结果贴图:

 

2.函数voidmove(inta[],intn,intm)的功能是将有n个元素的数组a中前面各数顺序向后移m个位置,最后m个数变成最前面m个数。

编写main,调用move函数,输出变换后的结果。

源程序代码如下:

#include

voidmain()

{

voidmove(inta[10],intn,intm);

intn,m;

inti;

inta[10];

printf("请输入你要的数组长度\n");

scanf("%d",&n);

printf("输入你要交换的数组:

\n");

for(i=0;i

scanf("%d",&a[i]);

printf("输入你要交换前多少个数字:

\n");

scanf("%d",&m);

move(a,n,m);

for(i=0;i

{

printf("%3d",a[i]);

}

printf("\n");

}

voidmove(inta[10],intn,intm)

{

int*p,array_end;

if(m>0)

{

p=a+n-1;

array_end=*(a+n-1);

for(p;p>a;p--)

*p=*(p-1);

*a=array_end;

m--;

if(m>0)

move(a,n,m);

}

}

运行结果贴图:

 

3.函数voidjssort(inta[],intn)的功能是对a数组中前n个元素的后三位的大小进行升序排序。

要求:

在main中输入a数组的10个元素;调用函数jssort实现对a数组的排序;输出排序后的各元素。

测试数据:

6012,5099,9012,7025,8088,9096,8080,3046,5082,2345

运行结果:

6012,9012,7025,3046,8080,5082,8088,9096,5099,2345

源程序代码如下:

#include

intmain()

{voidjssort(intb[]);

voidwritedat(intb[]);

inta[10],i;

printf("请输入需要排序的数组:

\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

jssort(a);

writedat(a);

}

voidjssort(intb[])

{

inti,j,min,t;

for(i=0;i<9;i++)

{min=i;

for(j=i+1;j<10;j++)

if(b[min]%1000>b[j]%1000)min=j;

if(min!

=i)

{t=b[min];b[min]=b[i];b[i]=t;}

}

}

voidwritedat(intb[])

{inti;

printf("排序后的数组:

\n");

for(i=0;i<10;i++)

printf("%5d",b[i]);

printf("\n");

}

运行结果贴图:

心得体会

了解了如何定义函数,如何调用函数,明白全局变量的应用范围。

区别内部函数与外部函数。

学会运用函数。

实验5

题目

用指针处理链表

实验学时

4学时

实验目的

1.掌握指针的概念,会定义和使用指针变量;

2.掌握结构体类型变量定义和使用;

3.掌握链表的概念和操作方法。

 

实验内容与题目要求

 

实验内容与题目要求

 

实验内容与题目要求

 

1.综合教材第9章例9.9(建立链表的函数creat)、例9.10(输出链表的函数print)和第9章习题第7题(删除链表中结点的函数del)、第8题(插入结点的函数insert),再编写一个主函数,先后调用这些函数。

用5个函数组成一个程序,实现链表的建立、输出、删除和插入,在主函数中指定需要删除和插入的结点的数据。

运行结果贴图:

 

心得体会

链表是常见的数据结构,它是动态的进行存储分配的结构,链表中各元素在内存中的地址可以是不连续的。

链表这种结构必须利用指针变量才能实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1