1、课 程 实 验 报 告课程名称: C 语言程序设计 专业班级: 信息安全 1302 班 学 号: 姓 名: 指导教师: 报告日期: 2014 年 6 月 16 日 计算机科学与技术学院华中科技大学 肖传磊 is1392 U2013151391目录目录 11 实验概述 32 第一次实验 32.1 实验目的 32.2 实验内容 32.3 实验小结 .133 第二次实验 .143.1 实验目的 .143.2 实验内容 .143.3 实验小结 .214 第三次实验 .214.1 实验目的 .214.2 实验内容 .214.3 实验小结 .295 第四次实验 .295.1 实验目的 .295.2 实验内
2、容 .295.3 实验小结 .346 第五次实验 .346.1 实验目的 .346.2 实验内容 .356.3 实验小结 .417 第六次实验 .427.1 实验目的 .427.2 实验内容 .427.3 实验小结 .518 第八次实验 .528.1 实验目的 .528.2 实验内容 .528.3 实验小结 .619 书本上的程序设计 .62程序设计 .62程序设计 .65程序设计 .69程序设计 .78程序设计 .86程序设计 .93程序设计 100程序设计 113华中科技大学 肖传磊 is1392 U2013151392程序设计 9.12410 实验总结 .129参考文献 130华中科技大
3、学 肖传磊 is1302 U20131513931 实验概述在图书馆由自动化建设阶段向数字化阶段转变的过程中,出现了大量的数字化资源,而数字图书馆相关技术的研究却显得相对滞后。这就导致一方面资源利用率的下降。同时丰富的资源在给读者更多的选择的同时却带来信息检索的不便。读者在实际科研工作中,我们常常会因为少量文献的漏查而导致大量的重复工作。C 语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。最近 25 年是使用最为广泛的编程语言。通过 C 语言的使用,我们可以更好的处理数据,更好的简化原本大量重复的
4、工作。2 第一次实验2.1 实验目的1初步了解 C 语言的输入输出函数,变量和常量的定义,以及其符号规则。2自主完成一些简单的 C 语言程序设计任务,熟悉相关规则。3学会在 VC 上对 C 语言的调试。2.2 实验内容(一)设计一个程序,在字符模式下,以某个字符拼出“王”汉字图形,显示输出。程序代码:#include int main(void)printf(“*n“);printf(“ * n“);printf(“ * n“);华中科技大学 肖传磊 is1302 U2013151394printf(“ * n“);printf(“ * n“);printf(“ * n“);printf(“*
5、n“);return 0;输出效果:(二)输入一个华氏温度,要求输出摄氏温度。公式为 c=5/9*(f-32) 。程序代码:#include int main(void)float x,y;printf(“Input the temperature(C):n“);scanf(“%f“,y=5.0*9/(x-32);printf(“the temperature(F):n%.2fn“,y);return 0;输出效果:华中科技大学 肖传磊 is1302 U2013151395(三)设计 3 种算法完成交换整形两个变量值的程序。算法思想:算法 1 :定义一个新的变量 t,借助它完成交换.算法 2
6、:由异或运算的特点决定的,一个数与同数异或两次不变。算法 3 :通过算数运算规则使值交换。程序代码:算法 1 :#include int main(void)int a,b,t;printf(“Input a and b :n“);scanf(“%d%d“,a=t;a=b;b=t;printf(“a=%d,b=%d“,a,b);2223375727777return 0;算法 2 :#include int main(void) int a,b;printf(“Input a and b :n“);华中科技大学 肖传磊 is1302 U2013151396scanf(“%d%d“,a=ab;b
7、=ab;a=ab;printf(“a=%d,b=%d“,a,b);return 0;算法 3 :#include int main(void) int a,b;printf(“Input a and b :n“);scanf(“%d%d“,a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%d“,a,b);return 0;输出效果: (四)设计一个程序,完成如下功能:输出一个三位数,将他反向输出。如输入 123,输出 321。华中科技大学 肖传磊 is1302 U2013151397算法思想: 利用整型数字除法的方法将三位数的百位,十位,个位数字提取出来并交换位置,达到反向输
8、出的目的。程序代码:#includeint main(void)int a,b,c,x;printf(“原数:“);scanf(“%d“,a=x/100;b=(x-a*100)/10;c=(x-a*100-b*10);printf(“变换:%dn“,c*100+b*10+a);return 0;输出效果: (五)设计两种完成计算 maxx,y,z的程序。算法思想:算法 1 :使用 if 语句比较大小进行运算。算法 2 :使用【 】?【 】:【 】 替换 if 进行计算。程序代码:算法 1 :#includeint main(void)华中科技大学 肖传磊 is1302 U2013151398i
9、nt a,b,c,Max;printf(“input a,b and cn“);scanf(“%d%d%d“,if(ab)if(ac) Max=a;else Max=c;elseif(bc) Max=b;else Max=c;printf(“The Max is %dn“,Max);return 0;算法 2 : #include int main(void)int a,b,c,Max;printf(“input a,b and cn“);scanf(“%d%d%d“,Max=ab?(ac?a:c):(cb?c:b);printf(“The Max is %dn“,Max);return 0;
10、输出效果:华中科技大学 肖传磊 is1302 U2013151399(六)设计一个程序,完成计算三个数的居中数。程序代码:#includeint main(void)int a,b,c,Middle;printf(“input a,b and cn“);scanf(“%d%d%d“,Middle=ab?(bc?b:(ac?c:a):(ac?a:(bc?c:b);printf(“The Middle is %dn“,Middle);return 0;输出效果: 华中科技大学 肖传磊 is1302 U20131513910(七)设计计算一元二次方程组的根的程序。算法思想:核心为将一元二次方程求根方
11、法其转化为 c 语言进行表达,.注意用 if 语句考虑多种情况,调用 math.h 头文件程序代码:#include#includeint main(void) float a,b,c,x,x1,x2;printf(“Like a*x*x+b*x+c=0 ,Input a,b,cn“);scanf(“%f%f%f“,if(a=0else printf(“ERROR!n“);elseif(a=0printf(“x=%.2fn“,x);else华中科技大学 肖传磊 is1302 U20131513911if(b*b-4*a*c)=0)if(b*b-4*a*c)=0)x=(-b)/(2*a);pri
12、ntf(“x=%.2fn“,x);if(b*b-4*a*c)#include#define p (a+b+c)/2)int main(void) float a,b,c;double S;printf(“Input a,b,c:n“);scanf(“%f%f%f“,if(a=b+c)|(b=a+c)|(c=a+b)printf(“input is errorn“);elseS=sqrt(p*(p-a)*(p-b)*(p-c);printf(“S=%.2f“,S);return 0;输出效果:华中科技大学 肖传磊 is1302 U201315139132.3 实验小结通过这次上机实验,我初步掌握
13、了一些 C 语言的编程方法。试验了宏定义#Define,if 语句对程序的判定以及 for 的循环控制。其次是熟悉了 C 语言的一些符号构成,程序构成的语法规则。并且锻炼了思维,使程序设计的更加严谨,高效。华中科技大学 肖传磊 is1302 U201315139143 第二次实验3.1 实验目的1.学会使用循环语句,用循环语句解决问题。2.通过解决一些实际问题更加深入地了解各种运算符的运算功能。3.通过自己上网查找资料等方法自己处理一些实际问题,比如求个人所得税问题。3.2 实验内容(一)设计一个计算个人所得税的程序。算法思想:由网络取得税收方式,用函 if 和 goto 的表达式编写相关程序
14、。程序代码:#include int main(void)int n,m;printf(“INPUT THE NUMBER Nn“);scanf(“%d“,if(nint main(void) int n,m,a,b,k;printf(“INPUT THE NUMBER n AND mn“);scanf(“%d%d“,if(mn)m=m+n;n=m-n;m=m-n;华中科技大学 肖传磊 is1302 U20131513917if(n%m=0)a=m;b=n*m/a;goto inx;a=n%m;b=m;while(b%a!=0)k=a;a=b%a;b=k;b=n*m/a;inx: printf
15、(“%d %d“,a,b);return 0;输出效果:(三)输入一个数 n(=2),判定 n 是否为素数。算法思想:从 i=2 开始到 i/2 进行循环计算,计算 n 是否可以整除 i 若能,华中科技大学 肖传磊 is1302 U20131513918判断 i 是否小于 n,若小于,则 n 不是素数,若 i 小于 n 时不能被 n 整除,则 n 是素数。程序代码:#include int main(void)int n,i;printf(“INPUT THE NUMBER N(N2)n“);scanf(“%d“,for(i=2;iint main(void)int i,j;for(i=2;i
16、int main(void)int i,j;for(i=1;iint main (void) float average, max,min,sum=0,x;int i,n;printf (“please input nn“);scanf(“%d“,printf (“Input the numbern“);scanf(“%f“,sum+=x;max=x;min=x;for (i=2;imax) max=x;else if (x#include int main(void)double sum;int i,j=0;printf(“1“);for(i=1;i+2;iint main(void)int
17、 i,j,sum=0;for(i=1;i#include int main(void)int i,j,k=0,a999;double sum;for(i=0;iint main(void)int a,b,c,s,n,t1,t2;for(s=100;sint main(void)int a=1,i;for(i=1;i999) a%=1000;printf(“%dn“,a);return 0;输出效果:华中科技大学 肖传磊 is1302 U20131513928(七)求解 100!尾数有多少个 0.算法思想:100!中能产生 0 的为 2 和 5 的因式,2 的因式足够,故只需要考虑 5 的个数,没隔 5 的产生 1 个 5,每隔 25 多产生 1个 5,统计 5 的个数即可。程序代码: #include int main(void)int i=1,j=0;for(;i=2,n N*),求 Fn。算法思想:定义变量 a、 b 使 a 表示偶数项,b 表示奇数项。从 f0 和 f1 开始依次向后向后相加,直到 fn。程序代码:#include int main(void)