计算机C语言面试常问问题(适用于考研复试,保研复试)【背诵版】 1.请问C++是C语言的升级版码? 答:C语言是面向过程的,面向过程就是一步一步地去设计步骤最终完成这个事件 C++是面向对象的,面向对象就是以对象作为中心,然后以对象的行为以及属性去构建一个完整的事件。 总体上来说,C语言是C++的前身,但这是两种不同语言。 2.C语言的三种基本结构化程序设计方法 答:顺序结构,选择结构,循环结构 3.请问C语言的程序由哪些部分组成? 答:一个C语言程序可以由一个主函数和若干个函数构成。 一个大的应用程序一般应该分成多个程序模板,每个模板用来实现一个功能,而模板的功能是由函数来完成。 4.请问void关键字的用途都有哪些? 答:(1)void修饰函数返回值;如果函数没有函数值,可以将其声明为void类型 (2)void修饰函数参数,如果函数没有参数,应该使用void进行修饰,以增强程序的可读性。 5.请问怎样去评价一个算法的好坏? 答:(1)正确性;即对任何合法的输入,算法都会得出正确的结果 (2)可读性;算法创建后由人来阅读、理解、使用以及修改 (3)健壮性;当输入非法数据时,不会产生莫名其妙的输出结果 (4)时间复杂度与空间复杂度;时间复杂度就是算法运行所需要的时间;空间复杂度是指算法运行所需的存储空间的多少。 6.源程序执行过程中,有哪些步骤? 答:C语言源程序的执行要经过预处理,编译(对源码进行优化,最后生成汇编代码),链接(将目标文件生成可执行文件),运行等步骤 7.简述程序和算法的概念及两者的区别是什么? 答:程序:为了实现特定目标或解决特定问题而用计算机语言编写的指令序列,它由算法和数据结构组成。 算法:就是计算机解题的步骤(是一系列解决问题的清晰指令) 算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达 8.简述下学习数据结构有什么作用? 答:数据结构指相互之间存在一种或多种特定关系的数据素的集合。 作用:(1)组织和存储数据。数据结构提供了一种有效地方式来组织和存储数据,使得程序能够快速地访问操作这些数据。 (2)提高程序的效率。比如,使用散列表可以快速地查找数据 (3)提高程序的可读性和可维护性。合适的数据结构可以使程序的代码更加清晰和易于理解 9.头文件的作用是什么? 答:头文件是包含着一些已经写好的函数以及定义好的变量。这样我们在写程序的时候,引用头文件,就可以使用这些函数和变量了 10.从C语言执行效率方面去,简述C语言采用了那哪些措施提高执行效率 答:(1)使用指针 (2)使用宏函数 (3)使用位操作 (4)长内短外嵌套循环 11.请问何为全局变量和局部变量?是否可以重名? 答:全部变量是定义在函数之外的变量,全局变量可以为本文件中其它函数所共用; 局部变量是定义在函数内部的变量。 局部变量和全局变量可以重名,局部变量会屏蔽全局变量 12.什么是常量?什么是变量? 答:常量是指在程序执行过程中值不能改变,具有固定值的量 变量是指在程序执行中值可以改变的量。 13.简述if语句和switch语句的区别 答:(1)if语句由多个条件构成多分支,而switch由一个表达式构成多分支 (2)if语句结构灵活,能处理任意多分支;而Switch结构简单,但实现程序逻辑结构清晰 14.请问while和do…while的区别 答:do….while语句是先执行一次循环体,然后再判断 While语句是先判断后执行器 15.break语句和continue语句的作用是什么,二者有何区别 答:(1)break可用于Switch语句,表示跳出整个Switch块,而continue则不能用于Switch语句。 (2)两者都可用于循环语句的循环体,break用于立即退出当期循环体,而continue仅跳过当次循环。 16.简述值传递和地址传递的区别 答:值传递:在调用函数时,将实参的值复制一份给形参,形参和实参互不影响。在函数中修改形参的值不会影响实参的值。 地址传递:在调用函数时,将实参的地址(指针)作为形参传递给函数,实参和形参表示同一个内容,在函数中修改形参的值会直接影响到实参的值。 17.C语言中,什么基本数据类型不能做Switch()的参数? 答:只能针对基本数据类型使用Switch,这些类型包括int,char。对于其他类型如long,float,double,则必须使用if语句。 18.C语言变量的存储特性可分几类?以及各类特点? 答:四种:自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register) (1)自动变量:西数中所有的非静态局部变量。其作用域仅仅局限于其定义的函数中,存储在动态存储区。 (2)静态变量:在变量前加上static 关键字的变量。存储在静态存储区,在没有显式初始化的时候会被初始化为0或者null,并且只初始化一次(初始化不等于赋值)。长期存在静态存储区,直到程序结束。 (3)外部变量:一般用作全局变量作用域的扩展。把全局变量在其他源文件中声明成extern变量,可以扩展该全局变量的作用域至声明的那个文件,其本质作用就是对全局变量作用域的扩展。长期存在静态存储区,直到程序结束。 (4)寄存器变量:一般经常被使用的的变量(如某一变量需要计算几千次)可以设置成寄存器变量,register变量会被存储在寄存器中,计算速度远快于存在内存中的非register变量。存储在cpu的寄存器中,速度快。 17.指针中*号是什么意思? 答:C语言中*在定义的时候,只是说明要定义一个指针 *在非定义的时候,表示取后面那个地址里面的内容 18.简述数组和指针有什么区别? 答: 数组:是用于存储多个相同类型数据的集合,数组名是首素的地址 指针:相当于一个变量,它存放的是其他变量在内存中的地址,指针名指向了内存的首地址。 区别:(1)数组是直接访问数据,指针是间接访问数据 (2)同类型指针可以相互赋值;数组不行,只能一个素一个素的赋值或拷贝 数组对应着一块内存区域,而指针是指向一块内存区域。 19.请问字符串和字符数组有何差别? 答:在不严格的情况下,可以说字符数组就是字符串; 严格来讲,字符数组是用来存放字符的数组;而字符串就是用双引号括起来的任意字符系列,可以看作是一个个单个字符的数组,但是字符串的末尾有‘\0’结束标记。 20.指针与地址有什么联系? 答:指针保存了某个变量的地址,指针本身是一个变量,它也有自身的地址,而指针的内容是某个变量的地址。 21.指针有哪些运算?以及指针编程的优点? 答:算术运算、关系运算、赋值 指针编程的优点:(1)提高程序的编程效率和执行速度 (2)利用指针可以实现动态内存分配 (3)直接操纵内存地址,更容易实现函数的编程和调用 22.请问什么是形参和实参?具体如何使用? 答:形参:指定义函数时,函数名后面括号中的变量名 实参:指在主函数调用一个函数时,函数名后面括号中的参数 形参和实参的功能是进行数据传送;发生函数调用时,主函数把实参的值传送给被调用的形参,从而实现主函数向被调函数的数据传送。 23.请问主函数对被调函数声明的目的是什么? 答:使编译系统知道被调用函数返回值的类型,以便在主函数中按此类型对返回值进行相应的处理。 24.请问什么是递归函数? 答:在调用一个函数的过程中又出现直接或间接地调用该函数本身 简单说,递归就是把复杂问题分解成简单的小问题,小问题再按同样的方法分解成小小问题,一直到问题小到可以解决,然后子问题得到结果不断回朔,最后就可以解决最初的问题 25.构成C语言程序的基本单位是什么?它是哪几部分组成? 答:函数是构成C语言程序的基本单位。一个完整得C程序一般由文件包含、宏定义、函数声明、变量和一个或若干个函数组成。 26.请问puts()函数和printf()函数在输出字符串时有何区别? 答:(1)printf()函数可以输出各种类型,并且一次可以输出多项;puts()函数只能输出字符串,一次只能输出一个字符串 (2)puts()输出后具有自动换行的功能,而printf()函数只有输入“\n”才能换行 27.简述下结构体类型与基本类型的区别 答:(1)结构体类型是一种构造出来的数据类型,而基本类型不需要用户构造 (2)结构体类型可以包含不同数据类型,而基本类型只能包含一种数据类型 不足的地方,欢迎指正!祝复试顺利!计算机相关的同学可以点赞收藏!不迷路!!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/63494.html