搜索
查看: 1494|回复: 7
打印 上一主题 下一主题

c语言题目···求大侠

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-4 16:15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
一、调试
(一)填空, 在___N___中填空。
35、将输入字符串s中所有的小写字符'c'删除。
#include <stdio.h>
#include <____1____>
void main()
{  char s[81];int i;
   gets(s);
   for(___2___;i<strlen(s);)
         if(s=='c')
           strcpy(____3____);
         ___4___
           i++;
   puts(s);
}
1输入一个不超过80个字符的字符串,将其中的大写字符转换为小写字符;小写字符转换为大写字符;空格符转换为下划线,输出转换后的字符串。
#include <stdio.h>
#include <____1_____>
void main()
{  char s[81]; int i;
   _____2_____;
   for(i=0;____3_____;i++) {
         if(isupper(s))
           s=s+32;
         else
       if(islower(s))
             s=s-32;
         if(____4____) s='_';
   }
   puts(s);
}
30、输入4个整数,通过函数Dec2Bin的处理返回字符串,显示每个整数的机内码(二进制,补码)。
#include <stdio.h>
void Dec2Bin(long m,char *s)
{  int i,k;
   for(i=0;i<32;i++) {
     k=m & 0x80000000;
     if(k!=0) s='1'; else ____1_____;
         ____2____;  /* m 左移1*/
   }
}
void main()
{  char a[33]=""; long n; int i;
   for(i=1;i<=4;i++) {
     scanf("%ld",&n);
     _____3______;
         ____ 4_____;
   }
}
6、调用函数f当x=1.7的值。
#include <stdio.h>
float f(float*,float,int);
void main()
{  float b[5]={1.1,2.2,3.3,4.4,5.5};
   printf("%f\n",f(____1_____));
}
float f( _______2________ )
{  float y=___3___,t=1; int i;
   for(i=1;i<n;i++) { t=t*x ; y=y+a*t; }
   ____4____
}
25、数列的第12项均为1,此后各项值均为该项前二项之和。计算数列第24项的值。
#include <stdio.h>
long f(int);
void main()
{  
  printf("%ld\n",___1____);
}
_____2_____
{  if( n==1 || n==2)
     ___3____;
   else
     return ____4_____;
}
p46.2显示数据,要求:(1)在数组a中存在,而在数组b中不存在的数,以及(2)在数组b中存在,而在数组a中不存在的数。
#include <stdio.h>
void main()
{  int a[6]={2,5,7,8,4,12},b[7]={3,4,5,6,7,8,9},i,j,k;
   for(i=0;i<6;i++) {
         for(j=0;j<7;j++) if(___1____) break;
         if(___2___) printf("%d  ",a);
   }
   putchar('\n');
   for(i=0;i<7;i++) {
         for(j=0;j<6;j++) if(b==a[j]) ___3___;
         if(j==6) printf("%d  ",___4___);
   putchar('\n');
}
24循环输入正整数n(直到输入负数或者0结束),计算并显示满足条件2^mn2^(m+1)m值。
#include <stdio.h>
#define F (t<=n && t*2>=n)
void main()
{ int m,t,n;
  while(scanf("%d",&n),__1__){
    m=0;___2___;
    while(___3___){
      ___4___; m++;
        }
    printf("%d  %d\n",n,m);
  }
}
(二)改错,  在/*********** n**************/下一行有错,请改正。
p46.8输入n(小于10的正整数)输出如下形式的数组例如:输入n=5,数组为:1 0 0 0 0
                                                                      2 1 0 0 0
                                                                      3 2 1 0 0
                                                                      4 3 2 1 0
                                                                      5 4 3 2 1
                                                      输入n=6数组为:1 0 0 0 0 0
                                                                      2 1 0 0 0 0
                                                                      3 2 1 0 0 0
                                                                      4 3 2 1 0 0
                                                                      5 4 3 2 1 0
                                                                      6 5 4 3 2 1
#include <stdio.h>
void main()
{  int a[9][9]={{0}},i,j,n;
   /*********** 1 **************/
   while(scanf("%d",n),n<1||n>9);
   for(i=0;i<n;i++) {
         /****** 2 ********/
     for(j=0;j<i;j++)
           /******* 3 *********/
           a[j]=i-j;
   }
   for(i=0;i<n;i++) {
         for(j=0;j<n;j++)
           /******** 4 *********/
           printf("%3d",&a[j]);
         putchar('\n');
   }
}
33输入两字符串s1,s2后,将它们首尾相连。
#include <stdio.h>
void main()
{  char s1[80],s2[40]; int j;
   /***** 1 *****/
   int i;
   printf("Input the first string:");
   gets(s1);
   printf("Input the second string:");
   gets(s2);
   /********** 2********/
   while(s1!=0)
         i++;
   for(j=0;s2[j]!='\0';j++)
         /****** 3 ******/
         s1[j]=s2[j];
   /******* 4 *******/
   s1[i+j]=\0;
   puts(s1);
}
34用选择法对10个整数按升序排序。
#include <stdio.h>
#define N 10
void main()
{  int i,j,min,temp;
   int a[N]={5,4,3,2,1,9,8,7,6,0};
   printf("排序前:");
   /******** 1 *********/
   for(i=0;i<n;i++)
         printf("%4d",a);
   putchar('\n');
   for(i=0;i<N-1;i++) {
         /***** 2 ******/
     min=0;
     for(j=i+1;j<N;j++)
       /****** 3 ******/
       if(a[j]>a[min]) min=j;
     temp=a[min];a[min]=a;a=temp;
   }
   printf("排序后:");
   for(i=0;i<N;i++)printf("%4d",a);
   /****** 4 ********/
   putchar("\n");
}
5、输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
#include <stdio.h>
#include <math.h>
void main()
{ double x,eps,s=1,t=1;
  /******* 1 ********/
  float i=1;
  /******* 2 **********/
  scanf("%f%f",&x,&eps);
  do {
    i++;
        /***** 3 *****/
    t=t*x/i;
    s+=t;
    /***** 4 *****/
  } while(fabs(t)<eps);
  printf("%f\n",s);
}
27程序运行时输入整数n,则输出n的各位数字之和,例如:输入n=1380,则输出12n=-3204,则输出9
#include <stdio.h>
void main()
{  /****** 1 ******/
   int n,s;
   scanf("%d",&n);
   /****** 2 ******/
   n<0?-n:n;
   /****** 3 ******/
   while(n>=0){
     /***** 4 *****/
     s=s+n/10;
         n=n/10;
   }
   printf("%d\n",s);
}
16、运行时若输入an分别为36,则输出下列表达式的值:3+33+333+3333+33333+333333
#include <stdio.h>
void main()
{ int a,n,i; long s=0,t;
  /******* 1 ********/
  scanf("%d%d",a,n);
  /******* 2 **********/
  t=1;
  /******* 3 **********/
  for(i=1;i<n;i++) {
    t=t*10+a;
    /******* 4 ********/
        t=t+s;
  }
  printf("%ld\n",s);
}
p46.5显示两个数组中,数值相同的元素。
#include <stdio.h>
void main()
{ /******** 1 *******/
  int i;
  int a[6]={1,3,5,7,9,11};
  int b[7]={2,5,7,9,12,16,3};
  /******* 2 *******/
  for(i=0;i<=6;i++) {
        for(j=0;j<7;j++)
          /******** 3 *******/
          if(a=b[j]) break;
        /******* 4 ********/
        if(j>=7)
          printf("%d  ",a);
  }
  printf("\n");
}
p46.4逐个显示字符串中各字符的机内码。提示:英文字符字母的机内码首位为0,汉字的每个字节首位为1。程序正确运行后,显示如下:a[0]的机内码为:0110001a[1]的机内码为:00110010a[2]的机内码为:10111010a[3]的机内码为:10111010a[4]的机内码为:11010111a[5]的机内码为:11010110
#include <stdio.h>
void main()
{ /******** 1 *******/
  char a[7]='a2汉字';
  int i,j,k;
  /******** 2 *******/
  for(i=0;i<strlen(a);i++) {
        printf("a[%d]的机内码为:",i);
    for(j=1;j<=8;j++) {
      k=a&0x80;
          if(k!=0) putchar('1');
          /****** 3 *****/
          else putchar(0);
      /****** 4 *****/
          a=a>>1;
        }
        printf("\n");
  }
}
17程序运行时输入n,输出n的所有质数因子,例如:输入n60,则输出60=2*2*3*5
#include <stdio.h>
void main()
{   int n,i;
    /****** 1 ******/
    scanf("%f",&n);
        printf("%d=",n);
    /****** 2 ******/
    n=2;
        /****** 3 ******/
    while(n>0)
      if(n%i==0) {
        printf("%d*",i);
            /****** 4 ******/
        n=n*i;
          }
      else i++;
        printf("\b \n");
}
p46.3循环输入x,n,调用递归函数计算,显示xn次方。当输入n小于0时,结束循环。
#include <stdio.h>
float f(float x,int n)
{ /******* 1 ******/
  if(n==1)
        return 1;
  else
        /****** 2 ******/
        return f(x,n-1);
}
void main()
{  float y,z; int m;
   while(1) {
     scanf("%f%d",&y,&m);
         /****** 3 *******/
         if(m>=0) break;
         /******* 4 ********/
         z=f(m,y);
         printf("%f\n",z);
   }
}
38将十进制的整数,以十六进制的形式输出。
#include <stdio.h>
/********** 1 *********/
int DtoH(int n)
{  int k=n & 0xf;
   if(n>>4!=0) DtoH(n>>4);
   /********** 2 *********/
   if(k<=10)  
     putchar(k+'0');
   else
   /********** 3 *********/
         putchar(k-10+a);
}
void main()
{  int a[4]={28,31,255,378},i;
   for(i=0;i<4;i++) {
         printf("%d-->",a);
         /******** 4 ********/
         printf("%s",DtoH(a));
         putchar('\n');
   }
}
26、输入n,再输入n个点的平面坐标,则输出那些距离坐标原点不超过5的点的坐标值。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main()
{  int i,n;
   struct axy { float x,y;};
   /***** 1 *****/
   struct axy a;
   /***** 2 *****/
   scanf("%d",n);
   a=(struct axy*) malloc(n*sizeof(struct axy));
   for(i=0;i<n;i++)
         scanf("%f%f",&a.x,&a.y);
   /***** 3 ******/
   for(i=1;i<=n;i++)
         if(sqrt(pow(a.x,2)+pow(a.y,2))<=5) {
           printf("%f,",a.x);
           /*************** 4 **************/
       printf("%f\n",a+i->y);
         }
}
19、运行时输入10个数,然后分别输出其中的最大值、最小值。
#include <stdio.h>
void main()
{  float x,max,min;  int i;
   /******** 1 *******/
   for(i=0;i<=10;i++) {
         /****** 2 *******/
     scanf("%f",x);
     /******* 3 ********/
     if(i=1)
           { max=x;min=x;}
     else {
       if(x>max) max=x;
       if(x<min) min=x;
        }
  }
  /******* 4 ********/
  printf("%f,%f\n",Max,Min);
}
40、输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
#include <stdio.h>
#include <string.h>
void main()
{  char str[81]; int i,flag;
   /******* 1 ******/
   get(str);
   for(i=0;str!='\0';) {
     flag=tolower(str)>='a' && tolower(str)<='z';
         /********* 2 *********/
         flag=not flag;
         if(flag) {
           /******* 3 ********/
           strcpy(str+i+1,str+i);
           /******* 4 ********/
           break;
         }
         i++;
   }
   printf("%s\n",str);
}
p46.11)输入一个整数mm作为密码,将字符串中每个字符与mm做一次按位异或操作进行加密,输出被加密后的字符串(密文),(2)再将密文的每个字符与mm做一次按位异或操作,输出解密后的字符串(明文)。
#include <stdio.h>
void main()
{  char a[]="a2汉字";
   int mm,i;
   /******** 1 *******/
   printf(“请输入密码:);
   /******** 2 *******/
   scanf("%d",mm);
   for(i=0;a!='\0';i++) /*各字符与mm作一次按位异或*/
     a=a^mm;
   puts(a);
   /*** 各字符与mm再作一次按位异或 ***/
   /******** 3 *******/
   for( ;a!='\0';i++)
         /****** 4 ******/
     a=a^mm^mm;
   puts(a);
}
二、设计
13、(2函数f将二维数组每1行均除以该行上绝对值最大的元素。函数main调用f处理数组a后按行显示,测试函数f正确与否。
#include <stdio.h>
#include <math.h>
double f(double **x,int m,int n)
{  double max; int i,j;
   for(i=0;i<m;i++) {
     max=x[0];
     for(j=1;j<n;j++)
           if(fabs(x[j])>fabs(max)) max=x[j];
     for(j=0;j<n;j++) x[j]/=max;
   }
}
void main()
{  FILE *fp;
   double a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
   double *c[3]={a[0],a[1],a[2]}; int i,j;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   fp=fopen("CD2.dat","wb");
   fwrite(*a+8,8,1,fp);
   fclose(fp);
}
24累加a字符串中所有非大写英文字母字符的ASCII码,将累加和存入变量x并显示。
#include <stdio.h>
void main()
{  FILE *fp; long x;  int i;
   char a[]="Windows Office 2010";
   /****考生在以下空白处写入执行语句******/
   
   
   
   
   
   /****考生在以上空白处写入执行语句******/
   printf("%d\n",x);
   fp=fopen("CD2.dat","wb");
   fwrite(&x,4,1,fp);
   fclose(fp);
}
27、计算2的平方根、3的平方根、...10的的平方根之和,要求将计算结果存入变量y中,且具有小数点后10位有效位数。
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; int i;
   /****考生在以下空白处写入语句 ******/
   /****考生在以上空白处写入语句 ******/
   printf("%.10f\n",y);
   fp=fopen("CD1.dat","wb");
   fwrite(&y,8,1,fp);
   fclose(fp);
}
43、求斐波那契(Fibonacci)数列中其前40项之和,说明:斐波那契数列的前两项为1,此后各项为其前两项之和。
#include <stdio.h>
void main()
{  FILE *fp; long i,a[40]={1,1},s=2;
   /****考生在以下空白处写入执行语句 ******/
   /****考生在以上空白处写入执行语句 ******/
   printf("%d\n",s);
   fp=fopen("CD1.dat","wb");
   fwrite(&s,4,1,fp);
   fclose(fp);
}
35、在数组a10个数中求平均值v,将大于等于v的数组元素进行求和并存入变量s中。
#include <stdio.h>
void main()
{  FILE *fp;
   double a[10]={1.7,2.3,1.2,4.5,-2.1,-3.2,5.6,8.2,0.5,3.3};
   double v,s; int i;
   /****考生在以下空白处写入执行语句******/
   
   
   
   
   /****考生在以上空白处写入执行语句******/
   printf("%f  %f\n",v,s);
   fp=fopen("CD1.dat","wb");
   fwrite(&s,8,1,fp);
   fclose(fp);
}
34x,y分别表示平面上一个点的坐标,累加10个点与点(1.0,1.0)的距离总和存入double类型变量s中。
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; int i;
   double x[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
   double y[10]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
   /****考生在以下空白处写入执行语句 ******/
   
   
   
   /****考生在以上空白处写入执行语句 ******/
   printf("%f\n",s);
   fp=fopen("CD1.dat","wb");
   fwrite(&s,8,1,fp);
   fclose(fp);
}
15编制函数f计算下列表达式的值,函数main提供了一个测试用例。函数原型为double.fdouble*doubleint) a0+a1sin(x)+a2sin(x^2)+a3sin(x^3)+……+an-1sin(x^n-1)
#include <stdio.h>
#include <math.h>
/*****考生在以下空白处编写函数f ******/
/****考生在以上空白处编写函数f  ******/
void main()
{  FILE *fp; int i; double y;
   double a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};
   y=f(a,2.345,10);
   printf("%f\n",y);
   fp=fopen("CD2.dat","wb");
   fwrite(&y,8,1,fp);
   fclose(fp);
}
12、若xy取值为区间[1,6]的整数,显示使函数f(x,y)取最小值x1,y1。函数f的原型为double f(intint)   f (x,y)=(3.14*x-y)/(x+y)
#include <stdio.h>
/****考生在以下空白处声明函数f ******/
/****考生在以上空白处声明函数f ******/
void main()
{  FILE *fp; double min; int i,j,x1,y1;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%f  %d  %d\n",min,x1,y1);
   fp=fopen("CD2.dat","wb");
   fwrite(&min,8,1,fp);
   fclose(fp);
}
p46.6for循环找出所有两个数乘积等于20的数据对。【提示:判断20能否被i整除的条件可以写作“20.0/i==(int) (20/i)”】
#include <stdio.h>
void main()
{  FILE *fp; long i,n=0,x[10][2];
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   for(i=0;i<n;i++)
         printf("%ld  %ld\n",x[0],x[1]);
   fp=fopen("CD1.dat","wb");
   fwrite(&x,4,2*n,fp);
   fclose(fp);
}
5、计算字符串s中每个字符的权重值并依次写入到数组a。权重值就是字符的位置值与该字符的ASCII码值的乘积。首字符位置值为1,最后一个字符的位置值为strlen(s)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{  FILE *fp; long i,n,*a;
   char s[]="ABCabc$%^,.+-*/";
   n=strlen(s);
   a=(long*)malloc(n*sizeof(long));
   /****考生在以下空白处写入执行语句******/
   
   
   
   
   
   /****考生在以上空白处写入执行语句******/
   fp=fopen("CD2.dat","wb");
   fwrite(a,4,n,fp);
   fclose(fp);
}
32统计并显示500800之间所有素数的点个数以及总和。
#include <stdio.h>
#include <math.h>
/****考生在以下空白处写入执行语句 编写函数f判断与形参相应的实参是否素数****/
/*****考生在以上空白处编写函数f *************/
#include <math.h>
void main()
{  FILE *fp; int i; long s=0,k=0;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("素数个数%d   素数总和%d\n",k,s);
   fp=fopen("CD2.dat","wb");
   fwrite(&k,4,1,fp);fwrite(&s,4,1,fp);
   fclose(fp);
}
20、数组元素xy表示平面上某点坐标,计算并显示10个点中所有各点间最短距离。
#include <stdio.h>
#include <math.h>
#define len(x1,y1,x2,y2) sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))
void main()
{  FILE *fp; int i,j; double min,d;
   double x[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
   double y[10]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
   min=len(x[0],y[0],x[1],y[1]);
   /****考生在以下空白处写入执行语句 ******/
   
   
   
   
   
   
   /****考生在以上空白处写入执行语句 ******/
   printf("%f\n",min);
   fp=fopen("CD2.dat","wb");
   fwrite(&min,8,1,fp);
   fclose(fp);
}
25、在数组x10个数中求平均值v,找出与v相差最小的数组元素存入变量y,并显示v,y
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; int i; double d,v,y;
   double x[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};
   /*****考生在以下空白处写入执行语句 ******/
   
   
   
   
   
   
   
   
   /****考生在以上空白处写入执行语句  ******/
   printf("%f   %f\n",v,y);
   fp=fopen("CD2.dat","wb");
   fwrite(&y,8,1,fp);
   fclose(fp);
}
19、在正整数中找出1个最小的、被3579除余数分别为1357的数
#include <stdio.h>
void main()
{  FILE *fp; long i=1;
   /****考生在以下空白处写入执行语句 ******/
   /****考生在以上空白处写入执行语句 ******/
   printf("%d\n",i);
   fp=fopen("CD1.dat","wb");
   fwrite(&i,4,1,fp);
   fclose(fp);
}
33求数列:2/1,3/2,5/3,8/5,13/8,21/13,……。前40项的和。
#include <stdio.h>
void main()
{  FILE *fp; double y=2,f1=1,f2=2,f; int i;
   /****考生在以下空白处写入执行语句 ******/
   
   /****考生在以上空白处写入执行语句 ******/
   printf("%f\n",y);
   fp=fopen("CD1.dat","wb");
   fwrite(&y,8,1,fp);
   fclose(fp);
}
13编制函数f,用于在mn列的二维数组中查找值最大的元素之行下标与列下标。函数mian提供了一个测试用例。
#include <stdio.h>
void f(int **a,int m,int n,int *mm,int *nn)
{  int i,j,max=a[0][0];
   /****考生在以下空白处写入语句 ******/
   /****考生在以上空白处写入语句 ******/
}
void main()
{  FILE *fp; int ii,jj;
   int b[3][3]={{1,3,4},{2,9,5},{3,7,6}};
   int *c[3]={b[0],b[1],b[2]};
   /****考生在以下空白处写入调用语句 ******/
   
   /****考生在以上空白处写入调用语句 ******/
   printf("最大值为%d,行号%d,列号%d\n",b[ii][jj],ii,jj);
   fp=fopen("CD2.dat","wb");
   fwrite(&ii,4,1,fp); fwrite(&jj,4,1,fp);
   fclose(fp);
}
14、在65000内找出所有的亲密数,并显示其数量。若a,b1对亲密数,b,a也是1对亲密数,满足的条件是:a的因子和等于bb的因子和不等于a,且a不等于b。关于因子和:6的因子和等于61+2+3,8的因子和等于61+2+38的因子和等于71+2+47的因子和就是7,……。
#include <stdio.h>
long f(long x)
{  int i,j,y=1;
   for(i=2;i<=x/2;i++)
     if(x%i==0) y=y+i;
   return y;
}
void main()
{  FILE *fp; long a,b,c,k=0;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%d\n",k);
   fp=fopen("CD1.dat","wb");
   fwrite(&k,4,1,fp);
   fclose(fp);
}
9x与函数值都取double类型,对11.522.5,……,9.510. 求函数f(x)的最大值。f(x)=x-10*cos(x)-5*sin(x)
#include <stdio.h>
#include <math.h>
/****考生在以下空白处声明函数f ******/
/****考生在以上空白处声明函数f ******/
void main()
{  FILE *fp; double x,max;
   /****考生在以下空白处写入执行语句******/
   
   /****考生在以上空白处写入执行语句******/
   printf("%f\n",max);
   fp=fopen("CD2.dat","wb");
   fwrite(&max,8,1,fp);
   fclose(fp);
}
18、数组元素xy表示平面上某点坐标,统计10个点中哪些点、有几个点落在圆心为(1-0.5),半径为5的圆内。
#include <stdio.h>
#include <math.h>
#define f(x,y) (x-1)*(x-1)+(y+0.5)*(y+0.5)
void main()
{  FILE *fp; long i,k=0;
   float x[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
   float y[10]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
   /****考生在以下空白处写入执行语句 ******/
   
   
   
   
   
   /****考生在以上空白处写入执行语句 ******/
   printf("%d\n",k);
   fp=fopen("CD1.dat","wb");
   fwrite(&k,4,1,fp);
   fclose(fp);
}
7统计满足条件x^2+y^2+z^2=2013的所有正整数解的个数。(若abc1个解,则acb也是1个解)。
#include <stdio.h>
void main()
{  FILE *fp; long x,y,z,k=0;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%ld\n",k);
   fp=fopen("CD1.dat","wb");
   fwrite(&k,4,1,fp);
   fclose(fp);
41编制函数f,函数原型为double fdouble*doubleint),用于计算下列代数表达式的值。a0+a1x+a2x^2+a3x^3+……an-1x^(n-1),函数main提供了一个测试用例计算在x=1.5时一元九次代数多项式的值。
#include <stdio.h>
#include <math.h>
/****考生在以下空白处编写函数f******/
/****考生在以上空白处写入语句 ******/
void main()
{  FILE *fp; double y;
   double b[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
   y=f(b,1.5,10);
   printf("%f\n",y);
   fp=fopen("CD2.dat","wb");
   fwrite(&y,8,1,fp);
   fclose(fp);
}
6计算并显示表达式1+2!+3!+...+12!的值。
#include <stdio.h>
void main()
{  FILE *fp; long i,y=1,jc=1;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%ld\n",y);
   fp=fopen("CD1.dat","wb");
   fwrite(&y,4,1,fp);
   fclose(fp);
}
30编写函数,f判断与形参相应的实参是否回文数是则返回1 否则返回0。显示11999之间的所有回文数(各位数字左右对称),并显示总个数。提示:先判断n2位数还是3位数,再判断n是否回文数。
#include <stdio.h>
/*****考生在以下空白处编写函数f ******/
/*****考生在以上空白处编写函数f ******/
#include <math.h>
void main()
{  FILE *fp; int i; long k=0;
   for(i=11;i<1000;i++)
         if(f(i)) { printf("%5d",i);k++; if(k%10==0) putchar('\n');}
   putchar('\n');
   printf("%d\n",k);
   fp=fopen("CD2.dat","wb");
   fwrite(&k,4,1,fp);
   fclose(fp);
}
17、数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; double sum,x; int i;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%f\n",sum);
   fp=fopen("CD1.dat","wb");
   fwrite(&sum,8,1,fp);
   fclose(fp);
}
1计算并显示满足条件1.05^n10^61.05^n+1)n值以及1.05^n
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; double a=1.05; long n=1;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%d  %.4f\n",n,a);
   fp=fopen("CD1.dat","wb");
   fwrite(&a,8,1,fp);
   fclose(fp);
}
4xy为取值在区间[0 10]的整数,计算并显示函数f(xy)在区间内取值最小点x1y1f(xy)=3(x-5)x+x(y-6)+(y-7)y
#include <stdio.h>
long f(long x,long y) {
  return 3*(x-5)*x+x*(y-6)+(y-7)*y;
}
void main()
{  FILE *fp; long min,x1,y1,x,y;
   /****考生在以下空白处写入执行语句******/
   /****考生在以上空白处写入执行语句******/
   printf("%d(%d,%d)\n",min,x1,y1);
   fp=fopen("CD2.dat","wb");
   fwrite(&min,4,1,fp);fwrite(&x1,4,1,fp);
   fwrite(&y1,4,1,fp);
   fclose(fp);
}}
11计算1-1/3!+/5!-1/7!+……的和直到末项的绝对值小于10^-10)时为止。
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; double y,t=1;int i=1;
   /****考生在以下空白处写入执行语句******/
  
   /****考生在以上空白处写入执行语句******/
   printf("%f\n",y);
   fp=fopen("CD1.dat","wb");
   fwrite(&y,8,1,fp);
   fclose(fp);
}
2、将数组a的每1行均除以该行上的主对角元素(说明第1行同除以a[0][0],第2行同除以a[1][1]...
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; double c; int i,j;
   double a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
   /****考生在以下空白处写入执行语句******/
   
   
   
   /****考生在以上空白处写入执行语句******/
   for(i=0;i<3;i++) {
         for(j=0;j<3;j++) printf("%7.3f ",a[j]);
         putchar('\n');
   }
   fp=fopen("CD2.dat","wb");
   fwrite(*a+8,8,1,fp);
   fclose(fp);
}
10计算并显示平面上5点间距离总和,程序中xy表示其中1个点得xy坐标。要求用二重循环实现。
#include <stdio.h>
#include <math.h>
void main()
{  FILE *fp; double s,x[5]={-1.5,2.1,6.3,3.2,-0.7};
   double y[5]={7,5.1,3.2,4.5,7.6}; int i,j;
   /****考生在以下空白处写入执行语句******/
   
   /****考生在以上空白处写入执行语句******/
   printf("%f\n",s);
   fp=fopen("CD1.dat","wb");
   fwrite(&s,8,1,fp);
   fclose(fp);
}

最佳答案

查看完整内容

35. 题目好像是错的,而且第四项猜不出来…… 1. string.h 2. i=0; 3. s+i, s+i+1 4. 好吧看了半天猜出来了, 4填else,但是strcpy不能处理两个字符串有重合部分的情况,知道有问题就行了 1. 1. ctype.h 2. gets(s) 3. s != '\0' 4. issapce(s)
沙发
发表于 2013-11-4 16:15:23 | 只看该作者
35. 题目好像是错的,而且第四项猜不出来……
1. string.h
2. i=0;
3. s+i, s+i+1
4.
好吧看了半天猜出来了, 4填else,但是strcpy不能处理两个字符串有重合部分的情况,知道有问题就行了

1.
1. ctype.h
2. gets(s)
3. s[i] != '\0'
4. issapce(s[i])
板凳
发表于 2013-11-5 09:09:50 | 只看该作者
30

1. s[i] = '0'
2. m << 1
3. Dec2Bin(n, a)
4. puts(a)

6
1. b, 1.7, 5
2. float* a, float x, int n
3. 0
4. return y;

25.
1. f(24)
2. long f(int n)
3. return 1
4. f(n-1) + f(n-2)

46.2
a[i] == b[j]
j == 7
break
j == 6

24.
n > 0
t=2
!F
t *= 2

46.8
while(scanf("%d", &n), n>=1 && n<=9){

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

a[i][j] = i+1-j

printf("%3d", a[i][j]);
地板
发表于 2013-11-5 09:12:19 | 只看该作者
33.
int i=0;

while(s1[i] != '\0')

s1[i++] = s2[j];

s1[i] = '\0';

34.
for(i=0; i<N; i++)

min = i;

if(a[j] < a[min]) min = j;

putchar('\n');

5.
int i = 0;

scanf("%lf%lf", &x, &eps);

t = -t * x / i ;

}while(fabs(t) >= eps);

27.
int n, s=0;

n = (n < 0 ? -n : n);

while(n > 0){

s = s + n % 10;

16.
scanf("%d %d", &a, &n);

t = 0;

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

s = s + t;

46.5
int i, j;

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

if(a[i] == b[j]) break;

if(j < 7)

46.4
char a[] = "a2汉字";

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

else putchar('0');

a = a << 1;

17.
scanf("%d", &n);

i = 2;

while(n > 1)

n = n / i;

46.3
if(n < 1)

return f(x*x, n-1);

if(m < 0) break;

z = f(y, m);

38.
void DtoH(int n)

if(k<=9)

putchar(k-10+'a');

DtoH(a[i]);

26.
struct axy* a;

scanf("%d", &n);

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

printf("%f\n", a[i].y);

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

scanf("%f", &x);

if(i == 0)

printf("%f, %f\n", max, min);

40.
gets(str);

flag = !flag

strcpy(str+i, str+i+1);

--i;

46.1
printf("请输入密码(整数)");

scanf("%d", &mm);

for(i=0; a[i]!='\0'; i++)

a[i] = a[i] ^ mm;
5#
发表于 2013-11-5 09:13:27 | 只看该作者
13
f(c, 3, 3);

24
x = 0;
for(i=0; a[i] != '\0'; ++i)
  if(!isupper(a[i]))
    x += a[i];

27.
double y = 0;
for(i=2; i<=10; ++i)
  y += sqrt(i);

43.
for(i=2; i<40; ++i){
  a[i] = a[i-1] + a[i-2];
  s += a[i];
}

35.
v = 0; s = 0;
for(i=0; i!=10; ++i)
  v += a[i] / 10;
for(i=0; i!=10; ++i)
  if(a[i] >= v)
    s += a[i];

34.
double s = 0;
for(i=0; i!=10; ++i)
  s += sqrt((x[i] - 1) * (x[i] - 1) + (y[i] -1) * (y[i] - 1))

15.

double f(doube* a, double x, int n)
{
  int i;
  double result = 0;
  for(i=0; i!=n; ++i)
    result += a[i] * sin(pow(x, n-1));
  return result;
}

12.

double f(int, int);


for(i=1; i<=6; ++i)
  for(j=1; j<=6; ++j)
    if(i == 1 && j == 1){
      min = double(i, j)
      x1 = i;
      y1 = j;
   }
   else{
      if(double(i, j) < min){
        min = double(i, j);
        x1 = i;
        y1 = j;
      }
   }
6#
发表于 2013-11-5 09:15:02 | 只看该作者
46.6

for(i=1; i<=10; ++i)
  if(20 % i == 0){
    x[0][n] = i;
    x[1][n++] = 20 / i;
  }

5.

for(i=0; i<=strlen(s); ++i)
  a[i] = s[i] * (i + 1);

32.

int is_prime(int n)
{
  int i;
  for(i=2; i<=n/2; ++i)
    if(n % i == 0)
      return 0;
  return 1;
}

for(i=501; i<800; ++i)
  if(is_prime(i)){
    k += 1;
    s += i;
}

20

for(i=0; i!=10; ++i)
  for(j=i+1; j!=10; ++j){
    d = len(x[i], y[i], x[j], y[j]);
    if(d < min)
      min = d;
  }

25
[code]
v = 0;
for(i=0; i!=10; ++i)
  v += x[i] / 10;
y = fabs(v - x[0]);
for(i=1; i!=10; ++i){
  d = fabs(v - x[i]);
  if(d < min)
     min = d;
}

19.

for(;; ++i)
  if(i % 3 == 1 && i % 5 == 3 && i % 7 == 5 && i % 9 == 7)
    break;

33.

for(i=1; i!=40; ++i){
  f2 += f1;
  f1 = f2 - f1;
  y += 1.0 * f2 / f1;
}

13.

for(i=0; i!=m ;++i)
  for(j=0; j!=n; ++j)
      if(a[i][j] > max){
        max = a[i][j];
        *mm = i;
        *nn = j;
      }

f(c, 3, 3, &ii, &jj);

14.

for(a = 7; a < 5000; ++a)
   for(b = a + 1; b < 5000; ++b)
      if(f(a) == b && f(b) != a)
         k += 1;

9.

double f(double);


max = f(0.5)
for(x = 1.0; x <= 10; x += 0.5)
  if(f(x) > max)
    max = f(x);

18.

for(i=0; i!=10; ++i)
  if(sqrt(f(x[i], y[i])) < 5)
     k += 1;

7.

for(x=0; x<sqrt(2013); ++x)
  for(y=0; y<sqrt(2013); ++y)
   for(z=0; z<sqrt(2013); ++z)
     if(x*x + y*y +z*z == 2013)
       k+=1;

41.

double f(doube* b, doube x, int n)
{
    double result = b[0];
    int i=1;
    for(; i<n; ++i)
      result += b[i] * pow(x, i);
    return result;
}

6.

for(i=2; i!=13; ++i){
  jc *= i;
  y += jc;
}

30.

int f(int n)
{
   if(n < 100)
    return n / 10 == n % 10;
   return n / 100 == n % 10;
}

17.

sum = 0;
x = 81
for(i=1; i<=30; ++i){
  sum += x;
   x = sqrt(x);
}

1.

for(; ; ++n)
  if(pow(1.05, n) < pow(10, 6) && pow(1.05, n+1) > pow(10,6){
     a = pow(1.05, n);
     break;
  }
;

4.

min = f(0, 0);
x1 = 0;
y1 = 0;
for(x =0; x!=11; ++x)
  for(y = 0; y!=11; ++y)
    if(f(x, y) < min){
      min = f(x, y)
      x1 = x;
      y1 = y;
    }
7#
发表于 2013-11-5 09:16:03 | 只看该作者
11.

y = 0;
for(i=3; fabs(t) >= pow(10, -10); i += 2){
  t = -t / i / (i-1);
  y += t;
}

2.

for(i=0; i!=3; ++i)
  for(j=0; j!=3; ++j)
      a[i][j] /= a[i][i];

10.

s = 0;
for(i=0; i!=5; ++i)
  for(j=i+1; j!=5; ++j)
    s += sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
8#
发表于 2013-11-5 09:16:24 | 只看该作者
居然有这么多……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表