第七章数组(8学时)
学习目的与要求:
1、重点掌握一维数组的定义和引用;
2、基本掌握二维数组的定义和引用;
3、重点掌握字符型数组的定义与引用;
4、能正确使用字符串处理函数;
5、学会使用数组解决实际问题。
重点:
1、一维数组的定义与引用;
2、二维数组的定义与引用;
3、字符数组的定义与引用;
第1讲
知识归纳:
1、一维数组的定义:类型说明符数组名[常量表达式];
(1)数组名后必须用方括弧[],用其他括弧均错误 ;
方括弧中的常量表达式表示数组的元素个数;
方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;
2、一维数组的引用:数组名[
2、一维数组的引用:
数组名[下标r ■」
\ for ( i =0 ; i<7 ; i printf(
(2)将整个字符串一次输入输出,用格式符 如^ chaLG1f10];
scanf (“ %s” , c1);
int num[N];
(2003 年 9 月)
25、有以下程序
main ()
{ char a[ ]={‘a' , ‘b' , ‘c' , ‘d',
i=sizeof(a); j=strle n( a); printf( “%d,%d b” i,j);
}
程序运行后的输出结果是()。
A) 9,9B)8,9
(2002 年 9 月)
21、C 22、C 23、D 24、B 25、D
“ %c , c1[ i ]);
%s ;
100]; D) int N=100;
e' ,‘f' , ‘g' , ‘h' , ‘0' }; int i,j;
C) 1, 8D) 9, 8
二、填空题
1、下面fun函数的功能是将形参 x的值转换成二进制数,所得二进制数的每一位数放在一
维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。
fun(int x,int b[])
{ int k=0,r;
do
{ r=x% 2;
b[k++]=r;
x/= 2j } while(x); }( 1996 年 4 月)
2 2
2、以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相
同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。
请填空。
#in clude< >
main ()
{ char str[100],str2[100],c;
int i,s;
prin tf("\n in put stri ng 1:\n"); gest(str1);
prin tf("\n in put stri ng 2:\n"); gest(str2);
i=0;
while((strl[i]==str2[i] &&(str1[i]!=))
i++;一
s=丄
prin tf("%d\n",s);
}( 1998 年 9 月)
'\0'或 0 strl[i]-str2[i]
3、 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该 是 a=1234 b=5 A 或 a=1234b=5。
char a[10],b;
scanf("a=%s b=%c",a,&b);( 1999 年 4 月)
4、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低
于平均分的学生成绩,用输入负数结束输入。请填空。
mai n()
{ float x[1000], sum=, ave, a ;
int n=0 ,i ;
printf("Enter mark : \n") ; scanf("%f",&a);
while(a>=&& * 1000)
{ sum+_; x[n]= _;
n++; scanf("%f",&a);
}
ave=_;
printf("Output : \n");
printf("ave=%f\n" , ave);
for (i=0;i
if printf (“%f n” ,x[i]);
}( 1999 年 9 月)
=a a sum/n x[i]
5、 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列 ,其它元素不变。
请填空。
#in clude< >
#in clude< >
main ()
{ char a[]="cla nguage",t;
int i, j, k;
k=strle n( a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j<=k ; j+=2 )
if( a[i]>a[j])
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
prin tf("\