第27题 (30.0分) 题号:656
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
题目:找出矩阵x前n行中的最大整数,用该整数所生产的降序数 将其替换。降序数是指该数的高位数字的值不小于低位数 字的值。例如,若矩阵中的最大整数是1024,则用4210替 换1024。
例如,矩阵x 为: 456 44 674 789 324 1024 213 345 537
则替换后的矩阵为: 456 44 674 789 324 4210 213 345 537
--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。
-------------------------------------------------------*/
#include
void matrix_change(int x[][3],int n);
int a[3][3]={456,44,674,789,324,1024,213,345,537},i,j; printf(\ matrix_change(a,2); for(i=0;i<3;i++) {
for(j=0;j<3;j++) printf(\ printf(\ } }
void matrix_change(int x[][3],int n) {
int i,j,k,t[5]={0},max,maxi,maxj,v; max=x[0][0];maxi=maxj=0; for(i=0;i if(x[i][j]>max) {max=x[i][j];maxi=i;maxj=j;} k=0; while(max>0) /*******************SPACE*******************/ { t[【?】]=max;max=max/10; } for(i=0;i /*******************SPACE*******************/ for(j=0; j<【?】;j++) if(t[j] 2). k-i-1 或 k-1-i 第28题 (30.0分) 题号:7 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从键盘上输入一个字符串, 将该字符串升序排列后输出到 文件test.txt中,然后从该文件读出字符串并显示出来。 -------------------------------------------------------*/ #include FILE *fp; char t,str[100],str1[100]; int n,i,j; if((fp=fopen(\ { printf(\ exit(0); } printf(\ /***********SPACE***********/ 【?】; /***********SPACE***********/ for(i=0; 【?】 ;i++) for(j=0;j /***********SPACE***********/ if(【?】) { t=str[j]; str[j]=str[j+1]; str[j+1]=t; } /***********SPACE***********/ 【?】; fclose(fp); fp=fopen(\ fgets(str1,100,fp); printf(\ fclose(fp); } 答案: 1). n=strlen(str) 或 for(n=0;str[n]!='\\0';n++) 或 for(n=0;str[n];n++) 或 for(n=0;str[n]!=0;n++) 2). i 3). str[j]>str[ j + 1 ] 或 str[ j + 1 ] 4). fputs(str,fp) 或 fprintf(fp,\或 fprintf(fp,\ 第29题 (30.0分) 题号:92 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将s所指字符串的正序和反序进行连接,形成一个新串放在t 所指的数组中。 例如:当s串为\时,则t串的内容应为\。 -------------------------------------------------------*/ #include void fun (char *s, char *t) { int i, d; /***********SPACE***********/ d = 【?】; /***********SPACE***********/ for (i = 0; i for (i = 0; i /***********SPACE***********/ t[【?】] = s[d-1-i]; /***********SPACE***********/ t[【?】] ='\\0'; } main() { char s[100], t[100]; clrscr(); printf(\ fun(s, t); printf(\} 答案: 1). strlen(s) 2). i++ 或 i=i+1 或 i+=1 或 ++i 3). d+i 或 i+d 4). 2*d 或 d*2 或 i+d 或 d+i 第30题 (30.0分) 题号:406 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从键盘输入一个字符串,将小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存。输入的字符串 以!结束。 -------------------------------------------------------*/ #include \#include main() { FILE *fp; char str[100]; int i=0; /***********SPACE***********/ if((fp=fopen(\【?】))==NULL) { printf(\ exit(0); } printf(\ /***********SPACE***********/ gets(【?】); while(str[i]!='!') /***********SPACE***********/ { if(str[i]>='a'&&【?】) str[i]=str[i]-32; fputc(str[i],fp); i++; } /***********SPACE***********/ fclose(【?】); fp=fopen(\ fgets(str,strlen(str)+1,fp); printf(\ fclose(fp); } 答案: 1). \ 2). str 3). str[i]<='z' 或 'z'>=str[i] 4). fp 第31题 (30.0分) 题号:408 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入两个整数,求他们的按位与。