还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
C语言2011年考试真题及答案深度剖析
一、单选题(每题1分,共20分)
1.以下哪个不是C语言的关键字?()(1分)A.voidB.structC.functionD.if【答案】C【解析】function不是C语言的关键字,其余都是
2.C语言中,用于表示逻辑“真”的值是()(1分)A.0B.1C.-1D.任意非零值【答案】D【解析】在C语言中,任意非零值都表示逻辑“真”
3.以下哪个运算符的优先级最高?()(1分)A.==B.!=C.D.!【答案】D【解析】逻辑非运算符`!`的优先级最高
4.若定义了整型变量`inta=5;`,则表达式`a2`的值是()(1分)A.10B.20C.40D.80【答案】B【解析】`a2`相当于`a2^2`,即`54=20`
5.以下哪个语句是合法的C语言赋值语句?()(1分)A.x=y=z;B.x=y+z=w;C.x=yz+w;D.x=y/z;【答案】A【解析】选项A是合法的赋值语句,其他选项中存在语法错误
6.在C语言中,以下哪个函数用于动态分配内存?()(1分)A.freeB.mallocC.reallocD.calloc【答案】B【解析】`malloc`用于动态分配内存
7.以下哪个语句用于声明一个指向整型的指针变量?()(1分)A.intp;B.intp;Cp=10;D.intp;【答案】A【解析】`intp;`是声明一个指向整型的指针变量
8.以下哪个语句是合法的C语言条件语句?()(1分)A.ifxyx=y;B.whilexyx=y;C.dox=y;whilexy;D.ifxythenx=y;【答案】A【解析】选项A是合法的C语言条件语句
9.以下哪个函数用于打开文件?()(1分)A.fopenBfcloseC.freadDfwrite【答案】A【解析】`fopen`用于打开文件
10.以下哪个语句用于关闭文件?()(1分)A.fopenBfcloseC.freadDfwrite【答案】B【解析】`fclose`用于关闭文件
11.以下哪个语句用于从文件中读取数据?()(1分)A.fopenBfcloseC.freadDfwrite【答案】C【解析】`fread`用于从文件中读取数据
12.以下哪个语句用于向文件中写入数据?()(1分)A.fopenBfcloseC.freadDfwrite【答案】D【解析】`fwrite`用于向文件中写入数据
13.以下哪个函数用于计算字符串的长度?()(1分)A.strlenB.strcpyC.strcatD.strchr【答案】A【解析】`strlen`用于计算字符串的长度
14.以下哪个函数用于字符串复制?()(1分)A.strlenB.strcpyC.strcatD.strchr【答案】B【解析】`strcpy`用于字符串复制
15.以下哪个函数用于字符串连接?()(1分)A.strlenB.strcpyC.strcatD.strchr【答案】C【解析】`strcat`用于字符串连接
16.以下哪个函数用于查找字符串中的字符?()(1分)A.strlenB.strcpyC.strcatD.strchr【答案】D【解析】`strchr`用于查找字符串中的字符
17.以下哪个函数用于比较两个字符串是否相等?()(1分)A.strlenBstrcmpC.strcatD.strchr【答案】B【解析】`strcmp`用于比较两个字符串是否相等
18.以下哪个函数用于将字符串转换为大写?()(1分)A.struprB.strlwrC.stricmpD.stricmp【答案】A【解析】`strupr`用于将字符串转换为大写
19.以下哪个函数用于将字符串转换为小写?()(1分)A.struprB.strlwrC.stricmpD.stricmp【答案】B【解析】`strlwr`用于将字符串转换为小写
20.以下哪个函数用于将字符串中的所有字符转换为大写或小写?()(1分)A.struprB.strlwrC.stricmpD.stricmp【答案】C【解析】`stricmp`用于将字符串中的所有字符转换为大写或小写
二、多选题(每题2分,共20分)
1.以下哪些属于C语言的基本数据类型?()(2分)A.intB.floatC.charD.doubleE.boolean【答案】A、B、C、D【解析】C语言的基本数据类型包括int、float、char和double,boolean不是C语言的基本数据类型
2.以下哪些运算符是C语言中的逻辑运算符?()(2分)A.B.|C.^D.!E.~【答案】A、B、D【解析】C语言中的逻辑运算符包括、|和!,^和~是位运算符
3.以下哪些函数用于动态分配内存?()(2分)A.mallocB.freeC.reallocD.callocE.new【答案】A、B、C、D【解析】`malloc`、`free`、`realloc`和`calloc`都是C语言中用于动态分配内存的函数,`new`是C++中的操作符
4.以下哪些语句是合法的C语言条件语句?()(2分)A.ifxyx=y;B.whilexyx=y;C.dox=y;whilexy;D.ifxythenx=y;【答案】A、B、C【解析】选项A、B和C是合法的C语言条件语句,选项D中的`then`不是C语言的语法
5.以下哪些函数用于文件操作?()(2分)A.fopenBfcloseC.freadDfwriteE.printf【答案】A、B、C、D【解析】`fopen`、`fclose`、`fread`和`fwrite`都是用于文件操作的函数,`printf`用于向标准输出设备输出数据
6.以下哪些函数用于字符串操作?()(2分)A.strlenB.strcpyC.strcatD.strchrE.strupr【答案】A、B、C、D、E【解析】`strlen`、`strcpy`、`strcat`、`strchr`和`strupr`都是用于字符串操作的函数
7.以下哪些运算符是C语言中的位运算符?()(2分)A.B.|C.^D.!E.~【答案】A、B、C、E【解析】C语言中的位运算符包括、|、^和~,!是逻辑非运算符
8.以下哪些语句是合法的C语言赋值语句?()(2分)A.x=y=z;B.x=y+z=w;C.x=yz+w;D.x=y/z;【答案】A、C、D【解析】选项A、C和D是合法的C语言赋值语句,选项B中存在语法错误
9.以下哪些函数用于动态分配内存?()(2分)A.mallocB.freeC.reallocD.callocE.new【答案】A、B、C、D【解析】`malloc`、`free`、`realloc`和`calloc`都是C语言中用于动态分配内存的函数,`new`是C++中的操作符
10.以下哪些语句是合法的C语言条件语句?()(2分)A.ifxyx=y;B.whilexyx=y;C.dox=y;whilexy;D.ifxythenx=y;【答案】A、B、C【解析】选项A、B和C是合法的C语言条件语句,选项D中的`then`不是C语言的语法
三、填空题(每题2分,共20分)
1.在C语言中,用于表示逻辑“假”的值是______(2分)【答案】0【解析】在C语言中,0表示逻辑“假”
2.在C语言中,用于表示逻辑“真”的值是______(2分)【答案】非0值【解析】在C语言中,任意非零值都表示逻辑“真”
3.在C语言中,用于表示单目运算符的优先级最高的是______(2分)【答案】!【解析】在C语言中,逻辑非运算符`!`的优先级最高
4.在C语言中,用于动态分配内存的函数______(2分)【答案】malloc【解析】`malloc`用于动态分配内存
5.在C语言中,用于关闭文件的函数______(2分)【答案】fclose【解析】`fclose`用于关闭文件
6.在C语言中,用于从文件中读取数据的函数______(2分)【答案】fread【解析】`fread`用于从文件中读取数据
7.在C语言中,用于向文件中写入数据的函数______(2分)【答案】fwrite【解析】`fwrite`用于向文件中写入数据
8.在C语言中,用于计算字符串的长度的是______函数(2分)【答案】strlen【解析】`strlen`用于计算字符串的长度
9.在C语言中,用于字符串复制的函数______(2分)【答案】strcpy【解析】`strcpy`用于字符串复制
10.在C语言中,用于字符串连接的函数______(2分)【答案】strcat【解析】`strcat`用于字符串连接
四、判断题(每题1分,共10分)
1.两个负数相加,和一定比其中一个数大()(1分)【答案】(×)【解析】如-5+-3=-8,和比两个数都小
2.在C语言中,任意非零值都表示逻辑“真”()(1分)【答案】(√)【解析】在C语言中,任意非零值都表示逻辑“真”
3.在C语言中,逻辑非运算符`!`的优先级最高()(1分)【答案】(√)【解析】在C语言中,逻辑非运算符`!`的优先级最高
4.在C语言中,`malloc`用于动态分配内存()(1分)【答案】(√)【解析】`malloc`用于动态分配内存
5.在C语言中,`fclose`用于关闭文件()(1分)【答案】(√)【解析】`fclose`用于关闭文件
6.在C语言中,`fread`用于从文件中读取数据()(1分)【答案】(√)【解析】`fread`用于从文件中读取数据
7.在C语言中,`fwrite`用于向文件中写入数据()(1分)【答案】(√)【解析】`fwrite`用于向文件中写入数据
8.在C语言中,`strlen`用于计算字符串的长度()(1分)【答案】(√)【解析】`strlen`用于计算字符串的长度
9.在C语言中,`strcpy`用于字符串复制()(1分)【答案】(√)【解析】`strcpy`用于字符串复制
10.在C语言中,`strcat`用于字符串连接()(1分)【答案】(√)【解析】`strcat`用于字符串连接
五、简答题(每题2分,共10分)
1.简述C语言中动态内存分配的函数有哪些及其功能(2分)【答案】C语言中动态内存分配的函数有`malloc`、`free`、`realloc`和`calloc``malloc`用于分配指定大小的内存块,`free`用于释放已分配的内存,`realloc`用于重新分配内存块的大小,`calloc`用于分配内存并初始化为
02.简述C语言中字符串操作函数`strlen`、`strcpy`和`strcat`的功能(2分)【答案】`strlen`用于计算字符串的长度,`strcpy`用于字符串复制,`strcat`用于字符串连接
3.简述C语言中逻辑运算符``、`|`和`!`的功能(2分)【答案】``用于逻辑与运算,`|`用于逻辑或运算,`!`用于逻辑非运算
4.简述C语言中位运算符``、`|`、`^`和`~`的功能(2分)【答案】``用于按位与运算,`|`用于按位或运算,`^`用于按位异或运算,`~`用于按位取反运算
5.简述C语言中文件操作函数`fopen`、`fclose`、`fread`和`fwrite`的功能(2分)【答案】`fopen`用于打开文件,`fclose`用于关闭文件,`fread`用于从文件中读取数据,`fwrite`用于向文件中写入数据
六、分析题(每题10分,共20分)
1.分析以下代码的功能,并说明每行代码的作用(10分)```cincludestdio.hintmain{inta=5,b=10;intp1=a,p2=b;p1=p1+p2;printfa=%d,b=%d\n,a,b;return0;}```【答案】-`includestdio.h`包含标准输入输出库-`intmain`定义主函数-`inta=5,b=10;`定义两个整型变量a和b,并分别赋值为5和10-`intp1=a,p2=b;`定义两个指向整型的指针变量p1和p2,并分别指向a和b的地址-`p1=p1+p2;`将p1和p2指向的值相加,并将结果赋值给p1指向的变量-`printfa=%d,b=%d\n,a,b;`输出a和b的值-`return0;`返回0,表示程序正常结束该代码的功能是将两个整型变量的值相加,并将结果赋值给第一个变量,然后输出两个变量的值
2.分析以下代码的功能,并说明每行代码的作用(10分)```cincludestdio.hintmain{charstr1[]=Hello,str2[]=World;charp1=str1,p2=str2;whilep1!=\0{p1++;}whilep2!=\0{p1++=p2++;}p1=\0;printf%s%s\n,str1,str2;return0;}```【答案】-`includestdio.h`包含标准输入输出库-`intmain`定义主函数-`charstr1[]=Hello,str2[]=World;`定义两个字符数组str1和str2,并分别赋值为Hello和World-`charp1=str1,p2=str2;`定义两个指向字符的指针变量p1和p2,并分别指向str1和str2的地址-`whilep1!=\0{p1++;}`移动p1指针,直到指向str1的末尾-`whilep2!=\0{p1++=p2++;}`将str2的字符依次复制到str1的末尾-`p1=\0;`在str1的末尾添加字符串结束符-`printf%s%s\n,str1,str2;`输出str1和str2连接后的字符串-`return0;`返回0,表示程序正常结束该代码的功能是将两个字符串str1和str2连接起来,并输出连接后的字符串
七、综合应用题(每题20分,共20分)
1.编写一个C语言程序,实现以下功能-从文件中读取10个整数,并将它们存储在一个整型数组中-计算数组中所有整数的平均值-将数组中的所有整数按从小到大的顺序排序-输出排序后的数组,并显示平均值(20分)【答案】```cincludestdio.hvoidsortintarr[],intn{inti,j,temp;fori=0;in-1;i++{forj=0;jn-1-i;j++{ifarr[j]arr[j+1]{temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain{intarr
[10];inti,sum=0;FILEfp=fopeninput.txt,r;iffp==NULL{printf无法打开文件\n;return1;}fori=0;i10;i++{fscanffp,%d,arr[i];sum+=arr[i];}fclosefp;sortarr,10;printf排序后的数组;fori=0;i10;i++{printf%d,arr[i];}printf\n平均值%.2f\n,doublesum/10;return0;}```该程序的功能是从文件中读取10个整数,计算它们的平均值,将它们按从小到大的顺序排序,并输出排序后的数组和平均值。
个人认证
优秀文档
获得点赞 0