更新日期:2016/8/4
<span style="font-size:18px;">1.有三个数a、b、c,由键盘输入,输出其中最大的数。
</span>#include <stdio.h>
int main()
{
int a,b,c;
printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b && a>c) printf("max=%d",a);
else if(b>a && b>c) printf("max=%d",b);
else printf("max=%d",c);
return 0;
}
<span style="font-size:18px;">2.任意十个数,打印出它们中的最大数、最小数。
</span> #include <stdio.h>
int main()
{
int max,min;
int x[10]={1,3,32,0,321,4532,523,5,436,45};
min=max=x[0];
for(int i =1;i<10;i++)
{
if(max<x[i]) max = x[i];
if(min >x[i]) min = x[i];
}
printf("max=%d min=%d\n",max,min);
return 0;
}
<span style="font-size:18px;">3. 有一个数组,内放10个整数。要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。
</span>#include <stdio.h>
int main()
{
int min,index=0;
int x[10]={9,8,7,6,5,4,3,2,1,0};
min = x[0];
for(int i=1;i<10;i++)
{
if(min>x[i])
{
min =x[i];
index=i;
}
}
printf("min= %d index= %d\n",min,index);
x[index] = x[0];
x[0] = min;
for(int i = 0;i<10;i++)
{
printf("%d ",x[i]);
}
return 0
}
<span style="font-size:18px;">4. 有一个二维数组整型数组中,每一行都有一个最大值,编程求出这些最大值以及它们的和。</span>
#include <stdio.h>
#define N 3
#define M 3
int main()
{
int x[N][M],y[N];
printf("请输入%d个数\n",N*M);
int max,sum=0;
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
scanf("%d",&x[i][j]);
}
}
for(int i =0;i<N;i++)
{
max = x[i][0];
for(int j=0;j<M;j++)
{
if( max <x[i][j]) max = x[i][j];
}
y[i]=max;
sum+=max;
}
for(int i=0;i<N;i++)
{
printf("第%d行的最大值为:%d \n",i+1,y[i]);
}
printf("最大值总和为:%d\n",sum);
return 0;
}
<span style="font-size:18px;">5. 输入一个数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则将此数打印出来,否则不打印,编出程序。
</span>#include <stdio.h>
int main()
{
int x;
printf("请输入一个数:\n");
scanf("%d",&x);
if(x%3==0 || x%5==0)
{
printf("%d能被3或者5整除\n",x);
}
else printf("%d不能被3或者5整除\n",x);
return 0;
}
<span style="font-size:18px;">6. 读入1到7之间的某个数,输出表示一星期中相应的某一天的单词:Monday、 Tuesday等等,用switch语句做。</span>
#include<stdio.h>
int main()
{ int x;
printf("请输入一个数(1-7):\n");
scanf("%d",&x);
switch (x)
{
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
default:printf("输入错误!\n");
break;
return 0;
}
<span style="font-size:18px;">7. 求 1到 100之间的奇数之和、偶数之和。
</span>#include <stdio.h>
int main()
{
int sum1=0,sum2=0;
for(int i=1;i<=100;i++)
{
if(i%2 == 0)
{
sum1+=i;
}
else sum2+=i;
}
printf("偶数和为:%d 奇数和为:%d",sum1,sum2);
return 0;
}
<span style="font-size:18px;">8. 编程实现求n的阶乘</span>
#include <stdio.h>
double a(int n)
{
if(n == 1) return 1;
if(n>1)return n*a(n-1);
}
int main()
{
int n;
printf("请输入一个数\n");
scanf("%d",&n);
printf("%d的阶乘为:%f\n",n,a(n));
return 0;
}
<span style="font-size:18px;">9. 3025这个数具有一种独特的性质:将它平分为两段,即30和25,使之相加后求平方,即(30+25),恰好等于3025本身。请求出具有这样性质的全部四位数。</span>
#include <stdio.h>
int main()
{
int x,y;
for(int i=1000;i<10000;i++)
{
x=i/100;
y=i%100;
if((x+y)*(x+y) == i) printf("%d ",i);
}
return 0;
]
<span style="font-size:18px;">10. 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。</span>
#include<stdio.h>
int main()
{
int x,m,y=0;
printf("请输入一个数\n");
scanf("%d",&x);
m=x;
while(x)
{
x/=10;
y++;
}
printf("%d为%d位数\n",m,y);
return 0;
}
<span style="font-size:24px;">11. 青年歌手参加歌曲大奖赛,有10个评委打分,试编 程求选手的平均得分(去掉一个最高分和一个最低分</span>
#include <stdio.h>
#define a 10
int main()
{
int x[a];
double max,min,avg,sum=0;
printf("请输入10个数:\n");
for(int i =0;i<a;i++)
{
scanf("%d",&x[i]);
sum+=x[i];
}
max = x[0];
min = x[0];
for(int i=1;i<a;i++)
{
if(max < x[i]) max = x[i];
if(min > x[i]) min = x[i];
}
sum = sum-max-min;
avg = sum/(a-2);
printf("平均得分为:%.2f\n",avg);
return 0
}
<span style="font-size:18px;">12.任意输入N个数,统计其中的正数个数和负数个数。</span>
#include <stdio.h>
int main()
{
int n[5];
int plus=0,minus=0;
printf("输入5个数字:\n");
for(int i = 0;i<5;i++)
{
scanf("%d",&n[i]);
if(n[i] < 0) {minus++;}
else if(n[i] > 0) {plus++;}
}
printf("正数有%d个 负数有%d个\n",plus,minus);
return 0;
}
<span style="font-size:18px;">13. 任意输入a[N][N]个数,找出并输出其中的最大数和 最小数,以及它们的下标。</span>
#include <stdio.h>
#define M 2
#define N 3
int main()
{
int x[M][N];
int max,min;
int a1=0,a2=0;
int b1=0,b2=0;
printf("请输入%d个数\n",M*N);
for(int i=0;i<M;i++)
{
for(int j =0;j<N;j++)
{
scanf("%d",&x[i][j]);
}
}
max=min=x[0][0];
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
if(max <x[i][j]) {max = x[i][j];a1=i;a2=j;}
if(min >x[i][j]) {min = x[i][j];b1=i;b2=j;}
}
}
printf("max=%d[%d][%d] min=%d[%d][%d]\n",max,a1,a2,min,b1,b2);
return 0;
}
<span style="font-size:18px;">
14.打印出100-999中所有的“水仙花数”,所谓“水仙 花数”是指一个三位数,其各位数字立方和等于该数。</span>
#include <stdio,h>
int main()
{
int x,y,z;
for(int i = 100;i<1000;i++)
{
x=i/100;//百位数
y=(i/10)%10;//十位数
z=i%10;//个位数
if((x*x*x + y*y*y +z*z*z) ==i )
printf("%d \n",i);
}
return 0
]
<span style="font-size:18px;">15.输入一行字符,分别统计出其中英文字母、空格、 数字和其它字符的个数。</span>
#include <stdio.h>
int main()
{
printf("请输入一行字符:\n");
char c[50];
scanf("%d",&c);
char *p;
p=c;//使指针指向数组c,通过p来改变数组c的值。
int z=0;//字母
int n=0;//数字
int s=0;//空格
int q=0;//其他
while (*p!='\0')
{
if((*p >='a' && *p<='z') || (*p>='A' && *p<='Z') ) z++;
else if(*p>='0' && *p<='9')n++;
else if(*p == ' ')s++;
else q++;
p++;
}
printf("字母:%d 数字:%d 空格:%d 其它:%d\n",z,n,s,q);
return 0;
}
<span style="font-size:18px;">
16.编写一个函数,将两个字符串连接起来。(不能用strcat函数)。</span>
#include <stdio.h>
void stcat(char *x,char *y);
int main()
{
char x1[20],x2[20];
gets(x1);
gets(x2);
stcat(x1,x2);
return 0;
}
void stcat(char *x,char *y)
{
int m=0;
char z[20];
for(int i=0;x[i]!='\0';i++)
{
z[m++] = x[i];
}
for(int i= 0;y[i]!='\0';i++)
{
z[m++] = y[i];
}
for(int i=0;i<m;i++)
{
printf("%c",z[i]);
}
printf("\n");
}
<span style="font-size:18px;">
17.从键盘中输入一个不超过40个字符的字符串,再输 入一个位数,删除对应 位数的字符,然后输出删除 指定字符后的字符串。</span>
#include <stdio.h>
void dele(char *x,int n);
int main()
{
char x[40];
int num;
printf("请输入不超过40个字符的字符串:\n");
scanf("%s",&x);
printf("请输入一个要删除的位数\n");
scanf("%d",&num);
dele(x,num);
return 0;
}
void dele(char *x,int n)
{
for(int i=n-1;i<40;i++)
{
x[i] = x[i+1];
}
printf("删除后字符串为;\n");
for(int i=0;x[i]!='\0';i++)
{
printf("%c",x[i]);
}
printf("\n");
}
<span style="font-size:18px;">18.. 函数void dele(char *s)的功能是删除字符串s中 的所有数字字符和非字母字符,并将字符串压缩。 例如原字符串为:abc12ef5ghij8#%%yz,处理后的 字符串为:abcefghijyz。
</span>#include <stdio.h>
#include <string.h>
void dele(char *s);
int main()
{
char x[100];
scanf("%s",&x);
dele(x);
return 0;
}
void dele(char *s)
{
int len=strlen(s);
for(int i=0;i<len;i++)
{
if((s[i] >='a' && s[i]<='z') || (s[i] >= 'A' && s[i]<='Z' ))
{
}
else
{
for(int j=i;j<len;j++ )
{
s[j] = s[j+1];//如果找到的不是字母,则把非字母删除
}
len--;//删除一次非字母,总长度-1;
i--;//因为移除了非字母,为保证i的指向为下一个时,必须先i--,然后执行for的i++
}
}
for(int i=0;i<len;i++)
{
printf("%c",s[i]);
}
printf("\n");
}
<span style="font-size:18px;">19. 输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”</span>
#include <stdio.h>
int main()
{
char c;
printf("请输入一个字符:\n");
scanf("%c",&c);
if(c>='a' && c<='z')printf("%c\n",c-32);
else if(c>='A' && c<='Z')printf("%c\n",c+32);
else if(c>='0' && c<='9')printf("%c\n",c);
else if(c==' ')printf("space\n");
else printf("other\n");
return 0;
}
<span style="font-size:18px;">20. 写一函数,求一字符串长度,即编写一strlen函数。
</span>#include <stdio.h>
#include <malloc.h>
int str(char *x)
{
int l=0;
while (*x++!=0)
{
l+=1;
}
return l;
}
int main()
{
char x[100];
printf("请输入一个字符串:\n");
scanf("%s",x);
printf("该字符串的长度为:%d\n",str(x));
return 0;
}
<span style="font-size:18px;">
21. 输入某年某月某日,判断这一天是这一年的第几天。</span>
#include <stdio.h>
int main()
{
int year,month,day,sum=0;
printf("请输入年月日:\n");
scanf("%d%d%d",&year,&month,&day);
int mon[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<month-1;i++)
sum+=mon[i];
sum+=day;
if( (year%4 == 0) && (year%100!=0))
{
if(month>2)
sum+=1;
}
printf("%d年的%d月%d日是这一年的%d天\n",year,month,day,sum);
return 0;
}