C语言程序设计实验指导书Word下载.docx
- 文档编号:17979041
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:30
- 大小:36.01KB
C语言程序设计实验指导书Word下载.docx
《C语言程序设计实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导书Word下载.docx(30页珍藏版)》请在冰豆网上搜索。
输入一个大写字母x
输出大写字母x
转换为小写字母公式Y=X+32
输出小写字母y
●源代码:
#include<
stdio.h>
main()
{charx,y;
scanf(“%d”,&
x);
printf(“%d--”,x);
y=x+32;
printf(“%d\n”y);
}
●上机调试程序:
输入a
运行结果:
输入x
分析运行结果,发现错误,修改程序如下:
修改转换为小写字母公式Y=(X+32)/26
输出小写字母
y=(x+32)/26;
printf(“%d\n”,y);
思考:
2、任意输入一个二位十进制整数,求其平方,并将结果输出。
算法:
输入一个整数x
求x的平方y=x*x
输出y
源代码:
实验二:
顺序结构
实验目的:
掌握C语言数据的输入和输出操作,正确使用各种格式转换符,掌握赋值的使用,掌握C语言数据类型及运算符和表达式。
实验内容:
1.编写顺序结构程序并上机调试运行。
2.验证输入输出函数中的格式符的作用
一、一般顺序结构的计算问题的程序结构
定义数据类型
输入数据
计算
输出运算结果
二、编写程序并上机调试运行:
任意输入三个整数,求和并输出和。
定义数据类型并初始化a,b,c,s
输入数据a,b,c
计算s=a+b+c
输出运算结果s
算法
{inta,b,c,s=0;
scanf(“%d%d%d”,&
a,&
b,&
c);
s=a+b+c;
printf(“s=%d”,s);
三、编写程序,验证输入输出函数中的格式符的作用。
1、输入下列程序并运行,分析运行结果,
{inta,b;
charc;
printf(“%d%d%d”,a,b,c);
运行时输入65,66,67输出结果是说明:
格式符中未用逗号,输入数时应用空格分隔
运行时输入656667输出结果是说明:
格式符中对c以整数输入,则输出c为66后的空格的ascii码
运行时输入65,66a输出结果是说明:
格式符中对c以字符输入,则输出c为66后的a的ascii码
2、输入下列程序并运行,分析运行结果,
{inta,b
scanf(“%d%d%c”,&
printf(“%c%c%c”,a,b,c);
运行时输入65,66,67输出结果是说明输出函数格式符%c,则以a,b中的数作为ascii码对应的字符。
思考:
编写程序:
任意输入一个华氏温度,求其对应的摄氏温度输出。
编写程序,验证其它格式符的作用;
实验三:
选择结构
正确使用逻辑运送符和逻辑表达式,熟练掌握if语句和switch语句的使用。
1、编写选择结构程序并上机调试运行。
2、验证if与switch的作用
3、验证break的作用
一、一般选择结构问题的程序结构
判断条件
成立不成立
工作a工作b
二、编写程序并上机调试运行:
任意输入三个整数,求出较大数。
定义数据类型a,b,c,max
a>
b
max=amax=b
Max>
c
退出Max=c
输出运算结果max
{inta,b,c,maxs;
if(a>
b)
max=a;
else
max=b;
if(max>
c)
break;
max=c;
printf(“max=%d”,max);
三、编写程序,验证switch语句的作用。
1、输入月份,给出该月所在季节。
定义数据类型uf,jj
输入数据uf
Jj=Uf/3
jj=0,4jj=1jj=2jj=3其它
冬季春季夏季秋季出错
{intuf,jj;
uf);
jj=uf/3;
switch(jj)
{case0:
case4:
printf(“dj”);
case1:
printf(“cj”);
case2:
printf(“xj”);
case3:
printf(“qj”);
default:
printf(“cc”);
运行时输入12输出结果是djcjxjqjcc说明每一个分支应用break退出
修改源代码:
printf(“dj”):
printf(“cj”):
break;
printf(“xj”):
printf(“qj”):
编写程序并上机调试运行。
1、输入一个数,判断是否是3的倍数,是否是7的倍数分别给出输出说明。
2、任意输入一个四位数,求出十位数与千位数之和,求出个位数与百位数之和,并判断这两个数的和是奇数(odd)还是偶数(even)。
实验四:
循环结构
掌握循环结构三种语句的使用方法,掌握break语句和continue语句的使用,掌握用循环方法实现各种算法。
1、用三种语句写出求1+2+…+10的程序
2、任意输入三个大写英文字母,转换成它们对应的小写字母,并将三个字母的ASCII码值求和输出。
1、用三种语句写出求1+2+…+10的程序并运行。
程序1
{intI,s=0;
for(I=1;
I<
=10;
I++)s=s+I;
程序2
{intI=1,s=0;
do
{s=s+I;
I++;
}while(I<
10)
程序3
while(I<
=10)
2、任意输入三个大写英文字母,转换成它们对应的小写字母,并将三个字母的ASCII码值求和输出。
循环三次做:
转换为小写字母公式Y=(X+32)/26
求和S=S+Y
输出大写字母
输出和S
intk,s;
for(k=1;
k<
=3;
k++)
{scanf(“%d”,&
s=s+y;
printf(“s=%d\n”,s);
输入abc
输入xyz
3、求所有的水仙花数之和
{intk,s=0,g,s,b;
for(k=100;
=999;
{b=k/100;
g=k%100;
s=k/10%10;
if(g*g*g+s*s*s+b*b*b==k)
s=s+k;
printf(“s=%d”,s);
1、求出能被3整除,且至少有一位数字是5的所有三位整数。
2、判断在200-500之间的整数中有哪些能被7整除成为一个素数,并统计其个数
实验五:
数组
熟练掌握数组的使用,掌握与数组有关的算法
1、有一批实验数据为15.3,14.2,16.7,12.8,11.5,14.7,15.6,13.1,13.8,15.5,16.2,13.4,14.3,13.5,12.6,找出与这些数据平均值最接近的那个数据,并指出该数据是第几个,再将它们从小至大排序。
分析,运行下列程序,写出各段程序功能:
{floata[16]={0,15.3,14.2,16.7,12.8,14.7,15.6,13.1,13.8,15.5,16.2,13.4,14.3,13.5,12.6},x,aver=0,t=1;
intk,j,m;
printf(“\nsz1:
”);
for(j=1;
j<
=15;
j++)printf(“%f,”,a[j]);
‘
k++)aver=aver+a[k];
aver=aver/15;
x=fabs(a[1]-aver);
for(k=2;
{if(fabs(a[k]-aver)<
x){x=fabs(a[k]-aver);
m=k;
printf(“m=%d,a[m]=%f”,t,a[m]);
=14;
for(j=k+1;
j++)
if(a[j]>
a[j+1]){t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}‘
printf(“\nsz2:
2、给定16个整数,组成结构4X4矩阵,分别找出每行的最大值和每列的最大值,再由这些最大值组成一个2X4的矩阵输出。
{inta[5][5]={3,1,2,4,0,5,6,7,1,0,2,4,3,6,0,8,7,2,1,0},b[2][4],lmx,nmx,lh,nh,k,j,k1,j1;
printf("
\nsz1:
\n"
);
for(j=0;
4;
j++){for(k=0;
k++)printf("
%d,"
a[j][k]);
j++)a[j][4]=a[j][0];
j++)a[4][j]=a[0][j];
{
for(k=0;
{if(a[j][k]>
a[j][4])a[j][4]=a[j][k];
‘求每行最大值,送入a数组第4列中
if(a[j][k]>
a[4][k])a[4][k]=a[j][k];
求每列最大值,送入a数组第4行中
}}
printf("
5;
for(k=0;
k++)b[0][k]=a[k][4];
‘a数组第4列送入b数组0行
k++)b[1][k]=a[4][k];
‘a数组第4行送入b数组1行
2;
b[j][k]);
1、两个有序数组A={1,3,5,7,9},B={2,6,8,10,12,14},用元素插入的方法将这两个数组组成一个有序的新数组C.
实验六函数
目的与要求
掌握函数的定义方法,熟练掌握函数的使用,掌握文件包含的使用方法,掌握全局变量和局部变量的概念和使用方法,初步掌握预编译方法。
1.有20个任意的整数,写一个函数找出最大数和最小数,写一个函数找出其中的偶数,要求偶数的输出在主函数中进行。
2.求ax2+bx+c=0;
a,b,c的值由键盘输入,将求b2-4ac的值写成一个函数调用。
3.用递归结构实现求Fibonacci数列,设n=20。
1.算法:
略
源代码:
voidfind(intbuf[20]);
intcheck(inta);
voidmain()
{intbuf[20],i;
Pleaseinput20number:
\n"
for(i=0;
i<
=19;
i++)
scanf("
%d"
&
buf[i]);
find(buf);
\nevenis:
i++)
if(check(buf[i]))printf("
buf[i]);
voidfind(intbuf[20])
{inti,max,min;
max=min=buf[0];
for(i=1;
if(buf[i]>
max)max=buf[i];
elseif(buf[i]<
min)min=buf[i];
max=%dmin=%d"
max,min);
intcheck(inta)
{if(!
(a%2))return1;
elsereturn0;
上机调试程序:
1234567891011121314151617181920
max=20min=1
evenis:
2468101214161820
2.算法:
#include<
math.h>
floatx1,x2,disc,p,q;
voidgreater_than_zero(floata,floatb)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
voidequal_to_zero(floata,floatb)
{x1=x2=(-b)/(2*a);
voidsmaller_than_zero(floata,floatb)
{p=(-b)/(2*a);
q=sqrt(-disc)/(2*a);
voidmain()
{floata,b,c;
\ninputa,b,c:
"
%f,%f,%f"
\nequation:
%5.2f*x*x+%5.2f*x+%5.2f=0\n"
a,b,c);
disc=b*b-4*a*c;
root:
if(disc>
0)
{greater_than_zero(a,b);
printf("
x1=%5.2f\tx2=%5.2f\n\n"
x1,x2);
}
elseif(disc==0)
{equal_to_zero(a,b);
else
{smaller_than_zero(a,b);
printf("
x1=%5.2f+%5.2fi\nx2=%5.2f-%5.2fi\n\n"
p,q,p,q);
inputa,b,c:
1,2,1
equation:
1.00*x*x+2.00*x+1.00=0
x1=-1.00x2=-1.00
2,3,4
2.00*x*x+3.00*x+4.00=0
x1=x2=
2,3,1
2.00*x*x+3.00*x+1.00=0
3.算法:
intFibonacci(intcount)
{if(count<
1)return0;
elseif(count<
3)return1;
else
return(Fibonacci(count-1)+Fibonacci(count-2));
{inti;
=20;
Fibonacci(i));
结果为:
思考题:
用递归的方法将一个不多于四位的正整数逆序输出,例如原数为321,应输出123。
实验七指针
掌握指针的概念,定义,引用,熟练掌握各种类型指针在程序设计中的使用方法。
1.有任意10个数,按从小到大排序输出。
2.有两个3X3的矩阵,写一个函数完成两个矩阵的相加,用主函数调用该函数(矩阵元素自定)。
3.有n个整数,使前面各数顺序后移m个位置,最后m个数变成最前面的m个数。
1.源代码:
{intnum[10];
input(num);
max_min(num);
output(num);
input(intnum[10])
{inti;
Printf(“input10numbers:
\n”);
=9;
num[i]);
max_min(inta[10])
{int*max,*min,*p,*k,i;
*t
k=a+10;
{
max=min=a[i];
for(p=a+i+1;
p<
k-i;
p++)
f(*p>
*max)max=p;
elseif(*p<
*min)min=p;
*t=a[0];
a[0]=*min;
*min=*t;
*t=a[9];
a[9]=*max;
*max=*t;
output(inta[10])
{int*p;
Printf(“now,theyare:
for(p=a;
=a+9;
*p);
Input10numbers:
322456781983644296
Now,theyare:
2.源代码:
voidarr_add(inta[3][3],intb[3][3]);
{inta[3][3],b[3][3];
inti,j;
ThearrayA:
for(i=0;
3;
for(j=0;
a[i][j]);
ThearrayB:
b[i][j]);
arr_add(a,b);
now,theyare:
{for(j=0;
a[i][j]);
voidarr_add(inta[3][3],intb[3][3])
{int*pa,*pb,*pc,i;
pa=a[0];
pb=b[0];
pc=a[0];
9;
{*(pc+i)=*(pa+i)+*(pb+i);
123456789
101112131415161718
now,theyare:
3.源代码:
main()
{intnumber[20],n,m,i;
howmanynumbers?
%d"
n);
input%dnumbers:
n);
n;
number[i]);
howmanyplaceyou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 指导书