第二章的总结与作业

这篇博客介绍了C程序的基本组成,包括头文件、main()函数、声明和语句。同时,展示了如何定义和调用自定义函数,以及void在函数声明中的作用。通过示例程序,解释了如何使用printf()函数进行输出,以及如何组织代码来实现特定的输出模式。此外,还探讨了函数的返回值和类型说明符的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C程序的组成

#define	_TEST1_H
#include <stdio.h>
int main(void)
{
	printf("baa baa black sheep.");//因为没有换行符,它将与下一行同行显示
	printf("have you any wool?\n");
	printf("begone!\nO creaturen of lard!\n");//换行符存在时可以这样书写
	printf("what?\nNo/nfish?\n");//换行符是\n,而不是/n
	int num;//声明原则上可以写在语句中的各个位置,但是写在开头对于阅读和计划都有利
	num = 2;
	printf("%d + %d = %d", num, num, num + num);//声明后的计算过程可以如此,
	//从而节省变量名。
	return 0;
}

在这样的一个简单的C程序中,它需要头文件函数名一个main()花括号以及花括号中的声明语句

自定义函数

#include <stdio.h>
void jolly(void);
void deny(void);

void jolly(void)
{
	printf("For he's a jolly good fellow!\n");
}
void deny(void)
{
	printf("Which nobody can deny!\n");
}
int main(void)
{
	jolly();
	jolly();
	jolly();
	deny();
	return 0;
}

当按上方形式书写时,将会输出
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!

#include <stdio.h>
void jolly(void);//提出自定义函数jolly()
void deny(void);//提出自定义函数deny()

void jolly(void)//定义函数jolly()
{
	printf("For he's a jolly good fellow!\n");
}
void deny(void)//定义函数deny()
{
	printf("Which nobody can deny!\n");
}
int main(void)
{
	void jolly();
	void jolly();
	void jolly();
	void deny();
	return 0;
}

但是在编写时时,我错误的给main()中的函数带上了void,然后编译并运行了程序,没有发生错误,我很好奇这是为什么于是对void进行了调查

void

中文翻译为“无类型”。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。——百度百科
void是“无类型指针”,可以指向任何类型的数据,用于注释限制程序
void的优点使得任何类型的指针都可以赋值给void,且不需要强制转换符
但是void赋值给其他指针时则需要强制转换符

如果函数没有返回值,那么应声明为void类型

如果函数无参数,那么应声明其参数为void。

返回值

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

这是调用函数,返回值作为计算结果将会反给它

类型说明符 被调函数名(类型 形参,类型 形参…)

经过以上内容可以明白void将原有的函数标记为“空”,其后的内容将会像注释一样不被运行。

第二章作业答案

第一题

1.编写一个程序,调用一次printf()函数,把你的名和姓打印在一行。再调用一次printf()函数,把你的名和姓分别打印在两行。然后,再调用两次printf()函数,把你的名和姓打印在一行。输出应如下所示(当然要把示例的内容换成你的名字):

Gustav Mahler //第1次打印的内容

Gustav //第2次打印的内容

Mahler //第3次打印的内容

Gustav Mahler //第4次打印的内容

#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("LiHua\n");
printf("address\n");
return 0;
}

第三题

3.编写一个程序把你的年龄转换成天数,并显示这两个值。这里不用考虑闰年的问题。

#include <stdio.h>
#define AGE 20
int main(void)
{   int day;
    day=AGE*365;
    printf("I am %d years old, it is equal to %d days\n",AGE,day);
	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>
void jolly(void);
void deny(void);
int main(void)
{	jolly();    /*调用函数时括号内不用加void*/ 
	jolly();
	jolly();
 	deny();
	return 0;
}
void jolly(void)
{
	printf("For he's a jolly good fellow!\n");
}
void deny(void)
{
	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);
void ic(void);
int main(void)
{	br();
	printf(", ");
	ic();
	printf("\n");
	ic();
	printf("\n");
	br();
	return 0;
}
void br(void)
{
	printf("Brazil,Russia");
}
void ic(void)
{
	printf("India,China");
}

第六题

6.编写一个程序,创建一个整型变量toes,并将toes设置为10.程序中还要计算toes的两倍和toes的平方。该程序应打印3个值,并分别描述以示区分。

#include <stdio.h>
int main(void)
{	int toes=10;
	printf("toes=%d\n",toes);
	printf("the twice of toes is %d\n",toes*2);
	printf("the square of toes is %d\n",toes*toes);
	return 0;
}

第七题

7.许多研究表明,微笑益处多多。编写一个程序,生成以下格式的输出:

Smile!Smile!Smile!

Smile!Smile!

Smile!

该程序要定义一个函数,该函数要被调用一次打印一次“Smile!”,根据程序的需要使用该函数。

//换行输出的另一种形式putchar(’\n’)

#include <stdio.h>
void sm(void);
int main(void)
{	sm(); sm(); sm();
    putchar('\n');
    sm(); sm();
    putchar('\n');
    sm();
	return 0;
}
void sm(void)
{
	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(void);
void two(void);
int main(void)
{	printf("starting now:\n");
	one_three();
	printf("done!\n");
	return 0;
}
void one_three(void)
{
	printf("one\n");
	two();
	printf("three\n");
}
void two(void)
{
	printf("two\n");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoRealScenery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值