广东工业大学803C语言考研真题答案(大题)

本站小编 免费考研网/2015-04-11

1.吃饭
#include<stdio.h>
voidmain(void)
{
inta,b,c;
for(a=0;a<=30;a++)
{
for(b=0;b<=30;b++)
{
for(c=0;c<=30;c++)
{
if((a+b+c==30)&&(a*3+b*2+c==50))
printf("man=%dwoman=%dkid=%d\n",a,b,c);
}
}
}
}
2.//冒泡法
#include<stdio.h>
voidmain(void)
{
voiddeal(int*x,intn);
inti,a[10],*p;
p=a;
for(i=0;i!=10;i++)
{
scanf("%d",p++);
}
p=a;
for(i=0;i!=10;i++)
{
printf("%d\n",*p++);
}
p=a;
deal(p,10);
for(i=0;i!=10;i++)
{
printf("%d\t",*p++);
}
printf("\n");
}
voiddeal(int*x,intn){
inti,j,t;
for(i=0;i!=n-1;i++){
for(j=0;j!=n-1-i;j++){
if(*(x+j)<*(x+j+1)){
t=*(x+j);
*(x+j)=*(x+j+1);*(x+j+1)=t;}
}
}
}
3.//回文
#include<stdio.h>#include<string.h>voidmain(void){
inti,len,Bit=0;chara[100];gets(a);
len=strlen(a);
for(i=0;i!=len/2;i++){
if(a[len-i-1]!=a[i]){
Bit=1;
break;
}
}
if(Bit==0)
printf("Yes\n");else
printf("No\n");}
4.求pi
#include<stdio.h>
#include<math.h>
voidmain(void)
{
doubles=1,pi=1,n=1,m=3;
while(s>=0.00001)
{
s*=n/m;
pi+=s;
n+=1;
m+=2;
}
printf("%f\n",pi*2);
}
5.勒让德多项式
#include<stdio.h>
intmain()
{
floatdeal(intn,intx);
intn=0,x=0;
scanf("%d%d",&n,&x);
printf("%f\n",deal(n,x));
return0;
}
floatdeal(intn,intx)
{
floatpx=0;
if(n==0)
px=1;
elseif(n==1)
px=x;
else
px=((2*n-1)*x*deal(n-1,x)-(n-1)*deal(n-2,x))/n;returnpx;
}
2013大题答案:
1.33矩阵
#include<stdio.h>voidmain(){
inti,j,a[3][3],b[3][3];for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
scanf("%d",&a[i][j]);}
}
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
printf("%d\t",a[i][j]);}
}
printf("\n");
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
b[j][i]=a[i][j];}
}
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
a[i][j]=b[i][j];}
}
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
printf("%d\t",a[i][j]);}
}
printf("\n");
}
2.//选择法
#include<stdio.h>
voidmain(void)
{
voiddeal(int*x,intn);
inti,a[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;
/*for(i=0;i!=10;i++)
{
scanf("%d",p++);
}
*/p=a;
for(i=0;i!=10;i++)
{
printf("%d\n",*p++);
}
p=a;
deal(p,10);
for(i=0;i!=10;i++)
{
printf("%d\t",*p++);
}
printf("\n");
}
voiddeal(int*x,intn)
{
inti,j,k,t;
for(i=0;i!=n-1;i++)
{
k=i;
for(j=i+1;j!=n;j++)
{
if(*(x+k)<*(x+j))
{
k=j;
}
}
t=*(x+i);
*(x+i)=*(x+k);
*(x+k)=t;
}
}
3.猴子吃水果
#include<stdio.h>
#include<string.h>
voidmain()
{
intnum(intn);
printf("num=%d\n",num(1));}
intnum(intn)
{
intt;
if(n==10)
t=1;
if(n<10)
t=(num(n+1)+1)*2;
returnt;
}
4.三个字符串比较
#include<stdio.h>
#include<string.h>
voidmain()
{
voidswap(char*x1,char*x2);
chara[100],b[100],c[100],*p1,*p2,*p3;p1=a;p2=b;p3=c;
gets(p1);
gets(p2);
gets(p3);
if(strcmp(p1,p2)>0)
swap(p1,p2);
if(strcmp(p1,p3)>0)
swap(p1,p3);
if(strcmp(p2,p3)>0)
swap(p2,p3);
puts(p1);
puts(p2);
puts(p3);
}
voidswap(char*x1,char*x2)
{
chartemp[100];char*t;
t=temp;
strcpy(t,x1);
strcpy(x1,x2);
strcpy(x2,t);
}
2012大题答案:
1.20项之和
#include<stdio.h>#include<string.h>voidmain()
{
inti;
floatsum=0,n=2,m=1,t;for(i=0;i<20;i++){
sum+=n/m;
t=n;
n+=m;
m=t;
}
printf("%f\n",sum);}
2.水鲜花
#include<stdio.h>voidmain()
{
inti,a,b,c;
for(i=100;i<=1000;i++){
a=i/100;
b=i%100/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)printf("%d\n",i);}
}
3.冒泡排序
#include<stdio.h>voidmain(){
voidsort(intb[],intn);inti;
inta[10],*p;p=a;
for(i=0;i<10;i++){
scanf("%d",p++);}
p=a;
sort(p,10);
for(i=0;i<10;i++){
printf("%d\n",*p++);}
}
voidsort(intb[],intn){
inti,j,t;
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(b[j]>b[j+1]){
t=b[j];
b[j]=b[j+1];b[j+1]=t;
}
}
}
}
4.打印每项数字#include<stdio.h>voidmain(){
inti,len;
chara[100];
gets(a);
len=strlen(a);
printf("%d\n",len);
for(i=0;i<len;i++)
{
printf("%c\t",a[i]);
}
}
2011大题答案:
1.最大最小数
#include<stdio.h>
voidmain(void)
{
inti,a[8],t1,t2;
for(i=0;i<8;i++)
scanf("%d",&a[i]);
for(i=0,t1=a[0],t2=a[0];i<8;i++)
{
if(t1<a[i])
t1=a[i];
if(t2>a[i])
t2=a[i];
}
printf("max=%d,min=%d\n",t1,t2);
}
2.//二维矩阵c
#include<stdio.h>
voidmain(void)
{
inti,j;
floata[3][3]={2.1,4.0,6.2,8.3,7.6,5.2,3.1,1.1,9.0},b[3][3]={1.2,2.8,5.4,6.3},c[3][3];for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=a[i][j]+b[i][j];
printf("%f\t",c[i][j]);
}
}
printf("\n");
}
2009大题答案:
1.求最大最小值
#include<stdio.h>
voidmain()
{
floatmax(floatx,floaty);floatmin(floatx,floaty);floata,b,t1,t2;
scanf("%f%f",&a,&b);t1=max(a,b);
t2=min(a,b);
printf("max=%f,min=%f\n",t1,t2);}
floatmax(floatx,floaty){
if(x>y)
returnx;
else
returny;
}
floatmin(floatx,floaty){
if(x<y)
returnx;
else
returny;
}
2.求平均值
#include<stdio.h>
voidmain()
{
floatavg(floatb[]);
inti;
floata[9],t;
for(i=0;i<9;i++)
scanf("%f",&a[i]);
t=avg(a);
printf("%f\n",t);}
floatavg(floatb[]){
inti;
floatt=0;
for(i=0;i<9;i++){
t+=b[i];}
t=t/9;
returnt;}
附:广工考研C语言经典大题
1.求素数
#include<stdio.h>
voidmain()
{
inti,j,bit;
for(i=100;i<=1000;i++)
{
bit=0;
for(j=2;j<i;j++)
{
if(i%j==0)
{
bit=1;
break;
}
}
if(bit==0)
printf("%d\n",i);
}
}
2.//回文
#include<stdio.h>
#include<string.h>
voidmain(void)
{
inti,len,Bit=0;
chara[100];
gets(a);
len=strlen(a);
for(i=0;i!=len/2;i++)
{
if(a[len-i-1]!=a[i])
{
Bit=1;
break;
}
}
if(Bit==0)
printf("Yes\n");//求100~1000之间素数//不是素数
printf("No\n");
}
3.//排序(冒泡法)
#include<stdio.h>
voidmain(void)
{
voiddeal(int*x,intn);
inti,a[10],*p;
p=a;
for(i=0;i!=10;i++)
{
scanf("%d",p++);
}
p=a;
for(i=0;i!=10;i++)
{
printf("%d\n",*p++);
}
p=a;
deal(p,10);
for(i=0;i!=10;i++)
{
printf("%d\t",*p++);
}
printf("\n");
}
voiddeal(int*x,intn)
{
inti,j,t;
for(i=0;i!=n-1;i++)
{
for(j=0;j!=n-1-i;j++)
{
if(*(x+j)<*(x+j+1))
{
t=*(x+j);
*(x+j)=*(x+j+1);
*(x+j+1)=t;
}
}
第13/17页
}
4.//排序(选择法)
#include<stdio.h>
voidmain(void)
{
voiddeal(int*x,intn);
inti,a[10],*p;
p=a;
for(i=0;i!=10;i++)
{
scanf("%d",p++);
}
p=a;
for(i=0;i!=10;i++)
{
printf("%d\n",*p++);
}
p=a;
deal(p,10);
for(i=0;i!=10;i++)
{
printf("%d\t",*p++);
}
printf("\n");
}
voiddeal(int*x,intn)
{
inti,j,k,t;
for(i=0;i!=n-1;i++)
{
k=i;
for(j=i+1;j!=n;j++)
{
if(*(x+k)<*(x+j))
{
k=j;
}
}
t=*(x+i);
*(x+i)=*(x+k);
第14/17页
*(x+k)=t;
}
}
5.猴子吃水果
#include<stdio.h>
voidmain()
{
intnum(intn);
printf("num=%d\n",num(1));
}
intnum(intn)
{
intt;
if(n==10)
t=1;
if(n<10)
t=(num(n+1)+1)*2;
returnt;
}
6.水鲜花
#include<stdio.h>
voidmain()
{
inti,a,b,c;
for(i=100;i<=1000;i++)
{
a=i/100;
b=i%100/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
printf("%d\n",i);
}
}
7.打印每项数字
#include<stdio.h>
voidmain()
{
inti,len;
chara[100];
gets(a);
len=strlen(a);
printf("%d\n",len);
for(i=0;i<len;i++)
第15/17页
printf("%c\t",a[i]);
}
}
8.金字塔图案
#include<stdio.h>
#include<string.h>
voidmain(void)
{
inti,j,k,len;
chara[100];
gets(a);
len=strlen(a);
for(i=0;i<len;i++)//行
{
for(j=0;j<len-i-1;j++)//空格个数
{
printf("");
}
for(k=0;k<2*i+1;k++)//字母个数
{
printf("%c",a[i]);
}
printf("\n");
}
}
9.实现strcat函数
#include<stdio.h>
#include<string.h>
voidmain(void)
{
voidlink(chara1[],chara2[]);
chara[100]={0},b[100]={0};
gets(a);
gets(b);
link(a,b);
puts(a);
}
voidlink(chara1[],chara2[])
{
inti,len1,len2;
len1=strlen(a1);
len2=strlen(a2);
for(i=0;i<len2;i++)
第16/17页
a1[i+len1]=a2[i];
}
}
11.求最大公约数最小公倍数
#include<stdio.h>
voidmain()
{
intp,max,min,temp;
scanf("%d%d,",&max,&min);
if(max<min)
{
temp=max;
max=min;
min=temp;
}
p=max*min;
while(min!=0)
{
temp=max%min;
max=min;
min=temp;
}
printf("最大公约数为:%d\n",max);
printf("最小公倍数为:%d\n",p/max);
}
12.有一分数序列2/1,3/2,5/3,8/5,13/8,21/13….求出这个数列的前20项之和#include<stdio.h>
voidmain()
{
inti,n=20;
doublea=2,b=1,s=0,t;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a,
a=a+b,
b=t;
}
printf("sum=%f\n",s);
}


相关话题/广东工业大学 C语言