【项目1-函数版星号图】
这一组的练习意在通过调用函数输出星号图,体会与理解函数的工作过程,并为其后编制自定义函数实现特定功能。
(1)补充完下面的程序,使程序输出星号下面的星号图:
#include <stdio.h>
void printstars(int m) //定义能输出一行m个星号的函数
{
int j;
for (j=1; j<=m; ++j)
printf("*");
}
int main( )
{
int n=6; //n代表要输出的行数
int i;
for(i=1; i<=n; ++i)
{
//请在下面写上调用printstars函数的语句,使程序输出右图
______________________;
printf("\n");
}
return 0;
}
[参考解答]
#include <stdio.h>
void printstars(int m) //定义能输出一行m个星号的函数
{
int j;
for (j=1; j<=m; ++j)
printf("*");
}
int main( )
{
int n=6; //n代表要输出的行数
int i;
for(i=1; i<=n; ++i)
{
//请在下面写上调用printstars函数的语句,使程序输出右图
printstars(2*i-1);
printf("\n");
}
return 0;
}
(2)根据main函数中对printchs函数的调用,以及printchs的功能要求,编写printchs函数,使下面的程序能输出星号图:
//调用函数printchs输出星号图
#include <stdio.h>
//在下面写printchs函数的定义,功能是输出一行若干个指定字符
int main( )
{
int n=6; //n代表要输出的行数
int i;
//通过在下面的循环里调用printchs函数,输出右面的图
for(i=1; i<=n; ++i)
{
printchs(n-i,' ');
printchs(2*i-1,'*') ;
printf("\n");
}
return 0;
}
[参考解答]
//调用函数printchs输出星号图
#include <stdio.h>
//在下面写printchs函数的定义,功能是输出一行若干个指定字符
void printchs(int n, char c)
{
int j;
for (j=1; j<=n; ++j)
printf("%c", c);
}
int main( )
{
int n=6; //n代表要输出的行数
int i;
//通过在下面的循环里调用printchs函数,输出右面的图
for(i=1; i<=n; ++i)
{
printchs(n-i,' ');
printchs(2*i-1,'*') ;
printf("\n");
}
return 0;
}
(3)在上面的程序中,只改动一处,输出下面的图形
[参考解答]
#include <stdio.h>
//在下面写printchs函数的定义,功能是输出一行若干个指定字符
void printchs(int n, char c)
{
int j;
for (j=1; j<=n; ++j)
printf("%c", c);
}
int main( )
{
int n=6; //n代表要输出的行数
int i;
for(i=1; i<=n; ++i)
{
printchs(n-i,' ');
printchs(2*i-1,'A'+i-1) ; //输出的符号,与i相关
printf("\n");
}
return 0;
}
(4)利用printchs函数,再实现以前写过的其他星号图,体会定义函数带来了的好处。
[参考解答(无)]