下列程序段的输出结果是1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章数组
一、填空:
(1) 下列程序段的输出结果是【1】。
main()
{ char b[]=”Hello,you”;
b[5]=0;
printf(“%s \n”, b );
}
(2) 以下程序的输出结果是【2】。
main()
{ char s[]="abcdef";
s[3]=‘\0';
printf("%s\n",s);
}
(3) 若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个
数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。
fun( int a[ ])
{ int i;
for(i=1; i<=10; i++)
【3】=i;
for(i=0; i<5; i++) 【4】=a[i];
}
(4) 若有以下程序
main()
{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}};
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\n",s);
}
执行后输出结果是【5】
(5) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式
如下
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1.
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#define N 6
void yanghui(int x[N][N])
{ int i,j;
x[0][0]=1;
for(i=1;i { x[i][0]=【6】=1; for(j=1;j x[i][j]= 【7】; } } (6) 以下函数的功能是删除字符串s中的所有数字字符。请填空。 viod dele(char *s) { int n=0,i; for(i=0;s[i];i++) if(【8】) s[n++]=s[i]; s[n]=【9】; } 二、选择: (1) 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是 A) &t[3][2] B ) t[3] C) t[1] D) t[2] (2) 以下程序的输出结果是 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 (3) 以下程序的输出结果是 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(“%dn”,s); } A) 18 B) 19 C) 20 D)21 (4) 当执行下面的程序时,如果输入ABC,则输出结果是 #include “stdio.h ” #include “string.h” main() { char ss[10]=“1,2,3,4,5”; gets(ss); strcat(ss, “6789”); printf(“%s\n”,ss); } A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 (5) 以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s)); A) 9 B)12 C) 13 D) 14 (6) 以下程序的输出结果是 main() { char ch[3][5]={"AAAA","BBB" ,"CC"}; printf("\"%s\"\n",ch [1]); } A) "AAAA" B) "BBB" C) " BBBCC" D) "CC" (7) 以下不能正确进行字符串赋初值的语句是 A) char str[5]="good!"; B) char str[]="good!"; C) char *str="good!"; D ) char str[5]={…g',…o',…o',…d'}; (8) 若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是 A) &aa[0]+1 B) &aa[1] C ) &aa[0]++ D) aa+1 (9) 以下程序的输出结果是 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][ j]]; printf("%d\n",t); } A) 3 B) 4 C) 1 D) 9 (10) 以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]=”test ”; D) int n=5,a[n]; (11) 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20 (12) 以下程序的输出结果是 main() { int i, a[10];