C语言数组基础与考试试题解析

需积分: 11 8 下载量 80 浏览量 更新于2024-11-03 1 收藏 82KB DOC 举报
"C语言数组考试试题(附答案) - C程序设计(第三版) - 谭浩强 - 清华大学出版社" 本摘要涵盖了C语言中的关键知识点,特别是与数组相关的概念和操作,包括数组的声明、初始化、元素访问、指针以及数组作为函数参数等。 1. 数组的基本特性:数组是一种存储同类型数据集合的数据结构,其大小在声明时固定,并且不能改变。数组元素可以通过索引来访问,索引从0开始。 2. 数组声明:正确的数组声明方式如`int a[10];`,声明一个包含10个整数的数组。选项B和C中的声明是错误的,因为数组长度应在一个常量表达式中指定,而选项D中的数组长度依赖于变量n,这是不合法的。 3. 数组初始化:数组可以在声明时初始化,如`int x[10] = {0,2,4};`。初始化的数组在内存中会占用10个字节,即使只有3个初始值,剩余的元素会被自动设置为0。因此,x在内存中所占字节数是20(每个int占2个字节)。 4. 访问数组元素:可以通过下标访问数组元素,如`a[g-c]`、`a[4]`等。在表达式`a['d'-'c']`中,字符的ASCII码被用于下标,因此当'd'-'c'等于4时,表达式等价于`a[4]`。 5. 输入数组元素:通过循环和指针可以为数组输入数据。正确的输入语句是`scanf("%d", a+(i++));`,这将依次读取10个整数到数组a中,同时增加索引i。 6. 数组元素的赋值:当将数组元素赋值给变量时,如`s[0]=k;`,然后用`s[1]*10`赋值给k,如果`s[1]`未定义,结果是不确定的值,因此变量k的值是不定的。 7. 数组输出:程序`for(i=9;i>=0;i--)a[i]=10-i;`逆序填充数组,所以输出`a[2]`、`a[5]`、`a[8]`的结果是`852`。 8. 空数组元素的引用:对于未初始化或未定义的数组元素,如`n[k]`,当k超出已初始化的范围时,输出可能是不确定的值。 9. 索引越界:在数组越界访问时,如`n[k]`,其中k为2,但n只有5个元素(0到4),这种情况下输出是不确定的值。 10. 数组元素的累加:程序`for(i=0;i<k;i++)n[i]=n[i]+1;`对前k个元素加1,但由于n[2]未初始化,输出n[k](即n[2])是不确定的值。 11. 未初始化的数组元素:在程序中`n[k]`,由于k=2,n[2]未初始化,所以输出是0。 以上内容涉及了C语言数组的基础知识,包括数组声明、初始化、访问、输入输出、指针操作以及数组元素的计算和赋值等方面。这些题目旨在测试学生对C语言数组概念的理解和应用能力。