C语言程序设计教程第五章练习题题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void main()
{
float arr[6] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 };
int i,t;
t = arr[0];
for (i = 0; i < 5; i++)
arr[i] = arr[i + 1];
arr[5] = t;
for (i = 0; i < 6; i++)
5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为()
A.4
B.1
C.2
D.5
6、关于二维数组,下列选项能正确定义并赋初值的是()
A.int n = 5,b[n][n];
B.int a[1][2] = {{1},{3}};
C.int c[2][] = {{1,2},{3,4}};
10、数组元素的下标用于表示元素在数组中的位置序号,该下标是从1开始的()。
11、数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等()。
12、一维数组指的是只有一个下标的数组,用来表示一组具有相同类型的数据()。
13、数组初始化的常见方式有三种:直接对数组中的所有元素赋值、只对数组中的一部分元素赋值、对数组全部元素赋值但不指定长度()。
C.可以对整型数组进行整体输入、输出
D.不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
11、以下定义语句中,错误的是()。
A.int a[]={1,2};
B.char *a[3];
C.char s[10]="test";
D.int n=5,a[n];
12、下列选项中,合法的数组定义是()。
for (i = 0; i<4; i++)
printf("%3d", x[i][3 - i]);
下列选项中哪一项是正确的输出结果()
A.1 5 9 13
B.1 6 11 16
C.4 7 10 13
D.4 8 12 16
10、下列描述中不正确的是()。
A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出
单选题
1、关于数组的定义与初始化,下列哪一项是错误的()
A.int arr[5] = {1,2,3,4,5};
B.int arr[] = {1,2,3,4,5};
C.int arr[5] = {1,2,3};
D.int arr[5] = {1,2,3,4,5,6};
2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是()
if (a[i]==x)
_______
for(i=0;i<6;i++)
printf("%d ",a[i]);
}
7、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:计算str所指字符串的长度,并作为函数值返回。
int mystrlen(char *str)
{
int i;
for (i=0; _______!='\0'; i++);
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];
}
A.0650
B.1470
C.5430
D.输出值不定
多选题
1、关于数组类型的定义,下列描述中正确的是()
A.数组的大小一旦定义就是固定的
B.一个数组中的各元素类型可以不一样
C.数组的下标类型为整型
15、请简要说明如何定义一个一维数组并为之赋值。
16请简要说明一维数组与二维数组的区别。
17简要描述数组有哪些特点。
18请简述什么是数组。
19请简述什么是多维数组的维数。
D.数组元素的下标从1开始
2、下面对数组描述正确的是()
A.数组的长度是不可变的
B.数组不能先声明长度再不赋值
C.数组只能存储相同数据类型的元素
D.数组没有初始值
判断题
1、在C语言中,只有一维数组和二维数组()。
2、数组的索引是从1开始的()。
3、数组属于构造类型的数据()。
4、数组名的命名较为特别,它不符合标识符的命名规范()。
10、假设定义一个3行4列的二维数组,那么共包含()个元素。
11、二维数组同一维数组一样,也是通过()和下标的方式来引用数组元素。
12、假设定义数组int a[3][4],数组a可用的行下标范围是(),列下标范围是()。
简答题
1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
for (i=2; i<=N; i++)
{
R[0]=R[i]; //设置监视哨
j=i-1;
while (_______)
{
R[j+1]=R[j];
_______
}
R[j+1]=R[0];
}
}
10、定义一个大小为10的char类型数组,从键盘输入其元素,然后将其倒序输出。
11、定义一个大小为10的int类型数组,从键盘输入其元素,然后将其从小到大排序后输出。
5、数组在初始化时不可以只赋值一部分,必须全部赋值初始化()。
6、对于一维数组,例如int arr[3];则arr[2]表示数组的第2个元素()。
7、数组的下标范围是0-[数组长度-1]()。
8、二维数组进行定义与初始化时,行下标与列下标均不能省略()。
9、在程序设计中,一组具有相同数据类型的变量集合称为数组()。
s[n]=_______
}
6、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:在一个初始化数组中查找与x相同的元素,如果找到就将该元素置为-x。
void main()
{
int a[]={8,4,2,7,3,9},i,x;
scanf("%d",&x);
for (i=0; _______; i++)
return _______;
}
8、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:在5个数中,找出最大的元素及位置。
#define size 5
void main()
{
int a[size]={4,6,3,9,23};
int max,p,i;
_______
p=0;
for (i=1;i<size;i++)
}
A.258
B.741
C.852
D.369
16、若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;
那么数值为4的表达式是()。
A.a[g-c]
B.a[4]
C.a['d'-'c']
D.a['d'-c]
17、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为()。
12、定义一个大小为10的int类型数组,从键盘输入其元素,然后输出其中最大值。
13、定义一个二维数组int arr[3][4] = {12,2,45,36,2,10,86,0,54,666,58,400};将数组中的元素按每一行每一列输出;
14、有一个二维整型数组,每一行都有一个最大值,编程求出每一行的最大值;
A.该数组的长度
B.该数组的元素个数
C.该数组中各元素的值
D.该数组的首地址
18、当调用函数时,实参是一个数组名,则向函数传送的是()。
A.数组的长度
B.数组的首地址
C.数组每一个元素的地址Biblioteka Baidu
D.数组每个元素中的值
19、以下程序的输出结果是()。
void main()
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);
正确的输出结果为()
A.0650
B.1470
C.5430
D.输出值不定
9、阅读下面程序:
int i;
int x[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
{
int i;
int arr[8] = { 1, 0, 1, 0, 1, 0, 1, 0 };
for (i = 0; i < 8; i++)
{
;
printf("%d\n", arr[i]);
}
return 0;
}
3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
printf("%-6.2f", arr[i]);
}
4、请阅读下面的程序,在空白处填写正确的代码,输出数组中最大元素的下标。
int main()
{
int i, p;
int arr[] = { 1, -3, 0, -9, 8, 5, 20, 3 };
for (i = 0, p = 0; i < 8; i++)
void main()
{
int i;
char arr[5] = { 'h', 'e', 'l', 'l', 'o' };
for (i = 0; i < 5; i++)
printf("%c", arr[i]);
}
2、请阅读下面的程序,在空白处填写正确的代码,只打印出数组偶数位上的元素。
int main()
A.arr[10]
B.arr[6.3]
C.arr(6)
D.arr[0]
3、在C语言中,引用数组元素时,其数组下标的数据类型允许是()
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
4、若int arr[5] = {1,2,3};则arr[2]的值为()
A.1
B.2
C.3
D.null
{
if ( )
;
}
printf("p = %d\n", p);
return 0;
}
5、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:删除字符串s中的所有数字字符。
void dele(char *s)
{
int n=0,i;
for (i=0;s[i];i++)
if (_______)
s[n++]=s[i];
B.10
C.12
D.40
14、C语言中数组下标的下限是()。
A.1
B.0
C.视具体情况
D.无固定下限
15、以下程序的输出结果是()。
void main()
{
int i, a[10];
for (i=9;i>=0;i--)
a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
4、若定义二维数组int arr[5][6];则数组的列下标的取值范围为()。
5、二维数组是通过数组名和()来引用其元素的。
6、C语言中数组必须先()再使用。
7、二维数组的定义格式为()。
8、一维数组指的是只有一个()的数组,用来表示一组具有相同类型的数据。
9、数组的下标是用()括起来的,而不是圆括号。
D.int a[3][2] = {{1,2},{3,4}};
7、阅读下列程序段:
char s[18] = "a book!";
printf("%.4s\n", s);
其输出结果为()
A.a book!
B.a book
C.a bo
D.a
8、阅读下列程序:
int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } };
if(a[i]>max)
{
max=a[i];
_______
}
}
9、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:对N个数用直接插入排序法进行由小到大排序。
#define N 10 //待排序元素的个数
void insertsort(int R[N+1]) //直接插入排序
{
int i,j;
14、数组中的元素可以通过数组名和下标来引用()。
15、数组的下标都有一个范围,即“0 ~数组长度”()。
16、初始化二维数组时,如果对全部数组元素置初值,则二维数组的第一个下标可省略,但第二个下标不能省略()。
填空题
1、C语言中数组名代表数组的()地址。
2、数组是一组具有()类型的数据的集合。
3、对于二维数组int arr[3][4],其中3为()下标,4为()下标。
A.int a[]="string";
B.int a[5]={0,1,2,3,4,5};
C.char s="string";
D.char a[]={0,1,2,3,4,5};
13、int类型变量在内存中占用四个字节,其有定义:int x[10]={0,2,4};那么数组x在内存中所占字节数是()。
A.3
相关文档
最新文档