搜索
查看: 4763|回复: 14
打印 上一主题 下一主题

c语言···求大侠····刚刚币太少了~~~

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-4 16:31:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10啊哈币
一、调试
(一)填空, 在___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);
}

最佳答案

查看完整内容

306 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.224.46.8
沙发
发表于 2013-11-4 16:31:45 | 只看该作者
30

  1. 1. s[i] = '0'
  2. 2. m << 1
  3. 3. Dec2Bin(n, a)
  4. 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
  1. a[i] == b[j]
  2. j == 7
  3. break
  4. j == 6
复制代码
24.
  1. n > 0
  2. t=2
  3. !F
  4. t *= 2
复制代码
46.8
  1. while(scanf("%d", &n), n>=1 && n<=9){

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

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

  4. printf("%3d", a[i][j]);
复制代码
板凳
发表于 2013-11-4 16:51:36 | 只看该作者
本帖最后由 rosynirvana 于 2013-11-4 17:05 编辑

35. 题目好像是错的,而且第四项猜不出来……
1. string.h
2. i=0;
3. s+i, s+i+1
4.
好吧看了半天猜出来了, 4填else,但是strcpy不能处理两个字符串有重合部分的情况,知道有问题就行了

1.
  1. 1. ctype.h
  2. 2. gets(s)
  3. 3. s[i] != '\0'
  4. 4. issapce(s[i])
复制代码
先做到这里吧,剩下的晚上回来做

点评

35是这样的····#include <stdio.h> #include <tchar.h> void main() { char s[81];int i; gets(s); for( i=0;i<strlen(s);) if(s[i]=='c') strcpy( s+i, s+i+1); else i   发表于 2013-11-4 17:30
地板
 楼主| 发表于 2013-11-4 16:54:25 | 只看该作者
rosynirvana 发表于 2013-11-4 16:51
35. 题目好像是错的,而且第四项猜不出来……
1. string.h
2. i=0;

太感谢了···
5#
发表于 2013-11-4 19:48:23 | 只看该作者
33.
  1. int i=0;

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

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

  4. s1[i] = '\0';
复制代码
34.
  1. for(i=0; i<N; i++)

  2. min = i;

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

  4. putchar('\n');
复制代码
5.
  1. int i = 0;

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

  3. t = -t * x / i ;

  4. }while(fabs(t) >= eps);
复制代码
27.
  1. int n, s=0;

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

  3. while(n > 0){

  4. s = s + n % 10;
复制代码
16.
  1. scanf("%d %d", &a, &n);

  2. t = 0;

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

  4. s = s + t;
复制代码
46.5
  1. int i, j;

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

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

  4. if(j < 7)
复制代码
46.4
  1. char a[] = "a2汉字";

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

  3. else putchar('0');

  4. a = a << 1;
复制代码
17.
  1. scanf("%d", &n);

  2. i = 2;

  3. while(n > 1)

  4. n = n / i;
复制代码
46.3
  1. if(n < 1)

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

  3. if(m < 0) break;

  4. z = f(y, m);
复制代码
38.
  1. void DtoH(int n)

  2. if(k<=9)

  3. putchar(k-10+'a');

  4. DtoH(a[i]);
复制代码
26.
  1. struct axy* a;

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

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

  4. printf("%f\n", a[i].y);
复制代码
19.
  1. for(i=0; i<10; i++)

  2. scanf("%f", &x);

  3. if(i == 0)

  4. printf("%f, %f\n", max, min);
复制代码
40.
  1. gets(str);

  2. flag = !flag

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

  4. --i;
复制代码
46.1
  1. printf("请输入密码(整数)");

  2. scanf("%d", &mm);

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

  4. a[i] = a[i] ^ mm;
复制代码
6#
发表于 2013-11-4 20:08:51 | 只看该作者
13
  1. f(c, 3, 3);
复制代码
24
  1. x = 0;
  2. for(i=0; a[i] != '\0'; ++i)
  3.   if(!isupper(a[i]))
  4.     x += a[i];
复制代码
27.
  1. double y = 0;
  2. for(i=2; i<=10; ++i)
  3.   y += sqrt(i);
复制代码
43.
  1. for(i=2; i<40; ++i){
  2.   a[i] = a[i-1] + a[i-2];
  3.   s += a[i];
  4. }
复制代码
35.
  1. v = 0; s = 0;
  2. for(i=0; i!=10; ++i)
  3.   v += a[i] / 10;
  4. for(i=0; i!=10; ++i)
  5.   if(a[i] >= v)
  6.     s += a[i];
复制代码
34.
  1. double s = 0;
  2. for(i=0; i!=10; ++i)
  3.   s += sqrt((x[i] - 1) * (x[i] - 1) + (y[i] -1) * (y[i] - 1))
复制代码
15.

  1. double f(doube* a, double x, int n)
  2. {
  3.   int i;
  4.   double result = 0;
  5.   for(i=0; i!=n; ++i)
  6.     result += a[i] * sin(pow(x, n-1));
  7.   return result;
  8. }
复制代码
12.

  1. double f(int, int);
复制代码

  1. for(i=1; i<=6; ++i)
  2.   for(j=1; j<=6; ++j)
  3.     if(i == 1 && j == 1){
  4.       min = double(i, j)
  5.       x1 = i;
  6.       y1 = j;
  7.    }
  8.    else{
  9.       if(double(i, j) < min){
  10.         min = double(i, j);
  11.         x1 = i;
  12.         y1 = j;
  13.       }
  14.    }
复制代码
7#
发表于 2013-11-4 20:47:47 | 只看该作者
46.6

  1. for(i=1; i<=10; ++i)
  2.   if(20 % i == 0){
  3.     x[0][n] = i;
  4.     x[1][n++] = 20 / i;
  5.   }
复制代码
5.

  1. for(i=0; i<=strlen(s); ++i)
  2.   a[i] = s[i] * (i + 1);
复制代码
32.

  1. int is_prime(int n)
  2. {
  3.   int i;
  4.   for(i=2; i<=n/2; ++i)
  5.     if(n % i == 0)
  6.       return 0;
  7.   return 1;
  8. }
复制代码

  1. for(i=501; i<800; ++i)
  2.   if(is_prime(i)){
  3.     k += 1;
  4.     s += i;
  5. }
复制代码
20

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

  7. 25
  8. [code]
  9. v = 0;
  10. for(i=0; i!=10; ++i)
  11.   v += x[i] / 10;
  12. y = fabs(v - x[0]);
  13. for(i=1; i!=10; ++i){
  14.   d = fabs(v - x[i]);
  15.   if(d < min)
  16.      min = d;
  17. }
复制代码
19.

  1. for(;; ++i)
  2.   if(i % 3 == 1 && i % 5 == 3 && i % 7 == 5 && i % 9 == 7)
  3.     break;
复制代码
33.

  1. for(i=1; i!=40; ++i){
  2.   f2 += f1;
  3.   f1 = f2 - f1;
  4.   y += 1.0 * f2 / f1;
  5. }
复制代码
13.

  1. for(i=0; i!=m ;++i)
  2.   for(j=0; j!=n; ++j)
  3.       if(a[i][j] > max){
  4.         max = a[i][j];
  5.         *mm = i;
  6.         *nn = j;
  7.       }
复制代码

  1. f(c, 3, 3, &ii, &jj);
复制代码
14.

  1. for(a = 7; a < 5000; ++a)
  2.    for(b = a + 1; b < 5000; ++b)
  3.       if(f(a) == b && f(b) != a)
  4.          k += 1;
复制代码
9.

  1. double f(double);
复制代码

  1. max = f(0.5)
  2. for(x = 1.0; x <= 10; x += 0.5)
  3.   if(f(x) > max)
  4.     max = f(x);
复制代码
18.

  1. for(i=0; i!=10; ++i)
  2.   if(sqrt(f(x[i], y[i])) < 5)
  3.      k += 1;
复制代码
7.

  1. for(x=0; x<sqrt(2013); ++x)
  2.   for(y=0; y<sqrt(2013); ++y)
  3.    for(z=0; z<sqrt(2013); ++z)
  4.      if(x*x + y*y +z*z == 2013)
  5.        k+=1;
复制代码
41.

  1. double f(doube* b, doube x, int n)
  2. {
  3.     double result = b[0];
  4.     int i=1;
  5.     for(; i<n; ++i)
  6.       result += b[i] * pow(x, i);
  7.     return result;
  8. }
复制代码
6.

  1. for(i=2; i!=13; ++i){
  2.   jc *= i;
  3.   y += jc;
  4. }
复制代码
30.

  1. int f(int n)
  2. {
  3.    if(n < 100)
  4.     return n / 10 == n % 10;
  5.    return n / 100 == n % 10;
  6. }
复制代码
17.

  1. sum = 0;
  2. x = 81
  3. for(i=1; i<=30; ++i){
  4.   sum += x;
  5.    x = sqrt(x);
  6. }
复制代码
1.

  1. for(; ; ++n)
  2.   if(pow(1.05, n) < pow(10, 6) && pow(1.05, n+1) > pow(10,6){
  3.      a = pow(1.05, n);
  4.      break;
  5.   }
复制代码
;

4.

  1. min = f(0, 0);
  2. x1 = 0;
  3. y1 = 0;
  4. for(x =0; x!=11; ++x)
  5.   for(y = 0; y!=11; ++y)
  6.     if(f(x, y) < min){
  7.       min = f(x, y)
  8.       x1 = x;
  9.       y1 = y;
  10.     }
复制代码
8#
发表于 2013-11-4 21:02:42 | 只看该作者
11.

  1. y = 0;
  2. for(i=3; fabs(t) >= pow(10, -10); i += 2){
  3.   t = -t / i / (i-1);
  4.   y += t;
  5. }
复制代码
2.

  1. for(i=0; i!=3; ++i)
  2.   for(j=0; j!=3; ++j)
  3.       a[i][j] /= a[i][i];
复制代码
10.

  1. s = 0;
  2. for(i=0; i!=5; ++i)
  3.   for(j=i+1; j!=5; ++j)
  4.     s += sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
复制代码
9#
发表于 2013-11-4 21:03:08 | 只看该作者
居然有这么多……
10#
 楼主| 发表于 2013-11-4 21:20:43 | 只看该作者
rosynirvana 发表于 2013-11-4 21:03
居然有这么多……

太谢谢了~~
11#
发表于 2013-11-5 09:08:00 | 只看该作者
long11 发表于 2013-11-4 21:20
太谢谢了~~

好无聊啊。。。。。。哪来这么多题?
12#
 楼主| 发表于 2013-11-7 14:20:27 | 只看该作者
4399APPLE 发表于 2013-11-5 09:08
好无聊啊。。。。。。哪来这么多题?

自己整理出来的~
13#
发表于 2013-11-7 14:52:16 | 只看该作者
long11 发表于 2013-11-7 14:20
自己整理出来的~

那哪来这么多书
14#
 楼主| 发表于 2013-11-8 20:30:58 | 只看该作者
4399APPLE 发表于 2013-11-7 14:52
那哪来这么多书

是上机考的题库
15#
发表于 2015-4-22 20:48:06 | 只看该作者
本帖最后由 唐伟 于 2015-4-22 20:51 编辑

{:soso_e103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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