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