c语言笔试题总结_第1页
c语言笔试题总结_第2页
c语言笔试题总结_第3页
c语言笔试题总结_第4页
c语言笔试题总结_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、选择题(1)(10)每小题2分,(11)(50)每小题1分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请

将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)在数据结构中,从逻辑上可以把数据结构分为。

A)动态结构和符态结构B)紧凑结构和非紧凑结构

C)线性结构和非线性结构D)内部结构和外部结构

答案:C

评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元

素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一

的关系。

(2)若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不行能

的一个出栈序列是。

A)l,4,3,2B)2,3,4,1

C)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)2B)3C)4D)5

答案:C

评析:二分法查找是用关键吗与线性表的中间元素比较,然后依据比

较结果来推断是结束查找,还是在左边或者右边子表按相同的方法接

着查找。本题中,与比较的关键码分别为15,8,10,12四个。

(5)对于n个结点的单向链表(无表头结点),须要指针单元的个数至少

为。

A)1B)nC)D)2n

答案:C

评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指

针单元(即指针域),加上头指针,至少须要1个指针单元。

(6)在软件开发过程中,软件结构设计是描述。

A)数据存储结构B)软件体系结构C)软件结构测试D)软件限

制过程

答案:B

评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细

设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确

定系统级接口、全局数据结构或数据库模式。

(7)模块本身的内聚是模块独丈性的重要性度量因素之一。在7类内聚

中,具有最强内聚的一类是。

A)依次性内聚B)过程性内聚C)逻辐性内聚D)功能性内聚

答案:D

评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。

内聚共有7类,它们之间的内聚性由弱到强排列依次为:偶然内聚、

逻辑内聚、时间内聚、过程内聚、通信内聚、依次内聚和功能内聚。

(8)数据存储和数据流都是,仅仅是所处的状态不同。

A)分析结果B)事务C)动作D)数据

答案:D

评析:数据流图有4种成分:源点或终点、处理、数据存储和数据流。

数据存储是处于狰止状态的数据,数据流是处于运动中的数据。

(9)数据的完整性是指数据的正确性、有效性和。

A)可维护性B)独立性C)平安性D)相容性

答案:D

评析:数据模型的完整性规则是给定的数据模型中数据与其联系所具

有的制约和依存规则,用以限定符合数据模型的数据库状态与其状态

的变更,以保证数据的正确性、有效性和相容性。

(1())关系代数运算是以为基础的运算。

A)关系运算B)谓词运算C)集合运算D)代数运算

答案:C

评析:关系代数运算是以关系代数作为运算对象的一组高级运算的集

合。它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割(投

影)、水平分割(选择)、关系的结合(连接)等。

(11)能将高级语言程序转换成目标语言程序的是。

A)调试程序B)说明程序C)编译程序D)编辑程序

答案:C

评析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执

行由0和1组成的二进制指令,所以高级语言必需先用一种称为“编译

程序”的软件,把源程序翻译成二进制形式的“目标程序”。

(12)是构成c语言程序的基本单位。

A)函数B)过程C)子程序D)子例程

答案:A

评析:c程序是由函数构成的。一个c源程序至少包含一个函数,也

可以包含一个函数和若干个其他函数,因此,函数是C程序的基本单

位。

(13)可以在C语言中用做用户标识符的是。

A)B)3C)D)2c

_123

答案:B

评析:c语言规定,标识符只能由字母、数字和下划线三种符号组成,

而且第一个字符必需是字母或下划线。另外还须要留意的是关键字不

能作标识符。选项A中,C中都为关键字,D中2c以字母开头。

(14)若有以下类型说明语句:

w;x;y,z;

则表达式w*的结果为类型。

A)B)C)D)

答案:A

评析:在进行运算时,不同类型的数据参加运算,须要先将其转换成

同一类型的数据,然后再进行运算。转换的依次由俅到高为:,

一—一—―,故结果为型。

(15)(()

{123A56;

C%-5.2f\n");

以上程序输出的结果是。

A)123.4B)123.5C)123.45D)123.46

答案:D

评析:f格式符,用来输出实数,以小数形式输出。“%.”的含义是:

输出数据共占m列,其中n位小数,假如输出位数小于m。则右端

补空格。假如总长度大于列数,则按实际状况四舍五人输出。

(16)下面语句的输出结果是。

("%d'n”(W\065\\n»));

A)I4B)8

C)5D)输出项不合法,无正常输出

答案:C

评析:在c语言中,以开头的字符均为转义字符,其中后可

跟1―3位八进制数或在“、”后跟字母x与1—2位十六进制数,以此

来代表一个特定的字符。

(17)下列程序的输出结果是。

0

(0,0,0;

(>0>0);

C\%d,%d,%d”,a,b,C);

)

A)()(),0B),,1

C),D)0,1.1

答案:C

评析:

|”是或运算,它有个“短路”的特点需特别留意,当“||”运算符

左边的表达式的值为真时,则程序就不再对“||”右边的表达式的值

进行运算,而是使得整个表达式的值干脆为真。

(18)下列程序的输出结果是。

0

I1;

(1;;)

{(i>4){C'%d",);;}

)

(“%d",);

)

A)55B)56

C)程序错误,没有输出D)循环条件恒久为真,死循环

答案:B

评析:本程序中有个循环,但留怠到循环的条件是也就是只要的

值为真(非零值均为真),就执行循环。当的时,的值为真,推断条件

不成立,执行,输出的值为

i5O

(19)下列程序的输出结果是。

A100

0

{((i/2)*2);

}(<A);

,,

C%d\n);

}

A)2500B)2050C)4D)0

答案:A

评析:本题程序的功能是求1到_99之间(包括1和99)全部奇数之和。

程序中的循环的终止条件为100,在循环体内,假如i是偶数,则执

行,跳过这一次循环,执行下一次循环,否则求和。最终输出的值是

1到99之间(包括1和99)全部奇数之和(1+99)*50/2=2500。

(20)下列程序的输出结果是。

0

3;

(i)

{1:

2:(“%d”,i);

3:

4:;

:(巧;

)

)

A)0B)3C)D)没有任何输出

答案:D

评析:在题中,i的值为3,由于“3:»后面没有语句,所以接着向下

执彳亍“4:”后面的语句,由于“4:”后面的语句为强彳亍退出语句,所

以,本题没有任何输出。

(21)下列程序执行后的输出结果是。

0

{m[][3]={1,4,72,5,8,3,6,9};

i,2:

(0;i<3;)

{("%d»,m[k][i]);}

)

A)456B)258C)369D)789

答案:C

评析:依据二维数组的定义得出:m[O][l]=4,m[O][2]=7,

m[l][0]=2,][1]=5,m[l][2]=8,m[2][0]=3,m[2][l]=6,m[2][2]=9,

所以本题的输出是第3行的值m⑵⑼,m[2][l],m[2][2],即369。

(22)设已定义洱口k为类型变量,则以下循环语句。

(0;1,1;,)

/,,****、「,,、.

A)推断循环结束的条件不合法B)是无限循环

C)循环一次也不执行D)循环只执行一次

答案:B

评析:本题定义了一个循环,循环变量是i,但由于本题并没有设置

循环条件,所以循环的条件恒久默认为真,即无限次执行循环。

(23)下面程序的输出结果是。

()

(I;

(

k*%;

/;

)();

(k);

0

{no26;

("%d\rT(n));

)

A)0B)4C)12D)无限次循环

答案:C

评析:本题定义了一个函数,用于求和,详细执行过程如下:

26:*(%10)=1*(26%10),所以6,/10=2;

2:*(%10)=6*(2%10),所以12,/;

:条件不成立,所以返回k的值12.

(24)已知字母A的码值是65,字母a的码值是97,以下程序。

0

{'A';

20;

(“%d,%o”,。,'a'-'A',b);

A)表达式非法,输出零或不确定值

B)因输出项过多,无输出或输出不确定值

C)输出结果为20,141

D)输出结果为20,141,20

答案:C

评析:本题中首先输出逗号表达式“,,b”的值,即20。然后以八进

制的形式输出‘a'-'A'的值为97对应的八进制数141,由于最终一个表

达式b没有对应输出格式的输出项表列就不会输出。

(25)C语言函数返回值的类型是由确定的。

A)语句中的表达式类型B)调用函数的主调函数类型

C)调用函数时临时D)定义函数时所指定的函数类型

答案:D

评析:函数值的类型应当是在定义函数时指定的。在定义函数时对函

数值说明的类型一般应当和语句中的表达式类型一样,假如不—致,

则以函数类型为准,即函数类型确定返回值的类型。

(26)下列程序执行后输出的结果是。

(P)

{do5;

9

(”%d,",d);

)

0

{3;

(a);

C%d\n,\d);

A)8,12B)9,13C)8,4D)9,5

答案:C

评析:本题执行过程如下:首先调用函数,使得实参a的值3传递给

形参p,得到局部变量8,打印出局部变量d的值8;返回主函数执

行此处的d为全局变量,所以1+3=4(由于本题是值传递,所以在

函数中对p值的变更弁不能引起a的变更),故本题的输出是8,4。

(27)已知下面的程序段,正确的推断是。

A3

B(A)(⑴匕)

3:

3*(⑺);

A)程序错误,不允许嵌套定义B)93

C)81D)程序错误,宏定义不允许有参数

答案:c

评析:本题的宏定义是合法的,宏定义绽开为

3*(3+((l)*a))=3*(3+((7+1)*3))=81。

(28)定义*()指的是。

A)一个返回整型值的函数()

B)一个返回指向整型值指针的函数()

C)一个指向函数()的指针,函数退回一个整型值

D)以上说法均错

答案:B

评析:一个函数可以带回一个整型值、字符值、实型值等,但也可以

带回指针型数据,即地址。本题的定义中,包括括号和•号,由于f)

优先级高于t。故它是一个返回整型指针的函数。

(29)以下程序段的输出结果是。

0

{sl[10],s2[10],s3[10];

(“%s",si);(s2);(s3);

(si);(s2);(s3);

)

输入数据如下:(此处代表回车符)

A)B)C)\0\0D)

答案:B

评析:是标准输入函数,在输入字符串时,实际的内容为“\0”,“\0”

是由系统自动加入的;的功能是从终端读入一行字符,即始终读到换

行符为止,弁由系统自动以“'0”代替换行符。

(30)下述函数功能是。

(*x)

(*);

A)求字符串的长度B)求字符串存放的位置

C)比较两个字符串的大小D)将字符串x连接到字符串y后面

答案:A

评析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字

符直到,最终返回字符串首尾地址的差值,即字符串的长度。

(31)以下程序的输出结果是。

0

(99%d\n"());

A)6B)7C)D)12

答案:A

评析:在c语言中,字符串的长度是其首字符到(不含)字符的总字符

个数。本题定义字符数组的同时,对第7个元素,由系统自动添加上

故字符串的长度为

“\0",6O

(32)请读程序段:

□="”,*;

C%d\n9;*(4));

程序段的输出结果是。

A)68B)0

C)字符'D'的地址D)不确定的值

答案:B

评析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上

一个字符串结束标记“\0”,故指向字符数组的指针p的+(4)的值为

“\0”。由于“\0”的编码值就是0,所以本题输出为0。

(33)若有定义:a[4][10];,则以下选项中对数组元素引用错误

的是。

(0«4,0«10)

A)*(&a[0][0]+10*)B)*()

C)*(*())D)*(a[i])

答案:B

评析:本题中选项B是错误的引用,*()只代表了的地址。

(34)设有以下语句:

尸”,2网,。3,o4="〃;

则不是对库函数的正确调用。

A)(,”");B)(2,“02");

C)(3,“03");D)(4,“04”);

答案:C

评析:C语言中:(2);,其两个参数均为字符指针或字符数组,选项

c中的目的串指针3没有指向详细有效的存储单元,故是错误的调用。

(35)请读程序:

0

{*,,,,*s2="”.

si;s2;

("%d\iT(sl,s2));

)

上面程序的输出结果是。

A)正数B)负数C)零D)不确定的值

答案:A

评析:函数的功能是比较字符串si和s2,假如>s2,则返回个正数;

假如2,所以函数的值为正数。

(36)下面程序的输出是。

s[尸

0

(;P<4;)

P);

A)B)AC)DD)

BC

CB

DDAA

答案:A

评析:在第一次执行循环时,字符数组的首地址赋给了指针变量p,

使得指针变量p指向了s的首地址,榆出p所指向的字符串;其次次

执行循环时,p值增加1,p指向了S的其次个元素输出;第三次输出;

第四次输出D;直到p指向字符串的结束字符“\0”,循环终止执行。

(37)以下程序输出的结果为。

0

{*[6]={"",",

**p;

(0;i<4;)

("%s",p[I]);

A)B)

D)

答案:C

评析[0]指向"”的首地址;[1]指向的首地址;[2]指向“”的首地址,

依此类推。当执行后,p指向指针数组的首地址。循环中输出了4个

字符串。

(38)下面程序的输出结果是。

0

{*p[]={,,BOOL,\“0”,“H“,

i:

(3;i>=0;i—)

(“%c”,*p[i]);

C5);

)

A)B)C)D)

答案:A

评析:p[0]存放的是“\0”的首地址;p[l]存放的是“\0”的首址等。

在语句中输出的[I]表示p[i]字符串的第一个字符。在循环中,i的初

值为3,那么输出的第一个字符为“s”,接着两次i-,则输出的值为[1],

即字符“0”,所以本题的输出为。

(39)以下程序的输出结果是。

(***Z)

{C%d,%d,%d\n,9,*x,*y*());}

104020;

0

{(,);

(,,);

)

A),42,31B),41,20C)11,21,40D)11,41,21

12,22,4112,42,2011,21,4112,42,22

答案:B

评析:由于实参传送的是变量的地址,所以对形参指针所指向的单元

内容的变更,即对实参内容的变更。

(40)若一个外部变量的定义形式为x;,那么,其中的作用应当是。

A)将变量存储在甫争态存储区

B)使变量x可以由系统自动初始化

C)使x只能在本文件内引用

D)使x的值可以永久保留

答案:C

评析:事实上,无论有无修饰,外部变量都具有A、B和c三种特性。

作为一种修饰,仅是限制此类型外部变量的引用范围:只能在定义它

的文件范国内运用。

(41)以下程序的输出结果是。

(x)x*x

0

{a,3;

(1);

("%d'n”,a);

)

A)8B)9C)17D)20

答案:B

评析:本题宏替换中遇到形参x以实参代替,其它字符不变。(1)绽开

后应为字符串*。

(42)下面是对宏定义的描述,不正确的是。

A)宏不存在类型问题,宏名无类型,它的参数也无类型

B)宏替换不占用运行时间

C)宏替换时先求出实参表达式的值,然后代入形参运算求值

D)宏替换只不过是字符替代而已

答案:c

评析:宏替换实质上就是字符替代,它不行能进行计算,故C错误。

带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序

内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。

(43)以下程序(程序左边的数字为附加的行号)。

1

2

3()

4{s[尸'

5(s);

6区”

7f,%3s\n,\s);}

A)没有错B)第1行有错C)第6行有错D)第7行有错

答案:B

评析:字符串复制函数包含在头文件.h中,因此,程序中的第1行

文件包含叮哝是错误的。

(44)若有如下说明,则的叙述是正确的。

{a;

b[21;

}a;

A)结构体变量a与结构体成员a同名,定义是非法的

B)程序只在执行到该定义时才为结构体支配存储单元

C)程序运行时为结构体支配6个字节存储单元

D)类型名可以通过关键字提前引用(即引用在前,说明在后)

答案:D

评析:结构体变量a与结构体成员a同名是合法的定义,引用成员a

的方法是a.a,变量a处于不同的“层次”上,系统完全能够分清。是

一个结构体名,不会为结构体名支配存储空间,应当是在运行时为结

构体变量a支配6个字节的存储单元,故选项B和选项C错误。

(45)若有以下结构体定义,则是正确的弓I用或定义。

{x;

y;

}vl;

A).10B)v2.10

C)v2;v2.D)v2={10};

答案:D

评析:在定义结构体变量时,不能只用结构体名或关键字进行定义,

必需要用结构体类型名定义,在引用结构体成员变量时,须要用结

构体变量名进行弓I用,所以选D。

(46)下列程序的执行结果是。

1;

c[21;

);

0

{x;

x.c[0]=10:

x.c[l]=l:

(“\n%d”.i);

)

A)266B)C)265D)138

答案:A

评析:由于本题定义的是共用体,所以成员表列中的整型变量x与字

符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[O]

位于低字节,c[l]位于高字节,所以x.i的值为266。

(47)已知形成链表的存储结构如下图所示,则下述类型描述中的空白

处应填。

(;

);

A)B)*

C)D)*

答案:D

评析:在单向链表中,由于每个结点须要存储下一个结点的地址,且

下一个结点的数据类型与前一个结点的数据类型完全相同,故应为

(48)已知小写字母a的码为97,大写字母A的,码为65,以下程序

的结果是。

0

{3266;

)

A)66B)98C)bD)B

答案:C

评析:位运算符“1”的作用是按位或,即两个二进制数的相应位中只

要有一个为1,该位的结果值为1。最终以字符型输出,98对应的字

将"b”。

(49)C语言库函数龟()的功能是。

A)从指向的文件中读取长度n的字符串存入指向的内存

B)从指向的文件中读取长度不超过的字符串存入指向的内存

C)从指向的文件中读取n个字符串存/指向的内存

D)从读取至多n个字符到文件

答案:B

评析:函数的作用是从指定的文件读入一个字符串。();中的n为要

求得到的字符的个数,但只从指向的文件输入1个字符,然后在最终

加一个,、0,字符,因此得到的字符串共有n个字符。

(50)下述程序向文件输出的结果是。

0

{*("";

(J%d%5.Of%c%d”,58,76273.0,'・',2278);

0;

)

A)5876273-2278B)5876273O.000000-2278

C)5876273-2278D)因文件为二进制文件而不行读

答案:C

评析:函数工作时,多个数据间不会自动加分隔符,选项A错误;

浮点数的输出格式是“%5.Of'表明其小数部分输出O位,即没有输

出,所以选项B也是错误的。

二、填空题(每空2分,共40分)

请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上

不得分。

(1)对于长度为n的依次存储的线性表,当随机插入和删除一个元素

时,需平均移动元素的个数为【1】。

答案:[1]n/2

评析:删除一个元素,平均移动的元素个数为(2+...+0)(1)/2;插

入一个元素,平均移动元素个数为(2+...+1)(1)/2;所以总体平均

移动元素个数为n/2O

(2)注释说明白程序的功能,它分为L2J注释和功能性注释。

答案:[2J序言性

评析:注释一般分为序言性注释和功能性注释。

(3)软件测试中路径或盖测试是整个测试的基础,它是对软件[3]进

彳亍试。

答案:【3】结构

评析:路径测试是白盒测试方法中的一种,它要求对程序中的每条路

径最少检查一次,目的是对软件的结构进行测试。

(4)数据库技术的主要特点为数据的集成性、数据的高L4]和低冗

余性、数据独立性和数据统一管理与限制。

答案:【4】共享性

评析:数据库技术的主要特点有以下几个方面:数据的集成性,数据

的高共享性与低冗余性,数据韵独立性,数据统一管理与限制。

(5)数据元素之间[51的整体称为逻辑结构。

答案:[51逻辑关系

评析:数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构

就是数据的组织形式。

(6)若有定义52,则执行表达式*后,y的值为【6】

答案:[6].16

评析:将赋值运算符右侧的“表达式”的值赋给左侧的变量,并且赋值

运算符依据“白右而左”的结合依次,本题表达式应先算m的值为10,

再运算y的值为8,最终计算(-8)8+(・8)16。

(7)若x和y都是型变量,]的初值为3.0,y的初值为2.0,则表达

式(y,(x))的值为L7Jo

答案:L7J8.000000

评析:函数功能是求x的确定值,计算结果为型。功能是计算x的y

次方的值,计算结果同样为型。所以本题表达式相当于2.0的3.0

次方,结果为8.OOOOOOo

(8)设有a,b;,若要通过运算屏蔽掉a中的其它位,只保留第2位

和第8位(右起为第1位),则b的二进制是【81o

答案:[8]10000010

评析:运算的规则是只有当两个相应的二进制位都为1时,该位

的结果才为要保留第、位,只要将其与二进制数相

lo2810000010

与O

(9)下列程序执行后输出的结果是【9】o

f(a)

{0;

(C);

}

0

{2,i,k;

(;i<2;)

0;

("%d'n",k);

)

答案:[917

评析:在程序执行时,变量仅初始化一次,下次运用时将运用上次保

有的值。

(10)下面程序执行后输出的结果是【10】o

13:

(x,y)

{3;

(x*);

)

0

{75;

("%d\n”(a,b)/m);

)

答案:L10J2

评析:本题变量m既是外部变量(值是13),又是函数的局部变量(值

为3)。函数(x*)的值为7*5-3=32,在函数中,()/m中的m应取外部

变量的值13,因此输出2。

(11)下列程序执行后输出的结果是【11】0

0

{[10],0;

(0;i<10;)[1];

(1;i<4;)[il;

("%d\n”,k);

)

答案:【11】12

评析:本题的第一个循环用于给数组赋初值,其次个循环用于求和运

算。由于其次个循环初始值为1,而循环条件为i<4,所以求的是[1]

到⑶与i的和,所以输出结果为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论