程序的设计基础(C语言)实验报告册_第1页
程序的设计基础(C语言)实验报告册_第2页
程序的设计基础(C语言)实验报告册_第3页
程序的设计基础(C语言)实验报告册_第4页
程序的设计基础(C语言)实验报告册_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《程序设计基础》(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.有一个函数x1y2x11x103x11x10用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的倍数的数的和。n2

k24、求∑j=n1

2j^2+

∑i!(-1)^ii=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、利用循环嵌套,输出九九乘法表。12345678912345678924681015、察看数列,输出其前20项,每4个数一行,每个数占8列。,2,4,4,6,16,816、编写程序输出下边图形。1356890三、实验源码及测试数据#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];floor[i]=floor[i+1];time[i]=time[i+1];floor[i+1]=temp;time[i+1]=tem;

strcpy(a,name[i]);strcpy(name[i],name[i+1]);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];time[i+1]=tem;}

strcpy(name[i],name[i+1]);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)

用起泡方法从大到小排序;要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的地点,不然,插入适合地点。7、定义一个函数,功能是计算n个学生的成绩中,高于均匀成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于均匀成绩的有多少人?8、编写函数n2k2求∑2j^2+∑i!(-1)^ij=n1i=k19、写函数实现2分法求方程x35x216x800的根10、写函数求求5000以的完数。11、写函数求输出数列2、2、4、4、6、16、8前20项。12、求函数1n=0Hn=x2-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];a[i]=a[i+1];a[i+1]=t;}

te=weizhi[i];weizhi[i]=weizhi[i+1];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=x2-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门课成绩以下:99101Wang89,98,67.599103Li60,80,9099106Fun75.5,91.5,9999110Ling100,50,62.599113Yuan58,68,7l在向文件stud写入数据后,应检查考证stud文件中的容能否正确。3、将上题stud文件中的学生数据,按均匀分进行排序(由高到低)办理,将已排序的学生数据存入一个新文件stu_sort中.在向文件stu_sort写入数据后,应检查考证stu_sort文件中的容能否正确。4、对上题已排序的学生成绩文件进行插入办理,插入一个学生的3门课成绩。程序先计算新插入学生的均匀成绩,而后将它按成绩高低次序插入,插入后成立一个新文件。(BX12.7)要插入的学生数据为:99108Xin90,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<100;a++){k=1;for(i=2;i<a;i++)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论