计算机等级考试二级C语言考试题目及答案_第1页
计算机等级考试二级C语言考试题目及答案_第2页
计算机等级考试二级C语言考试题目及答案_第3页
计算机等级考试二级C语言考试题目及答案_第4页
计算机等级考试二级C语言考试题目及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

计算机等级考试二级C语言考试题目及答案考试时间:______分钟总分:______分姓名:______一、选择题1.以下哪个选项不属于C语言的关键字?A.intB.defineC.floatD.dynamic2.C语言中,用于动态分配内存的函数是?A.mallocB.callocateC.freeD.allocate3.有以下代码:```cinta=5,b=3;printf("%d",a/b);```输出结果是?A.1B.1.66667C.2D.04.以下关于运算符优先级的说法,正确的是?A.算术运算符>关系运算符>逻辑运算符B.逻辑运算符>关系运算符>算术运算符C.关系运算符>算术运算符>逻辑运算符D.逻辑非运算符>其他所有运算符5.有以下代码:```ccharstr[]="China";char*p=str;while(*p){printf("%c",*p);p++;}```执行后输出结果是?A.ChinaB.chinaC.CHINAD.cHINa6.以下关于指针的描述,错误的是?A.指针可以指向数组B.指针可以指向函数C.所有的指针都可以互相赋值D.指针需要先初始化才能使用7.有以下代码:```c#include<stdio.h>intfunc(intx){returnx*x;}intmain(){int(*p)(int)=func;printf("%d",p(3));return0;}```执行后输出结果是?A.3B.6C.9D.编译错误8.以下关于结构体的描述,正确的是?A.结构体变量的大小是成员中最大类型的大小B.结构体可以嵌套定义C.结构体变量不能作为函数的参数D.结构体定义后必须声明才能使用9.有以下代码:```c#include<stdio.h>structNode{intdata;structNode*next;};structNode*head=NULL;```这段代码定义了一个结构体`Node`,并声明了一个指向`Node`的指针`head`。如果现在要向这个单链表的头部插入一个新的节点,以下哪个操作是必要的?A.初始化`head`为NULLB.分配内存给新节点C.将`head`指向新节点D.以上都是必要的10.有以下代码:```c#include<stdio.h>voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}intmain(){intx=10,y=20;swap(&x,&y);printf("%d%d",x,y);return0;}```执行后输出结果是?A.1020B.2010C.00D.编译错误11.C语言中,用于打开文件的函数是?A.fopenB.openC.fileopenD.create12.有以下代码:```cfor(inti=0;i<5;i++){if(i==3)continue;printf("%d",i);}```执行后输出结果是?A.01234B.0124C.1234D.012413.有以下代码:```c#include<stdio.h>#defineMAX100intmain(){intarr[MAX];printf("%d",sizeof(arr));return0;}```执行后输出结果是?A.100B.4C.arr的大小(依赖于编译器和系统)D.编译错误14.以下哪个语句用于从标准输入读取一个整数?A.scanf("%f",&var);B.cin>>var;C.gets(var);D.scanf("%d",&var);15.有以下代码:```cintarr[3][2]={{1,2},{3,4},{5,6}};printf("%d",arr[1][0]);```执行后输出结果是?A.1B.2C.3D.4二、程序填空题1.以下程序的功能是计算1到10的所有整数之和。请将缺失的部分补充完整。```c#include<stdio.h>intmain(){intsum=0;for(inti=1;i<=10;i++){sum=_______;}printf("Sum=%d",sum);return0;}```2.以下程序的功能是输出九九乘法表。请将缺失的部分补充完整。```c#include<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf("%d*%d=%d\t",_______,_______,i*j);}printf("\n");}return0;}```3.以下程序定义了一个结构体`Student`,并创建了一个`Student`类型的数组`students`,包含3个元素。请将缺失的部分补充完整,以便正确初始化数组元素。```c#include<stdio.h>structStudent{charname[50];intage;};intmain(){structStudentstudents[3]={_______,{"Alice",20},{"Bob",22}};printf("%s,%d\n",students[0].name,students[0].age);return0;}```三、程序改错题```c#include<stdio.h>intsum(intx,inty){returnx+y;}intmain(){inta=5;intb=3;intresult=sum(a,b);printf("%d+%d=%d",a,b,result);int*p=&a;*p=10;printf("%d",*p);intarr[5]={1,2,3,4,5};for(inti=0;i<=5;i++){printf("%d",arr[i]);}return0;}```四、程序设计题编写一个完整的C语言程序,实现以下功能:1.从标准输入读取10个整数,存储在一个数组中。2.使用冒泡排序算法对数组进行升序排序。3.输出排序后的数组。要求:程序中需要包含冒泡排序算法的实现代码,并确保能够正确读取输入和输出结果。试卷答案一、选择题1.B解析:`define`是C语言的预处理器指令,不是关键字。2.A解析:`malloc`是C标准库中用于动态分配内存的函数,参数为大小(字节),返回指向分配内存的指针。3.C解析:整数除法,5除以3的结果是商2,余数1,输出的是商。4.A解析:运算符优先级从高到低大致为:单目运算符>算术运算符(乘除)>关系运算符>逻辑运算符。5.A解析:`while(*p)`循环遍历字符串`str`,`*p`是当前字符,`printf`输出当前字符,直到遇到字符串结束符`'\0'`。6.C解析:不同类型的指针(如指向不同数据类型的指针)不能直接互相赋值,需要类型转换。7.C解析:`func`是一个函数指针,指向`func`函数,`p(3)`调用函数`func`,返回3的平方9。8.B解析:结构体可以嵌套定义,即结构体的成员可以是另一个结构体。9.D解析:向单链表头部插入节点,需要分配内存给新节点、将新节点的`next`指向原头部、将`head`指向新节点。三者都是必要的。10.B解析:`swap`函数通过指针参数间接修改`main`函数中的`x`和`y`的值,交换后`x`为20,`y`为10。11.A解析:`fopen`是C语言标准库中用于打开文件的函数。12.B解析:`continue`语句结束当前循环迭代,不执行后面的`printf`,所以输出0124。13.C解析:`sizeof`运算符计算的是数组占用的总字节大小,`intarr[MAX]`占用`MAX*sizeof(int)`字节。具体值依赖于编译器和系统,但一定是大于等于`MAX`的整数倍。14.D解析:`scanf("%d",&var);`是从标准输入读取一个整数的标准C语言方法。15.C解析:`arr[1][0]`访问的是二维数组第二行第一列的元素,值为3。二、程序填空题1.+=i解析:`sum`变量需要累加每个`i`的值,使用`+=`运算符可以将`i`的值加到`sum`的当前值上。2.i,j解析:在打印乘法表时,外层循环变量`i`代表被乘数,内层循环变量`j`代表乘数,两者都需要在`printf`中体现。3.{"",18}解析:根据数组的初始化方式,第一个`Student`元素应该用`{}`初始化,`name`字段为空字符串`""`,`age`字段为18。三、程序改错题错误1:行号8,错误类型:数组越界。`for`循环的条件应该是`i<5`,否则当`i`为5时,`arr[5]`不存在,访问会导致未定义行为。修正:`for(inti=0;i<5;i++)`。错误2:行号11,错误类型:缺少头文件。使用`printf`函数需要包含`stdio.h`头文件。修正:在文件开头添加`#include<stdio.h>`。四、程序设计题```c#include<stdio.h>intmain(){intarr[10];inti,j,temp;//读取10个整数printf("Enter10integers:\n");for(i=0;i<10;i++){scanf("%d",&arr[i]);}//冒泡排序(升序)for(i=0;i<9;i++){//只需要遍历9次for(j=0;j<9-i;j++){//每次遍历到未排序部分的最后一个元素if(arr[j]>arr[j+1]){//相邻元素

温馨提示

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

评论

0/150

提交评论