《C语言程序设计》实验指导文档格式.docx
- 文档编号:16188041
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:71
- 大小:453.58KB
《C语言程序设计》实验指导文档格式.docx
《《C语言程序设计》实验指导文档格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验指导文档格式.docx(71页珍藏版)》请在冰豆网上搜索。
char型占%d个字节;
sizeof(char));
//1
int型占%d个字节;
sizeof(int));
//2
longint型占%d个字节;
sizeof(long));
//3
printf("
float型占%d个字节;
sizeof(float));
//4
double型占%d个字节;
sizeof(double));
//5
-----------------------------\n"
);
printf("
变量a的值的类型占%d个字节;
\n"
sizeof(a));
//6
表达式(float)a的值的类型占%d个字节;
sizeof((float)a));
//7
表达式2.0*a的值的类型占%d个字节;
sizeof(2.0*a));
//8
表达式a+'
a'
-2.0的值的类型占%d个字节;
sizeof(a+'
-2.0));
//9
字符串Hello!
占%d个字节;
sizeof("
Hello!
"
));
//10
}
2、程序改错并调试:
下列程序的功能为:
输入一个华氏温度,要求输出摄氏温度。
公式为:
C=
,输出取2位小数。
程序中有5处错误,请修改并调试程序,使其实现所要求的功能。
(编译连接无误后单步执行)
{
floatc,f;
请输入一个华氏温度:
scanf("
%f"
,f);
//3
c==(5/9)*(f-32);
摄氏温度为:
%5.2f\n"
c);
//5
3、编程:
⑴由键盘输入一个圆柱体的底面半径r和高度h的值,编程计算并输出该圆柱体的体积。
(注意:
体积=底面积*高,要求将圆周率定义为符号常量PI)
⑵由键盘输入两个整型变量a和b的值。
编程计算并输出a与b的和、差、积、商、a除以b的余数、ab的值。
输入输出参考示例如下:
(提示:
用到C语言的运算符+、-、*、/、%、函数pow()(参见附录CP385))
请输入a,b的值:
a=3,b=2
a+b=5
a-b=1
a*b=6
a/b=1
a%b=1
a^b=9
⑶求一元二次方程ax2+bx+c=0的实根x1,x2,。
a,b,c的值由键盘输入,设b2-4ac>
0。
输入输出示例如下:
请输入三个系数a,b,c的值:
(提示:
用到C语言的库函数sqrt()(参见附录CP385))
a=1,b=3,c=2
x1=-1.00
x2=-2.00
⑷编写一个程序,从键盘输入一个大写字母,输出该字母及其对应的ASCII码值,同时输出其小写字母及其对应的ASCII码的值。
⑸(选做)编写程序,从键盘输入两个数字字符并分别存放在字符型变量a和b中,要求通过程序将与这两个字符对应的数字相加后输出,例如,输入字符型数字7和5,输出的则是整型数12。
通过“数字字符-‘0’得到对应数字”)。
⑹(选做)编写程序,要求从键盘输入一个3位整数,然后将它们逆序输出。
(比如:
输入123,输出321。
提示:
关键是想办法分别提取百位、十位和个位上的数字!
!
)
三、实验小结
在上机过程中主要遇到哪些问题?
分别是如何解决的?
实验3、选择结构程序设计
1、熟悉关系表达式、逻辑表达式的书写和求值;
2、掌握if语句的三种基本形式、switch语句的结构及其应用;
3、能综合运用if语句与switch语句实现多分支选择;
4、熟悉并掌握程序的“单步执行”、“断点设置及跟踪”等调试方法。
上机的结果及出错原因说明:
⑴
⑵
⑶
⑷
⑸
⑹
分析的结果:
1、逻辑表达式验算:
设已有定义inta=3,b=4,c=5;
先自行计算下面各逻辑表达式的值,然后编写程序上机验证你分析的结果是否正确。
⑴a+b>
c&
&
b==c
⑵!
(a>
b)&
!
c||1
⑶!
(x=a)&
(y=b)&
⑷!
(a+b)+c-1&
b+c/2
⑸(a=b+c,b>
c-1)&
(b+=c)||(b*2==a+c)
⑹('
c'
-'
a'
)/2+b>
c!
=b-a;
2、程序填空:
以下程序的功能为:
从键盘输入依次输入操作数、运算符、操作数,如果运算符是+、-、*、/之一,则进行相应的四则运算,否则输出运算符有误。
在程序的空白处填入正确的语句,使得程序能正常执行并完成规定的功能。
{inta,b,c;
【1】
【2】
【3】
charop;
Pleaseinputaexpression:
scanf("
%d%c%d"
【1】);
switch(op)
{case'
+'
:
c=a+b;
printf("
%d+%d=%d\n"
a,b,c);
break;
case'
c=a-b;
%d-%d=%d\n"
*'
c=a*b;
%d*%d=%d\n"
/'
if(【2】)
printf("
Divisoriszero\n"
else
%d/%d=%f\n"
a,b,(【3】)a/b);
/*强制类型转换*/
default:
输入的运算符有误!
3、程序改错调试(请纠正程序中存在错误,使程序实现其功能)
⑴下列程序的功能为:
输入1个字母后,输出该字母的前序字母、该字母、该字母的后序字母,例如:
输入d,则输出cde;
输入a,则输出zab;
输入P,则输出OPQ;
输入Z,则输出YZA。
{charch,c1,c2;
Enteracharacter:
ch=getchar();
if((ch>
='
)||(ch<
z'
))
ch-=32;
c1=ch-1;
c2=ch+1;
if(ch='
A'
)c1=ch+25;
elseif(ch='
Z'
)c2=ch-25;
putchar(c1);
putchar(ch);
putchar(c2);
putchar('
\n'
⑵下列程序的功能为:
输入1-4月份号,输出该月份对应的英语表示法。
例如,输入“3”,则输出“March”。
#include"
stdio.h"
{charm;
printf(“inputthemonthnumber:
\n”);
scanf(“%c”,&
m);
switch(m)
{
case1:
printf("
Jan"
case2:
Feb"
case3:
Mar"
case4:
Apr"
4、编程:
⑴根据上网时间t计算并输出上网费用cost,计算公式:
同时为了鼓励多上网,每月收费最多不超过300元。
⑵判断用户从键盘输入的任意一个字符是数字字符、字母字符还是其他字符,要求有必要的输入提示和输出信息;
如果输入的是英文字母,再利用switch语句判断该字母是否是元音字母,并以“yes”或“no”字样输出判断结果。
⑶编程实现:
任意输入一个百分制成绩,输出成绩等级A、B、C、D。
当输入的分数小于0分或大于100分时,显示出错信息;
在85~100分时为A,70~84分为B,55~69分为C,55分以下为D。
(要求:
综合应用if和switch结构实现,参考教材P102例题4.6)
⑷(选做)编程实现:
对任意输入的一个日期(年year、月month、日day),计算并输出该年该月该日是这一年的第几天。
本题要综合应用到if、switch结构)
对选择结构掌握的情况如何?
主要存在什么问题?
实验4、循环结构程序设计⑴
1、熟悉for、while、do…while三种循环语句的结构和执行流程,体会三种循环语句的异同,能够根据实际问题选用适合的循环语句。
2、掌握用循环的方法实现常见实际问题。
3、进一步熟悉调试程序的方法(单步执行、运行到光标位置、断点设置及跟踪)。
1、程序调试改错:
(请纠正程序中存在的错误,使程序实现其功能)
⑴下面程序的功能是:
输入10名学生某门课程的成绩,计算平均分,并求出其中的最高分和最低分。
出错行号及正确代码:
#include<
main()//1
{inti;
floatscore,max,min,sum,ave;
Pleaseenterscoreofstudent:
scanf("
&
score);
max=min=sum=0;
for(i=1;
i<
=10;
i++)//7
{scanf("
//8
sum+=score;
//9
if(max>
score)//10
max=score;
//11
elseif(min<
score)//12
min=score;
//13
ave=sum/10;
//14
Average=%6.2f\nMax=%6.2f\nMin=%6.2f\n"
ave,max,min);
//15
⑵下面程序的功能为:
逆序输出26个大写英文字母。
{charx;
x='
;
while(x='
)//4
{printf("
%3d"
x);
x++;
}
2、程序填空(在程序的空白处填入正确的语句,使得程序能正常执行并完成规定的功能)
用辗转相除法求两个正整数的最大公约数。
“辗转相除法”求两个正整数的最大公约数的算法提示如下:
①将两数中大的那个数放在m中,小的放在n中。
②求出m被n除后的余数r。
③若余数为0则执行步骤⑦;
否则执行步骤④。
④把除数作为新的被除数;
把余数作为新的除数。
⑤求出新的余数r。
⑥重复步骤③到⑤。
⑦输出n,n即为最大公约数。
#include<
main()
{
intr,m,n,【1】;
scanf("
%d%d"
m,&
n);
if(m<
n)
【2】
r=m%n;
while(r)
{m=n;
n=r;
r=【3】;
printf("
%d\n"
n);
计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩的一半多两个)。
{intday,x1,x2;
day=0;
x1=1020;
while(【4】)
{x2=【5】;
x1=x2;
day++;
day=%d\n"
day);
⑴输入一个实数x和一个正整数n,输出xn。
要求分别用for、while、do…while语句来实现。
⑵编程求1到n中能被3或7整除的数之和,n的值由键盘输入。
请分别用for循环语句和while循环语句完成
用for循环用while循环
⑶任意输入一串字符(敲回车键结束输入)。
分别统计出其中英文字母、数字字符、其它字符的个数。
⑷(选做)编写程序:
从键盘输入x,利用幂级数展开计算sinx的近似值,要求误差小于10-6。
⑸(选做)编写程序:
任意输入一串字符(敲回车键结束输入),将其中所有的大写字母均转换为小写,然后将所有字母均用其前面的第3个字母替换,其他字符不变,输出转换后的字符串。
例如:
如果输入AsiaGame2010,输出xpfxdxjb2010.
本次实验完成的情况如何。
对三种循环语句掌握的情况如何,目前主要存在哪些问题?
实验5、循环结构程序设计⑵
1、掌握break、continue语句的作用、区别及使用方法;
2、掌握循环结构的嵌套(至少两层);
3、掌握用循环的方法实现一些常用算法;
4、进一步熟悉调试程序的方法(单步执行、运行到光标位置、断点设置及跟踪)。
1、程序改错调试:
以下程序的功能是用人机对话的形式进行加、减、乘、除运算。
用户每输入一次运算数和运算符,系统输出相应的计算结果,例如,当用户输入3+5后,系统输出3+5=8.00,进行除法运算时要判断分母是否为0;
只有当输入的运算符为“#”时才结束整个程序的运行。
程序中两行存在错误,调试以实现要求的功能。
conio.h>
{inti=1,flag=0;
//2//i代表题号,flag作为标志变量进行分类
floata,b,result;
//3//a、b分别为参加运算的两个数,result为运算结果
charsym;
//4//sym为运算符
请输入操作数1运算符操作数2:
while(sym!
#'
)//6
{flag=0;
//7
第(%d)题:
i);
%f%c%f"
a,&
sym,&
b);
switch(sym)//10
{case'
result=a+b;
break;
case'
result=a-b;
//12
result=a*b;
if(b==0)//15
flag=1;
//16
else//17
result=a/b;
//18
continue;
//19
flag=3;
//20
flag=2;
//21
}
if(flag==0)//22
{printf("
%0.1f%c%0.1f=%0.2f\n\n"
a,sym,b,result);
//23
i++;
//24
}
if(flag==1)printf("
除数为零!
请重新输入!
\n\n"
//25
if(flag==2)printf("
运算符错误!
//26
if(flag==3)printf("
结束!
//27
对任意输入的一个整数,输出它的位数以及各位数字之和,例如,若输入123,则输出“123的位数为3,各位数字之和为6”。
{inta,n,len=0,sum=0,num;
/*n代表整数a的每一位数字,len代表a的位数*/
请输入一个整数a="
%d"
a);
【1】;
while(a>
0)
{n=【2】;
/*求整数的个位、百位、...位的数字*/
sum+=n;
【3】;
len++;
整数%d共有%d位,"
num,len);
其各位数字之和为%d\n\n"
sum);
⑵以下程序的功能是:
给出年、月、日,计算出该日是该年的第几天。
请填空完善程序。
{intyear,month,day,days,i,d;
请输入年,月,日:
%d,%d,%d"
year,&
month,&
day);
days=0;
for(i=1;
month;
i++)
{switch(【4】)
{case1:
case3:
case5:
case7:
case8:
case10:
case12:
d=31;
【5】;
case4:
case6:
case9:
case11:
d=30;
【6】;
case2:
if(year%4==0&
year%100!
=0||year%400==0)d=29;
elsed=28;
days+=d;
%d年%d月%d日是该年的第%d天。
year,month,day,【7】);
⑴编程输出如下图所示的下三角形乘法九九表。
⑵中国古代数学家张丘建提出的“百鸡问题”:
一只大公鸡值五个钱,一只母鸡值三个钱,三个小鸡值一个钱。
现在有100个钱,要买100只鸡,是否可以?
若可以,给出一个解,要求三种鸡都有。
请写出求解该问题的程序。
⑶编程输出如下图形(要求以第30列为对称轴)。
⑷统计100之内素数的个数(2是最小的素数),并将这些素数按每行10个输出。
4、选做题
⑴程序改错调试:
找出1000以内的所有完数(一个数等于它的所有因子之和,这个数就称为“完数”,例如28的因子1+2+4+7+14=28,则28即为一个“完数”)。
程序中有2行存在错误,请调试修改,以实现程序所要求的功能。
main()//2
{inta,k,s=0;
for(k=2;
k<
1000;
k++)//4
{s=s;
for(a=1;
a<
=k/2;
a++)//6
if(k/a==0)//7
s+=a;
if(s==k)//9
printf("
%disOK!
k);
}
}
⑵编程验证哥德巴赫猜想:
任何一个大于6的偶数均可表示为2个素数之和。
如,6=3+3,8=3+5,10=3+7,10=5+5,……..20=3+17,20=13+7等。
编程将6~100之间的偶数都表示为2个素数之和。
谈谈本次实验完成的情况。
到目前为止你掌握的情况如何,主要问题是什么?
实验6、数组⑴
1、掌握一维数组的定义、初始化及其使用方法;
2、熟悉二维数组的定义、初始化及其使用方法;
3、熟练掌握利用数组实现常用算法;
⑴程序的功能是:
输入10个数,求出这些数中的最大值、最小值以及平均值,并按照每行5个数的格式输出。
#d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 实验 指导