版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《程序设计基础》(c语言)实践报告专业:计算机科学与技术班级:姓名:学号:教师:《程序设计基础》(c语言)课程组
实验一1、编写程序,输入一个四位数,打印输出其个位数、十位数、百位数和千位数。#include<stdio.h>#include<conio.h>main(){inta,b,i;ﻩprintf("pleaseenteranumber:\n"); scanf("%d",&a);for(i=1;i<=4;i++){b=a%10;a=a/10;printf("%d\n",b);}getch();}2、编写程序,从键盘上输入两个电阻的值,求它们并联和串连的电阻值,输出结果保存两位小数。#include<stdio.h>#include<conio.h>main(){doublea,b,chuanlian,binglian;printf("pleaseentera&b:\n");scanf("%lf%lf",&a,&b);chuanlian=a+b;binglian=1/((1/a)+(1/b));printf("chuanlian=%.2lf\nbinglian=%.2lf\n",chuanlian,binglian);getch();}3、编写一个程序,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩。#include<stdio.h>#include<conio.h>main(){doublea,b,c,pingjun,zonghe;printf("entera&b&c'smark:\n");scanf("%lf%lf%lf",&a,&b,&c);pingjun=(a+b+c)/3;zonghe=a+b+c;printf("pingjun=%lf\nzonghe=%lf\n",pingjun,zonghe);getch();}#include<stdio.h>#include<conio.h>main(){printf("520\n");printf("+1314\n");printf("1834*10\n");4、输入一元二次方程的三个系数,求根。#include<stdio.h>#include<math.h>voidmain(){doublea,b,c,x1,x2,d;printf("pleaeentera,b,c:\n");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);printf("x1=%lf\nx2=%lf\n",x1,x2);5、输入三角形的三个边长a,b,c,输出面积s。#include<stdio.h>#include<math.h>main(){doublea,b,c,s,r;printf("pleaeentera,b,c:\n");scanf("%lf%lf%lf",&a,&b,&c);r=(a+b+c)/2;s=sqrt(r*(r-a)*(r-b)*(r-c));printf("s=%lf\n",s);getch();}实验2选择结构程序设计一、实验目的1、了解C语言表达逻辑量的方法(以0代表“假”,以非0代表“真”)。2、学会对的使用逻辑运算符和逻辑表达式。3、纯熟掌握if语句和switch语句。4、结合程序掌握一些简朴的算法。1.有一个函数用scanf函数输入x的值(分别为x<1、1~10、≥10三种情况),求y值。2、输入3个整数,规定按由小到大的顺序输出。3、根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积。4、有y=ax*x+bx+c,输入a,b,c。当a=0,b=0时,输出不是方程。当a=0,b≠0时,输出是一元一次方程,x=-c/b。当a≠0,△>0,输出方程X1,X2的解。当a≠0,△<0,输出无实根。5、键盘输入一个至多五位数,判断它是几位数,并将该数逆序输出。例:输入1456,输出结果是:四位数,逆序后:6541。7、编写程序,规定从键盘输入成绩,输出相应的等级(100分为A,90-99为B,80-89为C,70-79为D,60-69为E,小于60为F)。8、设计一个简朴的计算机程序,用户输入运算数和四则运算符(+、-、*、/),输出计算结果。二、实验内容三、实验源码及测试数据#include<stdio.h>#include<conio.h>main(){doublex,y;scanf("%lf",&x);if(x<1)y=x;if(x>=1&&x<10)y=2*x-1;if(x>=10)y=3*x-11;printf("%lf\n",y);getch();}#include"stdio.h"main(){inta,b,c,k,max,mid,min;scanf("%d%d%d",&a,&b,&c);if(a>b){k=a;a=b;b=k}if(a>c){k=a;a=c;c=k}if(b>c){k=b;b=c;c=k;}}printf("max=%dmid=%dmin=%d",a,b,c);}#include<stdio.h>#include<math.h>main(){doublea,b,c,s,r;printf("pleaseentera,b,c:\n");scanf("%lf%lf%lf",&a,&b,&c);if(((a+b)-c)>0&&((a-b)-c)<0){r=(a+b+c)/2;s=sqrt(r*(r-a)*(r-b)*(r-c));printf("s=%lf\n",s);}elseprintf("不能构成三角形\n");getch();}#include<stdio.h>#include<math.h>main(){doublea,b,c,x1,x2,d,x;printf("pleaseentera,b,c:\n");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;if(a==0&&b==0)printf("bushifangcheng\n");if(a==0&&b!=0){x=-c/b;printf("一元一次方程\n");printf("%lf\n",x);}if(a!=0&&d>0){x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);printf("x1=%lf\nx2%lf\n",x1,x2);}if(a!=0&&d<0)printf("wujie\n");getch();}#include<stdio.h>#include<conio.h>main(){inta,b,c=0,i;printf("pleaseenteranumber\n");scanf("%d",&a);while(a>0){b=a%10;c=b+10*c;a=a/10;}printf("%d",c);getch();}#include<stdio.h>#include<conio.h>main(){inta;printf("pleaseentera:\n");scanf("%d",&a);if(a==100)printf("A\n");if(a>=90&&a<=99)printf("B\n");if(a>=80&&a<=89)printf("C\n");if(a>=70&&a<=79)printf("D\n");if(a>=60&&a<=60)printf("E\n");if(a<60)printf("F\n");getch();}#include"stdio.h"voidmain(){inta,c;charb;scanf("%d%c%d",&a,&b,&c);switch(b){case'+':printf("%d",a+c);break;case'-':printf("%d",a-c);break;case'*':printf("%d",a*c);break;case'/':printf("%d",a/c);break;}}实验3循环结构程序设计一、实验目的ﻩ1、掌握用while语句,do-while语句和for语句实现循环的方法。ﻩ2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 3、调试程序的技巧。二、实验内容1、输入一行字符,分别记录出其中的英文字母、空格、数字和其它字符的个数。2、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还但是瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后天天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。3、用for语句求1到100中是3的倍数的数的和。n2k24、求∑2j^2+∑i!(-1)^ij=n1i=k1其中n1、n2键盘输入,输错重输(如:n1>n2),k1>k2同上。1005、求∑n!+(n^3-3n^2+2)(-1)^nn=16、找出5000以内所有完数。完数:一个数是它所有的因子的和。7、任意输入10个数,分别算出其中负数和正数的个数。8、.键盘输入字符串,遇‘#’结束,分别记录字母、数字和其它字符个数。9、计算1-100内所有具有6的数的和。10、输出所有3位水仙花数。所谓水仙花数是指所有位的数字的立方和等于该数。例:153=1^3+5^3+3^3。b11、梯形法求数值积分。F(x)=∫(4-X*X)^0.5dx。a12、用二分法求3X^3+2X^2-4X=6的解。13、用牛顿迭代法求3X^3+2X^2-4X=6的解。14、运用循环嵌套,输出九九乘法表。123456789123456789246810……15、观测数列,输出其前20项,每4个数一行,每个数占8列。2,2,4,4,6,16,8…16、编写程序输出下面图形。1234567890三、实验源码及测试数据#include<stdio.h>#include<conio.h>main(){chara[200];inti,b,num=0,emp=0,oth=0,lat=0;gets(a);b=strlen(a);for(i=0;i<b;i++){if(a[i]>='0'&&a[i]<='9')num++;elseif((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))lat++;elseif(a[i]=='')emp++;elseoth++;}printf("num=%d\nlat=%d\nemp=%d\noth=%d\n",num,lat,emp,oth);getch();}#include<stdio.h>#include<conio.h>main(){inta=1,i;for(i=1;i<10;i++){a=2*(a+1);printf("%d\n",a);}getch();}#include<stdio.h>main(){inti,b,a;a=0;for(i=1;i<=100;i++){b=i%3;if(b==0)a=a+i;printf("%d\n",a);}getch();}#include<stdio.h>#include<math.h>voidmain(){doublen1,n2,k1,k2,i,j,k;doublea=0,b=0,c=1,d=0;printf("entern1,n2:");scanf("%lf%lf",&n1,&n2);printf("enterk1,k2:");scanf("%lf%lf",&k1,&k2);if(n1>n2)printf("error");if(k1>k2)printf("error");for(j=n1;j<=n2;j++)a=a+2*j*j;for(i=k1;i<=k2;i++){{for(k=1;k<=i;k++)c=c*k;}b=b+c*pow((-1),i);}d=a+b;printf("%lf",d);}#include<stdio.h>#include<math.h>voidmain(){intk;doublen,a,s1,s2,s;s1=0;s2=0;for(n=1;n<=10;n++){a=1;for(k=1;k<=n;k++)a=a*k;s1=s1+a;s2=s2+(n*n*n-3*n*n+2)*pow(-1,n);}s=s1+s2;printf("%lf",s);}#include<stdio.h>#include<conio.h>#include<math.h>main(){inti,j,b,a,c;for(i=2;i<=5000;i++){a=0;for(j=1;j<i;j++){b=i%j;if(b==0)a=a+j;}if(a==i)printf("%d\n",a);}getch();#include<stdio.h>#include<conio.h>#include<math.h>main(){inti,j,b,a,c;for(i=2;i<=5000;i++){a=0;for(j=1;j<i;j++){b=i%j;if(b==0)a=a+j;}if(a==i)printf("%d\n",a);}getch();}#include<stdio.h>#include<conio.h>#include<math.h>main(){inta[10],i,zhengshu=0,fushu=0;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){if(a[i]>0)zhengshu++;if(a[i]<0)fushu++;}printf("zhengshu=%dfushu=%d",zhengshu,fushu);getch();}#include<stdio.h>#include<conio.h>#include<math.h>main(){charc;intnum=0,oth=0,lat=0;for(;(c=getchar())!='#';){if(c>='0'&&c<='9')num++;elseif((c>='a'&&c<='z')||(c>='A'&&c<='Z'))lat++;elseoth++;}printf("num=%d\nlat=%d\noth=%d\n",num,lat,oth);getch();}#include<stdio.h>main(){inti,a,b,c=0;for(i=1;i<=100;i++){a=i%10;b=i/10;if((a==6)||(b==6))c=c+i;}printf("c=%d\n",c);getch();}#include<stdio.h>main(){inti,a,b,c,d,f,e;e=0;for(i=101;i<1000;i++){b=i%10;c=((i-b*1)%100)/10;d=((i-b-c*10)%1000)/100;f=b*b*b+c*c*c+d*d*d;if(f==i)printf("i=%d\n",i);}getch();}#include<stdio.h>#include<math.h>voidmain(){doubles=0,n,a,b,i,A;printf("输入下限a:");scanf("%lf",&a);printf("输入上限b:");scanf("%lf",&b);printf("输入最小分段n:");scanf("%lf",&n);for(i=a;i<b;i=i+n){A=(pow((4-i*i),0.5)+pow((4-(i+n)*(i+n)),0.5))*n/2;s=s+A;}printf("%lf",s);}#include<stdio.h>#include<string.h>#definefang(x)(3*x*x*x-2*x*x-4*x-6)voidmain(){floata,b,c,m;scanf("%f%f",&a,&b);m=fang(a)*fang(b);if(m<=0){do{c=(a+b)/2;if(fang(b)*fang(c)<0)a=c;if(fang(a)*fang(c)<0)b=c;}while(fabs(a-b)>0.0001);printf("%f%f",a,b);}elseprintf("在%d和%d中没有跟或有两个跟",a,b);}#include<stdio.h>#include<math.h>voidmain(){doublee;e=0.1;doublex,x0,f,fl;scanf("%lf",&x);do{x0=x;f=3*x0*x0*x0+2*x0*x0-4*x0-6;fl=(9*x0+4)*x0-4;x=x0-f/fl;}while(fabs(x-x0)>e);printf("x=%lf\n",x);}#include<stdio.h>#include<conio.h>#include<math.h>main(){inti,j;for(i=1;i<10;i++)printf("%-5d",i);printf("\n");for(i=1;i<10;i++){printf("\n");for(j=1;j<10;j++)printf("%-5d",i*j);}getch();}#include<stdio.h>voidmain(){intq,i,j,a=2,b;printf("%-8d%-8d",a,a);for(i=2;i<=10;i++){printf("%-8d",2*i);a=a*a;printf("%-8d",a);b=i%5;if(b==0)printf("\n");}}#include<stdio.h>main(){inti,j,n=1;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%d",n++%10);printf("\n");}}实验4数组1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法(特别是排序算法)。1、用冒泡排序法对10个整数排序。10个整数用scanf函数输入。2、有15个数存放在一个数组中,输入一个数,规定查找该数是数组中第几个元素的值。假如该数不在数组中,则输出“无此数”。3、将两个字符串连接起来,不要用strcat函数。4、编写程序输出下面矩阵:234513451245123512345、输入10个数,逆序输出(折半)。6、键盘输入7个评委对选手的打分,去掉最高分,去掉最低分,输出平均分,规定左对齐,保存到小数点后两位。7、对某同学的作业记录作解决,输入作业每题的批改结果(对或错),遇#号结束,输犯错题的题号。8、键盘读入7个选手的编号与得分,规定输出优秀率(>=90),及格率(>=60),和平均分。输出排行榜(编号+成绩)。9、输入一个矩阵,找出所在行上最大,列上最小的数。(也许没有)10、读入下列数字存放在数组a[5][4]中,分别求各行、各列元素之和。将结果补在最后1行和最后1列后,输出整个矩阵。1246_8233_1579_2517_____11、键盘输入7个评委对7个选手的打分,算出平均分,规定去掉最低分,最高分,输出成绩排行榜。三、实验源码及测试数据#include<stdio.h>main(){inta[10];inti,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%-3d",a[i]);getch();}#include"stdio.h"#include"string.h"voidmain(){ inta[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,};ﻩinti,b;ﻩscanf("%d",&b); for(i=0;i<15;i++) if(b==a[i])ﻩ{ printf("这个数是第%d个数\n",i+1); break;}if(b!=a[i])printf("没有这个数");ﻩﻩ}#include"stdio.h"#include"string.h"#include"math.h"voidmain(){chara[100],b[100];intc,d,i;printf("entera");scanf("%s",a);printf("enterb");scanf("%s",b);c=strlen(a);d=strlen(b);for(i=0;i<c+d;i++)a[c+i]=b[i];printf("%s\n",a);}#include"stdio.h"main(){inti,j,k,a;for(i=0;i<5;i++){k=i;ﻩfor(j=0;j<5;j++)ﻩ{k++;if(k>5)a=k-5;elsea=k;printf("%d",a);}printf("\n");}}#include<stdio.h>#include<conio.h>#include<math.h>main(){inti,t,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<4;i++){t=a[i];a[i]=a[9-i];a[9-i]=t;}for(i=0;i<10;i++)printf("%d",a[i]);getch();}#include"stdio.h"#include"string.h"voidmain(){inta[7];inti,j,t,b=0,pinjun;for(i=0;i<7;i++)scanf("%d",&a[i]);for(j=0;j<7;j++)for(i=0;i<7-j;i++){if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}}for(i=1;i<6;i++)b=b+a[i];pinjun=b/5;printf("%-d\n",pinjun);}#include"stdio.h"#include"string.h"voidmain(){chara[100];inti=0,b;do{scanf("%c",&a[i]); i++;}while(a[i-1]!='#');b=strlen(a);for(i=0;i<b;i++)if(a[i]=='f')printf("%d\n",i+1);}#include<stdio.h>#include<string.h>voidmain(){inta[5][5];inti,j,k,b,max,min;for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);max=0;min=100;for(i=0;i<5;i++){for(j=0;j<5;j++)if(a[i][j]>max){max=a[i][j];printf("max=%d\n",max);b=j;printf("b=%d\n",b);}for(k=0;k<5;k++)if(a[k][b]<min)min=a[k][b];printf("min=%d\n",min);if(min==max)printf("这个数在第%d行第%d列\n",i,j);elseprintf("无此数\n");}}游戏大赛12、输入某游戏大赛10个队伍的名称(以字符串:如goodgoodstudy),队伍过关数(整数),耗时数(如:90分钟)。输出排行榜(涉及过关数、耗时,队伍名称)。排行规则:①先以过关数为标准。②过关数同样的以时间为标准。③过关数、时间同样的以队伍名称的首字母为标准。#include"Stdio.h"#include"string.h"voidmain(){charname[10][20];inttime[10];intfloor[10];inti,j,k,tem,temp;chara[20];printf("intputthenametime(minites)andfloor");for(i=0;i<10;i++){scanf("%s%*c",name[i]);scanf("%d%d",time,floor);}printf("thenametimeandfloor");for(i=0;i<10;i++){printf("name:%s\n",name[i]);printf("time:%dminites\n",time[i]);printf("floor:%d\n\n",floor[i]);}for(j=0;j<10;j++)for(i=0;i<10;i++){if(floor[i]>floor[i+1]){temp=floor[i];tem=time[i];strcpy(a,name[i]);floor[i]=floor[i+1];time[i]=time[i+1];strcpy(name[i],name[i+1]);floor[i+1]=temp;time[i+1]=tem;strcpy(name[i+1],a);}if(floor[i]=floor[i+1]){if(time[i]>time[i+1]){tem=time[i];strcpy(a,name[i]);time[i]=time[i+1];strcpy(name[i],name[i+1]);time[i+1]=tem;strcpy(name[i+1],a);}if(time[i]=time[i+1]){if(name[i][1]>name[i+1][1]){strcpy(a,name[i]);strcpy(name[i],name[i+1]);strcpy(name[i+1],a);}}}}for(i=9;i>=0;i--){printf("NO.%kname:%s\n",name[i][20]);printf("time:%dminites\n",time[i]);printf("floor:%d\n\n",floor[i]);k++;}}#include<stdio.h>#include<string.h>ﻩstructteamﻩ{charname[30];ﻩintfloor;ﻩinttime; }st[10],p;voidmain(){inti,j;ﻩfor(i=0;i<10;i++) scanf("%s%d%d",st[i].name,&st[i].floor,&st[i].time); for(j=0;j<9;j++) for(i=0;i<9-j;i++)if(st[i].floor>st[i+1].floor){p=st[i];st[i]=st[i+1];st[i+1]=p;}elseif(st[i].floor==st[i+1].floor)if(st[i].time>st[i+1].time){p=st[i];st[i]=st[i+1];st[i+1]=p;}elseif(st[i].time==st[j].time)if(strcmp(st[i].name,st[i+1].name)<0){p=st[i];st[i]=st[i+1]; st[i+1]=p;}for(i=9;i>=0;i--) ﻩprintf("%s\t%d\t%d\n",st[i].name,st[i].floor,st[i].time);}ﻩ ﻩ实验5函数一、实验目的1、掌握定义函数的方法;2、掌握函数实参与形参的相应关系以及“值传递”的方式;3、掌握函数的嵌套调用和递归调用的方法;4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。二、实验内容1、编写三个函数分别求某学生三门课程总成绩和平均成绩和及格率。2、用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数.3、用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不拟定,可以是任意的整数。4、输入三个字符串,按由小到大的顺序输出这些字符串。规定,对于三个字符串进行两两比较,将最小的串放在str1中,将最大的串放在str3中。设计一个函数,对两个字符串进行互换。提醒:使用strcmp(str1,str2)函数。5、已知abc+bcc=1333,其中a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。6、编写一个程序,涉及主函数和如下子函数。(1)输入10个无序的整数;(2)用起泡方法从大到小排序;(3)规定输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。7、定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,记录50个学生成绩中,高于平均成绩的有多少人?8、编写函数n2k2求∑2j^2+∑i!(-1)^ij=n1i=k19、写函数实现2分法求方程的根10、写函数求求5000以内的完数。11、写函数求输出数列2、2、4、4、6、16、8…前20项。12、求函数1n=0Hn=x-2x+7n=1hn-1(x)*(x^3+2)+hn-2(x)*(x^2-7x)。n>113、比较数组a和数组b,得出a中的数(每一个)比b中的几个数大,并输出。14、投票选班长,5个候选人,10个人每人投一票,输入投票结果,输出每个候选人的得票数。三、实验源码及测试数据#include<stdio.h>#include<conio.h>main(){inti,a[3];floatave,pass,sum;floatsumm(inta[3]);floatpassion(inta[3]);for(i=0;i<3;i++)scanf("%d",&a[i]);sum=summ(a);ave=sum/3;pass=passion(a);printf("总分%.0f\n平均分%.2f\n及格率%.2f%%\n",sum,ave,pass);}floatsumm(inta[3])//函数{intsum=0,i;for(i=0;i<3;i++)sum=sum+a[i];returnsum;}floatpassion(inta[3])//函数{floatpass;inti,k=0;for(i=0;i<3;i++)if(a[i]>60)k++;pass=100*k/3;return(pass);}#include"stdio.h"#include"string.h"voidmain(){chara[200];inti,k;inthanshu(chara[]);intpanduan(chara);gets(a);k=hanshu(a);for(i=k;panduan(a[i]);i++)printf("%c",a[i]);printf("\n");}inthanshu(chara[]){inti,l=0,k=0,m,n;intpanduan(chara);for(i=0;i<=strlen(a);i++){if(panduan(a[i]))l++;else{if(l>k){n=i;k=l;l=0;}elsel=0;}}return(n-k);}intpanduan(chara){if((a>='a'&&a<='z')||(a>='A'&&a<='Z'))return1;elsereturn0;}#include"stdio.h"#include"math.h"#include"string.h"voidmain(){chara[100],*p=a;voiddigui(char*p);digui(a);}voiddigui(char*p){inti;charc;c=getchar();if(c=='?')putchar(c);else{digui(p++);putchar(c);}}#include"stdio.h"#include"string.h"voidmain(){charstr1[20],str2[20],str3[20];voidjiaohuan(charstr[],charstr1[]);gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)>0)jiaohuan(str1,str2);if(strcmp(str1,str3)>0)jiaohuan(str1,str3);if(strcmp(str2,str3)>0)jiaohuan(str2,str3);puts(str1);puts(str2);puts(str3);}voidjiaohuan(charstr1[],charstr2[]){charx[20];strcpy(x,str1);strcpy(str1,str2);strcpy(str2,x);}#include"stdio.h"voidmain(){voidh();h();}voidh(){inta,b,c; for(a=0;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++)ﻩﻩ if((a*100+b*10+c+b*100+c*10+c)==200)ﻩﻩﻩﻩprintf("%d\n%d\n%d\n",a,b,c);}#include<stdio.h>voidmain(){inta[11],weizhi[11];inti,j,b,t=0;voidpaixu(inta[],intweizhi[]);voidcharu(inta[],intb);intchazhao(inta[],intweizhi[],intb);a[0]=0;weizhi[0]=0;for(i=1;i<11;i++){scanf("%d",&a[i]);weizhi[i]=i;}scanf("%d",&b);//输入要判断的数paixu(a,weizhi);//从大到小排序for(i=1;i<11;i++)printf("数值%d\t位置%d\n",a[i],weizhi[i]);t=chazhao(a,weizhi,b);//用t判断是否存在if(t){printf("存在该数位置为:");printf("%d\n",t);}elsecharu(a,b);}voidpaixu(inta[],intweizhi[]){inti,j,t,te;for(j=1;j<10;j++)for(i=1;i<10-j;i++)if(a[i]<a[i+1]){t=a[i];te=weizhi[i];a[i]=a[i+1];weizhi[i]=weizhi[i+1];a[i+1]=t;weizhi[i+1]=te;}}intchazhao(inta[],intweizhi[],intb){inti,j,t=0;for(i=1;i<11;i++)if(b==a[i])t=weizhi[i];returnt;}voidcharu(inta[],intb){inti,j;if(b>a[1])a[0]=b;elsefor(i=0;i<10;i++){if(a[i+1]>b)a[i]=a[i+1];elsebreak;}a[i]=b;printf("不存在该数\n将该数插入数列后的新数列:\n");for(i=0;i<11;i++)printf("%-5d",a[i]);}#include<stdio.h>voidmain(){inta[50];inti;inthanshu(inta[]);for(i=0;i<50;i++)scanf("%d",&a[i]);i=hanshu(a);printf("%d\n",i);}inthanshu(inta[]){inti,j=0,sum=0;floatk;for(i=0;i<50;i++)sum+=a[i];k=float(sum)/50;for(i=0;i<50;i++)if(a[i]>k)j++;return(j);}编写函数求n2k2∑2j^2+∑i!(-1)^ij=n1i=k1#include"stdio.h"#include"math.h"voidmain(){intk1,k2,n1,n2;longa;longsum(intn1,intn2,intk1,intk2);scanf("%d%d%d%d",&n1,&n2,&k1,&k2);a=sum(n1,n2,k1,k2);printf("%ld\n",a);}longsum(intn1,intn2,intk1,intk2){longa=0;inti,j,k;for(i=n1;i<=n2;i++)a=a+2*i*i;for(i=k1;i<=k2;i++){k=1;for(j=1;j<=i;j++)k=k*j*(-1);a+=k;}returna;}#include<stdio.h>#include<math.h>voidmain(){doublea,b,A,B,C,c,d,e;voidhanshu(double,double);scanf("%lf%lf",&a,&b);hanshu(a,b);}voidhanshu(doublea,doubleb){doublec,A,B,C,d;A=(3*a*a*a+2*a*a-4*a-6)*(3*b*b*b+2*b*b-4*b-6);if(A<0){do{c=(a+b)/2;B=(3*c*c*c+2*c*c-4*c-6)*(3*a*a*a+2*a*a-4*a-6);C=(3*c*c*c+2*c*c-4*c-6)*(3*b*b*b+2*b*b-4*b-6);if(B<0)b=c;if(C<0)a=c;d=fabs(b-a);}while(d>0.001);printf("%8.2lf",a);ﻩ}elseprintf("errora&b");}求5000内的完数(用函数)#include"stdio.h"#include"math.h"voidmain(){inta;voidwanshu(inta);scanf("%d",&a);wanshu(a);}voidwanshu(inta){inti,j,s;for(i=2;i<a;i++){s=0;for(j=1;j<i/2+1;j++)if(i%j==0)s=s+j;if(s==i)printf("%d\n",i);}}编写数列2,2,4,4,6,16,8#include"stdio.h"#include"math.h"voidmain(){longa;voidfuc(long);scanf("%ld",&a);fuc(a);}voidfuc(longn){longa,b;a=2;b=2;inti;for(i=1;i<n;i++){if(i%2){a=2*(i/2+1);printf("%ld\n",a);}elseif(i==2)printf("%ld\n",b);else{b=b*b;printf("%ld\n",b);}}}求函数1n=0Hn=x-2x+7n=1hn-1(x)*(x^3+2)+hn-2(x)*(x^2-7x)。n>1#include"stdio.h"voidmain(){intn,x;longs;longh(int,int);scanf("%d%d",&n,&x);s=h(n,x);printf("%d",s);}longh(intn,intx){longs;if(0==n)s=1;elseif(1==n)s=x*x-2*x+7;elses=h(n-1,x)+h(n-2,x);return(s);}#include<stdio.h>voidmain(){inta[5],b[5],i,j,k;for(i=0;i<5;i++)scanf("%d",&a[i]);for(j=0;j<5;j++)scanf("%d",&b[j]);for(i=0;i<5;i++){k=0;for(j=0;j<5;j++)if(a[i]>b[j])k++;printf("%d\t",k);}printf("\n");}调试运营结果实验心得体会实验6指针一、实验目的1、掌握指针的概念、会定义和使用指针变量ﻫ2、掌握指向数组的指针变量
3、掌握字符串指针的使用二、实验内容1、用指针实现,输入3个数,按从小到大输出。2、编一个程序,打入月份号,输出该月的英文月名,规定用指针数组解决。3、编写递归函数,将输入的以“?”结束的字符串按与输入相反的顺序输出。4、编写函数,在n个元素的一维数组中,记录比相邻元素大的数组元素个数并将记录数返回(不考虑a[0]和a[n-1]),规定以指针变量作函数参数。5、用指向指针的指针的方法对5个字符串进行排序。6、用指针的方式实现,3×3矩阵转置。7、设有一个单项链表,现欲将其倒置,试编写一函数实现此功能三、实验源码及测试数据#include"stdio.h"#include"math.h"#include"string.h"voidmain(){chara[100],*p=a;voiddigui(char*p);digui(a);}voiddigui(char*p){inti;charc;c=getchar();if(c=='?')putchar(c);else{digui(p++);putchar(c);}}#include"stdio.h"#include"math.h"voidmain(){inta[3][3];inti,j;voidswap(inta[3][3]);for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);swap(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%2d",a[i][j]);printf("\n");}getch();}voidswap(inta[3][3]){inti,j;intk=0;for(i=0;i<3;i++)for(j=0;j<i;j++){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}}#include"stdio.h"voidhanshu(int*p1){if(*p1==1)printf("january\n");if(*p1==2)printf("february\n");if(*p1==3)printf("march\n");if(*p1==4)printf("april\n");if(*p1==5)printf("may\n");if(*p1==6)printf("june\n");if(*p1==7)printf("july\n");if(*p1==8)printf("august\n");if(*p1==9)printf("september\n");if(*p1==10)printf("october\n");if(*p1==11)printf("novenber\n");if(*p1==12)printf("december\n");}voidmain(){inti1;scanf("%d",&i1);hanshu(&i1);}#include<stdio.h>voidhanshu(int*p){inti,num=0;for(i=1;i<18;i++)if(p[i]>p[i-1]&&p[i]>p[i+1])num++; printf("num=%d\n",num);}main(){inta[20];inti;for(i=0;i<20;i++)scanf("%d",&a[i]);hanshu(a);}5、用指向指针的指针的方法对5个字符串进行排序(二级指针)。#include<stdio.h>#include<string.h>voidmain(){chara[5][20];ﻩchar*p[5],*q=0;ﻩinti,j;for(i=0;i<5;i++)p[i]=a[i];for(i=0;i<5;i++)scanf("%s%*c",p[i]);for(i=0;i<4;i++)for(j=0;j<4-i;j++)if(strcmp(p[j],p[j+1])>0)ﻩ{q=p[j];ﻩp[j]=p[j+1]; p[j+1]=q;}for(j=0;j<5;j++)printf("%s\t",p[j]);printf("\n");}6、用指针的方式实现,3×3矩阵转置。#include<stdio.h>main(){inta[3][3],i,j,t;int(*p)[3]=a;for(i=0;i<3;i++) for(j=0;j<3;j++) ﻩscanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<i;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%4d",*(*(p+i)+j));printf("\n");}}实验7结构体和共用体一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等重要知识点。
2、掌握C程序的结构化程序设计方法,能使用C语言开发简朴的应用程序。
3、掌握C程序的运营、调试方法等。二、实验内容1、定义一个结构体变量,其成员涉及:职工号、职工名、性别、年龄、工龄、工资、地址。2、对上述定义的变量,从键盘输入所需的具体数据,然后用printf函数打印出来。4、建立一个涉及学生姓名,性别,年龄,一门课成绩的结构体,输出考分最高的学生个人信息。5、一个45人班级有两门课,求所有成绩中的最高成绩,及相应的姓名,学号课程编号,分别求两门课的平均成绩,并找出两门课都低于平均分的学生信息,按1课程成绩从高到低排序。6、已知一个无符号的整数占4个字节内存,现欲从低位存储地址开始,将其每个字节作为单独的一个ASCII码字符输出,使用共用体实现上述转换三、实验源码及测试数据3、按上述的结构体类型定义一个结构体数组,从键盘输入每个结构体元素所需的数据,然后逐个输出这些元素的数据(为简化起见,可设数组只有三个元素)。#include"stdio.h"voidmain(){structperson{intnum;charname[20];charsex;intage;intworkage;intpaycage;charaddress[30];}people[3];inti;for(i=0;i<3;i++){scanf("%d",&people[i].num);scanf("%s%*c",people[i].name);scanf("%c",&people[i].sex);scanf("%d",&people[i].age);scanf("%d",&people[i].workage);scanf("%d",&people[i].paycage);scanf("%s%*c",people[i].address);}for(i=0;i<3;i++){printf("%d",people[i].num);printf("%s",people[i].name);printf("%c",people[i].sex);printf("%d",people[i].age);printf("%d",people[i].workage);printf("%d",people[i].paycage);printf("%s\n",people[i].address);}}#include"stdio.h"voidmain(){structperson{charname[20];intk;intage;ints1;ints2;}stu[5],p;//结构体inti,j,m,n;intavg1=0,avg2=0;//平均分变量{for(i=0;i<5;i++){scanf("%s%*c",stu[i].name);scanf("%d",&stu[i].age);scanf("%d",&stu[i].k);scanf("%d",&stu[i].s1);scanf("%d",&stu[i].s2);}m=0;for(i=0;i<3;i++)if(stu[i].s1<stu[i+1].s1)m=i+1;n=0;for(j=0;j<3;j++)if(stu[j].s2<stu[j+1].s2)n=j+1;if(stu[m].s1>stu[n].s2)m=n;{printf("姓名:%s\t",stu[m].name);printf("年龄:%d\t",stu[m].age);printf("学号:%d\t",stu[m].k);printf("成绩一:%d\t",stu[m].s1);printf("成绩二:%d\t\n",stu[m].s2);if(stu[m].s1>stu[m].s2)printf("最高分在第一门课\n");elseprintf("最高分在第二门课\n");}}for(i=0;i<5;i++){avg1+=stu[i].s1;avg2+=stu[i].s2;}printf("平均分\n成绩一:%d\t成绩二:%d\n",avg1/5,avg2/5);for(i=0;i<5;i++)if((stu[i].s1<60)&&(stu[i].s2)<60){printf("不及格同学\n");printf("%s\t",stu[i].name);printf("%d\t",stu[i].age);printf("%d\t",stu[i].k);printf("%d\t\n",stu[i].s2);}for(i=0;i<4;i++)for(j=0;j<4-i;j++)if(stu[j].s1>stu[j+1].s1){p=stu[j];stu[j]=stu[j+1];stu[j+1]=p;}for(i=0;i<5;i++){printf("姓名:%s\t",stu[i].name);printf("年龄:%d\t",stu[i].age);printf("学号:%d\t",stu[i].k);printf("成绩一:%d\t",stu[i].s1);printf("成绩二:%d\t",stu[i].s2);}}实验6文献编程序并上机调试运营:1、编程序求100以内的素数,分别将它输出到显示器和x.txt文献中,规定每行5个数。2、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(涉及学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文献stud中。设5名学生的学号、姓名和3门课成绩如下:99101 Wangﻩ89,98,67.599103 Liﻩ60,80,9099106ﻩFunﻩ75.5,91.5,9999110 Ling 100,50,62.599113ﻩYuanﻩ58,68,7l在向文献stud写入数据后,应检查验证stud文献中的内容是否对的。3、将上题stud文献中的学生数据,按平均分进行排序(由高到低)解决,将已排序的学生数据存入一个新文献stu_sort中.在向文献stu_sort写入数据后,应检查验证stu_sort文献中的内容是否对的。4、对上题已排序的学生成绩文献进行插入解决,插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文献。(BX12.7)要插入的学生数据为:99108Xin 90,95,60在向新文献stu_new写入数据后,应检查验证stu_new文献中的内容是否对的。三、实验代码及测试数据#include<stdio.h>voidmain(){FILE*fp;inta,i,k,m=1;fp=fopen("c:\\s.txt","w");for(a=2;a<10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中等职业学校教师资格考试专项练习题及答案(音乐表演学科知识)
- 不锈钢承包合同13篇
- 2026海洋科普知识赛题答案分解
- 2026年高考地理上海卷试卷含答案
- 2026年湖南省益阳中小学教师招聘考试卷附答案
- 2026年安徽省中小学教师招聘考试题库含答案
- 人美版美术九年级下册15 走进河南博物馆教案
- 科学11 灯泡亮了教案
- 第四单元神州音韵(四)《万马奔腾》教学设计 人教版初中音乐八年级下册
- 第12课 我控制的机器人教学设计-2025-2026学年小学信息技术(信息科技)旧版资料电子工业版(安徽)
- GB 15322.2-2026可燃气体探测器第2部分:家用可燃气体探测器
- 2026年春季三年级道德与法治下册全册期末考试知识点材料
- 2026一季度重庆市属事业单位公开招聘242人备考题库带答案详解
- 《中国养老金精算报告2025-2050》原文
- 2025福建农信春季招聘194人(公共基础知识)综合能力测试题附答案
- 2026宝洁(中国)秋招面试题及答案
- 代孕合同协议书
- 古蔺花灯课件
- 周大福珠宝公司员工激励机制分析
- 《中国饮食文化》 课件 第五章 中国酒文化
- 小学语文阅读培训课件
评论
0/150
提交评论