C++实验代码
- 格式:doc
- 大小:702.43 KB
- 文档页数:50
C语言实验报告实验1—1:hello world程序:源代码:#include〈stdio.h>main(){printf(”hello world!\n”);system(”pause");}实验1—2:完成3个数据的输入、求和并输出计算结果的程序:源代码:#include<stdio。
h〉main(){int i,j,k,sum;scanf("%d%d%d",&i,&j,&k);sum=i+j+k;printf("sum=%d",sum);system(”pause”);实验1—3:在屏幕上输出如下图形:ABBBCCCCC源代码:#include<stdio。
h〉main(){printf(” A\n”);printf(" BBB\n”);printf(” CCCCC\n");system(”pause");}实验2—1:计算由键盘输入的任何两个双精度数据的平均值源代码:#include〈stdio.h〉main(){double a,b;scanf("%lf%lf”,&a,&b);printf("%。
1lf\n”,(a+b)/2);system(”pause”);}实验2—2:写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码:#include<stdio.h〉main(){float a,b,c,d,e,f,g,x;scanf("%f%f%f%f%f%f%f”,&a,&b,&c,&d,&e,&f,&g);x=a + b *(c - d )/ e *f - g;printf(”x=%f”,x);system("pause");}实验2-3:编写一个C语言程序,测试下列各表达式:i,ji + 1 , j + 1i++ , j++++i ,++ji+++++j源代码:#include<stdio。
C语言实验指导书的程序编码C语言实验程序编码1.平面上两点间的距离#include#includeint main(){double a1,a2;double b1,b2;double distance;printf("please input value a1 and a2:\n"); scanf("%lf%lf",&a1,&a2);printf("please input value b1 and b2:\n"); scanf("%lf%lf",&b1,&b2);distance=sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2));printf("%lf\n",distance);return 0;}2.#include#includeint main(){double a1,a2;double b1,b2;double distance;printf("please input value a1 and a2:\n");scanf("%lf%lf",&a1,&a2);printf("please input value b1 and b2:\n");scanf("%lf%lf",&b1,&b2);distance=sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2));printf("%lf\n",distance);return 0;}3.#include//int 占用四字节的32位机#define LOW16 0xFFFFint main(){unsigned int A=0,B=0,C=0,t=0;char hex[33]={0};printf("Please input two unsigned int A and B: "); scanf("%u%u",&A,&B);C=A & LOW16;C<<=16;C |= (B>>16) & LOW16;printf("A=0x%08x\n",A);printf("B=0x%08x\n",B);printf("C=0x%08x\n",C);return 0;}4.#include#includemain(){double x1,y1;double x2,y2;double s;printf("please input a point a:\n");scanf("x1=%lf,y1=%lf\n",&x1,&y1);printf("please input the orther point b:\n");scanf("x2=%lf,y2=%lf\n",&x2,&y2);s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));printf("平面上任意两点间的距离:%lf\n",s);return 0;}5.#includevoid main(){int i,head,foot,rabbit,chick;printf("Enter the 2 numbers :");scanf("%d%d",&head,&foot);printf("head=%d,foot=%d\n",head,foot);for(i=0;i<=head;i++){rabbit=i;chick=head-rabbit;if(rabbit*4+chick*2==foot)printf("rabbit=%d,chick=%d\n",rabbit,chick);}}6.#include//int 占用四字节的32位机#define LOW16 0xFFFFint main(){unsigned int A=0,B=0,C=0,t=0;char hex[33]={0};printf("Please input two unsigned int A and B: \n"); scanf("%u%u",&A,&B);C=A & LOW16;C<<=16;C |= (B>>16) & LOW16;printf("A=0x%08x\n",A);printf("B=0x%08x\n",B);printf("C=0x%08x\n",C);return 0;}7.#include "stdio.h"main()long int rmb,a,b,c,d,e,f,gw,sw,i;printf("Please enter a number:");scanf("%d",&rmb);if(rmb>0 && rmb<=2147483647){sw=rmb%100;gw=rmb%10;a=rmb/100;b=sw/50;c=(sw-b*50)/20;d=(sw-b*50-c*20)/10;e=gw/5;f=(gw-e*5)/1;printf("$100=%d\n$50=%d\n$20=%d\n$10=%d\n$5=%d\n $1=%d\n",a,b,c,d,e,f);}else printf("Error of money!");return 0;}8.#includevoid main(){float a;printf("请输入成绩a:\n");scanf("%f",&a);if (a>=0&&a<=100){switch((int)(a/10)){case 10:case 9:printf("优\n");break;case 8:printf("良\n");break;case 7:printf("中\n");break;case 6:printf("及格\n");break;default:printf("差\n");break;}}elseprintf("输入错误\n");printf("a=%f\n",a);}9.#include//int 占用四字节的32位机int main(){unsigned int A,B,C;printf("Please input two unsigned int A and B: \n"); scanf("%u%u",&A,&B);A=A<<16;B=B>>16;C=A|B;printf("A=0x%08x\n",A);printf("B=0x%08x\n",B);printf("C=0x%08x\n",C);return 0;}10.#includemain(){unsigned int a,b,c;a=65;b=66;c=67;printf( "a=%c,b=%c,c=%c\n",a,b,c); } 11.#includeint main(){int h,f,x,y;printf( "Input h and f:\n ");scanf( "h=%d,f=%d",&h,&f);y=(f-h-h)/2;x=h-y;printf( "x=%d,y=%d\n ",x,y); return 0;}12.#includevoid main(){int x,y;printf("please enter x,y:");scanf("%d%d",&x,&y);printf("\nx+y=%d\n",x+y);printf("x-y=%d\n",x-y);printf("x*y=%d\n",x*y);printf("x/y=%d\n",x/y);printf("x%y=%d\n",x%y);}13.#includemain(){int h,f,x,y;printf("please input values h and f:\n"); scanf("%d,%d",&h,&f);if (h>0 && f>0){x=(4*h-f)/2;y=(f-2*h)/2;printf("x=%d,y=%d\n",x,y);}elseprintf("input error!\n");return 0;}14.#includeint main(){int i,j,k;for(i=0;i<=100/3;i++){for(j=0;j<=100/2;j++){for(k=0;k<=100;k+=2){if(((i+j+k)==100)&&((3*i+2*j+k/2 )== 100)) printf("%d ,%d ,%d\n", i,j,k);}}}return 0;}15.#includeint main(){int i,j,k;for(i=100/3;i>0;i--){for(j=100/2;j>0;j--){for(k=100;k>0;k-=2){if(((i+j+k)==100)&&((3*i+2*j+k/2 )== 100)) printf("%d ,%d ,%d\n", i,j,k);}}}return 0;}16.#include#include#include//模拟一次投骰子的函数,返回值为0~5,表示骰子的六个面int get_number(void){int num = 0;num = rand() % 6;return num;}main(){int data[6];int i=0;srand(time(NULL));//设置随机数种子for( i=0 ; i < 6 ; i++)//数据初始化{data[i]=0;}for( i=0 ; i<1000; i++)//进行1000次试验{data[get_number()]++;}for( i=0 ; i < 6 ; i++)//统计结果输出{printf("点数为%d的次数为: %d\n",i+1,data[i]);}return 0;}16.1. #include#include#include#includevoid main(){srand(time(NULL));double p1=0,p2=0,p3=0,p4=0,p5=0,p6=0; floati1=0,i2=0,i3=0,i4=0,i5=0,i6=0;for(int i=0;i<1000;i++){if(rand()%6+1==1){i1++;}if(rand()%6+1==2){i2++;}if(rand()%6+1==3){i3++;}if(rand()%6+1==4){i4++;}if(rand()%6+1==5){i5++;}if(rand()%6+1==6){i6++;}}p1=i1/1000;p2=i2/1000;p3=i3/1000;p4=i4/1000;p5=i5/1000;p6=i6/1000;printf("出现1的概率%f:\n",p1); printf("出现2的概率%f:\n",p2); printf("出现3的概率%f:\n",p3);printf("出现4的概率%f:\n",p4);printf("出现5的概率%f:\n",p5);printf("出现6的概率%f:\n",p6);}17.#includemain( ){har string[81];int i,num=0,word=0;char c;gets(string);for(i=0;(c=string[i])!=′\0′;i++)if(c==' '||c==' ')word=0;else if(word= =0){word=1;num++;}printf(″There are %d words in the line.\n″,num);}18.#include#define N 5void main(){int i,j;float max,min,t,a[N];float pjf,sum=0;printf("please input value a[i]:\n");for(i=0;i<n;i++)< p="">scanf("%f",&a[i]);for (i=0;i<n;i++)< p="">{sum=sum+a[i];pjf=sum/N;}max=min=a[0];for(i=1;i<n;i++)< p="">{if(max<a[i])< p="">{max=a[i];}if(min>a[i]){min=a[i];}}printf("大于平均值的数是:\n"); for(i=0;i<n;i++)< p=""> {if(a[i]>pjf)printf("a[%d]=%5.2f\t",i,a[i]); }printf("\n");printf("排列后的数是:\n");for(i=0;i<n-1;i++)< p=""> {for(j=i;j<n;j++)< p=""> {</n;j++)<></n-1;i++)<></n;i++)<></a[i])<></n;i++)<></n;i++)<></n;i++)<>。
实验数据处理C语言源代码#include#include#include#include#define MAX 20typedef struct wuli{float d[MAX];char name[10];int LEN;float ccha[MAX]; /*残差数组*/float avg; /*data的平均值*/double sx; /*标准偏差Sx*/double DU; /*总不确定度*/}wulidata;wulidata *InputData();void average(wulidata *wl);void YCZhi(wulidata *wl);void CanCha(wulidata *wl);void BZPianCha(wulidata *wl);/*标准偏差*/void BQDdu(wulidata *wl);/*总不确定度*/void rage(wulidata *wl);void output(wulidata *wl);/*----------------------------------------------------------*/void line(){int i;printf("\n");for(i=0;i<74;i++)printf("=");printf("\n");}/*-------------------------------------------------------*/wulidata *InputData(){int i=0,k;float da;char Z=0;wulidata *wl;wl=(wulidata *)malloc(sizeof(wulidata));printf("请为你要处理的数据起一个名字:");scanf("%s",wl->name);printf("\n下面请你输入数据%s具体数值,数据不能超过MAX个\n",wl->name);printf("当name='#'时输入结束\n");do{printf("%s%d=",wl->name,i+1);scanf("%f",&da);wl->d[i]=da;i++;if(getchar()=='#') break;}while(wl->d[i-1]!=0.0&&iwl->LEN=i-1;do{printf("你输入的数据如下:\n");for(i=0;iLEN;i++)printf("%s%d=%f\t",wl->name,i+1,wl->d[i]);printf("\n你是否要作出修改(Y/N)?");while( getchar()!='\n');Z=getchar();if( Z=='y'||Z=='Y'){printf("你须要修改哪一个元素,请输入其标号i=(1~%d)\n",wl->LEN);while( getchar()!='\n');scanf("%d",&k);printf("\n%s%d=",wl->name,k);scanf("%f",&(wl->d[k-1]));}else if(Z=='n'||Z=='N')printf("OK!下面开始计算。
C语言程序设计实验及代码随着计算机技术的快速发展,C语言作为一种高效且强大的编程语言,被广泛应用于软件开发、嵌入式系统以及科学计算等领域。
在学习C语言编程的过程中,进行实验并编写相应的代码是非常重要的一部分,可以帮助我们巩固所学的知识并提高编程能力。
本文将介绍几个常见的C语言程序设计实验,并给出相应的代码示例。
一、实验一:Hello, World!实验目的:熟悉C语言编程环境,掌握简单的编译和运行操作。
实验内容:编写一个简单的程序,在屏幕上输出"Hello, World!"。
代码示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```二、实验二:求两个整数的和与差实验目的:学习C语言中的基本数据类型和算术运算符的使用。
实验内容:编写一个程序,输入两个整数并计算它们的和与差,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num1, num2, sum, diff;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;diff = num1 - num2;printf("两数之和:%d\n", sum);printf("两数之差:%d\n", diff);return 0;}```三、实验三:判断一个数是奇数还是偶数实验目的:学习C语言中的分支语句的使用。
实验内容:编写一个程序,输入一个整数,并判断它是奇数还是偶数,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
#include <stdio.h>#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longulong count,n;uint hthu,tthu,thu,hun,ten,one=0;uint flag=0; /*flag为十万位有进位时的标志位,每当有数字像十万位进位时,flag置1*/uchar codesegments_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; /*定义数码管上0~9以及灭灯*/uchar code scan_bits[]={0x01,0x02,0x04,0x08,0x10,0x20}; /*位选码,从左到右依次为6~1*/void t0_count();void delay_1ms(uint x); /*声明延时1ms*/void display(); /*显示函数*/void main(){TMOD=0x05;/*可以再考虑T1*/TH0=0x00;TL0=0x00;EA=1;ET0=1;TR0=1; /*开计数器C0*/P1=0xff;while (1){display();}}void delay_1ms(uint x){uint t;while (x--){for (t=0;t<120;t++);}}void display(){ uint i;for (i=0;i<=5;i++){P1=scan_bits[i]; /*位选*/count=TH0*256+TL0+flag*65535; /*count为计数值,这里为了突破C0计数65535的限制,采用硬件定时和软件定时结合*/hthu=count/100000;tthu=(count%100000)/10000;thu=(count%10000)/1000;hun=(count%1000)/100;ten=(count%100)/10;one=count%10;switch(i){case 0:P0=segments_code[one];P0=0xff;break; /*选择被选通的位选管,赋值段选码*/case 1:P0=segments_code[ten];P0=0xff;break;case 2:P0=segments_code[hun];P0=0xff;break;case 3:P0=segments_code[thu];P0=0xff;break;case 4:P0=segments_code[tthu];P0=0xff;break;case 5:P0=segments_code[hthu];P0=0xff;break;}delay_1ms(1);}}void t0_count() interrupt 1 /*当计数器1溢出时,数码管第七位显示闪烁的E*/ {flag=flag+1;if(flag==10) /*当计数范围超过十万位时,停止计数,数码管最高位闪动'E'(error)*/{while (1){P1=0x20;P0=0x86;delay_1ms(200);P1=0x00;delay_1ms(200);} }}。
实验项目一C++程序设计初步题目在Visual Studio 2008平台上,用C++语言创建一个控制台应用程序,当其运行时在屏幕上显示“Hello,World!”(参考P15)实验项目二类与对象(1)有以下程序:#include <iostream>using namespace std;class Time //定义Time类{public: //数据成员为公用的int hour;int minute;int sec;};int main( ){ Time t1; //定义t1为Time类对象cin>>t1.hour; //输入设定的时间cin>>t1.minute;cin>>t1.sec;cout<<t1.hour<<“:”<<t1.minute<< “:”<<t1.sec<<endl; //输出时间return 0;}改写程序,要求:①将数据成员改为私有的;②将输入和输出的功能改为由成员函数实现;③在类体内定义成员函数。
然后编译和运行程序。
请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好放在类外定义?代码:/ 实验_1.cpp : 定义控制台应用程序的入口点。
#include"stdafx.h"#include<iostream>using namespace std;class Time //定义Time类{private: //数据成员为私有的int hour;int minute;int sec;public:void Input(){cout<<"请输入时、分、秒:"<<endl;cin>>hour>>minute>>sec;}void print(){cout<<"时间为:"<<endl;cout<<hour<<":"<<minute<< ":"<<sec<<endl;}};int _tmain(int argc, _TCHAR* argv[]){Time t1;t1.Input ();t1.print ();return 0;}结果:(2)修改实验1中的学生成绩管理系统,建立类OurClass,实现班级学生信息的输入,排序和输出。
实验一数组、结构体和函数综合编程一、实验目的1.复习数组,结构体和函数的相关知识;2.掌握利用数组存储数据和进行编程的方法;3.进一步掌握函数的编写。
二、实验内容1.学生成绩统计从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计不及格人数并打印不及格学生名单;(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;(3)统计各分数段的学生人数及所占的百分比。
注:将成绩分为六个分数段,60分以下为第0段,60~69为第1段,70~79为第2段,80~89为第3段,90~99为第4段,100分为第5段。
编程要求:1.较好的用户输入输出提示信息2.使用子函数来实现上述各个功能,并且要使用结构体数组来实现,该结构体中包括学生学号和成绩3.最好不要使用全局变量提示:typedef tagStudent{long num;//学生学号float score;//学生分数}Student;供参考的函数原型如下:/*函数功能:从键盘输入一个班学生某门课的成绩及其学号当输入成绩为负值时,输入结束函数参数:存放学生信息的Student结构体数组函数返回值:学生总数*/int ReadScore(Student stu[]);/*函数功能:统计不及格人数并打印不及格学生名单函数参数:存放学生信息的Student结构体数组整型变量n,存放学生总数函数返回值:不及格人数*/int GetFail(Student stu[], int n);/*函数功能:计算全班平均分函数参数:存放学生信息的Student结构体数组,整型变量n,存放学生总数函数返回值:平均分*/float GetAver(Student stu[], int n);/*函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单函数参数:存放学生信息的Student结构体数组,整型变量n,存放学生总数函数返回值:成绩在全班平均分及平均分之上的学生人数*/int GetAboveAver(Student stu[], int n);/*函数功能:统计各分数段的学生人数及所占的百分比函数参数:存放学生信息的Student结构体数组,整型变量n,存放学生总数函数返回值:无*/void GetDetail(Student stu[], int n);2.成绩排名次某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。
C语言程序设计部分实验参考答案实验22-1-2#include <stdio.h>int main(){int c,f=150;c=f*5/9-32*5/9;printf("fahr=%d, celsius=%d\n",f, c);return 0;}思考:不一样结果变为65 因为取整过程不同造成误差2-1-3#include <stdio.h>int main(){int c=26,f;f=c*9/5+32;printf("celsius=%d, fahr=%d\n",c, f);return 0;}#include <stdio.h>int main(){//2-1-4int math=87,eng=72,comp=93;printf("math=%d, eng=%d, comp=%d, average=%d\n",math, eng, comp,(math+eng+comp)/3);return 0;}#include <stdio.h>int main(){//2-1/5int n=152,a,b,c;c=n%10;b=(n/10)%10;a=n/100;printf("整数%d 的个位数字是%d, 十位数字是%d, 百位数字是%d\n",n, c, b, a);return 0;}#include <stdio.h>int main(){//2-1-6int x=3,y;y=x*x;printf("%d=%d*%d\n",y,x,x);printf("%d*%d=%d\n",x,x,y);return 0;}#include <stdio.h>int main(){//2-2-1double x, y;printf("Enter x:");scanf_s("%lf",&x);if(x!=0){y=1/x;}else{y=0;}printf("f(%.2f)=%.1f\n",x,y);return 0;}#include <stdio.h>int main(){//2-2-2int celsius, fahr;fahr=100;celsius=5*(fahr-32)/9;printf("fahr=%d, celsius=%d\n",fahr,celsius);return 0;}#include <stdio.h>int main(){//2-2-3double money, rate,x=1.0;int i,year;printf("Enter money, year and rate:");scanf("%lf %d %lf",&money,&year,&rate);for(i=1;i<=year;i++)x=x*(1+rate);printf("intrest=%.2f\n",money*x-money);return 0;}#include <stdio.h>#include<math.h>int main(){//2-2-4double x, y;printf("Enter x");scanf_s("%lf",&x);if(x<0.0)y=pow(x+1,2)+2*x+1/x;elsey=sqrt(x);printf("f(%.2f)=%.2f\n",x,y);return 0;}#include <stdio.h>#include<math.h>int main(){//2-2-5double x, y;printf("Enter x:");scanf_s("%lf",&x);if(x==10)y=1/x;elsey=x;printf("f(%.2f)=%.1f\n",x,y);return 0;}#include <stdio.h>int main(){//2-2-6int x, y;printf("Enter num1:");scanf_s("%d",&x);printf("Enter num2:");scanf_s("%d",&y);printf("%d+%d=%d\n",x,y,x+y);printf("%d-%d=%d\n",x,y,x-y);printf("%d*%d=%d\n",x,y,x*y);printf("%d/%d=%d\n",x,y,x/y);printf("%d%%d=%d\n",x,y,x%y);return 0;}#include <stdio.h>int main(){//2-3-1int i,sum=0;for(i=1;i<=100;i++){sum=sum+i;}printf("sum=%d\n",sum);return 0;}#include <stdio.h>int main(){//2-3-2int i,m,s=0;printf("Enter m:");scanf("%d",&m);for(i=m;i<=100;i++)s=s+i;printf("sum=%d\n",s);return 0;}#include <stdio.h>int main(){//2-3-3int i,m,n;double s=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);for(i=m;i<=n;i++)s=s+1.0/i;printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-4int i,n;double s=0.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<=n;i++)s=s+1.0/(2*i-1);printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-5int i,n;double s=1.0,t=1.0,sign=1.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<n;i++){sign=-sign;t=(t+3);s=s+1/t*sign;}printf("sum=%.3f\n",s);return 0;}#include <stdio.h>int main(){//2-3-6int low, uper;double fahr,celsius;printf("Enter low:");scanf_s("%d",&low);printf("Enter uper:");scanf_s("%d",&uper);printf("fahr celsius\n");for(fahr=low;fahr<=uper;fahr+=2){celsius=5.0/9.0*(fahr-32.0);printf("%3.0f %6.1f\n",fahr,celsius);}return 0;}#include <stdio.h>int main(){//2-3-7int m, n, i;double p,sum=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);p=1.0;for(i=1;i<=m;i++)p=p*i;sum=sum+p;p=1.0;for(i=1;i<=n;i++)p=p*i;sum=sum+p;printf("sum=%.0f\n",sum);return 0;}#include <stdio.h>int main(){//2-3-8int x, n,i;double p=1.0;printf("Enter x:");scanf("%d",&x);printf("Enter n:");for(i=1;i<=n;i++)p=p*x;printf("%d的%d次方是%.0f\n",x, n,p);return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-1int n,i;printf("Enter n:");scanf("%d",&n);for(i=0;i<=n;i++)printf("pow(3,%d)=%.0f\n",i,pow(3.0,i));return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-4double sum=0.0,i;for(i=100;i<=1000;i++){sum+=sqrt(i);}printf("sum=%.2f\n",sum);return 0;}// return 0;}#include <stdio.h>#include<math.h>int main(){//2-2-5double x, y;printf("Enter x:");scanf_s("%lf",&x);if(x==10)y=1/x;elsey=x;printf("f(%.2f)=%.1f\n",x,y);return 0;}#include <stdio.h>int main(){//2-2-6int x, y;printf("Enter num1:");printf("Enter num2:");scanf_s("%d",&y);printf("%d+%d=%d\n",x,y,x+y);printf("%d-%d=%d\n",x,y,x-y);printf("%d*%d=%d\n",x,y,x*y);printf("%d/%d=%d\n",x,y,x/y);printf("%d%%d=%d\n",x,y,x%y);return 0;}#include <stdio.h>int main(){//2-3-1int i,sum=0;for(i=1;i<=100;i++){sum=sum+i;}printf("sum=%d\n",sum);return 0;}#include <stdio.h>int main(){//2-3-2int i,m,s=0;printf("Enter m:");scanf("%d",&m);for(i=m;i<=100;i++)s=s+i;printf("sum=%d\n",s);return 0;}#include <stdio.h>int main(){//2-3-3int i,m,n;double s=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);for(i=m;i<=n;i++)s=s+1.0/i;printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-4int i,n;double s=0.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<=n;i++)s=s+1.0/(2*i-1);printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-5int i,n;double s=1.0,t=1.0,sign=1.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<n;i++){sign=-sign;t=(t+3);s=s+1/t*sign;}printf("sum=%.3f\n",s);return 0;}#include <stdio.h>int main(){//2-3-6int low, uper;double fahr,celsius;printf("Enter low:");scanf_s("%d",&low);printf("Enter uper:");scanf_s("%d",&uper);printf("fahr celsius\n");for(fahr=low;fahr<=uper;fahr+=2){celsius=5.0/9.0*(fahr-32.0);printf("%3.0f %6.1f\n",fahr,celsius);}return 0;}#include <stdio.h>int main(){//2-3-7int m, n, i;double p,sum=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);p=1.0;for(i=1;i<=m;i++)p=p*i;sum=sum+p;p=1.0;for(i=1;i<=n;i++)p=p*i;sum=sum+p;printf("sum=%.0f\n",sum);return 0;}#include <stdio.h>int main(){//2-3-8int x, n,i;double p=1.0;printf("Enter x:");scanf("%d",&x);printf("Enter n:");scanf("%d",&n);for(i=1;i<=n;i++)p=p*x;printf("%d的%d次方是%.0f\n",x, n,p);return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-1int n,i;printf("Enter n:");scanf("%d",&n);for(i=0;i<=n;i++)printf("pow(3,%d)=%.0f\n",i,pow(3.0,i));return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-4double sum=0.0,i;for(i=100;i<=1000;i++){sum+=sqrt(i);}printf("sum=%.2f\n",sum);return 0;}实验3#include<stdio.h>#include<math.h>int main(){//3-1double a, b, c, d;printf("Enter a, b, c: ");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;if(a==0)if(b==0)if(c==0)printf("系数均为,方程无意义!\n");elseprintf("a、b为,c不为,方程不成立!\n");elseprintf("x=%.2f\n",c/b);elseif(d>=0){printf("x1=%.2f\n",(-b+sqrt(d))/(2*a));printf("x1=%.2f\n",(-b-sqrt(d))/(2*a));}else{printf("x1=%.2f+%.2fi\n",-b/(2*a),sqrt(-d)/(2*a));printf("x1=%.2f-%.2fi\n",-b/(2*a),sqrt(-d)/(2*a));}return 0;}#include<stdio.h>int main(){//3-2int x,y;printf("Enter x: ");scanf("%d",&x);if(x<0)y=-1;else if(x==0)y=0;elsey=1;printf("sign(%d)=%d\n",x,y);return 0;}#include<stdio.h>int main(){//3-3int letter=0,blank=0,digit=0,other=0,i;char ch;printf("Input 10 characters: ");for(i=0;i<10;i++){ch=getchar();if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')letter++;else if(ch==' '||ch=='\n')blank++;else if(ch<='9'&&ch>='0')digit++;elseother++;}printf("letter=%d, blank=%d, digit=%d,other=%d\n",letter,blank,digit,other);return 0;}#include<stdio.h>int main(){//3-4char grade;printf("Input Grade: ");grade=getchar();switch(grade){case 'A':;case 'a':printf("%c对应的百分制成绩区间是~100\n",grade);break;case 'B':;case 'b':printf("%c对应的百分制成绩区间是~90\n",grade);break;case 'C':;case 'c':printf("%c对应的百分制成绩区间是~79\n",grade);break;case 'D':;case 'd':printf("%c对应的百分制成绩区间是~69\n",grade);break;case 'E':;case 'e':printf("%c对应的百分制成绩区间是~59\n",grade);break;default:printf("数据输入错误\n");}return 0;}#include<stdio.h>int main(){//3-5int choice,count;for(count=0;count<5;count++){printf("[1]apple\n");printf("[2]pear\n");printf("[3]orange\n");printf("[4]grape\n");printf("[0]exit\n");printf("Enter your choice:");scanf("%d",&choice);switch(choice){case 0: return 0;case 1:printf("price is %.2f\n",3.0);break;case 2:printf("price is %.2f\n",2.5);break;case 3:printf("price is %.2f\n",4.1);break;case 4:printf("price is %.2f\n",10.2);break;default:printf("price is %.2f\n",0.0);}}return 0;}#include<stdio.h>int main(){//3-6int i;double grade;for(i=0;i<5;i++){printf("Enter grade: ");scanf("%lf",&grade);if(grade<60.0)printf("Fail\n");elseprintf("Pass\n");}return 0;}#include<stdio.h>#include<math.h>int main(){//3-7double a,b,c,s;printf("Enter 3 sides of the triangle: ");scanf("%lf %lf %lf",&a,&b, &c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2;printf("area=%.2f; perimeter=%.2f\n",sqrt(s*(s-a)*(s-b)*(s-c)),a+b+c);}elseprintf("These sides do not correspond to a valid triangle\n");return 0;}#include<stdio.h>int main(){//3-8double salary,rate;printf("Enter the salary: ");scanf("%lf",&salary);if(salary<=850)rate=0.0;else if(salary<=1350.0)rate=0.05;else if(salary<=2850.0)rate=0.1;else if(salary<=5850.0)rate=0.15;elserate=0.2;printf("tax=%.2f\n",rate*(salary-850));return 0;}#include<stdio.h>int main(){//3-9int i,n,grade,a=0,b=0,c=0,d=0,e=0;printf("Enter n: ");scanf("%d",&n);for(i=0;i<n;i++){printf("Enter grade %d: ",i+1);scanf("%d",&grade);switch(grade/10){case 9:case 10:a++;break;case 8:b++;break;case 7:c++;break;case 6:d++;break;case 5:case 4:case 3:case 2:case 1:case 0:e++;break;}}printf("The number of A(90~100):%d\n",a);printf("The number of B(80~89):%d\n",b);printf("The number of C(70~79):%d\n",c);printf("The number of D(60~69):%d\n",d);printf("The number of E(0~59):%d\n",e);return 0;}#include<stdio.h>int main(){//3-10char sign;int x,y;printf("输入x运算符y:");scanf("%d%c%d",&x,&sign, &y);if(sign=='*')printf("%d * %d = %d\n",x,y,x*y);else if(sign=='/')printf("%d / %d = %d\n",x,y,x/y);else if(sign=='%')printf("%d Mod %d = %d\n",x,y,x%y);elseprintf("运算符输入错误!\n");return 0;}实验4#include<stdio.h>#include<cmath>int main(){//4-1-2int flag,denominator;double s,eps,item;printf("Input eps:");scanf("%lf",&eps);s=0.0;flag=1;denominator=1;item=1.0;while(fabs(item)>eps){item=flag*1.0/denominator;s=s+item;flag=-flag;denominator=denominator+3;}printf("s=%.6f\n",s);return 0;}#include<stdio.h>int main(){//4-1-3int x,sum;sum=0;printf("Input integers:");scanf("%d",&x);while(x>0){if(x%2!=0)sum=sum+x;scanf("%d",&x);}printf("The sum of the odd numbers is %d\n",sum);return 0;}#include<stdio.h>int main(){//4-1-4int num,count;printf("Input an integer:");scanf("%d",&num);count=0;do{num=num/10;count++;}while(num!=0);printf("count=%d\n",count);return 0;}#include<stdio.h>int main(){//4-1-5int n,x,min,i;printf("Input n:");scanf("%d",&n);printf("Input numbers:");scanf("%d",&x);min=x;for(i=1;i<n;i++){scanf("%d",&x);if(x<min)min=x;}printf("min=%d\n",min);return 0;}int main(){//4-1-6int n,s=0,c=0;printf("Input an integer:");scanf("%d",&n);do{s+=n%10;n/=10;c++;}while(n);printf("count=%d, sum=%d\n",c,s);return 0;}#include<stdio.h>int main(){//4-1-7double a,b,c,s=0.0;int i,n;printf("Input n:");scanf("%d",&n);for(a=1.0,b=1.0,i=0;i<n;i++,c=a+b,a=b,b=c) s+=(1.0+a/b);printf("s=%.2f\n",s);return 0;}#include<stdio.h>int main(){//4-1-8int a,n,i,s=0,t=0;printf("Input a, n:");scanf("%d%d",&a,&n);for(i=0;i<n;i++){t=10*t+a;s+=t;}printf("s=%d\n",s);return 0;}#include<stdio.h>int main(){//4-1-9int n,i;double h,sum=0.0;printf("Input height: ");scanf("%lf",&h);printf("Input n: ");scanf("%d",&n);sum+=h;for(i=1;i<=n;i++){sum+=h;h/=2.0;}printf("distance=%.1f\n",sum);printf("height=%.1f\n",h);return 0;}#include<stdio.h>#include<math.h>int main(){//4-2-2int m,n,i,j,st,c=0;printf("Input m: ");scanf("%d",&m);if(m==1)m++;printf("Input n: ");scanf("%d",&n);for(i=m;i<=n;i++){st=sqrt((double)i);for(j=2;j<=st;j++)if(!(i%j))break;if(j>st){printf("%d ",i);c++;if(!(c%6))printf("\n");}}return 0;}#include<stdio.h>int main(){//4-2-3int money,f1,f2,f5,count=0;printf("Input money: ");scanf("%d",&money);for(f1=1;f1<=money-7;f1++)for(f2=1;f2<=money-6;f2++)for(f5=1;f5<=money-3;f5++)if(f1+2*f2+5*f5==money)count++;printf("count=%d\n",count);for(f1=1;f1<=money-7;f1++)for(f2=1;f2<=money-6;f2++)for(f5=1;f5<=money-3;f5++)if(f1+2*f2+5*f5==money)printf("fen5: %d fen2: %d fen1: %d\n",f5,f2,f1);return 0;}#include<stdio.h>int main(){//4-2-4int m,n,k,a,b,c,tmp;printf("Input m: ");scanf("%d",&m);printf("Input n: ");scanf("%d",&n);for(k=m;k<=n;k++){tmp=k;a=tmp%10;tmp/=10;b=tmp%10;tmp/=10;c=tmp;if(a*a*a+b*b*b+c*c*c==k)printf("%d\t(%d*%d*%d+%d*%d*%d+%d*%d*%d=%d)\n",k,c,c,c,b,b,b,a,a,a,k);}return 0;}#include<stdio.h>int main(){//4-2-5int i,j,s;for(i=1;i<=200;i++){s=1;for(j=2;j<=i/2;j++)if(i%j==0)s=s+j;if(s==i){printf("%d=1",i);for(j=2;j<=i/2;j++)if(i%j==0)printf("+%d",j);printf("\n");}}return 0;}#include<stdio.h>//5-2int sign(int x){if(x>0)return 1;if(x==0)return 0;return -1;}int main(){int x;printf("Enter x:");scanf("%d",&x);printf("sign(%d)=%d\n",x,sign(x));return 0;}#include<stdio.h>//5-3int even(int x){return (x%2==0);}int main(){int x,s=0;printf("Input integers: ");scanf("%d",&x);while(x>0){if(!even(x))s+=x;scanf("%d",&x);}printf("The sum of the odd is %d\n",s);return 0;}#include<stdio.h>//5-4#include<math.h>double distance(double x1,double y1, double x2, double y2){ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}int main(){double x1, y1, x2, y2;printf("Input (x1, y1):");scanf("%lf%lf",&x1,&y1);printf("Input (x2, y2):");scanf("%lf%lf",&x2,&y2);printf("distance=%.2f\n",distance(x1,y1,x2, y2));return 0;}#include<stdio.h>//5-5#include<math.h>int prime(int m){int k,sqrtm=sqrt((double)m);for(k=2;k<=sqrtm;k++)if(m%k==0)return 0;return 1;}int main(){int m,n,c=0,s=0,k;printf("Input m:");scanf("%d",&m);printf("Input n:");scanf("%d",&n);for(k=(m==1?2:m);k<=n;k++)if(prime(k)){c++;s+=k;}printf("count=%d, sum=%d\n",c,s);return 0;}#include<stdio.h>//5-6int countdigit(int number, int digit){int c=0;if(number<0)number=-number;do{if(number%10==digit)c++;number/=10;}while(number);return c;}int main(){int n;printf("Enter an integer:");scanf("%d",&n);printf("Number of digit 2: %d\n",countdigit(n,2));return 0;}#include<stdio.h>//5-7int is(int n){int s=0,x,m=n;do{x=m%10;s+=x*x*x;m/=10;}while(m);if(s==n)return 1;return 0;}int main(){int m,n,i;printf("Input m:");scanf("%d",&m);printf("Input n:");scanf("%d",&n);for(i=m;i<=n;i++)if(is(i))printf("%d\n",i);return 0;}#include<stdio.h>//5-8double fact(int n);int main(void){int i;double sum=0.0;/*需要初始化为*/for(i=1;i<=10;i++)/*上界是*/sum=sum+fact(i);printf("1!+2!+...+10!=%f\n",sum);return 0;}double fact(int n){int i;double result=1.0;for(i=1;i<=n;i++)result=result*i;/*result中累积n!*/ return result;}实验7#include<stdio.h>int main(){//7-2-4int a[6][6],n,i,j,flag=1;printf("Input n:");scanf("%d",&n);printf("Input array:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(j=0;j<n-1;j++){for(i=j+1;i<n;i++)if(a[i][j]){flag=0;break;}if(flag==0)break;}if(flag==0)printf("No\n");elseprintf("Yes\n");return 0;}#include<stdio.h>int main(){//7-2-6int a[6][6],n,i,j,row,col;printf("Input n:");scanf("%d",&n);printf("Input array:\n");for(i=0;i<n;i++)/*输入矩阵*/for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++){/*对矩阵的每一行*/row=i;col=0;for(j=0;j<n;j++)/*找当前行的最大值元素a[row][col]*/if(a[i][j]>a[row][col]){col=j;}for(j=0;j<n;j++)/*检测a[row][col]是否为第col列的最小元素*/ if(a[j][col]<a[row][col])break;if(j>=n){//找到鞍点元素a[row][col]printf("a[%d][%d]=%d\n",row,col,a[row][col]);break;}}if(i>=n)/*所有行都检测过没有找到鞍点*/printf("NO\n");return 0;}#include<stdio.h>int main(){//7-3-2char c,s[80];int i,index=-1;printf("Input a character:");c=getchar();getchar();printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]==c)index=i;i++;}if(index>-1)printf("index=%d\n",index);elseprintf("Not found\n");return 0;}#include<stdio.h>int main(){//7-3-3char s[80];int i,upcase=0,count=0;printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]>='A'&&s[i]<='Z'){upcase++;switch(s[i]){case 'A':case 'E':case 'I':case 'O':case 'U':count++;}}i++;}if(upcase)count=upcase-count;printf("count=%d\n",count);return 0;}#include<stdio.h>int main(){//7-3-4char s[80];int i;printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]>='A'&&s[i]<='Z')s[i]='Z'-(s[i]-'A');i++;}printf("After replaced: %s\n",s);return 0;}#include<stdio.h>int main(){//7-3-5char s[80];int i,n=0;printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]>='0'&&s[i]<='9'){n=n*16+s[i]-'0';i++;continue;}switch(s[i]){case 'a':case 'A':n=n*16+10;break;case 'b':case 'B':n=n*16+11;break;case 'c':case 'C':n=n*16+12;break;case 'd':case 'D':n=n*16+13;break;case 'e':case 'E':n=n*16+14;break;case 'f':case 'F':n=n*16+15;break;}i++;}printf("Hex=%d\n",n);return 0;}实验8#include<stdio.h>//8-1-1void move(int *, int, int);int main(){int m, n, i, a[80], *p;printf("Input n, m:");scanf("%d%d",&n, &m);for(p=a,i=0;i<n;i++)scanf("%d",p+i);/*将&p++换成p+i*/ move(a,n,m);printf("After moved:");for(i=0;i<n;i++)printf("%5d",a[i]);return 0;}void move(int *x,int n, int m){int i,j,k;for(i=0;i<m;i++){k=x[n-1];/*暂存x[n-1],因为它将被覆盖*/for(j=n-1;j>0;j--)x[j]=x[j-1];/*设置断点*/x[0]=k;}}#include<stdio.h>//8-1-2#include<stdlib.h>int search(int *, int, int);int main(){int *a,n,i,x,index;printf("Input n:");scanf("%d",&n);if((a=(int*)malloc(n*sizeof(int)))!=NULL) exit(1);printf("Input %d integers:",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Input x:");scanf("%d",&x);index=search(a,n,x);if(index==-1)printf("Not found\n");elseprintf("index=%d\n",index+1);free(a);return 0;}int search(int *a,int n,int x){int i;for(i=0;i<n;i++)if(a[i]==x)return i;return -1;}#include<stdio.h>//8-1-3#include<stdlib.h>void sort(int*,int);int main(){int i,n,*a;printf("Input n:");scanf("%d",&n);if((a=(int*)malloc(n*sizeof(int)))!=NULL) exit(1);printf("Input %d integers:",n);for(i=0;i<n;i++)scanf("%d",a+i);sort(a,n);printf("After sorted the array is:");for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");return 0;}int max(int *a,int n){int i,index=0;for(i=1;i<n;i++)if(a[i]>a[index])index=i;return index;}void swap(int *x,int *y){int t=*x;*x=*y;*y=t;}void sort(int *a,int n){int i,j;for(i=n;i>0;i--){j=max(a,i);swap(a+i-1,a+j);}}#include<stdio.h>//8-1-4#include<stdlib.h>int main(){int n,i,total,token,*a;printf("Input n:");scanf("%d",&n);if((a=(int*)malloc(n*sizeof(int)))==NULL) exit(1);for(i=0;i<n;i++)a[i]=i+1;total=n;i=0;while(total>1){token=0;/*报数的当前值*/while(token<3){/*未出队的依次报数*/if(a[i]!=0)token++;if(token<3)/*未满m继续报数*/i=(i+1)%n;}a[i]=0;/*报到的出队*/i=(i+1)%n;total--;/*队中人数减*/}for(i=0;i<n;i++)if(a[i]!=0)break;printf("Last No. is: %d\n",a[i]);free(a);return 0;}#include<stdio.h>//8-2-2#include<string.h>int main(){char s[80],m[80];int length,max=0,i;printf("Input 5 strings: ");for(i=0;i<5;i++){scanf("%s",s);length=strlen(s);if(length>max){max=length;strcpy(m,s);}}printf("The longest is: %s\n",m);return 0;}#include<stdio.h>//8-2-3#include<string.h>void delchar(char *s,char c){int i=0;while(*s!='\0'){if(*s==c)/*遇到字符c*/strcpy(s,s+1);/*将该字符后的部分拷贝成从当前位置开始的串*/ s++;}}int main(){char s[80],c;printf("Input a string: ");gets(s);printf("Input a char: ");scanf("%c",&c);delchar(s,c);printf("After deleted, the string is: %s\n",s);return 0;}#include<stdio.h>//8-2-4#include<string.h>void strmcpy(char *s, char *t, int m){strcpy(s,t+m-1);}int main(){char s[80],t[80];int m;。
第二次试验///第三次试验=====================程序============================#include<stdio.h>int main(){/*十进制*/printf("%d\n",3+4*6);printf("%d\n",3*4/6+6);printf("%d\n",2*3/12*8/4);printf("%d\n",10*(1+7*3));printf("%d\n", 20-2/6+3);printf("%d\n", 20-2/(6+3));printf("%d\n", (20-2)/6+3);printf("%d\n", (20-2)/(6+3));/*9-16显示为小数,保留小数2位,宽度为8*/printf("%8.2f\n",3.0+4.0*6.0);printf("%8.2f\n",3.0*4.0/6.0+6.0);printf("%8.2f\n",2.0*3.0/12.0*8.0/4.0);printf("%8.2f\n",10.0*(1.0+7.0*3.0));printf("%8.2f\n",20.0-2.0/6.0+3.0);printf("%8.2f\n",20.0-2.0/(6.0+3.0));printf("%8.2f\n",(20.0-2.0)/6.0+3.0);printf("%8.2f\n",(20.0-2.0)/(6.0+3.0));/*17-20显示为字符*/printf("%c\n", 'm' - 5);printf("%c\n", 'm' + 5);printf("%c\n", 'G' + 6);printf("%c\n", 'G' - 6);/*21-23显示为十进制整数*/printf("%d\n", 'b' - 'a');printf("%d\n", 'g' - 'a' + 1);printf("%d\n", 'g' - 'a' + 1);}=======================运行结果=====================================================================程序========================== #include<stdio.h>int main (){float Cel,Fah;printf("print a Fah number:");scanf("%f",&Fah);Cel=5.0/9.0*(Fah-32);printf("The Cel number is%f\n",Cel);printf("print a Cel number:");scanf("%f",&Cel);Fah=32+9.0*Cel/5.0;printf("The Fah number is:%f \n",Fah);return 0;}============================运行结果=========================************************************(1)程序**********************************#include<stdio.h>int main(){int num1,num2,num3,max,min;printf("please input three numbers:\n");scanf("%d %d %d",&num1,&num2,&num3);max=(num1>num2)?num1:num2;min=(num1<=num2)?num1:num2;max=(num3>max)?num3:max;min=(num3<min)?num3:min;printf("max = %d min = %d",max,min);return 0;}**************************************运行结果***********************************************************************(2)程序********************************* #include <stdio.h>int main(){int a;float profit,income;printf("Please input the profit:");scanf("%f",&profit);a=(profit-1)/100000;switch(a){case 0:income=profit/10;break;case 1:income=(profit-100000)*0.075+10000;break;case 2:case 3:income=(profit-200000)*0.05+10000+7500;break;case 4:case 5:income=(profit-400000)*0.03+10000+7500+10000;break;case 6:case 7:case 8:case 9:income=(profit-600000)*0.01+10000+7500+10000+6000;break;case 10:income=(profit-1000000)*0.01+10000+7500+10000+6000+6000;}printf("奖金数值为:%f\n",income);return 0;}************************************运行结果******************************************************************(3)程序**************************** /*百马百担问题*/#include <stdio.h>int main (){int A,B,C;printf("百马百担的解为:\n");printf("大中小 \n");for (A = 0; A <= 33; A++){for (B = 0; B <= 50; B++){C = 100 - A - B;if (3*A + 2*B + C/2.0 == 100)printf("%-2d %-2d %-2d \n",A,B,C);}}return 0;}********************************运行结果*************************************************************(4)程序****************************************************************(5)程序**********************************//关于菱形的第一种算法//#include <stdio.h>int main(){int i,j,k;printf("请输入最长行的数字,为奇数k:");scanf("%d",&k) ;for (i=1;i<=k;i++){for(j=1;j<=k;j++){if((j+i)>=(k+1)/2+1&&(i+j)<=(k+1)*3/2-1&&i-j<=(k+3)/2-2& &j-i<=(k+3)/2-2)printf(" *");elseprintf(" ");}printf("\n");}return 0;}//第二种算法///#include <stdio.h>int main(){int K,X,C,N;printf("num=");scanf("%d",&N);for(C=1;C<=(N+1)/2;C++){for(K=1;K<=(N+1)/2-C;K++)printf(" ");for(X=1;X<=2*C-1;X++)printf(" *");printf("\n");}for(C=(N+3)/2;C<=N;C++){for(K=1;K<=C-(N+1)/2;K++)printf(" ");for(X=1;X<=2*N+1-2*C;X++)printf(" *");printf("\n");}}************************运行结果***************************************第5/6次试验*********************************(1)程序*********************************** 第7次试验**********************************(1)程序********************************** #include <stdio.h>int main(){int i,j,n;printf("input a number");scanf("%d",&n);int a[n][n];printf("\n");for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for (i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}*********************************************运行结果*********************************************************************(2)程序**************************** 方法一:#include <stdio.h>int main (){int i;int fb[12]={1,1};for(i=2;i<12;i++){fb[i]=fb[i-1]+fb[i-2];printf("第%d个月共有兔子%d只\n",i+1,fb[i]*2);}return 0;}*****************************运行结果*********************************************************************************方法二:#include <stdio.h>int main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f1+f2;}return 0;}************************************运行结果******************************************************************(3)程序**************************************** #include<stdio.h>#define num 10int num1(int [],int);int num2(int [],int);int main(){void sort1 (int num1[],int n);void sort2 (int num2[],int n);int a[num], c[num],i,moves,j;printf("enter array here:\n");for(i=0;i<10;i++){j=i;scanf("%d",&a[i]);c[j]=a[i];}printf("the sorted array :\n");sort1(a,num);printf("the sorted array :\n");sort2(c,num);return 0;}void sort1(int num1[],int n){int i,j,temp,b;for(i=0;i<n-1;i++){for(j=1;j<n;j++){if(num1[j]<num1[j-1]){temp=num1[j];num1[j]=num1[j-1];num1[j-1]=temp;}}for(b=0;b<n;b++)printf("%5d",num1[b]);printf("\n");}}void sort2(int num2[],int n){int i,j,min,minidx,temp,b;for(i = 0;i<n-1;i++){min = num2[i];minidx = i;for(j = i+1;j<n;j++){if (num2[j]<min){min = num2[j];minidx = j;}} for(b=0;b<n;b++)printf("%5d",num2[b]);printf("\n");if (min < num2[i]){temp = num2[i];num2[i] = min ;num2[minidx] = temp;}}}******************************运行结果***********************************************************************(4)程序************************************* #include <stdio.h>#define N 10int brnarysearch(int [],int,int);int main(){int nums[N]={1,5,8,9,12,23,45,56,67,99};int item,location;printf("Enter the item you are searching for");scanf("%d",&item);location=brnarysearch(nums,N,item);if(location > -1)printf("The item was found at index location %d\n",location);elseprintf("The item was not found in the list\n");return 0;}#define Ture 1#define False 0int brnarysearch(int list[],int size,int key){int index,found,left,right,midpt;index=-1;found=False;left=0;right=size-1;while ( left <= right && !found){midpt = (int) ((left+right)/2);if (key== list[midpt]){found=Ture;index=midpt;}else if (key > list[midpt])left=midpt + 1;elseright= midpt - 1;}return (index);}**************************************运行结果*********************************第10次试验***********************************程序**************************************** #include<stdio.h>int main(){int a=0,i,k;int b[31];printf("请输入一个十进制数:\n");scanf("%d",&i);while(i!=0){k=i%2;b[a++]=k;i=i/2;}printf("转为二进制数为:\n");while(a>0){printf("%d",b[--a]);}printf("\n");return 0;}***********************************运行结果************************************第9次试验*****************************程序**********************************************#include <stdio.h>#include <stdlib.h>int main(){char name[5][30];int i;int grade[15],num[5];float ave[5];printf("请输入学号、3学科成绩, 姓名,:\n");for(i=0;i<5;i++){scanf("%d",&num[i]);scanf("%d%d%d",&grade[i*3],&grade[i*3+1],&grade[i*3+2]);ave[i]=(grade[i*3]+grade[i*3+1]+grade[i*3+2])/3.0;gets(name[i]);}for(i=0;i<5;i++)printf(" %d %-10s %d %d %d %5.2f\n",num[i],name[i],grade[i*3],grade[i*3+1],gr ade[i*3+2],ave[i]);FILE *outFile;outFile=fopen("C://stud.txt","w");fprintf(outFile," 学号姓名成绩1 成绩2 成绩3 平均成绩\n ");for(i=0;i<5;i++)fprintf(outFile," %d %-10s %5d %5d %5d %5.2f\n",num[i],name[i],grade[i* 3],grade[i*3+1],grade[i*3+2],ave[i]);fclose(outFile);return 0;}***********************************运行结果***********************************第10次试验1. 请使用数组元素存取方式,设计实现一个函数可以将任意字符数组元素存放位置逆转的程序。
实验1 求两个多项式的相加运算(线性表)编写一个程序用单链表存储多项式,并实现两个多项式相加的函数。
/*文件名:实验1.cpp*/#include <stdio.h>#include <malloc.h>#define MAX 20 /*多项式最多项数*/typedef struct /*定义存放多项式的数组类型*/{float coef; /*系数*/int exp; /*指数*/} PolyArray[MAX];typedef struct pnode /*定义单链表结点类型*/{float coef; /*系数*/int exp; /*指数*/struct pnode *next;} PolyNode;void DispPoly(PolyNode *L) /*输出多项式*/{PolyNode *p=L->next;while (p!=NULL){printf("%gX^%d ",p->coef,p->exp);p=p->next;}printf("\n");}void CreateListR(PolyNode *&L,PolyArray a,int n) /*尾插法建表*/{PolyNode *s,*r;int i;L=(PolyNode *)malloc(sizeof(PolyNode)); /*创建头结点*/L->next=NULL;r=L; /*r始终指向终端结点,开始时指向头结点*/ for (i=0;i<n;i++){s=(PolyNode *)malloc(sizeof(PolyNode));/*创建新结点*/s->coef=a[i].coef;s->exp=a[i].exp;r->next=s; /*将*s插入*r之后*/r=s;}r->next=NULL; /*终端结点next域置为NULL*/}void Sort(PolyNode *&head) /*按exp域递减排序*/{PolyNode *p=head->next,*q,*r;if (p!=NULL) /*若原单链表中有一个或以上的数据结点*/ {r=p->next; /*r保存*p结点后继结点的指针*/p->next=NULL; /*构造只含一个数据结点的有序表*/p=r;while (p!=NULL){r=p->next; /*r保存*p结点后继结点的指针*/q=head;while (q->next!=NULL && q->next->exp>p->exp)q=q->next; /*在有序表中找插入*p的前驱结点*q*/ p->next=q->next; /*将*p插入到*q之后*/q->next=p;p=r;}}}void Add(PolyNode *ha,PolyNode *hb,PolyNode *&hc) /*求两有序集合的并*/ {PolyNode *pa=ha->next,*pb=hb->next,*s,*tc;float c;hc=(PolyNode *)malloc(sizeof(PolyNode)); /*创建头结点*/tc=hc;while (pa!=NULL && pb!=NULL){if (pa->exp>pb->exp){s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}else if (pa->exp<pb->exp){s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pb->exp;s->coef=pb->coef;tc->next=s;tc=s;pb=pb->next;}else /*pa->exp=pb->exp*/{c=pa->coef+pb->coef;if (c!=0) /*系数之和不为0时创建新结点*/{s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pa->exp;s->coef=c;tc->next=s;tc=s;}pa=pa->next;pb=pb->next;}}if (pb!=NULL) pa=pb; /*复制余下的结点*/while (pa!=NULL){s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}tc->next=NULL;}void main(){PolyNode *ha,*hb,*hc;PolyArray a={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};PolyArray b={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};CreateListR(ha,a,4);CreateListR(hb,b,5);printf("原多项式A: ");DispPoly(ha);printf("原多项式B: ");DispPoly(hb);Sort(ha);Sort(hb);printf("有序多项式A: ");DispPoly(ha);printf("有序多项式B: ");DispPoly(hb);Add(ha,hb,hc);printf("多项式相加: ");DispPoly(hc);}实验2 求解迷宫问题的所有路径 及最短路径程序(堆栈) 改进教材中3.2.4节中的求解迷宫问题程序,要求输出如图所示的迷宫的所有路径,并求出最短路径成都及最短路径。
《C语言程序设计》实验源程序代码目录实验二顺序结构程序设计(上) (2)实验三顺序结构程序设计(下) (2)实验四选择结构程序设计(上) (4)实验五选择结构程序设计(下) (4)实验六循环结构程序设计(上) (5)实验七循环结构程序设计(下) (6)实验八函数 (8)实验九数组(上) (9)实验十数组(下) (11)实验十一指针的应用 (12)实验十二结构体 (14)实验十三文件操作 (17)实验二顺序结构程序设计(上)//1-1void main(){ int a=1;printf("1:%d\n", sizeof(a));printf("2:%d\n", sizeof(float));printf("3:%d\n", sizeof(2.0*10));printf("4: %d\n", sizeof("Liu Dehua"));}//1-2-------------------------------------------------------- #include <stdio.h>void main(){ int a1=65,a2,a3;char ch='A'+1;printf("1:\101 \x42 C\n");printf("2:I say:\"How are you?\"\n");printf("3:\t\\\\Display Hello! I am Tom\b!\n");printf("4:65/10=%d,65%%10=%d\n",65/10, 65%10);printf("5:a1=%d,a1=\'%c\'\n",a1,a1);printf("6:ch=%c,ch=%d\n",ch,ch);a2=2,a3=(a1=3,a2+=a1,a1*a2);printf("7:a1=%d,a2=%d,a3=%d\n",a1,a2,a3);a3=a2=a1=2;printf("8:%d,%d,%d\n",(a1,a2+1),a3+2,a1+a2+a3);}//2------------------------------------------------------------#include <stdio.h>void main(){ float c,f;printf("请输入一个华氏温度:\n");scanf("%f",f);c==(5/9)*(f-32);printf("摄氏温度为:%5.2f\n"c);}实验三顺序结构程序设计(下)//1-1#include "stdio.h"void main(){ char ch=65;int a=1234;long g=12345678;float f=123.456789f;double d=9.876543E2;printf("1:%d,%c,%5d,%3c\n",ch,ch,ch,ch);printf("2:%8d,%-8d,%o,%x\n",a,a,a,a);printf("3:%10.3f,%f,%e\n",f,f,f);printf("4:%-10.2lf,%lf,%le\n",d,d,d);printf("5:%10s,%10.3s\n","Hello,world!","Hello,world!");}//1-2#include <stdio.h>main(){ int a,b,c;a=getchar();b=getchar();c=getchar();printf("a=%d b=%d c=%d\n",a,b,c);printf("a=%c b=%c c=%c\n",a,b,c);}//1-3---------------------------------------------------------------------------------------#include "stdio.h"void main(){int a=10,b;int *p; // p为指向整型变量的指针变量 printf("1:a的值=%d, a的内存地址值=%d\n",a, &a); //&a:获取变量a的内存地址值p=&a; //将变量a的内存地址值赋给指针变量p printf("2:p的值=%d, p的内存地址值=%d,p所指向的内存单元的值=%d\n",p,&p,*p);scanf("%d,%d" ,p,&b); //运行时输入100,200【enter】printf("3:a的值=%d,b的值=%d,p所指向的内存单元的值=%d\n",a,b,*p);}//3-3-----------------------------------------------------------#include <stdio.h>#include <math.h> //包含数学函数库void main(){ double a,b,c,p,s;printf("输入三角形三边a,b,c: ");scanf("%lf,%lf,%lf",&a,&b,&c);if(a+b>c && b+c>a && a+c>b) //判断该三边的值是否能构成一个三角形{ p= ;s=sqrt( ); //sqrt():求平方根函数printf("三角形面积=%lf\n",s);}elseprintf("三边(a=%lf,b=%lf,c=%lf)不能构成三角形! ",a,b,c);}实验四选择结构程序设计(上)//2#include <stdio.h>void main(){ char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='A')||(ch<='Z')&& (ch>='a')||(ch<='z'))c1=ch-1;c2=ch+1;if(ch='A'&&ch=’a’) c1=ch+25;else if(ch='Z'&&ch=’z’) c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}实验五选择结构程序设计(下)//1#include "stdio.h"void main(){ char m;printf(“input the month number:\n”);scanf (“%c”,&m);switch (m){case 1 : printf ("Jan");case 2 : printf ("Feb");case 3 : printf ("Mar");case 4 : printf ("Apr");else : printf ("error");}}//2----------------------------------------------------------------------- #include <stdio.h>void main(){ int a,b,d;char ch;printf("Please input a expression:");scanf("%d%c%d", );switch(ch){ case '+': printf("%d+%d=%d\n",a,b,a+b);break;case '-': printf("%d-%d=%d\n",a,b,a-b);break;case '*': printf("%d*%d=%d\n",a,b,a*b);break;case '/': if( )printf("Divisor is zero\n");elseprintf("%d/%d=%lf\n",a,b, a/b); /*强制类型转换*/;default: printf("Input Operator error!\n");}}实验六循环结构程序设计(上)//1-1#include <stdio.h>void main(){ int i=1,sum=0;while(i<100)sum=sum+i;i++;printf("Sum = %d\n",sum);}//1-2--------------------------------------------------------------------------------#include <stdio.h>void main(){ char x;x='Z';while(x!='A'){ printf("%3d",x);if(('Z'-x)%5= =0) printf("\n");x++;}}//2-1-----------------------------------------------------------------#include<stdio.h>void main(){ int n = 21,i;while ( ){ printf( "You take ... ");scanf("%d",&i);if ( )printf( "Don't try to cheat me, take 1, 2, 3, or 4, please! \n");else{ printf( "I take %d\n", 5-i);n = ; //剩下的火柴棍根数}}printf( " Now take the last one, please! \n Haha^-^, you loss!) \n "); }//2-2-------------------------------------------------------------------- #include <stdio.h>void main(){ int day,x1,x2;day=0;x1=1020;while( ){ x2= ;x1=x2;day++;}printf("day=%d\n",day);}//2-3---------------------------------------------------------------------- #include<stdio.h>void main(){ long x,m,y=0;int gw,count=0;printf("input x=");scanf("%ld",&x);;do{ gw=m%10;y= ;;count++;}while( );printf("x=%ld, count=%d, recycle=%ld\n",x,count,y);}}实验七循环结构程序设计(下)//1-1#include<stdio.h>void main(){ long sum(int);long s=0;int k;for(k=1;k<20;k+=2)s=s+sum(k);printf("s=%ld\n",s);}long sum(int x) //求1+2+...+x{ long result=0;int i;for(i=1;i<=x;i++)result+=i;return result;}//1-2------------------------------------------------------------------------#include<stdio.h>void main(){long s=0,result=0;int k,i;for(k=1;k<20;k+=2){for(i=1;i<=k;i++)result+=i;s=s+result;}printf("s=%ld\n",s);}//2-1--------------------------------------------------------------------------#include<stdio.h>void main(){ float score,sum=0,average;int persons=0;while(1){ scanf("%f",&score);if(score<0)continue;else if(score>100)break;else{ sum+=score;persons++;}}average=(float)(sum/persons);printf("人数=%d,平均分=%f\n",persons,average);}//2-2------------------------------------------------------#include <stdio.h>void main(){ int i,j;for (i=0;i<4;i++){ for (j=0;j<=20;j++)printf("\n");for (j=0;j<2*i+1;j++)printf("*");}}//2-3-----------------------------------------------------------#include "stdio.h"void main(){ int a,k,s=0;for (k=2; k<1000; k++){for (a=1; a<=k/2; a++)if(k%a==0) s+=a;if (s==k) //k是完数printf("%d is OK!\n",k);}}实验八函数//1-1#include "math.h"#include "stdio.h"void main(){ float a,b,c;printf("请输入三角形的边长值:\n");scanf("%f%f%f",a,b,c);if(a+b>c&&a+c>b&&b+c>a)printf("Area=%f\n",area(a,b,c));}area(float a,float b,float c){ float s,area_s;s=(a+b+c)/2.0;area_s=sqrt(s*(s-a)*(s-b)*(s-c));return(area_s);}//1-2--------------------------------------------------------------------------#include<stdio.h>int fun(int n){ int jc=1,i;for(i=2;i<=n;i++) jc*=n;return jc;}void main(){ int n;long sum=0;for(n=1;n<11;n++);if(n%3==0||n%5==0)sum+=fun(int n);printf("sum=%ld\n",sum);}//1-3---------------------------------------------------#include<stdio.h>swap(int *p1,int *p2){ int *p;p=p1;p1=p2;p2=p;}void main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d\tb=%d\n",a,b);swap(&a,&b);printf("a=%d\tb=%d\n",a,b);}//2-1-----------------------------------------------------------------#include<stdio.h>void printline(int n) //{ int i,k;for(i=1;i<=30-n;i++) printf("%c",' ');for(i=1;i<= ;i++) printf( );printf("\n");}void main(){ int i;for(i=1;i<=5;i++) ;for(i=4;i>=1;i--) ;}//2-2-------------------------------------------------------------------------------------------------------#include " stdio.h "int isprime(int m) //判别m是否为质数{ int i ;for(i=2;m%i!=0;i++); //注意:循环体是空语句return ( );}void main(){ int n,x,a,b;scanf("%d",&x);for(n=6;n<=x ;n+=2)for(a=3;a<=n/2;a+=2)if( ) //若a是素数{ b=n-a;if( ) //若b是素数{ printf(“%d=%d+%d”,n,a,b);; //退出a循环,判别下一个n的组合}}}实验九数组(上)//1-1#include<stdio.h>#define N 9;void main(){ int i,sum=0,a[N],max,min;for(i=0;i<N;i++)scanf("%d",a[i]);sum=max=min=a[0];for(i=0;i<N;i++){ sum+=a[i];if(a[i]>max)max=a[i];else if(a[i]<min)min=a[i];}for(i=0;i<N;i++){ printf("%8d",a[i]);if(i%3==2) printf("\n");}printf("max=%d min=%d average=%lf\n",max,min,sum*1.0/N);}//1-2--------------------------------------------------------------------------------------#include <stdio.h>void main(void){ const int n=3;int i,j,sum;int a[][n]={1,2,3,4,5,6,7,8,9};for(i=0;i<=n;i++)for(j=0;j<=n;j++)if(i==j||i+j==n)sum+=a[i][j];printf("sum=%d\n",sum);}//2-1--------------------------------------------------------------#include <stdio.h>#include <math.h>int Is_sushu(int x){ int i,re;re=x>1?1:0;for(i=2;i<=sqrt(x);i++)if( ){ re=0; break;}return(re);}void main(void){ const int n=10;int ss[n],hs[n],k,m,p1,p2;p1=p2=-1;for(k=1;k<=n;k++){ printf("NO %d:",k);scanf("%d",&m);if( ) //若m为素数{ p1++;ss[p1]=m;}else{ ;hs[p2]=m;}}for(k=0;k<=p1;k++) //输出素数数列printf("%4d ",ss[k]);printf(" count=%d\n",p1);for(k=0;k<=p2;k++) //输出合数数列printf("%4d ",hs[k]);printf("count=%d\n", );}//2-2-------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main( ){ int a[10],i,j,t;for(i=0;i<10;i++){ a[i]= ; //生成随机整数printf("%d ",a[i]);}for(i=0;i<9;i++)for(j=0;j< ; j++)if(a[j]>a[j+1]){ t=a[j];a[j]=a[j+1]; ;}printf("\nthe sorted numbers: \n");for(i=0;i<10;i++)printf("%5d ",a[i]);}实验十数组(下)//1-1#include<stdio.h>void main( ){char a[]="wel",b[]="come";int i,n=0;while(!a[n]) n++;for(i=0;b[i]!='\0';i++)a[n+i]=b[i];printf("%s\n",a);}//1-2---------------------------------------------------------------#include<stdio.h>#define N 6int sum(int x,int n){ int i=0,s=0;while(i<=n)if(x[i]>0){s=s+x[i]; i++;}return s;}void main(){ int i=0,s,a[N];do{ printf("NO%d: ",i+1);scanf("%d",&a[i]);if((-100<=a[i])&&(a[i]<=100))i++;elseprintf("wrong! input again...\n");}while(i<N);s=sum(a[N],N);printf(" sum=%d\n",s);}//2-1------------------------------------------------------------#include "stdio.h"main(){ c har str[40];int alphabet=0,digit=0,space=0,other=0,i=0;printf("请输入一串字符:\n");gets(str);while( ){ if(('A'<=str[i])&&(str[i]<='Z')||('a'<=str[i])&&(str[i]<='z')) ++alphabet;else if(str[i]==' ') ++space;else if((str[i]<='9')&&(str[i]>='0')) ++digit;else ++other;i++;}printf("其中有%d个字母,%d个空格,%d个数字,%d个其他字符!\n",alphabet,space, digit,other);}//2-2-------------------------------------------------------------------------------------------------------#define N 50#define M 20#include <stdio.h>void main(){ char a[N][10]; //学号float score[N][M],max_score; //成绩int n,m,i,j,studid;/*输入学生的学号和各门课程的成绩*/printf("学生数n,课程数m:");scanf("%d,%d",&n,&m);for(i=1;i<=n;i++){ printf("输入第%d位学生的学号:",i);scanf("%s", );printf("按课程顺序输入成绩:");for(j=1;j<=m;j++)scanf("%f", );}/*找出每门课程最高的学生学号、课程代号和成绩并输出*/for(j=1;j<=m;j++){ studid=1;max_score=score[1][j];for(i=1;i<=n;i++)if(score[i][j]> max_score){ max_score=score[i][j];studid=i;}printf("第%d门课程最高分的学生学号是:%s,成绩为:%6.2f\n",j,a[studid],max_score);}}实验十一指针的应用//1-1#include <stdio.h>void main(){ int *p,i,a[5];p=a[1];printf("please enter 5 numbers:");for(i=0;i<5;i++)scanf("%d",p++);for(i=0;i<5;i++,p++)printf("%d ",*p);printf("\n");}//1-2-----------------------------------------------------------------------------------------#include<stdio.h>int digits(char *s){ int c=0;while(s){ if(*s >=0&&*s <=9)c++;s++;}return c;}void main(){ char s[80];printf("请输入一行字符\n");gets(s);printf("个数=%d\n",digits(s));}//2-1-------------------------------------------------------------#include<stdio.h>int findmax(int *s,int t ){ int i,k=0;for(i=0; ;i++)if( ) k=i;return ;}void main(){ int j,a[10]={12,23,34,45,56,67,78,89,11,22},k=0,*add;for(j=0;j<10;j++)printf("%4d%10xh\n",a[j],&a[j]);k=findmax(a,10);add=&a[k];printf("\n数组下标=%d,数组元素值=%d,元素地址=%xh\n",k,a[k], add);}//2-2------------------------------------------------------------------ #include <string.h>#include <stdio.h>#define N 81void fun(char *s){ int i=0,t,n= ;for(;s+i<s+n-1-i;i++){ t=*(s+i);*(s+i)= ;*(s+n-1-i)=t; }}void main(){ char a[N];gets(a);printf("The original string is:");puts(a);fun(a);printf("\nThe string after modified:"); puts(a);}//2-3-----------------------------------------------------------#include<stdio.h>#include "string.h"#define N 5void sort(char (*p)[20]) //利用行指针对N个字符串进行排序{ int i,j; char k[20];for (i=0; i<N-1; i++)for (j=i+1; j<N; j++)if (strcmp( ,*(p+j))>0) //*(p+i)表示第i个串{ strcpy(k,*(p+i));strcpy(*(p+i), );strcpy(*(p+j),k);}}void main(){ char ch[N][20]; int i,j;for (i=0; i<N; i++) gets(ch[i]); //输入N个串sort(ch); //利用行指针排序for(i=0; i<N; i++) puts(ch[i]); //输出}实验十二结构体//1-1#include<stdio.h>struct stud{ char name[20];int age;} ;fun(struct stud person[],int n){ int min,i;min=0;for(i=0;i<n;i++)if(person[i] <person[min] ) min=i;return (person );}void main(){ struct stud a[]={{"Zhao",21},{"Qian",20},{"Sun",19},{"LI",22}};int n=4;struct stud minpers;minpers=fun(a,n);printf("%s 是年龄小者,年龄是:%d\n",,minpers.age);}//2-1-----------------------------------------------------------#include<stdio.h>#include<string.h>struct bdata{ int id;char bname[20];float price;} ;int findbook(struct bdata st[],int n,char s[]){ int i;for(i=0;i<n;i++)if(________) return i;__________________;}void main(){ struct bdata book[100];char st[20];int index;printf("请输入要查找书名:";gets(st);index=findbook(_______________);if (index = = -1) printf("%s的书未找到\n",st);else printf("%s的书在%d位置\n",st,index);}//2-2------------------------------------------------------------------------------------------#include<stdio.h>#define M 3#define N 4struct stud{ int no;char name[16];float mark[M];float aver;};void input(struct stud st[]) //输入学生记录{ int i,j;float sum;for(i=0;i<N;i++){ printf("\n输入第%d个学生的学号,姓名:");scanf("%d,%s", );printf("\n输入第%d个学生的3门课程成绩:");for(j=0;j<M;j++)scanf("%f", );}}void output(struct stud st[]) //输出学生记录{ int i,j;printf("\n学号姓名课程1 课程2 课程3 平均分\n");for(i=0;i<N;i++){ printf("%5d %8s",st[i].no,st[i].name);for(j=0;j<M;j++)printf("%5.1f",st[i].mark[j]);printf("%5.2f",st[i].aver);}}void average(struct stud st[]) //求每个学生的平均成绩{ int i,j;float sum;for(i=0;i<N;i++){ sum= ;for(j=0;j<M;j++)sum= ;=sum/M;}}void main(){ struct stud preson[N];input( );average(preson);output(person);}//2-3---------------------------------------------------------------------------------------------------struct oneday{ int day,month,year; };void main(){ struct oneday day1;int alldays(struct oneday);printf("Enter year,month,day:");scanf("%d-%d-%d", );printf("%d\n",alldays(day1));}int runnian(int year){ if (year%400==0) return(1);if (year%4==0 && year%100!=0) return(1);return(0);}int alldays(struct oneday one){ int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int i,t=0;if (runnian(one.year)) day[2]=29;for (i=1; i< ;i++)t+=day[i];t=t+one.day;return(t);}实验十三文件操作//1-1#include <stdio.h>#include<string.h>void main(){ FILE *fp1;char ch[80];int i,j;fp1=fopen("C:\\data1.dat","b");for(i=1;i<=4;i++){ gets(ch);j=0;while(ch[j]!='\0'){ fputc(fp1, ch[j]); j++; }fputc(fp1,'\n');}fclose(fp1);}//1-2----------------------------------------------------------------------------------------#include <stdlib.h>#include <stdio.h>#include <time.h>void main ( ){ int x[10],i,k;FILE *fp2;srand( (unsigned)time( NULL ) );for (i=0;i<10;i++)x[i]=rand();fp2=fopen ("C:\\data2.dat","wb");if(fp2==NULL){ printf("Open error \n");exit(0);}for (int k=0 ; k<10 ; k++ )fwrite(x[k],sizeof(int), fp2);fclose (fp2) ;}//2-1----------------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main(){ FILE *fp;int i=0;char *str[]={"visual C++","visual Basic","visual java","visual foxpro"};if((fp=fopen("C:\\data3.txt", ))==NULL){ printf("%s不能打开!\n","data3.txt");exit(1);}while(i<4){fprintf( );;}fclose(fp);//2-2-------------------------------------------------------------------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main(){ char c;FILE *fp3; long num=0;if((fp3=fopen("c:\\ data3.txt", ))==NULL){ printf("Open error \n");exit(0); }c=fgetc(fp3);while ( ){;c=fgetc(fp3);}printf("\nnum=%ld\n", num);;}(注:可编辑下载,若有不当之处,请指正,谢谢!)。
4、编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
class Program{static void Main(string[] args){Console.WriteLine("请输入字符串");string str = Console.ReadLine();orderby.sort(str);}}class orderby{public static void sort(string str){if ((int)str[0] >= 48 && (int)str[0] <= 57){char[] num = str.ToCharArray();for (int i = 1; i < num.Length; i++){for (int j = 0; j < num.Length - i; j++){if (num[j] > num[j + 1]){char temp = num[j];num[j] = num[j + 1];num[j + 1] = temp;}}foreach (char a in str){ Console.Write(a); }}}else{for (int i = str.Length-1; i >=0; i--){Console.Write(str[i]);}}5、设计一个类,要求用事件每10秒报告机器的当前时间。
public class TimeMonitor{private bool Stop = false;private System.Threading.Thread MonitorThread = null;public void StartMonitor(){MonitorThread = new Thread(new ThreadStart(Monitor));MonitorThread.Start();}public void Monitor(){while(!Stop){System.Windows.Forms.MessageBox.Show(System.DateTime.Now.ToString()); System.Threading.Sleep(10000);}}public void StopMonitor();{Stop = true;MonitorThread.Abort();}}6、编写一个类,要求带有一个索引器可以存储100个整型变量。
C语言实验报告源代码1.问题描述:计算三个整数12*34*56的积,得出正确的结果,并能通过此实验熟悉vc6.0的操作环境;源程序及注释:# include <stdio.h>void main() /*求三个数的积*/{ int a,b,c,sum; /*这是声明部分,定义a,b,c,sum为整型*/ / a=12; /*以下5行为C语句*/b=34;c=56;sum=a*b*c;printf("%d\n",sum);}2.。
问题描述:熟悉并理解基本数据类型,了解整数变量的数据范围,主要是基本整型变量,短整型以及长整型。
源程序及注释:#include <stdio.h>void main(){ int a; long b; short c;a=2147483647; a=a+1;printf("a=%d\n",a);b=2147483647; b=b+1;printf("b=%d\n",b);c=32767; c=c+1;printf("c=%d\n",c);}3.问题描述:了解并学会C语言的基本输入输出用法,熟悉运用printf函数和scanf函数,能用C语言语句解决简单的实际问题;源程序及注释:#include <stdio.h>void main(){float c,F ;printf("please input a Fahrenheit");scanf ("%f",&f);c=(5.0/9)*(F-32);printf("the Centigrade is %.2f\n",c);}4.问题描述:熟悉并理解C语言的选择结构,了解选择结构的程序设计方法,掌握选择结构中条件表达式和逻辑表达式的用法,掌握if语句的规则。
NO. 1在屏幕打印菱形 #include<stdio.h> int main ()printf (〃* printf (“ printf (“ printf C printf (〃 systcm("pause"); return 0;NO. 2在屏幕输出两个整数的和 #include<stdio.h> intmain(){int a = 1, b = 2;printf Ca + b = %d\n 〃, a + b);system("pause");return 0;No. 1 教材 P ・ 23-1.4 #include<stdio.h> int main(){int a, b, c; scanf (〃%d%d%d 〃,&a, &b, &c);输入三个整数printf ("a + b + c 二 %d\n 〃,a + b + c);system("pause");return 0;}NO. 2 教材 P. 23-1.5 //从程序//打印三个整数的和*\n 〃)#include<stdio.h> #includeCniath. h> 调用数学库函数// int main(){int a,b; //定义两个变量a, bscanf ("%d%d", &a, &b) ; //从程序输入两个整数printf (z,a + | b| = %d\n〃, a + abs (b)) ; // 打印a+|b| 的和system("pause");return 0;}程序设计基础第三次实验3-1输入一个小写字母,将其以大写的形式输出#include<stdio.h>int meiin(){char letter;printf (,z请输入一个小写字母:〃);scanf(〃%c〃,&letter);if (letter〉二'a' && letter"'z')printf (z,该小写字母的大写字母为:%c\n", letter-32);elseprintf C没有输入正确的小写字母\n/z);system("pause");return 0;}3-2计算圆的面积并输出它的值#include<stdio. h>^define PT 3. 142int main()float r, area;printfC请输入圆的半径:〃); scanf ("%f", &r);area 二r * r * PI;printf (z,圆的面积为:%・ 3f\n〃, area); system(,,pausc/,);return 0;}3-3将变量A和B的值进行互换#include<stdio. h>int main(){int a 二1, b 二2, temp;temp 二a;a = b;b = temp;printf (,z a = %d b = %d\n〃, a, b); system(,,pause,/);return 0;}3-4判断给定的三条边是否能组成等腰三角形#include<stdio. h>int main(){int a, b, c;printf (z,请输入三角形三边长:\n〃); scanf ("%d%d%d〃,&a, &b,&c); if (a+b>c && b+c>a && c+a>b){if(a==b | | b==c | | c==a)printf (,z三边能组成等腰三角形\n〃); elseprintf (,?三边不能组成等腰三角形\n〃); } else printf (,z三边不能组成三角形\n〃); system(,z pause,z);return 0;3-5编写程序,设计一个学生成绩管理的功能菜单#include〈stdio. h> int main(){printfC学生成绩管理系统\n〃); printf (,Z A.学生信息录入\rT); printf (〃B.学牛成绩统计\n〃);printf (,Z C.学生成绩查询\n〃); printf(Z,D.退出\rT); system("pause");return 0;}3-6判断一个数n能否同时被3和5整除#includc<stdio. h>int main(){int num;printfC'请输入一个整数:\n z,); scanf ("%d〃,&nuni);if (num%3==0 && num%5==0)printf (,z该整数能同时被3和5整除\n〃);el seprintfC该整数不能同时被3和5整除\n〃); systcm ("pause");return 0;程序设计基础第四次实验4-1成绩判断ttinclude <stdio.h>int main(){float score;printf(/z请输入一个分值:“); scanf (〃%f", &score);i f (score >二60)printfC'及格\n〃);else printf (,z不及格\n〃);system(/z pause/z);return 0;}4-2输入三个实数,输出最大数和最小数#inelude <stdio.h> int main(){double a, b, c;double max, min;printf请输入三个实属数:“);scanf (,z%lf%lf%lf,z, &Q, &b, &c); if(a > b){max = a;min 二b;if (c > a)max = c;if (c < b)min = c;}else{max = b;min = a;if(c > b)max = c;if (c < a)min = c;}printfr最大数为%.21f,最小数为%.21f\n〃,max,min);system(〃pouse〃);return 0;}4-3一周食谱设计ttinclude <stdio.h> int main() int week 二1;while (week != 0){printfC-周食谱,请输入星期数(数字1-7, 0退出):〃);scanf ("%d〃,&week);switch(week){case 0:break;case 1:printf (〃星期一:青菜\n〃);break;case 2: printf C星期二:鸡\n,z);break;case 3: printf (〃星期三:鱼\n z,);break;case 4: printf (〃星期四:肉\n〃);break;case 5:printf ("星期五:鸡蛋\rT);break;case 6:printf (〃星期六:海鲜\n〃);break;case 7:printf (〃星期七:豆制品\rT);break;default:printf (〃请输入正确的数值(0-7) \n〃);break;}}return 0;}2910-10分类:关于助教作者:admin阅读次数:53 views没有评论程序设计基础第四次实验选做题1・计算器设计:-输入:运算数和四则运算符-输出:运算结果。
大一下c语言实验源代码021112122--白娟娟实验一1.输入三个整数,使用指针按由小到大的顺序排序并输出。
编程思路:先定义三个整型变量和三个指向整型数据的指针变量pi(i=1,2,3),然后用这三个指针分别指向三个整型变量,输入三个整型变量的值,采用*pi去比较大小和输出。
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int a,b,c,*p1,*p2,*p3,max,min;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(*p1>*p2){min=*p2;*p2=*p1;*p1=min; }if(*p1<*p3){if(*p2<*p3)printf("%3d,%3d,%3d",*p1,*p2,*p3);else{ max=*p3;*p3=*p2;*p2=max;printf("%3d,%3d,%3d",*p1,*p2,*p3);}}else{min=*p1;*p1=*p2;*p2=min; printf("%3d,%3d,%3d",*p1,*p2,*p3);}return 0;}2.编写一个函数,采用指针变量作为形式参数,接收2个整数并按照从小到大进行排序,要求在主函数中完成数据的输入、输出。
编程思路:定义函数void sort(int *p1,int *p2);主函数输入数据,输出原始数据和排序后的数据。
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){ void sort(int *p1,int *p2);int a,b,*p1,*p2;scanf("%d,%d",&a,&b);p1=&a;p2=&b;printf("%3d",a,b);}void sort(int *p1,int *p2){int temp;if(*p1>*p2){temp=*p2;*p2=*p1;*p1=temp;}}实验二1.输入十个整数,放在数组list中,然后用指针法从后向前输出该数组中的整数。
西南林业大学C语言程序设计实验题、代码、输出结果编写目的:学生的痛,大家都明白,特别是学渣的痛。
呃,不过我渐渐从学渣成功逆袭,所以最后才会整理下这些信息,为了让后面的人在面对这C语言时不会那么脑大,不用像我们开始时候的茫然。
认真享受在课堂上GET知识的过程,接下去的事:作业考试也是水到渠成的事情,有的课程的却要花点时间,但就像那句话说的:No pain,no get. 付出不一定会有收获,但是不付出一定会让你后悔。
所以,认真听课,不仅仅只是C语言,还有其他的课程。
实验题目及代码、输出结果实验题目目录目录P1-----------------------P6Printf简单输出三角形-------------------------------------------------------P6给定圆半径值为5,编程求圆面积和圆周长---------------------------P6编写一个摄氏温度与华氏温度之间的转换程序-------------------P6编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。
-----------P7(有主函数子函数----------P26)使用两种指定的方法打印正三角形数阵-----------------------------P7从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推),然后求3个整数的平均值。
-------------------------------------P8从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。
------------------------P8(指针变量----------------P19)输入三角形的三条边长,求三角形的面积。
--------------------P9从键盘任意输入3个整数,选出其中的最大数并打印。
实验项目一 C++程序设计初步题目在Visual Studio 2008平台上,用C++语言创建一个控制台应用程序,当其运行时在屏幕上显示“Hello,World!”(参考P15)实验项目二类与对象(1)有以下程序:#include <iostream>using namespace std;class Time //定义Time类{public: //数据成员为公用的int hour;int minute;int sec;};int main( ){ Time t1; //定义t1为Time类对象cin>>t1.hour; //输入设定的时间cin>>t1.minute;cin>>t1.sec;cout<<t1.hour<<“:”<<t1.minute<< “:”<<t1.sec<<endl; //输出时间return 0;}改写程序,要求:①将数据成员改为私有的;②将输入和输出的功能改为由成员函数实现;③在类体定义成员函数。
然后编译和运行程序。
请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好放在类外定义?代码:/ 实验_1.cpp : 定义控制台应用程序的入口点。
#include"stdafx.h"#include<iostream>using namespace std;class Time //定义Time类{private: //数据成员为私有的int hour;int minute;int sec;public:void Input(){cout<<"请输入时、分、秒:"<<endl;cin>>hour>>minute>>sec;}void print(){cout<<"时间为:"<<endl;cout<<hour<<":"<<minute<< ":"<<sec<<endl;}};int _tmain(int argc, _TCHAR* argv[]){Time t1;t1.Input ();t1.print ();return 0;}结果:(2)修改实验1中的学生成绩管理系统,建立类OurClass,实现班级学生信息的输入,排序和输出。
要求:添加构造函数,初始化班级名称,将成员函数定义在类外,类的定义单独放在头文件中。
代码:头文件:#define N 3struct Student{long lNum;char sName[12];float cGrade;float ccGrade;float fGrade;};class OurClass{private:char cName[20];Student stu[N];public:OurClass::OurClass();void Input();void print();void Sort();};.cpp:// 学生成绩管理.cpp : 定义控制台应用程序的入口点。
#include"stdafx.h"#include"iostream"using namespace std;#include"student.h"int main(){OurClass c1;c1.Input();c1.Sort ();cout<<endl<<"排序结果为:"<<endl<<endl;c1.print ();return 0;}OurClass::OurClass () //(char Nme[20]){cout<<"请输入班级名称:"<<endl;cin>>cName;}void OurClass::Input (){int i;cout<<"输入"<<N<<"个学生的学号、和成绩"<<endl;for(i=0;i<N;i++){cin>>stu[i].lNum>>stu[i].sName >>stu[i].cGrade >>stu[i].ccGrade ;stu[i].fGrade =stu[i].cGrade+stu[i].ccGrade;}}void OurClass::Sort(){int i,j;Student Temp;for(i=0;i<N;i++){for(j=i+1;j<N;j++){if (stu[i].fGrade<stu[j].fGrade ){Temp=stu[i];stu[i]=stu[j];stu[j]=Temp;}}}}void OurClass::print(){int i;cout<<"班级名称:";cout<<cName<<endl;cout<<"学号成绩"<<endl;for(i=0;i<N;i++)cout<<stu[i].lNum<<" "<<stu[i].sName <<" "<<stu[i].fGrade <<endl; }结果:(3)需要求3个长方柱的体积(用对象数组完成),请编一个基于对象的程序。
数据成员包括length(长)、width(宽)、height(高)。
要求用成员函数实现以下功能:①由键盘分别输入3个长方柱的长、宽、高;②计算长方柱的体积;③输出3个长方柱的体积。
请编程序,上机调试并运行。
完成后,将其中的数组名当常量指针用。
代码:头文件:class cube{private:double length;double width;double height;public:cube();void input();void print();double volume();};// 求长方柱的体积.cpp : 定义控制台应用程序的入口点。
#include"stdafx.h"#include"iostream"using namespace std;#include"cube.h"void cube::input(){double length;double width;double height;}cube::cube(){ cout<<"请输入长方柱的长、宽、高:"<<endl;cin>>length>>width>>height;}double cube::volume(){return length*width*height;}void cube::print(){cout<<"长方柱的体积为:"<<volume()<<endl;}int main(){cube c[3];for(int i=0;i<3;i++){c[i].input();(c+i)->print();}return 0;}结果:(4)友元函数(1)有以下程序:#include <iostream>using namespace std;class Date; //对Date类的提前引用声明class Time //定义Time类{public:Time(int,int,int);void display(Date &); //display是成员函数,形参是Date类对象的引用private:int hour;int minute;int sec;};class Date //声明Date类{public:Date(int,int,int);friend void Time∷display(Date &);//声明Time中的display函数为友元成员函数private:int month;int day;int year;};Time∷Time(int h,int m,int s) //类Time的构造函数{hour=h;minute=m;sec=s;}void Time∷display(Date &d) //display的作用是输出年、月、日和时、分、秒{cout<<d.month<<“/”<<d.day<<“/”<<d.year<<endl;//引用Date类对象中的私有数据cout<<hour<<“:”<<minute<<“:”<<sec<<endl; //引用本类对象中的私有数据}Date∷Date(int m,int d,int y) //类Date的构造函数{month=m;day=d;year=y;}int main( ){Time t1(10,13,56); //定义Time类对象t1Date d1(12,25,2004); //定义Date类对象d1t1.display(d1); //调用t1中的display函数,实参是Date类对象d1return 0;}请读者分析和运行此程序,注意友元函数Time::display的作用。
将程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time 和Date类中将display声明为友元函数。
在主函数中调用display函数,display 函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。
修改后上机调试和运行。
代码:// 实验_4.cpp : 定义控制台应用程序的入口点。
#include"stdafx.h"#include<iostream>using namespace std;class Date; //对Date类的提前引用声明class Time //定义Time类{friend void display(Date &,Time &);public:Time(int,int,int);//void display(Date &); //display是成员函数,形参是Date类对象的引用private:int hour;int minute;int sec;};class Date //声明Date类{public:Date(int,int,int);friend void display(Date &,Time &);public:int month;int day;int year;};Time::Time(int h,int m,int s) //类Time的构造函数{hour=h;minute=m;sec=s;}void display(Date &d,Time &t1) //display变为普通函数{cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;//引用Date类对象中的私有数据cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;}Date::Date(int m,int d,int y) //类Date的构造函数{month=m;day=d;year=y;}int _tmain(int argc, _TCHAR* argv[]){Time t1(10,13,56); //定义Time类对象t1Date d1(12,25,2004); //定义Date类对象d1display(d1,t1);return 0;}结果:实验项目三函数重载(1)编写程序,实现普通函数重载练习。