内容发布更新时间 : 2024/12/23 16:39:42星期一 下面是文章的全部内容请认真阅读。
{
int a[6][6],t,i,j;
for(i=0; i<6;i++) for(j=0;j<6;j++)
;
for(i=0; i<6;i++){ t= ; for(j=0;j<6;j++)
a[i][j]= ; }
for(i=0; i<6;i++){ for(j=0;j<6;j++)
printf(\
; } }
解:① scanf(“%d”,&a[i][j]) ② a[i][i] ③ a[i][j]/t ④printf(“\\n”)或putchar(‘\\n’)
3.以下程序的功能是将字符串a中下标值为偶数的元素由小到大排序,其他元素不变。
#include
char a[81],t; int i,j,n;
gets(a);
for(n=0; ; n++); for(i=0; ;i+=2)
for(j=i+2;j t=a[i]; ; a[j]=t; } puts(a); } 解:① a[n]!= ‘\\0’ ② i 4.输入一个整数,输出它的二进制序列。 #include int a[32],x,i,m; int change(int x,int a[]); scanf(\ m=change(x,a); for(i=0;i printf(\ 45 } int change( ) { int n=0,t,k; do { a[n]=x%2; ; n++; }while(x!=0); for(k=0;k ; a[n-k-1]=t; } return n; } 解:① int x,int a[] ② x=x/2 ③ a[k]=a[n-k-1] 5.程序能够按以下形式输出一个杨辉三角形,请对函数yahuei在下划线处将程序补充完整。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 #include yahuei(int a[ ][N]) { int i, j; a[0][0]=1; for(i=0; i a[i][i]=1; } for( ; i void main() { int x[N][N],i,j; yahuei( ); for( i=0 ; i printf(\ printf(\ } } 解:① i=2 ② j 6. 统计在一个字符串中各元音字母(a、e、i、o、u)出现的次数。 #include 46 void main() { char s[80]; int i, ; printf(\ gets(s); for(i=0; ;i++) if( ) a[0]++; else if(s[i]=='e'||s[i]=='E') a[1]++; else if(s[i]=='i'||s[i]=='I') a[2]++; else if(s[i]=='o'||s[i]=='O') a[3]++; else if(s[i]=='u'||s[i]=='U') a[4]++; printf(\ for(i=0;i<5;i++) } 解:① a[5] ②s[i]!= '\\0' ③s[i]== 'a'|| s[i]== 'A' ④ printf(“]”,i) 五、编程题 1.在数组x的10个数中求平均值v,找出与v相差最小的数组元素。 解:#include #include { double x[10],v,d; int i; for(i=0,v=0;i<10;i++) { scanf(\ v+=x[i]; } v=v/10; d=x[0]; for(i=1;i<10;i++) if(fabs(d-v)>fabs(x[i]-v)) d=x[i]; printf(\平均值:%-8.2f,与平均值最近元素:%-8.2f\\n\} 2.输入n(n≤20)个数放在一维数组中,找出其中最小的数,将它与数组最前面的元素交换后输出这些数。 解:#include void main() 47 { int i,k,temp,n,a[20]; printf(\ scanf(\ for(i=0;i scanf(\ for(k=0,i=1;i temp=a[0];a[0]=a[k];a[k]=temp; for(i=0;i 3.输入一个字符串,统计其中数字字符出现的次数。 解:#include { char s[80]; int i,n=0; gets(s); for(i=0;s[i]!='\\0';i++) if(s[i]>='0'&&s[i]<='9') n++; printf(\中包含%d个字符\\n\ } 4.设有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。问在第20年时,共有多少头牛?分别输出从第1年至第20年每年的母牛数。 解:#include { int x[N+1]={1},i; // x[0]存放初始母牛头数,即1头母牛 // x[i]存放第i年的母牛头数,其中1≤i≤20 for(i=1;i { if(i<4) x[i]=x[i-1]+1; // 头3年,每年只增加1头母牛 else x[i]=x[i-1]+x[i-3]; // 从第4年开始 // 每年的母牛数=去年的头数+今年新生的 // 说明:3年前母牛的数量即为今年新生的小牛数 printf(\第%d年,有%d头母牛\\n\ } } 5.有n(n≤20)个数,已按从小到大顺序排列好,要求输入一个数,把它插到数列中,使数列仍有序,并输出新的数列。 解:#include void main() { int i,n,a[21],x; 48 printf(\≤20 :\ printf(\ for(i=0;i if(a[i]>x) a[i+1]=a[i]; else break; a[i+1]=x; for(i=0;i 6.求解约瑟夫问题。M个人围成一圈,分别为1到M号。从第一个人开始报数,数到n的人出圈。再由下一个人开始报数,数到n的人出圈,??直到最后一个人为止。输出依次出圈人的编号,M值预先选定,n值由键盘输入。例如,M=10,n=5,依次出圈的是:5,10,6,2,9,8,1,4,7,3 解:#include #define M 10 void main() { int n; int a[M],i,k,t; // t存放出圈的人数,k存放报数 printf(\输入n的值:\\n\ scanf(\ for(i=0;i while(t { printf(“ %d “,a[i]); t++; a[i]=0; // 该人出圈 } } i++; if(i==M) i=0; } } 7.输入n(n≤50)个职工的工资(单位为元,一元以下部分舍去),计算工资总额,计算给职工发放工资时,所需各种面额人民币的最小张数(分壹佰元、伍拾元、贰拾元、拾元、伍元、壹元6种)。 49