




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一(第1章实验)实验目的:1. 掌握运行C语言程序的全过程。2. 熟悉编译环境Visual C+或者Dev C+或者Turbo C2.0/3.0。3. 初步熟悉C语言程序的语法规定。4. 了解简单函数的使用方法。实验内容:1. 编程且上机运行:求3个整数的和。2. 编程且上机运行:求2个数的和、差、积和商。3. 编程且上机运行:输入3个数,求最大值。4. 编程且上机运行:输入圆的半径,求圆的面积和周长。5. 在屏幕上输出:“hello world!”6输入并编辑本章中给出的C程序例子,在自己用的环境中形成一个C语言源程序文件;对这个源程序进行加工,得到对应的可执行程序,看一看它的效果。实验结果: 1.#include #include main( ) int i,j,k; printf(input i,j,k:);/输入整数数据,以半角逗号间隔,比如:1,2,3 scanf(%d,%d,%d,&i,&j,&k);/不能缺少地址符号“&” printf(%d+%d+%d=%dn,i,j,k,i+j+k); system(Pause); 2.#include #include main( ) int i,j; printf(input i,j(not 0):);/输入整数数据,以半角逗号间隔,j不为0,因为做除数 scanf(%d,%d,%d,&i,&j);/不能缺少地址符号“&” printf(%d+%d=%dn,i,j,i+j); printf(%d-%d=%dn,i,j,i-j); printf(%d*%d=%dn,i,j,i*j); printf(%d/%d=%dn,i,j,i/j); system(Pause); 3. #include #include main( ) int i,j,k; printf(input i,j,k:);/输入整数数据,以半角逗号间隔 scanf(%d,%d,%d,&i,&j,&k);/不能缺少地址符号“&” if(ij) if(jk) printf(max:%d,i); else if(ik) printf(max:%d,i); else printf(max:%d,k); else if(jk) printf(max:%d,k); else printf(max:%d,j); system(Pause); 4. #include #include #define pi 3.14main( ) float r; printf(input r:); scanf(%f,&r);/不能缺少地址符号“&” printf(circle area is:%6.2f,pi*r*r); system(Pause); 5. #include #include #define pi 3.14main( ) printf(hello world!); system(Pause); 6.略实验二(第3章实验一)实验目的:理解C语言的类型系统。实验内容:写程序测试数据 2在类型char,int,unsigned int,long int,unsigned long int中存储情况。实验过程:实验结果:参见各种类型的存储实现描述。#include #include #include main( ) char c=-2;/1 int i=-2;/4 unsigned int ui=-2;/4 long int li=-2;/4 unsigned long int uli=-2;/4 printf(%dn,sizeof(char); printf(%dn,sizeof(int); printf(%dn,sizeof(unsigned int); printf(%dn,sizeof(long int); printf(%dn,sizeof(unsigned long int); printf(%c,%d,%u,%ld,%lu,i,i,i,i,i); system(Pause); 实验二(第3章实验二)实验目的:了解混合类型计算中类型的转换规则。实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。注意unsigned int和 int数据运算时类型转换的方向。实验过程:/* 类型转换问题 * 试问下面两个表达式等价吗?*/#include #include int main() unsigned int ui,uj; ui = 1; uj = 2; if (ui uj) printf(n%u %u is true !n, ui, uj); else printf(n%u %u is false !n, ui, uj); if (ui - uj 0) printf(n%u - %u 0 is true !n, ui, uj); else printf(n%u - %u 0 is false !n, ui, uj); system(pause); return 0;实验结果:不等价。结果如下:1 2 is true !1 - 2 0 is false !原因是1-2=-1,-1在unsigned int 中的表示为3123157011111111111111111111111111111111实验二(第3章实验三)实验目的:理解数据溢出现象。实验内容:写程序测试数据溢出,注意分别在16环境和32环境中测试。实验过程:实验结果:参见【例3.3】。实验三(第3章实验四)实验目的:char的符号问题。实验内容:写程序测试你所用的C语言编译器char符号问题的处理方案。实验过程:/* 这个程序验证编译器对 char 的解决方案,是有符号,还是无符号*/#include #include int main() char c = -1; int k; k = c;/* k = ? */ if (k = 255) printf(The char is unsigned char.n); else printf(The char is signed char.n); printf(k = %d, %x, k, k); system(pause); return 0;实验结果:TC2.0和DevC+中char是有符号的实验三(第3章实验五)实验目的:自增和自减运算符。实验内容:写程序测试+、- 运算符。实验过程:main()int i=3;printf(i=%dn,i+);printf(i=%dn,i);printf(i=%dn,+i);printf(i=%dn,i);实验结果:i=3i=4i=5i=5实验三(第3章实验六)实验目的:理解输入输出函数。1掌握输入输出函数的使用方法。2掌握格式字符的使用方法。3掌握不同数制间使用格式字符转换数据的方法。实验内容:用getchar、putchar、printf、scanf函数实现各种数据的输入和输出。实验过程:实验结果:例如:/用getchar、putchar、printf、scanf函数实现各种数据的输入和输出。#include #include main( ) printf(input a char c:); char c=getchar(); putchar(c); int i; printf(ninput a integer:); scanf(%d,&i); printf(i=%dn,i); printf(c=%cn,c); printf(type chars size is %dn,sizeof(char);/1 printf(type ints size is %dn,sizeof(int);/4 system(Pause); 实验四(第4章实验)实验目的:1. 学会使用逻辑运算符和逻辑表达式;2. 熟练掌握if语句和switch语句。实验内容:1. 从键盘输入三个整数a,b,c,输出其中最大的数。2. 求方程ax2+bx+c=0的根,其中a,b,c由键盘输入。有以下几种情况: a=0,不是二次方程; b2-4ac=0,有两个相等的实根; b2-4ac0,有两个不等的实根; b2-4ac10) 写一程序,输入整数X,输出Y的值。4. 给一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A, 80-89分为B,70-79分为C,60-69分为D,60分以下为E。5. 企业发放的奖金根据利润提成。利润(B)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;200000B400000时,高于20万元的部分按5%提成;400000B600000时,高于40万元的部分按3%提成;600000B1000000时,高于60万元的部分按1.5%提成;B1000000时,高于100万元的部分按1%提成。从键盘输入当月利润B,求应发放奖金总额。6. 从键盘任意输入一个不多于五位的正整数, 求它是几位数; 分别输出每一个数字; 按逆序输出各位数字,例如原数为135,应输出531。实验过程:实验结果:1. 见第三版第五章作业5.42. 见第三版教材108页3. 见第三版第五章作业5.54. 见第三版第五章作业5.65. 见第三版第五章作业5.86. 见第三版第五章作业5.7实验五(第5章实验一)实验目的:1 掌握循环的概念,学习用循环的思想来思考实际问题。2 掌握单循环的使用方法。实验内容:1计算,输出其结果。2使用循环结构输出下列图形。3计算下列公式的和,要求最后一项小于105。提示:通项公式为:。4输入30个字符,分别统计其中数字、字母及字符的个数。5求出Fibonacci(斐波那契)数列的前20项。Fibonacci(斐波那契)数列的规律是:前2项为0和1,其余各项为该项前2项之和,即0,1,1,2,3,5,8,13。 实验过程:实验结果:1. #include #include main() int s=0;/试一下s不赋初值 int i; /循环变量 for (i=1;i=100;i+) s+=i; printf(1+2+.+100=%dn,s); system(Pause); 2.#include #include main() int i,j,k; for(i=0;i=9;i+) for(j=0;j=9-i;j+) printf( ); /画空格 for(k=0;k2*i+1;k+) printf(%d,i);/输出2i+1个数字 printf(n); system(Pause); 3.#include #include #include main() int i=0; float sum=0.0,t; int f=1; t=1.0/(i*i+1); while(t=pow(10,-5) sum=sum+f*t; f=-f; /符号 i+; t=1.0/(i*i+1);/项 printf(sum=%9.6fn,sum); system(Pause); 4.#include #include main() int num=0; int alph=0; int ch=0; int i; char c; for(i=1;i=0&c=a&c=A&c=Z) alph+; else ch+; printf(number has %d,alph has %d,char has %d,num,alph,ch); system(Pause); 5.#include #include main() long fib20 = 0,1; int i; for(i=2;i20;i+) fibi = fibi-1+fibi-2; for(i=0;i20;i+) printf(F%d=%dn, i, fibi); system(Pause); 实验五(第5章实验二)实验目的:1进一步学习循环的使用方法,用循环解决复杂问题。2掌握多重循环的使用方法及其他。实验内容:1分别使用双循环和单循环结构计算,并输出其结果。2编制程序,输出如下所示的九九乘法表。3输出下列所示菱形字符图形。4古代数学家在编写算经时,提出了一个不定方程问题,即著名的“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?5求s=1+(1+2)+(1+2+3)+,并输出其结果。实验过程:实验结果:1.参见第三版第6章作业6.42.#include #include main() int i,j,k; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%d*%d=%d ,j,i,i*j); printf(n); system(Pause); 3.#include #include main() int i,j,k; for(i=0;i=9;i+) for(j=0;j=8-i;j+) printf( ); for(k=0;k=2*i;k+) printf(*); printf(n); for(i=0;i=9;i+) for (j=0;j=i;j+) printf( ); for(k=0;k=16-2*i;k+) printf(*); printf(n); system(Pause); 4.#include #include main() int i,j,k; for(i=0;i=14;i+=4) j=(100-7*i)/4; k=100-i-j; printf(%d,%d,%dn,i,j,k); system(Pause); 输出结果:0,25,754,18,788,11,8112,4,845.#include #include main() int i,j,t,s=0; for(i=1;i=5;i+) for(t=1;t=i;t+) s=s+t; printf(s=%d,s); system(Pause); 实验六(第6章实验一)实验目的:1掌握数组的定义方法。2掌握一维数组的使用方法。实验内容:1用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数。2求出n个学生一门课程中的最高成绩和最低成绩及高于平均成绩的人数。3使用数组,求出下列数列的前20项。 1,1,2,4,7,13,4将一个一维数组反序放置。例如: a=(67,89,76,98,66), 反序放置后,a=(66,98,76,89,67)5 有10个学生一门课程成绩,使用选择排序法将成绩从高向低排序。实验过程:实验结果:1. /用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数。#include #include #include int main(void) int i; time_t t; int a15; srand(unsigned) time(&t); printf(Ten random numbers from 0 to 99nn); for (i=1; i=15; i+) ai=rand()%100; printf(%d,ai); if(i%5=0) printf(n); system(Pause); return 0; 2. 求出n个学生一门课程中的最高成绩和最低成绩及高于平均成绩的人数。#include #include #define n 10 /注意,宏定义define 后不带分号结束符。main() int an = 60,100,70,67,90,99,89,40,77,56; int avg=0,num=0,sum=0,max,min; int i; for(i=0;i10;i+) sum+=ai; avg=sum/n; min=a0; max=a0; for(i=0;i10;i+) if(aimax) max=ai; if(aiavg) num+; printf(average=%dn,avg); printf(max=%d,min=%d,number of more than avg =%dn, max,min,num); system(Pause); 3. /方法1:使用数组,求出下列数列的前20项。1,1,2,4,7,13,#include #include main() long a20 = 1,1; long sum=0; int i; for(i=3;i20;i+) ai = ai-1+ai-2+ai-3; for(i=0;i20;i+) sum+=ai; printf(1+1+2+4+7+13+.+ =%dn, sum); system(Pause); /方法2:使用数组,求出下列数列的前20项。1,1,2,4,7,13,#include #include main() long a20 = 1,1; long sum=2; int i; for(i=3;i20;i+) ai = ai-1+ai-2+ai-3; sum+=ai printf(1+1+2+4+7+13+.+ =%dn, sum); system(Pause); 4.#include #include #define n 6main() int i,temp; int an=0,1,2,3,4,5; for(i=0;i=(n-1)/2;i+) temp=ai; ai=an-1-i; an-1-i=temp; for(i=0;in;i+) printf(%d ,ai); system(Pause); 5. /有10个学生一门课程成绩,使用选择排序法将成绩从高向低排序。#include #include int main() int i,j,k,t,min; int a10=77,99,69,76,87,90,100,88,66,80; for(i=0;i10;+i) /选出最小值所在的位置j min=65535;/可试试此句不在循环内的结果。 for(k=i;k10;k+) if(akmin) min=ak; j=k; if(i!=j)/交换 t=ai;ai=aj;aj=t; for(i=0;i10;i+) printf(%d ,ai); system(Pause); return 0; 实验六(第6章实验二)实验目的:1 掌握二维数组的使用方法。2 数组的综合应用。实验内容:1将一个一维数组a9中各元素值按行的顺序放入二维数组b33。2有一个mn矩阵,各元素值由随机数产生,将矩阵增加一列,求矩阵每一行的元素值的和,并将每一行的元素值的和放入增加列。3有一个mn矩阵,找出最大元素值及其最大元素值所在的行、列位置。4有n个考生,每个考生有考号和一个总分成绩,如果录取m人,确定录取分数线,并输出录取考生的考号和成绩。5将矩阵m(n,n)对角线上的元素置为1,其余元素置为0。实验过程:实验结果:1. /将一个一维数组a9中各元素值按行的顺序放入二维数组b3*3#include #include int main() int i,j; int b33; int a10=77,99,69,76,87,90,100,88,66; for(i=0;i3;+i) for(j=0;j3;j+) bij=a3*i+j; for(i=0;i3;i+) for(j=0;j3;j+) printf(%d ,bij); printf(n); system(Pause); return 0; 2. /有一个mn矩阵,各元素值由随机数产生,将矩阵增加一列,求矩阵每一行的元素值的和,并将每一行的元素值的和放入增加列。#include #include #include #define m 3#define n 4int main() int i,j; int amn; time_t t; srand(unsigned) time(&t); printf(the matrix is:n); for (i=0; im; i+) for(j=0;jn-1;j+) aij=rand()%100; printf(%d,aij); if(j!=0&j%(n-2)=0) ain-1=0; printf(n); printf(after add,the matrix is :n); for(i=0;im;+i) for(j=0;jn-1;j+) ain-1+=aij; for(i=0;im;i+) for(j=0;jn;j+) printf(%d ,aij); printf(n); system(Pause); return 0; 3. /有一个mn矩阵,找出最大元素值及其最大元素值所在的行、列位置。#include #include #include #define m 3#define n 3int main() int i,j,max=-65536; int row,col; int amn=77,99,69,76,87,90,100,88,66; for (i=0; im; i+) max=-65536; for(j=0;jmax) max=aij; row=i;col=j; printf(the max is %d,row=%d,col=%dn,arowcol,row,col); printf(the max is a%d%d=%dn,row,col,arowcol);/另一种输出方式 system(Pause); return 0; 4. /有n个考生,每个考生有考号和一个总分成绩,如果录取m人,确定录取分数线,并输出录取考生的考号和成绩。#include #include #include #define n 4void SelectSort(int an2)/选择排序 int i,j,k,min,t0,t1; for(i=0;in;+i) /选出最小值所在的位置j min=65535;/可试试此句不在循环内的结果。 for(k=i;kn;k+) if(ak1min) min=ak1; j=k; if(i!=j)/交换 t1=ai1;t0=ai0;ai1=aj1;ai0=aj0;aj1=t1;aj0=t0; printf(after selectsort:n); for(i=0;in;i+) printf(%d %dn,ai0,ai1); int main() int i,j,m; int an2=1,99,2,76,3,90,4,88; SelectSort(a);/调用选择排序函数,第八章内容 printf(m=?(mn)n); scanf(%d,&m); printf(enroll:n) ; for (i=n-m; in; i+)/因为是从小到大的排序,所以应录取n-m到n-1这m个人。 printf(no=%d,score=%dn,ai0,ai1); system(Pause); return 0; 5. /将矩阵m(n,n)对角线上的元素置为1,其余元素置为0。#include #include #include #define n 3int main() int i,j; int mnn=1,99,2,76,3,90,4,88,66; for(i=0;in;i+) for(j=0;jn;j+) if(i=j) mij=1; else mij=0; printf(after modify:n); for(i=0;in;i+) for(j=0;jn;j+) printf(%d ,mij); printf(n); system(Pause); return 0; 实验七(第7章实验实验目的:1掌握函数的定义和使用方法。2了解参数传递方式。3掌握简单的递归算法。实验内容: N!1. 用函数过程计算 M!(N-M)!2裴波那契数列的前两项是1、1,以后的每一项都是其相邻前两项之和。编写函数过程求: 数列前n项和FS; 前n项的平均值V。并就n=20计算并输出FS与V。 3编写一个用梯形法求一元函数f(x)在a,b上积分近似值的函数过程。并就 f(x)=sin(2x)+x,当a,b=0,3.14159、小区间数n=10和n=20时,分别计算并输出积分的近似值s1和s2,保留3位小数。(未实现)4编写一个函数程序,其功能是判定一个数是否为素数,若是素数则函数返回值为1, 若不是素数则函数返回值为0。用此函数判定找出 100 以内最大的 3 个素数。5编写函数程序,用牛顿迭代法求一元方程 x5+2x3-x2+x+1=0在 0 附近的近似值。6编写函数程序,计算正整数 n1n2 之间所有素数之和。 7用递归方法求 Fibonacci数列前 20 项及其这20项的和。实验过程:实验结果:1. /#include #include float func(int m,int n) int i; long int factorial_n=1,factorial_m=1,factorial_nm=1; float solut=0.0; for(i=1;i=n;i+) factorial_n*=i; for(i=1;i=m;i+) factorial_m*=i; for(i=1;i=n-m;i+) factorial_nm*=i; solut= 1.0*factorial_n/(factorial_m*factorial_nm);/注意括号,如果没有,除的意义就变了。 return solut; main() int m,n; printf(input m,n:n); scanf(%d,%d,&m,&n); printf(solut=%fn,func(m,n); system(Pause); 2. /裴波那契数列的前两项是1、1,以后的每一项都是其相邻前两项之和。编写函数过程求: 数列前n项和FS; 前n项的平均值V。并就n=20计算并输出FS与V。 #include #include #define m 20long Fib(int n) long fibm = 1,1; long sum=0; int i; for(i=2;in;i+) fibi = fibi-1+fibi-2; for(i=0;in;i+) sum=sum+fibi; return sum; float Avg(int n) float avg=0.0; avg=Fib(n)*1.0/n;/如果不乘以1.0,结果可能不对,因为整数/整数. return avg;main() int n; printf(input n:); scanf(%d,&n); printf(前%d项和=%dn,n,Fib(n); printf(前%d项和平均值=%fn,n,Avg(n); system(Pause); 前20项和为17710,平均值为885.50 3.4. /编写一个函数程序,其功能是判定一个数是否为素数,若是素数则函数返回值为1, 若不是素数则函数返回值为0。用此函数判定找出 100 以内最大的 3 个素数。#include #include #include int prime(int n)/判断素数的函数 int flag=1,i;for (i=2;i=sqrt(n)&flag=1;i+)/for(i=2;i=sqrt(n)&flag=1;i+)if(n%i=0) flag=0;return(flag);main()int i,j=0,a100;for(i=0;i=100;i+) if(prime(i)/如果是素数,则记入数组中 aj=i; j+; printf(the 3 max prime is:n); for(i=j-3;ij;i+) printf(%dn,ai); system(Pause); 5. /编写函数程序,用牛顿迭代法求一元方程 x5+2x3-x2+x+1=0在 0 附近的近似值。#include #include #include float solut()/ /牛顿迭代法公式为x=x0-f(x)/f(x) float x=0,x0,f,f1;do x0=x; f=pow(x0,5)+2*pow(x0,3)-x0*x0+x0+1; f1=5*pow(x0,4)+6*pow(x,2)-2*x0+1; x=x0-f/f1; while(fabs(x-x0)1e-5); return x;main() printf(%10.6fn,solut(); system(Pause); 6. /编写函数程序,计算正整数 n1n2 之间所有素数之和。#include #include #include int prime(int n)/判断素数的函数 int flag=1,i;for (i=2;i=sqrt(n)&flag=1;i+)/for(i=2;i=sqrt(n)&flag=1;i+)if(n%i=0) flag=0;return(flag);main()int i,n1,n2,sum;printf(input n1 and n2:);scanf(%d,%d,&n1,&n2); for(i=n1;i=n2;i+) if(prime(i)/如果是素数,则加到和里 sum=sum+i; printf(prime sum of %d-%d is %d,n1,n2,sum); system(Pause); 7. /用递归方法求 Fibonacci数列前 20 项及其这20项的和。#include #include
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训效果评价分析课件
- 2025年江苏省港口集团社会招聘考前自测高频考点模拟试题及答案详解(全优)
- 2025湖南湘潭市湘潭县云龙中学名优教师招聘5人模拟试卷及答案详解(夺冠系列)
- 经营合同法律分析
- 2025福建广电网络集团平和分公司诚聘乡镇营销员2人模拟试卷及答案详解1套
- 安全培训效果图课件
- 2025江苏连云港市灌云县招聘就业困难人员公益性岗位26人模拟试卷及答案详解(有一套)
- 成本控制与预算编制综合管理模板
- 2025江西吉安市青原区两山人力资源服务有限公司招聘临聘人员1人考前自测高频考点模拟试题及答案详解一套
- 2025福建三明市教育局华东师范大学附属三明中学招聘紧缺急需专业工作人员18人(省外高校专场)模拟试卷及答案详解(各地真题)
- 项目合同交付管理办法
- 【语文 北京版】2025年高考招生统一考试高考真题语文试卷(真题+答案)
- 大健康产业发展现状与趋势分析
- 国企贸易业务管理办法
- 2025年芳香保健师(初级)职业技能鉴定综合试题
- 世界避孕日培训
- 3done入门基础知识课件
- 政务摄影培训课件模板
- 职业健康卫生培训课件
- 快递行业包裹分拣操作流程模拟题
- 辅助生殖妊娠营养干预
评论
0/150
提交评论