您的当前位置:首页正文

《程序设计基础》课堂自测答案

来源:个人技术集锦


《程序设计基础》课堂自测

A卷

17.对用户输入的字母进行大小写转换。

法一:

#include \"stdio.h\"

void main( )

{ char ch;

printf(\"please input a letter:\");

scanf(\"%c\

if (ch>='A' && ch<='Z') ch=ch+32;

else if (ch>='a' && ch<='z') ch=ch-32;

printf( \" the converted letter is: %c\\n\

}

19. 计算20n!n1 ( 即求:1!+2!+3!+4!+5!+...+20!

1

)结果:

法一:

#include

int main()

{double s=0,t=1;

int n;

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

{

t=t*n;

s=s+t;

}

printf(\"1!+2!+...+20!=% e\\n\

return 0;

}

答案:【1】ch>='A' && ch<='Z'

2

【2】ch=ch-32

【3】s=0

【4】n<=20

【5】s=s+t

18.求100~499之间的所有水仙花数, 所谓“水仙花数”:即各位数字的立方和恰好等于该数本身。法一:

#include \"stdio.h\"

void main( )

{int i, j, k, m, n;

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

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

{ m=i*100+j*10+k;

n=i*i*i+j*j*j+k*k*k;

3

if(m==n)

printf(\"%5d\

}

21. 计算:m=1-2+3-4+…+9-10

法二:

#include

main()

{

int f=1,n,s=0;

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

{

if(n%2==0) f=-1;

else f=1;

s=s+n*f;

4

}

printf(\"%d\

}

答案:【6】i<=4

【7】i*100+j*10+k

【8】m==n

【9】n%2==0

【10】s+n*f

B卷

17.对用户输入的字母进行大小写转换。

法二:

#include \"stdio.h\"

void main( )

{ char ch;

5

ch=getchar();

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

{

if (ch>='A' && ch<='Z') ch=ch+32;

else ch=ch-32;

}

printf( \" the converted letter is: %c\\n\

}

19. 计算20n!n1 ( 即求:1!+2!+3!+4!+5!+...+20! 法二:

#include

double J(int n)

{int j;

double i=1;

6

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

i=i*j;

return (i);}

main()

{

int i;

double s=0;

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

s=s+J(i);

printf(\"%e\\n\

}

答案:【1】ch>='A' && ch<='Z')||(ch>='a' && ch<='z')

【2】ch=ch+32

【3】j<=n

7

【4】i<=20

【5】s=s+J(i)

18.求100~499之间的所有水仙花数, 所谓“水仙花数”:即各位数字的立方和恰好等于该数本身。

法二:

#include

main()

{

int ge,shi,bai,n;

for(n=100;n<500;n++)

{bai=n/100;

shi=(n-bai*100)/10;

ge=n-bai*100-shi*10;

if(n==bai*bai*bai+shi*shi*shi+ge*ge*ge)

printf(\"%d\\n\

8

}

}

21. 计算:m=1-2+3-4+…+9-10

法一:

#include ”stdio.h”

void main( )

{

int m=0, f=1, i ;

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

{ m+=i*f;

f=-f;}

printf(\"m=%d\\n\

}

答案:【6】n-bai*100-shi*10

9

【7】bai*bai*bai+shi*shi*shi+ge*ge*ge

【8】i <=10

【9】i*f

【10】-f

C卷

17.对用户输入的字母进行大小写转换。

法三:

#include \"stdio.h\"

void main( )

{ char ch;

while((ch=getchar())!='\\n')

{if (ch>='A' && ch<='Z') ch=ch+32;

else if (ch>='a' && ch<='z') ch=ch-32;

putchar(ch);}

10

}

19. 计算20n!n1 ( 即求:1!+2!+3!+4!+5!+...+20! )

法三:

#include

main()

{

int i=1,c;

double sum=0,t;

for(c=1;c<=20;c++)

{for(t=1,i=1;i<=c;i++) t=t*i;

sum=sum+t;}

printf(\"sum=%e\\n\

}

答案:【1】ch=getchar()

11

【2】else

【3】c<=20

【4】i<=c

【5】sum=sum+t

18.求100~499之间的所有水仙花数, 所谓“水仙花数”:即各位数字的立方和恰好等于该数本身。

法一:

#include \"stdio.h\"

void main( )

{int i, j, k, m, n;

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

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

{ m=i*100+j*10+k;

n=i*i*i+j*j*j+k*k*k;

12

if(m==n)

printf(\"%5d\

}

21. 计算:m=1-2+3-4+…+9-10

法二:

#include

main()

{

int f=1,n,s=0;

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

{

if(n%2==0) f=-1;

else f=1;

s=s+n*f;

13

}

printf(\"%d\

}

答案:【6】i<=4

【7】i*100+j*10+k

【8】m==n

【9】n%2==0

【10】s+n*f

选做题

20. 输入两个正整数m和n,求其最大公约数和最小公倍数。

#include

int main()

{

int p,r,n,m,temp;

14

printf(\"请输入两个正整数n,m:\");

scanf(\"%d,%d,\

if (n{

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!=0)

{

r=n%m;

n=m;

m=r;

15

}

printf(\"它们的最大公约数为:%d\\n\

printf(\"它们的最小公倍数为:%d\\n\p/n);

return 0;

}

22. 从键盘输入10个学生成绩,输出其最高分、最低分和平均分。

#include \"stdio.h\"

int main( )

{ int i,t=0,max,min;

float avg;

int a[10];

16

for(i=0;i<=9;i++)

scanf(\"%d\

max=min=a[0];

for(i=0;i<=9;i++)

{if(maxif(min>a[i])min=a[i];

t=t+a[i];

}

avg=t/10.0;

printf(\"最高分=%d,最低分=%d,平均分=%f\

return 0;

}

答案:【1】m=temp

【2】n%m

17

【3】p/n

【4】a[0]

【5】min>a[i]

【6】t+a[i]

18

因篇幅问题不能全部显示,请点此查看更多更全内容