c程序设计教程与实验吉顺如实验一到七.docx
- 文档编号:15263937
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:46
- 大小:125.66KB
c程序设计教程与实验吉顺如实验一到七.docx
《c程序设计教程与实验吉顺如实验一到七.docx》由会员分享,可在线阅读,更多相关《c程序设计教程与实验吉顺如实验一到七.docx(46页珍藏版)》请在冰点文库上搜索。
c程序设计教程与实验吉顺如实验一到七
实验1熟悉VisualC++环境及运行C程序
一、实验目的
1.掌握在VisualC++环境下C程序的建立、编辑、编译和执行过程。
2.掌握C程序的最基本框架结构,完成简单程序的编制与运行和调试。
3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容
1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名保存。
#include<>
main()
{
inta,b,sum;/*定义整型变量a、b、sum*/
printf("PleaseInputa,b\n");/*输出提示信息*/
scanf("%d%d",&a,&b);/*从键盘输入两个整数分别赋予a和b*/
sum=a*a+b*b;/*赋值语句,把a2+b2的结果赋给变量sum*/
printf("%d*%d+%d*%d=%d\n",a,a,b,b,sum);/*输出语句*/
}
2.改错题
在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。
(1计算x*y的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名保存。
#include<>
mainmain()
{intx=2;y=3;aintx=2,y=3,a;
该程序的运行结果:
a=6
A=x*ya=x*y;
print('a=%d",A);printf("a=%d",a);
printf("\n");
}
(2)下程序的功能为:
求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名保存。
#include<>
viodmain()voidmain()
{
inta,b,max;
Scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);
Max=a;max=a;
If (max
Printf(“max=%d”,max);printf(“max=%d”,max);
}
该程序的运行结果:
5,3
max=5
3.程序填空题
(1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
以文件名保存。
#include<>
main()
{
intx,y,total;/*定义整型变量x,y,total*/
printf("Pleaseinputx,y!
");/*输出提示信息*/
scanf(“%d%d”,&x,&y);/*由键盘输入两个数分别赋予x和y*/
total=x+y;/*赋值语句*/
printf("%d+%d=%d\n",x,y,total);/*输出两个整数的和*/
}
(2)从键盘输入两个整数,输出这两个整数的差。
根据注释信息填写完整程序,以实现其功能。
程序以文件名保存。
#include<>
main()
{
inta,b,m;
printf("Inputa,bplease!
");
scanf("%d%d",&a,&b);
_m=a-b;___/*赋值语句,将a和b的差值赋给m*/
_printf(“%d-%d=%d\n”,a,b,m);_/*输出a和b差的结果值后换行*/
}
4.编程题
(1)编程序,运行后输出如下信息:
“BetterCity,BetterLife!
”。
程序以文件名保存。
#include<>
main()
{
printf("BetterCity,BetterLife!
\n");
}
(2)编程序,从键盘输入3个整数,输出它们的平方和。
程序以文件名保存。
#include<>
main()
{
inta,b,c,sum;
printf("PleaseInputa,b,c\n");
scanf("%d,%d,%d",&a,&b,&c);
sum=a*a+b*b+c*c;
printf("%d*%d+%d*%d+%d*%d=%d\n",a,a,b,b,c,c,sum);
}
实验2数据类型、运算符和表达式
一、实验目的
1.理解C语言中各种数据类型的意义,掌握各种数据类型的定义方法。
2.掌握C语言常量、变量的定义与使用。
3.掌握C语言数据类型及运算符的使用规则。
二、实验内容
1.改错题
在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。
(1)下列程序的功能为:
已知圆锥半径r和高h,计算圆锥体积v。
纠正程序中存在的错误,以实现其功能。
程序以文件名保存。
计算圆锥体积的公式为:
#include#include<>
main();main()
{floatr=10,h=5;floatr=10,h=5,v;
v=1/3**r^2*h;v=3**r*r*h;
printf("v=%d\n",v)printf("v=%d\n",v);
}
该程序的运行结果:
v=
(2)下列程序的功能为:
通过键盘输入两个整数分别存放在变量x、y中,不借用第3个变量实现变量x、y互换值。
纠正程序中存在的错误,以实现其功能。
程序以文件名保存。
#include<>
main()
{
intx,y;
printf("请输入两个整数\n");
scanf("%d%d",x,y);scanf("%d%d",&x,&y);
printf("初始状态下的x:
%dy:
%d\n",x,y);
该程序的运行结果:
请输入两个整数
25
初始状态下的x:
2y:
5
最终状态下的x:
5y:
2
x=x+yx=x+y;
y=x-y;
x=x-y;
printf("最终状态下的x:
%dy:
%d/n",x,y);
}
2.程序填空题
该程序的运行结果:
(1)计算当x=4时,公式
×2x2的值。
补充完善程序,以实现其功能。
程序以文件名保存。
#include<>
main()
{
floatx=,y;
y=(1+x*x*x)/(x*x+4*sqrt(x)+10)*2*x*x;
printf("%f",y);
}
(2)下列程序的功能为:
从键盘输入3个整数分别存入变量a、b、c,然后,将变量a的值存入变量b,将变量b的值存入变量c,将变量c的值存入变量a,输出经过转存后变量a、b、c的值。
(提示:
使用中间变量)补充完善程序,以实现其功能。
程序以文件名保存。
#include<>
main()
{
inta,b,c,t;
printf("Pleaseinputa,b,c:
");
scanf("%d%d%d",&a,&b,&c);
t=a;
a=c;
c=b;
b=t;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3.编程题
(1)从键盘输入3个大写英文字母,把它们转换成小写字母后输出。
程序以文件名保存。
该程序的运行结果:
ABC
abc
#include<>
main()
{
charc1,c2,c3;
scanf("%c%c%c",&c1,&c2,&c3);
c1=c1+32;
c2=c2+32;
c3=c3+32;
printf("%c%c%c\n",c1,c2,c3);
}
(2)从键盘输入3个整数,输出它们的平均值与积。
程序以文件名保存。
#include<>
main()
{
inta,b,c,ji;
floatave;
printf("请输入3个整数\n");
scanf("%d%d%d",&a,&b,&c);
ave=(a+b+c)/;
ji=a*b*c;
printf("ave=%f,ji=%d\n",ave,ji);
}
该程序的运行结果:
请输入3个整数
246
ave=,ji=48
实验3顺序结构程序设计
一、实验目的
1.掌握scanf()、printf()以及其他常用输入、输出函数的使用。
2.掌握格式控制符的使用。
3.掌握顺序结构程序设计的方法。
二、实验内容
1.改错题
在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。
(1)下列程序的功能为:
输入一个华氏温度,要求输出摄氏温度。
公式为:
C=
,输出取2位小数。
纠正程序中存在的错误,以实现其功能。
程序以文件名保存。
#include<>
main()
{
floatc,f;
printf("请输入一个华氏温度:
\n");
scanf("%f",f);scanf("%f",&f);
c=(5/9)*(f-32);c=9)*(f-32);
printf("摄氏温度为:
%\n"c);printf("摄氏温度为:
%\n",c);
}
(2)下列程序的功能为:
按下列公式计算并输出x的值。
其中a和b的值由键盘输入。
纠正程序中存在的错误,以实现其功能。
程序以文件名保存。
#include<>
main()
{inta,b;
floatx;
scanf("%d,%d",a,b);scanf("%d,%d",&a,&b);
x=2ab/(a+b)(a+b);x=*a*b/((a+b)*(a+b));
printf("x=%d\n",x);printf("x=%f\n",x);
}
该程序的运行结果:
a
a,97
A,65
(3)下列程序的功能为:
从键盘输入一个小写字母,要求改用大写字母输出。
请纠正程序中存在的错误,使程序实现其功能,程序以文件名保存。
#include<>
main()
{
charc1,c2;
c1=getchar;c1=getchar();/*从键盘输入一个小写字母*/
printf("%c,%d\n",c1,c1);
c2=c1+26;c2=c1-32;/*转换为大写字母*/
printf("%c,%d\n",c2,c2);/*输出大写字母及其ASCII码值*/
}
2.程序填空题
(1)下列程序的功能为:
按给定格式输入数据,按要求格式输出结果。
补充完善程序,以实现其功能。
程序以文件名保存。
输入形式enterx,y:
2
输出形式x+y=
#include<>
main()
{
intx;
floaty;
printf("enterx,y:
");
scanf("%d%f",&x,&y);
printf("x+y=%.1f\n",x+y);
}
(2)下列程序的功能为:
设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
(周长l=2
,圆面积s=
,圆球表面积sq=
,圆球体积vq=
;圆柱体积vz=
),请补充完善程序,以实现其功能。
程序以文件名保存。
#include<>
main()
{
floatpi,h,r,l,s,sq,vq,vz;
pi=;
printf("请输入圆半径r,圆柱高h:
\n");
scanf("%f%f",&r,&h);
l=2*pi*r;
s=pi*r*r;
sq=4*pi*r*r;
vq=3*pi*r*r*r;
vz=pi*h*r*r;
printf("圆周长为:
%.2f\n",l);
printf("圆面积为:
%.2f\n",s);
printf("圆球表面积为:
%.2f\n",sq);
printf("圆球体积为:
%.2f\n",vq);
printf("圆柱体积为:
%.2f\n",vz);
}
(3)下列程序的功能为:
通过键盘输入两个整数,分别存入变量x、y中,当x 补充完善程序,以实现其功能。 程序以文件名保存。 #include<> main() {intx,y,t; printf("请输入x,y: \n"); scanf("%d%d",&x,&y); if(x {t=x;x=y;y=t;}/*x与y交换*/ printf("交换后的x: %dy: %d\n",x,y); } 3.编程题 (1)编写一个程序实现如下功能: 从键盘输入3个字符,然后在屏幕上分3行输出该3个字符。 程序以文件名保存。 该程序的运行结果: ABC A B C #include<> main() { charc1,c2,c3; c1=getchar(); c2=getchar(); c3=getchar(); putchar(c1); putchar('\n'); putchar(c2); putchar('\n'); putchar(c3); putchar('\n'); } (2)编写一个程序实现如下功能: 输入一元二次方程ax2+bx+c=0的系数a、b、c,求方程的根。 要求: 运行该程序时,输入a、b、c的值,分别使b2-4ac的值大于、等于和小于零,观察并分析运行结果。 程序以文件名保存。 求根公式如下: 该程序的运行结果: a=1,b=3,c=2 x1= x2= . . . . . #include<> #include<> voidmain() {floata,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/*a); q=sqrt(disc)/*a); x1=p+q; x2=p-q; printf("x1=%\nx2=%\n",x1,x2); } #include<> #include<> voidmain() {floata,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); if(a==0) printf("不是二次方程\n"); else disc=b*b-4*a*c; if(disc<0) printf("无实根\n"); else if(disc==0) {p=-b/*a); q=sqrt(disc)/*a); x1=p+q; x2=p-q; printf("有两个相同的实根\n"); printf("x1=%\nx2=%\n",x1,x2); } else {p=-b/*a); q=sqrt(disc)/*a); x1=p+q; x2=p-q; printf("有两个不同的实根\n"); printf("x1=%\nx2=%\n",x1,x2); } } 实验四选择结构程序设计 (解答) 1.改错题 (1)下列程序的功能为: 输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如: 输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。 请纠正程序中存在错误,使程序实现其功能,程序以文件名保存。 #include<> main() { charch,c1,c2; printf("Enteracharacter: "); ch=getchar(); 该程序的运行结果: 请输入3个整数: 527 3个数中最大者为: 7 该程序的运行结果: inputthemonthnumber: 2 Feb 该程序的运行结果: d a-z 该程序的运行结果: Pleaseinputaexpression: 2*6 2*6=12 该程序的运行结果: 请主持人输入时尚手机的实际价格 1500 请观众猜时尚手机的价格 1450 低了 if((ch>='a')||(ch<='z'))f",sum,ji,ave); printf("\nmax=%dmin=%d\n",max,min); } (2)有一分段函数如下,要求用scanf函数输入x的值,求y值并在屏幕上输出。 程序以文件名保存。 0x<5 y=x-15≤x<15 6x2-1x≥15 参考源程序 #include<> voidmain() {floatx,y; scanf("%f",&x); if(x<5)y=0; elseif(x<15)y=x-1; elsey=6*x*x-1; printf("x=%f,y=%f\n",x,y); } (3)从键盘输入一个数字0~6,输出相应星期几的英文单词,其中数字0对应Sunday,数字1~6对应Monday~Saturday,如果输入的不是0~6的数字,则显示错误信息。 程序以文件名保存。 参考源程序 #include<> main() { intm; printf("请输入数字(0-6): "); scanf("%d",&m); switch(m) { case0: printf("Sunday");break; case1: printf("Monday");break; case2: printf("Tuesday");break; case3: printf("Wednesday");break; case4: printf("Thursday");break; case5: printf("Friday");break; case6: printf("Saturday");break; default: printf("数据输入错误。 "); } } 实验5循环结构程序设计 一、实验目的 1.掌握循环结构程序设计的3种控制语句——while语句、do···while语句、for语句的使用方法。 2.了解用循环的方法实现常用的算法设计。 二、实验内容 1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。 ) (1)下列程序的功能为: 求1~100之和(和值为5050)并输出。 纠正程序中存在的错误,以实现其功能。 程序以文件名保存。 #include<> main() { inti,sum=0; i=1; while(i<100)while(i<=100) sum=sum+i;{sum=sum+i; i++;i++;} printf(“Thesumfrom1to100is%d\n”,sum); } 该程序的运行结果: (2)下列程序的功能为: 倒序打印26个英文字母。 纠正程序中存在的错误,以实现其功能,程序以文件名保存。 #include<> main() { charx; x='z'; while(x! ='a')while(x! ='a'-1)或while(x>='a') { printf("%3d",x);printf("%3c",x); x++;x--; } } (3)下列程序的功能为: 输入一个大写字母,打印出一个菱形。 该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母A出现在第一行和最末行为止。 纠正程序中存在的错误,以实现其功能。 程序以文件名保存。 例如,输入字母D,打印出如下图形: #include<> main() { inti,j,k; charch; scanf("%c",&ch); k=ch-'A'+1; for(i=1;i<=k;i++) { for(j=20;j>=i;j--) printf("%c",''); for(j=1;j<=i-1;j++)for(j=1;j<=2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); } k=ch-'A'; for(i=k;i>=1;i--) {for(i=20;i>=i;i--)for(j=20;j>=i;j--) printf("%c",''); for(j=1;j<2*i-1;j++)for(j=1;j<=2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); } } 2.程序填空题 (1)用辗转相除法求两个正整数的最大公约数和最小公倍数。 补充完善程序,以实现其功能,程序以文件名保存。 该程序的运行结果: #include<> main() {intr,m,n,k,t; scanf("%d%d",&m,&n); if(m {t=m;m=n;n=t;}/*交换两数*/ k=m*n; r=m%n; while(r) {m=n; n=r; r=m%n; } printf("%d%d\n",n,k/n);/*输出最大公约数和最小公倍数*/ } (2)假设有1020个西瓜,第一天卖了一半多两个,以后每天卖剩的一半多两个,求几天后能卖完。 补充完善程序,以实现其功能。 程序以文件名保存。 #include<> main() {intday,x1,x2; day=0; x1=1020; while(x1>0) { x2=x1/2-2; x1=x2; day++; } printf("day=%d\n",day); } (3)下列程序的功能为: 输出100以内能被3整除且个位数为6的所有整数.补充完善程序,以实现其功能。 程序以文件名保存。 #include<> main() {inti,j; for(i=0;__i<10_____;i++) {j=i*10+6; if(___i%3! =0____) continue; printf("%d",j); } } 3.编程题(写出程序运行结果) (1)计算1~100之间所有含8的数之和。 程序以文件名保存。 参考程序: #include<> main() { inti,sum=0; for(i=1;i<=100;i++) if(i%1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 教程 实验 吉顺如 一到七