第1道
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
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);
}
}
#include
void main()
{
int i=1,j=1,k=1;
printf("\n");
while(i<5)
{
j=1;
while(j<5)
{
k=1;
while(k<5)
{
if(i!=k&&j!=k&&i!=j)
{
printf("%d%d%d\n",i,j,k);
}
k++;
}
j++;
}
i++;
}
}
题目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,求应发放奖金总数?
#include
int main()
{
int w,b1,b2,b4,b6,b10;
long int a;
scanf("%ld",&a);
b1=100000*0.1;
b2=b1+100000*0.075;
b4=b2+200000*0.05;
b6=b4+200000*0.03;
b10=b6+400000*0.015;
if(a<=100000)
w=a*0.1;
else if(a<=200000)
w=b1+(a-100000)*0.075;
else if(a<=400000)
w=b2+(a-200000)*0.05;
else if(a<=600000)
w=b4+(a-400000)*0.03;
else if(a<=1000000)
w=b6+(a-600000)*0.01;
else
w=b10+(a-1000000);
printf("奖金为%d\n",w);
return 0;
}
题目3:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include
#include
int main()
{
long int i, x, y;
i = 1;
while (i < 100000)
{
x = sqrt(i + 100);
y = sqrt(i + 268);
if (x * x == i + 100 && y * y == i + 268)
printf("\n%ld", i);
i++;
}
}
题目4:输入某年某月某日,判断这一天是这一年的第几天?
#include
int 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%400==0||(year%4==0&&year%100!=0)){ //判断是不是闰年
leap = 1;
}else{
leap = 0;
}
if(leap == 1&&month > 2){ //如果是闰年且月份大于2,总数加1天
sum++;
}
printf("It is the %dth day.",sum);
}
输入三个整数x,y,z,请把这三个数由小到大输出。
#include
int main ()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{
t=x;
x=y;
y=x;
}
if(x>z)
{
t=x;
x=z;
z=t;
}
if(y>z)
{
t=y;
y=z;
z=t;
}
printf("%d %d %d\n",x,y,z);
return 0;
}
用*号输出字母C的图案。
#include
void main()
{
printf("********");putchar('\n');
printf("**");putchar('\n');
printf("**");putchar('\n');
printf("********");putchar('\n');
}
题目7:如图,输出如下特殊图案
#include
int main()
{
char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);
return 0;
}
题目:输出9*9口诀。
#include
int main()
{
int i=1,j=1;
while(i<=9)
{
while(j<=i)
{
printf("%d*%d=%d\t",i,j,i*j);
j++;
}
printf("\n");
i++;
j=1;
}
return 0;
}
打印世界象棋
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
2.程序源代码:
#include "stdio.h"
main()
{
int i,j;
printf("\1\1\n");/*输出两个笑脸*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}