C语言 数组练习题
- 格式:pdf
- 大小:240.11 KB
- 文档页数:10


第7章 数组
【练习 7-1】将例 7—3 程序中的 break 语句去掉,输出结果有变化吗?假设输入数据不变,输出什么?
解答:
当去掉 break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为 x 的元素,因
此程序输出会有变化。当输入数据仍为 2 9 8 1 9 时,输出将是 index is 1 index is 4。
【练习7—2】将数组中的数逆序存放.输入一个正整数n(1
解答:
#include
int main(void)
{
int i,n,temp;
int a[10];
printf("Input n:");
scanf(”%d",&n);
printf(”Input %d integer:",n);
for(i=0;i
scanf(”%d”,&a[i]);
printf(”After reversed:");
for(i=0;i〈n/2;i++){
temp=a[i];
a[i]=a[n—1—i];
a[n-1—i]=temp;
}
for(i=0;i〈n;i++)
printf("%d ”,a[i]);
return 0;
}
【练习7-3】求最大值及其下标.输入一个正整数n(1〈n<=10),再输入n个整数,存入数组a中,将先数组a中的这n个数逆序存放,在按顺序输出数组a中的n各元素.试编写相应程序.
解答:
#include〈stdio.h>
int main(void)
{
int i,index,n;
int a[10];
printf("Enter n:”);
scanf(”%d",&n);
printf(”Enter %d integrs:”,n);
for(i=0;i〈n;i++)
scanf("%d",&a[i]);
for(i=n—1;i〉=0;i++)
printf("%d ”,a[i]);
4.1 选择题
1. 以下关于数组的描述正确的是(c )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素
B. 数组的大小是可变的,但所有数组元素的类型必须相同
C. 数组的大小是固定的,所有数组元素的类型必须相同
D. 数组的大小是可变的,可以有不同的类型的数组元素
2. 以下对一维整型数组a的正确说明是( D)。
A.int a(10); B. int n=10,a[n];
C.int n; D. #define SIZE 10
scanf("%d",&n); int a[SIZE];
int a[n];
3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C )。
A. 整型常量
B. 整型表达式
C. 整型常量或整型表达式
D. 任何类型的表达式
4. 以下对一维数组m进行正确初始化的是(C )。
A. int m[10]=(0,0,0,0) ; B. int m[10]={ };
C. int m[ ]={0}; D. int m[10]={10*2};
5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( c)。
A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1
6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(B )。
A. 3 B. 6 C. 10 D. 20
1.以下对一维整型数组a的定义,正确的是_。(2分)
A.int a(10) ;
B.int n = 10 , a[n] ;
C.int n ;
scanf( "%d" , &n ) ;
int a[n] ;
D.int a[10] ;
2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。(2分)
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
3.对定义 int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。(2分)
A.将5个初值依次赋给a[1]--a[5]
B.将5个初值依次赋给a[0]--a[4]
C.将5个初值依次赋给a[6]--a[10]
D.因为数组长度与初值个数不相同,所以此语句不正确
4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。(2分)
A.a[3][4]
B.a[1,3]
C.a[1+1][0]
D.a(2)(1)
5.以下对二维数组a初始化正确的语句是_。(2分)
A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}};
B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}};
C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}};
D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}};
6.对二维数组a进行如下初始化:
int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5};
则a[1][1]的值是_。(2分)
A.0
B.3
C.4
D.1
7.下面程序段的运行结果是_。(2分)
#include
int main( ){
int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ; for( i = 0 ; i < 3 ; i++ )
C语言练习题库
本题库仅供平时练习,最后考试类型与下列题型类似。
1.将所有的水仙花数保存到维数组a中。
(所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:153=1*1*1+5*5*5+3*3*3)
2. 按下面的公式求sum的值。
sum = 1 - 2 + 3 - 4 + 5 - 6 + …… + 99 – 100
3.编写代码,实现冒泡排序,并要求:
(1)在有序的数组中,接着插入一个元素,新数组仍然有序
(2)在数组中删除一个元素,新数组仍然有序
(3)对该数组进行逆序存放
4. 编写程序实现以下功能,能够将下面所示的6*6的二维矩阵读入并存储到二维数组中,并求其对角线之和,以及最大数,并输出最大数所在的行列下标。
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
5. 对任意输入的5个字符数组进行排序
比如:输入
abc def fdc ccc efg
得到
abc ccc def efg fdc
6. 求2个数组的交集
输入
{5,6,7,9,10}
{2,3,4,5,6}
得到
{5,6}
7. 求[m,n]之间既不能被7整除也不能被5整除的整数之和,m和n的值由键盘输入。
例如,如果m和n的值分别为10和20,则计算结果为:106。
8. 求字符串的长度并输出。
例如,当字符串1为"This Is a c Program"
则应输出:Result is: 19