一、單項(xiàng)選擇題(第113頁(yè))
1-4.DCBB 5-8.DABD
二、填空題(第115頁(yè))
1.非0 0 2.k==0
3.if (abs(x)>4) printf("%d",x);else printf("error!");
4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf("%d",x);
5.k=1 (原題最后一行漏了個(gè)d,如果認(rèn)為原題正確,則輸出k=%。)
6. 8! Right!11 7.$$$a=0 8.a=2,b=1
三、編程題(第116頁(yè))
1.有錯(cuò)。正確的程序如下:
main()
{int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
printf("min=%d\n",a>b?b>c?c:b:a>c?c:a);}
2.源程序:
main()
{unsigned long a;
scanf("%ld",&a);
for(;a;printf("%d",a%10),a/=10);}
執(zhí)行結(jié)果:
12345
54321
3.(1)源程序:
main()
{int x,y;
scanf("%d",&x);
if (x>-5&&x<0)y=x;
if (x>=0&&x<5)y=x-1;
if (x>=5&&x<10)y=x+1;
printf("%d\n",y);}
(2)源程序:
main()
{int x,y;
scanf("%d",&x);
if(x<10) if(x>-5) if(x>=0) if(x>=5)y=x+1;
else y=x-1; else y=x;
printf("%d\n",y);}
(3)源程序:
main()
{int x,y;
scanf("%d",&x);
if(x<10) if(x>=5)y=x+1;
else if(x>=0)y=x-1;
else if(x>-5)y=x;
printf("%d\n",y);}
(4)源程序:
main()
{int x,y;
scanf("%d",&x);
switch(x/5)
{case -1:if(x!=-5)y=x;break;
case 0:y=x-1;break;
case 1:y=x+1;}
printf("%d\n",y);}
4.本題為了避免考慮每月的天數(shù)及閏年等問(wèn)題,故采用面向?qū)ο蟮某绦蛟O(shè)計(jì)。
現(xiàn)給出Delphi源程序和C++ Builder源程序。
Delphi源程序:
procedure TForm1.Button1Click(Sender: TObject);
begin
edit3.Text:=format('%.0f天',[strtodate(edit2.text) -strtodate(edit1.text)]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit2.Text:=datetostr(now);
button1click(form1)
end;
C++ Builder源程序:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit3->Text=IntToStr(StrToDate(Edit2->Text)-StrToDate(Edit1->Text))+"天";
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit2->Text=DateToStr(Now());
Button1Click(Form1);
}
執(zhí)行結(jié)果:(運(yùn)行于Windows下) http://img378.photo.163.com/nxgt/41463572/1219713927.jpg
5.源程序:
main()
{unsigned a,b,c;
printf("請(qǐng)輸入三個(gè)整數(shù):");
scanf("%d %d %d",&a,&b,&c);
if(a&&b&&c&&a==b&&a==c)printf("構(gòu)成等邊三角形\n");
else if(a+b>c&&a+c>b&&b+c>a)
if(a==b||a==c||b==c)printf("構(gòu)成等腰三角形\n");
else printf("構(gòu)成一般三角形\n");
else printf("不能構(gòu)成三角形\n");}
執(zhí)行結(jié)果:
請(qǐng)輸入三個(gè)整數(shù):5 6 5
構(gòu)成等腰三角形
6.源程序:
main()
{int x,y;
scanf("%d",&x);
if(x<20)y=1;
else switch(x/60)
{case 0:y=x/10;break;
default:y=6;}
printf("x=%d,y=%d\n",x,y);}
7.源程序:
main()
{unsigned m;float n;
scanf("%d",&m);
if(m<100)n=0;
else if(m>600)n=0.06;
else n=(m/100+0.5)/100;
printf("%d %.2f %.2f\n",m,m*(1-n),m*n);}
執(zhí)行結(jié)果:
450
450 429.75 20.25
8. 2171天(起始日期和終止日期均算在內(nèi))
本題可利用第4小題編好的程序進(jìn)行計(jì)算。把起始日期和終止日期分別打入“生日”和“今日”欄內(nèi),單擊“實(shí)足年齡”按鈕,將所得到的天數(shù)再加上1天即可。
9.源程序:
#include "math.h";
main()
{unsigned long i;
scanf("%ld",&i);
printf("%ld %d\n",i%10,(int)log10(i)+1);}
執(zhí)行結(jié)果:
99887
7 5
10.源程序:
main()
{unsigned long i;unsigned j[10],m=0;
scanf("%ld",&i);
for(;i;){j[m++]=(i+2)%10;i/=10;}
for(;m;m--)i=i*10+j[m-1];
printf("%ld\n",i);}
執(zhí)行結(jié)果:
6987
8109
(注:要加密的數(shù)值不能是0或以0開(kāi)頭。如果要以0開(kāi)頭需用字符串而不能是整數(shù)。)