【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

相关文章

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华