[题6.46] 下面程序的运行结果是 #include
{char ch[7]={“12ab56”}; 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); }
A)1 B)1256 C)12ab56 D)1 2 5 6
[题6.47]当运行以下程序时,从键盘输入:aa_bb
{char a1[5],a2[5],a3[5],a4[5]; scanf(“%s%s”,a1,a2); gets(a3);gets(a4); puts(a1);puts(a2);
11
puts(a3);puts(a4); } A)aa bb cc_dd B)aa bb cc dd C)aa bb cc_dd ee D)aa_bb cc dd
[题6.50] 下面程序的运行结果是___. #include
{char a[80]=”AB”,b[80]=”LMNP”;
12
int i=0; strcat(a,b);
while(a[i++]!=’\\0’) b[i]=a[i]; puts(b); }
A) LB B) ABLMNP C) AB D) LBLMNP [题6.52]下面程序的运行结果是 #include
{char a[]=”morming”,t; int i,j=0;
for(i=1;i<7;i++) if(a[j]
A)mogninr B)mo C)morning D)mornin
6.2 填 空 题
[题6.53]在C语言中,二维数组的定义方式为:类型说明符 数组名[【1】][【2】];
答:【1】常量表达式 【2】常量表达式
[题6.54]在C语言中,二维数组元素在内存中的存放顺序是【】。 按行主序存放
13
[题6.55]若有定义:double x[3][5];则x数组中行下标的下限为【1】,列下标的上限为【2】。 答:【1】0 【2】 4
[题6.57]若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是【1】。 答: 0 [题6.59]下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main()
{ int a[N],i;
for(i=0;i printf(”%3d”,a[i]); } printf(“\\n”); } 答:【1】 &a[i]【2】 i%4==0【3】printf(“\\n”) [题6.60] 下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。 main() {int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; 14 prinf(“array a:\n”); for(i=0;i<=1;i++) {for(j=0;【1】;i++) {printf(”%5d”,a[i][j]); 【2】; } printf(“\n”); } prinf(“array b:\n”); for(i=0;【3】;i++) {for(j=0;j<=1;j++) printf(”%5d”,b[i][j]); print(“\n”);} } 答:【1】j<3【2】b[j][i]=a[i][j]【3】i<3 [题6.62] 下面程序可求出矩阵a的两条对角线上的元素之和,请填空。 main() {int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum1= sum1+a[i][j]; 15