zoukankan      html  css  js  c++  java
  • C语言文件等题

    1.#include <stdio.h>
    double fun(int  n)
    {


    }
    main()
    { int  n;    double  s;
      printf("\nInput n:  ");  scanf("%d",&n);
      s=fun(n);
      printf("\n\ns=%f\n\n",s);
      NONO();
    }
    NONO()
    {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
      FILE *rf, *wf ; int n, i ; double s ;
      rf = fopen("bc.in", "r") ;
      wf = fopen("bc.out", "w") ;
      for(i = 0 ; i < 10 ; i++)
       {
        fscanf(rf, "%d", &n) ;
        s = fun(n) ;
        fprintf(wf, "%lf\n", s) ;
       }
      fclose(rf) ; fclose(wf) ;
    }


    分析?NONO函数干什么的?:依次读取文件bc.in里面的10个数据(测试数据),通过调用fun函数,再把结果写入文件bc.out中


    2.输入字符以-1做结束标志
    用if   或者
    gets(s);
    while(strcmp(s,"-1")!=0)//要用双引号,因是字符串


    3.//输入数字,取出奇数位构成新数
    #include<stdio.h>
    #include <math.h>
    int fun(int s)
    {
     int m,i,t=0;//这不要再写int s;否则重复定义
     for(i=0;s;i++)
     {
      m=s%10;
      t+=pow(10.0,i)*m;//t别忘初始化,此处自动转换
      s/=100;
     }
     return t;
    }
    int main()
    {
     int t;
     scanf("%d",&t);
     printf("%d\n",fun(t));
     return 0;
    }

    4.vc中若无符号要求,就用unsigned int,(2的32次方)int可省略;仅有int(正负2的15次方)
    在vc中long和非long一样
    char* p不好,这样char *p易理解;

    5.c语言中auto完全无用处(从前身继承来的)

    6.请问typedef和define具体的详细区别,在UCOS-II中用的是typedef而没有用define,为什么呢,两者定义的内在空间有区别吗


     #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:
    #define PI 3.1415926
    程序中的:area=PI*r*r 会替换为3.1415926*r*r
    如果你把#define语句中的数字9 写成字母g 预处理也照样带入。

    2)typedef是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名,但是可以仅仅用在函数内部
    3)typedef int * int_ptr;

    #define int_ptr int *
    作用都是用int_ptr代表 int * ,但是二者不同,正如前面所说 ,#define在预处理 时进行简单的替换,而typedef不是简单替换 ,而是采用如同定义变量的方法那样来声明一种类型。也就是说;

    //refer to (xzgyb(老达摩))
    #define int_ptr int *
    int_ptr a, b; //相当于int * a, b; 只是简单的宏替换

    typedef int* int_ptr;
    int_ptr a, b; //a, b 都为指向int的指针,typedef为int* 引入了一个新的助记符


    这也说明了为什么下面观点成立
    //QunKangLi(维护成本与程序员的创造力的平方成正比)
    typedef int * pint ;
    #define PINT int *

    那么:
    const pint p ;//p不可更改,但p指向的内容可更改,不是*pint,p为const,不是她所指字符为常量
    const PINT p ;//p可更改,但是p指向的内容不可更改。

    pint是一种指针类型 const pint p 就是把指针给锁住了 p不可更改
    而const PINT p 是const int * p 锁的是指针p所指的对象。

    3)也许您已经注意到#define 不是语句 不要在行末加分号,否则 会连分号一块置换。


    7.同为零才结束


    #include<stdio.h>
    int main()
    {
     int a,b;
     while(scanf("%d%d",&a,&b),a||b)//试验过,中间用换行或者空格隔开均可
      printf("%d\n\n",a+b);
     return 0;
    }


    8. const int n=5;
     int a[5];


    会报错


    9.char a[14];
      strcmp(a,"computer");

    或者char a[14]="computer";加不加大括号均可,系统自动加上结束标志
    或者char a[14]={'c','o','m','p','\0'},逐个赋值必须加上结束标志


    10.//把平方根写入文件中,并显示到屏幕上
    #include<stdio.h>
    #include<math.h>
    int fun(char *fname)
    {
     FILE *fp;
     int i,n;
     float x;
     if((fp=fopen(fname,"w"))==NULL)//别写成(fopen=(fname,"w"))==NULL
      return 0;
     for(i=0;i<10;i++)
     {fprintf(fp,"%d %f\n",i,sqrt((double)i));}
     printf("Suceed!\n");
     fclose(fp);
     if((fp=fopen(fname,"r"))==NULL)
      return 0;
     fscanf(fp,"%d%f",&n,&x);
     while(!feof(fp))
     {
      printf("%d %f\n",n,x);
      fscanf(fp,"%d%f",&n,&x);
     }
     fclose(fp);
     return 1;
    }
    int main()
    {
     char fname[]="myfile.txt";
     fun(fname);
     return 0;
    }


     

  • 相关阅读:
    浅析Go中的MPG模式(一)
    panic: assignment to entry in nil map
    Golang 新手可能会踩的 50 个坑
    小刘的go面试题
    go 单元测试整理
    go test 测试单个文件和测试单个函数
    mac pro锁屏后没有声音了怎么处理
    go json返回时间字符串处理time.Time类型
    php求一个字符串中不重复的最长子串
    业务订单号生成算法,每秒50W左右,不同机器保证不重复,包含日期可读性好
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2400067.html
Copyright © 2011-2022 走看看