程序设计基础练习题(全部有答案版) 下载本文

第十二章

11.写出下面程序的输出结果。

#include main()

{char a=9,b=020;

printf(“%o\\n”, ~a&b<<1); }

结果:040

12.阅读以下程序,给出正确的运行结果: #i nclude void main() {union example {struct

{int x; int y; }in; int a; int b; }e; e.a=1; e.b=2;

e.in.x=e.a*e.b; e.in.y=e.a+e.b;

printf(\printf(\}

该程序的运行结果是:4,8 4,4

六、编程序题 1.编一程序,求a=123,b=456的和sum,输出形式为:123+456=579。 main()

{int a,b,sum; a=123; b=456; sum=a+b;

printf(\}

29

2. 编一程序从键盘输入一个时间t,求h=1/2gt的值。输出格式2

为:t=?,h=?。要求保留一位小数。 #include #define G 9.8 main()

{float t,h;

printf(“Input t:”); scanf(“%f”, &t); h=1.0/2*G*t*t;

printf(“t=%.1f, h=%.1f\\n”,t,h); } 3.编一程序求1!+3!+5!+7!+9!。 #include main() {

int i,j,t,s; s=0;

for(i=1;i<=9;i=i+2) { t=1;

for(j=1;j<=i;j++) t=t*j; s=s+t; }

printf(\}

4.编一程序求1+(1+2)+(1+2+3)+?+(1+2+3+?10)。解法1:

#include main() {

int i,j,t,s; s=0;

for(i=1;i<=10;i++) { t=0;

30

for(j=1;j<=i;j++) t=t+j; s=s+t;

}

printf(\}

解法2:

#include main() {

int i,t,s; s=0;

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

t=t+j; s=s+t; }

printf(\}

5.一个三位的素数,若其个位和百位数字相同,则这个数叫做回文数,打印这些回文数。 解法1:不用函数 #include #include main() {

int n,i,j,x,y,z,loop; for(n=101;n<=999;n++) {

x=n/100;

y=(n-x*100)/10; z=n; j=sqrt(n);

for(i=2;i<=j;i++) if(n%i==0) break; if(i>=j+1) loop=1; else loop=0;

if( (x= =z)&&loop= =1 ) printf(\

31

}

printf(\

}

解法2:用函数 #include #include

int ZS(int n) /*判素数的函数*/ {

int z,i,j=sqrt(n),temp; for(i=2;i<=j;i++) if(n%i==0) break;

if(i>=j+1) temp=1; else temp=0; return temp; }

int HWS(int n) /*判回文数的函数*/ {

int x,y,z,loop,c; x=n/100;

y=(n-x*100)/10; z=n; c=ZS(n);

if( (x= =z)&& c ) loop=1; else loop=0; return loop; }

main() {

int n;

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

if(HWS(n)) printf(\printf(\} 6.用递归方法编程序求解习题6.10—猴子吃桃子问题。#include int num(int n)

32