您的位置:首页 > 编程语言 > C语言/C++

C语言经典习题100例(九)41-45

2020-06-25 04:25 405 查看

文章目录

毕业季、期末已至,不用为论文查重烦恼,让我带你白嫖查重

习题41

学习static定义静态变量的用法。

实现思路:
用static声明和未用static声明变量进行对比,即可得出static的作用。

代码如下:

#include <stdio.h>

int main(){
void func();
int i;
for(i = 0;i < 10; i++){
func();
}

return 0;
}

void func(){
int i = 0;
static int num = 0;
printf("In func:i = %d, num = %d\n", i, num);
i++;
num++;
}

打印:

In func:i = 0, num = 0
In func:i = 0, num = 1
In func:i = 0, num = 2
In func:i = 0, num = 3
In func:i = 0, num = 4
In func:i = 0, num = 5
In func:i = 0, num = 6
In func:i = 0, num = 7
In func:i = 0, num = 8
In func:i = 0, num = 9

习题42

学习使用定义自动变量的用法。

实现思路:
自动变量用auto关键字声明,函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量)都属于自动变量,默认不用关键字修饰即为自动变量,可进行对比分析。

代码如下:

#include <stdio.h>

int main(){
int i, m = 0, n = 0;
for(i = 0;i < 10; i++){
printf("In main: m = %d, n = %d. ", m, n);
{
auto int n = 10;
printf("In block: m = %d, n = %d\n", m, n);
}
m++;
n++;
}

return 0;
}

打印:

In main: m = 0, n = 0. In block: m = 0, n = 10
In main: m = 1, n = 1. In block: m = 1, n = 10
In main: m = 2, n = 2. In block: m = 2, n = 10
In main: m = 3, n = 3. In block: m = 3, n = 10
In main: m = 4, n = 4. In block: m = 4, n = 10
In main: m = 5, n = 5. In block: m = 5, n = 10
In main: m = 6, n = 6. In block: m = 6, n = 10
In main: m = 7, n = 7. In block: m = 7, n = 10
In main: m = 8, n = 8. In block: m = 8, n = 10
In main: m = 9, n = 9. In block: m = 9, n = 10

习题43

学习使用static的另一用法。

实现思路:
static在单独的代码块中也可以实现在一次函数执行结束后变量未被销毁、保留当前的值,下次调用函数时即使用保留在内存中的变量值,直到运行期间结束才释放该变量。

代码如下:

#include <stdio.h>

int main(){
int i, m = 0, n = 0;
for(i = 0;i < 10; i++){
printf("In main: m = %d, n = %d. ", m, n);
{
static int n = 10;
printf("In block: m = %d, n = %d\n", m, n);
n--;
}
m++;
n++;
}

return 0;
}

打印:

In main: m = 0, n = 0. In block: m = 0, n = 10
In main: m = 1, n = 1. In block: m = 1, n = 9
In main: m = 2, n = 2. In block: m = 2, n = 8
In main: m = 3, n = 3. In block: m = 3, n = 7
In main: m = 4, n = 4. In block: m = 4, n = 6
In main: m = 5, n = 5. In block: m = 5, n = 5
In main: m = 6, n = 6. In block: m = 6, n = 4
In main: m = 7, n = 7. In block: m = 7, n = 3
In main: m = 8, n = 8. In block: m = 8, n = 2
In main: m = 9, n = 9. In block: m = 9, n = 1

习题44

学习使用external的用法。

实现思路:
用extern来声明外部变量,以扩展外部变量的作用城,从变量的定义处开始,到本程序文件的末尾。

代码如下:

#include <stdio.h>

int main(){
int max(int a, int b);
extern A, B;
printf("Max = %d\n", max(A, B));

return 0;
}

int max(int a, int b){
return a > b ? a : b;
}

int A = 12, B = 20;

习题45

学习使用register定义变量的方法。

实现思路:
C语言允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取,从而提高执行效率,这种变量叫做寄存器变量,用关键字register声明。

代码如下:

#include <stdio.h>

int main(){
long fact(int n);
int i;
for(i = 1; i <= 10; i++){
printf("%2d! = %d\n", i, fact(i));
}

return 0;
}

long fact(int n){
register long f = 1;
int i;
for(i = 1; i <= n; i++){
f *= i;
}

return f;
}

打印:

1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: