当前位置:首页 > 中国海洋大学C语言程序2015春季学期上机题考试题及答案
8 9 10 11 12 13 14 15,输出:2 4 6 8 10 12 14 n=7 #include
int i,j=0;
for(i=0;i a[j]=*(a+i); j++; } a[j]=-1; return(j) } void main() {int x[15],i,n; for(i=0;i<15;i++) scanf(\ n=fun(x,15); for(i=0;x[i]!=-1;i++) printf(\ printf(\} 7.给定程序中,函数fun的功能是:有M×N二维数组,分别将每一行的最大值与本 行的最后一个数据(第N-1列数据)对调,其余数据保持不变。然后按每一行的最大值对二维数据各行降序排序。例如,有右侧数组数据: 11 52 43 4 25 22 求最大值并对调后:11 22 43 4 25 52 22 33 46 58 16 47 22 33 46 47 16 58 83 42 54 26 47 0 0 42 54 26 47 83 4 5 6 7 8 9 4 5 6 7 8 9 45 96 17 18 39 2 45 2 17 18 39 96 排序后最终输出: 45 2 17 18 39 96 0 42 54 26 47 83 22 33 46 47 16 58 11 22 43 4 25 52 4 5 6 7 8 9 #define N 6 #define M 5 5 #include int i,j,t,m,max,k; for(i=0;i<5;i++) { max=a[i][0];m=0; for(j=1;j<6;j++) { if(max max=a[i][j]; m=j; } } t=a[i][m]; a[i][m]=a[i][5]; a[i][5] =t; } for(k=0;k<4;k++) for(i=0;i<4-k;i++) if(a[i][5] {t=a[i][j];a[i][j]=a[i+1][j]; a[i+1][j]=t;} } void main() {int x[M][N]={{11,52,43,4,25,22},{22,33,46,58,16,47},{83,42,54,26,47,0}, {4,5,6,7,8,9},{45,96,17,18,39,2}},i,j; fun(x); for(i=0;i {for(j=0;j printf(\ printf(\ } } 8. 函数void fun(int x,char * p)实现十进制整数x到二进制的转换。转换后的二 进制数以字符串的方式放置于p所指向的数组中。如输入13,输出1101,输入-13,输出-1101。 #include \ 6 #include void fun(int x,char *p) { int i,k=x; char s[80]; for(i=0; ;i++) {if(x%2==0) s[i]='0'; else s[i]='1'; x/=2; if(x==0) break; } if(k<0) *(p+0)='-'; for( ;i>=0;i--,p++) if(k<0) *(p+1)=s[i]; else *p=s[i]; if(i==-1) {if(k<0) *(p+1)='\\0'; else *p='\\0'; } } void main() {int a; char c[18]; scanf(\ fun(a,c); printf(\} 9. 编写函数int fun(char (*ss)[N],int m,char *s),功能是:形参ss指向一个 m行N列的二维字符数组,每行存放一个字符串。求出最大的字符串,复制到s所指的字符数组中,然后返回此最大字符串的长度。 #define N 30 #include int fun(char (*ss)[N],int m,char *s) { int i; s=strcpy(s,*(ss+0)); for (i=0;i if(strcmp(*(ss+i),s)>0) 7 strcpy(s,*(ss+i)); return(strlen(s)); } void main() {char a[8][N],b[N]; int i,len; for(i=0;i<8;i++) gets(a[i]); len=fun(a,8,b); printf(\ } 10. 给定程序中,函数void fun(char *s)的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。 #include int i,j; char a[100]; for(i=0,j=0;*(s+i)!='\\0';i++,j++) {a[j]=*(s+i); if(*(s+i)>='0'&&*(s+i)<='9') {*(a+j+1)='*';j++;} } a[j]='\\0'; strcpy(s,a); } void main() {char str[80]; gets(str); fun(str); puts(str); } 11.给定程序中,函数void fun(char *s)的功能是:把形参s所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的长度大于等于2)。例:若输入:abcd123, 8
共分享92篇相关文档