【程序1
 
题目:有1234个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 
1.
程序分析:可填在百位、十位、个位的数字都是1234。组成所有的排列后再去掉不满足条件的排列。
  
2.
程序源代码:
 
main() 
{ 
int i,j,k; 
printf("\n"); 
for(i=1;i<5;i++)
 
 
 
 

*
以下为三重循环
*/ 
 
for(j=1;j<5;j++)
 
 
 
 
for (k=1;k<5;k++) 
 
 
 
{ 
 
 
 
 
if (i!=k&&i!=j&&j!=k) 
 
 
 
/*


i

j

k






*/ 
 
 
 
 
printf("%d,%d,%d\n",i,j,k); 
 
 
 
} 
} 
============================================================== 
【程序
2

 
题目:企业发放的奖金根据利润提成。利润
(I)
低于或等于
10
万元时,奖金可提
10%
;利润高于
10

元,低于
20
万元时,低于
10
万元的部分按
10%
提成,高于
10
万元的部分,可可提成
7.5%

20
万到
40
万之间时,
高于
20
万元的部分,
可提成
5%

40
万到
60
万之间时高于
40
万元的部分,
可提成
3%

60
万到
100
万之间时,高于
60
万元的部分,可提成
1.5%
,高于
100
万元时,超过
100
万元的部分按
1%
提成,从键盘输入当月利润
I
,求应发放奖金总数?
 
1.
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
 
 
 
 
 
 
 
2.
程序源代码:
 
main() 
{ 
long int i; 
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; 
scanf("%ld",&i); 
bonus1=100000*0.1;bonus2=bonus1+100000*0.75; 
bonus4=bonus2+200000*0.5; 
bonus6=bonus4+200000*0.3; 
bonus10=bonus6+400000*0.15; 
 
if(i<=100000) 
 
 
bonus=i*0.1; 
 
else if(i<=200000) 
 
 
 
 
 
bonus=bonus1+(i-100000)*0.075;

else if(i<=400000) 
 
bonus=bonus2+(i-200000)*0.05; 
 
else if(i<=600000) 
 
bonus=bonus4+(i-400000)*0.03; 
 
else if(i<=1000000) 
 
bonus=bonus6+(i-600000)*0.015; 
 
else 
 
bonus=bonus10+(i-1000000)*0.01; 
 
printf("bonus=%d",bonus); 
 
} 
 
============================================================== 
 
【程序
3

 
 
题目:一个整数,它加上
100
后是一个完全平方数,再加上
168
又是一个完全平方数,请
问该数是多少?
 
 
1.
程序分析:

10
万以内判断,
先将该数加上
100
后再开方,
再将该数加上
268
后再开方,
如果开方后
 
 
的结果满足如下条件,即是结果。请看具体分析:
 
 
2.
程序源代码:
 
 
#include "math.h" 
 
main() 
 
{ 
 
long int i,x,y,z; 
 
for (i=1;i<100000;i++) 
 
{ x=sqrt(i+100); /*x
为加上
100
后开方后的结果
*/ 
 
y=sqrt(i+268); /*y
为再加上
168
后开方后的结果
*/ 
 
if(x*x==i+100&&y*y==i+268)/*
如果一个数的平方根的平方等于该数,
这说明此数是完全平
方数
*/ 
 
printf("\n%ld\n",i); 
 
} 
 
} 
 
============================================================== 
 
【程序
4

 
 
题目:输入某年某月某日,判断这一天是这一年的第几天?
 
 
1.
程序分析:

3

5
日为例,
应该先把前两个月的加起来,
然后再加上
5
天即本年的第几
天,特殊
 
 
情况,闰年且输入月份大于
3
时需考虑多加一天。
 
 
2.
程序源代码:
 
 
main() 
 
{ 
 
int day,month,year,sum,leap; 
 
printf("\nplease input year,month,day\n"); 
 
scanf("%d,%d,%d",&year,&month,&day); 
 
switch(month)/*
先计算某月以前月份的总天数
*/ 
 
{ 
 
case 1:sum=0;break; 
 
case 2:sum=31;break; 
 
case 3:sum=59;break; 
 
case 4:sum=90;break; 
 
case 5:sum=120;break; 
 
case 6:sum=151;break; 
 
case 7:sum=181;break; 
 
case 8:sum=212;break; 
 
case 9:sum=243;break; 
 
case 10:sum=273;break; 
 
case 11:sum=304;break; 
 
case 12:sum=334;break; 
 
default:printf("data error");break; 
 
} 
 
sum=sum+day; /*
再加上某天的天数
*/ 
 
if(year@0==0||(year%4==0&&year 0!=0))/*
判断是不是闰年
*/ 
 
leap=1; 
 
else 
 
leap=0; 
 
if(leap==1&&month>2)/*
如果是闰年且月份大于
2,
总天数应该加一天
*/ 
 
sum++; 
 
printf("It is the %dth day.",sum);} 
 
============================================================== 
 
【程序
5

 
 
题目:输入三个整数
x,y,z
,请把这三个数由小到大输出。
 
 
1.
程序分析:我们想办法把最小的数放到
x
上,先将
x

y
进行比较,如果
x>y
则将
x

y
的值进行交换,
 
 
然后再用
x

z
进行比较,如果
x>z
则将
x

z
的值进行交换,这样能使
x
最小。
 
 
2.
程序源代码:
 
 
main() 
 
{ 
 
int x,y,z,t; 
 
scanf("%d%d%d",&x,&y,&z); 
 
if (x>y) 
 
{t=x;x=y;y=t;} /*
交换
x,y
的值
*/ 
 
if(x>z) 
 
{t=z;z=x;x=t;}/*
交换
x,z
的值
*/ 
 
if(y>z) 
 
{t=y;y=z;z=t;}/*
交换
z,y
的值
*/ 
 
printf("small to big: %d %d %d\n",x,y,z); 
 
} 
 
============================================================== 

x0=x0+5; 
 
y0=y0+5; 
 
y1=y1-5; 
 
} 
 
} 
 
============================================================== 
 
【程序
58

 
 
题目:画图,学用
rectangle
画方形。
 
 
1.
程序分析:利用
for
循环控制
100-999
个数,每个数分解出个位,十位,百位。
 
 
2.
程序源代码:
 
 
#include "graphics.h" 
 
main() 
 
{int x0,y0,y1,x1,driver,mode,i; 
 
driver=VGA;mode=VGAHI; 
 
initgraph(&driver,&mode,""); 
 
setbkcolor(YELLOW); 
 
x0=263;y0=263;y1=275;x1=275; 
 
for(i=0;i<=18;i++) 
 
{ 
 
setcolor(1); 
 
rectangle(x0,y0,x1,y1); 
 
x0=x0-5; 
 
y0=y0-5; 
 
x1=x1+5; 
 
y1=y1+5; 
 
} 
 
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); 
 
outtextxy(150,40,"How beautiful it is!"); 
 
line(130,60,480,60); 
 
setcolor(2); 
 
circle(269,269,137); 
 
} 
 
============================================================== 
 
【程序
59

 
 
题目:画图,综合例子。
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
# define PAI 3.1415926 
 
# define B 0.809 
 
# include "graphics.h" 
 
#include "math.h" 
 
main() 
 
{ 
 
int i,j,k,x0,y0,x,y,driver,mode; 
 
float a; 
 
driver=CGA;mode=CGAC0; 
 
initgraph(&driver,&mode,""); 
 
setcolor(3); 
 
setbkcolor(GREEN); 
 
x0=150;y0=100; 
 
circle(x0,y0,10); 
 
circle(x0,y0,20); 
 
circle(x0,y0,50); 
 
for(i=0;i<16;i++) 
 
{ 
 
a=(2*PAI/16)*i; 
 
x=ceil(x0+48*cos(a)); 
 
y=ceil(y0+48*sin(a)*B); 
 
setcolor(2); line(x0,y0,x,y);} 
 
setcolor(3);circle(x0,y0,60); 
 
/* Make 0 time normal size letters */ 
 
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); 
 
outtextxy(10,170,"press a key"); 
 
getch(); 
 
setfillstyle(HATCH_FILL,YELLOW); 
 
floodfill(202,100,WHITE); 
 
getch(); 
 
for(k=0;k<=500;k++) 
 
{ 
 
setcolor(3); 
 
for(i=0;i<=16;i++) 
 
{ 
 
a=(2*PAI/16)*i+(2*PAI/180)*k; 
 
x=ceil(x0+48*cos(a)); 
 
y=ceil(y0+48+sin(a)*B); 
 
setcolor(2); line(x0,y0,x,y); 
 
} 
 
for(j=1;j<=50;j++) 
 
{ 
 
a=(2*PAI/16)*i+(2*PAI/180)*k-1; 
 
x=ceil(x0+48*cos(a)); 
 
y=ceil(y0+48*sin(a)*B); 
 
line(x0,y0,x,y); 
 
} 
 
} 
 
restorecrtmode(); 
 
} 
 
============================================================== 

else 
 
break; 
 
for(c=2;c<=sqrt(d);c++) 
 
if(d%c==0) break; 
 
if(c>sqrt(d)) 
 
printf("%d=%d+%d\n",a,b,d); 
 
} 
 
} 
 
============================================================== 
 
【程序
85

 
 
题目:判断一个素数能被几个
9
整除
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
main() 
 
{ long int m9=9,sum=9; 
 
int zi,n1=1,c9=1; 
 
scanf("%d",&zi); 
 
while(n1!=0) 
 
{ if(!(sum%zi)) 
 
n1=0; 
 
else 
 
{m9=m9*10; 
 
sum=sum+m9; 
 
c9++; 
 
} 
 
} 
 
printf("%ld,can be divided by %d \"9\"",sum,c9); 
 
} 
 
============================================================== 
 
【程序
86

 
 
题目:两个字符串连接程序
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
#include "stdio.h" 
 
main() 
 
{char a[]="acegikm"; 
 
char b[]="bdfhjlnpq"; 
 
char c[80],*p; 
 
int i=0,j=0,k=0; 
 
while(a[i]!='\0'&&b[j]!='\0') 
 
{if (a[i] { c[k]=a[i];i++;} 
 
else 
 
c[k]=b[j++]; 
 
k++; 
 
} 
 
c[k]='\0'; 
 
if(a[i]=='\0') 
 
p=b+j; 
 
else 
 
p=a+i; 
 
strcat(c,p); 
 
puts(c); 
 
} 
 
============================================================== 
 
【程序
87

 
 
题目:回答结果(结构体变量传递)
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
#include "stdio.h" 
 
struct student 
 
{ int x; 
 
char c; 
 
} a; 
 
main() 
 
{a.x=3; 
 
a.c='a'; 
 
f(a); 
 
printf("%d,%c",a.x,a.c); 
 
} 
 
f(struct student b) 
 
{ 
 
b.x=20; 
 
b.c='y'; 
 
} 
 
============================================================== 
 
【程序
88

 
 
题目:读取
7
个数(
1

50
)的整数值,每读取一个值,程序打印出该值个数的*。
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
main() 
 
{int i,a,n=1; 
 
while(n<=7) 
 
{ do { 
 
scanf("%d",&a); 
 
}while(a<1||a>50); 
 
for(i=1;i<=a;i++) 
 
printf("*"); 
 
printf("\n"); 
 
n++;} 
 
getch(); 
 
} 
 
============================================================== 
 
【程序
89

 
 
题目:
某个公司采用公用电话传递数据,
数据是四位的整数,
在传递过程中是加密的,
加密
规则如下:
 
 
每位数字都加上
5,
然后用和除以
10
的余数代替该数字,再将第一位和第四位交换,第二位
和第三位交换。
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
main() 
 
{int a,i,aa[4],t; 
 
scanf("%d",&a); 
 
aa[0]=a  
 
aa[1]=a 0/10; 
 
aa[2]=a 00/100; 
 
aa[3]=a/1000; 
 
for(i=0;i<=3;i++) 
 
{aa[i]+=5; 
 
aa[i]%=10; 
 
} 
 
for(i=0;i<=3/2;i++) 
 
{t=aa[i]; 
 
aa[i]=aa[3-i]; 
 
aa[3-i]=t; 
 
} 
 
for(i=3;i>=0;i--) 
 
printf("%d",aa[i]); 
 
} 
 
============================================================== 
【程序
90

 
 
题目:专升本一题,读结果。
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
#include "stdio.h" 
 
#define M 5 
 
main() 
 
{int a 
={1,2,3,4,5}; 
 
int i,j,t; 
 
i=0;j=M-1; 
 
while(i {t=*(a+i); 
 
*(a+i)=*(a+j);
*(a+j)=t; 
 
i++;j--; 
 
} 
 
for(i=0;i printf("%d",*(a+i)); 
 
} 
 
【程序
91

 
 
题目:时间函数举例
1 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
#include "stdio.h" 
 
#include "time.h" 
 
void main() 
 
{ time_t lt; /*define a longint time varible*/ 
 
lt=time(NULL);/*system time and date*/ 
 
printf(ctime(<)); /*english format output*/ 
 
printf(asctime(localtime(<)));/*tranfer to tm*/ 
 
printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/ 
 
} 
 
============================================================== 
 
【程序
92

 
 
题目:时间函数举例
2 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
/*calculate time*/ 
 
#include "time.h" 
 
#include "stdio.h" 
 
main() 
 
{ time_t start,end; 
 
int i; 
 
start=time(NULL); 
 
for(i=0;i<3000;i++) 
 
{ printf("\1\1\1\1\1\1\1\1\1\1\n");} 
 
end=time(NULL); 
 
printf("\1: The different is %6.3f\n",difftime(end,start)); 
 
} 
 
============================================================== 
 

 
【程序
93

 
 
题目:时间函数举例
4,
一个猜数游戏,判断一个人反应快慢。
(版主初学时编的)
 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
#include "time.h" 
 
#include "stdlib.h" 
 
#include "stdio.h" 
 
main() 
 
{char c; 
 
clock_t start,end; 
 
time_t a,b; 
 
double var; 
 
int i,guess; 
 
srand(time(NULL)); 
 
printf("do you want to play it.('y' or 'n') \n"); 
 
loop: 
 
while((c=getchar())=='y') 
 
{ 
 
i=rand() 0; 
 
printf("\nplease input number you guess:\n"); 
 
start=clock(); 
 
a=time(NULL); 
 
scanf("%d",&guess); 
 
while(guess!=i) 
 
{if(guess>i) 
 
{printf("please input a little smaller.\n"); 
 
scanf("%d",&guess);} 
 
else 
 
{printf("please input a little bigger.\n"); 
 
scanf("%d",&guess);} 
 
} 
 
end=clock(); 
 
b=time(NULL); 
 
printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2); 
 
printf("\1: it took you %6.3f seconds\n\n",difftime(b,a)); 
 
if(var<15) 
 
printf("\1\1 You are very clever! \1\1\n\n"); 
 
else if(var<25) 
 
printf("\1\1 you are normal! \1\1\n\n"); 
 
else 
 
printf("\1\1 you are stupid! \1\1\n\n"); 
 
printf("\1\1 Congradulations \1\1\n\n"); 
 
printf("The number you guess is %d",i); 
 
} 
 
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n"); 
 
if((c=getch())=='y') 
 
goto loop; 
 
} 
 
==============================================================                        【程序94
 
 
题目:时间函数举例
3 
 
1.
程序分析:
 
 
2.
程序源代码:
 
 
/*calculate time*/ 
 
#include "time.h" 
 
#include "stdio.h" 
 
main() 
 
{ clock_t start,end; 
 
int i; 
 
double var; 
 
start=clock(); 
 
for(i=0;i<10000;i++) 
 
{ printf("\1\1\1\1\1\1\1\1\1\1\n");} 
 
end=clock(); 
 
printf("\1: The different is %6.3f\n",(double)(end-start)); 
 
} 
 
==============================================================