数组编程练习带答案.docx
《数组编程练习带答案.docx》由会员分享,可在线阅读,更多相关《数组编程练习带答案.docx(34页珍藏版)》请在冰豆网上搜索。
数组编程练习带答案
数组编程练习
1、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
解:
#include
#defineN10
intmain()
{
inta[N],i;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}2、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。求该数组的最大值、最小值、总和和平均值并输出。解:#include#include#defineN10intmain(){inta[N],i,max,min,sum;floatave;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");max=a[0];min=a[0];sum=0;for(i=0;i{sum=sum+a[i];if(a[i]>max){max=a[i];}if(a[i]{min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);return0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
a[i]=rand()%100;
}
printf("arraya:
\n");
for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}2、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。求该数组的最大值、最小值、总和和平均值并输出。解:#include#include#defineN10intmain(){inta[N],i,max,min,sum;floatave;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");max=a[0];min=a[0];sum=0;for(i=0;i{sum=sum+a[i];if(a[i]>max){max=a[i];}if(a[i]{min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);return0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("%4d",a[i]);
printf("\n");
return0;
2、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
求该数组的最大值、最小值、总和和平均值并输出。
inta[N],i,max,min,sum;
floatave;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");max=a[0];min=a[0];sum=0;for(i=0;i{sum=sum+a[i];if(a[i]>max){max=a[i];}if(a[i]{min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);return0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");max=a[0];min=a[0];sum=0;for(i=0;i{sum=sum+a[i];if(a[i]>max){max=a[i];}if(a[i]{min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);return0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
max=a[0];
min=a[0];
sum=0;
for(i=0;i{sum=sum+a[i];if(a[i]>max){max=a[i];}if(a[i]{min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);return0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
sum=sum+a[i];
if(a[i]>max)
max=a[i];
if(a[i]{min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);return0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
min=a[i];
ave=(float)sum/N;
printf("max=%d,min=%d,sum=%d,ave=%.2f\n",max,min,sum,ave);
3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
(冒泡法)
inta[N],i,j,t;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[j]>a[j+1])
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
printf("thesortedarraya:
for(i=0;iprintf("%4d",a[i]);printf("\n");return0;}另解:(选择法)#include#include#defineN10intmain(){inta[N],i,j,min_i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
另解:
(选择法)
inta[N],i,j,min_i,t;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{min_i=i;for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
min_i=i;
for(j=i+1;j{if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[j]{min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}另解:(比较法)#include#include#defineN10intmain(){inta[N],i,j,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
min_i=j;
t=a[i];
a[i]=a[min_i];
a[min_i]=t;
for(i=0;i<10;i++)
(比较法)
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=1;i{for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=i;j{if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[j]{t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("thesortedarraya:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。编程将逆序数组输出。解:#include#include#defineN10intmain(){inta[N],b[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
t=a[i-1];
a[i-1]=a[j];
a[j]=t;
4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
编程将逆序数组输出。
inta[N],b[N],i,t;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{b[i]=a[N-1-i];}printf("thenewarray:\n");for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
b[i]=a[N-1-i];
printf("thenewarray:
for(i=0;i{printf("%4d",b[i]);}printf("\n");return0;}另解:#include#include#defineN10intmain(){inta[N],i,t;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("%4d",b[i]);
inta[N],i,t;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("thenewarray:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
a[i]=a[N-1-i];
a[N-1-i]=t;
for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按照原来的规律将其插入并输出。#include#include#defineN10intmain(){inta[N+1],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
再输入一个数,按照原来的规律将其插入并输出。
inta[N+1],i,j,t,n;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputn:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("pleaseinputn:
scanf("%d",&n);
if(n>a[N-1])
a[N]=n;
else
for(i=0;i{if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("thesecondsortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[i]>n)
for(j=N;j>i;j--)
a[j]=a[j-1];
a[j]=n;
break;
printf("thesecondsortedarraya:
for(i=0;i{printf("%4d",a[i]);}printf("\n");return0;}6、用数组输出Fibonacci数列的前40项解:#include#defineN40intmain(){inti;intf[N]={1,1};for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
6、用数组输出Fibonacci数列的前40项
#defineN40
inti;
intf[N]={1,1};
for(i=2;i{f[i]=f[i-2]+f[i-1];}for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
f[i]=f[i-2]+f[i-1];
for(i=0;i{printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return0;}7、用筛选法求100以内的素数解:#include#include#defineN100intmain(){inta[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。解:#include#include#defineN15intmain(){inta[N],i,j,t,n;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("%12d",f[i]);
if((i+1)%5==0)
7、用筛选法求100以内的素数
#defineN100
inta[N+1],i,j,n=0;
for(i=1;i<=N;i++)
a[i]=i;
a[1]=0;
for(i=2;i<=N;i++)
for(j=2;j<=(int)sqrt(i);j++)
if(a[i]%j==0)
a[i]=0;
if(a[i]!
=0)
n++;
if(n%10==0)
8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。
#defineN15
inta[N],i,j,t,n;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("pleaseinputntolookfor:
if(na[N-1])
printf("notfound.\n");
for(i=0;iif(a[i]==n){printf("hasfound,itspositionis%d.\n",i);break;}if(i==N)printf("notfound.\n");}return0;}另解:#include#include#defineN15intmain(){inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[i]==n)
printf("hasfound,itspositionis%d.\n",i);
if(i==N)
inta[N],i,j,t,n,low=0,high=N-1,mid,flag=1;
for(i=0;i{a[i]=rand()%100;}printf("arraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=1;i{for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("thesortedarraya:\n");for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{printf("%4d",a[i]);}printf("\n");printf("pleaseinputntolookfor:\n");scanf("%d",&n);if(na[N-1]){printf("notfound.\n");}else{do{mid=(low+high)/2;if(a[mid]==n){printf("hasfound,itspositionis%d.\n",mid);flag=0;}elseif(a[mid]>n){high=mid-1;}else{low=mid+1;}}while(flag&&high>=low);}if(low>high){printf("notfound.\n");}return0;}9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。解:#include#include#defineM3#defineN4intmain(){inta[M][N],b[N][M],i,j;for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
do
mid=(low+high)/2;
if(a[mid]==n)
printf("hasfound,itspositionis%d.\n",mid);
flag=0;
elseif(a[mid]>n)
high=mid-1;
low=mid+1;
}while(flag&&high>=low);
if(low>high)
9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。
#defineM3
#defineN4
inta[M][N],b[N][M],i,j;
for(i=0;i{for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{a[i][j]=rand()%100;}}printf("arraya:\n");for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
a[i][j]=rand()%100;
for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("%4d",a[i][j]);
for(i=0;i{for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{b[j][i]=a[i][j];}}printf("arrayb:\n");for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
b[j][i]=a[i][j];
printf("arrayb:
for(i=0;i{for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{printf("%4d",b[i][j]);}printf("\n");}return0;}10、编程输出杨辉三角(要求输出10行)解:#include#defineN10intmain(){inta[N][N],i,j;for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
printf("%4d",b[i][j]);
10、编程输出杨辉三角(要求输出10行)
inta[N][N],i,j;
for(i=0;i{a[i][0]=1;a[i][i]=1;}for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
a[i][0]=1;
a[i][i]=1;
for(i=2;i{for(j=1;j{a[i][j]=a[i-1][j-1]+a[i-1][j];}}printf("yanghuitriangle:\n");for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("yanghuitriangle:
for(i=0;i{for(j=0;j<=i;j++){printf("%6d",a[i][j]);}printf("\n");}return0;}11、编程输入5阶魔方阵。解:#include#defineN5intmain(){inti,j,k,a[N][N]={0};i=0;j=N/2;a[i][j]=1; for(k=2;k<=N*N;k++){i=i-1;j=j+1;if(i==-1){if(j==N){i=i+2;j=j-1;}else{i=N-1;}}if(j==N){j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}printf("%dmagicsquare:\n",N);for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j<=i;j++)
printf("%6d",a[i][j]);
11、编程输入5阶魔方阵。
#defineN5
inti,j,k,a[N][N]={0};
i=0;
j=N/2;
a[i][j]=1;
for(k=2;k<=N*N;k++)
i=i-1;
j=j+1;
if(i==-1)
if(j==N)
i=i+2;
j=j-1;
i=N-1;
j=0;
if(a[i][j]==0)
a[i][j]=k;
printf("%dmagicsquare:
\n",N);
for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}return0;}12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。解:#include#defineM4#defineN5intmain(){inti,j,k,max,maxj,flag;inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
#defineM4
inti,j,k,max,maxj,flag;
inta[M][N]={{1,2,3,4,5,},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};
for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(j=0;j{printf("%4d",a[i][j]);}printf("\n");}for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
for(i=0;i{max=a[i][0];maxj=0;for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
max=a[i][0];
maxj=0;
for(j=0;j{if(a[i][j]>max){max=a[i][j];maxj=j;}}flag=1;for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[i][j]>max)
max=a[i][j];
maxj=j;
flag=1;
for(k=0;k{if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(a[k][maxj]{flag=0;}}if(flag){printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);break;}}if(!flag){printf("nosaddlepoint.\n");}return0;}13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。解:#include#defineN100intmain(){inti,upp,low,dig,spa,oth;charc[N];upp=0;low=0;dig=0;spa=0;oth=0;printf("pleaseinputalinecharacters:\n");gets(c);for(i=0;c[i]!='\0';i++){if(c[i]>='A'&&c[i]<='Z'){upp++;}elseif(c[i]>='a'&&c[i]<='z'){low++;}elseif(c[i]>='0'&&c[i]<='9'){dig++;}elseif(c[i]==''){spa++;}else{oth++;}}printf("uppercase:%2d\n",upp);printf("lowercase:%2d\n",low);printf("digit:%2d\n",dig);printf("space:%2d\n",spa);printf("other:%2d\n",oth);return0;}14、有一行电文,按照下列规律译成密码:AZazBYbyCXcx……非字母不变。解:#include#defineN100intmain(){inti;charc1[N],c2[N];printf("pleaseinputamessage:\n");gets(c1);for(i=0;c1[i]!='\0';i++){if(c1[i]>='A'&&c1[i]<='Z'){c2[i]=155-c1[i];}elseif(c1[i]>='a'&&c1[i]<='z'){c2[i]=219-c1[i];}else{c2[i]=c1[i];}}c2[i]='\0';printf("ciphercode:\n
if(flag)
printf("saddlepointisa[%d][%d]=%d\n",i,maxj,max);
if(!
flag)
printf("nosaddlepoint.\n");
13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。
inti,upp,low,dig,spa,oth;
charc[N];
upp=0;
low=0;
dig=0;
spa=0;
oth=0;
printf("pleaseinputalinecharacters:
gets(c);
for(i=0;c[i]!
='\0';i++)
if(c[i]>='A'&&c[i]<='Z')
upp++;
elseif(c[i]>='a'&&c[i]<='z')
low++;
elseif(c[i]>='0'&&c[i]<='9')
dig++;
elseif(c[i]=='')
spa++;
oth++;
printf("uppercase:
%2d\n",upp);
printf("lowercase:
%2d\n",low);
printf("digit:
%2d\n",dig);
printf("space:
%2d\n",spa);
printf("other:
%2d\n",oth);
14、有一行电文,按照下列规律译成密码:
AZaz
BYby
CXcx
……
非字母不变。
charc1[N],c2[N];
printf("pleaseinputamessage:
gets(c1);
for(i=0;c1[i]!
if(c1[i]>='A'&&c1[i]<='Z')
c2[i]=155-c1[i];
elseif(c1[i]>='a'&&c1[i]<='z')
c2[i]=219-c1[i];
c2[i]=c1[i];
c2[i]='\0';
printf("ciphercode:
\n
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1