安徽大学_C语言平时作业 下载本文

{char a[20],b[20]; int i,j; gets(a); gets(b);

for(i=0;a[i]!='\\0';i++);

for(j=0;b[j]!='\\0'&&j<5;j++)

a[i+j]=b[j]; a[i+j]='\\0'; puts(a); }

6. 定义两个N行N列的二维数组a、b,编写程序,将a数组最后一行放到b数组的第0列中,把a数组中的第0行放到b数组的最后一列中,b所指二维数组中其他元素的数据不变。

#include main()

{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(\}

printf(\

for(i=0;i<3;i++){for(j=0;j<3;j++)printf(\

printf(\}

}

7. 一个整型数组有10个元素,编写程序删除所有值为n的元素。要求①主函数完成n的输入,数组元素的输入以及进行删除后数组元素的输出。②子函数完成删除功能。(此题为选做)

#include main()

{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;

}

printf(\删除后数组的输出:\\n\for(i=0;i<10-k;i++) printf(\ \printf(\}

8. 试编程实现如下功能:先定义一个4行5列的数组(矩阵),调用库函数rand()随机产生20-50之间的整数给数组元素赋值,再将矩阵中第二列与第四列的元素互换。要求先输出原数组,再输出交换后的数组。(rand函数的使用请参阅教材259页)(此题为选做)

#include #include #include main()

{int a[4][5],i,j,t;

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\

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 main()

{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; }

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 main()

{char a[20]; int i;

printf(\请输入一个字符串:\gets(a);

for(i=0;a[i]!='\\0';i++)

if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') if(i%2==1)

switch(a[i])

{case 'a':a[i]='z'; break; case 'A':a[i]='Z'; break; default:a[i]=a[i]-1; }

else switch(a[i])

{case 'z':a[i]='a'; break; case 'Z':a[i]='A'; break; default:a[i]=a[i]+1; } puts(a); printf(\}

11. 编写程序:输入一个整数,输出该整数的平方螺旋矩阵。例如输入4,则输出:

1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 (此题为选做)

#include main()

{int i,j,m,n=1,a[10][10];

printf(\请输入一个小于10的整数:\ scanf(\

for(i=0;i<=m/2;i++) /*共旋转m/2圈*/

{for(j=i;j

for(j=i+1;ji;j--) a[m-i-1][j]=n++; for(j=m-i-1;j>i;j--) a[j][i]=n++; }

for(i=0;i

{printf(\ for(j=0;j

实验十

1. 编写字符串拷贝程序,并要求将字符串中的小写字母转换成大写字母。 #include #include main()

{char a[80],b[80]; int i,l;

printf(\输入一个字符串:\gets(a);

for(i=0;a[i]!=?\\0?;i++) {b[i]=a[i];

if(b[i]>=?a?&&b[i]<=?z?)b[i]=toupper(b[i]); } puts(b); }

2、输入一个以回车结束的字符串(少于80个字符),将该字符串逆序后输出。 #include #include

main()

{char c[80],ch; int i,l; gets(c); l=strlen(c);

for(i=0;i

c[i]=c[l-i-1]; c[l-i-1]=ch; } puts(c); }

3、输入一个以回车结束的字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数,然后再输出该字符串。

#include main()

{char c[80],ch; int i,num=0; gets(c);

ch=getchar();

for(i=0;c[i]!=‘\\0’;i++) if(c[i]==ch)num++;

printf(“num(%c)=%d\\n”,ch,num); puts(c); }

4. 编写程序:输入一行英文字符串,统计单词的个数(单词和单词以空格分隔)。(此题为选做)

#include main()

{char c[50]; int j=0,k,n=0;

printf(\输入一个字符串:\gets(c);

while(c[j]==' ') j++;

if(c[j]!='\\0') {n++;j++;} for(k=j;k<50;k++)

{if(c[k]==' '&& c[k+1]!=' '&& c[k+1]!='\\0')n++; if(c[k]=='\\0')

break; }

printf(\}