C语言基础能力测试题及答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

C语言基础能力测试题及答案

一、选择题(每题5分,共30分)

以下关于C语言变量声明的说法,正确的是()

A.变量声明必须放在函数开头

B.同一作用域内,变量名可以重复定义

C.声明inta;后,a的初始值是随机值

D.变量声明时必须赋值

执行以下代码,输出结果是()

#includestdio.h

intmain(){

intx=5,y=3;

printf(%d,(x++y--)?x:y);

return0;

}

A.5B.6C.3D.2

关于数组的描述,错误的是()

A.数组名本质是常量指针,不能被赋值

B.数组在内存中是连续存储的

C.可以通过数组名+下标访问元素,如arr[2]等价于*(arr+2)

D.定义intarr[5];后,arr[5]是合法访问

以下函数调用中,属于值传递的是()

A.调用函数时传递数组名

B.调用函数时传递变量地址

C.调用函数时传递int类型变量

D.调用函数时传递指针变量

执行以下代码,输出结果是()

#includestdio.h

intfun(inta){

staticintb=2;

b+=a;

returnb;

}

intmain(){

printf(%d,fun(3));

printf(%d,fun(4));

return0;

}

A.59B.55C.58D.37

关于指针的用法,正确的是()

A.int*p;*p=10;(未初始化指针直接赋值)

B.inta=5;int*p=a;printf(%d,*p);

C.inta[3]={1,2,3};int*p=a;p++;*p=4;(数组元素被修改为4)

D.int*p=NULL;if(p){printf(非空);}

二、填空题(每空3分,共15分)

若要定义一个能存储10个字符串(每个字符串最长20个字符)的二维数组,声明方式为:__________。

执行代码inta=6,b=4;intc=a^b;,c的值是__________(二进制异或运算)。

函数声明intsum(intx,inty);中,sum是__________,(intx,inty)是__________。

定义int*p=(int*)malloc(4*sizeof(int));后,若要释放该动态内存,语句为:__________。

三、编程题(共55分)

编写程序,输入10个整数,求其中的最大值、最小值和平均值(保留2位小数)。(15分)

编写函数voidreverse(char*str),实现字符串的逆序(如输入abcde,输出edcba),在main函数中测试。(20分)

编写程序,用冒泡排序对一个包含8个整数的数组进行升序排序,并输出排序前后的数组。(20分)

答案及解析

一、选择题

答案:C

解析:A选项变量声明可在函数内任意位置(C99标准);B选项同一作用域不能重复定义;D选项声明时可赋值(初始化)也可不赋值,未初始化的局部变量值随机。

答案:B

解析:x++先使用后自增(判断时x=5),y--先使用后自减(判断时y=3),53为真,执行x(此时x已自增为6)。

答案:D

解析:数组下标从0开始,intarr[5]的合法下标是0-4,arr[5]越界访问。

答案:C

解析:值传递是传递变量的副本,函数内修改不影响原变量;A、B、D均为地址传递(指针传递)。

答案:A

解析:static变量只初始化一次,生命周期贯穿程序。第一次调用fun(3):b=2+3=5;第二次调用fun(4):b=5+4=9。

答案:B

解析:A选项未初始化指针指向随机地址,赋值会崩溃;C选项p初始指向a[0],p++后指向a[1],*p=4会将a[1]改为4(原a[1]是2),表述“数组元素被修改为4”不明确(未指定哪个元素),错误;D选项p=NULL时条件为假,不输出。

二、填空题

charstr[10][21];(每个字符串需留1个字节存结束符\0)

2(6二进制110,4二进制100,异或后10→十进制2)

函数名;参数列表

free(p);p=NULL;(释放后置空避免

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档