第十二章
11.写出下面程序的输出结果。
#include
{char a=9,b=020;
printf(“%o\\n”, ~a&b<<1); }
结果:040
12.阅读以下程序,给出正确的运行结果: #i nclude
{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
{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
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
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
int i,t,s; s=0;
for(i=1;i<=10;i++) {
t=t+j; s=s+t; }
printf(\}
5.一个三位的素数,若其个位和百位数字相同,则这个数叫做回文数,打印这些回文数。 解法1:不用函数 #include
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
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
32