|
|
一、选择题 1.执行下面的程序段后,变量k中的值为( )。 int k=3, s[2]; s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10
2.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是( )。 void main() { char s[100]; int c, i; scanf("%c",&C); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); } A. 123,456,789 B. 1,456,789 C. 1,23,456,789 D. 1,23,456
3.有如下程序: void main() { int n[5]={0,0,0},i,k=2; for(i=0;i<k;i++) n[i]=n[i]+1; printf("%d\n",n[k]); } 该程序的输出结果是( )。 A. 不确定的值 B. 2 C. 1 D. 0
4.有如下程序 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. 14 B. 15 C. 16 D. 17
5.以下程序的输出结果是( )。 void main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; 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
6.以下程序的输出结果是( )。 main() { char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k<3;k++) printf("%s\n",w[k]); } A. ABCD B. ABCD C. EFG D. EFGH FGH EFG JK IJKL KL IJ O M
7.下面语句中不正确的是( )。 A. static int a[5] = {1 , 2 , 3 , 4 , 5 }; B. static int a[5] = {1 , 2 , 3 }; C. static int a[ ] = {0 , 0 , 0 , 0 , 0 }; D. static int a[5] = {0*5};
8.若有说明:int a[ ][4] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } , 则数组第一维的大小为( )。 A.2 B.3 C.4 D.不确定的值
9.若定义static int a[2][2] = {1,2,3,4};则a数组的各数组元素分别为( )。 A. a[0][0] = 1 , a[0][1] = 2 , a[1][0] = 3 , a[1][1] = 4 B. a[0][0] = 1 , a[0][1] = 3 , a[1][0] = 2 , a[1][1] = 4 C. a[0][0] = 4 , a[0][1] = 3 , a[1][0] = 2 , a[1][1] = 1 D. a[0][0] = 4 , a[0][1] = 2 , a[1][0] = 3 , a[1][1] = 1
10.下列语句中,不正确的是( )。 A. static int a[2][3] = {1 , 2 , 3 , 4 , 5 , 6}; B. static int a[2][3] = {{1}, { 4 , 5}}; C. static int a[ ][3] = {{1}, {4}}; D. static int a[ ][ ] = {{1 , 2 , 3 }, {4 , 5 , 6}};
二、填空题 1. 设有数组定义为: char array [ ]="China"; 则数组 array所占的空间为( )。 2. main() { char arr[2][4]; strcpy(arr,"you"); strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s\n",arr); } 程序执行后的输出结果是( )。 3. main() { int i,k,a[10],p[3]: k=5; for (i=0;i<10;i++) a[i]=i; for (i=0;i<3;i++) p[i]=a[i*(i+1)]; for (i=0;i<3;i++) k=k+p[i]*2; printf("%d\n",k); } 程序执行后的输出结果是( )。 4.main() { char ch[7]={ "65ab21"}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 程序运行的结果是( )。
三、程序设计题 1.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素和第10个元素互换,第二个元素和第9个元素互换……分别输出数组原来的值和对换后各元素的值。
2.设有如下两组数组: A:2,8,7,6,4,28,70,25 B:79,27,32,41,57,66,78,80 编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27……并把相应的结果放入第三个数组中,最后输出第三个数组的值。
3.编写程序,把下面的数据输入到一个二维数组中: 25 36 78 13 12 26 88 93 75 18 22 32 56 44 36 58 然后执行以下操作: a.输出矩阵两条对角线上的数; b.交换第一行和第三行的位置,然后输出。 |
|
答案: |
1、选择题 (1)A (2)D (3)D (4)A (5)C (6)D (7)D (8)B (9)A (10)D 2、填空题 (1) 6个字节 (2) you&me (3) 21 (4) 6 3、程序设计题 (1) main() { int a[9],i,temp; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); for(i=0;i<5;i++) { temp=a[i]; a[i]=a[9-i]; a[9-i]=temp; } for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); } (2) main() { int a[8]={2,8,7,6,4,28,70,25}; int b[8]={79,27,32,41,57,66,78,80}; int c[8],i; for(i=0;i<8;i++) c[i]=a[i]+b[i]; for(i=0;i<8;i++) printf("%d\t",a[i]); printf("\n"); for(i=0;i<8;i++) printf("%d\t",b[i]); printf("\n"); for(i=0;i<8;i++) printf("%d\t",c[i]); printf("\n"); }
(3) main() { int a[4][4]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}}; int dui1=0,dui2=0,i,j,temp; for(i=0;i<4;i++) for(j=0;j<4;j++) { if(i==j) dui1+=a[i][j]; if(i+j==3) dui2+=a[i][j]; } for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%d\t",a[i][j]); printf("\n"); } printf("dui1=%d\tdui2=%d\n",dui1,dui2); for(i=0;i<4;i++) { temp=a[0][i]; a[0][i]=a[2][i]; a[2][i]=temp; } for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%d\t",a[i][j]); printf("\n"); } }
|
|