36
6. 定义两个N行N列的二维数组a、b,编写程序,将a数组最后一行放到b数组的第0列中,把a数组中的第0行放到b数组的最后一列中,b所指二维数组中其他元素的数据不变。
#include
{int i,j ,a[3][3]={1,2,3,4,5,6,7,8,9}; int b[3][3]={11,12,13,14,15,16,17,18,19}; printf(\变换前数组a,b:\\n\
for(i=0;i<3;i++){for(j=0;j<3;j++)printf(\ printf(\
}
printf(\
for(i=0;i<3;i++){for(j=0;j<3;j++)printf(\ printf(\
}
for(i=0;i<3;i++) {b[i][0]=a[2][i]; b[i][2]=a[0][i]; }
printf(\变换后数组a,b:\\n\
for(i=0;i<3;i++){for(j=0;j<3;j++)printf(\
printf(\
37
}
printf(\
for(i=0;i<3;i++){for(j=0;j<3;j++)printf(\
printf(\}
}
7. 一个整型数组有10个元素,编写程序删除所有值为n的元素。要求①主函数完成n的输入,数组元素的输入以及进行删除后数组元素的输出。②子函数完成删除功能。(此题为选做)
#include
{int a[10],i,n,k=0,j;
printf(\请输入10个整数:\\n\for(i=0;i<10;i++) scanf(\
printf(\请输入1个要被删除的整数:\\n\scanf(\for(i=0;i<10;i++)
if(a[i]==n){for(j=i;j<9;j++)
a[j]=a[j+1];
i--;k++;continue;
}
38
printf(\删除后数组的输出:\\n\for(i=0;i<10-k;i++) printf(\ \printf(\}
8. 试编程实现如下功能:先定义一个4行5列的数组(矩阵),调用库函数rand()随机产生20-50之间的整数给数组元素赋值,再将矩阵中第二列与第四列的元素互换。要求先输出原数组,再输出交换后的数组。(rand函数的使用请参阅教材259页)(此题为选做)
#include
srand( (unsigned)time(NULL)); printf(\变换前数组a:\\n\for(i=0;i<4;i++) {for(j=0;j<5;j++)
{a[i][j]= rand()0+21;printf(\printf(\}
printf(\变换后数组a:\\n\
39
for(i=0;i<4;i++){t=a[i][1];a[i][1]=a[i][3];a[i][3]=t;} for(i=0;i<4;i++) {for(j=0;j<5;j++) printf(\printf(\} }
9. 已知一组整型数据已按从小到大排列好,现任意输入一个整数,请按原来排序的规律将它插入到数组中(例如:原来的一组整数为1,3,5,8,9,若输入的整数是7,则最终的结果为: 1,3,5,7,8,9)。(此题为选做)
#include
{int a[10]={1,3,5,7,9,11,13,15,17},i,j,n; printf(\请输入1个整数:\scanf(\for(i=0;i<9;i++) if(a[i]>n)
{for(j=9;j>i;j--)a[j]=a[j-1]; a[i]=n; break; }
40
if(n>=a[8])a[9]=n; for(i=0;i<10;i++) printf(\ \printf(\}
10. 编写程序实现对字符串的加密,要求从键盘输入一个字符串,输出加密之后的字符串。
加密规则为:对于串中第奇数个字符,若是字母,则把该字母变为它后面的字母(若为Z则变为A),不是字母则不变;对于偶数个字符,若是字母,则把该字母变为它前面的字母(若为A则变为Z),不是字母则不变;大小写字母都遵循此规则。例如: 若原字符串是:AbbaZG Ha-MnnK Yzx 加密字符串为:BaczAF Gb-NmoJ Xaw (此题为选做)
#include
printf(\请输入一个字符串:\gets(a);
for(i=0;a[i]!='\\0';i++)
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')

