C语言简单骨架程序设计_第1页
C语言简单骨架程序设计_第2页
C语言简单骨架程序设计_第3页
C语言简单骨架程序设计_第4页
C语言简单骨架程序设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、下面程序将两个数从小到大的顺序输出,试填充空格以完善程序。 #include void main() float a,b, _;(答案:t)注释:下面用到了t,所以这里应该是定义t scanf(%f%f,&a,&b); if(ab) t=a; _;(答案:a=b)注释:ab,a赋给了t,a应该是变成小的那个,所以是a=b b=t; printf(%5.2f,%5.2fn,a,b);2、输入三个数,按从小到大的顺序输出。 main() float a,b,c,t; scanf(“%f,%f,%f”, _ ); /*分别输入要比较的三个数*/(答案:&a,&b,&c)if(ab) t=a; a=b; _; 答案:b=t注释:互相交换值,b要取大的,t这个时候是a,比较大的if(ac) t=a; _; c=t; 答案:a=c注释:理由同上,a与c的比较if(_)答案:bc t=b; b=c; c=t; printf(“%5.2f, %5.2f, %5.2f”,a,b,c);3、大小写字母的转换。 main() char c1,c2; /*定义2个字符型变量*/c1=_; /*从键盘上输入小写字符存放在变量c1中*/答案:getchar()注释:getchar()是从键盘上输入一个字符c2=_; /*将小写转化成大写字符存放在变量c2中*/答案:c1-32注释:小写字母的ASCLL码值比大写字母大32pirntf(“%c,%c”, _); /*输出两个字符*/ 答案:c1,c2注释:输出量,从全局去看,大概可以推出要求的结果是那个量运行后,从键盘上输入b回车后执行结果为:_B_4、输入圆的半径,求圆的周长和面积。_ /*定义符号常量PI,其值为3.14159*/答案:#define PI 3.14159注释:#define N aN是一个符号,作为变量的储存地方,a是一个常数或者式子main()float r,l,s;_;/*输入圆的半径*/答案:scanf(“%f”,&r)注释:简单的输入,但是注意scanf输入时要遵循的规则l=2*PI*r; /*求周长*/s=_; /*求面积*/答案:PI*r*r注释:这些都是比较简单的题目,主要是看填空的思路方式,还有就是要注意一些基本的循环和条件式子,这些题目都可以加深为很难的题目,所以这些都是最简化的骨架,懂了骨架就懂了大概的程序流程printf(“半径为%f,周长=%f,面积=%f”, r,l,s);5、打印出所有的“水仙花数”,水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例如,153=13+53+33。main()int i,j,k,n;for(n=100;n1000;n+) i=n/100;_;答案:j=n/10%10注释:求十位,可以先让一个数除以10,然后再用求余就好,例如987,除以10,变成98.7,因为是int型的,变成98,98求余,余8,即为十位k=n%10;if ( _ )答案:i*100+j*10+k=i*i*i+j*j*j+k*k*k注释:立方和相加等于原来的数,i*100+j*10+k就是原来的数printf(%4d,n);6、求1+2+3+.+n的和,将以下程序补充完整。 #include void main() int n,i=1,sum=0; /输入n的值答案:scanf(“%d”,&n) while( ) / 循环条件答案:i=n注释:一直加到n,即最大不超过n /求和 答案:sum=sum+i注释:一个个的加,i一次次加1,直到i=n的时候,停止 i+; printf(sum=%dn,sum); /输出结果 7、用下列程序计算n的阶乘,请填充空格以完善程序。 #include main() int i,n; long f; scanf(%d,&n); f=_;答案:1注释:n!最小就为1,所以先初始化f for(i=1;i=n;i+) f=_;答案:f*i注释:f=f*i,就是f*1*2*3一次次乘下去,n!就是1*2*3*。*n printf(n=%d,%d!=%ldn,n,n,f); 8、判断m是否是素数。#include#includemain() int m,k,i,n=0;scanf(“%d”,&m); k=sqrt(m); for(i= 2;ik) printf(“m是素数!n”); else printf(“m不是素数!n”); 9、下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include #include void main() int i,j, _k_;注释:老样子,观察下方变量有没有没有定义的 char str=“student”; i=0; j=strlen(str)-1 _;注释:strlen(str)是测量str这个数组的长度,最后有个结束符”0”,所以要减1 while(ij) k=stri; stri=strj; strj=k; i+; j-; puts(str);10、输入10个数,找出其中的最大值。#includevoid main()Int i,max,a10;printf(“请输入10个数:”);for(i=0;i10;i+) scanf(“%d”,_ a _);注释:a是个数组,数组不用加&max=a0;for(i=0;imax) _max=ai_;注释:aimax的话,说明max不是最大,ai大于max,所以再把ai赋给maxprintf(“最大值:%d”,max);11、输入十个整数,求其平均值。将以下程序补充完整。 #include void main() int a10,i,sum=0; float aver; for(i=0;i10;i+) Scanf(“%d”,ai) ; /输入十个整数 Sum=sum+ai ; /求和 aver= sum10 ; printf(“aver=%f”,aver); 12、使用函数求两数中的最大值。将以下程序补充完整。#include void main( ) ; /*对max函数的声明*/int a,b,c;printf(“please input 2 numbers:”);scanf(“%d%d”,&a,&b); ; /调用max函数,传递参数printf(“a=%d,b=%d,max=%d”,a,b,c);int max(int x,int y) /*定义有参函数*/int z;if(xy) z=x;else z=y; ; /向主调函数返回值答案:(1)int max(int,int)注释:函数声明,类型 函数名(函数参数类型) (2) c= max(a,b)注释:max(a,b)调用函数max (3) return z注释:看函数末尾,z是最后函数的内容,所以要返回一个数的话就是z判断闰年问题#includevoid main()int year,a;printf(请输入年份:);scanf(%d,&year);if(year%4=0&year%100!=0)|(year%400=0) a=1;else a=0;if(a=1)printf(n%d此年是闰年n,year);else printf(%d此年非闰年n,year);C语言求素数#include #include void main()int n;int k;int i;for(n=100;n=200;n+) k=sqrt(n);for(i=2;i=k;i+)if(n%i=0)break;if(i=k+1) printf(%d为素数,n); printf(n);4 编写程序,输入一百分制成绩,对应输出等级A、B、C、D、E,90分以上为A,80分89分为B,70分79分为C,60分69分为D,60分以下为E。方法一:用if语句#includemain()floatscore; chargrade;scanf(%f,&score);if(score100|score=90) grade=A;else if(score=80) grade=B;else if(score=70) grade=C;elseif(score=60) grade=D;else grade=E;printf(thestudentgrade=%cn,grade);方法二:用switch语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。#includemain()float score,ints;char grade;scanf(%f,&score);s=score/10;if(s10)printf(ninputerror!);elseswitch(s)case10: case9: grade=A; break;case8: grade=B; break;case7: grade=C; break;case6: grade=D; break;default: grade=E;printf(thestudentgrade=%cn,ch);输入任意10个数,按从大到小或从小到大的顺序输出#include#define NUM10voidmain()intaNUM,i,j,temp,flag;printf(input%dnumbers:n,NUM);for(i=0;iNUM;i+)scanf(%d,&ai);for(i=1;iNUM;i+) for(j=0;jaj+1) temp=aj; aj=aj+1; aj+1=temp; flag=1;if(flag=0)break;printf(thesortednumbers:n);for(i=0;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); 设计一个保存学生情况的结构体,学生情况包括姓名、学号、年龄。输入5个学生的情况,输出学生的平均年龄和年龄最小的学生的情况#include struct Student char name100; / 姓名char stdNo10; / 学号int age; / 年龄 ; / 输入学生信息 void input (Student *stu, int n) printf(输入%d个学生信息:, n); for (int i = 0; i n; i+) printf(n第%d个学生:n, i + 1); printf(姓名:); gets(); printf(学号:); gets(stui.stdNo); printf(年龄:); scanf(%d, &stui.age); fflush(stdin); 将一个数组中的值按逆序重新存放。例如原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。#defineN5#includevoidmain()intaN=8,6,5,4,1,i,temp;for(i=0;iN/2;i+)temp=

温馨提示

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

评论

0/150

提交评论