zoukankan      html  css  js  c++  java
  • 总结:复合数据对象

    数组

    1、 数组含义:存放类型相同数据。数组元素在内存中存放的特点(占用一段连续的存储单元)。
    2、 一维数组的定义、引用、初始化。
    3、 二维数组的定义、引用、初始化。
    4、 数组的相关运算:数组输入、输出、求最值,排序。
    5、 字符数组的定义、引用、初始化。C语言中处理字符串的库函数(strcmp(),strpy(),strcat(),strlen(),strlwr())的含义及使用。
    函数
    1、 C语言源程序由许多函数组成,有且仅有一个main()函数,从main()函数开始执行,最后回到main()函数。
    2、 函数分类:
    从用户角度分:库函数,用户自定义函数。
    从函数形式分:无参函数,有参函数。
    3、 函数的定义、调用及声明。
    4、 函数的嵌套调用与递归调用。
    5、 函数调用中参数的传递方式及应用:
    (1) 值传递方式。
    (2) 地址传递。
    6、 数组元素作为函数实参与变量作为实参一样,实现值传递;数组名作为实参,传递的是数组的地址,实现地址传递,形参和实参指向同一连续存储单元。
    7、 变量的存储类型,静态变量与动态变量的区别。(局部静态变量在程序运行整个过程中都占用内存单元。)
    8、 局部变量和全局变量的使用及有效范围。
    预处理命令
    1、 宏定义的方式(不带参数的宏定义,带参数的宏定义及其区别)。
    2、 宏定义的特点:只做简单置换,不作正确性检查;不是C语句,行末没有分号。
    3、 熟练掌握stdio.h、string.h、math.h包含文件的引用。

    指针
    1、 指针定义:指针与指针变量(存放地址的变量)。
    2、 指针与指针运算符(*),取地址运算符(&)。
    3、 指向一维数组指针的应用(指针法、下标法);注意给指针赋初值。

    结构体和链表
    1、结构体类型的定义,结构体变量的定义、引用及初始化,结构体变量中成员变量的引用。
    2、结构体数组的定义、初始化。
    3、链表,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针
    文件
    1、 文件含义:存储在外部存储介质上的数据的集合。
    2、 文件的打开与关闭,及其文件使用格式。


    小测验

    单选题
    1、C语言中下列叙述正确的是______。
      A:不能使用do-while语句构成的循环
      B:do-while语句构成的循环,必须用break语句才能退出
      C:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
      D:do-while语句构成的循环,当while语句中的表达式值为零时结束循环
    知识点:知识点/循环结构程序设计/WHILE和DO WHILE循环结构

    2、下列描述中不正确的是______。 
      A:字符型数组中可以存放字符串
      B:可以对字符型数组进行整体输入、输出
      C:可以对整型数组进行整体输入、输出
      D:不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
    知识点:知识点/基本语句/数据的输入与输出,输入输出函数的调用

    3、以下程序的输出结果是______。
    main()
    {  int   x=10,y=10,i;
       for(i=0;x>8 ;y=++i)
       printf("%d   %d  ",x--,y);
    }
      A:10  1  9  2
      B:9  8  7  6
      C:10  9  9  0
      D:10  10  9  1
    知识点:知识点/循环结构程序设计/FOR循环结构


    4、以下程序的输出结果是______。  
    main()
    {   char  a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
    int i ;
    i=8;
    p=a+i;
    printf("%s ",p-3);
    }
      A:6
      B:6789
      C:'6'
      D:789
    知识点:知识点/指针/指针数组,指向指针的指针,MAIN函数的命令行参数

    5、能正确表示a和b同时为正或同时为负的逻辑表达式是______。
      A:(a>=0||b>=0)&&(a<0|| b<0)
      B:(a>=0&&b>=0)&&(a<0&&b<0)
      C:(a+b>0)&&(a+b<=0)
      D:a*b>0
    知识点:知识点/基本语句/表达式语句,空语句,复合语句

    6、以下程序的输出结果是______。
    main()
    {  int  n=4;
       while(n--)printf("%d   ",--n);
    }
      A:2  0
      B:3  1
      C:3  2  1
      D:2  1  0
    知识点:知识点/循环结构程序设计/WHILE和DO WHILE循环结构

    7、以下程序的输出结果是______。
    main()  
    {  int  k=17;
       printf("%d,%o,%x ",k,k,k);
    }
      A:17,021,0x11
      B:17,17,17
      C:17,0x11,021
      D:17,21,11
    知识点:知识点/数据类型及其运算/C的数据类型及其定义方法

    8、若有说明:long  *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是______。
      A:*p=&a;scanf("%ld",p);
      B:p=(long *)malloc(8);scanf("%ld,p);
      C:scanf("%ld",p=&a);
      D:scanf("%ld",&a);
    知识点:知识点/基本语句/数据的输入与输出,输入输出函数的调用

    9、以下选项中,能定义s为合法的结构体变量的是______。
      A:typedef  struct  abc 
    {  double a;
       char b[10];
    } s;
      B:struct  
    {  double a;
       char  b[10];
    }s;
      C:struct  ABC 
    {  double a;
       char b[10];

    ABC s; 
      D:typedef  ABC
    {  double a;
       char b[10]; 

    ABC s;

    10、请读程序:
        #include <stdio.h>
        main()
        {
           int a, b ;
           for(a = 1 , b = 1 ; a <= 100 ; a++) {
              if(b >= 20)  break ;
              if (b%3 == 1) { b += 3 ; continue ; }
              b -= 5 ;
           }
           printf("%d ", a) ;
        }
    上面程序的输出结果是______。
      A:7
      B:8
      C:9
      D:10
    知识点:知识点/选择结构程序设计/用SWITCH语句实现多分支选择结构


    11、请选出合法的C语言赋值语句______。
      A:a=b=58
      B:i++;
      C:a=58,b=58
      D:k=int(a+b);

    12、若x和y都是int型变量,x=100、y=200,且有下面的程序片段
          printf("%d",(x,y) );
    上面程序片段的输出结果是______。
      A:200
      B:100
      C:100   200
      D:输入格式符不够,输出不确定的值

    13、若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是______。
      A:pb=&x;
      B:pb=x;
      C:*pb=&x;
      D:*pb=*x

    14、设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
      A:'a'&&'b'
      B:a<=b 
      C:a||+c&&b-c 
      D:!((a<b)&&!c||1)

    15、有程序如下:
    typedef struct link { double score;  struct link  *next; };
    void main ( ) {  
    link *ps, qs, rs;
    ps = ( struct link *) malloc (sizeof (struct link) );
    ps->score = 81.5; qs.score = 55.5; rs.score = 68.0;
    ps->next = &qs ; qs.next =&rs;
    printf ( " %d ", ps->score + ps->next->score);
    }
    上面程序的输出结果是______。
    --------------------------------------------------------------------
    程序设计
    1.定义函数double fact( int n) 计算n!的值。 

    2.判断数m是否为素数(只能被1和它本身整除的整数)?若是,则输出yes;否则输出no
    --------------------------------------------------------------------
    3.求出第n项Fibonacci数,并统计前n项之和。Fibonacci序列:1,1,2,3,5,8,13,21,34,55,……。该序列的第一个数和第二个数都是1,从第三个数开始,每个数都是前两个数之和
    --------------------------------------------------------------------
    4.输入某班级20个学生某课程的考试成绩,要求统计并输出班级总分及大于等于60分的人数。
    --------------------------------------------------------------------
    5.试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。
    --------------------------------------------------------------------
    6.对15个数进行排序,按从小到大的顺序输出
    --------------------------------------------------------------------
    7.写一个程序,它能够计算并输出杨辉三角形(帕斯卡三角形)前面的 n 行

  • 相关阅读:
    JavaScript数据类型(第一天)
    数据库的事务隔离级别
    SSH(远程登录)原理
    Hadoop安装
    activiti学习第二天
    activiti学习第一天
    .net调用系统软键盘(兼容win7及win10)
    使用Blend设计出符合效果的WPF界面
    Mysql的收获
    PHP文件上传安全处理的步骤
  • 原文地址:https://www.cnblogs.com/jlxuqiang/p/3294613.html
Copyright © 2011-2022 走看看