C语言程序设计实验及代码.docx
- 文档编号:11209256
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:59
- 大小:321.67KB
C语言程序设计实验及代码.docx
《C语言程序设计实验及代码.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验及代码.docx(59页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验及代码
西南林业大学
C语言程序设计实验题、代码、输出结果
编写目的:
学生的痛,大家都明白,特别是学渣的痛。
呃,不过我渐渐从学渣成功逆袭,所以最后才会整理下这些信息,为了让后面的人在面对这C语言时不会那么脑大,不用像我们开始时候的茫然。
认真享受在课堂上GET知识的过程,接下去的事:
作业考试也是水到渠成的事情,有的课程的却要花点时间,但就像那句话说的:
Nopain,noget.付出不一定会有收获,但是不付出一定会让你后悔。
所以,认真听课,不仅仅只是C语言,还有其他的课程。
实验题目及代码、输出结果
实验题目目录
目录P1-----------------------P6
Printf简单输出三角形-------------------------------------------------------P6
给定圆半径值为5,编程求圆面积和圆周长---------------------------P6
编写一个摄氏温度与华氏温度之间的转换程序-------------------P6
编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。
-----------P7(有主函数子函数----------P26)
使用两种指定的方法打印正三角形数阵-----------------------------P7
从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推),然后求3个整数的平均值。
-------------------------------------P8
从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。
------------------------P8(指针变量----------------P19)
输入三角形的三条边长,求三角形的面积。
--------------------P9
从键盘任意输入3个整数,选出其中的最大数并打印。
--P10
从键盘输入三个正整数,判断否能构成三角形的三边?
---P10
从键盘输入一个合法的算术运算符(+、-、*、/)及两个实数,使用if语句编写程序,根据输入的运算符判断对这两个实数进行何种运算,并打印运算结果(要求结果保留两位小数)。
---------------------P11(有主函数子函数------------------P21)
从键盘输入一个年份和一个月份,使用switch语句编程判断并打印该月的天数-----------------------------------------------P12
从键盘输入1个整型的分数,使用switch语句编程,判断如果分数介于0~59分之间就打印“不及格”;如果介于60~79分之间就打印“及格”;如果介于80~89之间就打印“良好”;如果介于90~100之间就打印“优秀”。
----------------------------------P13
使用while语句编程求100以内能被5整除但不能同时被7整除的数,并统计找到的数的个数。
-----------------------------------P13
从键盘输入一个正整数,使用while语句编程求该整数是一个几位数。
---------------------------------------------------------------------------P14
使用while语句编程求
=
的前n项和---------------------------P14
使用for语句编程求
=
的前n项和--------------------------P15
使用for语句编程求
=
的前n项和-----------------------------P16
使用for语句的嵌套结构编程打印九-九乘法表--------------------P16
定义一个大小为10的整型一维数组,初始化所有数组元素,编程查找数组中的所有奇数,并统计奇数的个数-----------------P17
定义一个大小为10的整型一维数组,初始化其中的9个元素,这9个元素已经按照降序排列。
从键盘再输入1个整数,将该整数插入到已有的元素中,需保证这10个数仍然按照降序排序。
--------------------------------------------------------------P18
利用指针编程,其功能是求电阻的并联值和串联值。
---------P18
利用指针编程,其功能是利用“除号”和“求余号”将输入的两个两位的正整数组合成一个新的四位的正整数。
---------P16
定义一个大小为10的整型一维数组并初始化数组元素,再定义一个指针变量让其指向该数组,利用指针编程查找数组中的所有奇数。
--------------------------------P20
输入三角形的三条边长,定义一个子函数fun()求三角形的面积--------------------P21
定义一个子函数fun()打印菱形。
--------------------P22
定义一个子函数fun(),其功能是求1累加到100的和-----------P23
定义一个子函数fun(),求表达式
=
的前n项和---------P23
定义一个fun()函数,其功能是:
求两个整数的和、差、积、商。
----------------P26
在主函数中输入一元二次方程ax2+bx+c=0的三个系数a、b、c,求方程的实根。
定义三个子函数fun1()、fun2()、fun3()分别处理方程有无实根、有两个相同实根、有两个不同实根的情况----------------------------------------------------------------P27
从键盘上输入一个的字符串,输出所有ASCII码为奇数的字符,并统计这些字符的个数。
------------------------------P28
从键盘上输入一个由大写字母、小写字母、数字字符、其它字符构成的字符串,统计字符串中的大写字母个数、小写字母个数、数字字符个数、其它字符个数。
------------------------------P28
从键盘输入两个字符串,分别存到字符数组a和字符数组b中,编程将第二个字符串连接到第一个字符串末尾,形成一个新字符串。
(不使用#include
使用while语句编程求
=
(n从0开始)前n项值,直到某一项的值小于10-6就结束循环。
------------------------------------------P30
使用for语句的嵌套结构编程打印行数为奇数的对称三教菱形
----------------------------------------------P31
从键盘输入一个正整数x,编程求比x大的,最临近x的n个素数,例如,为x和n分别输入数值10和15,就表示求出比10大的,最临近10的15个素数。
--------------------------------------------------P31
题目及答案
printf()函数的编程练习——格式1
编程输出如图所示的三角形。
voidmain()
{
printf("*\n");
printf("**\n");
printf("***\n");
printf("****\n");
}
给定圆半径值为5,编程求圆面积和圆周长
提示:
(1)本题需定义三个浮点型变量,如doubler=5,s,l;
(2)输出浮点型数据的格式说明符是%lf
(3)C语言中没有∏这个符号,编写程序时直接使用3.14159
(4)C语言中没有求次方的运算符,求次方可用连乘的方法
#include
#definePI3.14159
intmain()
{
floatr=5;
printf("圆半径=%lf\n圆面积=%f\n圆周长=%f\n",r,PI*r*r,2*PI*r);
}(其中一个数的n次方可以用数学运算来算pow(r,n),“r”为底数,n为次数)
scanf()函数、运算符编程练习
编写一个摄氏温度与华氏温度之间的转换程序,转换公式是:
提示:
该公式中的“C”是一个从键盘输入的已知量;“F”是通过公式计算并打印出来的未知量。
#include
voidmain()
{
doubleF,C;
printf("请输入一个摄氏温度值:
",C);
scanf("%lf",&C);
F=1.8*C+32;//或F=9/5*C+32若定义类型为int,则需要变为F=9.0/5*C+32或F=9/5.0*C+32或用强制类型转换F=(double)(9/5)*C+32;原因是除号“/”在运算时为整型运算
printf("对应的华氏温度值是:
%.2lf",F);
}
编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。
运行结果如图所示:
R1+R2
R1*R2
注:
并联和串联的电阻值计算公式如下。
(1)并联电阻RP=
(2)串联电阻RS=R1+R2
提示:
(1)scanf()函数可以写成scanf("%d,%d",&r1,&r2);
(2)结果保留两位小数的格式说明符是“%.2lf”。
#include
voidmain()
{
doubleR1,R2,RP,RS;
printf("请输入两个电阻值:
",R1,R2);
scanf("%lf,%lf",&R1,&R2);
RP=(R1*R2)/(R1+R2);
RS=R1+R2;
printf("并联电阻值:
%.2lf\n串联电阻阻值:
%.2lf",RP,RS);
}
字符的输入和输出
1、使用两种指定的方法打印如图所示图形。
方法一:
使用printf()函数的“%c”格式打印图形。
提示:
一个“%c”只能打印一个字符。
方法二:
使用printf()函数的“%d”格式打印图形。
方法一:
#include
voidmain()
{
printf("%4d\n%4d\n%d\n",1,222,33333);
}
方法二:
#include
voidmain()
{
chara,b,c;
a='1';
b='2';
c='3';
printf("%c\n",a);
printf("%c%c%c\n",b,b,b);
printf("%c%c%c%c%c\n",c,c,c,c,c);
}
方法二的类似(运用ASCLL码)
#include
voidmain()
{
inta,b,c;
a=49;
b=50
c=51;
printf("%c\n",a);
printf("%c%c%c\n",b,b,b);
printf("%c%c%c%c%c\n",c,c,c,c,c);
}
1、从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推),然后求3个整数的平均值。
运行结果如图所示:
提示:
本题的变量定义可参考如下:
chara,b,c;//变量a,b,c保存输入的3个数字字符
intx,y,z;//变量x,y,z保存转换后的3个整数
doubleaver;//变量aver保存求出的平均值
#include
#include
voidmain(void)
{
doublea,b,c,d;
printf("请输入三个数字字符:
");
scanf("%lf,%lf,%lf",&a,&b,&c);
d=(a+b+c)/3;
printf("平均值=%lf\n",d);
}
#include
voidmain(void)
{
chara,b,c;
intx,y,z;
doubleaver;
printf("请输入三个数字字符:
");
scanf("%c,%c,%c",&a,&b,&c);
x=a-48;
y=b-48;
z=c-48;
aver=(x+y+z)/3.0;
printf("平均值为:
%2lf",aver);fuchu水到渠成的事情,有的可
从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。
例如:
输入12和34,组装成的四位数是1324。
运行效果如右图所示:
提示:
(1)首先利用“除号”和“求余号”分别把两个两位正整数的十位数、个位数分离开;再经过数学运算组装成一个四位数。
(2)scanf()函数可以写成scanf("%d%d",&a,&b);
#include
#include
voidmain(void)
{
inta,b,z;
printf("请输入两个两位数的正数:
");
scanf("%d%d",&a,&b);
z=a/10*1000+b/10*100+a%10*10+b%10;
printf("合成的四位正整数是:
%d\n",z);
}
数学函数的使用
1、输入三角形的三条边长,求三角形的面积。
运行结果如图所示:
提示:
(1)本题的变量定义可参考如下:
inta,b,c;
doublex,s;
(2)scanf()函数可以写成
scanf("%d,%d,%d",&a,&b,&c);
(3)计算三角形面积的公式是:
其中
(4)求x的开方值的库函数是sqrt(x),使用时需包含头文件math.h
#include
#include
voidmain(void)
{
inta,b,c;
doublex,s;
printf("请输入三角形的三边:
");
scanf("%d%d%d",&a,&b,&c);
x=(a+b+c)/2;
s=sqrt((x-a)*(x-b)*(x-c)*x);
printf("s=%lf\n",s);
}
单分支if语句编程练习
从键盘任意输入3个整数,选出其中的最大数并打印。
提示:
(1)要判断最大数,需对每两个数作两两比较。
(2)可以使用3个单分支if语句编写程序。
(3)从键盘输入2个整数到变量a、b中,编程总是把较小的数放入a中,较大的数放入b中。
#include
voidmain()
{
inta,b,c,t;
printf("请输入三个整数:
");
scanf("%d%d%d",&a,&b,&c);
if(a
{t=a;
a=b;
b=t;
}
if(a {t=a; a=c; c=t; } if(b {t=b; b=c; c=t; } printf("最大数是: %d\n",a); } #include voidmain() { inta,b,t; printf("请输入两个整数到变量a,b中"); scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); if(a>b) { t=a; a=b; b=t; printf("运行结果: a=%d,b=%d\n",a,b); } else printf("运行结果: a=%d,b=%d\n",a,b); } 从键盘输入三个正整数,判断否能构成三角形的三边? 如果能,就按照以下提示的数学公式计算三角形的面积;如果不能,就输出“不能构成三角形”的提示信息。 提示: (1)该题属于“双分支if-else语句”结构。 (2)能构成三角形的逻辑条件是: 任意的两边之和均要大于第三边。 (3) 其中 计算三角形面积的公式是: (4)本题的变量定义可参考如下: inta,b,c;doublex,s; (5)本题要用到求x开方值的数学库函数sqrt(x),需包含头文件math.h #include #include voidmain(void) { inta,b,c,m,n,t; doublex,s; printf("请输入三角形的三边: "); scanf("%d%d%d",&a,&b,&c); m=a+b; n=b+c; t=a+c; if(m>c&&n>a&&t>b) { x=(a+b+c)/2; s=sqrt((x-a)*(x-b)*(x-c)*x); printf("构成的三角形面积是: %.2lf\n",s); } else printf("不能构成三角形\n"); } 从键盘输入一个合法的算术运算符(+、-、*、/)及两个实数,使用if语句编写程序,根据输入的运算符判断对这两个实数进行何种运算,并打印运算结果(要求结果保留两位小数)。 程序运行效果如下图所示: 提示: (1)该题属于“多分支if语句”结构。 (2)本题的变量定义可参考如下: charfu;//fu变量用来存放运算符 doublex,y,z;//x、y变量用来存放输入的2个实数,z存放运算结果 (3)输入字符型数据的格式说明符是%c,实型数据的格式说明符是%lf。 (4)输出实数保留2位小数的格式说明符是%.2lf。 (5)本题可参考教材P61例3.7,但是不允许使用switch语句编写该题程序。 #include voidmain() { charfu; doublex,y,z; intt,a; printf("请输入一个算数运算符和两个浮点数"); scanf("%c%lf%lf",&fu,&x,&y); t=47-fu; if(t==4) { z=x+y; printf("%.2lf%c%.2lf=%.2lf\n",x,fu,y,z); } elseif(t==5) { z=x*y; printf("%.2lf%c%.2lf=%.2lf\n",x,fu,y,z); } elseif(t==2) { z=x-y; printf("%.2lf%c%.2lf=%.2lf\n",x,fu,y,z); } elseif(t==0) { z=x/y; printf("%.2lf%c%.2lf=%.2lf\n",x,fu,y,z); } else printf("运算符非法,无法参与运算\n"); } 从键盘输入一个年份和一个月份,使用switch语句编程判断并打印该月的天数。 程序运行效果如下所示: 提示: (1)本题先使用if语句判断年份和月份是否有效。 (2)如果年份和月份有效,再嵌套switch语句判断每个月份的天数。 (3)对于2月份的处理需要判断闰年,闰年的判断方法请参考教材P62例3.8。 #include voidmain() { intyear,month,day; printf("请输入一个年份和一个月份: "); scanf("%d%d",&year,&month); if(month>0&&month<=12) { switch(month) { case1: case3: case5: case7: case8: case10: case12: printf("%d月有31天\n",month); break; case4: case6: case9: case11: printf("%d月有30天\n",month); break; default: if((year%4==0&&year%100! =0)||(year%400==0)) printf("2月有29天\n"); else printf("2月有28天\n"); break; } } else printf("输入的月份值无效! "); } 从键盘输入1个整型的分数,使用switch语句编程,判断如果分数介于0~59分之间就打印“不及格”;如果介于60~79分之间就打印“及格”;如果介于80~89之间就打印“良好”;如果介于90~100之间就打印“优秀”。 #include voidmain() { inta,b; printf("请输入一个分数介于<0~100>间: "); scanf("%d",&a); if(a>0&&a<=100) { b=a/10; switch(b) { case6: case7: printf("及格\n"); break; case8: printf("良好\n"); break; case9: case10: printf("优秀\n"); break; default: printf("不及格\n"); break; } } else printf("输入的分数份值无效! \n"); } 使用while语句编程求100以内能被5整除但不能同时被7整除的数,并统计找到的数的个数。 提示: (1)该题变量可定义为: inti=1,n=0;//i是循环变量,n是统计个数的变量 (2)整除问题应使用求余号“%”,而不能使用除号“/”。 #include voidmain() { inti,n,b,c; i=1; n=0; printf("100以内能被5整除但不能同时被7整除的数是: \n"); while(i<=100) { b=i%5; c=i%7; if(b==0&&c! =0) { printf("%d",i); n=n+1; } i++; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 代码