C语言简单骨架程序设计.docx
- 文档编号:9818863
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:16
- 大小:19.99KB
C语言简单骨架程序设计.docx
《C语言简单骨架程序设计.docx》由会员分享,可在线阅读,更多相关《C语言简单骨架程序设计.docx(16页珍藏版)》请在冰豆网上搜索。
C语言简单骨架程序设计
1、下面程序将两个数从小到大的顺序输出,试填充空格以完善程序。
#include
voidmain()
{
floata,b,_____;(答案:
t)
注释:
下面用到了t,所以这里应该是定义t
scanf("%f%f",&a,&b);
if(a>b)
{
t=a;
_____;(答案:
a=b)
注释:
a>b,a赋给了t,a应该是变成小的那个,所以是a=b
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
}
2、输入三个数,按从小到大的顺序输出。
main()
{floata,b,c,t;
scanf(“%f,%f,%f”,_______________);
/*分别输入要比较的三个数*/
(答案:
&a,&b,&c)
if(a>b)
{t=a;a=b;______________;}
答案:
b=t
注释:
互相交换值,b要取大的,t这个时候是a,比较大的
if(a>c)
{t=a;______________ ;c=t;}
答案:
a=c
注释:
理由同上,a与c的比较
if(___________)
答案:
b>c
{t=b;b=c;c=t;}
printf(“%5.2f,%5.2f,%5.2f”,a,b,c);
}
3、大小写字母的转换。
main()
{
charc1,c2;/*定义2个字符型变量*/
c1=_______________;/*从键盘上输入小写字符存放在变量c1中*/
答案:
getchar()
注释:
getchar()是从键盘上输入一个字符
c2=_______________;/*将小写转化成大写字符存放在变量c2中*/
答案:
c1-32
注释:
小写字母的ASCLL码值比大写字母大32
pirntf(“%c,%c”,________________);/*输出两个字符*/
}答案:
c1,c2
注释:
输出量,从全局去看,大概可以推出要求的结果是那个量
运行后,从键盘上输入b回车后
执行结果为:
_______B____________
4、输入圆的半径,求圆的周长和面积。
_/*定义符号常量PI,其值为3.14159*/
答案:
#definePI3.14159
注释:
#defineNa
N是一个符号,作为变量的储存地方,a是一个常数或者式子
main()
{
floatr,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()
{inti,j,k,n;
for(n=100;n<1000;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
voidmain()
{
intn,i=1,sum=0;
//输入n的值
答案:
scanf(“%d”,&n)
while()//循环条件
答案:
i<=n
注释:
一直加到n,即最大不超过n
{
//求和
答案:
sum=sum+i
注释:
一个个的加,i一次次加1,直到i=n的时候,停止
i++;
}
printf("sum=%d\n",sum);//输出结果
}
7、用下列程序计算n的阶乘,请填充空格以完善程序。
#include
main()
{
inti,n;
longf;
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!
=%ld\n",n,n,f);
}
8、判断m是否是素数。
#include
#include
main()
{
intm,k,i,n=0;
scanf(“%d”,&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0);
答案:
break
如果m这个数能被i整除,说明他不是素数,跳出这个循环,如果满足不能整除,就说明他只有自己和1,是素数
if(i>k)
printf(“m是素数!
\n”);
else
printf(“m不是素数!
\n”);
}
9、下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include
#include
voidmain()
{
inti,j,__k___ ;
注释:
老样子,观察下方变量有没有没有定义的
charstr[]= “student”;
i=0;
j=strlen(str)-1_ ;
注释:
strlen(str)是测量str这个数组的长度,最后有个结束符”\0”,所以要减1
while(i { k=str[i]; str[i]=str[j]; str[j]=k; i++; j--; } puts(str); } 10、输入10个数,找出其中的最大值。 #include voidmain() { Inti,max,a[10]; printf(“请输入10个数: ”); for(i=0;i<10;i++) scanf(“%d”,___a______); 注释: a是个数组,数组不用加& max=a[0]; for(i=0;i<10;i++) if(a[i]>max)_____max=a[i]_; 注释: a[i]>max的话,说明max不是最大,a[i]大于max,所以再把a[i]赋给max printf(“最大值: %d”,max); } 11、输入十个整数,求其平均值。 将以下程序补充完整。 #include voidmain() {inta[10],i,sum=0; floataver; for(i=0;i<10;i++) {Scanf(“%d”,a[i]);//输入十个整数 Sum=sum+a[i];//求和 } aver=sum/10; printf(“aver=%f”,aver); } 12、使用函数求两数中的最大值。 将以下程序补充完整。 #include voidmain() { ;/*对max函数的声明*/ inta,b,c; printf(“pleaseinput2numbers: ”); scanf(“%d%d”,&a,&b); ;//调用max函数,传递参数 printf(“a=%d,b=%d,max=%d”,a,b,c); } intmax(intx,inty)/*定义有参函数*/ { intz; if(x>y)z=x; elsez=y; ;//向主调函数返回值 }答案: (1)intmax(int,int) 注释: 函数声明,类型函数名(函数参数类型) (2)c=max(a,b) 注释: max(a,b)调用函数max (3)returnz 注释: 看函数末尾,z是最后函数的内容,所以要返回一个数的话就是z 判断闰年问题 #include voidmain() { intyear,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 voidmain() { intn; intk; inti; 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语句 #include main() { float score;char grade; scanf("%f", &score); if(score>100||score<0) printf("\ninput error! "); else { if(score>=90) grade='A'; else if(score>=80) grade='B'; else if(score>=70) grade='C'; else if(score>=60) grade='D'; else grade='E'; } printf("the student grade=%c\n",grade); } 方法二: 用switch语句。 注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。 所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。 则由此可得把score除十取整,化为相应的常数。 #include main() { floatscore, int s; chargrade; scanf("%f",&score); s=score/10; if(s<0||s>10) printf("\ninput error! "); else { switch (s) { case 10: case 9: grade ='A'; break; case 8: grade ='B'; break; case 7: grade ='C'; break; case 6: grade ='D'; break; default: grade ='E'; } printf("the student grade =%c \n ", ch); } } 输入任意10个数,按从大到小或从小到大的顺序输出 #include #defineNUM 10 void main () { int a[NUM], i, j, temp, flag; printf ("input %d numbers: \n", NUM); for (i=0; i scanf ("%d", &a[i]); for (i=1; i for (j=0; j { flag = 0; if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; flag = 1; } if (flag == 0) break; } printf("the sorted numbers: \n"); for (i=0; i printf ("%d ", a[i]); } 将字符串str中的小写字母全部改为大写字母,并输出该字符串 #include"stdio.h" voidfun(char*p) {inti; for(i=0;*(p+i)! ='\0';i++) if(*(p+i)>='a'&&*(p+i)<='z') *(p+i)=*(p+i)-32;} voidmain(){ charstr[50]; char*p=NULL; printf("Pleaseinputstring: \n"); gets(str); p=str; fun(p); puts(str);} 设计一个保存学生情况的结构体,学生情况包括姓名、学号、年龄。 输入5个学生的情况,输出学生的平均年龄和年龄最小的学生的情况 #include structStudent{ charname[100];//姓名 charstdNo[10];//学号 intage;//年龄 };//输入学生信息 voidinput(Student*stu,intn){ printf("输入%d个学生信息: ",n); for(inti=0;i printf("\n第%d个学生: \n",i+1); printf("姓名: "); gets(stu[i].name); printf("学号: "); gets(stu[i].stdNo); printf("年龄: "); scanf("%d",&stu[i].age); fflush(stdin); }} 将一个数组中的值按逆序重新存放。 例如原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。 #define N 5 #include void main( ) { int a[N]={8,6,5,4,1},i,temp; for(i=0;i { temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } for(i=0;i printf("%4",a[i]); } 求水仙花数,“水仙花数”即一个三位数,其各位立方和等于其本身的数 #include intmain(void) {inti,j,k; for(i=1;i<=9;i++) {for(j=0;j<=9;j++) {for(k=0;k<=9;k++) {if(100*i+10*j+k==i*i*i+j*j*j+k*k*k) { printf("%d%d%d\n",i,j,k); } } } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 简单 骨架 程序设计