c语言面试题及答案

上传人:鲁** 文档编号:496753878 上传时间:2022-09-07 格式:DOCX 页数:35 大小:37.99KB
返回 下载 相关 举报
c语言面试题及答案_第1页
第1页 / 共35页
c语言面试题及答案_第2页
第2页 / 共35页
c语言面试题及答案_第3页
第3页 / 共35页
c语言面试题及答案_第4页
第4页 / 共35页
c语言面试题及答案_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《c语言面试题及答案》由会员分享,可在线阅读,更多相关《c语言面试题及答案(35页珍藏版)》请在金锄头文库上搜索。

1、c语言面试题及答案一、选择题 (10)每小题2分,(11) (50)每小题1分,共60分) 在下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确 的,请将正确的选项涂写在答题卡相应的位置上,答在试卷上不得分。(1)在数据结构中,从逻辑上可以把数据结构分为。A)动态结构和静态结构B)紧凑结构和非紧凑结构C)线性结构和非线性结构D)内部结构和外部结构答案:C评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数 据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多 对一的关系。(2)若进栈序列为1, 2, 3, 4,进栈过程中可以出栈,则下列选项中不可能的一个出栈序列是。A)1

2、,4,3,2B)2,3,4,lC)3,1,4,2D)3,4, 2,1答案:C评析:栈是一种后进先出表,在选项c中,先出栈的是3,说明 此时栈内必然有1, 2,由于1先于2进栈,所以1不可能在2之前 出栈,故选项C这种出栈序列是不可能的。(3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为。A)希尔排序B)冒泡排序C)插入排序D)选择排序答案:A 评析:希尔排序法的基本思想是:将整个无序序列分割成若干小 的子序列分别进行插入排序。(4) 在顺序表(3,6,8,10,12,15,16,18,21,25,30)中, 用二分法查找关键码值11,所需的关键码比较次数为。A)

3、2B)3C)4D)5答案:C评析:二分法查找是用关键码与线性表的中间元素比较,然后根 据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方 法继续查找。本题中,与ll比较的关键码分别为15, 8,10,12四 个。(5) 对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为。A)n-1B)nC)n+l D)2n答案:C评析:在n个结点的单向链表(无表头结点)中,每个结点都有一 个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。(6) 在软件开发过程中,软件结构设计是描述。A)数据存储结构B)软件体系结构C)软件结构测试D)软件控制过程答案:B评析:从工程管理的角度

4、来看,软件设计分为两步完成:概要设 计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系 结构、确定系统级接口、全局数据结构或数据库模式。(7)模块本身的内聚是模块独立性的重要性度量因素之一。在7 类内聚中,具有最强内聚 的一类是。A)顺序性内聚B)过程性内聚C)逻辑性内聚D)功能性内聚答案:D评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度 量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内 聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内 聚。(8)数据存储和数据流都是,仅仅是所处的状态不同。A)分析结果B)事件C)动作D)数据答案:D评析:数据流图

5、有4种成分:源点或终点、处理、数据存储和数 据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。(9)数据的完整性是指数据的正确性、有效性和。A)可维护性B)独立性 C)安全性 D)相容性答案:D评析:数据模型的完整性规则是给定的数据模型中数据及其联系 所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其 状态的变化,以保证数据的正确性、有效性和相容性。(10)关系代数运算是以为基础的运算。A)关系运算B)谓词运算C)集合运算D)代数运算答案:C 评析:关系代数运算是以关系代数作为运算对象的一组高级运算 的集合。它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割 (投影)、

6、水平分割(选择)、关系的结合(连接)等。(11)能将高级语言程序转换成目标语言程序的是。A)调试程序B)解释程序C)编译程序D)编辑程序答案:C评析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由0和l组成的二进制指令,所以高级语言必须先用一种称 为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。(12)是构成c语言程序的基本单位。A)函数B)过程C)子程序D)子例程答案:A评析:c程序是由函数构成的。一个c源程序至少包含一个main 函数,也可以包含一个main函数和若干个其他函数,因此,函数是 c程序的基本单位。A)voidB)as_b3C)forD)2cdefi

7、ne_123-abcDo(13)可以在C语言中用做用户标识符的是。WORDIfcasSIG答案:B评析:在c语言中规定,标识符只能由字母、数字和下划线三种 符号所组成,而且第一个字符必须是字母或下划线。另外还需要注意 的是关键字不能作标识符。选项A中void,C中for都为关键字,D 中2c以字母开头。(14) 若有以下类型说明语句:char w;int x;float y,z;则表达式w*x+z-y的结果为类型。A)float B)char C)int D)double答案:A评析:在进行运算时,不同类型的数据参加运算,需要先将其转 换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:

8、char, shortintfunsignedlongdoubleffloat, 故结果为 float 型。(15) main() float x=123A56;printf(“-52f”,x);以上程序输出的结果是。A)1234B)1235C)12345D)12346答案:D评析:f格式符,用来输出实数,以小数的形式输出“-m. nf” 的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m。则右端补空格。如果总长度大于列数,则按实际情况四舍五入输出。(16) 下面语句的输出结果是。Printf( “dn”,strlen(“ t” 065 xff n”);A)14B)8C)5D)输出项

9、不合法,无正常输出答案:C评析:在c语言中,以开头的字符均为转义字符,其中“” 后可跟l3位八进制数或在后跟字母x及l2位十六进制数, 以此来代表一个特定的字符。(17) 下列程序的输出结果是。main() int a=0,b=0,c=0;if(+a0lI+b0)+c;printf(“na=d,b=d,c=d”,a,b,C);A)a=0,b=0,c=0B)a=l,b=l,c=1C)a=l,b=O, c=ID)a=0, b=1c=1答案:C评析:“丨丨”是或运算,它有个“短路”的特点需要特别注意,当“丨 丨”运算符左边的表达式的值为真时,则程序就不再对“丨丨”右边 的表达式的值去进行运算,而是使

10、得整个表达式的值直接为真。(18) 下列程序的输出结果是。Main() int i;for(i=1;i+l;i+) if(i4)printlf(”d”,i+);break;printf(“d”,i+);A) 55B)56C)程序错误,没有输出D)循环条件永远为真,死循环答案:B评析:本程序中有个for循环,但注意到for循环的条件是“i+l” 也就是只要i+l的值为真(非零值均为真),就执行循环。当i=l的时, i+l的值为真,判断if条件不成立,执行i+,输出i的值为5。(19) 下列程序的输出结果是。#define A 100main() int i=O,sum=O;do if(I=(i2

11、)*2)continue;sum+=i;while(+iA);printf( “dn”,sum);A)2500 B)2050 C)4 D)O答案:A评析:本题程序的功能是求1到_99之问(包括1和99)所有奇数 之和。程序中的while循环的终止条件为+i=100,在while循环体 内,如果i是偶数,则执行continue,跳过这一次循环,去执行下 一次循环,否则求和。最后输出的值是1到99之间(包括l和99)所 有奇数之和(1+99)*502=2500。(20) 下列程序的输出结果是。main() int I=3;switch(i) case 1:case 2:printf(”d”,i);

12、case 3:case 4:break;default:printf(”OK”);A)0B)3 C)OK D)没有任何输出答案:D评析:在本题中,i的值为3,由于“case 3:”后面没有break 语句,所以继续向下执行“case 4:”后面的语句,由于“case 4: 后面的语句为break强行退出switch语句,所以,本题没有任何输 出。(21) 下列程序执行后的输出结果是。main() int m3=1,4,7,2,5,8,3,6,9;int i,k=2:for(I=0;i3;i+)printf(”d”,mki);A) 456B)258C)369D)789答案:C评析:根据二维数组的

13、定义得出:mOO=l,m0l=4, mO2=7,m10=2,rail1=5,m12=8,m20=3, m2l=6, m22=9,所以本题的输出是第3行的值m20, m2l,m22,即 369。(22) 设已定义洱口 k为int类型变量,则以下for循环语句for(i=0;k=-1,k=1;i+,k+)printf (” *n” );A)判断循环结束的条件不合法B)是无限循环D)循环只执行一次C)循环一次也不执行答案:B评析:本题定义了一个for循环,它的循环变量是i,但由于本 题并没有去设置循环条件,所以循环的条件永远默认为真,即无限次 执行循环。(23) 下面程序的输出结果是。unsigne

14、d fun(unsigned num) unsigned k=1;dok*=numlO;num=lO;while(num);return(k);main() unsigned n。 26;printf (” dn”,fun(n);A)0B)4C)12 D)无限次循环答案:C评析:本题定义了一个fun函数,用于num求和,具体执行过程如下:num=26: k二k*(num%10)=l*(26%10),所以 k=6, num二num / 10=2;num=2: k二k*(num%10)=6*(2%10),所以 k=12, num二num / lO=O;num=O: while条件不成立,所以返回k的值12.(24) 已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序。main() char a=A;int b=20;printf(“%d,%o”,(a=a+a,a+b,b),a+a-A,b);A) 表达式非法,输出零或不确定值B) 因输出项过多,无输出或输出不确定值C) 输出结果为20,141D) 输出结果为20,141,20答案:C

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号