版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机二级《C语言程序设计》练习卷考试时间:______分钟总分:______分姓名:______一、选择题(每题2分,共20分。下列每小题给出的四个选项中,只有一项是符合题目要求的。请将正确选项的字母填在括号内)1.以下选项中,合法的C语言整型常量是()。A.0128B.0X1A2.5C.3.14e1D.-0x102.若有定义`intx=10,y=20,z;`,则以下表达式中,其值不为35的是()。A.z=x+(y-x++);B.z=++x+y--;C.z=(x+y)%x+y;D.z=x*(y/x)+y;3.以下关于`scanf`和`printf`函数的描述中,正确的是()。A.`scanf`和`printf`函数是库函数,使用时需要包含头文件`<stdio.h>`。B.`scanf`函数的格式字符串中必须使用`%`开头。C.`printf`函数可以向文件中输出数据,而`scanf`只能从键盘输入数据。D.使用`scanf`输入数据时,若格式不匹配,会自动忽略错误输入。4.以下关于C语言函数的描述中,正确的是()。A.函数可以嵌套定义,即一个函数内部可以定义另一个函数。B.函数必须有返回值,且返回值类型由函数名决定。C.函数的形参可以是任意类型的变量,包括数组名和函数名。D.若函数没有显式返回值,其返回类型默认为`int`。5.以下关于数组的描述中,错误的是()。A.数组名可以作为指针使用,指向其首元素。B.数组的大小必须是编译时已知的常量表达式。C.数组名是常量指针,不能被赋值。D.通过数组名和下标可以访问数组元素,其本质是进行偏移量计算。6.若有定义`intarr[3][4];`,则以下说法中,正确的是()。A.`arr`是大小为12的整数数组。B.`arr[0]`是一个包含4个整数的数组。C.`arr[1][2]`表示第二个一维数组的第三个元素。D.`int(*p)[4];`定义了一个指向包含4个整数的数组的指针。7.若有定义`int*p,a=10,b=20;`,则以下赋值语句中,合法的是()。A.`p=&b;`B.`p=a;`C.`*p=&a;`D.`p=&a+b;`8.以下关于指针与函数的描述中,正确的是()。A.函数的形参不可以是指针类型。B.函数可以通过指针参数修改调用者的变量值。C.函数不可以返回指针类型的值。D.指针函数的返回值必须是地址常量。9.以下关于结构体的描述中,错误的是()。A.结构体是一种用户自定义的数据类型。B.结构体变量的大小是其中所有成员大小之和。C.结构体成员可以是另一个结构体。D.可以直接对结构体变量进行整体赋值。10.以下关于位运算的描述中,正确的是()。A.`x<<1`的效果是x除以2。B.`3&5`的结果是1。C.`x^x`的结果是0。D.`~0`的结果是-1。二、填空题(每空2分,共20分。请将答案填写在横线上)1.C语言中,用于表示逻辑值`真`的关键字是______,表示逻辑值`假`的关键字是______。2.C语言中,用于表示`非`运算的运算符是______,用于表示`或`运算的运算符是______。3.若有定义`intx=5;`,则执行语句`x=x<<2;`后,x的值变为______。4.若有定义`intarr[5]={1,2,3,4,5};`,则数组元素`arr[3]`的值是______。5.若有定义`int*p=NULL;`,则`p`指向一个______(填“空”或“非空”)内存地址。6.若有结构体定义`structNode{intdata;structNode*next;};`,则变量`n`的`next`成员应该使用`______`(填关键字)来访问。7.在C语言中,使用`______`(填函数名)函数可以打开一个文件进行读写操作。8.`switch`语句中的`case`标签后面,通常跟一个______(填表达式类型)或常量表达式。9.若函数返回类型为`void`,表示该函数______(填“有”或“没有”)返回值。10.若有代码`inti=10;for(;i>0;i--);`则循环体将执行______次。三、程序阅读理解题(每题10分,共20分。请阅读下列程序,写出程序运行后的输出结果或函数的功能)1.```c#include<stdio.h>intfun(inta,intb){if(a>b)returna;elsereturnb;}intmain(){intx=5,y=10,z=15;printf("Maxofx,y:%d\n",fun(x,y));printf("Maxofy,z:%d\n",fun(fun(y,z),x));return0;}```2.```c#include<stdio.h>intmain(){intarr[5]={5,1,4,2,8};inttemp,i,j;for(i=0;i<4;i++){for(j=0;j<4-i;j++){if(arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}printf("Sortedarray:");for(i=0;i<5;i++){printf("%d",arr[i]);}printf("\n");return0;}```四、程序填空题(共20分。请将程序中缺失的部分补充完整,使其能够实现题目要求的功能)```c#include<stdio.h>//函数声明voidprintArray(intarr[],intsize);intfindMax(intarr[],intsize);intmain(){intnumbers[]={7,3,8,1,9,4,5};intsize=sizeof(numbers)/sizeof(numbers[0]);intmaxNum;printArray(numbers,size);maxNum=findMax(numbers,size);printf("Themaximumnumberinthearrayis:%d\n",maxNum);return0;}//补充完整以下函数voidprintArray(intarr[],intsize){inti;for(i=0;______;i++){printf("%d",arr[i]);}printf("\n");}intfindMax(intarr[],intsize){intmax=arr[0];inti;for(i=1;______;i++){if(arr[i]>max){max=arr[i];}}returnmax;}```五、程序设计题(共20分。请编写完整的C程序代码,实现题目要求的功能)编写一个C程序,从标准输入(键盘)读取5个整数,存储在一个数组中。然后计算并输出这些整数中的最大值和最小值。假设输入的整数均不相同。```c#include<stdio.h>intmain(){//在此处补充代码,实现题目要求的功能//注意:无需定义额外的函数return0;}```试卷答案一、选择题1.D解析:A选项0128是八进制,表示十进制的10。B选项0X1A2.5是十六进制浮点数,C语言不支持。C选项3.14e1是浮点数。D选项-0x10是十六进制常量,表示十进制的-16,合法。2.C解析:A选项,z=10+(20-10)=20;然后x自增为11。B选项,z=11+20=31;然后x自增为12,y自减为19。C选项,z=(10+20)%10+20=30%10+20=0+20=20。D选项,z=10*(20/10)+20=10*2+20=40。3.A解析:A选项正确描述了`scanf`和`printf`是标准输入输出库函数,需包含`<stdio.h>`。B选项`scanf`格式字符串可以不用`%`开头(如`scanf("%d",&x);`)。C选项`printf`可以向文件输出需配合文件指针,`scanf`可从文件输入。D选项`scanf`若输入格式不符,通常会返回错误,且输入流中的错误数据可能仍留在输入缓冲区。4.C解析:A选项错误,函数不能嵌套定义。B选项错误,函数可以返回`void`类型。C选项正确,函数形参可以是各种类型,包括数组名(传数组时)和函数指针(传函数时)。D选项错误,函数返回值类型由返回值类型声明决定。5.A解析:A选项错误,数组名是常量指针,指向首元素地址,其指向的内存块大小是固定的,不能通过数组名本身修改指向。B、C、D选项正确。6.B解析:A选项错误,`arr`是二维数组名,其类型可视为`int[3][4]`,大小为3*4=12个`int`单元,但`arr`本身不是大小为12的一维数组。B选项正确,`arr[0]`就是第一个一维数组,类型为`int[4]`。C选项错误,`arr[1][2]`是`int`类型元素,不是数组。D选项错误,`int(*p)[4]`是行指针,指向包含4个`int`的行。7.A解析:A选项正确,`p`被赋值为变量`b`的地址。B选项错误,`p`是`int*`,`a`是`int`,不能直接赋值。C选项错误,`*p`是`int`类型,`&a`是`int*`类型。D选项错误,`a+b`是`int`类型,不是地址。8.B解析:A选项错误,函数形参可以是各种类型,包括指针。B选项正确,通过指针参数传递的是地址,函数内部可以通过解引用修改对应变量的值。C选项错误,函数可以返回`void`类型,可以理解为返回`NULL`指针。D选项错误,指针函数返回的是函数地址,但也可以返回其他类型的指针。9.D解析:A、B、C选项正确描述了结构体。D选项错误,结构体变量不能直接整体赋值,必须逐个成员赋值或使用`memcpy`函数。10.C解析:A选项错误,`x<<1`是x乘以2。B选项错误,`3&5`结果是`0011&0101=0001`(1)。C选项正确,`x^x`是x与自身进行按位异或,任何数与自身异或结果为0。D选项正确,`~0`是0的反码,在补码表示中为-1。二、填空题1.`1`,`0`解析:C语言逻辑运算符`&&`和`||`的真值分别用`1`(真)和`0`(假)表示。2.`!`,`||`解析:`!`是逻辑非运算符,`||`是逻辑或运算符。3.20解析:`x<<2`表示将x的二进制表示向左移动2位,相当于x乘以2的2次方,即x*4。x初始为5,移动后变为20。4.4解析:数组`arr`初始化为`{1,2,3,4,5}`,`arr[3]`表示第四个元素(下标从0开始),其值为4。5.空解析:`int*p=NULL;`将指针`p`初始化为空指针,它不指向任何有效的内存地址。6.`->`解析:访问结构体指针成员,使用`->`运算符。`n->next`表示结构体变量`n`的`next`指针成员。7.`fopen`解析:`fopen`函数用于以指定的模式打开一个文件,返回文件指针。8.常量解析:`switch`语句中的`case`标签后面必须跟一个整型常量表达式(字面量、符号常量或常量表达式),或者枚举常量。9.没有解析:函数返回类型为`void`时,表示该函数不返回任何值。10.4解析:`for`循环初始化`i=10`,条件`i>0`成立(10>0),循环执行。循环体执行一次后,`i--`变为9,条件仍成立,执行第二次。以此类推,直到`i`变为0时,条件`i>0`不成立,循环结束。循环体共执行了10-0=4次。三、程序阅读理解题1.Maxofx,y:10Maxofy,z:15解析:`fun(a,b)`函数返回`a`和`b`中较大的值。`main`函数中,`fun(x,y)`即`fun(5,10)`,返回10。`fun(y,z)`即`fun(10,15)`,返回15。然后`fun(fun(y,z),x)`即`fun(15,5)`,返回15。所以输出分别是10和15。2.Sortedarray:12458解析:该程序实现的是冒泡排序算法。外层循环控制排序趟数(4趟),内层循环进行相邻元素比较和交换,将当前未排序部分的最大元素“冒泡”到末尾。经过4轮排序后,数组`arr`变为`{1,2,4,5,8}`。四、程序填空题```cvoidprintArray(intarr[],intsize){inti;for(i=0;i<size;i++){//补充条件:遍历到数组末尾printf("%d",arr[i]);}printf("\n");}intfindMax(intarr[],intsize){intmax=arr[0];inti;for(i=1;i<size;i++){//补充条件:遍历到数组末尾if(arr[i]>max){max=arr[i];}}returnmax;}```解析:`printArray`函数的`for`循环需要持续到数组元素全部打印完毕,即下标`i`从0变化到`size-1`。`findMax`函数的`for`循环需要从第二个元素开始(`i=1`)遍历到数组最后一个元素(`i=size-1`),以比较并找出最大值。五、程序设计题```c#include<std
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025榆林职业技术学院教师招聘(12人)(公共基础知识)综合能力测试题附答案
- 古典名著《水浒传》填空题及答案(易错题)
- 2025年积石山县委宣传部下属事业单位招聘职业能力测试备考题库300道附答案
- 云计算在政务大数据中心的算力支撑及能耗调研
- 广东省考试院公务员考试试题及答案
- 2025年木兰县水利局下属事业单位招聘职业能力测试备考题库300道及答案1套
- 2025年淮阴工学院辅导员招聘备考题库附答案
- 2025年积石山县辅警招聘考试备考题库及答案1套
- 2025年度中国工商银行黑龙江省分行春季校园招聘120人(公共基础知识)测试题附答案
- 广东省公安公务员考试试题及答案
- 2025年广东省春季高考语文试卷(解析卷)
- 垃圾焚烧发电检修培训
- 城市老旧建筑改造中的结构加固与性能提升
- 全国计算机等级考试NCRE考务管理系统操作使用手册
- 市政工程材料试验检测送检规范
- 食材销售方案
- 国资委机关公开遴选公务员面试经典题及答案
- 水厂建设总体设计方案
- 服务期间与其他单位部门综合协调方案
- 拆迁专项法律顾问服务方案
- 学校行政管理岗竞聘
评论
0/150
提交评论