文档库 最新最全的文档下载
当前位置:文档库 › 101道C语言编程题参考答案

101道C语言编程题参考答案


1000. 计算 A+B 的问题 49%(655/1347) 53% 01C语言基础

1.#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a+b);
return 0;
}

1001. Hello World! 82%(693/848) 18% 01C语言基础
2.#include<stdio.h>
int main()
{
printf("hello world!");
return 0;
}

1004 两个整数的值互换 43%(530/1235) 58% 01C语言基础
3.#include <stdio.h>
int main()
{
int a,b,t;
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("%d %d",a,b);
}
1068 计算三门课程总分和平均分 41%(482/1190) 60% 01C语言基础
4.#include <stdio.h>
int main()
{
float a,b,c,zf,pj;
scanf("%f%f%f",&a,&b,&c);
zf=a+b+c;
pj=zf/3;
printf("%.2f %.2f",zf,pj);
}
1002 鸡兔同笼问题 51%(443/872) 50% 02顺序结构

5.#include "stdio.h"
int main()
{
int a,b,x,y;
scanf("%d%d",&a,&b);
x=2*a-b/2;
y=b/2-a;
printf("%d %d",x,y);
}

1005 输出一个自然数的百位十位和个位上的各个数字 63%(437/695) 37% 02顺序结构

6.#include <stdio.h>
main()
{
int n;
scanf("%d",&n);
printf("%d %d %d",(n/100)%10,(n/10)%10,n%10);
}

1006 输出字符(A-F)代表的十六进制数所对应的十进制值 84%(387/462) 16% 02顺序结构

7.#include "stdio.h"
int main()
{
char n;
scanf("%c",&n);
switch(n)
{
case 'A':printf("10");break;
case 'B':printf("11");break;
case 'C':printf("12");break;
case 'D':printf("13");break;
case 'E':printf("14");break;
case 'F':printf("15");break;
}
}


1008 求华氏温度所对应的摄氏温度 73%(407/556) 27% 02顺序结构

8.#include<stdio.h>
main()
{
float c,f;
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("%.2f",c);
}


1009 已知斜边和一直角边计算三角形的另一直角边 76%(415/547) 24% 02顺序结构

9.#include<stdio.h>
#include<math.h>
main()
{
float xb,zb1,zb2;
scanf("%f%f",&xb,&zb1);
zb2=sqrt(xb*xb-zb1*zb1);
printf("%.2f",zb2);
}


1069 已知三边计算三角形的面积 64%(374/585) 36% 02顺序结构

10.#include<stdio.h>
#include<math.h>
main()
{
double a,b,c,p,s;
scanf("%lf%lf%lf",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.6lf",s);
}


1070 输出小写字母的ASCII码及对应大写字母 63%(378/602) 37% 02顺序结构

11.#include<stdio.h>
main()
{
char n;
int x;
scanf("%c",&n);
x='a'-'A';
printf("%d %c",n,n-x);
}


1071 保留两位小数 72%(335/467) 29% 02顺序结构

12.#include "stdio.h"
int

main()
{
double n;
scanf("%lf",&n);
n=(double)(((int)((n+0.005)*100.00))/100.0);
printf("%lf",n);
}

1003 判断输入的一个字符是否是小写字母 76%(373/492) 24% 03分支结构

13.#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"

void main()
{
char ch1;
ch1=getchar();
if(islower(ch1)!=0)
{
printf("%d",ch1);
}
else
printf("ERROR");
}

1007 简单字符加密变换 A->F 72%(322/450) 28% 03分支结构

14.#include<stdio.h>
main()
{
char a;
scanf("%c",&a);
a=(a-'A'+5)%26+'A';
printf("%c\n",a);
}

1010 判断输入的一个字符是什么类型的字符 58%(337/583) 43% 03分支结构

15.#include "stdio.h"
#include "Ctype.h"
void main()
{
char n;
scanf("%c",&n);
if(isalpha(n)!=0)
printf("capital");
else if(isdigit(n)!=0)
printf("number");
else
printf("other");
}

1011 判断一个学生的成绩等级 70%(375/536) 30% 03分支结构

16. #include "stdio.h"
void main()
{
int n;
scanf("%d",&n);
if(n<60)
printf("failed");
else if(n>=60&&n<80)
printf("middle");
else
printf("excellent");
}


1012 输出数字(1-7)对应的英文星期名称的简写 63%(337/536) 38% 03分支结构

17.#include "stdio.h"
void main()
{
int n; /*Mon, Tues, Wed, Thu, Fri, Sat, Sun*/
scanf("%d",&n);
switch(n)
{
case 1: printf("Mon");break;
case 2: printf("Tues");break;
case 3: printf("Wed");break;
case 4: printf("Thu");break;
case 5: printf("Fri");break;
case 6: printf("Sat");break;
case 7: printf("Sun");break;
}
}


1013 给定三个边长的值判断是否能够构成三角形 53%(347/650) 47% 03分支结构

18.#include "stdio.h"
#include<math.h>
void main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(abs(a-b)<c&&a+b>c)
printf("YES");
else
printf("NO");
}


1014 将输入的三个数按从小到大的顺序输出 67%(308/460) 33% 03分支结构

19.#include<stdio.h>
int main(){
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;
x=y;
y=t;
}
if(y>z){
t=z;
z=y;
}
if(x<t)
y=t;
else
{
y=x;
x=t;
}
printf("%d %d %d",x,y,z);
}

1015 编程计算一个分段函数 75%(319/428) 25% 03分支结构

20.#include "stdio.h"
void main()
{
float x;
scanf("%f",&x);
if (x<1.0)
printf("%.2f",x);
else if (x>=1.0&&x<10.0)
printf("%.2f",2*x-1);
else
printf("%.2f",3*x-11);

}

1073 这个数能被3整除吗? 68%(374/546) 32% 03分

支结构

21.#include "stdio.h"
void main()
{
float x;
scanf("%f",&x);
if (x<1.0)
printf("%.2f",x);
else if (x>=1.0&&x<10.0)
printf("%.2f",2*x-1);
else
printf("%.2f",3*x-11);

}

1074 这个月有多少天? 54%(290/542) 46% 03分支结构

22.#include <stdio.h>
main()
{
int y,m;
scanf("%d %d",&y,&m);
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("31");break;
case 4:
case 6:
case 9:
case 11:printf("30");break;
case 2:
if(y%100 == 0 && y%400 ==0)

printf("29");
else if(y%100 != 0 &&y%4 ==0)
printf("29");
else
printf("28");
break;
}
}

1075 模拟加减乘除计算器 76%(274/361) 24% 03分支结构

23.#include "stdio.h"
void main()
{
float a,b;
char p;
scanf("%f%c%f",&a,&p,&b);
switch(p)
{
case '+': printf("%.6f",a+b);break;
case '-':
printf("%.6f",a-b);break;
case '*': printf("%.6f",a*b);break;
case '/': printf("%.6f",a/b);break;
}
}

1076 输出三个数中的最大数和最小数 77%(298/386) 23% 03分支结构

24.#include<stdio.h>
main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>=b&&b>=c){printf("%d %d",a,c);}
if(a>=c&&c>=b){printf("%d %d",a,b);}
if(b>=a&&a>=c){printf("%d %d",b,c);}
if(b>=c&&c>=a){printf("%d %d",b,a);}
if(c>=a&&a>=b){printf("%d %d",c,b);}
if(c>=b&&b>=a){printf("%d %d",c,a);}
}

1077 个人所得税问题(1) 71%(275/389) 30% 03分支结构

25.#include<stdio.h>
main()
{
float s,r,t;
scanf("%f",&s);
if(s<=850)
r=0;
else if(s>850&&s<=1350)
r=5;
else if(s>1350&&s<=2850)
r=10;
else if(s>2850&&s<=5850)
r=15;
else if(s>5850)
r=20;

t=r*(s-850)/100;
printf("%.2f\n",t);
}

1078 出租车收费问题 66%(226/340) 33% 03分支结构

26.#include<stdio.h>
main()
{
int b;
float a;
double t,s;
scanf("%f %d",&a,&b);
t=a+b/5.0;
if(t<=3)
s=10;
else if(t>=3&&t<=10)
s=10+((double)t-3.0)*2;
else if(t>10)
s=10+14+(t-10)*3.0;
printf("%.0f",s);

}

1079 学生综合测评问题 49%(259/525) 51% 03分支结构

27.#include<stdio.h>
main()
{
int a,b;
scanf("%d",&a);
switch(a)
{
case 0:b=0;break;
case 1:b=1;break;
case 2:
case 3:b=2;break;
case 4:
case 5:
case 6:
case 7:b=a;break;
case 8:b=8;break;
case 9:b=8;break;
case 10:b=8;break;
default :b=10;break;
}
printf("%d",b);
}

1080 个人所得税问题(2) 76%(247/32

7) 25% 03分支结构

28.#include<stdio.h>
main()

{
float s,r,t;
scanf("%f",&s);
if(s<=850)
{
r=0;t=r*(s-850)/100;
}
else if(s>850&&s<=1350)
{
r=5;t=r*(s-850)/100;
}
else if(s>1350&&s<=2850)
{
r=10;t=r*(s-1350)/100+25;
}
else if(s>2850&&s<=5850)
{
r=15;t=r*(s-2850)/100+175;
}
else if(s>5850)
{
r=20;t=r*(s-5850)/100+625;
}

printf("%.2f\n",t);
}

1081 他(她)的实足年龄是...... 55%(243/438) 44% 03分支结构

29.#include<stdio.h>
main()
{
int y1,y2,m1,m2,d1,d2,s;
scanf("%d %d %d\n%d %d %d\n",&y1,&m1,&d1,&y2,&m2,&d2);
s=y2-y1;
if(m1>m2)
s--;
else if(m1==m2&&d1>d2)
s--;
printf("%d",s);
}

1016 将一个小整数逆序输出 70%(298/425) 30% 04循环结构

30.#include "stdio.h"
#include "math.h"
void main()
{
int i,j,n,t,k;
int s=0,ipow=1,jpow=1;
scanf("%d",&n);
for(i=1;;i++)
{
ipow=ipow*10;
if(n>=ipow);
else break;
}
for(j=0;j<=i;j++)
{
int fpow=1;
t=(n/jpow)%10;
jpow=jpow*10;

for(k=1;k<=i-j-1;k++)
{
fpow=fpow*10;
}
s=s+t*fpow;
}
printf("%d",s);
}

1017 计算一个数字的各位数字之和 70%(328/466) 30% 04循环结


31.#include<stdio.h>
main()
{
int n,m=0;
scanf("%d",&n);
while(n)
{
m+=n%10;
n/=10;
}
printf("%d",m);
}

1018 求两个数之间有多少个数的各位上数字之和为7 51%(209/412) 49% 04循环结构

32.#include<stdio.h>

main()
{
long int a,b,t,k,s,i;
long sum=0;
scanf("%d %d",&a,&b);
if(a<b)
{

for(i=a;i<=b;i++)
{
k=i;
s=0;
do
{
t=k%10;
s=s+t;
k=k/10;
}while(k>0);
if(s==7)
sum=sum+1;

}
}
if(a>b)
{
for(i=b;i<=a;i++)
{
k=i;
s=0;
do
{
t=k%10;
s=s+t;
k=k/10;
}while(k>0);
if(s==7)
sum=sum+1;

}
}
printf("%ld",sum);

}

1019 判断一个整数是否是素数 62%(273/440) 38% 04循环结构

33.#include "stdio.h"
#include<math.h>
void main()
{
int i,s=0,n;
scanf("%d",&n);
for(i=1;i<=sqrt(n);i++)
{
if(n%i==0)
s++;
}
if(s==1)
printf("YES");
else
printf("NO");
}

1020 输出 n - m 之间的所有素数 80%(226/282) 20% 04循环结构

34.#include "stdio.h"
void main()
{
int n,m;
int i,j;
scanf("%d %d",&n,&m);
for(i=n;i<=m;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
break;
}
if(j>=i)
printf("%d\n",i);
}
}

1021 1到m之间有哪些数能被7或被11整除? 82%(263/322) 18% 04循环结构

35.#include "stdio.h"
void main()
{
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%7==0||i%11==0)
printf("%d\n",i);
}
}

1022 编程计算 1+3+5+7+... 的值 68%(321/472) 32

% 04循环结构

36.#include "stdio.h"
int main()
{
int s=0,i,n;
scanf("%d",&n);
for(i=1;i<=n;++i)
s=s+2*i-1;
printf("%d",s);
}

1023 计算 1 ! +2 ! +3 ! +… 前 n 项的和 66%(307/466) 34% 04循环结构

37. #include "stdio.h"
int fun(int);
int main()
{
int i=1,n;
long s=0;
scanf("%d",&n);
do
{
s=s+fun(i);
i++;
}while(i<=n);
printf("%d",s);
}
int fun(n)
{
if(n==1)
return 1;
else
return fun(n-1)*n;
}

1024 输出100-999之间的所有水仙花数 70%(244/347) 30% 04循环结构

38.#include "stdio.h"
void main()
{
int a,b,c,i;
int s;
for(i=100;i<=999;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
s=a*a*a+b*b*b+c*c*c;
if(s==i)
printf("%d\n",i);
}
return 0;
}

1025 求输出的数既是完全平方数又有两位相同的数 76%(188/248) 24% 04循环结构

39.#include "stdio.h"
void main()
{
int i,j;
int a,b,c;
for(i=100;i<=999;i++)
for(j=10;j<=33;j++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(i==(j*j)&&(a==b||a==c||b==c))
printf("%d\n",i);
}
}

1026 判断一个数是否是完数 85%(199/233) 14% 04循环结构

40.#include "stdio.h"
void main()
{
int i=1,s=0;
int n;
scanf("%d",&n);
while(i<=n/2)
{
if(n%i==0)
s=s+i;
i++;
}
if(
s==n)
printf("YES");
else
printf("NO");
}

1027 求 1+22+333+ … 前 n 项的和 53%(216/407) 47% 04循环结构

41.#include <stdio.h>
main()
{
int i,n,t,sum=0,a=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=a*10+1;
t=a*i;
sum=sum+t;

}
printf("%d",sum);
}

1028 求 sum=b+bb+bbb+bbbb+... 70%(220/315) 31% 04循环结构

42.#include<stdio.h>
main()
{
int m,b,i,t,a=0,sum=0;
scanf("%d%d",&b,&m);
for(i=1;i<=m;i++)
{
a=a*10+1;
t=b*a;
sum=sum+t;
}
printf("%d",sum);
}

1029 求 1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值 83%(229/277) 18% 04循环结构

43.#include "stdio.h"
int main()
{
int i=2,detax;
float s=1,t=1;
scanf("%d",&detax);
do
{
s=s-t/i;
i++;
t=-t;
}while(i<=detax);
printf("%.6f",s);
}

1030 求1-1/(2*2)+1/(3*3)-1/(4*4)+1/(5*5)-1/(6*6)+ … 前n项值 92%(208/226) 8% 04循环结构

44.#include "stdio.h"
int main()
{
int i=2;
float s=1,t=1,n;
scanf("%f",&n);
do
{
s=s-t/(i*i);
i++;
t=-t;
}while(i<=n);
printf("%.6f",s);
}

1031 编程计算∏的近似值 59%(169/285) 41% 04循环结构

45.#include "stdio.h"
int main()
{
int i=2;
double s=1,t=1,detax;
scanf("%lf",&detax);
do
{
s=s-t/(2*i-1);
i++;
t=-t;
}while(1.0/(2*i-1)>=detax);
printf("%lf",4*s);
}

1032 编程计算 1+x/2+2*x*x/3+ 3*x*x*x/5+ 5*x*x*x*x/8+ …… 78%(120/153) 22%

04循环结构

46.#include "stdio.h"
int f(int);
void main()
{
int i;
float x,t=1,s=1;
scanf("%f",&x);
for(i=1;;i++)
{
t=t*x;
s=s+f(i)*t/f(i+1);
if(f(i)*t/f(i+1)<0.000001)
{
printf("%.6f",s);
break;
}
}
}

int f(n)
{
if(n==1)
return 1;
else if(n==2)
return 2;
else
return f(n-1)+f(n-2);
}

1033 打印图形 72%(162/226) 29% 04循环结构

47.#include "stdio.h"
void main()
{
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=n-i;j<n-1;j++)
printf(" ");
if(j>=n-1)
for(k=1;k<=2*(n-i)+1;k++)
printf("*");
if(k>2*(n-i)+1)
printf("\n");
}
}

1034 求解中国剩余定理的问题 81%(167/205) 18% 04循环结构

48.#include "stdio.h"
void main()
{
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%3==1&&i%5==2&&i%7==3)
printf("%d\n",i);
}
}

1035 哪些数加上 n 后是完全平方数且加上 m 后也是完全平方数 66%(156/235) 34% 04循环结构

49.#include "stdio.h"
#include<math.h>
void main()
{
int i;
int n,m;
double nsqrt,msqrt;
scanf("%d %d",&n,&m);
for(i=1;i<=100000;i++)
{
nsqrt=sqrt(i+n);
msqrt=sqrt(i+m);
if(nsqrt-(int)sqrt(i+n)==0&&msqrt-(int)sqrt(i+m)==0)
printf("%d\n",i);
}
}

1084 求解不定方程的非负整数的根 94%(154/164) 6% 04循环结构

50.#include "stdio.h"
void main()
{
int x,y,z;
int i;
for(i=4;i<=100;i=i+4)
{
x=i;
if((300+3*x)%4==0)
{
z=(300+3*x)/4;
y=(100-7*x)/4;
}
if(x>0&&y>0&&z>0)
printf("%d %d %d\n",x,y,z);
}

}

1085 百钱百鸡问题 96%(174/182) 4% 04循环结构

51.#include "stdio.h"
void main()
{
int n,m;
int i;

scanf("%d %d",&n,&m);

for(i=1;;i++)
{
if((n+i)==2*(m+i))
{
printf("%d",i);
}
}
}

1086 多少年后父亲的年龄是儿子的年龄的2倍 77%(185/241) 23% 04循环结构

52.#include "stdio.h"
void main()
{
int n,m;
int i;

scanf("%d %d",&n,&m);

for(i=1;i>0;i++)
{
if((n+i)==2*(m+i))
{
printf("%d",i);
break;
}
}
}

1087 特殊的四位数 96%(171/178) 4% 04循环结构

53.#include <stdio.h>

main()
{
int a,b,c,d,i,k,f;

for(i=1000;i<=9999;i++)
{ a=i%10;
b=(i/10)%10;
c=(i/100)%10;
d=i/1000;
f=a*1000+b*100+c*10+d;
for(k=2;k<=9;k++)
{
if(i*k==f&&a!=0)
printf("%d\n",i);
}
}
}

1082 计算F(G(x))的值 76%(155/204) 24% 05函数

54.#include "stdio.h"
#include<math.h>
void main()
{
double x;
double g,f;
scanf("%lf",&x);
g=2*x+1;
f=(g+1)*(g+1);
printf("%.2lf",f);
}

1083 哪些数是回文数? 74%(111/150) 26% 05函数

55.#include&

lt;stdio.h>

int f(int y)
{
int s=0;
do{
s=s*10+y%10;
y=y/10;
}while(y>0);
return s;
}

main()
{
int m,n,i;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
if(i==f(i))
printf("%d\n",i);
}
}

1088 编写阶乘函数求表达式的值 91%(144/158) 8% 05函数

56.#include "stdio.h"
int fun(int);
void main()
{
int n,m;
double s;
scanf("%d %d",&n,&m);
s=(double)fun(m)/(fun(n)*fun(n-m));
printf("%.6f",s);
}

int fun(x)
{
if(x==1)
return 1;
else
return x*fun(x-1);
}

1089 编程计算两个数的最大公约数 92%(131/143) 9% 05函数

57.#include "stdio.h"
void main()
{
int t,i;
int m, n;

scanf("%d %d",&m,&n);

for(i=1; ;i++)
{
if(m%n==0)
{
printf("%d",n);
break;
}
else
{
t=m%n;
m=n;
n=t;
}
}
}

1090 计算一个数的所有质因数 64%(121/189) 37% 05函数

58.#include "stdio.h"
void main()
{
int k,l;
int j;

scanf("%d",&k);

for(j=2;j<k;j++)
{
if(k%j==0)
{
for(l=2;l<j;l++)

if(j%l==0) break;

}

if(l>=j)
printf("%d\n",j);

}
}

1095 求递归函数的值 96%(114/119) 4% 05函数

59.#include "stdio.h"
int f(int);
void main()
{
int x;
scanf("%d",&x);

printf("%d",f(x));
}
int f(n)
{
if(n==1)
return 10;
else
return f(n-1)+2;
}

1036 将一维数组中的数据按逆序重新存放 81%(134/166) 20% 06数组和指针

60.#include "stdio.h"
void main()
{
int a[20];
int i,j,n;
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(j=n-1;j>=0;j--)
{
printf("%d ",a[j]);
}
}

1037 统计一组数据中正数、负数和零的个数 84%(127/152) 17% 06数组和指针

61.#include<stdio.h>
main()
{
int n,a[20
];
int i,j,k,l;
int p=0,b=0,c=0;

scanf("%d\n",&n);

for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(j=0;j<n;j++)
{
if(a[j]>0)
p++;
}

for(k=0;k<n;k++)
{
if(a[k]<0)
b++;
}

for(l=0;l<n;l++)
{
if(a[l]==0)
c++;
}
printf("%d %d %d",p,b,c);
}

1038 计算一组数据的平均值 92%(132/144) 9% 06数组和指针

62.#include "stdio.h"
void main()
{
float a[20];
int i,j,n;
float s=0,pj;

scanf("%d\n",&n);

for(i=0;i<n;i++)
{
scanf("%f",&a[i]);
}
for(j=0;j<n;j++)
{
s=s+a[j];
}
pj=s/n;
printf("%.6f",pj);
}

1039 统计一个串中字母、数字和其它字符的个数 66%(104/158) 31% 06数组和指针

63.#include<stdio.h>
main()
{
char c[1000];
int i,n=0,z=0,q=0;
gets(c);
for(i=0;c[i];i++)
{
if(c[i]>='0'&&c[i]<='9')
n=n+1;
else if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&

amp;&c[i]<='z'))
z=z+1;
else q++;
}
printf("%d %d %d",z,n,q);
}


1040 判断一组数据是否是从小到大的序列 76%(100/131) 24% 06数组和指针

64.#include "stdio.h"
void main()
{
int ch[20];
int i,j=0,n;

scanf("%d",&n);

for(i=0;i<n;i++)
scanf("%d",&ch[i]);


while(n-j-1)
{
if(ch[j]>=ch[j+1]) break;
j++;
}
if(j>=n-1)
printf("YES");
else
printf("NO");
}

1041 判断一个字符串是否是回文 78%(103/132) 22% 06数组和指针

65.#include <stdio.h>
#include <string.h>
void main()
{
char ch[50];
int i, n;

scanf("%s",ch);

n=strlen(ch);

for(i=0;i<n;i++)
{
if(ch[i]!=ch[n-i-1]) break;
}
if(i>=n)
printf("YES");
else
printf("NO");
}

1042 数组中有这个数吗? 76%(94/123) 24% 06数组和指针

66.#include "stdio.h"
void main()
{
int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};
int i,j,n;
scanf("%d",&n);
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
if(n==(3*i+j+1))
{
printf("%d %d",i,j);
}
}
}
if(n>=10)
printf("-1");
}

1043 求出二维数组中最大元素的值及其位置 79%(97/123) 20% 06数组和指针

67.#include "stdio.h"
void main()
{
int ch[3][4];
int i,j,n,m;
int max;

for(i=0 ; i<3 ; i++)
for(j=0 ; j<4 ; j++)

scanf("%d",&ch[i][j]);

max=ch[0][0];

for(i=0 ; i<3 ; i++)
for(j=0 ; j<4 ; j++)

if(ch[i][j]>=max)
{
max=ch[i][j];
n=i;
m=j;
}

printf("%d %d %d",max,n,m);

}

1044 交换二维数组中最大元素和最小元素 80%(87/109) 20% 06数组和指针

68.#include "stdio.h"
void main()
{
int ch[3][4];
int i,j,n,m;
int t;
int x1,y1,x2,y2;
int max,min;

for(i=0 ; i<3 ; i++)
for(j=0 ; j<4 ; j++)

scanf("%d",&ch[i][j]);

max=ch[0][0];

for(i=0 ; i<3 ; i++)
for(j=0 ; j<4 ; j++)

if(ch[i][j]>=max)
{
max=ch[
i][j];
x1=i;
y1=j;
}
min=ch[0][0];
for(n=0 ; n<3 ; n++)
for(m=0 ; m<4 ; m++)

if(ch[n][m]<=min)
{
min=ch[n][m];
x2=n;
y2=m;
}


t=ch[x1][y1];
ch[x1][y1]=ch[x2][y2];
ch[x2][y2]=t;

for(i=0 ; i<3 ; i++)
{
for(j=0 ; j<4 ; j++)

printf("%d ",ch[i][j]);
printf("\n");
}

}

1045 统计字符串中单词数量 60%(85/142) 41% 06数组和指针

69.#include<stdio.h>
#include<string.h>
#include<Ctype.h>
int sum(char []);
main()
{
char s[101];
gets(s);
printf("%d",sum(s));
}
int sum(char s[])
{
int i=0,j=0,n=0;
char temp[20]={'\0'};
do
{
if(isalpha(s[i]))
temp[j++]=s[i];
else
{
temp[j]='\0';
if(strlen(temp)>0)
n=n+1;j=0;
}
}while(s[i++]);
return n;
}

1046 将一个字符串中所有字母转成大写 87%(92/106) 13% 06数组和指



70.#include<stdio.h>
#include<string.h>
main()
{
int i;
char a[101];

gets(a);
for(i=0;a[i];i++)
{
if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
}
puts(a);
}


1047 删除字符串中的前导*号 83%(90/109) 18% 06数组和指针

71.#include "stdio.h"
#include <string.h>
#include <Ctype.h>
void main()
{
char s[100],a[100]={0};
int j=0,i=0,k=0;

gets(s);

while(s[i++]=='*')
k++;

for(i=k;i<100;i++)
a[j++]=s[i];

puts(a);
}

1048 删除字符串的*号后缀 76%(86/113) 15% 06数组和指针

72.#include "stdio.h"
#include <string.h>
#include <Ctype.h>
void main()
{
char s[100],a[100]={0};
int j=0,i=0,k=0;

gets(s);

while(s[i++]!='\0')
k++;

while(s[k-1]=='*')
{
k--;
}
for(i=0;i<k;i++)

a[j++]=s[i];


puts(a);
}

1049 删除字符串中所有的*号 87%(92/106) 13% 06数组和指针

73.#include "stdio.h"
#include <string.h>
#include <Ctype.h>
void main()
{
char s[100],a[100]={0};
int j=0,i=0;
gets(s);
do
{
if(isalpha(s[i]))
a[j++]=s[i];

}while(s[i++]);

puts(a);

}

1094 求矩阵的两对角线上的元素之和 78%(66/85) 23% 06数组和指针

74.#include "stdio.h"
void main()
{
int a[10][10],n;
int i,j,s1=0,s2=0,s;

scanf("%d",&n);

for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);

for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
s1=s1+a[i][j];
if( (i+j) == n-1&&i!=j)
s2=s2+a[i][j];
}
s=s1+s2;
printf("%d",s);
}

1097 结构体:按成绩排序 77%(43/56) 22% 07结构体

75.#include "stdio.h"
struct student
{
char number[11];
char name[9];
int chengji;
};

int main()
{
int i,j;
int n;
struct student zg[100];
struct student q;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s%s%d",zg[i].number,zg[i].name,&zg[i].chengji);
}

for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++
)
{
if(zg[i].chengji>zg[j].chengji)
{
q=zg[i];
zg[i]=zg[j];
zg[j]=q;
}
}
for(i=0;i<n;i++)
{
printf("%s %s %d\n",zg[i].number,zg[i].name,zg[i].chengji);
}
}

1098 结构体:求最高分和最低分 83%(40/48) 17% 07结构体

76.#include "stdio.h"
struct student
{
char number[11];
char name[9];
int chengji;
};

int main()
{
int i,j,t,s;
int n;
int maxmin;
struct student zg[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s%s%d",zg[i].number,zg[i].name,&zg[i].chengji);
}
maxmin=zg[0].chengji;
for(i=1;i<n;i++)
if(maxmin<zg[i].chengji)
{
maxmin=zg[i].chengji;
t=i;
}
for(j=1;j<n;j++)
if(maxmin>zg[j].chengji)
{
maxmin=zg[j].chengji;
s=j;
}

printf("%s %s %d\n",zg[t].number,zg[t].name,zg[t].chengji);
printf("

%s %s %d",zg[s].number,zg[s].name,zg[s].chengji);
}

1099 结构体:计算学生平均分 74%(39/53) 27% 07结构体

77.#include<stdio.h>
struct student
{
char num[10];
char name[20];
float fs1,fs2;
}

main()
{
struct student stu[20];

int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",&stu[i].num);
scanf("%s",&stu[i].name);
scanf("%f",&stu[i].fs1);
scanf("%f",&stu[i].fs2);
}
for(i=0;i<n;i++)
stu[i].fs1=(stu[i].fs1+stu[i].fs2)/2;
for(i=0;i<n;i++)
printf("%s %s %0.1f\n",stu[i].num,stu[i].name,stu[i].fs1);

}

1100 结构体:在线编程评测系统的排名 57%(34/60) 47% 07结构体

78.#include<stdio.h>
int fun(struct student*p,struct student*q);
struct student
{
char num[20];
int men;
int fen;
}

main()
{
struct student stu[20];
struct student;
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %d %d",&stu[i].num,&stu[i].men,&stu[i].fen);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(stu[i].men<stu[j].men)
fun(&stu[i],&stu[j]);

if(stu[i].men==stu[j].men&&stu[i].fen>stu[j].fen)
fun(&stu[i],&stu[j]);

}
}
for(i=0;i<n;i++)
printf("%d %s %d %d\n",i+1,stu[i].num,stu[i].men,stu[i].fen);

}

int fun(struct student*p,struct student*q)
{
struct student a;

a=*p;
*p=*q;
*q=a;
return 0;
}

1050 [初级竞赛题] 亲和数 82%(89/109) 19% 09综合应用

79.#include<stdio.h>
main()
{
int a,b,i,j,d,sum=0,sun=0;
scanf("%d %d",&a,&b);
for(i=1;i<a;i++)
{
d=a/i;
if(d*i==a)
{
sum=sum+i;
}
}
for(j=1;j<b;j++)
{
d=b/j;
if(d*j==b)
{
sun=sun+j;
}
}
if(sum==b&&sun==a)
printf("YES\n");
else
printf("NO\n");

}

1051 [初级竞赛题] 陶陶摘苹果 81%(70/86) 19% 09综合应用

80.#include<stdio.h>
main()
{
int a[10];
int i,j,n=0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&j);
for(i=0;i<10;i++)
{
if
(a[i]<=j+30)
{
n+=1;
}
}
printf("%d\n",n);
}

1052 [初级竞赛题] Lucky Number 55%(36/66) 46% 09综合应用

81.#include<stdio.h>
main()
{
int a[1000];
int i,j,n;
int k=-1,s=1001;

scanf("%d",&n);

for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(a[i]==a[j]&&i!=j)
{
break;
}
if (j==n)
{
if(a[i]<s)
{
s=a[i];
k=i;
}
}
}
if (k!=-1)
printf("%d %d",k+1,s);
else
printf("Thank you for playing");

}

1053 [初级竞赛题] 阅读顺序 61%(41/67) 38% 09综合应用

82.#include <stdio.h>
#include <string.h>
int main(void)
{
char a[101][201];
int i,j,p[201],n,b;
scanf("%d\n",&n);
for(i=0;i&l

t;n;i++)
gets(a[i]);
for(i=0,b=0;i<n;i++,b++)
p[b]=strlen(a[i]);
for(i=0;i<n;i++)
{
for(j=p[i]-1;j>=0;j--)
printf("%c",a[i][j]);
putchar('\n');
}
}


1054 [初级竞赛题] Redraiment猜想 97%(61/63) 3% 09综合应用

83.#include "stdio.h"
void main()
{
int i,j,n;
int s=0,p=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=2;j<i;j++)
{
if((i%j)==0)
break;
}
if(j>=i&&i>1)
p=p+1;
}
printf("%d",p);
}

1055 [初级竞赛题] Magic Number 67%(20/30) 32% 09综合应用

84.#include "stdio.h"
int fun_1(int x[10],int n);
int fun_2(int y[10]);
int main()
{
int i,n,m;
int a[10],b[10];
int q=0;
scanf("%d",&n);
fun_1(a,n);
fun_2(a);
m=2*n;
fun_1(b,m);
fun_2(b);

for(i=0;i<10;i++)

{
if(a[i]==b[i])
q++;
}
if(q==10)
printf("Magic Number");
else
printf("Not Magic Number");
return 0;
}

int fun_1(int *x,int n)

{
int i;
for(i=0;i<10;i++)
{
*(x+i)=n%10;
n=n/10;
}
return 0;
}

int fun_2(int *y)
{
int i,j,t;
for(i=0;i<9;i++)
for(j=1;j<10;j++)
{
if(*(y+i)>*(y+j))
{
t=*(y+i);
*(y+i)=*(y+j);
*(y+j)=t;
}
}
return 0;
}

1056 [中级竞赛题] 不高兴的津津 79%(46/58) 21% 09综合应用

85.#include "stdio.h"
void main()
{
int i,j,m=1,max;
int sk[7][2],s[7];

for(i=0;i<7;i++)
for(j=0;j<2;j++)
scanf("%d",&sk[i][j]);

for(i=0;i<7;i++)
s[i]=(sk[i][0]+sk[i][1]);
max=s[0];
for(i=1;i<7;i++)
{
if(max<s[i])
{
max=s[i];
m=i+1;
}
}
if(max>8&&i>=7)
printf("%d",m);
else
printf("0");
}

1057 [中级竞赛题] 整数拼数 36%(26/73) 66% 09综合应用

86.#include<stdio.h>
main()
{
int n,a[1000],b[1000],i,c,t,e,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
b[i]=a[i];
c=a[i];
if(c>=1&&c<=9)
{
a[i]=a[i]*10+c;
}
if(a[i]>=10&&a[i]<=99)
{
c=(a[i]/10)%10;
a[i]=a[i]*10+c;
}
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i
]=a[j];
a[j]=t;
e=b[i];
b[i]=b[j];
b[j]=e;
}
}
}
for(i=0;i<n;i++)
printf("%d",b[i]);
}

1058 [中级竞赛题] 最小倍数 84%(36/43) 17% 09综合应用

87.#include "stdio.h"
int fun(int m);
int main()
{
int i=0,n;

scanf("%d",&n);

while(1)
{
i++;
if(fun(n*i))
break;
}

printf("%d\n",n*i);

return 0;
}

int fun(int m)
{
while(m)
{
if(m%10==0||m%10==1)
m=m/10;
else
break;
}
if(m==0)
return 1;
else
return 0;
}

1059 [中级竞赛题] 循环移位 84%(37/44) 16% 09综合应用

88.#include "stdio.h"
#include<string.h>
int main()
{
char s[100000]={0};
int i,n,m;

scanf("%d\n",&n);
gets(s);

m=strlen(s);

for(i=0;i<m;i++)
printf("%c",s[(m-n+i)%m]);

}

1060 [中级竞赛题] 高低位交换 85%(28/33) 16% 09综合应用
89.#include "stdio.h"
int main()
{
int i,j,a[33]={0};
long t,n,s=0;

scanf("%ld",&n);

for(i=0;i<32;i++)
{
a[i] = n % 2;
n=n/2;

j=0;
t=1;

if(i<16)
{
while(j<16+i)
{
t=t*2;
j++;
}
}

else
{
while(j<i-16)
{
t=t*2;
j++;
}
}

s=s+t*a[i];
}
printf("%ld",s);

return 0;

}

1061 [中级竞赛题] 亲和数 55%(35/64) 45% 09综合应用

90.#include "stdio.h"
int fun(int n,int B);
int main()
{
int i , A , B , p = 0;

scanf("%d%d",&A,&B);

for(i = A ; i <= B ; i++)
{
if( fun (i,B) )
p++;
}

printf("%d\n",p);

return 0;
}



int fun(int n,int B)
{
int m,w,i,s=1,t=1;
m=n;
for(i = 2 ; i <= n/2 ; i++)
if( m%i == 0)
{
s = s+i;
}
w=s;
if( n < s && s <= B)
for(i = 2 ; i <= s/2 ; i++)
if( w%i == 0)
{
t = t+i;
}

if( n == t )
return 1;
else
return 0;
}

1062 [高级竞赛题] 分解因式 97%(38/39) 3% 09综合应用

91.#include "stdio.h"
int fun(int k,int i);
void main()
{
int i,k;

scanf("%d",&k);

for( i = 1 ; ; i++)
if( fun(k,i) )
break;

printf("%d\n",i);

}

int fun(int k,int i)
{
int j,t = 0;

for(j = 1 ; j <= i ; j++)
if( i%j == 0 )
t++;


if(t == k)
return 1;

else
return 0;
}

1063 [高级竞赛题] 回文数 87%(27/31) 14% 09综合应用

92.#include "stdio.h"
int fun(int n);
int main()
{
int n,t=0;

scanf("%d",&n);

while(1)
{

if(n==fun(n))
break;

else
{
n=n+fun(n);
t++;
}

}

printf("%d",t);

}


int fun(int n)
{
int m;
int t=1,s=0,k=1;

m=n;

while(m)
{

t=t*10;
m=m/10;

}

t=t/10;

while(t)
{

s=s+t*((n/k)%10);

k=k*10;
t=t/10;
}

return s;

}

1064 [高级竞赛题] 赋值问题 4
3%(21/49) 60% 09综合应用

93.
1065 [高级竞赛题] 报数问题 67%(28/42) 31% 09综合应用

94.
1066 [高级竞赛题] 移数问题 74%(32/43) 26% 09综合应用

95.#include "stdio.h"
#include<string.h>
int main()
{
char s[100000]={0};
int i,n,t;

scanf("%d",&t);
scanf("%d",&n);

for(i=0;i<t;i++)
scanf("%d",&s[i]);


for(i=0;i<t;i++)
printf("%d ",s[(t-n+i)%t]);

}

1067 [高级竞赛题] 松鼠吃果子 70%(30/43) 28% 09综合应用

96.#include "stdio.h"
void fun(int a[],int i,int N);
void main()
{
int i=1,j,k;
int N,m,p=0,q=0;
int a[201];

scanf("%d%d",&N,&m);

for(k=0;k<=N;k++)
a[k]=k;

for(j=1;j<=m;j++)
{
i=i+((j*j*j)%5)+1;
if(i>N)
{
p=1;
i=1;
i=i+((j*j*j)%5)+1;
if(j==m)
{
q=1;
printf("%d\n",a[i]);
}
fun(a,i,N);
N-

-;
}
if(q==0&&j==m)
printf("%d\n",a[i]);
if(p==0)
{
fun(a,i,N);
N--;
}
}
}

void fun(int a[],int i,int N)
{
int t;
for(t=i;t<N;t++)
a[t]=a[t+1];
}

1091 [综合应用题] 自守数 42%(14/33) 59% 09综合应用

97.#include "stdio.h"

void fun1(int *p , int x[] , int q );
int fun2(int i , int n,int y[]);

int main()
{
int i,v,n;
int a[101];

scanf("%d", &n );

for( v = 0 ; v <= n ; v++ )
{
i = 0 ;

fun1( &i , a , v ) ;

if( fun2( i , v , a ) )

printf("%d\n",v);

}
}

void fun1(int *p , int x[] , int q )
{
while(q)
{
x[*p] = q % 10;
q = q / 10;
(*p)++ ;
}
}

int fun2(int i , int n,int y[])

{
int j,k,t,s,m = 0;
for(j = 0 ; j < i ; j++)
{
t = 1 ;
s = 0 ;
for(k = j ; k >= 0 ; k--)
{
s = s + ( (n * y[k])/t ) % 10;
t = t * 10;
}
s = s + m ;
m = 0 ;
if( s >= 10 )
m = s / 10 ;
if( s % 10 != y[j])
break;
}
if(j < i)
return 0;
else
return 1;
}


1092 [综合应用题] 角谷猜想 95%(35/37) 6% 09综合应用

98.#include "stdio.h"
void main()
{
int n;

scanf("%d",&n);

while(n!=1)
{
if((n%2)==0)
{
printf("%d/2=%d\n",n,n/2);
n=n/2;
}
else
{
printf("%d*3+1=%d\n",n,n*3+1);
n=n*3+1;
}
}

}

1093 [综合应用题] 求解方程 59%(40/68) 42% 09综合应用

99.#include "stdio.h"
int fun(int n);
void main()
{
int i,s;

scanf("%d",&s);

for(i=101;i<1000;i++)
{
if( i%10 != 0 && (i+fun(i)) == s)
printf("%d %d\n",i,fun(i));
}
}

int fun(int n)
{
int t=100;
int m=0;

while(t)
{
m=m+(t*(n%10));
n=n/10;
t=t/10;
}

return m;
}

1096 [综合应用题] 求同存异 74%(37/50) 27% 09综合应用

100.#include "stdio.h"

void fun(int*q,int n);

int main()
{
int i,j;
int a[6]={0},b[8]={0};

fun(a,6);
fun(b,8);


for(i=0;i<6;
i++)
for(j=0;j<8;j++)
{
if(a[i]==b[j])
printf("%d\n",a[i]);
}

return 0;
}

void fun(int*q,int n)

{
int i;
for(i=0;i<n;i++)
scanf("%d",q+i);
}

1101 模拟EXCEL的排序 39%(13/33) 61% 09综合应用

101.#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct student
{
char xh[10];
char mz[10];
int fs;
}st[11];

int main()
{
int i,j;
int n,c;
struct student t;

scanf("%d%d",&n,&c);

for(i=0;i<n;i++)
scanf("%s\n%s\n%d",&st[i].xh,&st[i].mz,&st[i].fs);

if(c==1)
{
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(atoi(st[i].xh)>atoi(st[j].xh))
{
t=st[i];
st[i]=st[j];
st[j]=t;
}
}
}
}
if(c==2)
{
for(i=0;i<n-1;i++)
{
for(j=i;j<n;j++)
{
if(strcmp(st[i].mz,st[j].mz)>0)
{
struct student t;
t=st[i];
st[i]=st[j];
st[j]=t;continue;
}
if(strcmp(st[i].mz,st[j].mz)==0)
{
if(atoi(s

t[i].xh)>atoi(st[j].xh));
{
t=st[i];
st[i]=st[j];
st[j]=t;
}
}
}
}
}
if(c==3)
{
for(i=0;i<n-1;i++)
{
for(j=i;j<n;j++)
{
if(st[i].fs>st[j].fs)
{
t=st[i];
st[i]=st[j];
st[j]=t;continue;
}
if(st[i].fs==st[j].fs)
{
if(atoi(st[i].xh)>atoi(st[j].xh))
{
struct student t;
t=st[i];
st[i]=st[j];
st[j]=t;
}
}
}
}
}

for(i=0;i<n;i++)
printf("%s %s %d\n",st[i].xh,st[i].mz,st[i].fs);

return 0;

}




相关文档