2011年3月份计算机二级c语言考试题及答案_第1页
2011年3月份计算机二级c语言考试题及答案_第2页
2011年3月份计算机二级c语言考试题及答案_第3页
2011年3月份计算机二级c语言考试题及答案_第4页
2011年3月份计算机二级c语言考试题及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

2011年3月份计算机二级c语言考试题及答案

一、填空题1.设inta=3,b=4,c=5;表达式a+b>c&&b==c的值是______。2.若有定义:inta[10];则数组a的最后一个元素是______。3.函数调用语句:fun((exp1,exp2),(exp3,exp4,exp5));中,实参的个数是______。4.若有定义:chars[10]="abc\0def";则strlen(s)的值是______。5.若有以下定义和语句:inta=10,b=20,p=&a,q=&b;p=q;则p的值是______。6.设intx=1,y=2;则表达式x--+y的值是______。7.若函数fun的返回值是一个指针,则函数fun的说明语句中,函数名前应加______。8.若有定义:structstudent{intnum;charname[20];}stu;则sizeof(stu)的值是______(假设int占4字节,char占1字节)。9.若有以下程序段:inta=5,b=3;b=a+++b++;执行后,a的值是______。10.若要将一个文件以只读文本方式打开,使用的fopen函数的调用形式是______。二、单项选择题1.以下选项中,合法的C语言关键字是()A.integerB.CharC.shortD.Float2.若有定义:inta=1,b=2,c=3;则执行以下语句后a的值是()a=(b=4)+(c=2);A.6B.4C.2D.编译出错3.以下关于数组的说法中,错误的是()A.数组名代表数组首元素的地址B.数组必须先定义后使用C.数组的下标可以是负数D.数组元素的类型必须相同4.若有定义:chars1[10]="abc",s2[10]="def";则以下语句中能将s2连接到s1后面的是()A.strcat(s1,s2);B.s1=s1+s2;C.strcpy(s1,s2);D.s1+=s2;5.若有函数定义:voidfun(intp){p=10;}则以下调用方式中正确的是()A.inta;fun(a);B.inta;fun(&a);C.intp;fun(p);D.以上都不正确6.以下关于指针的说法中,正确的是()A.指针变量可以存储任何类型的数据B.指针变量必须先赋值后使用C.指针变量的值可以是任意整数D.指针变量和普通变量没有区别7.若有定义:struct{intnum;charname[20];floatscore;}stu;则以下语句中能正确给stu的score成员赋值的是()A.stu.score=80.5;B.score=80.5;C.stu->score=80.5;D.(stu).score=80.5;8.以下关于文件操作的说法中,错误的是()A.fopen函数用于打开一个文件B.fclose函数用于关闭一个文件C.fscanf函数用于从文件中读取数据D.fwrite函数用于向文件中写入字符串9.若有以下程序段:inta=10,b=20;intp1=&a,p2=&b;p1=p2;则执行后a的值是()A.10B.20C.30D.不确定10.以下关于函数的说法中,正确的是()A.函数可以没有返回值B.函数必须有参数C.函数的定义可以嵌套D.函数的调用不可以嵌套三、多项选择题1.以下属于C语言基本数据类型的有()A.整型B.字符型C.实型D.数组类型2.若有定义:inta=10,b=20;则以下表达式的值为真的有()A.a<bB.a==bC.a+b>30D.a-b<03.以下关于数组初始化的说法中,正确的有()A.可以在定义数组时对数组元素进行初始化B.若只对部分数组元素初始化,则未初始化的元素自动初始化为0C.数组初始化时,初始化列表中的元素个数不能超过数组的长度D.可以对二维数组的部分行进行初始化4.若有定义:chars[10]="abc";则以下说法正确的有()A.s是一个字符数组B.s存储的字符串长度为3C.s存储的字符串以'\0'结尾D.可以使用s="def";来修改s存储的字符串5.以下关于指针运算的说法中,正确的有()A.指针可以进行加法运算B.指针可以进行减法运算C.指针可以进行比较运算D.指针可以进行取模运算6.若有定义:struct{intnum;charname[20];}s1,s2;则以下说法正确的有()A.s1和s2是结构体变量B.可以使用s1=s2;来赋值C.可以使用s1.num=10;来给s1的num成员赋值D.可以使用s1->num=10;来给s1的num成员赋值7.以下关于文件操作的函数中,用于读取文件的有()A.fgetcB.fgetsC.fputcD.fputs8.若有函数定义:intfun(inta,intb){returna+b;}则以下调用方式正确的有()A.intc;c=fun(1,2);B.printf("%d",fun(3,4));C.fun(5,6);D.intp;p=fun(7,8);9.以下关于C语言程序结构的说法中,正确的有()A.一个C语言程序可以由多个源文件组成B.一个C语言程序必须有一个main函数C.函数是C语言程序的基本组成单位D.变量必须先定义后使用10.以下关于预处理命令的说法中,正确的有()A.预处理命令以开头B.预处理命令在编译之前执行C.define可以用来定义常量D.include可以用来包含头文件四、判断题1.C语言中,所有变量都必须先定义后使用。()2.表达式10/3的结果是3.3333。()3.数组的下标从0开始。()4.字符串常量是用双引号括起来的字符序列。()5.指针变量只能存储地址。()6.结构体变量可以整体赋值。()7.文件操作中,fopen函数打开文件失败时返回NULL。()8.函数的返回值类型可以和函数定义中的返回值类型不同。()9.预处理命令可以出现在程序的任何位置。()10.二维数组在内存中是按行存储的。()五、简答题1.简述C语言中指针的作用。指针可直接访问内存地址,提高程序效率;能作为函数参数实现数据的双向传递;可用于动态内存分配;方便对数组和字符串进行操作,如遍历数组等。2.简述数组和指针的关系。数组名代表数组首元素的地址,可将数组名赋值给指针,通过指针可以像操作数组一样操作数组元素。指针能更灵活地访问数组元素,如指针的移动可遍历数组。3.简述文件操作的基本步骤。先使用fopen函数以合适的模式打开文件;然后用fgetc、fgets、fscanf等函数读取文件,或用fputc、fputs、fprintf等函数写入文件;最后用fclose函数关闭文件,释放资源。4.简述函数调用的过程。程序执行到函数调用处时,将实参的值传递给形参,保存当前程序执行的位置;然后跳转到被调用函数执行;函数执行完后返回结果,回到保存的位置继续执行后续代码。六、讨论题1.讨论使用指针可能带来的风险。指针使用不当可能导致空指针引用,使程序崩溃;野指针指向未知内存,操作它会造成数据混乱;内存泄漏问题,动态分配内存后未释放,会浪费系统资源;指针越界访问会破坏其他数据。2.讨论数组和链表的优缺点。数组优点是随机访问速度快,可通过下标直接访问;缺点是大小固定,插入和删除效率低。链表优点是可动态分配内存,插入和删除操作方便;缺点是随机访问慢,需从头遍历。3.讨论文件操作中不同打开模式的区别。“r”只读模式,打开已存在文件,若文件不存在则出错;“w”只写模式,文件存在则清空内容,不存在则创建;“a”追加模式,在文件末尾追加数据,不存在则创建;“r+”读写模式,文件需存在;“w+”读写模式,会清空文件;“a+”读写追加模式,在末尾读写。4.讨论函数参数传递的两种方式及其特点。值传递是将实参的值复制给形参,函数内对形参的修改不影响实参;地址传递是将实参的地址传递给形参,函数内可通过地址修改实参的值,能实现数据的双向传递。答案填空题1.02.a[9]3.24.35.206.

温馨提示

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

评论

0/150

提交评论