习题 1.1选择题 1在C语言中,引用数组元素时,其数组下标的数据类型允许是()c A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 2.下面不正确的一维数组定义是()A A.int=5.inta[n]. B.int a5] C.inta D.int a2*3 )e A.inta[10](0,0,0,0: B.inta[10]={); C.intal ]=0); D.inta10={10*1: 4对以下说明语句的正确理解是( c inta10={67,89,10 A.将5个初值依次赋给a至a5) B.将5个初值依次赋给a0至a4) C,将5个初值依次赋给a[6至a[10 D因为数组长度与初值的个数不相同,所以此语句不正确 2.2编程题 一个3×3的整型矩阵对角线元素之和。 2.已有一个已排好序的数组,近输入一个数,要求按原来排序的规律将它插入数组 中。 3.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改 为1456g 4.打印出以下的杨辉三角形(要求打印出10行)。 1 11 121 1331 14641 15101011 :::::: 5.用选择法对10个整数排序。 3.3阅读程序,写出程序运行结果 程序一#include main() char al ]"morning”, int i,j=0: for(i=l:is7:i) if (aj]<a])j=i; alil:aUJ-al7] a[7]=a[j]:puts(a)
习题 1.1 选择题 1.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )c A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 2.下面不正确的一维数组定义是( ) A A.int=5;int a[n]; B.int a[5]; C. int a[ ]={1,2,3,4}; D.int a{2*3} 3.以下能对一维数组 a 进行正确初始化的语句是( )c A.int a[10]=(0,0,0,0); B.int a[10]={ }; C.int a[ ]={0}; D.int a[10]={10*1}; 4.对以下说明语句的正确理解是( )C int a[10]={6,7,8,9,10}; A. 将 5 个初值依次赋给 a[1]至 a[5] B. 将 5 个初值依次赋给 a[0 至 a[4] C. 将 5 个初值依次赋给 a[6 至 a[10] D. 因为数组长度与初值的个数不相同,所以此语句不正确 2.2 编程题 1.一个 3×3 的整型矩阵对角线元素之和。 2.已有一个已排好序的数组,近输入一个数,要求按原来排序的规律将它插入数组 中。 3.将一个数组中的值按逆序重新存放。例如,原来顺序为 8,6,5,4,1。要求改 为 1,4,5,6,8。 4.打印出以下的杨辉三角形(要求打印出 10 行)。 5.用选择法对 10 个整数排序。 3.3 阅读程序,写出程序运行结果 程序一 #include main( ) { char a[ ]=”morning”,t; int i,j=0; for(i=1; i<7; i++) if (a[j] <a[i] ) j=i; t=a[j]; a[j]=a[7]; a[7]=a[j]; puts(a); 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 1 1 . . . . . . .
执行结果是 程序二#include main() char ch7刀={"12ab56": inti,s-0; for(i-0:ch[>=0&&ch[ main() char str[]="SSSWLIA",c; intk: for(k=2:(c=str[kJ)-\0:k++) {switch (c) case T:++k;break: case L':continue: default:putchar(c).contnue putchar("); 执行结果是」 程序四#include main() char al8O=”AB”,bM8 O]="LMNP, inti=0. strcat(a,b)
} 执行结果是 。 程序二#include main() { char ch[7]={"12ab56"}; int i,s=0; for(i=0;ch[i]>='0'&&ch[i] main( ) { char str[]="SSSWLIA",c; int k; for (k= 2;(c=str[k])!='\0';k++) { switch (c) { case 'I': ++k;break; case 'L': continue; default :putchar(c);continue; } putchar('*'); } } 执行结果是 。 程序四 #include main ( ) { char a[80]=”AB”,b[80]=”LMNP”; int i=0; strcat(a,b);
while(a[i++]!=0')b[]=[] puts(b); 执行结果是」 上机实验 1.目的和要求 (1)掌握一、二维数组的定义和引用 (②掌握字符数组 2.实验内容 ()用数组来处理Fibonacei数列问题 程序如下: main() inti, intf20=11; for(i=2,i20,i+) f=i-2_1 for(0-0,i<20:i+) if(i%5==0)printf("n',件每行输出5个数据制 printf(%12d”,fi 要求: ①运行程序并查看结果 ②编程思路是什么?=i-2+-小,此句的意思是什么? (2)有一个3×4的矩阵,要求编程序求出其中值最大的哪个元素的值,以及其所 在的行号和列号。 程序如下: main()
while(a[i++]!=’\0’) b[i]=a[i]; puts(b); } 执行结果是 。 上机实验 1.目的和要求 ⑴掌握一、二维数组的定义和引用 ⑵掌握字符数组 2.实验内容 ⑴用数组来处理 Fibonacci 数列问题 程序如下: main( ) { int i; int f[20]={1,1}; for (i=2;i<20;i++) f[i]=f[i-2]+_f[i-1]; for (i=0;i<20;i++) { if (i%5= =0) printf(“\n”); /*每行输出 5 个数据*/ printf(“%12d”,f[i]); } } 要求: ① 运行程序并查看结果 ② 编程思路是什么?f[i]=f[i-2]+f[i-1];此句的意思是什么? ⑵有一个 3×4 的矩阵,要求编程序求出其中值最大的哪个元素的值,以及其所 在的行号和列号。 程序如下: main ( ) {
int i,j,row=0,coum=0,max; inta3][4]={1,2,3,4},{9,8,7,6{-10,10,-5,2}: max=a[0][0 for(i=0;imax) {max=a[i][j];row=i;colum=j) printf("max=%d,row=%d,colum=%d\n",max,row,colum); } 要求 ①调试运行程序 ②程序中画线的语句能否改为f语句。 ③数组的赋值能否换另一种方式赋值,是什么? (3)有3个字符串,要求找出其中最大者。 程序如下: include include main() char string[20]; char str[3][20]; int i; for(i=0;i0)strcpy (string,str[0]); else strcpy(string,str[i]); if(strcpy(str[2],string)>0)strepy(string,str[i]), printf(Anthe largest string is:\n",string); } 要求 ①采用一维叔祖来处理,编写程序并运行程序 ②程序中使用函数的意思
int i,j,row=0,coum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for (i=0;imax) { max=a[i][j];row=i;colum=j;} printf(“max=%d,row=%d,colum=%d\n”,max,row,colum); } 要求 ① 调试运行程序 ② 程序中画线的语句能否改为 if 语句。 ③ 数组的赋值能否换另一种方式赋值,是什么? ⑶有 3 个字符串,要求找出其中最大者。 程序如下: # include # include main( ) { char string[20]; char str[3][20]; int i; for (i=0;i0) strcpy (string,str[0]); else strcpy(string,str[i]); if (strcpy(str[2],string)>0) strcpy(string,str[i]); printf(“\nthe largest string is:\n”,string); } 要求: ① 采用一维叔祖来处理,编写程序并运行程序 ② 程序中使用函数的意思