【习题5-1】 一、选择题
1.有定义语句“int a[][3]={1, 2, 3, 4, 5, 6};”,则a[1][0]的值是 A 。 A.4 B. 1 C. 2 D. 5 2.执行下面的程序段后,变量k中的值为 A 。
int k=3,s[2]; s[0]=k; k=s[1]*10;
A.不定值 B.33 C.30 D.10
3.在定义“int a[10];”之后,对a元素的引用正确的是 D 。 A.a[10] B.a[6,3] C. a(6) D.a[10-10] 4.以下程序的输出结果是 C 。
void main() {
int a[10],i;
for(i=9;i>=0;i--) a[i]=10-i;
printf(\}
A.258 B.741 C.852 5.以下程序的输出结果是 D 。
void main() {
int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) {k=k+p[i]; i++;}
printf(”%d\\n”,k); }
D.369
A.58 B.56 C.45 D.24 6.以下数组定义中不正确的是 B 。 A.int a[2][3];
B.int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; C.int c[100][100]={0}; D.int b[][2]={0,1,2,3};
7.以下能正确定义数组并正确赋初值的语句是 D 。 A.int N=5,b[N][N]; B.int a[1][2]={{1},{3}}; C.int c[2][]={{1,2},{3,4}}; D.int d[3][2]={{1,2},{34}}; 8.以下程序的输出结果是 D 。
void main() {
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)
for(j=0;j<=i;j++) s+=a[i][j]; printf(”%d\\n”,s); }
A.21 B.19 C.20 D.18
9.以下程序的输出结果是 C 。
void main() {
int x[3][3]={1,2,3,4,5,6,7,8,9},i; for(i=0;i<3;i++)
printf(”%d ”,x[i][2-i]); }
A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
10.若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是 A 。
float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};
A. 0.0 二、填空题1.在定义“2.有以下程序void main() {
int m[][3]={1,4,7,2,5,8,3,6,9}; int i,k=2;
for(i=0;i<3;i++)
printf(”%d”,m[k][i]);}
执行后的输出结果是3.若有以下程序,执行后的输出结果是void main() {
int a[4][4]={{1,2,-3,-4},{0,-12,-13,14}, int i,j,s=0;
for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
if(a[i][j] <0) continue; if(a[i][j] ==0) break; s+=a[i][j]; } }
printf(”%d}
4.以下程序的输出结果是void main() {
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++)
for(j=i;j<=i;j++)
t=t+b[i][b[j][i]]; printf(\}
三、编程题1.编写程序实现下述功能:有43、90、编写程序找出其中的最高分,并将最高分与第一个成绩交换位置。 B. 4.0 int a[5][6];”后,第10个元素是
369 。
{-21,23,0,-24},{-31,32,-33,0}}; \\n”,s); 4 。10位学生的成绩: C. 5.0 D. a[1][3] 。 58 。
17、34、90、6.0 88、55、74
95、82、
、 #include
2.编写程序实现下述功能:将数组a的内容逆置重放。要求不得另外开辟数组, 只能借助于一个临时存储单元。
#define N 5
#include
{ int a[N]={0,17,34,90,88}; int i,temp; printf(\正序:\\n\ for(i=0;i 3.编写程序实现下述功能:有一个已经排好序的数组。要求输入一个数,在数组中查找是否有这个数,如果有,将该数从数组中删除,要求删除后的数组仍然保持有序;如果没有,则输出“数组中没有这个数!” void main() { int a[10]={1,4,6,9,13,16,19,28,40,100}; int number,i,j; printf(\原始数组为:\\n\ for(i=0;i<10;i++) printf(\ printf(\ printf(\输入要删除的数:\ scanf(\ for (i=0;i<10;i++) { if (a[i]==number)
相关推荐: