【题目21】
题目 :定义一个3*2的二维整型数组,统计其中正数的个数。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i,j,n=0,a[3][2];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<2;j++)
if(a[i][j]>0)n++;
printf("n=%d\n",n);
return 0;
}
【题目22】
题目 :任意输入一个字符串,统计小写字符的个数。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i=0,n=0;
char a[80];
gets(a);
puts(a);
printf("\n");
while(a[i]!='\0')
{
if(a[i]>='a' && a[i]<='z')n++;
i++;
}
printf("n=%d\n",n);
return 0;
}
【题目23】
题目 :将一个3×2的二维整型数组,转置为2×3的二维整型数组。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i,j,n=0,a[3][2],b[2][3];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<2;j++)
b[j][i]=a[i][j];
printf("\n\n\n");
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n\n\n");
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return 0;
}
【题目24】
题目 :用数组作函数参数,进行选择排序。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
void judge(int s[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(s[j]<s[k])
{
k=j;
}
}
if(k != i)
{
t=s[k];
s[k]=s[i];
s[i]=t;
}
}
}
int main()
{
int i,a[6];
printf("请输入6个数: \n");
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
judge(a,6);
printf("判断后的顺序为: \n");
for(i=0;i<6;i++)
{
printf("%-4d",a[i]);
}
return 0;
}
【题目25】
题目 :产生20个互不相同的二位随机整数。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
int i,j,stat,a[20];
srand(time(NULL));
a[0]=10+rand()%90;
for(i=1;i<20;i++)
{
loop:
stat=10+rand()%90;
for(j=0;j<i;j++)
{
if(stat == a[j])
goto loop;
}
a[i]=stat;
}
for(i=0;i<20;i++)
{
if((i+1)%5 == 0)
{
printf("%4d \n",a[i]);
}
else
{
printf("%4d",a[i]);
}
}
return 0;
}
【题目26】
题目 :求6个数的平均值,用指针处理.
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i,a[6];
int *p=a;
double s=0;
printf("Please input 6 numbers: ");
for(i=0;i<6;i++)
{
scanf("%d",p++);
}
for(p=a;p<a+6;p++)
{
s=s+*p;
}
printf("平均值为: %lf \n",s/6);
return 0;
}
【题目27】
题目 :找出6个数中的最大的,用指针处理。
1.题目分析:
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i,a[6];
int *p=a,*t=a;
printf("Please input 6 numbers: ");
for(i=0;i<6;i++)
{
scanf("%d",p++);
}
p=a;
for(i=0;i<6;i++)
{
if(*(p+i) > *t)
{
t=p+i;
}
}
printf("最大值为: %d \n",*t);
return 0;
}
【题目28】
题目 :输入两个字符串,将两个合并一个字符串。
1.题目分析:字符串特点:以’\0’结尾
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i=0,j=0,n=0;
char a[80],b[80];
printf("请输入2两个字符串: ");
gets(a);
gets(b);
puts(a);
puts(b);
while(a[i]!='\0')
i++;
while(b[j]!='\0')
a[i++]=b[j++];
puts(a);
return 0;
}
【题目29】
题目 :有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.题目分析:排列与组合
2.题目源代码如下:
#include "stdio.h"
int main()
{
int i,j,k;
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
{
for(k=1;k<5;k++)
{
if(i != j && i != k && j != k) //使i,j,k三个变量不相同
{
printf("%d%d%d \n",i,j,k);
}
}
}
}
return 0;
}
【题目30】
题目 :企业发放的奖金根据利润提成。
利润(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.题目源代码如下:
#include "stdio.h"
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
printf("你的当月利润: \n");
scanf("%lf",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
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 if(i > 1000000)
{
bonus=bonus10+(i - 1000000)*0.01;
}
printf("你的奖金为:%lf",bonus);
printf("\n");
return 0;
}