ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:27.04KB ,
资源ID:4572444      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4572444.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言笔试题总结.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言笔试题总结.docx

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

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

3、4 D)5答案:C评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与ll比较的关键码分别为15,8,10,12四个。(5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_。A)n-1 B)n C)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评析:数据流图有4种成分

5、:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。(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程序的基本单位。(13)可以在C语言中用做用户标识符的是_。A)v

7、oid B)as_b3 C)for D)2cdefine _123 -abc DoWORD If cas SIG答案: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,shortintunsignedlongdoublefloat,故结果为float型。(15)main() float x=123A56;printf(“-52fn”,x);以上程序输出的结果是_。A)1234 B)1235 C)12345 D)12346答案:D评析:f格式符,用来输出实数,以小数形式输出。“-mnf”的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m。则右端补空格。如果总长度大于列数,则按实际情况四舍五入输出。(16)下面语句的输出结果是_。Printf(“dn”,strlen(“t”065xffn”);A)14 B)8C)5 D)输出项不合法,

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=0 B)a=l,b=l,c=1C)a=l,b=O, c=I D)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)55 B)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)*2)contin

11、ue;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);case 3:case 4:br

12、eak;default:printf(”OK”);A)0 B)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)456 B)258 C)369 D)789答案:C评析:根据二维数组的定义得出:mOO=1,mO1=4

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

14、d k=1;dok*=numlO;num=lO;while(num);return(k);main() unsigned n。26;printf(”dn”,fun(n);A)0 B)4 C)12 D)无限次循环答案:C评析:本题定义了一个fun函数,用于num求和,具体执行过程如下:num=26:k=k*(num10)=1*(2610),所以k=6,num=num10=2;num=2:k=k*(num10)=6*(210),所以k=12,num=numlO=O;num=O:while条件不成立,所以返回k的值12(24)已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序_

15、。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评析:本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即20。然后以八进制的形式输出a+a-A的值为97对应的八进制数141,由于最后一个表达式b没有对应输出格式的输出项表列就不会输出。(25)C语言函数返回值的类型是由_决定的。A)return语句中的表达式类型 B)调用函数的主调函数类型C)调用函数时临时 D)定义函数时所指定

16、的函数类型答案:D评析:函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致,如果不_致,则以函数类型为准,即函数类型决定返回值的类型。(26)下列程序执行后输出的结果是_。int d=l:fun(int p) int d。5;d+=p+;printf(”d,”,d);main() int a=3;fun(a);d+=a+:printf(”dn”,d);A)8,12 B)9,13 C)8,4 D)9,5答案:C评析:本题执行过程如下:首先调用fun函数,使得实参a的值3传递给形参p,得到局部变量d=8,打印出局部变量d的值8;返回主函

17、数执行“d+=a+”,此处的d为全局变量,所以d=1+3=4(由于本题是值传递,所以在函数fun中对p值的改变并不能引起a的改变),故本题的输出是8,4。(27)已知下面的程序段,正确的判断是_。#define A 3#define B(A)(_A+1)a)int a=3:X=3*(A+B(7);A)程序错误,不允许嵌套定义 B)X=93C)X=8l D)程序错误,宏定义不允许有参数答案:C评析:本题的宏定义是合法的,宏定义展开为3*(3+(A+1)*a)=3*(3+(7+1)*3)=81。(28)定义int*swap()指的是_。A)一个返回整型值的函数swap()B)一个返回指向整型值指针

18、的函数swap()C)一个指向函数swap()的指针,函数返回一个整型值D)以上说法均错答案:B评析:一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和号,由于f)优先级高于t。故它是一个返回整型指针的函数。(29)以下程序段的输出结果是_。main() char s110,s210,s310;scanf(”s”,s1);gets(s2);gets(s3);puts(s 1);puts(s2);puts(s3);输入数据如下: (此处代表回车符)aaabbbA)aaa B)aaa C)aaa0bbb0 D)aaabbbbbbbbb答案:B评析

19、:scanf是标准输入函数,在输入字符串aaa时,实际的内容为“aaa0”,“0”是由系统自动加入的;gets的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以“0”代替换行符。(30)下述函数功能是_。Int fun(char*x) char*y=x;while(*y+);return y-x-l;A)求字符串的长度 B)求字符串存放的位置C)比较两个字符串的大小 D)将字符串x连接到字符串y后面答案:A评析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。(31)以下程序的输出结果是_。main() char

20、 str12=s,t,r,i,n, g;printf(”dn”,strlen(str);A)6 B)7 C)ll D)12答案:A评析:在c语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动添加上“0”,故字符串的长度为6。(32)请读程序段:char str=”ABCD”,*p=str;printf(”dn”,*(p+4);程序段的输出结果是_。A)68 B)0C)字符D的地址 D)不确定的值答案:B评析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“0”,故指向字符数组的指针p的+(p+4)的

21、值为“0”。由于“0”的编码值就是0,所以本题输出为0。(33)若有定义:int a410;,则以下选项中对数组元素aij引用错误的是_。(0=i4,0=js2,则返回个正数;如果sls2,所以函数的值为正数。(36)下面程序的输出是_。char s=”ABcD”;main() char*p;for(p=s;ps+4;p+)printf(”sn”,p);A)ABCD B)A C)D D)ABCDBCD B C ABCCD C B ABD D A A答案:A评析:在第一次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环

22、时,p值增加1,p指向了s的第二个元素输出BCD;第三次输出CD;第四次输出D;直到p指向字符串的结束字符“0”,for循环终止执行。(37)以下程序输出的结果为_。main() char* alpha6=“ABCD”,EFGH”,”IJKL”,”MNOP”,”QRST”,”UVwX”;char*p;int i:p=alpha;for(I=0;i=0;i,i)printf(“c”,*pi);printf(”n”);A)SO B)SP C)SPOPK D)SHOB答案:A评析:p0存放的是“BOOL0”的首地址;p1存放的是“OPK0”的首址等。在printf语句中输出的+pI表示pi字符串的第一个字符。在for循环中,i的初值为3,那么输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1