46家公司程序题答案,均通过上机验证

时间:2023-01-20 03:11:55

1.完成下列程序
*

*.*.

*..*..*..

*...*...*...*...

*....*....*....*....*....

*.....*.....*.....*.....*.....*.....

*......*......*......*......*......*......*......

*.......*.......*.......*.......*.......*.......*.......*.......
#include <stdio.h> #define N 8 int main() {
int i;
int j;
int k; ---------------------------------------------------------
| | | | | | ---------------------------------------------------------

return 0;

解:

#include<stdio.h>

#define N 8

void main()

{

int i,j,k;

 

for(i=1;i<=N;i++)

{

for(j=0;j<i;j++)

{

printf("*");

for(k=1;k<i;k++)

printf(" ");

}

printf("\n");

for(j=0;j<i;j++)

{

printf(" ");

for(k=1;k<i;k++)

printf(".");

}

printf("\n");

}

}


2.完成程序,实现对数组的降序排序
#include <stdio.h> void sort( );
int main() {
int array[]={45,56,76,234,1,34,23,2,3}; //数字任//意给出
sort( ); return 0;
}
void sort( )
{
____________________________________
| | | | |-----------------------------------------------------| }


解:

冒泡升序,降序就是把判断条件改为小于号

#include<stdio.h>

 

void main()

{

int a[10]={0,5,2,8,9,1,6,7,3,4};

int i,j,t;

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

{

if(a[j]>a[j+1])

{

t=a[j+1];

a[j+1]=a[j];

a[j]=t;

}

}

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

 

}

3.波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他
方法,但要说明你选择的理由。

#include<stdio.h>

int f(int n)

{

if(n<1)

return -1;

if(n==1||n==2)

return 1;

return f(n-1)+f(n-2);

}

void main()

{

printf("%d",f(4));

 

}


4..写一个函数,将其中的\t都转换成4个空格。


void main()

{

 

int i=0;

int j;

int len;

char str[100]="abcd\thjkkl";

 

 

len=strlen(str);

printf("%d",len);

 

 

len=strlen(str);

  while(str[i]!='\0')

  {

  if(str[i]=='\t')

  {

  j=len+3;

  while(j>i+3){

 str[j]=str[j-3];

          j--;

  }

        len+=3;

          str[i]='*';

          str[i+1]='*';

          str[i+2]='*';

         str[i+3]='*';

  }

  i++;

  }

 

puts(str);

printf("%d",len);

}

5.把32位的unsigned int按位倒过来:

void main()

{

int i,n=0,m=1,t;ftgg;kl

unsigned int p;

p=1;

for(i=1;i<=32;i++)

{

t=p&m;

n=n|t;

    p=p>>1;

while(i!=32)

    n=n<<1;

 

}

printf("%u",n);

 

}