第7章 数组
- 格式:ppt
- 大小:305.50 KB
- 文档页数:17
第7章数组【练习7-1】将例7—3 程序中的break 语句去掉,输出结果有变化吗?假设输入数据不变,输出什么?解答:当去掉break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为x 的元素,因此程序输出会有变化。
当输入数据仍为2 9 8 1 9 时,输出将是index is 1 index is 4。
【练习7—2】将数组中的数逆序存放.输入一个正整数n(1<n<=10),再输入n个整数,存入数组a中,输出最大值及其对应的最小下标,下标从0开始.试编写相应程序。
解答:#include<stdio。
h〉int main(void){int i,n,temp;int a[10];printf("Input n:");scanf(”%d",&n);printf(”Input %d integer:",n);for(i=0;i<n;i++)scanf(”%d”,&a[i]);printf(”After reversed:");for(i=0;i〈n/2;i++){temp=a[i];a[i]=a[n—1—i];a[n-1—i]=temp;}for(i=0;i〈n;i++)printf("%d ”,a[i]);return 0;}【练习7-3】求最大值及其下标.输入一个正整数n(1〈n<=10),再输入n个整数,存入数组a中,将先数组a中的这n个数逆序存放,在按顺序输出数组a中的n各元素.试编写相应程序.解答:#include〈stdio.h>int main(void){int i,index,n;int a[10];printf("Enter n:”);scanf(”%d",&n);printf(”Enter %d integrs:”,n);for(i=0;i〈n;i++)scanf("%d",&a[i]);for(i=n—1;i〉=0;i++)printf("%d ”,a[i]);return 0;}【练习7-4】找出不是两个数组共有的元素。
A.int a[]="string";B.int a[5]={0,1,2,3,4,5};C.char a="string";D.char a[]={0,1,2,3,4,5};A.1DB.3C.9D.A. B.\"c:\\abc.dat\" C."c:\abc.dat" D."c:\\abc.dat"A. B.C. D.A. B.C. D.A. a[2][4]B. a[lC. a[l+l][0]D. a(2)(1) 确定A. a[0][2*1]B. a[l][3]C. a[4-2][0]D. a[0][4]A. 2B. 3C. 4D.A. 3 5 7B. 3 6 9C. 1 5 9 D 1 4 7A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+1 确定A. B.C. D.A.1DB.3C.9D.A. B.\"c:\\abc.dat\" C."c:\abc.dat" D."c:\\abc.dat"A. if(s1>s2)B. if(strcmp(s1,s2))C. if(strcmp(s2,s1)>O)D. if(strcmp(s1A. B.C. D.A. int a[3][ ];B. float a(3C. double a[1][4];D. float a(3)(4);A. a[2][4]B. a[lC. a[l+l][0]D. a(2)(1)A. 2B. 3C. 4D.A. 3 5 7B. 3 6 9C. 1 5 9 D 1 4 7A BC DA BC DA BC DA BC DA BD C整体赋值A BC DA BC DA BC DA BC DA BC DA BCD 值A B C DA B C DA B C DA B C DA) abcdefA) abcdA) abcdA) abcdef确定[C] 教师批改:36、给出以下定义:char x[ ]="abcdefg";char y[ ]={…a…,…b…,…c…,…d…,…e…,…f…,…g…};则正确的叙述为A)数组X和数组Y等价B)数组x和数组Y的长度相同C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度确定[C] 教师批改:37、设有static char str[ ]="Beijing";则执行printf("%d\n", strlen(strcpy(str,"China")));后的输出结果为A) 5 B) 7C) 12 D) 14确定[A] 教师批改:38、请选出以下程序段的输出结果#include<stdio.h>main(){ char sl[10], s2[10], s3[10], s4[10];scanf("%s%s",s1,s2); gets(s3); gets(s4);puts(s1); puts(s2); puts(s3); puts(s4);}输入数据如下:(此处<CR>代表回车符)aaaa bbbb<CR>A bbbbB bbbbC) aaaa bbbbD ccccA BC DA不可以直接用数组名对数组进行整体输入或输出BC数组元素的下标超出所定义的下标范围时,系统将给出DA BC DA B C DA B C DA B C DA BC DA B C D。
第7章数组17.以下能正确定义二维数组的是____。
A、int a[][3];B、int a[][3]={2*3};C、int a[][3]={};D、int a[2][3]={{1},{2},{3,4}};答案:B难易程度:初级章节:7.3.2 二维数组的定义21.s1和s2已正确定义并分别指向两个字符串。
若要求:当s1 所指串大于 s2所指串时,执行语句S;则以下选项中正确的是____。
A、if(s1>s2)S;B、if(strcmp(s1,s2))S);C、if(strcmp(s2,s1)>0)S;D、if(strcmp(s1,s2)>0)S;答案:D难易程度:初级章节:7.4 字符数组60.有以下程序main( ){ char a[]="abcdefg",b[10]="abcdefg";printf("%d %d\n",sizeof(a),sizeof(b));}执行后输出结果是____。
A、7 7B、8 8C、8 10D、10 10答案:C难易程度:初级章节:7.4字符数组64.有以下定义#include <stdio.h>char a[10],*b=a;不能给a数组输入字符串的语句是____。
A、gets(a)B、gets(a[0])C、gets(&a[0]);D、gets(b);答案:B难易程度:初级章节:7.5 字符数组73.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是____。
A、char s[10]="abcdefg";B、char t[]="abcdefg",*s=t;C、char s[10];s="abcdefg";D、char s[10];strcpy(s,"abcdefg");答案:C难易程度:初级章节:7.5 字符数组101.以下不能正确定义二维数组的选项是____。