实验参考答案.doc

上传人:wj 文档编号:2891350 上传时间:2023-05-04 格式:DOC 页数:18 大小:168KB
下载 相关 举报
实验参考答案.doc_第1页
第1页 / 共18页
实验参考答案.doc_第2页
第2页 / 共18页
实验参考答案.doc_第3页
第3页 / 共18页
实验参考答案.doc_第4页
第4页 / 共18页
实验参考答案.doc_第5页
第5页 / 共18页
实验参考答案.doc_第6页
第6页 / 共18页
实验参考答案.doc_第7页
第7页 / 共18页
实验参考答案.doc_第8页
第8页 / 共18页
实验参考答案.doc_第9页
第9页 / 共18页
实验参考答案.doc_第10页
第10页 / 共18页
实验参考答案.doc_第11页
第11页 / 共18页
实验参考答案.doc_第12页
第12页 / 共18页
实验参考答案.doc_第13页
第13页 / 共18页
实验参考答案.doc_第14页
第14页 / 共18页
实验参考答案.doc_第15页
第15页 / 共18页
实验参考答案.doc_第16页
第16页 / 共18页
实验参考答案.doc_第17页
第17页 / 共18页
实验参考答案.doc_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验参考答案.doc

《实验参考答案.doc》由会员分享,可在线阅读,更多相关《实验参考答案.doc(18页珍藏版)》请在冰点文库上搜索。

实验参考答案.doc

计算机软件基础实验指导书参考程序

【1-1】在屏幕上显示你的学号、姓名和专业,分别各占一行显示。

#include

main()

{printf("081\n王力\n计算机应用\n");}

【1-2】如何在屏幕上显示下列图形?

#include

main()

{printf("*****\n");

printf("***\n");

printf("*\n");

}

【2-1】求半径为2.3的圆的周长和面积。

#include

main()

{doubler=2.3,l,s,pi=3.142;

l=pi*2*r;

s=pi*r*r;

printf("圆半径=%lf,周长=%lf,面积=%lf\n",r,l,s);

}

【2-2】任意输入两个基本整型数,其中一个为正,另一个为负,分别做被除数和除数时,输出它们的余数。

#include

main()

{inta,b;

printf("请输入一个正整数和一个负整数:

");

scanf("%d%d",&a,&b);

printf("a=%d,b=%d,a%b=%d\n",a,b,a%b);

printf("b=%d,a=%d,b%a=%d\n",b,a,b%a);

}

改错1题:

inta=3;b=5;sum;改为inta=3,b=5,sum;

改错2题:

scanf(“%lf%lf”,x,y);改为:

scanf(“%lf%lf”,&x,&y);

改错3题:

b=x%100;改为:

b=x/10%10;c=x/10;改为:

c=x%10;

【3-1】任意输入一个整数,如果能被3整除,输出此数;否则,输出"不是3的倍数"。

#include

main()

{intn;

printf("请输入整数:

");

scanf("%d",&n);

if(n%3==0)

printf("%d\n",n);

else

printf("不是3的倍数\n");

}

【3-2】编写程序,输入x,利用分段函数,计算并输出y值。

y=|x|(x≤0)

y=ex(x>0)

#include

#include

main()

{doublex,y;

printf("请输入实数x:

");

scanf("%lf",&x);

if(x<=0)

y=fabs(x);

else

y=exp(x);

printf("y=%f\n",y);/*或printf("y=%lf\n",y);*/

}

改错1题:

ifx%2!

=0改为if(x%2!

=0)

改错2题:

if(x!

=0);改为if(x!

=0)

y=1/x;改为:

y=1.0/x;

【4-1】求1+2+3+...+n的和。

#include

main()

{inti,n,sum=0;

printf("请输入n值:

");

scanf("%d",&n);

for(i=1;i<=n;i++)

sum=sum+i;

printf("1+2+3+...+%d=%d\n",n,sum);

}

【4-2】求1-1/3+1/5-1/7+...+1/n的和。

#include

main()

{inti,n,f=-1;

doublesum=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("结果为%f\n",sum);

}

【4-3】任意输入两个正整数m和n,求m!

+n!

的值。

#include

main()

{inti,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!

=%d\n",m,n,sum);

}

改错1题:

(1)inti,sum;改为:

inti,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】任意输入一个字符,如果是数字字符,则输出相应的数字,是空格输出它的ASCII码值;否则,原样输出。

提示:

例:

'5'-'0'=5

#include

main()

{charch;

ch=getchar();

if(ch>='0'&&ch<='9')printf("%d\n",ch-'0');

elseif(ch=='')printf("%d\n",ch);

elseprintf("%c\n",ch);/*putchar(ch);*/

}

【5-2】输入n个字符统计其中数字字符、*号和字母的个数。

#include

main()

{charch;/*定义字符型变量*/

inti,n,num1=0,num2=0,num3=0;/*i计数变量,其它变量计各类字符的个数*/

printf("请输入要统计的字符的个数n的值:

");

scanf("%d",&n);/*给n赋值*/

for(i=1;i<=10;i++)/*for循环控制函数体执行n次*/

{ch=getchar();/*循环一次给变量ch赋值一次*/

if(ch>='0'&&ch<='9')

num1=num1+1;/*统计数字个数*/

elseif(ch=='*')

num2=num2+1;/*统计*号个数*/

elseif((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))

num3=num3+1;/*统计字母个数*/

}

printf("共输入%d个字符\n",n);

printf("数字%d个,*号%d个,字母%d\n",num1,num2,num3);/*输出统计结果*/

}

【5-3】输入x,计算并输出分段函数y的值。

当x<0时y=0

当0≤x<10时y=9x/2

当x≥10时y=4.5x-8.5x

#include

#include

main()

{floatx,y;/*定义两个单精度的实型变量*/

printf("Enterx:

");

scanf("%f",&x);/*给单精度变量赋值,格式控制为:

%f*/

if(x<0)y=0;

elseif(x<10)y=9*x/2;

elsey=4.5*x-8.5*x;

printf("\nx=%f,y=%f\n",x,y);

}

【5-4】任意输入一个数,判断是否是偶数,是,输出"yes";否则,输出"no"。

#include

main()

{intn;/*定义变量*/

printf("请输入n的值:

");

scanf("%d",&n);/*给变量n赋值*/

if(n%2==0)

printf("yes\n");/*偶数输出“yes”*/

else

printf("no\n");/*不是偶数输出“no”*/

}

【5-5】输入10个字符,分别统计空格、回车和其它字符出现的次数。

#include

main()

{charch;

inti,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】任意输入一个数,判断是否是2~100之间的数:

(1)是,判断是否是3的倍数,是,输出此数;否则,不输出。

(2)不是,输出"输入错误"。

#include

main()

{intn;/*定义变量n为int类型*/

printf("请输入一个数n:

");

scanf("%d",&n);/*给n赋值*/

if(n>=2&&n<=100)/*判断n在2~100之间*/

{if(n%3==0)

printf("%d\n",n);}/*再判断n是否能被3整除*/

elseprintf("输入错误\n");/*n不在2~100之间输出“输入错误”*/

}

改错1题:

(1)scanf(“%d”,x);改为:

scanf(“%d”,&x);

(2)elseif(x<10)y=x^2-x+3;改为elseif(x<10)y=x*x-x+3;

(3)elsey=4x-7;改为:

elsey=4*x-7;

改错2题:

b=1;c=3;改为:

{b=1;c=3;}

【6-1】求1-2+3-4+5的和。

#include

main()

{intf=1,sum=0,i=1;

while(i<=5)

{sum+=i*f;

f=-f;

i++;}

printf("1-2+3-4+5=%d\n",sum);

}

【6-2】

#include

#include

main()

{doublet=1.0/2,a=1,b=1,c=1,d=2,eps,s=0;

scanf("%lf",&eps);

while(fabs(t)>=eps)

{s=s+t;

a=-a;

b=b+2;

c=c+1;

d=d+1;

t=a*b/(c*d);}

printf("%lf",s);

}

【6-3】

#include

main()

{inta,s=0;

printf("Enternumber:

");

scanf("%d",&a);/*输入第一个数*/

while(a>0)/*输入数据大于0时,执行循环*/

{ if(a%2!

=0)/*如果输入数据为奇数,求和*/

s=s+a;

scanf("%d",&a);/*输入一个新数据为下一次循环做准备*/

}

printf("奇数和=%d\n",s);

}

改错1题:

printf("%d,",k);k=k-1;改为:

{printf("%d,",k);k=k-1;}

或printf("%d,",k),k=k-1;或printf("%d,",k--);

改错2题:

while(i<=20);改为:

while(i<=20)

填空1题:

(1)x>=0

(2)x

(ch=getchar())!

=’\n’

【7-1】

#include"stdio.h"

main()

{

inti=1,n,f=1;

doublesum=0;

printf("Entern:

");

scanf("%d",&n);

do

{sum+=f*1.0/i;

i=i+2;

f=-f;

}while(i<=n);/*先执行一次循环体,在判断循环终止条件*/

printf("sum=%f,i=%d\n",sum,i);

【7-2】

#include"stdio.h"

main()

{inti=0,n,s=0,j;

printf("Entern:

");

scanf("%d",&n);

do

{j=n%10;

s=s+j;

n=n/10;

i++;/*i用来统计位数*/

}while(n);/*while(n)等价于while(n!

=0)*/

printf("i=%d,s=%d\n",i,s);

}

改错1题:

(1)min

(2)While(i>n);改为:

while(i<=n);

改错1题2题:

(1)if(i!

=5&&a%5=0)改为if(i!

=5&&a%5==0)

(2)while(i>0);改为:

while(i<5);

填空1题:

t*n/(2*n+1);填空2题:

n%10填空3题:

(1)s/100

(2)10*i

思考题:

程序1结果为sum=0,i=6循环体一次也没有执行

程序2结果为sum=6,i=7执行了一次循环体

【8-1】

#include

main()

{inti;

for(i=100;i<=999;i++)

if(i%5==0)

printf("%5d",i);

}

【8-2】

#include"stdio.h"

main()

{doublei,sum=0,t=1,n;

scanf("%lf",&n);

for(i=1;i<=n;i++)

{t=t*i;

sum=sum+1.0/t;}

printf("sum=%f\n",sum);

}

【8-3】

#include

main()

{intx,s=0;

for(x=1;;x++)/*表达式2省略表示永远为真*/

{s=s+x;

if(s>10)

break;}

printf("%d",s);

}

改错1题:

for(n=1;n<=30;n++);改为:

for(n=1;n<=15;n++)

改错2题:

for(i=1;i<=n)改为for(i=1;i<=n;)

改错3题:

if(i==(i*i)%10&&i==(i*i)%100)改为:

if(i==(i*i)%10||i==(i*i)%100)

填空1题:

n%3==0填空2题:

m/n

思考题3题:

结果为:

随机数,11

思考题4题:

100101;将break改为continue后结果为:

输出100到999之间不能被3整除的数

【9-1】

#include"stdio.h"

main()

{inti,j;

for(i=1;i<=4;i++)

{for(j=1;j<=4-i;j++)printf("");

for(j=1;j<=2*i-1;j++)printf("*");

printf("\n");

}

}

【9-2】

#include"stdio.h"

#include"math.h"

main()

{inti,j;doublesum=0;

for(i=100;i<=200;i++)

for(j=2;j

if(i%j==0)

{sum+=sqrt(i);break;}

printf("%f",sum);

}

改错1题:

for(n=1;n<=8;n++;)改为:

for(n=1;n<=8;n++)

scanf("%f",&score);ave+=score;printf("NO%d:

%f\n",n,ave);

改为:

{scanf("%f",&score);ave+=score;}printf("NO%d:

%f\n",n,ave/5);

改错2题:

(1)for(j=1;j<=10+i;j++)改为:

for(j=1;j<=10-i;j++)

(2)for(j=1;j<=2*i+1;j++)改为:

for(j=1;j<=5;j++)

填空1题:

s=0填空2题:

(1)m+1

(2)i-1

【10-1】

#include"stdio.h"

voidstar();

voidfun();

voidmain()

{star();

star();

fun();

star();

star();}

voidstar()/*定义函数*/

{printf("**********\n");}

voidfun()/*定义函数*/

{printf("hello\n");}

【10-2】

#include"stdio.h"

intfac(intm);

intfac(intn)

{intt=1,i;

for(i=1;i<=m;i++)

t=t*i;

returnt;

}

main()

{intn;doublef;

printf("inputn:

");scanf("%d",&n);

f=fac(n);

printf("%d!

=%f\n",n,f);

}

【10-3】

#include"stdio.h"

#include"math.h"

floatfun(floatx)/*在自定义函数体中可以有若干个return语句,但只有一个起作用*/

{if(x==0)return2*x-1;

elseif(x>0)returnsqrt(x);

elsereturncos(x);

}

main()

{floatx,y;

printf("Enterx:

");scanf("%f",&x);

printf("\n");

y=fun(x);

printf("y=%f\n",y);

}

【10-4】

#include"stdio.h"

doublemax(doublex,doubley,doublez);/*函数说明*/

voidmain()

{doublea,b,c;

printf("Entera,b,c:

");scanf("%lf,%lf,%lf",&a,&b,&c);

printf("he=%.2f\n",max(a,b,c));

}

doublemax(doublex,doubley,doublez)/*对形参分别定义*/

{doublesum;sum=x+y+z;returnsum;}

改错1题:

intfun(intm)改为:

doublefun(intm)

for(i=2;i

for(i=2;i<=m;i++)

y+=1/(i*i);改为:

y+=1.0/(i*i);

printf("\nTheresultis%1f\n",fun(intn));改为:

printf("\nTheresultis%1f\n",fun(n));

改错2题:

intmax(doublex,doubley,doublez);改为:

doublemax(doublex,doubley,doublez);

doublemax(doublex,y,z)改为:

doublemax(doublex,doubley,doublez)

填空1题:

(1)countdigit(number,2);

(2)longnumber,inta(3)returnn;

填空2题:

(1)doublefun(intm);

(2)double(3)returnt;

【11-1】

#include

doublefun(intn)

{inti;doublet=0,s=0,f=1;

for(i=1;i<=n;i++)

{t=1.0/(2*i-1)-1.0/(2*i);

s=s+f*t;

f=-f;}

returns;

}

main()

{intn;

doubles;

printf("\nInputn:

");

scanf("%d",&n);

s=fun(n);

printf("\ns=%f\n",s);

}

【11-2】

#include"stdio.h"

intfun(intnum);

main()

{inti,m,n;

scanf("%d%d",&m,&n);

for(i=m;i<=n;i++)

if(fun(i))

printf("%5d",i);

}

intfun(intnum)

{intn=num,a,s=0;

while(n)

{a=n%10;

s=s+a*a*a;

n=n/10;}

if(s==num)

return1;

else

return0;

}

【11-3】

#include"stdio.h"

intfun(intx)

{

if(x%2)

return0;

else

return1;

}

main()

{intx,sum=0;

printf("Enterx:

");

scanf("%d",&x);

while(x>0)

{if(fun(x)==1)

sum+=x;

printf("Enterx:

");

scanf("%d",&x);}

printf("sum=%d\n",sum);

}

改错1题:

(1)doublesum=0,t=1;改为:

doublesum=1,t=1;

(2)for(i=0;i<=n;i++)改为:

for(i=1;i<=n;i++)

改错2题:

(1)fun(intn)改为:

doublefun(intn)

(2)returnsum改为:

returnsum;

填空1题:

此题删除

(1)double

(2)f1(3)f2

填空

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2