c语言复习题及答案第七章数组

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章数组 (8学时)

学习目的与要求:

1 、重点掌握一维数组的定义和引用;

2 、基本掌握二维数组的定义和引用;

3 、重点掌握字符型数组的定义与引用;

4 、能正确使用字符串处理函数;

5 、学会使用数组解决实际问题。

重点:

1 、一维数组的定义与引用;

2 、二维数组的定义与引用;

3 、字符数组的定义与引用;

第1讲

知识归纳:

1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ;

(1)(1)数组名后必须用方括弧 [ ] ,用其他括弧均错误;

(2) 方括弧中的常量表达式表示数组的元素个数;

(3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;

2、一维数组的引用:

数组名[ 下标 ]

for ( i =0 ; i<7 ; i ++ ) printf( “%c” , c1[ i ] );

(2)将整个字符串一次输入输出,用格式符%s ;

如:char c1[10] ;

scanf ( “ %s”, c1) ; 100]; D) int N=100;

int num[N];

(2003年9月)

25、有以下程序

main()

{ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’,‘g’,‘h’,‘\0’}; int i,j;

i=sizeof(a); j=strlen(a);

printf(“%d,%d\b”i,j);

}

程序运行后的输出结果是( )。

A)9,9 B)8,9 C)1,8 D)9,8

(2002年9月)

21、C 22、C 23、D 24、B 25、D

二、填空题

1、下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一

维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。

fun(int x,int b[])

{ int k=0,r;

do

{ r=x%2;

b[k++]=r;

x/=2 ; } while(x); } (1996年4月)

2 2

2、以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相

同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。

请填空。

#include< >

main()

{ char str[100],str2[100],c;

int i,s;

printf("\n input string 1:\n"); gest(str1);

printf("\n input string 2:\n"); gest(str2);

i=0;

while((strl[i]==str2[i]&&(str1[i]!= ))

i++;

s= ;

printf("%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、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低

于平均分的学生成绩,用输入负数结束输入。请填空。

main( )

{ float x[1000], sum=,ave, a;

int n=0,i;

printf("Enter mark:\n");scanf("%f",&a);

while(a>=&& n<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中下标值为偶数的元素从小到大排列,其它元素不变。

请填空。

#include< >

#include< >

main()

{ char a[]="clanguage",t;

int i, j, k;

k=strlen(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);

printf("\n");

} (2000年4月)

6、下列程序段的输出结果是Hello。

main()

{ char b[]=”Hello,you”;

b[5]=0;

printf(“%s \n”, b );

} (2001年4月)

7、若变量n中的值为24,则prnt函数共输出5行,最后一行有4个数。

void prnt(int n, int aa[ ])

{ int i;

for(i=1; i<=n;i++)

{ printf(“%6d”, aa[i]);

if( !(i%5) ) printf(“\n”);

}

printf(“\n”);

} (2001年4月)

8、若已定义: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++) =i;

for(i=0; i<5; i++) =a[i];

} (2001年9月)

a[i-1] a[9-i]

9、若有定义语句: char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以

实现字符串拷贝。(注:不得使用逗号表达式)

while(s[i]){ d[j]=s[i++];j++;}

d[j]=0; (2001年9月)

10、以下程序的输出结果是abc。

main()

{ char s[]="abcdef";

s[3]=‘\0';

printf("%s\n",s);

} (2002年4月)

11、若有以下程序

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];

}

相关文档
最新文档