1.设有如下定义,则正确的叙述为( )
char x[]={"abcdefg"};
char y[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’};
①数组x和数组y等价
②数组x和数组y长度相同
③数组X的长度大于数组y的长度
④数组X的长度小于数组y的长度
2.根据变量定义“static int b[5], a[][3]={1,2,3,4,5,6};”,b[4]=_____,a[1][2]
【解】不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给出的值的个数确定。字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初始化。但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符率结束字符。但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需要的字节个数会比用同样多的字符初始化多1个字节。所以只有③才是正确的。
【解】系统规定,静态变量定义时,若末初始化,系统自动给定二进制代码全0的值。所以态数组b的元素全为0,当然包括b[4]也为几静态数组a是二维数组,每行有三个元素,在初始化中结出了六个初值,所以数组a有2 行。由于数组的元素按行顺序存储,并按行顺序初始化。前三个值是第一行,后三个元素[1][2]是第二行的第三列元素,也是a的最后一个元素,所以其值是6。
1.设有定义语句“static int a[3][4]={{1},{2},{3}};”则a[l][l]值为_,a[2][1]的值为_。
2.若在程序中用到“putchar( )”函数时,应在程序开头写上包含命令_____,若在程序中用到“strlen( )”函数时,应在程序开头写上包含命令______。
【解】给二维数组初始化时,可按行给出初值,并且每行可以只给前面部分的元素给出初值。系统规定,对哪些未给出初值的部分元素,系统自动置二进制代码全 0的值。由于定义语句只给a[0][0]给定初值l、a[l][0]给定初值2、a[2][0]给定初值3。这样,其它元素都为0值。所以,a[1] [1]= 0,a[2][1]= 0。
【解】putchar()是系统提供的头文件stdio.h中定义的宏,所以程序要使用它,必须写上包含命令:#include。函数strlen()是系统提供的字符串处理函数之一,字符串处理函数的函数原型说明和它们用到的有关常量、数据结构等,在系统提供的头文件tring.h中定义,所以使用该函数的程序应在程序开头写上包含命令并include。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |