首页 > 其他分享 >C语言考研简答题汇总

C语言考研简答题汇总

时间:2023-05-30 12:02:39浏览次数:38  
标签:初始化 存储 函数 简答题 静态 C语言 动态 变量 考研

简述C语言程序的开发步骤及各步的作用

  • 编辑,编辑源程序。一般会得到一个扩展名为.c的文件
  • 编译,生成二进制的目标代码,即机器代码,由众多个0和1组成的机器指令
  • 链接,链接程序,其结果是生成可执行文件
  • 运行,程序运行,其结果可能是达到了目的或者出错。

简述动态存储变量和静态存储变量的特点

静态存储

静态变量,全局动态变量都是静态存储,

存储在全局数据区,在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。静态存储变量是一直存在的,只会初始化一次。

动态存储

局部动态变量是动态存储,

动态存储变量是在程序执行过程中,使用它时才分配存储单元,存储在内存出栈数据区,使用完毕立即释放

总结:静态存储,只初始化一次,每次调用从变化后的值继续改变;动态存储,每次调用都从初始值开始

动态变量

全局动态变量

1)在所有函数的外部定义(包括主函数),定义之后的所有函数都能使用,属于静态存储

2)生命周期为从程序运行到程序退出,贯穿整个运行时间

3)无显式初始化时默认初始化值为0

局部动态变量

1)在函数内部定义,属于动态存储,作用于为当前函数

2)生命周期为从函数调用到函数退出

3)无显式初始化时默认初始化值为随机值

静态变量

全局静态变量

1)作用域为当前文件,从定义位置到文件结尾

2)生命周期为从程序运行到程序退出,即贯穿整个运行时间

3)无显式初始化时默认初始化值为0

动态全局变量可以通过extern关键字在外部文件中使用,静态全局变量不可以在外部文件中使用。

局部静态变量

1)作用域为当前函数

2)生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化,而是沿用上次函数退出时的值

函数声明和函数定义的区别

声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。 定义则需要开辟内存。

函数的定义是一个完整的函数单元,包含函数类型、函数名、形参及形参类型、函数体等。

函数声明只是对编译系统的一个说明,是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。


标签:初始化,存储,函数,简答题,静态,C语言,动态,变量,考研
From: https://blog.51cto.com/u_15841362/6377795

相关文章

  • C语言的规则总结
    c语言对标识符的命名具有以下的规则,其主要有以下三条:1.标识符必须以大小写英文字母或者下划线作为首字母。2.标识符中只能包含大小写英文字母、数字、下划线,不允许出现如“!、@、#、¥、%、^、&、*、(、)、/、?等其他标点,而且C语言中的标识符不能使用任何中文字符,包括汉字、中文标点。......
  • c语言学习day2(定义变量)
    1.常量const是constant的缩写表示常量 浮点数   double 当输入输出整数时使用%d当输入输出浮点型数时使用%lf数据类型 ......
  • 考研周记-week14
    迟来的周记5.22~5.28记录一下本周的考研进度情况英语本周继续进度和往前一样,都是软件+单词书,临近六月,准备学习一些阅读课和语法课的知识。数学数学方面,本周继续线性代数的学习和高数的基础巩固,高数的基础巩固已经完成,最近又对某些章节进行了补充,做了一套自测题,感觉还可以,准......
  • C语言第六天
    1、函数参数顺序点1、语句结束时值改变2、&&||,?:等运算符、3、函数参数传递时的求值顺序intk=1;func(k,k++);那K+1,K是等于什么呢,函数参数的运算应该是从右到左,所以K++的K应该是1,先输出后运算,而K应该是2inti=0;printf(“%d,%d,%d”,i++,i......
  • 逍遥自在学C语言 | 揭开while循环的神秘面纱
    前言循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止。在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种循环的用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习......
  • C语言static篇
    C语言static篇变量#include<stdio.h>voidfunc(){inta=0;printf("%d\t",a);staticintb;printf("%d\n",b);}intmain(){func();return0;}#include<stdio.h>voidfunc(){inta=1;......
  • 二叉排序链表C语言代码实现
    #include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedefstructBSTNode{intdata;structBSTNode*lchild;structBSTNode*rchild;}BSTNode,*BSTree;BSTNode*InitNode(intdata){BSTNode*node=(BSTNode......
  • C语言课程设计题目[2023-05-29]
    C语言课程设计题目[2023-05-29]C语言课程设计题目一、设计要求与设计报告设计要求1.任意选定以下一个题目完成2.模块化程序设计3.锯齿型程序书写格式4.必须上机调试通过设计报告格式1.设计目的2.总体设计(程序设计组成框图、流程图)3.详细设计(模块功能说明(如函数功能、入......
  • c语言,函数的址传递例子
    编码如下:#include<stdio.h>voidswap(int*x,int*y){inttmp;tmp=*x;*x=*y;*y=tmp;};intmain(){inta=4;intb=5;printf("befer\n");printf("a=%d\n",a);printf("b=%d\n",b);swap(&am......
  • c语言代码怎么输入文字
    在C语言中,可以使用printf函数来输出文本信息到终端。如果需要从用户那里获取输入的文本信息,则可以使用scanf函数。以下是一个简单的示例代码:#include<stdio.h>intmain(){charname[20];printf("请输入您的姓名:");scanf("%s",name);printf("您好,%......