c语言第七章数组课后练习题答案
- 格式:doc
- 大小:44.00 KB
- 文档页数:28
第七章数组(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,9B) 8,9C) 1,8D) 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 22、以下程序用来对从键盘上输入的两个字符串进行比较 , 而后输出两个字符串中第一个不同样字符的 ASCII 码之差。
C程序设计(数组)习题与答案C程序设计(数组)习题与答案数组是C语言中常用的数据结构之一,它可以存储多个相同类型的元素。
掌握数组的使用对于C程序设计至关重要,下面将为大家介绍一些关于C数组的习题及其答案。
1. 习题一:计算数组元素的和题目描述:编写一个程序,计算给定数组中所有元素的和,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的整型数组int sum = 0; // 用于存储和的变量// 遍历数组,累加每个元素的值for (int i = 0; i < 5; i++) {sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;}```2. 习题二:查找数组中的最大值题目描述:编写一个程序,找出给定整型数组中的最大值,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[7] = {4, 7, 2, 9, 1, 5, 8}; // 定义一个包含7个元素的整型数组int max = arr[0]; // 假设第一个元素为最大值// 遍历数组,比较每个元素的值与当前最大值的关系for (int i = 1; i < 7; i++) {if (arr[i] > max) {max = arr[i];}}printf("数组中的最大值为:%d\n", max);return 0;}```3. 习题三:查找数组中的特定元素题目描述:编写一个程序,在给定整型数组中查找是否存在指定元素,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[6] = {3, 6, 9, 2, 5, 8}; // 定义一个包含6个元素的整型数组 int target = 2; // 指定要查找的元素int found = 0; // 用于标记是否找到目标元素的变量// 遍历数组,比较每个元素的值与目标值的关系for (int i = 0; i < 6; i++) {if (arr[i] == target) {found = 1;break;}}if (found) {printf("数组中存在目标元素:%d\n", target);} else {printf("数组中不存在目标元素:%d\n", target);}return 0;}```4. 习题四:数组元素逆序排列题目描述:编写一个程序,将给定整型数组的元素逆序排列,并输出结果。
7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。
两个整数由键盘输入。
hcf(u,v)int u,v;{ int a,b,t,r;if(u>v){ t=u;u=v;v=t; }a=u;b=v;while((r=b%a)!=0){ b=a;a=r; }return(a);}lcd(u,v,h)int u,v,h;{ int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%dn",h);l=lcd(u,v,h);printf("L.C.d=%dn",l);return(u*v/h);}#include <stdio.h>void main(){ int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%dn",h);l=lcd(u,v,h);printf("L.C.D=%dn",l);}7.2 求方程根float x1,x2,disc,p,q; greater_than_zero(a,b)float a,b;{x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); }equal_to_zero(a,b)float a,b;{ x1=x2=(-b)/(2*a);}smaller_than_zero(a,b)float a,b;{ p=-b/(2*a);q=sqrt(disc)/(2*a);}main(){float a,b,c;printf("n输入方程的系数a,b,c:n");scanf("%f,%f,%f",&a,&b,&c);printf("n 方程是:% 5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c);disc=b*b-4*a*c;printf("方程的解是:n");if(disc>0){ great_than_zero(a,b);printf("X1=%5.2ftX2=%5.2fnn",x1,x2);}else if(disc==0){zero(a,b);printf("X1=%5.2ftX2=%5.2fnn",x1,x2);}else{small_than_zero(a,b,c);printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);}}7.3 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。
选择题1.已知:int *p, a;,则语句“p=&a;”中的运算符“&”的含义是( D )。
A.位与运算B.逻辑与运算C.取指针内容D.取变量地址2.已知:int a, x;,则正确的赋值语句是( C )。
A.a=(a[1]+a[2])/2; B.a*=*a+1; C.a=(x=1, x++, x+2); D.a="good"; 3.已知:int a, *p=&a;,则下列函数调用中错误的是( D )。
A.scanf("%d", &a); B.scanf("%d", p); C.printf("%d", a); D.scanf("%d", *p); 4.已知:char *p, *q;,选择正确的语句( C )。
A.p*=3; B.p/=q; C.p+=3; D.p+=q;5.已知:int x;,则下面的说明指针变量pb的语句( C )是正确的。
A.int pb=&x; B.int *pb=x; C.int *pb=&x; D.*pb=*x;一、选择题1.设有说明int (*ptr)[M];,其中的标识符ptr是( C )。
A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.一个指向具有M列的二维数组的一行的指针D.具有M个指针元素的一维数组的指针2.已知:double *p[6];,它的含义是( C )。
A.p是指向double型变量的指针B.p是double型数组C.p是指针数组D.p是数组指针3.已知:char s[10], *p=s,则在下列语句中,错误的语句是( B )。
A.p=s+5; B.s=p+s; C.s[2]=p[4]; D.*p=s[0];4.已知:char s[100]; int i;,则在下列引用数组元素的语句中,错误的表示形式是( D )。
一、单选题1、下列描述中不正确的是()A.字符串的结束符是'\0'。
B.可以对字符型数组进行整体输入、输出。
C.字符型数组中能存放字符串。
D.字符串函数声明在ctype.h中。
正确答案:D2、下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组只能存放字符串D.字符数组中的内容不一定是字符串正确答案:C3、下面是对数组s的初始化操作,其中不正确的是()A.char s[5]= " ";B.char s[5]={'a'};C.char s[5]={"a"};D.char s[5]= "abcdef";正确答案:D4、下面叙述正确的是()A.字符串"123 "与"123"相等。
B.字符串"123"小于字符串"2"。
C.两个字符串所包含的字符个数不相同时,才能进行大小比较。
D.字符个数多的字符串比字符个数少的字符串大。
正确答案:B5、下面程序段的输出结果是()char a[7]=“123456”;char b[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A.\0B.C.5D.6正确答案:D6、以下对二维数组a的正确说明是__。
A.double a[1][4];B.float a(3)(4);C. floatf a(3,4);D. int a[3][];正确答案:A7、以下能对二维数组a进行正确初始化的语句是__。
A. int a[][3]={{1,2,3},{4,5,6}};B.int a[2][]={{1,0,1},{5,2,3}};C.int a [2][4]={{1,2,3},{4,5},{6}};D. int a[][3={{1,0,1},{},{1,1}};正确答案:A8、若有说明: int a[3][4]={0};则下面正确的叙述是__。
C语言程序设计第四版第七章答案-谭浩强第七章函数7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
maxyueshu(m,n)int m,n;{ int i=1,t;for(;i<=m&&i<=n;i++){if(m%i==0&&n%i==0)t=i;}return(t);}minbeishu(m,n)int m,n;{int j;if(m>=n) j=m;else j=n;for(;!(j%m==0&&j%n==0);j++);return j;}main()整数,输出是否是素数的消息。
psushu(m)int m;{int i=2,t;for(;i<=m;i++)if(m%i==0&&i<m) break;if(m-i==0) t=1;else t=0;return m;}main(){int a,s;printf("enter sushu is \n");scanf("%d",&a);s=psushu(a);if(s==1) printf("a is sushu\n");else printf("s is not sushu\n");}7.4写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
int zhuangzhi(b)int b[3][3];{int i,j,t;for(i=0;i<3;i++)for(j=0;j>=i&&j<3-i;j++){t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;}}main(){int a[3][3];int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}zhuangzhi(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}}7.5写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。
c语言第七章数组课后练习题答案第七章数组学习目的与要求:1 、重点掌握一维数组的定义和引用;、基本掌握二维数组的定义和引用;、重点掌握字符型数组的定义与引用;、能正确使用字符串处理函数;、学会使用数组解决实际问题。
重点:1 、一维数组的定义与引用;、二维数组的定义与引用;、字符数组的定义与引用;第1讲知识归纳:1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ;数组名后必须用方括弧 [ ] ,用其他括弧均错误;方括弧中的常量表达式表示数组的元素个数;方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;2、一维数组的引用:数组名[ 下标 ] //下标从0如 int a[10] ;//可以引用的数组元素为不是本数组元素;3、一维数组的初始化:int a[3] ;a = { 1,3,} ;可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ??, float 0.0 ;如 int a [3]= {1,} ; //a[0] =1 ; a[1]= ; a[2]= 0 ;在对数组全部元素赋初值时,可以不指定元素个数;可以在循环控制下,给数组各元素赋值;如:int a[10] ;fora [ i ] = i ;基础训练一、选择题1、在c语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量 B)整型表达式 )整型常量或整型表达式D)任何类型的表达式2、要说明一个有10个int元素的数组,应当选择语句。
) int a[10]; B) int a; C) int a[9] D) int a[11]3、以下对数组的正确定义是:。
A) float b[5.0] ) float b[5] C) float b D) float b[]4、对以下说明语句的正确理解是。
int a[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5]C语言复习题)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确5、已知:int a[10];则对a数组元素的正确引用是。
第七章习题参考答案一、选择题7.1 答案:C7.2 答案:C7.3 答案:D7.4 答案:C7.5 答案:D二、读程序回答问题7.6 答案:B7.7 答案:C7.8 答案:D7.9 答案:A7.10 答案:C7.11 答案:D7.12 答案:C7.13 答案:C三、编写程序7.14 参考源程序如下:/* 习题7.14参考源程序*/#include<stdio.h>int N1=50,N2=10;long add(int m){static long s=0;s=s+m;return(s);}long mul(int m){static long p=1;p=p*m;return(p);}main(){int i;long sum,product;for(i=1;i<=N1;i++)sum=add(i);printf("1+2...+%d=%ld\n", N1, sum);for(i=1;i<=N2;i++)product=mul(i);printf("1*2...*%d=%ld\n", N2, product);}7.15 求素数的算法比较简单,本题主要考察通过外部变量来传递数据。
参考源程序中使用两个外部变量分别来存放素数的个数和素数的和。
参考源程序如下:参考源程序如下:/* 习题7.15参考源程序*/#include<math.h>#include<stdio.h>int n=0;long sum;void count(int n1,int n2){int i,j;int k;int flag=1;for(i=n1;i<=n2;i++){k=sqrt(n2);for(j=2;j<=k;j++)if(i%j==0) {flag=0; break;}if(flag){n++; sum+=i;}flag=1;}}main(){int n1=10,n2=100;count(n1,n2);printf("%d prime numbers, total is %d\n",n,sum);}。
c语言第七章数组课后练习题答案第七章数组学习目的与要求:1 、重点掌握一维数组的定义和引用;、基本掌握二维数组的定义和引用;、重点掌握字符型数组的定义与引用;、能正确使用字符串处理函数;、学会使用数组解决实际问题。
重点:1 、一维数组的定义与引用;、二维数组的定义与引用;、字符数组的定义与引用;第1讲知识归纳:1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ;数组名后必须用方括弧 [ ] ,用其他括弧均错误;方括弧中的常量表达式表示数组的元素个数;方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;2、一维数组的引用:数组名[ 下标 ] //下标从0如 int a[10] ;//可以引用的数组元素为不是本数组元素;3、一维数组的初始化:int a[3] ;a = { 1,3,} ;可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ??, float 0.0 ;如 int a [3]= {1,} ; //a[0] =1 ; a[1]= ; a[2]= 0 ;在对数组全部元素赋初值时,可以不指定元素个数;可以在循环控制下,给数组各元素赋值;如:int a[10] ;fora [ i ] = i ;基础训练一、选择题1、在c语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量 B)整型表达式 )整型常量或整型表达式D)任何类型的表达式2、要说明一个有10个int元素的数组,应当选择语句。
) int a[10]; B) int a; C) int a[9] D) int a[11]3、以下对数组的正确定义是:。
A) float b[5.0] ) float b[5] C) float b D) float b[]4、对以下说明语句的正确理解是。
int a[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5]C语言复习题)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确5、已知:int a[10];则对a数组元素的正确引用是。
A) a[10] B) a[3.5] C) a ) a[10-10]6、以下能对一维数组a进行正确初始化的语句是。
A) int a[10]=; B)int a[10]={} ) int a[]={0}; D) int a[10]={10*1};7、以下能对一维数组a进行正确初始化的语句是。
A) A) int a[5]; B)int a[3];a={0,1,2,3,4}; forscanf;C) int a[3]={0,1,2,3};) int a[5];forscanf;二、填空题1、构成数组的各个元素必须具有相同的类型。
C语言中数组的下标必须是整正数、0或整型表达式。
如果一维数组的长度为n ,则数组下标的最小值为,最大值为。
2、在C语言中,一维数组的定义方式为:类型说说明符数组名。
3、已知数组b定义为int b[ ]={9,6,3};,则b的各元素的值分别是,最小下标是4、在C5、已知数组T为一有10T中的10个元素的值的语句为:for{int a[3]={3*0};int i;for scanf;for a[0]=a[0]+a[i];printf;}2、下面程序,请指出存在错误的行号1 1 main{int a[3];int i;scanf;for a[0]=a[0]+a[i];printf;}3、下面程序,请指出存在错误的行号1 1 main{int a[3];int i;for scanf;for a[0]=a[0]+a[i]);printf;C语言复习题}第2讲知识归纳:1、二维数组的定义:类型说明符数组名[ 常量表达式 1 ][常量表达式2] ;常量表达式1------可以形象理解为行数;常量表达式2-----可以形象理解为列数;二维数组中元素存放顺序是:先存放第一行的元素,再存放第二行的元素,依次类推;2、二维数组的引用:数组名[ 下标 ] [ 下标 ]//下标从0开始,可以是整型常量或整型表达式;注意:数组元素引用时,不要超出数组范围;如 int a[] [4] ;//可以引用的数组元素为a[0][0]……a[2][3] , a[3][4]不是本数组元素;可以在循环控制下,给二维数组各元素赋值;如:int a[3] [4];forfora [ i ] = i * j;3、二维数组的初始化:可以在定义数组后,立刻赋值;如 int a [3][4] = { 1,3,,7,9,11} ;但下面这样是错误的:int a[3][4] ;a = { 1,3,,7,9,11} ;可以给数组的部分元素赋值默认值为int 0, char, ??, float 0.0 ;基础练习一、选择题1、在C )。
)按行存放 B)按列存放C)由用户自己定义 D)由编译器决定2、以下对二维数组a的正确说明是。
A)int a[3][] B) float a ) double a[1][4] D) float a3、已知:int a[3][4];则对数组元素引用正确的是。
A)a[2][4] B)a[1,3] ) a[2][0] D) a4、已知:int a[3][4]={0};则下面正确的叙述是。
A)只有元素a[0][0]可得到初值0B)此说明语句是错误的C)数组a中的每个元素都可得到初值,但其值不一定为0 )数组a中的每个元素均可得到初值05、以下正确的语句是。
A)int a[1][4]={1,2,3,4,5}; B) float x[3][]={{1},{2},{3}};C) long b[2][3]={{1},{1,2},{1,2,3}}; ) double y[][3]={0};6、以下能对二维数组元素a进行正确初始化的语句是。
A)int a[2][]={{1,0,1},{5,2,3}}; ) int a[][3]={1,2,3},{4,5,6}};C) int a[2][4]={{1,2,3},{4,5},{6}};D) int a[][3]={{1,0,1},{},{1,1}};二、填空题C语言复习题下面的程序是求出数组a的两条对角线上的元素之和。
#include “stdio.h”main{ int a[3][3]={{1,3,6},{7,9,11},{14,15,17}},sum1=0,sum2=0 ,i,j;forforif sum1=sum1+a[i][j];forforifsum2=sum2+a[i][j];printf;}三、编程题1、在一个二维数组中形成并输出如下矩阵: 111 1 1main{ int a[5][5],i,j;printf;forforscanf;for{ forprintf;printf;}}2、有一个3*4main{ int a[3][4],i,j,max;forforscanf;max=a[0][0];forforif max=a[i][j];printf;}第3讲知识归纳:1、字符数组的定义与引用:类型说明符数组名[ 常量表达式 ] ;与一维数组、二维数组定义、引用相同,只是类型说明符固定为:char2、字符数组的初始化:逐字符赋值如 char c1 [10] = { ?W?,?e?,?l?,?c?,?o?,?m?,?e?} ;但下面这样是错误的:char c1 [10] ;C语言复习题c1 = { ?W?,?e?,?l?,?c?,?o?,?m?,?e?} ;字符串赋值和字符串结束标志如char c1[10 ] = “ Welcome ” ;但下面这样是错误的:char c1 [10] ;c1 = “ Welcome ” ;注意:系统会自动在字符串末尾加一个结束标志?\0? , 所以,定义字符数组时需要在字符个数基础上,多定义一个字节存储空间,存放结束标子;3、字符数组的输入输出:逐个字符输入输出。
用格式符%c 输入或输出一个字符;往往与循环结合使用;如: char c1[10] ;for scanf ;…….for printf;将整个字符串一次输入输出,用格式符%s ;如: char c1[10] ;scanf ; //数组名代表数组的首地址……printf;基础练习一、选择题1、要使字符数组str存放一个字符串”ABCDEFGH”,正确的定义语句是。
A) char str[8]={‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’};B) char str[8]=“ABCDEFGH”;C) char str[ ]={‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’} char str[ ]=“ABCDEFGH”;2、下面是对数组s。
A)C) char s[5]=““;、对两个数组a和bchar a[]=“ABCDEF”;char b[]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是。
A) a与b数组完全相同 B) a与b长度相同C) a和b中都存放字符串 ) a数组比b数组长度长4、下面程序的运行结果是。
char c[5]={‘a’,’b’,’\0’,’c’,’\0’};printf;A) ‘a’’b’ ) ab C) ab c D) 以上三个答案均有错误二、填空题1、字符数组是用来存放的数组。
字符数组中一个元素存放个字符。
2、在C语言中存放字符’A’需要占用个字节,存放字符串”A”需要占用个字节。
3、以下语句的输出结果是。
printf;三、程序填空1、下列程序最多从键盘上输入99个字符,遇到’\n’后则退出,遇到空格则换成字符’ # ‘,对其他字符依次原样送入数组c中。
#include “stdio.h”main{ int i;第七章数组一、选择题:1- A、A、D、C、C -10 B、D、D、B、A 11-15D、D、D、D、A 16-20 A、C、C、D、B1-C、D、C、C、D二、填空题:1、标识符、常量、符号常量、变量、m-1、n-1、字符数组5、数组名6、s[j++]=s[i]、C1!=C2&&C1= =′′三、阅读程序,写出结果1、 1,2,3,、2,3,、 f 、 -05、1 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 1四、编程题:1、#include#include#define N 10void main{int a[N],i,max,min,m,n,t; clrscr;forscanf;forprintf;printf;max=min=a[0];m=n=0;forif{max=a[i];}else if{min=a[i];n=i;}t=a[m];a[m]=a[n];a[n]=t;forprintf;}2、#include#include#define M 10#define Nvoid main{ float score[M][N],sum,i,j; clrscr;forforscanf;{sum=0;forsum+=score[i][j];score[i][N-1]=sum/;}printf;printf;for{forprintf;printf;}}3、#include#include#define M#define Nvoid main{int a[M][N],i,j,sum=0; forscanf;for{ forprintf;printf;}forforif sum+=a[i][j]; forfora[i][j]--;forfora[i][j]++;printf;for{ forprintf;printf;}printf;}4、#include#include#define M0void main{int i,n=0;long f[M]={1,1};clrscr;forf[i]=f[i-1]+f[i-2];for{printf;n++;if printf;}}5、#include#define M 10void main{static inta[M]={122,107,96,87,80,56,40,10,8,-20}; int x,low,mid,high,found;clrscr;low=0;high=M-1;found=0;printf;scanf;while{mid=/2;if{found=1;break;}else iflow=mid+1;elsehigh=mid-1;}ifprintf;elseprintf;}6、#include#include#includevoid main{char s[80];int i;clrscr;gets;for/2;i++)if-1-i]) break;if/2) printf; else printf;}7、#include#include#define M#define Nvoid main{int a[M][N],i,j,k,row,colum,flag=0;int max;clrscr;forforscanf;printf;for{forprintf;printf;}for{max=a[i][0]; row=i;colum=0;forif{ max=a[i][j]; row=i;colum=j;}forif break;if{ printf;flag=1;}}ifprintf;}8、#include#include#include#define M0#define N0void main{char str1[M],str2[N];int i,j;clrscr;gets;gets;for,j=0;str2[j]!=‘\0’;i++,j++) str1[i]=str2[j];str1[i]=‘\0’;puts;}9、#include#include#includevoid main{char str[80]=“\0”;数组复习题一.选择题1.若有以下定义语句:int a[]={1,2,3,4,5,6,7,8,9,10}; 则值为的表达式是:a) a[5] b) a[a[4]] c) a[a[3]] d) a[a[5]] 2.要求定义具有80个、char类型元素的一维数组,错误的定义语句是:a) #define N 0 b) int N=80;char s[N]; char s[N];c) #define N 0 d)char s[40+40]; char s[2*N];3.若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则对a数组元素正确的引用是:a) a[10] b) a[a[3]-5] c) a[a[9]] d)a[a[4]+4]4.若有以下定义语句:float a[11]={0,1,2,3,4,5,6,7,8,9,10}; 则以下叙述中错误的是:a) a数组在内存中占44个字节b) a数组的最后一个元素为a[10]c) a数组的第一个元素为a[0]d)以上定义语句给a数组所赋初值是整数,不能正确赋值5.若有以下定义语句:double a[5]; int i=0; 能正确给a数组元素输入数据的语句是:a) scanf;b) for scanf;c) while scanf;d)while scanf;6.以下关于数组的描述正确的是:a) 数组的大小是固定的,但可以有不同数据类型的数组元素 b) 数组的大小是可变的,但所有数组元素的数据类型须相同 c) 数组的大小是固定的,且所有数组元素的数据类型须相同 d) 数组的大小是可变的,且可以有不同数据类型的数组元素7.若有说明:int a[10];,则对a数组元素引用不正确的是:a) a[5+5]b) a[5.5] c) a[10-10]d)a[5]8.执行int a[ ][3]={1,2,3,4,5,6,7};语句后,a[1][0]的值是:a) 1b) c) d)49. 若有说明:int k[ ][4]={1,2,3,4,5,6,7,8,9,10,11};,则k数组的第一维长度是:a) b) c) 1 d) 无确定值10.若有以下程序:void main{ int k[9]={19,16,17,15,13,11,10,9}, i=1,s=0; whiles=s+k[i++];printf;}程序执行后的输出结果是:a) b) c) 101 d) 11011.若有以下程序:void main{ int m[ ][3]={1,3,2,4,5,7,6,8,9,10,11};int i,k=2;forprintf;}程序执行后的输出结果是:a) b) c) 10 11 d)12.若有以下程序:void main{ int a[3][4]={1,0,2,1,0,2,1,0,1,1,0,1}; int i,j,sum=0;forfor sum+=a[i][j];}程序执行后的输出结果是:a) 0b) c) d)13. 下面程序段的输出结果是。