注:以下代码仅供参考,该博客为个人自学C语言的学习记录。如有代码或其他错误的地方请各位大佬批评指正。
下列有涉及到函数的代码需要注意定义函数的位置:
在主函数(main)后面定义的函数,必须要在主函数前面声明函数,不然会报下图所示错误:
但是如果在主函数前面定义函数,则可以不用声明函数:
1.编写一个程序,调用一次 printf()函数,把你的姓名打印在一行。再调用一次
printf()函数,把你的姓名分别打印在两行。然后,再调用两次printf()函数,把你的姓名打
印在一行。输出应如下所示(当然要把示例的内容换成你的姓名):
//引入头文件
#include <stdio.h>
//主函数
int main(void) {
printf("Gustav Mahler\n");
printf("Gustav\nMahler\n");
printf("Gustav ");
printf("Mahler");
return 0;
}
2.编写一个程序,打印你的姓名和地址。
#include <stdio.h>
//参考了网上有各种版本,以下是根据自己理解所写的,仅供参考
int main() {
printf("My name is %s,and I live in %s.\n", "Anna", "China");
return 0;
}
3.编写一个程序把你的年龄转换成天数,并显示这两个值。这里不用考虑闰年的问题。
#include <stdio.h>
int main() {
int age = 13;
int days = age * 365;
printf("I am %d years old,and there are %d days.\n",age,days);
return 0;
}
4.编写一个程序,生成以下输出:
For he's a jolly good fellow!
For he's a jolly good fellow!
For he's a jolly good fellow!
Which nobody can deny!
除了 main()函数以外,该程序还要调用两个自定义函数:一个名为 jolly(),用于打印前 3 条消息,调用一次打印一条;另一个函数名为deny(),打印最后一条消息。
#include <stdio.h>
//声明函数,一般在主函数外面声明函数,但是在主函数里面声明函数也不会报错
//在C语言中定义函数一定要声明函数!!!不然会报错
void jolly();
void deny();
//主函数
int main() {
//调用方法
jolly();
jolly();
jolly();
deny();
return 0;
}
//括号内要void吗?不是必须有返回值,如果没有返回值类型名为"void"
//用于打印前三条信息
void jolly() {
printf("For he's a jolly good fellow!\n");
}
//用于打印最后一条信息
void deny() {
printf("Which nobody can deny!\n");
}
5.编写一个程序,生成以下输出:
Brazil, Russia, India, China
India, China,
Brazil, Russia
除了main()以外,该程序还要调用两个自定义函数:一个名为br(),调用一次打印一次“Brazil, Russia”;另一个名为ic(),调用一次打印一次“India, China”。其他内容在main()函数中完成。
#include <stdio.h>
//声明函数
void br();
void ic();
//方法不唯一,也可以在自定义的函数内打印语句不换行(不加"\n")
//调用方法之后添加换行语句(printf("\n"))
int main() {
printf("Brazil,Russia,India,China\n");
ic();
br();
return 0;
}
//定义函数
void br() {
printf("Brazil,Russia\n");
}
//定义函数
void ic() {
printf("India,China,\n");
}
6.编写一个程序,创建一个整型变量toes,并将toes设置为10。程序中还要计算toes的两倍和toes的平方。该程序应打印3个值,并分别描述以示区分。
#include <stdio.h>
int main() {
//定义toes变量并赋值
int toes = 10;
//toes的两倍
int toesTwo = toes * 2;
//toes的平方
int toesSq = toes * toes;
printf("toes的值为%d。\n",toes);
printf("toes值的两倍为%d。\n", toesTwo);
printf("toes值的平方为%d。\n", toesSq);
return 0;
}
7.许多研究表明,微笑益处多多。编写一个程序,生成以下格式的输出:
Smile!Smile!Smile!
Smile!Smile!
Smile!
该程序要定义一个函数,该函数被调用一次打印一次“Smile!”,根据程序的需要使用该函数。
注:该方法不唯一,每个人的思路不一样,仅供参考。
#include <stdio.h>
//看见这个题目我的思路首先是通过打印倒三角的方式来打印Smile
//声明自定义的函数printSmile()
void printSmile();
//主函数
int main() {
//定义变量i,j
int i, j;
//for循环打印倒三角
for (i = 3; i >= 0; i--){
for (j = 0; j < i; j++) {
printSmile();
}
printf("\n");
}
return 0;
}
//定义打印Smile的函数
void printSmile() {
printf("Smile!");
}
个人认为还可以改进一下,通过输入的值自己选择打印多少"Smile",以下是升级版:
//必须要加,因为有scanf()不安全函数,不然会报错,而导致无法编译通过。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//声明自定义的函数printSmile()
void printSmile();
//主函数
int main() {
//num是指输入的值
int i, j, num;
scanf("%d", &num);
for (i = num; i >= 0; i--){
for (j = 0; j < i; j++) {
printSmile();
}
printf("\n");
}
return 0;
}
//定义打印Smile的函数
void printSmile() {
printf("Smile!");
}
8.在C语言中,函数可以调用另一个函数。编写一个程序,调用一个名为one_three()
的函数。该函数在一行打印单词“one”,再调用第2个函数two(),然后在另一行打印单
词“three”。two()函数在一行显示单词“two”。main()函数在调用 one_three()函数前要打印短
语“starting now:”,并在调用完毕后显示短语“done!”。因此,该程序的输出应如下所示:
starting now:
one
two
three
done!
#include <stdio.h>
//声明自定义的函数
void one_three();
//主函数
int main() {
printf("starting now:\n");
//调用函数
one_three();
printf("done!\n");
return 0;
}
//定义函数,在C语言中定义函数一定要声明函数
void one_three() {
printf("one\n");
printf("two\n");
printf("three\n");
}