1、计算机软件基础那些题那些答案计算机软件基础实验指导书参考程序【1-1】在屏幕上显示你的学号、姓名和专业,分别各占一行显示。#includemain() printf(081n王力n计算机应用n); 【1-2】如何在屏幕上显示下列图形?#includemain() printf(*n); printf( *n); printf( *n); 【例2-1】求正方形的面积和周长源程序:#include main() int a=6,zhou,mian; /*用类型名int定义三个基本型整型变量*/ zhou=4*a; /*计算周长*/ mian=a*a; /*计算面积*/ printf(周长=%d,面
2、积=%dn,zhou,mian);/*用printf函数输出整型数格式控制为:%d*/ 运行结果:周长=24,面积=36【2-1】求半径为2.3的圆的周长和面积。#includemain() double r=2.3,l,s,pi=3.142; l=pi*2*r; s=pi*r*r; printf(圆半径=%lf,周长=%lf,面积=%lfn,r,l,s);【2-2】任意输入两个基本整型数,其中一个为正,另一个为负,分别做被除数和除数时,输出它们的余数。#includemain() int a,b; printf(请输入一个正整数和一个负整数:); scanf(%d%d,&a,&b); pri
3、ntf(a=%d,b=%d, a%b =%dn,a,b,a%b); printf(b=%d,a=%d, b%a =%d n,b,a,b%a);【例2-2】任意输入一个华氏温度求对应的摄氏温度。计算公式如下:,式中:C表示摄氏温度,f表示华氏温度。源程序:#include main() double f,c; /*定义两个双精度的实型数*/ printf(“Enter f:”);/*输入提示*/*调用scanf函数给双精度的实型变量赋值,格式控制为%lf,变量名前要加地址操作符&*/scanf(%lf,&f); c=5*(f-32)/9; /*根据公式求摄氏度*/ printf(nf=%f,c=
4、%fn,f,c);运行结果:Enter f:80f=80.000000,c=26.666667Enter f:100f=100.000000,c=37.777778二、程序改错不允许增加行也不允许删除行,也不得更改程序的结构。1、已知a=3,b=5,输出a+b的和值源程序:#include “stdio.h”main() /*found*/ int a=3;b=5;sum;sum=a+b;printf(“sum=%dn”,sum);2、任意输入两个实型数,输出它们的积。源程序:#include “stdio.h”main() double x,y;printf(“在键盘上给x,y赋值:”);/
5、*found*/ scanf(“%lf%lf”,x,y); printf(“%f,%lfn”,x*y,x*y);3、分别输出234的每一位数字。源程序:#include “stdio.h”main() int x=234,a,b,c;a=x/100;/*found*/b=x%100;/*found*/c=x/10; printf(“a=%d,b=%d,c=%dn”,a,b,c);改错1题:int a=3;b=5;sum; 改为 int a=3,b=5,sum;改错2题:scanf(“%lf%lf”,x,y);改为:scanf(“%lf%lf”,&x,&y);改错3题:b=x%100;改为:b=
6、x/10%10; c=x/10;改为:c=x%10;【例3-1】输出a=3,b=9中大的数。源程序:#include stdio.hmain() int a=3,b=9,max;/*使用if-else分支结构*/ if(ab) max=a; else max=b; printf(max=%dn,max);【3-1】任意输入一个整数,如果能被3整除,输出此数;否则,输出不是3的倍数。#includemain() int n; printf(请输入整数:); scanf(%d,&n); if(n%3= =0) printf(%dn,n); else printf(不是3的倍数n);【例3-2】计算
7、分段函数,y= (x0) 3x3+1 (x=0) y=sqrt(x); /*调用开方函数sqrt()计算*/ else y=3*pow(x,3)+1; /*调用幂函数pow()计算*/ printf(nx=%.2lf,y=%fn,x,y); /*%.2lf保留两位小数输出*/运行结果:Enter x:3x=3.00,y=1.732051Enter x:-4x=-4.00,y=-191.000000【3-2】编写程序,输入x,利用分段函数,计算并输出y值。 y= |x| (x0) y=ex (x0)#include#includemain() double x,y; printf(请输入实数x:
8、); scanf(%lf,&x); if(x=0) y=fabs(x); else y=exp(x); printf(y=%fn,y); /* 或 printf(y=%lfn,y); */二、程序改错不允许增加行也不允许删除行,也不得更改程序的结构。1、任意输入一个数,如果是奇数输出“奇数”,否则,输出“偶数”。源程序:#include “stdio.h”main() int x; printf(“Enter x:”); scanf(“%d”,&x);/*found*/if x%2!=0printf(“奇数”);else printf(“偶数”);输入输出示例(共运行2次)第一次运行:Ente
9、r x:10偶数第一次运行:Enter x:11奇数2、输入x,计算并输出下列分段函数y的值(保留一位小数)。y= (x0) 0 (x=0)源程序:#include “stdio.h”main() int x;double y;printf(“Enter x:”);scanf(“%d”,&x);/*found*/if(x!=0); /*found*/y=1/x;else y=0;printf(“y=%.1fn”,y);输入输出示例(共运行2次)第一次运行:Enter x:10y=0.1第二次运行:Enter x:0y=0.0改错1题:if x%2!=0 改为 if (x%2!=0)改错2题:i
10、f(x!=0); 改为if(x!=0)y=1/x; 改为:y=1.0/x;【例4-1】求源程序:#include stdio.hmain() /*变量sum用来放累加和,和值从0开始;i用来取15中的数,同时也控制循环次数*/ int i,sum=0; for(i=1;i=5;i+) /*循环体执行5次*/ sum=sum+i; /*反复累加5次i的值*/ printf(sum=%dn,sum); 运行结果:sum=15【4-1】求 1+2+3+.+n的和。#includemain() int i,n,sum=0; printf(请输入n值:); scanf(%d,&n); for(i=1;i
11、=n;i+) sum=sum+i; printf(1+2+3+.+%d=%dn,n,sum);【例4-2】求1-2+3-4+。n的值源程序:#include main() int i,f=1,n,sum=0; /*变量f用来存放正负号*/ printf(Enter n:); scanf(%d,&n); for(i=1;i=n;i+) sum=sum+i*f; f=-f; /*改变正负号*/ printf(nsum=%dn,sum);运行结果:Enter n:5sum=3【4-2】求 1-1/3+1/5-1/7+.+1/n的和。#includemain() int i,n,f=-1; doubl
12、e sum=0; printf(请输入n值:); scanf(%d,&n); for(i=1;i=n;i=i+2) sum=sum+f*1.0/i; /* 加数为f*1.0/i */ f= -f; /*求下一个加数的符号值*/ printf(结果为%fn,sum);【例4-3】求12345的积。(即求5!)源程序:#include main() int i,t=1; /*t用来放阶乘值*/ for(i=1;i=5;i+) t=t*i; printf(%d!=%dn,5,t); 运行结果:5!=120【4-3】任意输入两个正整数m和n,求m!+n!的值。#includemain() int i,
13、m,n,t1=1,t2=1,sum; printf(请输入m和n的值:); scanf(%d,%d,&m,&n); for(i=1;i=m;i+) t1=t1*i; for(i=1;i=n;i+) t2=t2*i; sum=t1+t2; printf(%d!+%d!=%dn,m,n,sum);二、程序改错不允许增加行也不允许删除行,也不得更改程序的结构。1、改正下列程序中的错误,计算表达式1+2+3+。+100的值。源程序:#include “stdio.h”main() /*found*/int i,sum;for(i=1,i=100,i+)sum=sum+i;printf(“sum=%dn
14、”,sum);运行结果(改正后程序的运行结果)sum=50502、输出三位数中能够被300整除的数。源程序:#include main() int i; /*found*/for(i=100;i=999;i+); if(i%300=0) printf(%5d,i);运行结果:300 600 900改错1题:(1)int i,sum; 改为:int i,sum=0;(2)for(i=1,i=100,i+) 改为 for(i=1;i=100;i+)改错2题:for(i=100;i=999;i+);改为:for(i=100;i=999;i+)【例5-1】任意输入一个字符,如果是小写字母字母以大写字母
15、输出,是大写字母以小写字母输出;否则,按原样输出。源程序:#include main() char ch; printf(Enter ch:); ch=getchar(); /*调用字符输入函数getchar()从键盘输入一个字符*/ if(ch=a&ch=A&ch=Z) /*判断ch变量内容是否是大写字母*/ putchar(ch+32); else putchar(ch); 【5-1】任意输入一个字符,如果是数字字符,则输出相应的数字,是空格输出它的ASCII码值;否则,原样输出。提示:例:5-0=5#includemain() char ch; ch=getchar(); if(ch=0
16、 & ch=9) printf(%dn,ch-0); else if(ch= = ) printf(%dn,ch); else printf(%cn,ch);/*putchar(ch);*/【例5-2】输入十个字符,统计其中的空格、回车和其它字符个数。源程序:#include main() char ch; int i,num1=0,num2=0,num3=0; for(i=1;i=10;i+) ch=getchar(); /*循环一次给变量ch赋值一次*/ if(ch= ) num1=num1+1; /*统计空格个数*/ else if(ch=n) num2=num2+1; /*统计回车个数
17、*/ else num3=num3+1; /*统计其它字符个数*/ printf(空格=%d,回车=%d,其它=%dn,num1,num2,num3);【5-2】输入n个字符统计其中数字字符、*号和字母的个数。#include main() char ch; /*定义字符型变量*/int i,n,num1=0,num2=0,num3=0; /*i计数变量,其它变量计各类字符的个数*/printf(请输入要统计的字符的个数n的值:);scanf(%d,&n); /*给n赋值*/for(i=1;i=0&ch=a&ch=A&ch=Z) ) num3=num3+1; /*统计字母个数*/printf(
18、共输入%d个字符n,n); printf(数字%d个,*号%d个,字母%dn,num1,num2,num3); /*输出统计结果*/【例5-3】输入x,计算并输出下列分段函数y的值。x3 (0x5)y= lnx (5x10)|x| (x0)源程序:#include #include main() float x,y; /*定义两个单精度的实型变量*/ printf(Enter x:); scanf(%f,&x); /*给单精度变量赋值,格式控制为:%f*/ if(x0&x5) /*不能表示为:0x=5&x10) y=log(x); else if(x0) y=fabs(x); printf(n
19、x=%f,y=%fn,x,y);【5-3】输入x,计算并输出分段函数y的值。当x0时y=0当0x10时y=9x/2当x10时y=4.5x-8.5x#include #include main() float x,y; /*定义两个单精度的实型变量*/printf(Enter x:); scanf(%f,&x); /*给单精度变量赋值,格式控制为:%f*/if(x0) y=0;else if(x10) y=9*x/2;else y=4.5*x-8.5*x;printf(nx=%f,y=%fn,x,y);【例5-4】任意输入year,判断是否是闰年,判断闰年的条件:能被4整除但不能被100整除,或
20、者能被400整除。源程序:#include main() int year; printf(Enter year:); scanf(%d,&year); if(year%4=0&year%100!=0|year%400=0) printf(yes); else printf(no);【5-4】任意输入一个数,判断是否是偶数,是,输出yes;否则,输出no。#includemain() int n; /*定义变量*/ printf(请输入n的值:); scanf(%d,&n); /*给变量n赋值*/ if(n%2= =0) printf(yesn); /*偶数输出“yes”*/ else pri
21、ntf(non); /*不是偶数输出“no”*/【例5-5】任意输入一个人的成绩,输出相应的成绩等级。100-90:等级A、89-80:等级B、79-70:等级C、69-60:等级D,其它等级E源程序:#include main() int x; printf(Enter x:); scanf(%d,&x); switch(x/10) /*成绩除以10取整数*/ case 10: case 9:printf(A);break;/*break语句:提前退出switch语句*/ case 8:printf(B);break; case 7:printf(C);break; case 6:print
22、f(D);break; default:printf(E); 【5-5】输入10个字符,分别统计空格、回车和其它字符出现的次数。#include main() char ch; int i,n1=0,n2=0,n3=0; /*i循环变量,其它变量用来计数*/printf(请输入10个字符:);for(i=1;i=10;i+) scanf(%c,&ch); /*给ch赋值*/ switch(ch) /*判断字符类型计数*/ case : n1=n1+1; break; /*是空格*/ case n: n2=n2+1;break; /*是回车*/ default : n3=n3+1; 【例5-6】
23、任意输入三角形的三条边判断能否构成三角形(1)能,再判断能否构成等边三角形,能输出面积;否则,不输出任何信息。提示:三角形面积公式:和(2)不能构成三角形,输出“NO”。源程序:#include #include main() int x,y,z; double s,area; printf(Enter x,y,z:); scanf(%d%d%d,&x,&y,&z); if(x+yz&x+zy&y+zx) if(x=y&y=z&x=z) s=1.0/(x+y+z); area=sqrt(s*(s-x)*(s-y)*(s-z); printf(面积=%fn,area); else printf(
24、NO);【5-6】任意输入一个数,判断是否是2100之间的数:(1)是,判断是否是3的倍数,是,输出此数;否则,不输出。(2)不是,输出输入错误。#includemain() int n; /*定义变量n为int类型*/ printf(请输入一个数n:); scanf(%d,&n); /*给n赋值*/ if(n=2&n=100) /*判断n在2100之间*/ if(n%3= =0) printf(%dn,n); /*再判断n是否能被3整除*/ else printf(输入错误n); /*n不在2100之间输出“输入错误”*/二、程序改错不允许增加行也不允许删除行,也不得更改程序的结构。1、计算下面分段函数的值 x+5 (x0) f(x) = x2-x+3 (0x10) 4x-7 (x10)源程序:main() int x,y;/*found*/scanf(“%d”, x);if(x0) y=x+5;/*found*/else if(x1) /*found*/ b=1;c=3;else b=2;printf(“%d,%dn”,b,c);改错1题:(1)scanf(“%d”, x); 改为:scanf(“%d”, &x);(2)else if(x10) y=x2-x+3;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1