数组 ·6·
38. 运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是( )。
A. 123,456,789 B. 1,456,789 C. 1,23,456,789 D. 1,23,456 main() {
char s[100]; int c, i;
scanf(\ printf(\ }
39. 运行下面的程序,如果从键盘上输入: ab<回车> c <回车> def<回车>
则输出结果为( )。
A. a B. a C. ab D. abcdef b b c c c d d d e f
#include
{
char c[N];
int i=0;
for( ;i printf(\ } 40. 运行下面的程序,如果从键盘上输入:ABC时,输出的结果是( )。 #include char ss[10]=\strcat(ss, \ gets(ss);printf(\ } A. ABC B. ABC9 C. 123456ABC D. ABC456789 41. 判断两个字符串是否相等,正确的表达方式是( )。 A. while(s1==s2) B. while(s1=s2) C. while(strcmp(s1,s2)==0) D. while(strcmp(s1,s2)=0) 42. 以下程序的输出结果是( )。 main() { 数组 ·7· char str[12]={ 's','t','r','i','n','g'}; printf(\ } A. 6 B. 7 C. 11 D. 12 43. 若有以下程序片段: char str[ ]=\printf(\ 上面程序片段的输出结果是 ( )。 A. 3 B. 4 C. 6 D. 12 44. 若有以下程序段,输出结果是( )。 char s[ ]=\printf (\ A. 9 B. 12 C. 13 D. 14 45. 设有static char str[ ]=\ 则执行printf(\后的输出结果为 ( )。 A. 5 B. 7 C. 12 D. 14 46. 以下程序运行后,输出结果是( )。 main() { char cf[3][5]={\printf(\} A. \B. \47. 以下程序运行后,输出的结果是( )。 #include char w[ ][10]={\ for (k=1;k<3;k++) printf(\} A. ABCD B. ABCD FGH EFG KL IJ M C. EFG D. FGH JK KL O 48. 以下程序运行后,输出结果是( )。 main() { char arr[2][4]; strcpy(arr,\ 数组 ·8· arr[0][3]='&'; printf(\ } A. you&me B. you C. me D. err 填空题 1. C语言中,数组元素的下标下限为 ________。 2. C程序在执行过程中,不检查数组下标是否________。 3. 在定义时对数组的每一个元素赋值叫数组的________;C语言规定,只有________存储类 型和________存储类型的数组才可定义时赋值。 4. 下面程序的运行结果是________。 #define N 5 main() { int a[N]={1,2,3,4,5},i,temp; for(i=0;i {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp;} printf(\ for(i=0;i 5. 以下程序以每一行输出4个数据的形式输出a数组。 #include int a[20],i; for(i=0;i<20;i++) scanf(\【1】); for(i=0;i<20;i++) {if ( 【2】 ) 【3】 ; printf(\} printf(\} 6. 以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个 数组中的数按由小到大的顺序归并到c数组中。 #include int a[10]={1,2,5,8,9,10}, an=5,b[10]={1,3,4,8,12,18},bn=5; int i,j,k,c[20],max=9999; a[an+1]=b[bn+1]=max; i=j=k=0; while((a[i]!=max)||(b[j]!=max)) if(a[i] 数组 ·9· else {c[k]= 【3】; k++; 【4】;} for(i=0;i } 7. 以下程序的功能是:从键盘上输入若干个学生的成绩,计算出平均成绩,并输出低于平 均分的学生成绩,用输入负数结束输入。请填空。 main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf(\:\\n\;scanf(\,&a); while(a>=0.0&& n<1000) { sum+=【1】 ; x[n]= 【2】 ; n++; scanf(\,&a); } ave=【3】 ; printf(\:\\n\; printf(\,ave); for (i=0;i if ( 【4】 ) printf (\ } 8. 以下程序把一个整数转换成二进制数,所得二进制数的每一位放在一维数组中,输出此 二进制数。注意:二进制数的最低位在数组的第一个元素中。 #include int b[16],x,k,r,i; printf(\printf(\k=-1; do {r=x% 【1】 ; b[++k]=r; x/= 【2】 ; } while(x>=1); for(i=k; 【3】 ;i--) printf(\} 9. 输入10个整数,用选择法排序后按从小到大的次序输出。 #define N 10 main( ) { int i,j,min,temp,a[N]; for(i=0;i scanf(\【1】); 数组 ·10· printf(\ for(i=0; 【2】; i++) {min=i; for(j=i;j if(a[min]>a[j]) 【3】 ; temp=a[i]; a[i]=a[min]; a[min]=temp; } for (i=0;i printf(\ printf(\} 10. 当先后输入1,3,4,12,23时,屏幕上出现________;再输入12时,屏幕上出现________。 #include int i,j,number,top,bott,min,loca,a[N],flag; char c; printf(\scanf(\while(i {scanf(\for(i=0;i { scanf(\if ((numbera[N-1])) loca=-1; while((loca==0)&&(top<=bott)) {min=(bott+top)/2; if(number==a[min]) {loca=min;printf(\else if (number if (loca==0||loca==-1) printf(\c=getchar(); if (c==’N’||c==’n’) flag=0; } } 11. 以下程序运行结果是 ________. #include