一、程序填空
(1)    Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1
b=i%100/10;
a*a*a+b*b*b+c*c*c = = i
(2)    输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。
n!=0
n=n/10
(3)    求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
if (n<0) n=-n;
s+=n%10;
(4)    调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
return -y ;
m=m/10 ;
(5)    调用函数f,从字符串中删除所有的数字字符。
strcpy
else
(6)    调用find函数在输入的字符串中查是否出现"the"这个单词。如果查到返回出现的次数,如果未到返回0。
j=0; j<3; j++
j>=3
(7)    输入的一个小写字母,将字母循环后移5个位置后输出。例如:"a"变成"f","w"变成"b"。
c>='a'&&c<='u'
c=(c-'a'+5)%26+'a';
(8)    将字符串s中所有的字符'c'删除。
s[i] != '\0'
j++;
(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。
max=f(1);
fprintf格式 if (f(x)>max)  max=f(x);
(10)    输入三个整数,按由小到大的顺序输出这三个数。
int  *pa, int  *pb
if ( a>b )
(11)    调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1  3  4  6
*m = *m-1;
f (x, &n) ;
(12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。
float x, float *a, int n
return y;
(13)分别统计字符串中英文字母、数字、和其他字符出现的次数。
for ( i=0; a[i]!='\0'; i++)
a[i]>='0' && a[i]<='9'
(14)    将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。(例如:输入十进制数79,将输出十六进制4f。)
return  'a'+x-10;
str[i]=trans(n%16);
(15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结
出。
m%2
bin[j-1]
(16)    数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。
long  f(int n);  或者  long  f(int);
n==1 || n==2
(17)该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。
pst->math+pst->english+pst->computer
st + i
(18)    输入m、n(要求输入数均大于0)。输出它们的最大公约数。
m<=0||n<=0
k=m>n?n:m
(19)    求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。例如:b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。
a[i-1]+a[i]
i%3= =0
(20)输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。
scanf(“%d”,&n), n<=0 
t=t*2;
二程序改错
(1)一输入个字符串,将组成字符串的所有非英文字母的字符删除后输出 if (tolower(str[i])>='a' && tolower(str[i])<='z')  str[k]=str[i]; k++;(2)    输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。例如:输入"ABCD",则字符串t为"ABCDDCBA"。        t[sl+i]=s[sl-1-i];  t[sl+i ]='\0'; (3)    运行时输入10个数,然后分别输出其中的最大值、最小值。for(i=1; i<=10; i++) {      if(i==1) { max=x;min=x;} (4)    用选择法对10个整数按升序排序。if ( a[min]>a[j] )  min =j; temp=a[min]; a[min]=a[i]; a[i]=temp;(5)    输入x和正数eps,计算多项式1-x+x*x/2-x*x*x/3!+……的和直到末项的绝对值小于eps为止。t=-t*x/i++ ;  } while(fabs(t)>=eps);(6)
    运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333。long s=0;t=t*10+1;(7)    用递归法将一个六位整数n转换称字符串。例如:输入123456,应输出字符串"123456"。*s=i%10+'0'; itoa(n,str+5);(8)    输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。 struct axy { float x,y; } *a;scanf("%f%f",&a[i].x,&a[i].y);(9)    运行时输入n,则输出n的所有质数因子。例如:n=13860,则输出2、2、3、3、5、7、11。i=2; i++;
三、编写程序
(1)    在正整数中出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中
FILE *p;  int i;
  p=fopen("Design1.dat","w");
  for( i=1; ;i++)
  if (i%3==1 && i%5==3 && i%7==5 && i%9==7) break;
  fprintf(p,"%d",i);
  fclose(p);
(2)    若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,284、220也是1对亲密数。在6~5000内出所有的亲密数对
for(k=6;k<=5000;k++)
  {  b=0;  c=0;
        for(a=1;a<k;a++)
        if (k%a==0) b+=a;
      for(a=1;a<b;a++)
          if (b%a==0) c+=a;
        if (k==c&&k!=b) fprintf(p,"%6d,%d\n",k,b);
  }
  fclose(p);
}
(3)    设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。
p=fopen("design.dat","w");
  for (i=0;s[i]!='\0';i++)
      {  w=(i+1)*s[i];
        fprintf( p,"%d  ",w);       
      }
      fclose(p);
}
(4)    将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组写入
for (i=0;i<3;i++)
  {  x=a[i][0];
      for (j=1;j<3;j++)
          if (a[i][j]>x) x=a[i][j];
      for (j=0;j<3;j++)  a[i][j]/=x;
  }
(5)    z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写
min=f(1,1);  x1=y1=1;
  for (x=1;x<=6;x++)
      for (y=1;y<=6;y++)
          if (f(x,y)<min)
          {  min=f(x,y);  x1=x;  y1=y;  }
  p=fopen("Design2.dat","w");
  fprintf(p,"%d,%d",x1,y1);
  fclose(p);
(6)    z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x、y取值为区间[0,10]的整数,出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"
z1=10*cos(-4)+5*sin(-2);  x1=y1=0;
  for (x=0;x<=10;x++)
        for (y=0;y<=10;y++)
        {    z=10*cos(x-4)+5*sin(y-2);
            if (z<z1)  { z1=z;  x1=x;  y1=y; }
        }
      p=fopen("Design2.dat","w");
    fprintf(p,"%d,%d",x1,y1);
    fclose(p);
}
(7)    设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写
fprintf(p,"%f",minc); for (i=0;i<10;i++)
      for (j=i+1;j<10;j++)            //  注意:不能为for (j=0; j<10; j++)
      {      c=len(x[i],y[i],x[j],y[j]);
          if (c<minc)  minc=c;
      }
  p=fopen("Design.dat","w");
  fclose(p);
}
(8)    设计程序:在数组x的10个数中求平均值v,出与v相差最小的数组元素并将其以格式"%.5f"写
for ( i=1; i<10; i++)
        if ( fabs(x[i]-v)<d)  { d=fabs(x[i]-v);  k=i;  }
  p=fopen("Design.dat","w");
  fprintf(p,"%.5f", x[k] );
  fclose(p);
}
(9)    对x=1,2,…10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式".3f"
int i;  max=f(1);
for (i=2;i<=10;i++)
{  x=f(i);
  if (max<x) max=x;
}
p=fopen("Design1.dat","w");
fprintf(p,"%.3f",max);
fclose(p);
}
float f(float x)
{    float t;
    t=x-10*cos(x)-5*sin(x);
      return t;
}
(10)    将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
char  str[40];
  strcpy(str, s);
  for(i=0;i<n-1;i++)
  {  k=i;
        for(j=i+1;j<n;j++)
          if (str[k]>str[j] )  k=j;
        c=str[i];  str[i]=str[k];  str[k]=c;
  } 
  s = str ;
  p=fopen("Design2.dat","w");
(11)    在整数数组a中出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"每行3个数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。