C语言程序简单例子讲解学习_第1页
C语言程序简单例子讲解学习_第2页
C语言程序简单例子讲解学习_第3页
C语言程序简单例子讲解学习_第4页
C语言程序简单例子讲解学习_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档实验二参考答案1 .输入两个整型数字,输出他们的和。#include<stdio.h>main()int a, b, sum;scanf( d%d”,&a, &b);sum=a+b;printf( a+b=%d” , sum);2 .输入两个实型数,输出他们的和与乘积。#include<stdio.h>main()float a, b, sum, product;scanf( f%f”,&a, &b);sum=a+b;product=a*b;printf( a+b=%5.2f, a*b =%5.2f” sum, product);

2、223 .求方程ax +bx+c=°的根(设b -4ac>0)(其中a, b, c的值由键盘输入)#include<stdio.h>#include<math.h>main()float a, b, c, dt, x1, x2;scanf( f%f%f ",&a, &b, &c);dt=sqrt(b*b-4*a*c);x1=(-b+dt)/(2*a);x2=(-b-dt)/(2*a);printf( x1 =%5.2f, x2 =%5.2f” x1, x2);4 .鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各多少只

3、? ( h和f的值由键盘输入,输出鸡和兔的头数)#include<stdio.h>main()int h, f, x,y;scanf( “% d%d”, &h, &f);x=2*h-f/2;y=f/2-h;printf( x=“%d, y =%d”, x, y);精品文档1 .输入三个数a、b、c,要求按由小到大的顺序输出。#include<stdio.h>main()float a,b,c,t;scanf(“%f,%f,%f”,&a,&b,&c);if(a>b)t=a; a=b; b=t;if(a>c)t=a; a=

4、c; c=t;if(b>c)t=b; b=c; c=t;printf( “%f,%f,%f ”,a,b,c);c 能否构成三角形,若不直角还是一般三角形。2 .编写程序,输入三角形三边a、b、c,判断a、b、能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。(1)#include<stdio.h>main()float a,b,c,t;scanf(“%f,%f,%f ”,&a,&b,&c);if(a>b)t=a; a=b; b=t;if(a>c)t=a; a=c; c=t;if(b>c)t=b;b=c; c=t;i

5、f(a+b>c)if(a=b|b=c)if(a=c) printf(等边三角型”);else if(c*c=a*a+b*b) printf(等腰直角三角形”); else printf(股等腰三角形”);else if(c*c=a*a+b*b) printf(乙股直角三角形”); else printf(乙般三角形");else printf(不构成三角形”);#include<stdio.h>main()float a,b,c,t;scanf( %f,%f,%f”,&a,&b,&c);if(a>b)t=a; a=b; b=t;if(a

6、>c)t=a;a=c; c=t;if(b>c)t=b;b=c; c=t;if(a+b<=c) printf(不构成三角形”);else if(a=b && b=c && a=c) printf( 等边三角型”);else if(a=b && c*c=a*a+b*b) printf(等腰直角三角形");else if (a=b) printf(乙股等腰三角形”);else if(c*c=a*a+b*b) printf(般直角三角形"); else printf(股三角形”);3.编程实现下列函数x(x<1

7、)y= 2x-1(1 < x <10)|3x-11| (x_10)#include<stdio.h>#include<math.h>main()int x,y;printf("input x=:");scanf("%d",&x);if(x<1) y=x;else if(x<10)y=2*x-1;else y=abs(3*x-11);printf("x=%d y=%dn",x,y);4.编写程序,输入一百分制成绩,对应输出等级A、B、C、D、E, 90分以上为A,80分一89分为B

8、, 70分一79分为C, 60分一69分为D, 60分以下为E。方法一:用if语句#include<stdio.h>main()float score;char grade;scanf("%f", &score);if(score>100|score<0) printf("ninput error!");elseif(score>=90) grade='A'else if(score>=80) grade='B'else if(score>=70) grade='C

9、'else if(score>=60) grade='D'else grade='E'printf("the student grade=%c n", grade);方法二:用switch语句。注意, case 后的表达式必须是一个常量表达式,所以在以用 switch 语句之前,必须把0100 之间的成绩分别化成相关的常量。所有A (除 100 以外) , B , C, D 类的成绩的共同特点是十位数相同,此外都是E 类。则由此可得把score 除十取整,化为相应的常数。 #include<stdio.h>main(

10、)float score,int s;char grade;scanf("%f", &score);s=score/10;if(s<0|s>10) printf("ninput error!");elseswitch (s) case 10:case9:grade='A'break;case8:grade='B'break;case7:grade='C'break;case6:grade='D'break;default: grade ='E' print

11、f("the student grade =%c n ", ch);实验四参考答案1 .编写程序,计算以下级数前n项之和。s u m 1 x x2 /2! x3 /3! x4 /4! . . xn /n!#include<stdio.h> void main() int i, n;float s=1.0, sum=1.0, x;scanf( %d, %f”,&n, &x);for(i=1; i<=n; i+) s=s*x/i; sum=sum+s; printf( Sum=%5.2f", sum);2 .编程打印如下图案(书后习题

12、第 3题): *#include <stdio.h> main()int i, j, n;for(i=1; i<=7; i+) for(j=0;j<14-2*i; j+)printf("");for(j=0;j<2*i; j+)printf("*");printf("n");3.编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 11n=5)#include

13、 <stdio.h>main( )int i, j,n;scanf("%d", &n);for(i=1; i<n; i+) for(j=1; j<i; j+) for(j=i; j>0; j-) printf("n");printf(" %d", j);printf(" %d", j);for(i=n; i>0;i-)for(j=1; j<i; j+) for(j=i; j>0; j-) printf("n");printf("

14、%d", j);printf(" %d", j);4输出Fibonacci 数列第 n 项。其数列通项公式为Fn=Fn-1+Fn-2, F1=1,方法一:#include<stdio.h>main()float f, f1=1, f2=1;int i, n;scanf("%d", &n);F2=1。精品文档for(i=3; i<=n; i+)f=f1+f2;f1=f2;f2=f;printf("%10.0f n", f );方法二:#include <stdio.h>#define NU

15、M 20void main()int i;float fNUM=1,1;for(i = 2; i < NUM; i+)fi = fi-2+fi-1;for(i = 0; i < NUM; i+)printf("%10.0f n", fi);精品文档精品文档实验五参考答案1.编写程序,将1,2, 3这三个数赋给数组a,将5, 6, 7赋给数组b,将两数组对应 元素相加的和赋给数组c,输出数组c#include <stdio.h>void main()int a3=1,2,3, b3=4,5,6, c3;int i;for(i=0;i<3;i+)c

16、i=ai+bi;printf("%d",ci);2输入任意10 个数,按从大到小或从小到大的顺序输出( “冒泡”排序)#include <stdio.h>#define NUM 10void main ()int aNUM, i, j, temp, flag;printf ("input %d numbers: n", NUM);for (i=0; i<NUM; i+)scanf ("%d", &ai);for (i=1; i<NUM; i+)for (j=0; j<NUM-i; j+)flag

17、= 0;if (aj>aj+1)temp=aj;aj=aj+1;aj+1=temp;flag = 1;if (flag = 0) break;printf ("the sorted numbers:n");for (i=0; i<NUM; i+)printf ("%d ", ai);3输入10 个整数并存放在一维数组中,找出其中最大值和此元素的下标#include <stdio.h>#define NUM 10void main() int aNUM;int i,max, index;for(i=0; i<NUM;i+)sc

18、anf("%d",&ai);max=a0;for(i=0; i<NUM;i+)if(max<ai)max=ai;index=i;printf("max=%d, index=%d", max, index);4将从键盘输入的字符串进行逆序输出,逆序后的字符串仍然保留在原来字符数组中。(不得调用任何字符串处理函数包括strlen)#include <stdio.h>#define NUM 80void main() char aNUM, temp;int i, j, index;for(i=0; i<NUM;i+)精品文

19、档精品文档scanf("%c",&ai);if(ai='n') break;ai='0'index=i;i+, j-)for(i=0, j=index-1; i<=index/2;temp=ai;ai=aj;aj=temp;for(i=0; i<NUM; i+)if(ai='0') break;printf("%c", ai);printf("n");精品文档精品文档精品文档实验五参考答案2(请同学们用有返回值和1,编写函数,求表达式x -5x+4的值,x有由王函数输

20、入。无返回值两种方式去做,练习简单的函定义、声明、及调用方法)有返回值#include <stdio.h>float fun(float x)float m ;m=x*x-5*x+4;return m ;void main()float a, f;scanf("%f", &a);f=fun(a);printf("%f n", f);无返回值#include <stdio.h>void fun(float x)float m ;m=x*x-5*x+4;printf("%f n", m);void main

21、()float a;scanf("%f", &a);fun(a);2.编写函数,按如下递归公式求函数值。1(n=0)fun(n)=.2 fun(n -1) 1 (n>0)#include <stdio.h>int fun(int n)int m;if(n=0)m=1;elsem=2*fun(n-1)+1;return m;void main()int a, f;scanf("%d", &a);f=fun(a);printf("%d n", m);3.编写函数求数n所有质因子(所有为素数的因子)并输出,

22、n由主函数输入#include <stdio.h>#include <math.h>int prime(int m)int j;if (m = 1) return 0;else if (m = 2) return 1;else if (m%2=0) return 0;elsefor(j=3; j<=sqrt(m); j+=2) if(m%j=0) return 0;return 1;void main()int i,n,flag;scanf("%d",&n);for (i=1;i<=n; i+)if(n%i=0) flag=pri

23、me(i);else flag=0;if(flag=1) printf("%d n",i);4哥德巴赫猜想之一是,任何一个大于5 的偶数都可以表示为两个素数之和。编写程序验证这一论断。#include <stdio.h>int prime(int m)int j;if (m = 1) return 0;else if (m = 2) return 1;else if (m%2=0) return 0;elsefor(j=3; j<=sqrt(m); j+=2) if(m%j=0) return 0;return 1;main( )int a,b,c,n;s

24、canf("%d", &n);for (a=6; a<=n; a+=2)for (b=3; b<=a/2; b+=2)if (prime(b)=1)c=a-b;if (prime(c)=1)printf("%d=%d+%dn",a,b,c);break;5二维数组score 中存放 5 个学生的 3 门课成绩, 由主函数输入一个数, 将所有总成绩大于该数的学生输出。#include <stdio.h>void max(float a53, float score)int i,j;float s;for(i=0;i<5

25、;i+)s=0;for(j=0; j<3; j+)s=s+aij;if(s>score)printf("stu%d: %.2fn", i+1, s);void main()int i,j;float a53;float score;printf("please input number:n");for(i=0; i<5; i+)printf("stu%d:", i+1);for(j=0; j<3;j+)scanf("%f",&aij);精品文档printf("n"

26、);printf("please input score:");scanf("%f", &score);max(a,score);实验七参考答案1用指针变量输出任意4*4 矩阵各元素的值(1)#include "stdio.h"void main()int i,a44=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;int *p=a;for(i=0;i<4*4;i+)printf("%3d",*(p+i);if(i+1)%4=0)printf("n");(2)#in

27、clude "stdio.h"void main()int a44=1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4;int (*p)4=a;int i,j;for(i=0;i<4;i+)for(j=0;j<4;j+)printf("%3d",*(*(p+i)+j);printf("n");printf("n");2有一个整型二维数组amn ,找出最大值所在的行和列,以及该最大值#include "stdio.h"void main()int a44=1,34,35,2

28、6,7,12,92,24,55,33,53,6,7,41,34,64;int (*p)4=a;int i,j,x,y,max;max=a00;for(i=0;i<4;i+)for(j=0;j<4;j+)printf("%3d",*(*(p+i)+j);if(max<*(*(p+i)+j)max=*(*(p+i)+j);x=i;y=j;printf("n");printf("nmax=%dnx=%dny=%dn",max,x,y);3从键盘输入一字符串,求此字符串的长度并输出#include<stdio.h>

29、;int str_len(char *p)int n=0;while(*p!='0')n+;p+;return n;int main()char a100;int n;printf("Input a string:n");gets(a);n=str_len(a);printf("The lenth:%dn",n);4将字符串str 中的小写字母全部改为大写字母,并输出该字符串#include "stdio.h"void fun(char *p)int i;for(i=0;*(p+i)!='0'i+)if

30、(*(p+i)>='a'&&*(p+i)<='z') *(p+i)=*(p+i)-32;void main()char str50;char *p=NULL;printf("Please input string:n");gets(str);p=str;fun(p);puts(str);实验八参考答案1. 编写程序: 定义一个职工结构体类型, 定义职工结构体变量, 从键盘输入一名职工信息,然后输出。 (假设职工信息包括:姓名、身份证号、工龄、工资)#include<stdio.h>struct empl

31、oyeechar name20;char id20;int gl;int salary;int main()struct employee em;printf("Name:n");scanf("%s",);printf("HM:n");scanf("%s",em.id);printf("GL:n");scanf("%d",&em.gl);printf("GZ:n");scanf("%d",&em.salary);printf("Name:%s HM:%s GL:%d GZ:%dn",,em.id,em.gl,em.salary); return 0;2. 设计一个保存学生情况的结构体,学生情况包括姓名、学号、年龄。输入 5 个学生的 情况,输出学生的平均年龄和年龄最小的学生的情况#include <stdio.h> struct Student char name100; / 姓名char stdNo10; / 学号int age; / 年龄;/ 输入学生信息void i

温馨提示

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

评论

0/150

提交评论