c语言课件上出现的题目.docx_第1页
c语言课件上出现的题目.docx_第2页
c语言课件上出现的题目.docx_第3页
c语言课件上出现的题目.docx_第4页
c语言课件上出现的题目.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

顺序结构:1,交换顺序#includevoid main()int a=1,b=3,x;x=a;a=b;b=x;printf(%dn%d,a,b);2,计算圆的周长#include /*程序功能:根据输入的半径,输出圆的周长*/void main() float r, cir; /* 定义实数变量*/ scanf( %f ,&r); /* 从键盘输入变量r的值*/ cir =2 *3.14* r; /* 计算周长 */ printf(circumference = %fn , cir); /* 输出周长*/3,计算圆的面积#include void main() float a,b,h,area; printf( please input a,b,h: ); scanf(%f%f%f, &a, &b, &h); area= (a+b)*h/2; printf( area=%fn, area);4,大小字符的转换#include void main() char lower,upper; printf(“please input an lowercase:”); lower=getchar(); /*从键盘上输入一个字符,并赋值给lower */ upper=lower-32; printf(“after transform,it is ”); putchar(upper); /*将upper输出 */循环5,求班级平均成绩方法一(for)#include void main( ) int i,n; float sum,score, average=0.0; printf(n n=?); scanf(%d,&n); for(i=1;i=n;i+) printf(n score=?); scanf(%f,&score); /* 输入学生成绩 */ if(score100.0) /* 判断成绩的合法性 */ printf(“the score you input is not between 0-100,please re-input! ”); i-; continue; sum += score; /* 求成绩之和 */ average = sum/n; /* 求平均成绩 */ printf(n average =%f, average);方法二(while)#include void main( ) int i,n; float sum,score, average=0.0; printf(n n=?); scanf(%d,&n); for(i=1;i=n;i+) printf(n score=?); scanf(%f,&score); /* 输入学生成绩 */ while(score100.0)/* 判断成绩的合法性 */ printf(n the score you input is not between 0-100,please re-input! ); scanf(%f,&score); /* 输入学生成绩 */ sum += score; /* 求成绩之和 */ average = sum/n; /* 求平均成绩 */ printf(n average =%f, average);6,求一个数的逆序数#include void main( ) int k,n=0; printf(k=?); scanf(%d,&k); printf(n); do n+; /* 计数器n加1,下边要计算倒数第n位*/ printf(“%d”,k%10); /* 求倒数第n位并输出*/ k/=10; /* 为下一次循环做准备*/ while(k0); printf(n n=%d,n);7,计算求1!+2!+n!#include main()int i,n; double term,sum; printf(“please input n:”); scanf(“%d”,&n); for(i=1,term=1,sum=0;i=n;i+) term*=i; sum=sum+term; /* 找规律(通项) */ printf(“sum=%lfn”,sum);8,穷举法(百钱买鸡#include void main() int Cocks, Hens, Chicks; printf(“Cocks t Hens t Chicksn); for (Cocks =0; Cocks =20; Cocks +) for (Hens =0; Hens =33; Hens +) Chicks = 100 Cocks - Hens; if (5* Cocks +3* Hens + Chicks /3.0 = 100) printf(“n%dt%dt%dn,Cocks,Hens,Chicks); 9,判断一个数是否为素数方法一#include #include void main() int m,i,k; do printf(Input a positive integer m2 : ); scanf(%d,&m); while(m=2); /* 保证输入大于2的整数 */ k=sqrt(m); for(i=2; i=k+1) printf(%d is a prime.n,m); /* 无整除数就是素数 */ else printf(%d is not a prime.n,m);方法二#include void main() int m, i, k, find = 0; /*标志变量find置为1*/printf(Please enter a number (=2) :);scanf(%d,&m); k = sqrt(m); for (i=2; i=k & !find; i+) if (m % i = 0) find = 1; if (find) printf(No!n); else printf(Yes!n); 方法三#include #include void main() int m, i, k; printf(Please enter a number:); scanf(%d, &m); k = sqrt(m); for (i=2; i=k; i+) if (m%i = 0) printf(No!n); goto end; /*另外一个程序转向语句:goto,end是语句标号*/ printf(Yes!n); end: ; /end用于标记位置。方法四#include /用return实现#include int main() int m, i, k; printf(Please enter a number:); scanf(%d, &m); k = sqrt(m); for (i=2; i=k; i+) if (m%i = 0) printf(No!n); return 0; /直接结束程序 printf(Yes!n); 10求两个数的最大公约数(辗转相除法)#include void main() int a, b, r; printf(Please enter two integers:);scanf(%d%d,&a,&b); do r=a%b; a=b; b=c; while(r!=0);printf(The greatest common divisor is %dn,a); 11输出平方根表#include #include void main() int i, j; for (i=0; i=9; i+) /*i可表示第一个乘数从1到9*/ for (j=0; jy)? x : y; /*函数定义(1)*/13引用函数转换大小写字母#include char atoA(char);/*函数声明*/* 函数功能:将小写字母转换成大写字母函数形式参数:小写字母char lower 函数返回值:转换成的大写字母,char类型*/char atoA(char lower) /*函数定义*/ return (lower-32);void main() char lower,upper; printf( please input an lowercase: ); scanf(%c, &lower); upper= atoA(lower); /*函数调用*/ printf( lower:%c-upper:%cn, lower,upper);14判断素数函数#include #include /*如果函数定义在函数调用之前,可以省略函数声明,但最好不省略。*/int Prime(int m) /*函数功能:判断m是否为素数,是返回1,否返回0*/ int i,find = 0, k = sqrt(m); for (i=2; i=k & !find; i+) if (m % i = 0) find = 1; return !find;void main() int m; for (m=2;m=100; m+) if (Prime(m) /*函数调用*/ printf(Yes! %d is a prime!n ,m); else printf(No!%d is not a prime!n ,m); 15求三个数的最大值#include #include int Max(int a,int b); /函数声明int Min(int a,int b); /函数声明void main()int a,b,c,max,min; /定义 printf(请输入三个整数:); scanf(%d,%d.%d,&a,&b,&c);max=Max(Max(a,b),c); /计算1、求三个数的最大值(调用函数)min=Min(Min(a,b),c); /计算2、求三个数的最小值(调用函数)printf(%d,max-min); /输出/函数功能:求两个数的最大值/形参:int a,int b/返回值:最大值, intint Max(int a,int b) /函数定义return (ab)?a:b;/求两个数的最小值/形参:int a,int b/返回值:最大值, intint Min(int a,int b) /函数定义return (a1#includedouble Fac(int n) if(n=1) return 1; else return n*Fac(n-1);void main()int n; printf(please input a number:n); scanf(%d,&n); printf(%2d!=%f,n,Fac(n);double Fac(int n) if(n=1) return 1; else return n*Fac(n-1);17迭代汉诺塔问题#include /* 包含头文件 */void move(int,char,char); /* 自定义函数的声明 */void hanoi(int n,char,char,char); /* 自定义函数的声明 */void main() /* 主函数,无参数,无返回值 */ int n; /* 定义整型变量n,存放盘子总数 */ printf(Input the number of diskes: ); /* 提示输入n的值 */ scanf(%d,&n); /* 输入n的值 */ printf(The step to moving %3d diskes:n,n); hanoi(n,A,B,C); /* 借助B柱子将n个盘子从A移到C */* 定义函数:显示第no个盘子的移动过程,从from到to */void move(int no,char from,char to) printf(Move %3d : %c %cn,no,from,to);/* 定义函数:借助by柱子将n个盘子从from柱子移动到to柱子*/void hanoi(int n,char from,char by,char to) if (n=1) move(n,from,to); else hanoi(n-1,from,to,by); move(n,from,to); hanoi(n-1,by,from,to); /* 定义函数:显示移动过程 int no:表示第no个盘子 char from:表示源柱子 char to:表示目的柱子*/void move(int no,char from,char to) printf(Move %3dth disk:%c -%cn,no,from,to);/* 定义函数: 借助by柱子将n个盘子从from柱子移动到to柱子 int n:表示n个盘子 char from:表示源柱子 char to:表示目的柱子,char by:表示要借助的柱子*/void hanoi(int n,char from,char by,char to) if (n=1) move(n,from,to); else hanoi(n-1,from,to,by); move(n,from,to); hanoi(n-1,by,from,to); 18数组求不及格的人数#define N 30void main()int scoreN; int i,counter=0; for (i=0;iN;i+)/*输入*/ scanf(%d,&scorei); for (i=0;iN;i+)/*统计*/ if(scorei60) counter+; printf(“The number of unpassed students:%d”,counter);1919#include void main() int i,fib40=1,1; for(i=2;i40;i+) fib i=fib i-2+fib i-1; for(i=0;i40;i+) if(i%4=0) printf(n); printf(%12d,fib i); 20查找某一数据方法一:顺序查找#include #define N 200int Search(int a, int n, int x);void main() int i,aN, x, find_i; printf(Input %d score:n,N); for(i=0;i=N-1;i+) scanf(%d,&a i);printf(please input the number to search:); scanf(%d,&x); /*输入要找的数x*/ find_i=Search(a, N, x);/调用下边的函数查找 if(find_i=-1) /*find_i的值没变,表示没找到*/ printf(not found!); else printf(found!,a%d=%dn,find_i,afind_i);/函数功能:用顺序查找法在具有n个元素的数组a中查找x,返回第一次出现的下标。/虽然在时间上要先定义函数,但往往将函数定义放在main()之后。int Search( int a, int n, int x) int i; for (i=0; in; i+) if (ai = x) return (i); /找到返回下标。 return (-1);/没找到返回-1方法二:二分法#include #define N 200int BinSearch(int a, int n, int x);void main() int aN,i,x, find_i; printf(Input %d score:n,N); for(i=0;i=N-1;i+) scanf(%d,&a i);printf(please input the number to search:); scanf(%d,&x); /*输入要找的数x*/ find_i=BinSearch(a,N, x);/调用下边的函数查找 if(find_i=-1) /*find_i的值没变,表示没找到*/ printf(not found!); else printf(found!,a%d=%d,find_i,x); /函数功能:用二分法在具有n个元素的数组a中查找x,返回第一次出现的下标。/虽然在时间上要先定义函数,但往往将函数定义放在main()之后。int BinSearch(int a,int n,int x) int left=0,right=n-1,mid, find_i=-1;/标志变量 /*当还有区域没找,而且还未找到的时候循环查找*/ while (left amid) /*重新设定右边界*/ left = mid + 1;else if (x amid) /*重新设定左边界*/ right = mid - 1; else /*找到,结束*/ find_i=mid; return find_i;方法三:冒泡法#include #define N 4void Sort_bubble(int a,int n); /函数声明void main() int score N,i; printf(Input %d score:n,N); for(i=0;i=N-1;i+) scanf(%d,&score i); Sort_bubble(score, N); /函数调用 printf( n The sorted score:n); for(i=0;i=N-1;i+) if(i%15=0) printf(n); printf(%4d , scorei); /函数功能:用冒泡法对有n个数组元素的数组a进行排序/先定义函数,但往往将函数定义放在main()之后。void Sort_bubble(int a,int n)int i,j,t;for(j=0; j=n-2; j+) /*冒泡法排序*/ for(i=0; i=(n-2)-j; i+) if(aiai+1) t=ai;ai=ai+1;ai+1=t; /*由于形参数组和实参数组是同一个数组,所以,对a进行排序,实际上就是对主函数中的score数组进行排序。因此不需要返回。*/方法四:选择法#include #define N 200void Sort_select(int a,int n); /函数声明void main() int score N,i; printf(Input %d score:n,N); for(i=0;i=N-1;i+) scanf(%d,&score i); Sort_select(score, N); /函数调用 printf( n The sorted score:n); for(i=0;i=N-1;i+) if(i%15=0) printf(n); printf(%4d , scorei); /函数功能:用选择法对有n个数组元素的数组a进行排序/先定义函数,但往往将函数定义放在main()之后。void Sort_select(int a,int n)int i,j,max_i,t;for(j=0;j=n-2;j+) /*选择法排序*/ max_i=j; for(i=j+1;iamax_i) /*若从小到大排序,改成*/ max_i=i; if(max_i! =j) t=amax_i; amax_i=aj; aj=t; /*由于形参数组和实参数组是同一个数组,所以,对a进行排序,实际上就是对主函数中的score数组进行排序。因此不需要返回。*/21统计男女生比例#include #define N 6int Count( char a, int n, char x) ;void main() int i,num; char sexN; for(i=0;i=N-1;i+) printf(Input %dth sex(/m/-male, /f/-female):n,i); scanf(%1s,&sex i);/如果用%c会怎样? num=Count( sex, N, m );/调用函数统计男生性别 printf(男生比例为:%.2f%,女生比例为: %.2f% n,num*100.0/N, 100-num*100.0/N); /注:用%才能输出一个%,用/才能输出一个/函数功能:统计数组中x出现的次数。int Count( char a, int n, char x) int i,counter=0; for (i=0; in; i+) if (ai = x) counter+; return counter;统计单词的个数(调用函数未复制)#include #define N 500int Count( char a, int n, char x) ;void main() int i,num; char sentenceN; printf(please input a sentence:); gets(sentence); for(i=0; sentencei!=0; i+ );/数字符个数 num=Count(sentence, i, ); printf(单词个数是:%d n,num);22求n个字符串中的最小字符串#include #include #define ARRA_SIZE 80void main()int n, num;char strARRA_SIZE, minARRA_SIZE;printf(Please enter five names:n);gets(str); strcpy(min, str); for (n=1; n5; n+)gets(str); if (strcmp(str, min) 0) strcpy(min, str); printf(The min is:);puts(min); 23判断是不是回文数#include #include void main() int i,j, equal=1; char str20; printf(Input a integer: ); scanf(%s,str); for(i=0,j=strlen(str)-1;ij&equal;i+,j-) if(stri!=strj) equal=0; if(equal) printf(n %s is a palindrome!n,str); else printf( %s isnt a palindrome!n,str);24计算字符串长度#includeunsigned int My_strlen(char a);/*函数功能:求一个字符串中字符个数*/unsigned int My_strlen(char a)int i,number=0; for(i=0;ai!=0;i+) number+; return number; /*直接返回i(不用number)即可*/void main() char str50; int n; puts(“please input a string”); scanf(%s,str); n=My_strlen(str); printf(strlen( %s)=%d.n,str,n);25比较字符串大小#includeint My_strcmp(char a,char b);/*函数功能:比较两个字符串的大小,返回它们的差*/int My_strcmp(char a ,char b)int i; for(i=0; ai=bi&(ai!=0|bi !=0);i+); /*找第一个不相等的字符*/ return ai-bi; /*返回它们的差*/void main()char str150,str250; int minus; printf( please input two strings: ); scanf(%s%s,str1,str2); minus=My_strcmp(str1,str2); if(minus0) printf( %s%s.n,str1,str2); else if(minus0) printf( %s%s.n,str1,str2); else pri

温馨提示

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

评论

0/150

提交评论