.C语言基础知识重点和难点一、)不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:#defineFD5main(){inta[3+2],b[7+FD];……}是合法的。但是下述说明方式是错误的。main(){intn=5;inta[n];……}2)C语言对数组的初始化赋值还有以下几点规定:(1)可以只给部分元素赋初值。当{}中值的个数少于元素个数时,只给前面部分元素赋值。例如:inta[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。(2)只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:inta[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:inta[10]=1;(3)如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。例如:inta[5]={1,2,3,4,5};可写为:inta[]={1,2,3,4,5};)在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。例如,输出有10个元素的数组必须使用循环语句逐个输出各下标变量:for(i=0;i<10;i++).printf("%d",a[i]);而不能用一个语句输出整个数组。下面的写法是错误的:printf("%d",a);2)引用数组元素时一定注意下标不能越界例如,inti=4,n[]={0,0,0,0,0};,则可以引用n[0],n[4],n[!5],n[i++],但不能引用n[5],n[++i]例1:若有定义语句:intm[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是___C___。A、m[--i]B、m[2*2]C、m[m[0]]D、m[m[i]])查找指定的元素,返回其下标。比如,要求查找数值5是否数组中2)查找数组的最大(最小)值,并返回最大(最小)值及其对应的下标3)数组的排序(升序或降序),包括冒泡排序和选择排序两种算法4)在有序数组中插入一个元素,使得数组仍然有序5)数组的逆序6)。二维数组可按行分段赋值,也可按行连续赋值。例如对数组a[5][3]:1)按行分段赋值可写为:inta[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};2)按行连续赋值可写为:inta[5][3]={80,75,92,61,65,71,59,63,70,85,87,90,76,77,85};对于二维数组初始化赋值还有以下说明:1)可以只对部分元素赋初值,未赋初值的元素自动取0值。例如:inta[3][3]={{1},{2},{3}};是对每一行的第一列元素赋值,未赋值的元素取0值。赋值后各元素的值为:100200300inta[3][3]={{0,1},{0,0,2},{3}};赋值后的元素值为:0100023002)如对全部元素赋初值,则第一维的长度可以不给出。例如:引用错误,主要是下标越界。选项A和B的下标分别是3和4,都没越界。选项C中,m[m[0]]实际上是m[5],所以越界了,选项D实际上是m[1].inta[3][3]={1,2,3,4,5,6,7,8,9};可以写为:inta[][3]={1,2,3,4,5,6,7,8,9};例1:以下不能正确定义二维数组的选项是___D___。A、inta[2][2]={{1},{2}};B、inta[][2]={1,2,3,4};C、inta[2][2]={{1},2,3}D、inta[2][]={{1,2},{3,4}},一定要注意下标不越界。例1:若有定义inta[2][3];以下选项中对a数组元素正确引用的是___D___A)a[2][!1]B)a[2][3]C)a[0][3]D)a[1>2][!1])字符数组也允许在定义时作初始化赋值。例如:charc[10]={‘c’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,’m’};赋值后各元素的值为:[0]的值为‘c’c[1]的值为‘’c[2]的值为‘p’c[3]的值为‘r’c[4]的值为‘0’c[5]的值为‘g’c[6]的值为‘r’c[7]的值为‘a’c[8]的值为‘m’其中c[9]未赋值,由的值为‘p’系统自动赋予0值。当对全体元素赋初值时也可以省去长度说明。例如:charc[]={`c`,``,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度自动定为9。在C语言中没有专门
c语言基础知识重点和难点 来自淘豆网m.daumloan.com转载请标明出处.