C程序的设计上机实验报告完整版Word下载.docx
《C程序的设计上机实验报告完整版Word下载.docx》由会员分享,可在线阅读,更多相关《C程序的设计上机实验报告完整版Word下载.docx(53页珍藏版)》请在冰豆网上搜索。
代码1:
运行结果1:
程序分析1:
该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for循环来进行整除过程的简写。
代码2:
运行结果2:
程序分析2:
简单的使用printf()和scanf()函数进行简单的数据运算。
代码3:
运行结果3:
程序分析3:
使用if语句进行判断。
五.实验总结
实验二
一、实验名称:
顺序结构程序设计
正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
(1).编写程序,实现小写字母转大写。
(2).编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3).编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4).编写程序,实现单字符getchar和putchar输入输出。
(5).编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码
所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。
运行结果2:
程序分析2:
简单的数据运算和格式字符的输出。
简单的数据运算实现相应的功能。
代码4:
运行结果4:
程序分析4:
getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.
代码5:
运行结果5:
程序分析5:
重要的是格式字符的使用,%d(输出十进制整型数)%o(以八进制格式输出整形数)%x(以十六进制格式输出整型数)%f(以带小数点的形式输出浮点数)%c(输出一个字符)%s(输出字符串,直到遇到\0)
五、实验总结
实验三
选择结构程序设计
正确使用逻辑运算符和逻辑表达式,熟练掌握if语句和switch语句,学习调试程序。
(1).编写程序,用if语句编程实现一分段函数的求解。
(2).用if语句编写程序,求一元二次方程的根。
(3).用switch语句编写程序,给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80—90分为B,70――79分为C,60――69分为D,60分以下为E)。
(4).用switch语句编写程序,输入一小于6位数的整数,判断它是几位,并逆序输出。
(5).用if语句编写程序,判断某一年是否为闰年。
代码1
使用if函数对不同的输入参数进行不同的算术运算。
运用math库函数中的根号运算sqrt()函数实现求根公式的表达。
运用switch语句对所有的情况分开,注意如果没有break语句,那么判断到要执行的case后,其后面的语句也要执行。
重要的是判断一个数几位数的算法:
每次对10取整,记录一次,降低了一位位数,直到取整位0就降到了一位数,计数完毕。
然后,对于不同的基数值,输出相应的判断结果。
重要的是闰年判断条件“四年一闰,百年不闰;
四百年一闰”的c语言表示:
i%4==0&
&
i%100!
=0||i%400==0;
实验四
循环控制程序设计
掌握在程序设计中使用循环的方法实现一些常用算法(如:
穷举、迭代和递推等)。
(1).分别用while语句、do-while语句和for语句编写程序,求。
(2).用while语句编写程序,对输入一行字符的字母、数字、空格和其他字符的个数分别予以统计,并输出。
(3).用for或while语句编写程序,输出所有的水仙花数。
(4).用for语句编写程序,找出100-200间的所有素数。
(5).用for语句编写程序,实现规定图案的输出。
三种循环语句的使用。
重要的是如何使用取整,取余运算符将一个数的每一位取出来。
重要的是,素数的判断条件的c表达:
如果对于小于其本身的能能够把其整除,说明其不是一个素数,反之则为素数。
重要的是发现打印空格和字符个数与打印第n行之间的数字关系,根据数量关系,利用for循环实现循环打印。
实验五
函数
掌握函数形参和实参的对应关系;
以及“值传递”的方式,掌握函数的嵌套调用和递归调用的方法。
(1).通过无参函数实现多行字串的输出;
(2).通过有参函数数据传递,用函数来实现:
(a)两个数比较,输出其中较大的数;
)(b)对给定的两个数求和;
(3).编写程序,用函数的嵌套调用来实现输入4个数,找出其中最大的数。
(4).编写程序,用函数递归调用,计算n!
;
(5).写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。
#include<
stdio.h>
voidfun1(char*b)
{
inti;
for(i=0;
i<
7;
i++)
{
printf("
%c"
b[i]);
}
printf("
\n"
);
}
voidfun2(char*d)
{
intj;
for(j=0;
j<
j++)
d[j]);
main()
chara[8]={'
A'
'
B'
C'
D'
E'
F'
G'
};
charc[8]={'
H'
I'
J'
K'
L'
M'
N'
fun1(a);
fun2(c);
执行两次同样的输出函数。
voidfun1(double*b,double*d)
doublemax;
max=*b;
if(*d>
*b)
max=*d;
两个数中较大的数是%f\n"
max);
voidfun2(double*b,double*d)
doublej;
j=*b+*d;
%f+%f=%f\n"
*b,*d,j);
doublea,c;
请输入两个数,数据之间用空格隔开\n"
scanf("
%lf%lf"
&
a,&
c);
fun1(&
fun2(&
将两个功能通过两个函数来单独完成,有利于程序的阅读。
intmax(intn1,intn2);
intmain()
inti,j,k,l,m,n,o;
请输入四个数(用空格隔开)\n"
%d%d%d%d"
i,&
j,&
k,&
l);
m=max(i,j);
n=max(k,l);
o=max(m,n);
四个数中最大的数为%d\n"
o);
return0;
intmax(intn1,intn2)
if(n1>
n2)
returnn1;
else
returnn2;
longjc(intm);
intn,jg;
-----该程序用来计算阶乘-----\n"
你要计算的是几的阶乘就输入几\n"
%d"
n);
jg=jc(n);
%d的阶乘是%d\n"
n,jg);
}
longjc(intm)
if(m==0)
return1;
returnm*jc(m-1);
5!
=5*4*3*2*1
=5*4!
4!
=4*3!
3!
=3*2!
2!
=2*1!
1!
=1*0!
0!
=1;
实现函数的直接递归调用,并且递归使用的是选择结构,一定会有结束递归调用的语句,例如上题中if(m==0)的执行语句:
return1;
就结束了再次调用函数jc函数。
只需要传递一个简单的整形数据即可,注意功能函数()里的变量一定要注明类型。
实验六
一维和二维数组
掌握与数组有关的排序算法:
冒泡排序和选择排序。
(1).用一维数组,对给定的一组数据逆序输出。
(2).用一维数组,对10个数进行由小到大的冒泡排序。
(3).用二维数组,求一个矩阵中的最大数据元素及所在的行列位置。
(4).用一维数组,对10个数进行由小到大的选择排序。
(5).用二维数组,求一个矩阵的转置矩阵。
四、源程序代码
inti,j,m,t,a[100];
请输入一维数组的元素个数(注意:
数组元素个数最多为100):
m);
j=m-1;
请输入一维数组的元素(注意:
每输