【2022年研究生入学考试中国海洋大学930大题答案】简答题1:什么是全局变量?什么是局部变量?两者的区别是什么?试通过实际案例说明两者各自的应用情况。(15分) 科目:程序设计基础

本文主要是介绍【2022年研究生入学考试中国海洋大学930大题答案】简答题1:什么是全局变量?什么是局部变量?两者的区别是什么?试通过实际案例说明两者各自的应用情况。(15分) 科目:程序设计基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

本题是中国海洋大学2022年研究生入学考试930程序设计基础简答题第1题。
题目:
1.什么是全局变量?什么是局部变量?两者的区别是什么?试通过实际案例说明两者各自的应用情况。(15分)


以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692

一、解题思路

思路:
1,先分别答一下全局变量和局部变量各自的含义
2,再用文字说明一下两者的区别
3,举一个局部变量的例子,我举的是冒泡排序
4,举一个全局变量的例子,我举的是求一个字符串的小写字母个数和大写+小写字母的个数

二、全局变量和局部变量各自的含义

1.局部变量

局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量 。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。

2.全局变量

全局变量可以被本程序所有对象或函数引用,一般定义在库函数下面,一定要定义在主函数外部的上面,定义全局变量可以减去很多繁琐的定义,比如在多个函数都需要用到这个变量时,就不用定义这么多次(反正考试的时候这道题我写了3页,我现在也忘了怎么答的了)

三、两者的区别

1). 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
2). 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区
3). 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
4). 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量

四、举一个局部变量的例子,我举的是冒泡排序

1.引入库

代码如下(示例):

#include<stdio.h>

2.主函数部分

代码如下(示例):

void sort(int a[], int n)
{for (int i = 0; i < n - 1; i++)//原则上要进行n-1趟排序{int f = 0;//用于做标识for(int j=n-1;j>i;j--)//从最后一个到i遍历if (a[j - 1] > a[j])//左边大于右边时交换{int tmp = a[j - 1]; a[j - 1] = a[j]; a[j] = tmp;f = 1;}if (f == 0)break;//如果本趟排序未发送交换,说明表已有序}
}
void main()
{int a[] = { 1,4,7,3,6,9,2,5,8 };int n = sizeof(a) / sizeof(int);sort(a, n);for (int i = 0; i < n; i++)printf("%d ", a[i]);
}

3.文字描述一下

冒泡排序中的局部变量f,作用是使当当前趟数已有序时,提前退出循环,优化了算法,f的作用域只限于外层for循环内使用,所以需要定义局部变量(考场上写了很多现在都忘了)

五、举一个全局变量的例子,我举的是求一个字符串的小写字母个数和大写+小写字母的个数

1.引入库

代码如下(示例):

#include<stdio.h>

2.主函数部分

int count;
void small(char a[])
{while (*a){if (*a >= 'a' && *a <= 'z')count++;a++;}
}
void total(char a[])
{while (*a){if (*a >= 'A' && *a <= 'Z')count++;a++;}
}
void main()
{char a[50] = "QQ2394799692,i like OUC!";small(a);printf("小写字母个数:%d\n", count);total(a);printf("总共字母个数:%d\n", count);
}

3.执行结果

输入:

char a[50] = "QQ2394799692,i like OUC!";

输出:

小写字母个数:5
总共字母个数:10

在这里插入图片描述


六、个人感想

难易程度:简单
这道题属于基础题,占了15分,相信大家都能拿到这15分,我写的答案只做为参考。当时在考场上记得用了差不多15分钟做这道题。

这篇关于【2022年研究生入学考试中国海洋大学930大题答案】简答题1:什么是全局变量?什么是局部变量?两者的区别是什么?试通过实际案例说明两者各自的应用情况。(15分) 科目:程序设计基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/393914

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库