




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计上机实验报告完好版C程序设计上机实验报告完好版C程序设计上机实验报告完好版C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:刘昊学号:实验时间:
2017
年3月
6号任课老师:
张锐C语言程序设计上机实验报告实验一一、实验名称
:
C程序的运行环境和运行
C程序的方法二、实验目的:
认识在
C编译系统上如何编写、编译、连接和运行一个
C程序三、实验内容:(1).输入并运行一个简单的C程序。(2).设计程序,对给定的两个数求和。(3).设计程序,对给定的两个数进行比较,尔后输出其中较大的数。四、源程序代码:代码1:运行结果1:程序解析1:该程序用来判断所输入的整数可否为一个素数,若是一个数能被除了
1和它自己整除,还能够被其他数整除,那么它就不是一个素数,因此,用
for
循环来进行整除过程的简写。代码2:?运行结果
2:?程序解析2:简单的使用printf( )和scanf( )函数进行简单的数据运算。代码3:运行结果3:程序解析3:使用if语句进行判断。五.实验总结语言程序设计上机实验报告实验二一、实验名称:序次结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。三、实验内容:(1).编写程序,实现小写字母转大写。(2).编写程序,实现输入两个不同样种类数据后,经过合适的运算(加、减、乘、除)后输出。(3).编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。(4).编写程序,实现单字符getchar和putchar输入输出。(5).编写程序,实现十进制、八进制、十六进制不同样数制的输出。四、源程序代码代码1:运行结果1:程序解析1:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,因此只需要对所输入的字符进行减法运算就可以变换为与之对应的大写字母。代码2:?运行结果2:程序解析2:简单的数据运算和格式字符的输出。代码3:运行结果3:?程序解析3:简单的数据运算实现相应的功能。代码4:运行结果4:?程序解析4:getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.?代码
5:??运行结果
5:程序解析
5:重要的是格式字符的使用,%d(输出十进制整型数)六进制格式输出整型数)%f(以带小数点的形式输出浮点数)
%o(以八进制格式输出整形数)%x(以十%c(输出一个字符)%s(输出字符串,直到遇到\0)五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握
if
语句和
switch
语句,学习调试程序。三、实验内容:(1).(2).
编写程序,用if语句编程实现一分段函数的求解。用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运行结果1:程序解析1:使用if函数对不同样的输入参数进行不同样的算术运算。代码2:?运行结果2:程序解析2:运用math库函数中的根号运算sqrt( )函数实现求根公式的表达。代码3:运行结果3:?程序解析3:运用switch语句对所有的情况分开,注意若是没有break语句,那么判断到要执行的case后,其后边的语句也要执行。代码4:??运行结果4:?程序解析4:重要的是判断一个数几位数的算法:每次对10取整,记录一次,降低了一位位数,直到取整位0就降到了一位数,计数达成。尔后,对于不同样的基数值,输出相应的判断结果。?代码5:运行结果5:程序解析5:重要的是闰年判断条件“四年一闰,百年不闰;四百年一闰”的c语言表示:i%4==0&&i%100!=0||i%400==0;五、实验总结语言程序设计上机实验报告实验四一、实验名称:循环控制程序设计二、实验目的:掌握在程序设计中使用循环的方法实现一些常用算法(如:穷举、迭代和递推等)。三、实验内容:100(1).分别用while语句、do-while语句和for语句编写程序,求n12......100。n1(2).用while语句编写程序,对输入一行字符的字母、数字、空格和其他字符的个数分别予以统计,并输出。(3).用for或while语句编写程序,输出所有的水仙花数。(4).用for语句编写程序,找出100-200间的所有素数。(5).用for语句编写程序,实现规定图案的输出。四、源程序代码代码1运行结果1:程序解析1:三种循环语句的使用。代码2:?运行结果2:程序解析2:代码3:运行结果3:?程序解析3:重要的是如何使用取整,取余运算符将一个数的每一位取出来。代码4:运行结果4:?程序解析4:重要的是,素数的判断条件的c表达:若是对于小于其自己的能能够把其整除,说明其不是一个素数,反之则为素数。?代码5:运行结果5:程序解析5:重要的是发现打印空格和字符个数与打印第n行之间的数字关系,依照数量关系,利用for循环实现循环打印。五、实验总结语言程序设计上机实验报告实验五一、实验名称:函数二、实验目的:掌握函数形参和实参的对应关系;以及“值传达”的方式,掌握函数的嵌套调用和递归调用的方法。三、实验内容:(1).经过无参函数实现多行字串的输出;(2).经过有参函数数据传达,用函数来实现:(a)两个数比较,输出其中较大的数;)(b)对给定的两个数求和;(3).编写程序,用函数的嵌套调用来实现输入4个数,找出其中最大的数。(4).编写程序,用函数递归调用,计算n!;(5).写一个判素数的函数,在主函数输入一个整数,输出可否素数的信息。四、源程序代码代码1:#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<7;j++){printf("%c",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);}运行结果1:程序解析1:执行两次同样的输出函数。代码2:#include<stdio.h>voidfun1(double*b,double*d){doublemax;max=*b;if(*d>*b){max=*d;}printf("两个数中较大的数是%f\n",max);}voidfun2(double*b,double*d){doublej;j=*b+*d;printf("%f+%f=%f\n",*b,*d,j);}main( ){doublea,c;printf("请输入两个数,数据之间用空格分开\n");scanf("%lf%lf",&a,&c);fun1(&a,&c);fun2(&a,&c);}?运行结果2:程序解析2:将两个功能经过两个函数来单独达成,有利于程序的阅读。代码3:#include<stdio.h>intmax(intn1,intn2);intmain( ){inti,j,k,l,m,n,o;printf("请输入四个数(用空格分开)\n");scanf("%d%d%d%d",&i,&j,&k,&l);m=max(i,j);n=max(k,l);o=max(m,n);printf("四个数中最大的数为%d\n",o);return0;}intmax(intn1,intn2){if(n1>n2){returnn1;}else{returnn2;}}运行结果3:?程序解析3:代码4:#include<stdio.h>longjc(intm);main( ){intn,jg;printf("-----该程序用来计算阶乘-----\n");printf("你要计算的是几的阶乘就输入几scanf("%d",&n);jg=jc(n);printf("%d的阶乘是%d\n",n,jg);
\n");}longjc(intm){if(m==0){return1;}else{returnm*jc(m-1);}}运行结果4:?程序解析4:5!=5*4*3*2*15!=5*4!;4!=4*3!;3!=3*2!;2!=2*1!;1!=1*0!;0!=1;实现函数的直接递归调用,而且递归使用的是选择结构,的执行语句:return1;就结束了再次调用函数jc函数。?代码5:
必然会有结束递归调用的语句,
比方上题中
if(m==0)运行结果5:程序解析5:只需要传达一个简单的整形数据即可,注意功能函数()里的变量必然要注明种类。五、实验总结语言程序设计上机实验报告实验六一、实验名称:一维和二维数组二、实验目的:掌握与数组有关的排序算法:冒泡排序和选择排序。三、实验内容:(1).用一维数组,对给定的一组数据逆序输出。(2).用一维数组,对10个数进行由小到大的冒泡排序。(3).用二维数组,求一个矩阵中的最大数据元素及所在的行列地址。(4).用一维数组,对10个数进行由小到大的选择排序。(5).用二维数组,求一个矩阵的转置矩阵。四、源程序代码代码1:#include<stdio.h>main( ){inti,j,m,t,a[100];printf("请输入一维数组的元素个数(注意:数组元素个数最多为100):\n");scanf("%d",&m);j=m-1;printf("请输入一维数组的元素
(注意:每输入一个数据按回车再输入下一个数据
):\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("你所输入一维数组为:");for(i=0;i<m;i++){printf("%d\t",a[i]);}printf("\n");if(m%2==0){printf("该一维数组逆序输出为:");for(i=0;i<m/2;i++){t=a[i];a[i]=a[j];a[j]=t;j--;}}if(m%2!=0){printf("该一维数组逆序输出为:");for(i=0;i<(m-1)/2;i++){t=a[i];a[i]=a[j];a[j]=t;j--;}}for(i=0;i<m;i++){printf("%d\t",a[i]);}}运行结果
1:??程序解析代码2:
1:#include<stdio.h>main( ){inti,j,m,t,a[100];printf("
请输入一维数组的列数
(注意:列数最多为
100):\n");scanf("%d",&m);printf("请输入一维数组的元素
(注意:每输入一个数据按回车再输入下一个数据
):\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("你所输入的一维数组为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}for(i=1;i<m;i++){for(j=0;j<m-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("\n");printf("你所输入的一维数组由小到大排序为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}}?运行结果2:程序解析2:代码3:#include<stdio.h>main( ){inti,j,m,n,p=1,o=1,max1,a[100][100];printf("请输入二维数组的行数(注意:行数最多为100):\n");scanf("%d",&m);printf("请输入二维数组的列数(注意:列数最多为100):\n");scanf("%d",&n);printf("请输入二维数组的元素(注意:每输入一个数据按回车再输入下一个数据,一行输入完后,再输入下一行):\n");for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}printf("你所输入的二维数组为:\n");for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",a[i][j]);if(j==n-1){printf("\n");}}}max1=a[0][0];for(i=0;i<m;i++){for(j=0;j<n;j++){if(a[i][j]>max1){max1=a[i][j];o=j+1;p=i+1;}}}printf("该数组中最大的数为%d\n其位于该数组的第%d行第%d列",max1,p,o);}运行结果3:??程序解析代码4:
3:#include<stdio.h>main( ){inti,j,m,t,a[100];printf("
请输入一维数组的列数
(注意:列数最多为
100):\n");scanf("%d",&m);printf("请输入一维数组的元素
(注意:每输入一个数据按回车再输入下一个数据
):\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("你所输入的一维数组为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}for(i=0;i<m;i++){for(j=i+1;j<m;j++){if(a[j]<a[i]){t=a[i];a[i]=a[j];a[j]=t;}}}printf("\n");printf("你所输入的一维数组由小到大排序为:\n");for(i=0;i<m;i++){printf("%d\t",a[i]);}}运行结果4:?程序解析4:?代码5:#include<stdio.h>main( ){inti,j,m,n,t,a[100][100];printf("请输入二维数组的行数(注意:行数最多为100):\n");scanf("%d",&m);printf("请输入二维数组的列数(注意:列数最多为100,因为是矩阵,要求行数等于列数):\n");scanf("%d",&n);printf("请输入二维数组的元素(注意:每输入一个数据按回车再输入下一个数据,一行输入完后,再输入下一行):\n");for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}printf("你所输入的二维数组为:\n");for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",a[i][j]);if(j==n-1){printf("\n");}}}for(i=0;i<m-1;i++){for(j=i+1;j<n;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}printf("你所输入的二维数组转置后为:\n");for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",a[i][j]);if(j==n-1){printf("\n");}}}?运行结果5:程序解析5:五、实验总结语言程序设计上机实验报告实验七一、实验名称:字符数组和字符串二、实验目的:学会字符数组的输入/输出和初始化;掌握对字符数组进行连接、复制和比较的函数,掌握对字符数组进行排序的有关算法;认识字符串变量及字符串数组的使用技巧。三、实验内容:(1).用一维字符数组,实现字符数组的输入/输出和初始化,及对字符数组进行连接、复制和比较运算。(2).用一维字符数组,对输入一行字符的字母、数字、空格和其他字符的个数分别予以统计,并输出。(3).用二维字符数组,实现输出钻石图形。(4).用二维字符数组,对8个姓氏进行由小到大的冒泡排序(或选择排序)。(5).用字符串数组,输入输出一组学生的简单信息。四、源程序代码代码1:#include<stdio.h>#include<string.h>voidfun1(char*g,char*h){inti,j,k;printf("a,b两个数组比较的结果为;\n");j=strlen(g);k=strlen(h);for(i=0;i<j;i++){printf("%c",g[i]);}printf("-----");for(i=0;i<k;i++){printf("%c",h[i]);}printf("\t");printf("%d",strcmp(g,h));printf("\n");}voidfun2(char*c,char*d){strcat(c,d);printf("a,b两个字符数组连接后的结果为:\n");puts(c);printf("\n");}voidfun3(char*e,char*f){intm,i;strcpy(e,f);printf("把b字符数组复制粘贴到a字符数组后两个数组元素的情况为:\n");m=strlen(e);for(i=0;i<m;i++){printf("a[%d]=%c\t",i,e[i]);}printf("\n");m=strlen(f);for(i=0;i<m;i++){printf("b[%d]=%c\t",i,f[i]);}}main( ){chara[100],b[100];inti,m;printf("请输入第一个字符数组中的元素(注意:字符个数不得高出100,字符串结束符也占一个储藏空间)\n");gets(a);printf("a字符数组为:\n");m=strlen(a);for(i=0;i<m;i++){printf("a[%d]=%c\t",i,a[i]);}printf("\n");printf("请输入第二个字符数组中的元素(注意:字符个数不得高出100,字符串结束符也占一个储藏空间)\n");gets(b);printf("b字符数组为:\n");m=strlen(b);for(i=0;i<m;i++){printf("a[%d]=%c\t",i,b[i]);}printf("\n");printf("\n");fun1(a,b);printf("\n");fun2(a,b);printf("\n");fun3(a,b);}运行结果1:代码2:#include<stdio.h>intmain( ){printf("请输入字符串,按回车键结束\n");charstr[100];inti=0;intnum=0,ch=0,blank=0,other=0;gets(str);while(str[i]!='\0'){if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')){ch++;}else{if(str[i]>='0'&&str[i]<='9'){num++;}else{if(str[i]==''){blank++;}else{other++;}}}i++;}printf("数字%d个,字母%d个,空格%d个,其他%d个\n",num,ch,blank,other);return0;}?运行结果2:程序解析2:代码3:#include<stdio.h>intmain( ){inti,j,m=0,n=7;chara[5][8];for(i=0;i<5;i++){for(j=0;j<8;j++){a[i][j]='';}}for(j=1;j<7;j++){a[0][j]='*';}for(i=1;i<5;i++){a[i][m]='*';a[i][n]='*';m++;n--;}for(i=0;i<5;i++){for(j=0;j<8;j++){printf("%c",a[i][j]);}printf("\n");}return0;}运行结果3:代码4:#include<string.h>#include<stdio.h>intmain( ){inti,j;chara[100][100],t[100];printf("--对8个姓氏进行由小到大的冒泡排序--\n");printf("请依次输入姓氏的拼音\n");for(i=0;i<8;i++){printf("请输入第%d个姓氏的拼音:",i+1);gets(a[i]);}for(i=0;i<8-1;i++){for(j=0;j<8-i-1;j++)if(strcmp(a[j],a[j+1])>0){strcpy(t,a[j]);strcpy(a[j],a[j+1]);strcpy(a[j+1],t);}}printf("对8个姓氏进行由小到大进行重新排序的结果为:\n");for(i=0;i<8;i++)puts(a[i]);return0;}运行结果4:?程序解析4:?代码5:#include<string.h>#include<stdio.h>intmain( ){inti,j;chara[100][100];printf("请输入学生的姓名:");gets(a[0]);printf("请输入学生的性别:");gets(a[1]);printf("请输入学生的年龄:");gets(a[2]);printf("请输入该学生的学号");gets(a[3]);printf("该学生的简短信息为:\n");printf("姓名\t性别\t年龄\t学号\n");for(i=0;i<4;i++){printf("%s\t",a[i]);}return0;}?运行结果5:五、实验总结语言程序设计上机实验报告实验八一、实验名称:指针二、实验目的:能正确使用数组的指针和指向数组的指针变量,以及字符串的指针和指向字符串的指针变量。三、实验内容:(1).用指针和函数经过地址传达,实现输入三个数,依照由大到小的序次输出
;(2).
使用指向数组的指针变量,实现数组元素的输出(3).
用一个函数实现两个字符的比较
,函数原型为:
intstrcmp(char*p1,char*p2);(4).两个字符串s1,s2由main( )函数输入,strcmp函数的返回值也由main( )函数输出;(5).用指针数组,实现对字符串进行由小到大的选择排序;用指向指针的指针,实现字符串的输出。四、源程序代码代码1:#include<stdio.h>#include<malloc.h>intmain(void){intlen=3,i,j,Temp;//printf("请输入你要建立一个多大的数组len=");//scanf("%d",&len);int*p=(int*)malloc(sizeof(int)*len);printf("请输入三个整数\n");for(i=0;i<len;i++){scanf("%d",&p[i]);}for(i=0;i<2;i++){for(j=i+1;j<3;j++){if(p[j]>p[i]){Temp=p[i];p[i]=p[j];p[j]=Temp;}}}printf("你所输入的整数依照从大到小的序次排序为:\n");for(i=0;i<len;i++){printf("%d\t",p[i]);}free(p);p=NULL;return0;}运行结果1:代码2:#include<stdio.h>#include<malloc.h>intmain(void){intlen,i;printf("请输入你要建立一个多大的数组len=");scanf("%d",&len);int*p=(int*)malloc(sizeof(int)*len);printf("请输入数组元素\n");for(i=0;i<len;i++){scanf("%d",&p[i]);}printf("你所输入的数组为:\n");for(i=0;i<len;i++){printf("%d\t",p[i]);}free(p);p=NULL;return0;}?运行结果2:代码3:#include<stdio.h>//当不包含头文件<string.h>时,strcmp()函数就是一个自定义的函数,因此本题的目的在于编写一个标准函数intstrcmp(char*s1,char*s2);voidmain( ){charstr1[21],str2[21];printf("第一段字符为(最长为20):");gets(str1);printf("\n第二段字符为(最长为20):");gets(str2);printf("\n比较结果为%d\n",strcmp(str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学物理知识复习的系统思考试题及答案
- 洗衣房工作岗位职责(7篇)
- 车间安全生产合同书
- 2025防台防汛安全的工作总结(9篇)
- 金融科技对普惠金融发展影响2025年行业案例分析报告
- 农产品电商用户忠诚度研究试题及答案
- 货物代理中介合同
- 家具产业改革对设计人才的要求分析试题及答案
- 学生防艾知识试题及答案
- 学习委员面试题及答案
- T-COFA 0021-2022 渔用油电混合多旋翼无人机安全检查和维 护保养要求
- 2025届河北省“五个一”名校联盟高三下学期4月联考化学试题(含答案)
- 山东省泰安市2025届高三二轮模拟检测考试政治(泰安二模)(含答案)
- GB/T 31928-2015船舶用不锈钢无缝钢管
- GB/T 28046.4-2011道路车辆电气及电子设备的环境条件和试验第4部分:气候负荷
- 中药学-七版教材
- 配位化学-配合物结构的表征和测试研究课件
- 《文物保护技术概论》课件 8.第七章 壁画保护
- 电力排管检验批
- 深度学习人工智能在医疗图像处理中的应用课件
- 自动涂胶机机械系统设计和实现 机械制造自动化专业
评论
0/150
提交评论