C语言 - 常见面试题整理

1.标识符

标识符是C程序的最基本组成部分,例如:变量名称、函数名称、数据类型等等,都是一个标识

符。标识符的要求是:必须由字母(区分大小写)、数字、下划线组成。而且,标识符的第一个

字符不可以是数字。例如:

abc                ---   合法

_abc123        ---   合法

abc555          ---   合法

123abc          ---   非法

abc$!!           ---   非法

下列字符串可以用作C++标识符的是: A

A _123    2009var  C goto  D test - 2009

请选出可用作C语言用户标识符的一组标识符   

Avoid Ba3_b3  CFor  D2a

下列选项中是C语言合法标志符的有(A   B).  

A  good_morning    B  main     C stdio.h    D 8abc

以下选项中,能用作用户标识符的是( B  D)。 

A.0一            B.8-;8            C.void            D.unsigned

以下用户标识符,其中合法的是().  

return       B f2_G3     C A3-3      D abc

2.引用与指针

引用:在函数调用时,是变量的别名,不可以单独存在,使用时必须要初始化

指针:本身有自己的地址,可以单独存在,相对引用可读性差。

引用”与指针的区别是什么?A

A 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

B  引用通过某个引用变量指向一个对象后,对它所指向的变量间接操作。程序中使用引用,程序的可读性差;而指针本身就是目标变量的别名,对指针的操作就是对目标变量的操作。

指针比引用更节省存储空间

D以上都不正确

3.C语言

一个C语言源程序是由(B)

A一个主程序和若干子程序组成 B函数组成 C若干过程组成 D若干子程序组成

一个C程序的执行是从__A___

A、本程序的main函数开始,到main函数结束
B、本程序的main函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束

C语言程序的基本单位是 C

A、程序行    B、语句     C、函数    D、字符

下列说法正确的是 D

A. main函数必须放在C程序的开头

B. main函数必须放在C程序的最后

C. main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的

D. main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的

对于一个正常运行的C程序,以下叙述中正确的是( C)。 

A.程序的执行总是从main函数开始,在程序的后一个函数中结束 

B.程序的执行总是从程序的个函数开始,在main函数结束.

C.程序的执行总是从main函数开始、

D.程序的执行总是从程序的个函数开始,在程序的后一个函数中结束

下列关于C语言文件的叙述中正确的是(C )。 

A.文件由一系列数据依次排列组成,只能构成二进制文件

B.文件由结构序列组成,可以构成二进制文件或文本文件

C.文件由数据序列组成,可以构成二进制文件或文本文件

D.文件由字符序列组成,其类型只能是文本文件

以下叙述中正确的是(A )。 

A c语言规定必须用main作为主函数名,程序将从此开始执行

B可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

Cc语言程序将从源程序中个函数开始执行

Dmain的各种大小写拼写形式都可以作为主函数名,如MAINMain

以下叙述中正确的是(A   B    C).  

一个C源程序可由一个或多个函数组成 

B 一个C源程序必须包含一个main()函数 

C C源程序的基本组成单位是函数  

D 在C源程序中,注释说明只能位于一条语句的最后

以下对C语言中的函数描述不正确的有(A  C  D).  

可以嵌套定义,不可以嵌套调用

B 不可以嵌套定义,可以嵌套调用

C 可以嵌套定义,也可以嵌套调用

D 嵌套定义和嵌套调用都不允许

以下关于结构化程序设计的叙述中正确的是( B)。 

A.结构化程序使用goto语句会很便捷

B.c语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D.由三种基本结构构成的程序只能解决小规模的问题

以下关于retllm语句的叙述中正确的是( B)。 

A.一个自定义函数中必须有一条return语句

B.一个自定义函数中可以根据不同情况设置多条retum语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

下列叙述中正确的是( D)。 

A.算法就是程序

B.设计算法时只需要考虑数据结构的设计

C.设计算法时只需要考虑结果的可靠性

D.以上三种说法都不对

下列叙述中正确的是(A )。

程序可以作为算法的一种表达方式         B 算法的有穷性是指算法的规模不能太大

C 算法的复杂度用于衡量算法的控制结构      D 算法的效率与数据的存储结构无关

4.变量

若有如下语句: int *p1,*p2; 则其中int所指的是 D

Ap1的类型     B *p1和*p2的类型     C p2的类型    D p1和p2所能指向变量的类型

C语言中变量的指针指的是: D

A. 变量类型      B. 变量       C. 变量值       D. 变量地址

若想定义int型变量a,b,c,d并都赋值为1,以下写法中错误的是(A )。 

int a=b=c=d=1;     B int a=1b=1c=1d=1;   

int abcd;a=b=c=d=1;     Dint abcd=1;a=b=c=d;

以下不合法的赋值语句是(A   C   D).  

A x=y=100     B d--;    C x+y;     D c=int(a+b);

已知ii,j都是整型变量,下列表达式中,与下标引用X[ii][j]不等效的是(B  C)。 

*X[ii]+j)       B  *X+ii[j]      C *X+ii+j)       D  **X+ii+j

C语言中,运算对象必须是整型数的运算符是 A

A. %            B. \            C. % \             D. **

在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组: A

A. 整型 实型 字符型        B. 整型 数组 指针     C. 数组 结构体 共用体    D. 指针 逻辑型 空类型

假定x和y为double型,则表达式(x=2,y=x+5/2)的值是 C

A4.500000      B4       C4.000000       D2.000000

C/C++函数,比较两个字符串设这两个字符串为str1,str2,

若str1==str2,则返回零;     若str1str2,则返回正数。

matlab中函数,strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false

若有定义语句:char}sl=‘’0K”,:It s2=”ok”;以下选项中,能够输出“OK”的语句是( B)。 

A.if(strcmp(sls2)!=0)puts(s2);

B.if(strcmp(sls2)!=0)puts(s1);

C.if(strcmp(sls2)==1)puts(s1);

D.if(strcmp(sls2)==0)puts(s1);

以下不合法的赋值语句是(A  C  D).  

A  x=y=100       B d--;      C x+y;       D c=int(a+b); 

以下选项中合法的表达式是(A  B  C).  

0<=x<100      B i=j==0      C (char)(65+3)      D x+1=x+1

5.typedef关键字 

以下关于typedef的叙述错误的是( A)。 

A.typedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代替

C.typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.typedef为类型说明一个新名,通常可以增加程序的可读性

若有以下语句:typedef struct S{int 9;char h;}T;以下叙述中正确的是(B )。 

A.可用s定义结构体变量         B.可用T定义结构体变量

C.Sstruct类型的变量          D.Tstruct S类型的变量

设有以下语句:typedef struct TY{char C;int a{4 1;}CIN;则下面叙述中正确的是( D)。 

A.CINstruct Tr类型的变量      B.TYstruct类型的变量

C.可以用,lr定义结构体变量     D.可以用CIN定义结构体变量

以下关于typedef的叙述正确的是(A  C  D).  

typedef可以定义各种类型名,但不能用来定义变量

Btypedef可以增加新类型

C 用typedef只是将已存在的类型用一个新的名字来代表

D 使用typedef便于程序的通用

6.数组

若二维数组a有m列,则a[I][j]元素前的数组元素个数为: D

A. j*m+i         B. i*m+j       C. i*m+j-113       D. i*m+j+1

若有以下函数首部:int fun(double x[10],int*n)则下面针对此函数的函数声明语句中正确的是( B  )。 

A  int fun(doubleint);       B int fun(double*int*);

C  int mn(double*xint n);      D int fun(double xintint*n)

下列选项中,能正确定义数组的语句是( D)。 

A.int num[0..2008];           B.int 1111111[];

C.int N2008:      D.#define N 2008int num[N1;int num[N];

7.项目问题

软件测试的目的是(D )。 

A.评估软件可靠性        B.发现并改正程序中的错误

C.改正程序中的错误        D.发现程序中的错误

在软件开发中,需求分析阶段产生的主要文档是( D)。 

A.软件集成测试计划      B.软件详细设计说明书

C.用户手册。        D.软件需求规格说明书

软件生命周期是指( A)。 

A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

软件生命周期中的活动不包括( A)。 

A.市场调研     B.需求分析     C.软件测试      D.软件维护

8.数据结构

下列叙述中正确的是(B )。 

A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

下列叙述中正确的是(D )。 

A.栈是一种先进先出的线性表

B.队列是一种后进先出的线性表

C.栈与队列都是非线性结构

D.以上三种说法都不对

下列叙述中正确的是( B)。 

A.有一个以上根结点的数据结构不一定是非线性结构

B.只有一个根结点的数据结构不一定是线性结构

C.循环链表是非线性结构

D.双向链表是非线性结构

下列叙述中正确的是(B )。 

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列是非线性结构

D.循环队列是一种逻辑结构

下列关于线性链表的叙述中,正确的是( C)。 

各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C进行插入与删除时,不需要移动表中的元素

D 其它三项说法都不正确

能从任意一个结点开始没有重复地扫描到所有结点的数据结构是(A )。

循环链表     B 双向链表     C 二叉链表     D 有序链表

下列处理中与队列有关的是( )。 

操作系统中的作业调度     B 执行程序中的过程调用

C 执行程序中的循环控制      D ---X树的遍历

9.数据库

数据库系统的三级模式不包括(D )。 

A.概念模式      B.内模式     C.外模式     D.数据模式

存储在计算机内有结构的数据集合是(A )。 

数据库     B 数据库系统     C 数据库管理系统     D 数据结构

在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、存储级和(A )。 

概念级     B 外部级     C 管理员级     D 内部级

10.常量

https://www.runoob.com/cprogramming/c-constants.html

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量

常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。

常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

以下选项中关于C语言常量的叙述错误的是( A)。 

A.经常被使用的变量可以定义成常量

B.常量分为整型常量、实型常量、字符常量和字符串常量

C.常量可分为数值型常量和非数值型常量.

D.所谓常量,是指在程序运行过程中,其值不能被改变的量

以下选项中不能作为c语言合法常量的是( B)。 

0.1e+6        B’cd’        C a”        D ’\011

你可能感兴趣的:(C语言,c语言,面试)