C语言课件程序.doc_第1页
C语言课件程序.doc_第2页
C语言课件程序.doc_第3页
C语言课件程序.doc_第4页
C语言课件程序.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1:求1100的整数之和。includemain() int i,sum=0; i=1; loop: sum+=i; i+; if(i=100) goto loop; printf(sum=%dn,sum); 2:求1100之间所有奇数之和。includemain() int i,sum=0; for(i=1;i=100;i+=2) sum+=i; printf(sum=%dn,sum);运行输出:sum=25003:求1100之间所有偶数之和。includemain()intsum, i; sum=0;i=2; while(i=100) sum=sum+i; i+=2; printf(sum=%dn,sum); 4:求两个正整数a,b的最大公约数 GCD(Greatest Common Divisor)。 include main() intu,v,t; printf(Input2integers:n); scanf(%d%d,&u,&v); while(v) t=u%v; u=v; v=t; printf(The GCD=%dn,u); 5:输入一个正整数,然后按反向输出。比如输入12345,则输出为54321。includemain() int number,digit; printf(Input an integern); scanf(%d,&number); do digit=number%10; printf(%d,digit); number/=10; while(number); printf(n);6:计算1到5的乘法表。 include main() int i,j; for(i=1;i=5;i+) for(j=1;j=5;j+) printf(%d*%d=%2d,i,j,i*j); printf(n); 7:把输入串中除小写元音字母以外的字符打印出来。includemain() char c; while(c=getchar()!=n) if(c=ac=ec=ic=oc=u) continue; putchar(c); 8:输出100之内3的整倍数。includemain() int i; for(i=1;i=100;i+) if(i%3!=0) continue; printf(%4d,i); 9: 输入三角形的三边,求三角形的面积。include include main() float a,b,c,area,s; printf(Input 3 edges:n); scanf(%f%f%f,&a,&b,&c);if(a+bc&b+ca&a+cb) s = (a+b+c)/2; area = sqrt(s*(s-a)*(s-b)*(s-c); printf(The area=%.2f,area); else printf(Input error!n);10:猜数游戏。程序预置一个常数(称为幻数),让用户猜,猜对时给出正确信息,否则会给出是大了还是小了的提示。 include main() int magic=618 , guess; printf(Input your guess:n); scanf(%d,&guess); if(guess!=magic) guessmagic ? printf(High):printf(Low); else printf(*Right*n); printf(%d is the magic number.n,magic); 11:用switch语句输出学生的分数等级。设分数大于等于90分者为A等,70分90分为B等(含70),60分70分为C等(含60),60分以下为D等,分数为浮点数。includemain() int i; float score; printf(Input a scoren); scanf(%f,&score); i=score/10; switch (i) case 9:; case 10:printf(A);break; case 7:; case 8:printf(B);break; case 6:printf(C);break; default:printf(D); 12:交换两个变量的值。includemain() int a,b,c; a=4,b=8; printf(a=%d,b=%dn,a,b); c=a; a=b; b=c; printf(a=%d,b=%dn,a,b);13:输入一个字符,求其先导字符和后继字符include main() charc,ch,pre,pos; c=getchar();pre=c-1;putchar(pre);putchar(,);putchar(c);putchar(n);scanf(%c,&ch);pos=c+1;printf(%c,%c,c,pos);运行输出:i(键盘上输入两个)h,iii,j14:输入一个球的半径,求其体积;输入一个圆柱体的底面半径和高,求圆柱体的表面积include define PI 3.141593main() float area,volume,rg,rs,h; printf(Input radium of global:n); scanf(%f,&rg); volume = 4*PI*rg*rg*rg/3; printf(Input radium and height of column:n); scanf(%f%f,&rs,&h); area = 2*PI*rs*rs+2*PI*rs*h; printf(The volume=%10.2fn,volume); printf(The area=%-10.2fn,area);运行输出:Input radium of global:3.5Input radium of column:4.2 4.5The volume= 179.59 (右对齐)The area=129.74 (左对齐) 15:将数组倒置define N 10includemain()int i,j,t,aN;for(i=0;i=N-1;i+) scanf(%d,&ai);for(i=0;i=N-1;i+) printf(%3d,ai);printf(n); for(i=0,j=N-1;i=N/2-1;i+,j-) t =ai; ai=aj; aj=t;for(i=0;i=N-1;i+) printf(%3d,ai);16:求某年某月某日是该年的第几天。includemain()int i,leap,y,m,d;int days213=0,31,28,31,30,31,30,31,31,30,31,30,31, 0,31,29,31,30,31,30,31,31,30,31,30,31 ;printf(Input year=? mouth=? day=?n);scanf(%d%d%d,&y,&m,&d); leap = y%4=0&y%100! =0y%400=0; for(i=1;im;i+) d=d+daysleapi;printf(It is %dth day of %d yearn,d,y);运行输出:Input year=? month=? day=?2000 3 11It is 61th day of 2000 year17:将一个二维数组行和列的元素互换,存到另一个二维数组中。例如: 1 2 3 1 4 a= b= 2 5 4 5 6 3 6程序如下:includemain() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji= aij; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); /* end of main */18:有一个3*4的矩阵,编程求出其中最大的元素的值,以及其所在的行号和列号。程序如下:includemain() int i,j,row=0, colum=0,max, a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%d,max,row,colum);19:从键盘输入一行字符,以换行符结束,分别以正向和反向的次序输出。 include define M 80 main() int i,n;char sM;for(i=0;i=M-1;i+) si=getchar(); if(si=n) break; for(n=0;n=0;n-) putchar(sn); 20:输入一行字符,统计其中以空格分开的单词的个数。includemain()char s80,c;int i,num=0,word=0;gets(s);for(i=0;(c=si)!=0;i+) if(c= ) word=0; else if(word=0) word=1; num+; printf(The number of word=%dn,num);运行输出:I love ChinaThe number of word=321:有三个字符串,要求找出其中最大者。includeincludemain()char string20;char str320;int k;for(k=0;k0) strcpy(string,str0); else strcpy(string,str11); if(strcmp(str2,string)0) strcpy(string,str2); printf(nthe largest string is: n%sn,string);22:函数的返回值int max(float x, float y) if(x=y) return(x); else return(y); void main() float a, b, c; scanf(%f%f, &a, &b); c=max(a, b); printf(max=%5.2fn, c); 运行情况如下: 2.5 5.6max= 5.0023:计算x的n次方,x=2 , -3;(n=1, 2, , 9)。 includedouble power(int x, int n) /* 函数首部 */ int i; /* 说明部分 */ double p; p=1; /* 执行部分 */ for(i=1; i=n; i+) p*=x; return(p); /* 返回p值 */ void main( ) int i; for(i=1; i10; i+) printf(power(2, %d)=%8.4f, power(-3, %d)=%11.4fn, i, power(2, i), i, power(-3, i);24:自定义函数求数的平方。 include long square(long); /* 函数声明 函数原型*/void main() long num, result; printf(Input an integer: ); scanf(%ld, &num); result=square (num); /* 函数调用 */ printf(nThe square number of %ld is %ld, num, result); long square (long x) /* 函数定义 */ long x_square; /* 说明部分 */ x_square=x*x; /* 执行部分 */ return x_square; 运行结果:Input an integer: 100 (输入)The square number of 100 is 10000 (输出)25:输入一个整数,输出其平方与立方。include/* calculate square */ long sq(int i) long a; a=i*i; return a; /* calculate cube */ long cub(int j) long b; b=sq(j)*j; return b; void main() int n; printf(Input n=?n); scanf (%d,&n); printf(Square of%d is %ldn,n,sq(n); printf(Cube of %d is %ldn,n,cub(n);运行输出:Input n=? 3Square of 3 is 9 Cube of 3 is 27 26:求n的阶乘的程序:includelong int fac(int);main()int i;for(i=1;i=10;i+)printf(%2d!=%ldn,i,fac(i); Long int fac(int n)if(n=1)return 1;else return n*fac(n-1); 运行输出: 1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=36288010!=362880027:用选择法对数组排序。includevoid selsort(int,int);void main() int i,j,a10; printf(Input 10 integers:n); for(i=0;i=9;i+); scanf(%d,&ai); selsort(a,10); printf(Sorted array are:n); for(i=0;i=9;i+) printf(%3d,ai);void selsort(int a,int n) int i,j,k,t; for(i=0;in-1;i+); k=i; for(j=i+1;jn;j+) if(ajak) k=j; if(k!=i) t=ak; ak=ai; ai=t; /* end of selsort function */28:二分法查找includedefine M 100int bis(int,int,int,int);void main()int i,k,result,aM;printf(Input %d number in order:n,M);for(i=0;i=M-1;i+) scanf(%d,&ai);printf(Enter a number to find:n);scanf(%d,&k);result=bis(a,k,0,M-1);if(result != -1) printf(%d found in array element %dn,k,result);else printf(%d not found!n,k); int bis(int b,int key,int low,int high)int mid;while(low=high) mid=(low+high)/2; if(key=bmid) return mid; else if(keybmid) high=mid-1; else low=mid+1; return -1;29:输入两个数,求较大者#includeint a=8,b=10;int max(int a,int b) int c; c=ab?a:b; return c;void main() int a=25; printf(a=%d,b=%dn, a,b); printf(max=%dn,max(a,b); 另一题30:运行输出: max=8 min=5在main函数中引用a 与 b时,a与b尚未定义, 因此要做extern说明。includeint max(int x,int y) return xy?x:y;main() extern int a,b; int min(int,int) ; printf(max=%dn,max(a,b); printf(min=%dn,min(a,b); int a=8,b=5; int min(int i,int j) return ij?i:j; 31:通过函数调用,交换两个变量的值。 include void exchange(int p1,int p2); /void exchange(int*,int*) void main() int a=5,b=8; printf(a=%d,b=%dn,a,b); exchange(a,b);/(&a,&b); printf(a=%d,b=%dn,a,b); void exchange(int p1,int p2)/(int *p1,int *p2) int n; n=p1;/n=*p1; p1=p2;/*p1=*p2; p2=n;/*p2=n; 32:定义并输入有10个元素的数组,再以反序输出。includevoid main() int i,*p,a10; p=a; puts(Input 10 integer:n); for(i=0;i=9;i+) scanf(%d,p+); p-; puts(reverse output:); for(i=0,i=9;i+) printf(%d,*p-);33:求两个整数的商。includeint div(int,int);void main() int i=9,j=4,(*p)(int,int),k; p=div; k=(*p)(i,j); printf(i/j=%dn,k); int div(int m, int n) return m/n; 34:设文件test.c内容如下,且编译后test.exe存放在c:下。includevoid main(int argc ,char *argv) int i;for(i=1;i test china tianjin bejing china tianjin beijing 35:编一函数 strsave ,可接收一个字符串,然后动态地开辟一个能放得下这个字符串的内存空间,把接收到的字符串复制到其中,并返回该空间的起始地址。includeincludeincludechar *strsave(char*);void main( ) char *str=China,*cp; cp=strsave(str); printf(str=%s,cp=%sn,str,cp); char *strsave(char *s) char *p; if(p=(char*)calloc(strlen(s)+1,1) != NULL) strcpy(p,s); return p; 36:某单位招聘博士人员,国内博士应注明取得博士学位的年份,国外博士要注明取得博士学位的国家。 include void main() struct doctor char name15; int age; int tag; union int date; char country15; catalogue; person;printf(input name,age,tag:n);scanf(%s%d%d, , &person.age, &person.tag);if(person.tag=1) puts(input date-year:); scanf(%d,&person.catalogue.date); if(person.tag=2) puts(Input country name:n ); scanf(%s,person.catalogue.country); printf(n%s,%5d,,person.age);if(person.tag=1) printf(%10dn,person.catalogue.date);if(person.tag=2) printf(%sn,person.catalogue.country);37:打印12个月份。includeenum months jan=1,feb,mar,apr,may,jun,jul,aug,sep ,oct,nov,dec;main() enum months month; char *mname= ,January,February, March,April,May, June,July,August,September,October, November, December; for(month=jan;month=dec;month+) printf(%-2dt%-12sn,month,mnamemonth);运行输出:1 January2 February3 March4 April5 May6 June 7 July8 August9 September10 October11 November12 December38:取一个整数a从右端开始的47位。#includevoid main() unsigned a,b,c,d; scanf(%o,&a); b=a4; c=(04); d=b&c; printf(%o, %dn%o, %dn,a,a,d,d);39:整数a进行右循环移n位。#includevoid main() unsigned a,b,c; int n; scanf(a=%o, n=%d,&a,&n); b=an; c=c | b; printf(%on%o,a,c);40:从键盘录入n个学生的准考证号、姓名、总分,把这些数据保存到磁盘文件kaosheng.lst中,然后再从磁盘文件中读出并在屏幕上显示出来。#include#define N 500struct student unsigned long no; char name15; float score;studN;typedef struct student STU;void save(void); void load(void);int m=0; void main() int i;printf(Input studentn umbern:1n%dn, N);scanf(%d,&m);for(i=0;im;i+) scanf(%lu%s%f,&studi.no,,&studi.score);save();load(); void save(void) FILE *fp; int i; if(fp=fopen(A:kaosheng.lst, wb)=NULL) printf(Open failn); exit(0); for(i=0;im;i+) if(fwrite(&studi,sizeof(STU),1,fp) != 1) printf(File write error!n); exit(0); fclose(fp);void load(void) FILE *fp; i

温馨提示

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

评论

0/150

提交评论