- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
C语言笔试题库及答案(实战版)
一、选择题(共10题)
以下关于C语言变量声明的说法,正确的是()
A.变量声明必须在函数开头
B.全局变量未初始化时默认值为0
C.register变量可以取地址
D.static局部变量的作用域是整个程序
执行以下代码,输出结果是()
#includestdio.h
intmain(){
inta=10;
intb=++a+a++;
printf(%d%d,a,b);
return0;
}
A.1222B.1223C.1121D.1122
关于指针的说法,错误的是()
A.野指针可能导致程序崩溃
B.void*指针可以直接赋值给其他类型指针
C.指针变量存储的是内存地址
D.数组名本质是指向数组首元素的常量指针
以下代码的运行结果是()
#includestdio.h
voidfunc(intarr[]){
arr[0]=100;
}
intmain(){
inta[3]={1,2,3};
func(a);
printf(%d,a[0]);
return0;
}
A.1B.100C.随机值D.编译错误
关于static关键字的用法,错误的是()
A.静态全局变量只能在当前文件访问
B.静态局部变量生命周期与程序一致
C.静态函数可以被其他文件通过extern声明调用
D.静态变量未初始化时默认值为0
执行以下代码,输出结果是()
#includestdio.h
intmain(){
charstr[]=abc;
char*p=str;
printf(%lu%lu,sizeof(str),sizeof(p));
return0;
}
(注:32位系统下指针占4字节,64位占8字节)
A.34B.44C.38D.48
以下哪种情况会导致内存泄漏()
A.局部变量在函数结束后未释放
B.malloc分配的内存未通过free释放
C.全局变量占用的内存未手动释放
D.静态变量占用的内存未释放
关于C语言预处理指令,正确的是()
A.#define定义的宏在编译阶段替换
B.#include可以嵌套包含
C.#if的条件判断支持浮点型表达式
D.#undef用于取消函数的定义
执行以下代码,输出结果是()
#includestdio.h
intmain(){
inti=0;
for(;i5;i++){
if(i==2)
continue;
printf(%d,i);
}
return0;
}
A.0134B.01234C.01345D.编译错误
关于结构体的说法,正确的是()
A.结构体成员的数据类型必须相同
B.结构体变量可以直接用==比较
C.结构体指针访问成员使用-运算符
D.结构体定义时必须指定结构体名
二、填空题(共5题)
若有定义inta[5]={1,2,3};,则a[3]的值是______,数组的长度是______。
指针变量p指向int型变量a,则通过p修改a的值为10的语句是______。
写出计算1到100累加和的循环语句(使用for循环):______。
typedefstructStudent{charname[20];intage;}Stu;,则定义一个名为tom的学生变量的语句是______。
若要打开当前目录下的test.txt文件用于读取,fopen函数的正确调用是______。
三、编程题(共3题)
编写函数,判断一个整数是否为素数(素数是大于1的自然数,除了1和自身无其他因数)。
编写程序,将一个字符串逆序输出(例如输入abcde,输出edcba),要求不使用额外数组。
编写函数,实现两个有序数组的合并(假设两个数组均为升序排列),合并后的数组仍为升序,且不使用额外的数组空间(在第一个数组中完成合并,假设第一个数组有足够的空闲空间)。
答案及解析
一、选择题
答案:B
解析:A选项错误,C99标准后变量声明可在代码块任意位置;C选项错误,register变量存储在寄存器中,无法取地址;D选项错误,static局部变量作用域仍在当前函数,生命周期为程序全程。
答案:A
解析:
原创力文档


文档评论(0)