第 4 套
程序填空题:
给定程序中,函数 fun 的功能是:有 N×N 矩阵,将矩阵的外围元素顺时
针旋转。操作顺序是:首先将第一行元素的值存入临时数组 r,然后使第
一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时
数组中的元素成为最后一列。例如,若 N=3,有下列矩阵:计算结果
为:
#include
#define N 4
void fun(int (*t)[N])
{ int j ,r[N]?
for(j=0? j r[j]=t[0][j]? for(j=0? j /**********found**********/ t[0][Nj1]= t[j][__1__ ]? for(j=0? j t[j][0]=t[N1][ j]? /**********found**********/ for(j=N1? j>=0?__2__ ) t[N1][ N1j]= t[j][N1] ? for(j=N1? j>=0? j) /**********found**********/ t[j][N1]= r[__3__]? } main() {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j? printf("\nThe original array:\n")? for(i=0? i { for(j=0? j printf("%2d ",t[i][j])? printf("\n")? } fun(t)? printf("\nThe result is:\n")? for(i=0? i { for(j=0? j printf("%2d ",t[i][j])? printf("\n")? } } 第 7 套 程序填空题: 给定程序中,函数 fun 的功能是:对形参 ss 所指字符串数组中的M 个字 符串按长度由短到长进行排序。ss 所指字符串数组中共有 M 个字符串, 且串长<=N。 #include #include #define M 5 #define N 20 void fun(char (*ss)[N]) { int i,j,k,n[M]? char t[N]? for(i=0?i n[i]=strlen(ss[i])? for(i=0?i { k=i? /***********found********/ for(j=__1__?j /************found*************/ if(n[k]>n[j])__2___? if(k!=i) { strcpy(t,ss[i])? C 语言程序设计上机复习题 19 strcpy(ss[i],ss[k])? /**************found*************/ strcpy(ss[k],___3___)? n[k]=n[i]?} } } main() { char ss[M][N]={"shanghai", "guangzhou", "beijing", "tianjing", "cchongqing"}? int i? printf("The original strings are:\n")? for(i=0?i printf("%s\n",ss[i])? printf("\n")? fun(ss)? printf("The resultis:\n")? for(i=0?i printf("%s",ss[i])?} 第 10 套 程序填空题: 给定程序中,函数 fun 的功能是:将 N×N 的矩阵中元素的值按列右移 1 个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵: #include #define N 4 void fun(int (*t)[N]) { int i,j,x? /***************found************/ for(i=0?i<__1__?i++) { /*******************found***********/ x=t[i][__2__]? for(j=N1?j>= 1?j) t[i][j]=t[i][j1] ? /***************found**************/ t[i][__3__]=x?} } C 语言程序设计上机复习题 28 main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33, 10},i,j? printf("The original array:\n")?