3.下面程序的功能是:用strcmp函数比较两个字符串,输出两个字符串中较大的。请填空完善程序。
# include char strl[20] =\"a beautiful girl\"; char str2[20] =\"a beautiful voice\"; if ( (1) ) printf(“%s”,strl,) ; else printf(“%s”, (2) ) ; printf(\"\\n\"); ) 4.下面程序的功能是:将从键盘输入的字符串中的大写字母转换为小写字母并输出该字符 串。请填空完善程序。 # include~stdio. h> # include char str[30]; int i; printf (“Please input str:”); gets(str); for(i=0;str[i]!=‟\\0‟ 7;i++) if(str[il>= 'A‟ && (l) <=‟Z‟) str[i] = str[il+ (2) ; printf (“output str:%s\n”,str); } 5.下面程序的功能是:找出二维数组中最大元素的值和最大元素所在的行号和列号。请填空完善裎序。 # include { int i,j,row, colum,max,a[3][4]={{1,2,3,4),{9,8,7,6),{-10,10, -5,2}}; max=a[0][0]; (1) colum=0; for(i=0;i<;i++) for(j=0;j<4;j++ ) if( (2) ) {max=a[i][j]; row=i: colum=j; } printf (”max=%d row=%d colum=%d\\n\ ) 6.下面程序的功能是:将3×4的二维数组中的第0列和最后一列元素的值相交换,第1列和第2列元素的值相交换。请填空完善程序。 # include int a[3][4]={{5,8,9,1),{4,2,6,7),{12,13,14,10}},i,j,k; for(i=0;i<3; (l)) for(j=0;j<4/2;j++) { K= (2) ; a[i][j]=a[i][3-j]; a[i][3-j]=k; } for(i=0;i<3;i++) { printf(“\\n”); for(j=0;j<4;j++) printf(\"%4d”, a[i][j]); } printf(“\\n”); } 7.下面程序的功能是:将一个二维数组行和列元素互换,存到另一个二维数组中。请填空完善程序。 # include {int a[2][3]={{1,2,3),{4,5,6)),b[3][2],i,j; printf(\"array a:\n”); for(i=0;i < (1) ;i++) {for(j=0;j<3;j++) { priritf(\"% 5d\(2) =a[i][j]; } printf(“\\n”); } printf(“array b:\n”); for(i=0;i<3;i++) {for(j=O;j<2;j++) printf(“%5d”, b[i][j]); printf(\"\\n\"); ) } 8.下面程序的功能是:从键盘输入一个数插入一个有序的一维数组,要求插入这个数后的数组也是有序的。请填空完善程序。 # include { inl a[11]={1,4,6,9,13,16,19,28,40,100}; int number, end, i,j; for(i=0;i for(i=0;i for(i=0;i 9.a数组和b数组中存放的是由小到大的有序数。下面程序的功能是:把两个数组中的数按由小到大的顺序合并到c数组中。请填空完善程序。 # include {int a[10]= {1,2,5,8,9,10} ,an=5,b[lo]= {1,3 , 4 ,8, 12,18} ,bn=5; int i,j,k, c[20] ,max=9999; a[an+l]= b[bn+l]=-max; while((a[i] ! =max) || (b[j] ! = max)) if(a[i]c[k]= (1) ; k++; i++; } else { c[k]=b[j]; k++; (2) ; } for(i=0;i 10.下面程序的功能是:统计一个字符串中的单词个数。请填空完善程序。 # include { int i, c, num= 0 , word = 0 ; char string[81] ; gets(string) ; for(i=o; (c=string[i]) !=‟\\0‟;i++) if(c==‟ „) (1) ; else if(word= =0) {word=l; (2) ;} printf(“there are %d words in the line\\n”,num) ; 11.下面程序的功能是:从输入的十个字符串中找出最长的那个串。请填空完善程序。 # include \"stdio. h\" # include \"string. h\" # define N 10 void main() { char str[Nl[811; char max[81]; int i: for(i=0;i int i,j,k,t,a[N]; for(i=o;i<=N-l;i++) scanf(”%d', &a[i]) ; for(i=o;i printf ( \"output the sorted array :\\ n\") ; for(i=0;i<=N-l;i++) printf(\"%5d\ printf (”\\n\") ; } 13.下面程序的功能是:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。 填空完善程序。 # include char str[80],ch; int i,k=o; gets( (1) ); ch=getchar() ; for(i=0;str[i] (2) ;i++); if(str[i]!=ch) { (3) ;k++;} (4) ; puts(str); } 14.下面程序的功能是:将一个数组中的元素按逆序存放。请填空完善程序。 # include static int a[Nl={12,9,16,5,7,2,1} ,k,s; printf(\"\\n the origanal array:\n\"); for(k=0;k (3) ; (l) } printf(”\n the changed array:\\n\") ; for(k=0;k 15.下面程序的功能是:产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。请填空完善程序。 # include int i,j,t,k; ( 1 ); for(i=o;i ( 2 ); For (j=i+1;j<10;j++) If( ( 3 ) )k=j; if(k!=i){t=a[k];a[k]=a[i];a[i]=t; } for ( (4) ) printf(“%5d”,a[i]); printf(”\\n”); 16.下面程序的功能是:将一个字符串中的前n个字符复制到一个字符组中去不允许使用 strcpy函数。请填空完善程序。 # include char strl[80],str2[80]; int i,n; gets( (1) ); scanf(“%d”,&n); /* * * * ********SPACE* * *******/ For(i=0;( (2) ) ;i++) /* * * * * * * * *SPACE**********/ { (3) ;} /* *********** SPACE************/ ( 4 ) ; printf(” % s\\n\3.3 程序改错 注意:不可以增加或删除程序行,也不可以更改程序的结构。 4.下面程序的功能是:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。请改正程序中的错误,使它能得出正确的结果。 # include int i, number,a[N]= {1,2,4,6,8,9,12, 15 ,149 ,156} ; printf(\"please enter an integer to insert in the array:\\n”) ; /* * * * * * * * FOUND* * * * * * * * * * * */ scanf(\"%d\ printf(\"The original array:\\n\") ; for(i=o;i if(number< =a[i]) a[i+1]=a[i]; else {a[i+ll=number; break;} if(number7.下面程序的功能是:计算并输出数组中所有正数的平均值。请改正程序中的错误,使1 得出正确的结果。 # include <.stdio. h> void main() { int sL]O]一{-50,10, 80, 90, -6,8,100, -70,8,9}; float sum-0.O; inr i.c=0; double aver; /********** FOUND**********/ for(i—O;i<一10;i++) { if(s[门>O) 1 、 sum+=s[i]; c++: ) ) /* -x,-x*******FOUND-x*********/ aver - sum*C; printf(n~6 f\\n/',aver); ) 8.下面程序的功能是:先从键盘上输入一·个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。请改正程序中的错误,使它能得出正确的结果。 # include”stdio.h” void main() { int a[3l[3] , sum; sum=0; for(i=0;i<3;i++) for(j=0j<3;j++) scanf(“%d”,&a[i][j]); for(i=0;i<3;i++) /********** FOUND**********/ sum=sum+a[i][j]; /********** FOUND**********/ printf(“sum=%f\\n”,sum); } 11.下面程序的功能是:从字符串中删除指定字符,字符串和指定字符都从键盘输入。请改正程序中的错误,使它能得出正确的结果。 # include char str[20],k; int i,j=0; printf(\"Please input str:”); gets(str); printf(\"Please input the deleted character:7‟); scanf(”%c”,&k); /********** FOUND**********/ for(i—O;str[i]!一70 7;i++) if(str[i]!=k) /********** FOUND**********/ str[j]一str[i~-+]; str[jl='\\0/; printf (uoutput str:%s\\nu, str); } 3.4 程序设计 1.从键盘给一维整型数组输入10个整数,找出数组中最小的数并输出。 2.从键盘给一维整型数组输入10个整数,求最小值所在的下标并输出。(如果最小值出多次,求出第一次出现的下标即可)。 3.从键盘给二维整型数组输入12个整数,找出数组中最大的数并输出。 4.找出数组a[10l={l,2.8,18,20,-50,34,90,2,12)中的最大的偶数,并输出。 5.输入一个字符串给字符数组slr[40],将字符串中的所有小写字母转换为对应的大写字母,其它字符不变。最后输出转换后的字符串。 6.从键盘给一维整型数组输入10个整数,求其中最大值和最小值的差。 7.对二维数a进行转置,即行列转换,并放在b数组中。 转置情况如下: 数组a: 数组b: 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 8.随意输入一个字符串给字符数组str[40],求该字符串中字母的个数并输出。 9.把数组中的元素按相反顺序存放。即a数组中的元素原来存放方式是:5 4 3 2 1,试编程把该数组中的元素存放成:l 2 3 4 5。 10.随意输入两个字符串给字符数组strl[40]和str2[40],将两个字符串连接起来放在数组strl中,并输出连接后的字符串。(不允许使用strcat函数)。 答案: 程序填空 3. (l)strcmp(strl,str2)>0 (2)str2 4.(1) str[i] (2)32 5. (l)row=0 (2)max8.(1)a[j] (2)number 9(1)a[i] (2)j++. 10. (l)word=0 (2)num++或++num或 num=num+l 11. (l) str[i] (2)strcpy(max,str[i])
因篇幅问题不能全部显示,请点此查看更多更全内容