c语言实验教案Word文档下载推荐.docx
- 文档编号:20835436
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:26.02KB
c语言实验教案Word文档下载推荐.docx
《c语言实验教案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言实验教案Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
{
printf(“ThisisaCprogram.\n”);
}
按功能键F9进行编译和连接,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译。
如果编译无错误,按ctrl和F9键使程序运行,按Alt和F5键,切换到用户屏幕,观察分析运行结果。
2、输入并运行下面的程序
{charc1,c2;
c1=’a’;
c2=’b’;
printf(“%c,%c\n”,c1,c2);
a.运行此程序。
b.在此基础上增加一个语句:
printf(“%d,%d\n”,c1,c2);
再运行,并观察结果。
c.将第二行改为c1=a;
c2=b;
再运行,分析其运行结果。
d.第3行和第4行改为:
c1=“a“;
c2=”b“;
再便之运行,分析其结果。
e.再将第3、4行改为c1=300;
c2=400;
再使之运行,分析其运行结果。
3、输入并运行教材第3章习题3.6给出的程序
{charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tc%ctabc\n”,c1,c2,c3);
printf(“\t\b%c%c”,c4,c5);
}
在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
4、输入并运行下面的程序
{inta,b;
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=62767;
c=a;
d=b;
printf(“%d,%d\n”,a,b);
printf(“%u,%u\n”,a,b);
printf(“%u,%u\n”,c,d);
c=a=e;
d=b=f;
请对照程序和运行结果分析:
一个负整数赋给一个无符号的变量,会得什么结果。
画出它们在内存中表示形式。
将一个大于32767的长整数赋给整型变量,会得到什么结果。
画出它们在内存中的表示形式。
将一个长整数赋给无符号变量,会得到什么结果。
学生可以改变程序中各变量的值,经便比较。
例如:
a=65880,b=-40000,e=65535,f=65580。
5、输入习题3.10
main()
{inti,j,m,n
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
a.运行程序,注意i,j,m,n各变量的值,分别作出以下改动并运行。
第4、5行改为:
m=i++;
n=j++;
再运行。
b.将程序改为:
{inti,j;
i=8;
j=10;
printf(“%d,%d”,i++,j++);
c.在a的基础上,将printf语句改为:
{printf(“%d,%d”,++i,++j);
再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
将程序改为
{inti,j,m=0,n=0;
m+=i++;
n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);
四、实验重点、难点
1.整型、实型、字符型数据
2.运算符和表达式的运用
五、操作要点
按Alt+E可进入编辑菜单,若再回车,则光标出现在编辑窗口,
此时用户可以
进行文本编辑。
六、注意事项
C的几种基本数据类型及标识符的概念,注意变量和符号常量先定义后使用特点。
实验二顺序结构程序设计
1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
1、掌握各种格式转换符的正确使用方法
a.输入程序
main()
{inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsignedintp,q;
a=61;
b=62;
f=3157.8901121;
g=0.123456789;
m=50000;
n=-60000;
p=32768;
q=40000;
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n”,a,b,c1,c2,d,e);
printf(“f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n”,f,g,m,n,p,q);
b.运行此程序并分析结果。
c.在此基础上,修改程序的第8—13行:
a=61;
b=62;
c1=a;
c2=b;
f=3157.890121;
g=0.123456789;
d=f;
e=b;
p=a=m=50000;
q=b=n=-60000;
运行程序,分析结果。
d.改用scanf函数输入数据而不用赋值语句,scanf函数如下:
scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&
a,&
b,&
c1,&
c2,&
d,&
e,&
f,&
g,&
m,&
n,&
p,&
q);
输入的数据如下:
61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000
(说明:
lf和ld格式符分别用于输入double型和long型数据)分析运行结果。
e.在d的基础上将printf语句改为:
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n”,ab.c1,c2,d,e);
printf(“f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n”,f,g,m,n,p,q);
运行程序。
f..将p,q改用%o格式符输入。
g.将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。
2、按习题4.8要求编写程序
题目为:
设圆半为1.5,圆柱高为3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
用scanf输入数据,输出计算结果。
输出时要有文字说明,取小数点后两位数字。
3、编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
1.符数据输入输出函数
2.格式输入输出函数
按Alt+R可进入Run菜单,其中Run:
运行由Project/Projectname项指定的文件名或当前编辑区的文件。
如果对上次编译后的源代码未做过修改,则直接运行到下一个断点(没有断点则运行到结束)。
否则先进行编译、连接后才运行,其热键为Ctrl+F9。
Userscreen:
显示程序运行时在屏幕上显示的结果。
其热键为Alt+F5。
1.输入输出的数据类型与所用格式说明符不一致
2.输入变量时忘记使用地址符号
实验三逻辑结构程序设计
1.了解C语言表示逻辑量的方法(以0代表“假”,以非代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达。
3.熟练掌握if语句和switch语句.
4.学习调试程序。
1、本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
有一函数:
x(x<
1)
y=2x-1(1<
=x<
10)
3x-11(x.>
=10)
用scanf函数输入x的值,求y的值。
(习题5.5)
运行程序,输入x的值(分别用上面三种情况),检查输出的y值是否正确。
2、给出一个百分成绩,要求输出成绩的等级A、B、C、D、E。
90分以上的为A,81—89分的为B,70—79的为C,60—69分的为D,60分以下的为E。
(习题6.6)
事先编好一个程序,要求分别用if语句和switch语句实现。
运行程序,并检查结果是否正确。
再运行一次程序,输入分数为负值,这显然是输入时出错,不应给出等级。
修改程序,使之能正确处理任何数据。
当输入数据大于100或小于0时通知用户“输入数据错”,程序结束。
3、一个不多于5位的整数,要求:
a.求出它是几位数;
b.分别打印每一位数字;
c.按逆序打印出各位数字,例如原数为321,应输出123.(习题5.7)
应准备以下测试数据:
要处理的数为1位正整数;
要处理的数为2位正整数;
要处理的数为3位正整数;
要处理的数为4位正整数;
要处理的数为5位正整数;
除此之外,程序还应当对不合法的输入作必要的处理.例如:
输入负数;
输入的数超过5位(如123456).
4、输入4个整数,要求按由小到大顺序输出.
得到正确结果后,修改程序使之按由大到小的顺序输出。
1.表达式
2.选择型程序设计语句
3.逻辑表达式
按Alt+C可进入Compile菜单,Buildall:
重新编译项目里的所有文件,并进行装配生成.EXE文件。
该命令不作过时检查
。
1.误把“=”作为关系运算符“等于”
2.没有注意大写字母和小写字母代表不同的标识符
3.当一个复合语句中使用多层括号时,常出现大括号不配对的现象。
1.熟悉掌握用语句,语句和语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
3.掌握一维数组和二维数组的定义、赋值和输入输出的方法;
4.掌握字符数组和字符串函数的使用;
5.掌握与数组有关的算法(特别是排序算法)。
1、编程序并上机调试运行。
输入两个正整数m和n,求它们的最大公约数和最小公倍数。
(习题6.1)
在运行时,输入的值m>
n,观察结果是否正确。
再输入时,使m<
n观察结果是否正确。
#include<
stdio.h>
voidmain()
intm,n,i,zdgy,zxgb;
do
{
printf("
Inputtwointegernumber:
"
);
scanf("
%d,%d"
&
n);
}while(m<
0||n<
0);
i=m<
n?
m:
n;
while(i>
=1)
if(m%i==0&
&
n%i==0)break;
i--;
zdgy=i;
zxgb=m*n/zdgy;
printf("
%d,%d'
szdgyis%d\n"
m,n,zdgy);
szxgbis%d\n"
m,n,zxgb);
2、输入一行字符,分别统计出其中的英文、空格、数字和其他字符的个数(习题6.2)。
在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。
string.h>
charline[256];
inti,n1,n2,n3,n4;
n1=n2=n3=n4=0;
Inputaline:
gets(line);
for(i=0;
line[i]!
='
\0'
;
i++)
if((line[i]>
A'
line[i]<
Z'
)||(line[i]>
a'
z'
))
n1++;
else
if(line[i]=='
'
)n2++;
else
if(line[i]>
0'
9'
)n3++;
elsen4++;
Thenumbersofenglishcharactersis%d\n"
n1);
Thenumbersofthespaceis%d\n"
n2);
ThenumbersoftheDigitis%d\n"
n3);
Thenumbersofothercharacteris%d\n"
n4);
3、将两个字符串;
连接起来,不要用strcat函数。
charstr1[100],str2[30];
inti,j;
printf(“Inputstring1:
”);
gets(str1);
printf(“Inputstring2:
gets(str2);
str1[i];
i++);
for(j=0;
str2[j];
j++)
str1[i+j]=str2[j];
str1[i+j]='
puts(str1);
4、找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小(注:
也可能没有鞍点)。
(习题7.8)
应当至少准备两组测试数据:
请学生修改程序以实现之。
二维数组有鞍点
90-60961
98020540
210–310189
二维数组无鞍点
90-601961
210-310189
45541567
用scanf函数从键盘输入数组各元素的值,检查结果是否正确。
题目并未指
定二维数组的行数和列数,程序应能处理任意行数和列数的数组。
因此,从
理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量
太大,一般来说不需要这样做,只需准备典型的数据即可。
如果已指定了数
组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。
#defineM3
#defineN4
inta[M][N],i,j,k,t,ti,tj;
i<
M;
Inputthe%dline:
i+1);
for(j=0;
j<
N;
scanf("
%d"
a[i][j]);
t=a[i][0];
ti=i;
tj=0;
for(j=1;
{
if(a[i][j]>
t)
{
t=a[i][j];
tj=j;
}
}
for(k=0;
k<
k++)
if(a[k][tj]<
t)break;
if(k>
=M)printf("
Line%d,col%d,value%d\n"
ti,tj,t);
1.循环语句
2.循环的嵌套
3.break和continue语句
4.一维数组
5.二维数组和多维数组
6.字符数组
Run菜单中Gotocursor:
:
调试程序时使用,选择该项可使程序运行到光标所在行。
光标所在行必须为一条可执行语句,否则提示错误。
其热键为F4。
Traceinto:
在执行一条调用其它用户定义的子函数时,若用Traceinto项,则执行长条将跟踪到该子函数内部去执行,其热键为F7。
1.对应该有花括号的复合语句,忘记加花括号
2.在不该加分号的地方加了分号
3.引用数组元素时误用圆括号
4.引用数组元素超界
5.对二维或多维数组定义和引用的方式不对
6.误以为数组名代表整个数组
7.混淆字符数组与字符指针的区别
1.掌握函数定义的方法;
2.掌握函数实参与形参的对应关系以及“值传递”的方式;
3.掌握函数的嵌调用和递归调用的方法;
4.掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
5.学习对多文件程序的编译和运行。
编程序并上机调试运行。
1、一个判别素数的函数,在主函数输入一个整数,输出是否素数主信息(习题7.2)。
本程序应当准备以下测试数据:
17、34、2、1、0。
分别输入数据,运行程序并检查结果是否正确。
math.h>
intftss(intx)
inti,k,flag=1;
k=(int)sqrt(x);
i=2;
while(i<
=k)
if(x%i==0){flag=0;
break;
i++;
returnflag;
intm;
Inputoneinteger:
scanf("
m);
if(ftss(m))printf("
%disaprimenumber.\n"
m);
elseprintf("
%disnotaprimenumber.\n"
2、用一个函数来实现将一行字符串中最长的单词输出。
此行字符串从主函数传给该函数。
把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。
把两个函数分别放在两个程序文件中,作为两个文件进行编译,连接和运行。
voidprint_maxlength_word(charstr[])
inti,word=0,mwb=0,mwe=0,wb,we;
charch;
wb=we=0;
(ch=str[i])!
if(word==0&
ch!
){word=1;
wb=i;
if(word==1&
ch=='
){word=0;
we=i;
if(we-wb+1>
mwe-mwb+1){mwe=we;
mwb=wb;
Themaxlengthofwordis:
for(i=mwb;
=mwe;
%c"
str[i]);
\n"
charstr[256];
Enteroneline(Usethespacetodotheend):
gets(str);
print_maxlength_word(str);
3、用递归法将一个整数n转换成字符串。
例如,输入483,应输出字符串“483”,N的位数不确定,可以是任意的整数。
(习题8.17)
voidnumber_change_char(intx,charc[])
staticinti=0;
if(x>
=0&
x<
=9){c[i]='
+x;
i++;
c[i]='
+x%10;
number_change_char(x/10,c);
intn,i,k;
charc[20]={0};
Inputoneintegernumer:
if(n<
0){printf("
-"
n=-n;
number_change_char(n,c);
for(k=0;
c[k]!
k++);
for(i=k-1;
i>
=0;
i--)
c[i]);
4、求两个整数的最大公约数和最小公倍数。
用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。
(习题8.1)
不用全局变量,分别用两个函数求最大公约数和最小公倍数。
两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。
用全局变量的方法,分别用两个函数求最大公约数和最公倍数,但其值不由函数返回。
将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值,
intzdgy(intx,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 教案