C语言程序设计教程例题源码_第1页
C语言程序设计教程例题源码_第2页
C语言程序设计教程例题源码_第3页
C语言程序设计教程例题源码_第4页
C语言程序设计教程例题源码_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计教程例题源码练习一【例11】打印“常熟理工学院”的汉语拼音。程序源码如下:void main()printf(“chang shu li gong xue yuan!”);【例12】求任意两个整数的积。程序源码如下:#include <stdio.h>int mul(int a,int b); void main() int x,y,z; printf("input two numbers:n"); scanf("%d%d",&x,&y);  z=mul(x,y); printf("

2、mul=%d",z); int mul(int a,int b) int c;c=a*b;return c; 【例13】 求整数a、b的和。程序源码如下:void main()int a, b;int sum;scanf(“%d,%d”,&a,&b);sum = a + b; printf(“%d”,sum);练习二【例21】转义字符的使用。程序源码如下:void main()printf("x4fx4bx21n");printf("112 112132104n");【例22】 符号常量的使用。程序源码如下:#define PI

3、 3.14159265void main()float r,m,s; r=1.2; m=2* PI *r;s= PI *r*r;printf("%f,%f",m,s); 【例23】整型变量的定义与使用。程序源码如下:void main() int x, y, m; unsigned u, n; x=30; y=18; u=32800; m=x+y; n=y+u; printf("x+y=%d, y+u=%dn",m,n);【例24】整型变量的定义与使用。程序源码如下:void main() int a,b,c,d; long x, y; x=7; y=8

4、; a=9; b=10; c=x+a; d=y+b; printf("c=x+a=%d,d=y+b=%dn",c,d); 【例25】整型数据的溢出。程序源码如下:void main() int x,y; x=32767; y=x+1; printf("%d, %dn",x,y); 【例26】实型变量的定义和应用举例。程序源码如下:void main() float x, y,z,a,b;x=1234.2345;a=0.02;z=x+y;b= a+y;printf("%fn%f n ",z,b);【例27】字符型变量的定义与使用举例。程

5、序源码如下:void main() char c1,c2;c1=97;c2=98; printf("%c %c ",c1,c2);printf("%d %dn",c1,c2);c1=c1-32;c2=c2-('a'-'A');printf("%c %cn",c1,c2); 【例28】变量初始化举例。程序源码如下:void main()int c1,c2,c3,c4; c1=7;c2=7; c3=3;c4=4; printf("%d %d ",c1,c2);printf("%

6、d %dn",c3,c4); 等效于void main() int c1=7,c2=7,c3=3,c4=4; printf("%d %d ",c1,c2);printf("%d %dn",c3,c4); 【例210】强制类型转换。程序源码如下:void main()float m=6.5; int n;n= (int)m; printf("%f,%d",m, n); 练习三【例31】关系表达式实例。程序源码如下:#include<stdio.h>int void main()int true,false; tru

7、e=(3>2); false=(3=2); printf("true=%d;false=%dn",true,false); return 0;【例32】逻辑运算符实例。程序源码如下:void void main()char c='k'int i=1,j=2,k=3;float x=3e+5,y=0.85;printf("%d,%dn",!x*!y,!x);printf("%d,%dn",x|i&&j-3,i<j&&x<y);printf("%d,%dn&quo

8、t;,i=5&&c&&(j=8),x+y|i+j+k); 【例33】自增、自减运算符实例。程序源码如下:#include <stdio.h>void void main()int i=8; printf("%dn",+i); printf("%dn",-i); printf("%dn",i+); printf("%dn",i-); printf("%dn",-i+); printf("%dn",-i-); 【例34】自增、自减运算符

9、实例。程序源码如下:#include <stdio.h>void void main()int i=5,j=5,p,q;p=(i+)+(i+)+(i+);q=(+j)+(+j);printf("%d,%d,%d,%d",p,q,i,j);【例35】输出两个数中的大数。程序源码如下:#include <stdio.h>void void main()int a,b,max;printf("n input two numbers: ");scanf("%d %d",&a,&b);printf(&qu

10、ot;%d",max=a>b?a:b); 【例36】逗号运算符实例。程序源码如下:#include <stdio.h>void void main()int a=2,b=4,c=6,x,y;y=(x=a+b),(b+c) );printf("y=%d,x=%d",y,x);练习四【例45】求1×2×3×4×5的算法,用C语言表示。程序源码如下:#include <stdio.h>void main()int i,t; t=1; i=2; while(i<=5)t=t*i;i=i+1; pr

11、intf(“%d”,t);【例46】printf 函数使用实例。程序源码如下:#include <stdio.h>void void main()int a=88,b=89;printf("%d %dn",a,b);printf("%d,%dn",a,b);printf("%c,%cn",a,b);printf("a=%d,b=%d",a,b);【例47】printf函数应用实例。程序源码如下:#include <stdio.h>void void main()int a=15;float

12、b=138.357620;double c=35648256.3645287;char d='p'printf("a=%d,%5d,%o,%xn",a,a,a,a);printf("b=%f,%lf,%5.4lf,%en",b,b,b,b);printf("c=%lf,%f,%8.4lfn",c,c,c);printf("d=%c,%8cn",d,d); 【例48】printf函数应用实例。程序源码如下:#include <stdio.h>void main() int i=8; pri

13、ntf("%dn%dn%dn%dn%dn%dn",+i,-i,i+,i-,-i+,-i-);【例49】printf函数应用实例。程序源码如下:#include <stdio.h>void main() int i=8; printf("%dn",+i); printf("%dn",-i); printf("%dn",i+); printf("%dn",i-);printf("%dn",-i+); printf("%dn",-i-);【例410】

14、putchar 函数应用实例。程序源码如下:#include <stdio.h>void void main()char a='B',b='o',c='k'putchar(a);putchar(b);putchar(b);putchar(c);putchar('t');putchar(a);putchar(b);putchar('n');putchar(b);putchar(c);【例411】scanf函数应用实例。程序源码如下:#include <stdio.h>void void mai

15、n()int a,b,c;printf("input a,b,cn");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c); 【例412】格式字符串应用实例。程序源码如下:#include <stdio.h>void void main()char a,b;printf("input character a,bn");scanf("%c%c",&a,&b);printf("%

16、c%cn",a,b); 【例413】格式字符串应用实例。程序源码如下:#include <stdio.h>void void main()char a,b;printf("input character a,bn");scanf("%c %c",&a,&b);printf("n%c%cn",a,b);【例414】输入一个小写字母,输出其ASCII码和对应的大写字母。程序源码如下:#include <stdio.h>void void main()char a;printf("

17、input a character:n");a=getchar();printf("%dn",a);putchar(a-32);【例415】输入三角形的三边长,求三角形面积。程序源码如下:#include <stdio.h>#include<math.h>void main() float a,b,c,s; double area; scanf(“%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%7.2f,b

18、=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s); printf(“area=%7.2fn”,area);练习五【例51】输入两个数到变量x和y中,如果x>y则输出x。程序源码如下:#include<stdio.h>void main()int x,y;printf("please input x, y:");scanf("%d, %d", &x, &y);if (x>y)printf("x>yn");printf("%d, %dn", x, y);【

19、例52】某应用软件的登录密码是123,用户从键盘输入密码,如果正确则显示“欢迎使用本软件”的字样,如果密码错误则显示“密码错,请重新输入!”的字样。#include<stdio.h>void main()int password;printf("请输入密码:n");scanf("%d",&password);if (password=123) printf("欢迎使用本软件!");else printf("密码错,请重新输入!");注意:本题要启动中文DOS运行环境,否则程序中的汉字将显示为乱码

20、,以下例题如有汉字输入输出均与此相同,不再多述。【例53】编程实现以下问题求解:给出一百分制成绩,要求输出成绩等级A、B、C、D、E。设90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。程序源码如下:#include<stdio.h>void main() int score;printf("请输入成绩:");scanf("%d",& score);printf("score=%d:", score);if (score >=90) printf("An");

21、else if (score >=80) printf("Bn");else if (score >=70) printf("Cn");else if (score >=60) printf("Dn");else printf("En");【例54】从键盘上输入3个实数a、b、c,求出其中的最小值并输出。程序源码如下:#include<stdio.h>void main() float x,y,z,min;printf("请输入x,y,z:");scanf(&quo

22、t;%f,%f,%f", &x, &y, &z);if (x<y)if (x<z) min=x;else min=z;else if (y<z) min=y;else min=z;printf("min=%fn",min);【例55】从键盘上输入一个字母,如果这个字母是小写字母就将它转换成大写字母。程序源码如下:#include<stdio.h>void main() char x ;printf("请输入一个字母:");scanf("%c",&x);x=(x&g

23、t;=a&&x<=z)?(x-32):x; /*大小写字母ASCII码值相差32*/printf("转换成大写为:%cn",x);【例56】设计一个程序,要求输入数字1,显示Monday,输入数字2,显示Tuesday,一直到输入数字7,显示Sunday,除此以外,显示error。程序源码如下:#include<stdio.h>void main()int x;printf("input integer number: ");scanf("%d",&x); switch (x) case 1:

24、 printf("Mondayn"); break;case 2: printf("Tuesdayn"); break;case 3: printf("Wednesdayn"); break;case 4: printf("Thursdayn"); break;case 5: printf("Fridayn"); break;case 6: printf("Saturdayn"); break;case 7: printf("Sundayn"); brea

25、k;default: printf("errorn");【例57】编程序实现输入不同的月份输出相应的季节。按农历一般规定13月为春季,46月为夏季,79月为秋季,1012月为冬季。程序源码如下:#include<stdio.h>void main()int month;printf("n请输入月份:");scanf("%d",&month); switch (month) case 1: case 2: case 3: printf("春季!n"); break;case 4: case 5:

26、case 6: printf("夏季!n"); break;case 7: case 8: case 9: printf("秋季!n"); break;case 10: case 11: case 12: printf("冬季!n"); break; default: printf("输入的数据非法!n");【例58】编程实现一个能进行加减乘除运算的简易计算器程序。程序源码如下:#include<stdio.h>void main()float a,b;char ch;printf("inpu

27、t expression: a + ( -,* , / ) b n");scanf("%f%c%f",&a, &ch, &b);switch (ch) case +: printf ("result is %fn" , a+b); break;case -: printf ("result is %fn" , a-b); break;case *: printf ("result is %fn" , a*b); break;case /: if (b!=0) printf (&qu

28、ot;result is %fn" , a/b); else printf ("除数为0!n"); break;default: printf("input errorn");练习六【例61】利用if-goto循环结构求解1到100的累加和。程序源码如下: #include<stdio.h>void main() int n=1,s=0; loop: s=s+n;n+; if (n<=100) goto loop; printf("s=%dn",s); 【例62】用for循环解决1到100的累加问题。程序源

29、码如下:#include<stdio.h>void main() int i,s=0; for(i=1;i<=100;i+) s=s+i; printf("s=%dn",s); 【例63】求数学公式的和:s=1+3+5+99。程序源码如下:#include<stdio.h>void main()int s=0,i;for(i=1;i<=99;i=i+2) s=s+i;printf("i=%dt s=%dn",i,s); 【例64】求n的阶乘n!(n!=1*2*n)。程序源码如下:#include<stdio.h&

30、gt;void main()int i,n;long result=1; printf(“input n: ”); scanf(“%d”,&n); for(i=1;i<=n;i+)result=result*i; printf("%d! = %ldn",n,j); 【例65】从键盘上输入10个数,求其平均值。程序源码如下:#include<stdio.h>void main() int i;float f,sum;for(i=1,sum=0.0;i<11;i+) scanf("%f",&f); sum=sum+f;

31、  printf("average=%fn",sum/10);【例66】从键盘上输入若干正整数,求其中最大数和最小数,输入的数以0为中止标记。程序源码如下:#include<stdio.h>void main() int x,max,min;scanf("%d",&x);max=min=x;           for(;x!=0;)        

32、; if (x<min) min=x; if (x>max) max=x; scanf("%d",&x);   printf("max=%d   min=%dn",max,min);【例67】国际象棋棋盘有64格,若在第1格放1粒谷;第2格放2粒谷;第3格放4粒谷;第4格放8粒谷如此一直放到第64格。假设2000000粒谷有一吨重,问需要多少吨谷才够放?程序源码如下:#include<stdio.h>void main()int i; float n,s;i=1;

33、n=1.0;s=1.0; for(i=2;i<=64;i+)n=n*2;s=s+n; printf("s=%fn",s/2000000);   【例68】用while语句求1到100的累加和。程序源码如下:#include<stdio.h>void main() int i=1,s=0; while(i<=100) s=s+i; i+; printf(“s=%dn”,s); 【例69】用do-while语句求1到100的累加和。#include<stdio.h>void main() int i=1

34、,s=0; do s=s+i; i+; while(i<=100); printf(“s=%dn”,s); 【例610】从键盘上连续输入若干个字符(以回车换行符为结束标记),统计字符个数(不含回车换行符)。程序源码如下:#include<stdio.h> void main()int n=0;char c;while(c=getchar()!='n') n+; printf("number of character = %dn",n);程序运行结果如下:Ruruweuiopjsbhcvgasfdugsdfgnumber of charact

35、er = 27【例611】对比例10,用do-while循环结构解决相同问题。即从键盘上连续输入若干个字符(以回车换行符为结束标记),统计字符个数(不含回车换行符)。程序源码如下:#include<stdio.h>void main()int n=-1;char c;do n+; while(c=getchar()!='n'); printf("number of character = %dn",n);【例612】输入一个正整数(短整型),计算并输出该数的各位数字之和。反复执行直到输入为0时停止。程序源码如下:#include<stdio

36、.h>void main()int x,x1,x2,x3,x4,x5;scanf("%d",&x);while(x != 0)x5=x%10;x=x/10;x4=x%10;x=x/10;x3=x%10;x=x/10;x2=x%10;x1=x/10;printf("%dn",x1+x2+x3+x4+x5);scanf("%d",&x);【例613】令s=1+2+3+4+n,求出使得s的值最接近999的n值。程序源码如下:#include<stdio.h>void main()int s=0;int n=

37、1;while(s<=999)s=s+n;n+;n-;printf(“n=%dn”,n);【例614】要输出五行10个星号的图形,可以用一重循环的for语句来实现。程序源码如下: #include<stdio.h>void main() int i,k; for(k=1;k<=5;k+) for(i=1;i<=10;i+) printf("*"); printf("n"); 【例615】打印所有水仙花数(水仙花数是各位数字立方和等于该数本身的三位正整数)。程序源码如下:#include<stdio.h>void

38、main() int i,j,k,m,n; for (i=1;i<=9;i+) for (j=0;j<=9;j+) for (k=0;k<=9;k+) m=i*i*i+j*j*j+k*k*k; n=100*i+10*j+k; if(m=n) printf("%dn", m); 【例616】从键盘上接收字符并显示出来,当按Tab键时结束输入。程序源码如下: #include<stdio.h>void main() char ch; for(;) scanf("%c",&ch); if(ch=t) break; else

39、 printf("%c", ch); 【例617】设有一张厚0.1mm而面积足够大的纸,如果将它不断地对折,问对折多少次后,其厚度可达到或超过珠穆朗玛峰的高度(8848.130米)。 程序源码如下:#include<stdio.h>void main() float h=0.1; int n=0; while(h<=8848130) h=h*2; n+; printf("it needs %d times!n", n); 【例6.18】对除了是3的倍数以外的1100的数求和。程序源码如下:#include<stdio.h>v

40、oid main() int s,i; s=0; for(i=1;i<=100;i+) if (!(i%3) continue; s=s+i; printf( "s=%d", s); 【例6.19】检查输入的一行字符中有无相邻两字符相同。程序源码如下: #include<stdio.h>void main() char a,b; printf("input a string:"); b=getchar(); while(a=getchar()!=n) if(a=b) printf("the string you input h

41、ave same character nearbyn"); break; b=a; 练习七【例71】一维数组引用的示例。程序源码如下:#include<stdio.h>void main() int num5,i; num0=5; for(i=1;i<4;i+) numi=i+5; printf("input the 5th number:");scanf("%d",&num4); printf("numbers of array num are:n");for(i=0;i<5;i+) pri

42、ntf("num%d=%d ",i,numi); 【例72】从键盘上输入10个字符,然后按相反次序输出。程序源码如下:#include<stdio.h>void main()char a10;int i;printf("input 10 char:");for(i=0;i<10;i+)scanf("%c",&ai);printf("n");printf("output 10 char:");for(i=9;i>=0;i-)printf("%c"

43、,ai);程序运行结果如下:input 10 char:qwertyuiopoutput 10 char:poiuytrewq【例73】用“选择排序法”对一维数组中的整数进行从小到大的顺序排列。程序源码如下:#include<stdio.h>void main()int n,i,k,x,min,min_k,a100;printf("输入整数个数(<100):");scanf("%d",&n);for(i=0;i<n;i+)printf("输入第%d个整数:",i+1);scanf("%d&qu

44、ot;,&ai);for(k=0;k<n-1;k+)min=ak;min_k=k;for(i=k;i<n;i+)if(ai<min)min=ai;min_k=i;x=amin_k;amin_k=ak;ak=x;printf("输出排序结果:");for(i=0;i<n;i+)printf("%d ",ai);【例74】从键盘输入 10 个数,求其中的最大数和最小数,并按逆序打印出该数组。程序源码如下:#include<stdio.h>void main() float a10;int i;float max=-

45、1e20,min=1e20;for(i=0;i<=9;i+)scanf("%f",&ai);for(i=0;i<=9;i+) if(ai>max) max=ai;if(ai<min) min=ai; printf("max=%6.2f,min=%6.2fn",max,min);for(i=9;i>=0;i-)printf("%6.2ft",ai);【例75】从键盘输入一个3*4的整型数组,求出其中的最大值和最小值并显示数组内容。 程序源码如下:void main()int a34;int i,j,

46、min,max;for(i=0;i<3;i+)for(j=0;j<4;j+)scanf("%d",&aij);min=a00;max=a00;for(i=0;i<3;i+)for(j=0;j<4;j+) if(min>aij) min=aij;if(max<aij) max=aij; printf("max=%d min=%dn",max,min);for(i=0;i<3;i+)for(j=0;j<4;j+) printf("a%d%d=%dt",i,j,aij); 【例76】向

47、一个3*3的矩阵(整型数组)输入数据,输出对角线元素并求它们的和。程序源码如下:void main() int a33,sum=0;int i,j;printf("input data:n");for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d",&aij);for(i=0;i<3;i+) printf("a%d%d=%dt",i,i,aii);sum=sum+aii; printf("nsum=%d",sum); 【例77】从键盘上输入一个2*3的矩阵,将其转

48、置后形成3*2矩阵输出。程序源码如下:#include<stdio.h>void main()int a23,b32,i,j;for(i=0;i<2;i+)for(j=0;j<3;j+)scanf("%d",&aij);for(i=0;i<3;i+)for(j=0;j<2;j+)bij=aji;for(i=0;i<3;i+)for(j=0;j<2;j+)printf("%4d",bij);printf("n"); 【例78】输入3个学生的学号和3门课程的成绩(整数),统计并输出3

49、门课程总分最高的学生的学号和总分。程序源码如下:void main()int s35,i,max,max_i;for(i=0;i<3;i+)printf("input student no%d,s1,s2,s3:n",i+1);scanf("%d,%d,%d,%d",&si0,&si1,&si2,&si3);si4=si1+si2+si3; max=s04,max_i=0; for(i=1;i<3;i+) if(max<si4)max=si4;max_i=i;printf("student no

50、=%d total=%d",smax_i0,smax_i4);【例79】输出一维字符串数组的值。程序源码如下:void main() char c10= 'I',' ','a','m',' ','a',' ','b','o','y'int i;for( i=0; i<10; i+)printf("%c", ci);【例710】 输出如下所示的图案。 * * *程序源码如下:void main()cha

51、r a55=' ',' ','*',' ',' ',' ','*','*','*',' ','*','*','*','*','*',' ','*','*','*',' ',' ',' ','*',' ','

52、'int i,j;for(i=0;i<5;i+) printf("n"); for(j=0;j<5;j+)printf("%c",aij);【例711】检测一给定的字符串的长度(字符数),不包括结束符0。程序源码如下:void main() static char str="he is a good student! "int i=0;while(stri!='0') i+;printf("the length of string is %dn",i);【例712】从键盘上输入一

53、行字符(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其它字符不变,然后逆向输出。程序源码如下:void main()char a40;int n=0;printf("input char(<40):");doscanf("%c",&an); if('A'<=an)&&(an<='Z')an+=32; n+;while(an-1!='n'); n=n-2; while(n>=0) printf("%c",an-

54、); 【例713】从键盘上输入一字符串,并将其显示在屏幕上。程序源码如下:#include<stdio.h>void main() char str20;int i;for(i=0;i<14;i+)scanf("%c",&stri); for( i=0;i<14;i+)printf("%c",stri);【例714】从键盘上输入一字符串,并将其显示在屏幕上。程序源码如下:#include<stdio.h>void main() char str20;scanf("%s",str);print

55、f("%s",str);【例715】从键盘上输入两个字符串,输出其中较大者。程序源码如下:#include<stdio.h>void main()char a80,b80,flag=' ' int i=0; printf("string1:"); scanf("%s",a); printf("string2:"); scanf("%s",b); while(ai!='0')&&(bi!='0') if(ai<bi)

56、flag='b'break; else if(bi<ai)flag='a'break; else i+; if(flag=' ') if(ai='0')flag ='b' elseflag='a' if(flag='a')printf("max-string: %sn",a);elseprintf("max-string: %sn",b);【例716】编写一程序,将两个字符串连接起来。程序源码如下:void main() char s18

57、0,s240;int i=0,j=0;printf("input string1:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);while (s1i!='0') i+; while(s2j!='0') s1i+=s2j+; s1i='0' printf("new string:%s",s1);练习八【例81】编写程序求三个整数的最大值,其中三个整数由键盘输入。程序源码如下:#in

58、clude <stdio.h>    int max(int x,int y,int z) int m;if (x>y) m=x;else m=y;if (z>m) m=z;return(m);void main()int n1,n2,n3,result;scanf("%d, %d , %d",&n1, &n2, &n3);result=max(n1, n2, n3); printf("最大值result=%d",result); 【例8

59、2】以下程序通过调用swap函数,对调主函数中变量x和y的值,请观察程序的输出结果。程序源码如下:#include <stdio.h> float swap(float a, float b)float t;printf("swap函数运行,交换前a=%.2f, b=%.2fn", a, b);t=a; a=b; b=t;printf("swap函数运行,交换后a=%.2f, b=%.2fn", a, b);return 0;void main()float x=10.0,y=20.0;printf("调用前x=%.2f

温馨提示

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

评论

0/150

提交评论