2018计算机二级C语言考试真题汇总

合集下载

2018年9月计算机二级C语言考试章节习题及答案(5)

2018年9月计算机二级C语言考试章节习题及答案(5)

2018年9月计算机二级C语言考试章节习题及答案(5) 第2章 C程序设计的初步知识2.2 标识符、常量和变量1[单选题] C语言主要是借助以下哪个功能来实现程序模块化A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型参考答案:A参考解析:C语言用函数实现软件的模块化设计。

2[单选题] 以下叙述中错误的是A.非零的数值型常量有正值和负值的区分B.常量是在程序运行过程中值不能被改变的量C.定义符号常量必须用类型名来设定常量的类型D.用符号名表示的常量叫符号常量参考答案:C参考解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。

符号常量在使用之前要先定义,定义格式如下: #define<符号常量名>(常量) 其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符3[单选题] C语言中char 类型数据占字节数为A.3B.4C.1D.2参考答案:C参考解析:C语言中char 类型数据占字节数为1.4[单选题] 下列叙述中正确的是A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量参考答案:D参考解析:两个连续的双引号:"",是一个字符串常量,称为“空串”5[单选题] 有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)#include#includemain(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是A.a12xyzB.12yzC.a2yzD.bc2yz参考答案:C参考解析:程序执行后strcpy(a+1,b+2)后,字符数组a 的值为“a2”,再进行字符串的连接strcat(a,c+1),此时字符数组a 的值为“a2yz”。

20183月全国计算机等级考试二级C语言上机题库100套(光碟拷贝版)

20183月全国计算机等级考试二级C语言上机题库100套(光碟拷贝版)

2018年3月全国计算机等级考试二级C语言上机题库100套(从光碟拷贝出来的最完整版)(可以拷贝在U盘里,然后ctrl+F搜索,百分百有答案,祝考试成功)第一套1. 程序填空给定程序中,函数fun的功能是:计算下式前n 项的和作为函数值返回。

例如:当形参n的值为10 的时,函数返回:9.6125588。

第一处s=0;第二处for(i=1;i<=n;i++)第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t);2. 程序修改给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。

/**found**/for(i=0;str[i];i++)/**found**/if(substr[k+1]==’\0’)3. 程序设计请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为3.14…。

double fun(double eps){ double s=1,t=1./3;int n=1;while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

2018年全国计算机等级考试二级C 语言真题及答案1

2018年全国计算机等级考试二级C 语言真题及答案1
D)用C程序实现的算法可以既没有输入也没有输出
(14)下列不能定义的用户标识符是()。
A)MainB)_0
C)_intD)sizeof
(15)下列选项中,不能作为合法常量的是()。
A)1.234e04B)1.234e0.4
C)1.234e+4D)1.234e0
(16)数字字符0的ASCII值为48,运行下列程序的输出结果是()。
A)1B)2
C)3D)4
(23)下列程序的输出结果是()。
main( )
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j);
}
A)42B)45
C)56D)60
(24)下列程序的输出结果是()。
main( )
{chara[7]="a0\0a0\0"; inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
A)22B)76
C)72D)62
(25)下列能正确定义一维数组的选项是()。
A)inta[5]={0,1,2,3,4,5};B)chara[ ]={0,1,2,3,4,5};
main( )Байду номын сангаас
{inti=1,j=2,k=3;
if(i++==1&&(++j==3‖k+ +==3)) printf("%d%d %d\n",i,j,k);

全国计算机二级C语言-笔试样卷2018

全国计算机二级C语言-笔试样卷2018

全国计算机等级考试二级笔试样卷C语言程序设计一、选择题(( 1)~( 10)、(21)~( 40)每题 2 分,(11)~( 20)每题 2 分,共 70 分)以下各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应地点上,答在试卷上不得分。

( 1)以下选项中不切合优秀程序设计风格的是A)源程序要文档化B)数听说明的序次要规范化C)防止滥用 goto 语句D)模块设计要保证高耦合、高内聚( 2)从工程管理角度,软件设计一般分为两步达成,它们是A)纲要设计与详尽设计B)数据设计与接口设计C)软件构造设计与数据设计D)过程设计与数据设计( 3)以下选项中不属于软件生命周期开发阶段任务的是A)软件测试B)纲要设计C)软件保护D)详尽设计( 4)在数据库系统中,用户所见的数据模式为A)观点模式B)外模式C)内模式D)物理模式( 5)数据库设计的四个阶段是:需求剖析、观点设计、逻辑设计和A)编码设计B)测试阶段C)运转阶段 D)物理设计( 6)设有以下三个关系表以下操作中正确的选项是A) T=R∩ S B) T= R∪ SC) T= R× S D) T=R/S( 7)以下表达中正确的选项是A)一个算法的空间复杂度大,则其时间复杂度也必然大B)一个算法的空间复杂度大,则其时间复杂度必然小C)一个算法的时间复杂度大,则其空间复杂度必然小D)上述三种说法都不对( 8)在长度为64 的有序线性表中进行次序查找,最坏状况下需要比较的次数为A)63B)64C)6D)7( 9)数据库技术的根本目标是要解决数据的A)储存问题B)共享问题C)安全问题D)保护问题( 10)对以下二叉树进行中序遍历的结果是A) ACBDFEG B) ACBDFGE C) ABDCGEF D) FCADBEG( 11)以下表达中错误的选项是A)一个 C 语言程序只好实现一种算法B) C 程序能够由多个程序言件构成C) C 程序能够由一个或多个函数构成D)一个 C 函数能够独自作为一个 C 程序言件存在( 12)以下表达中正确的选项是A)每个 C 程序言件中都一定要有一个main()函数B)在 C 程序中 main()函数的地点是固定的C) C 程序中全部函数之间都能够互相调用,与函数所在地点没关D)在 C 程序的函数中不可以定义另一个函数( 13)以下定义变量的语句中错误的选项是A) int _int;B)double int_;C)char For;D) float US$;( 14)若变量A) ++x,y=x--x、y已正确立义并赋值,以下切合 C 语语言法的表达式是B)x+1=y C) x=x+10=x+y D) double(x)/10(15)以下对于逻辑运算符双侧运算对象的表达中正确的选项是A)只好是整数 0 或 1 B)只好是整数0 或非0 整数C)能够是构造体种类的数据D)能够是随意合法的表达式(16)如有定义 int x,y; 并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是A) (x-y>0)B) (x-y<0)C) (x-y<0||x -y>0)D)(x-y==0)( 17)有以下程序main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运转后的输出结果是A) 2,3,3B) 2,3,2C) 2,3,1D) 2,2,1(18)设有定义: int a;float b;履行scanf("%2d%f",&a,&b);语句时,若从键盘输入 876 543.0<回车 >,a 和 b 的值分别是A) 876 和 543.000000B) 87和 6.000000C) 87 和 543.000000D) 76和 543.000000( 19)有以下程序main(){ int a=0, b=0;a=10;b=20;printf("a+b=%d\n",a+b);/*/* 给 a 赋值给 b 赋值输出计算结果*/*/}程序运转后的输出结果是A) a+b=10B)a+b=30C) 30D)犯错( 20)在嵌套使用if 语句时, C语言规定else 老是A)和以前与其拥有同样缩进地点的if 配对B)和以前与其近来的if 配对C)和以前与其近来的且不带else 的if配对D)和以前的第一个if 配对( 21)以下表达中正确的选项是A) break 语句只好用于switch 语句B)在 switch 语句中一定使用defaultC) break 语句一定与switch 语句中的 case 配对使用D)在 switch 语句中,不必定使用break 语句( 22)有以下程序main(){ int k=5;while( --k) printf("%d",k -= 3);printf("\n");}履行后的输出结果是A) 1B) 2C) 4D)死循环( 23)有以下程序main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0)if(++i%8==0)printf("%d ",i);}printf("\n");}履行后的输出结果是A) 5B) 24C)32D)40( 24)以下选项中,值为 1 的表达式是A) 1– '0'B)1 - '\0'C) '1' -0D) '\0' - '0'( 25)有以下程序fun(int x, int y){ return (x+y); }main(){ int a=1, b=2, c=3, sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}履行后的输出结果是A) 6B) 7C)8D)9( 26)有以下程序main(){ char s[]="abcde";s+=2;printf("%d\n",s[0]);}履行后的结果是A)输出字符 a 的 ASCII码B)输出字符 c 的 ASCII码C)输出字符 c D)程序犯错( 27)有以下程序fun(int x, int y){ static int m=0, i=2;i+=m+1;m=i+x+y;return m;}main(){ int j=1, m=1, k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}履行后的输出结果是A)5, 5B) 5, 11C) 11, 11D) 11, 5( 28)有以下程序fun(int x){ int p;if(x==0||x==1)return(3);p=x-fun(x -2);return p;}main(){ printf("%d\n",fun(7)); }履行后的输出结果是A) 7B) 3C) 2D)0( 29)在 16 位编译系统上,如有定义int a[]={10,20,30}, *p=&a; ,当履行 p++;后,下列说法错误的选项是A) p 向高地点移了一个字节B) p 向高地点移了一个储存单元C) p 向高地点移了两个字节D) p 与 a+1 等价( 30)有以下程序main(){ int a=1, b=3, c=5;int*p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}履行后的输出结果是A) 1B) 2C) 3D)4( 31)如有定义: int w[3][5]; ,则以下不可以正确表示该数组元素的表达式是A) *(*w+3)B) *(w+1)[4]C) *(*(w+1))D) *(&w[0][0]+1)( 32)如有以下函数首部int fun(double x[10], int *n)则下边针对此函数的函数申明语句中正确的选项是A) int fun(double x, int *n);B) int fun(double, int );C) int fun(double *x, int n);D) int fun(double *,int *);( 33)有以下程序void change(int k[ ]){ k[0]=k[5]; }main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n<=4 ) { change( &x[n]) ; n++; }for(n=0; n<5; n++)printf("%d ",x[n]);printf("\n");}程序运转后输出的结果是A)678910B)13579C)12345D)62345( 34)有以下程序main(){ int x[3][2]={0}, i;for(i=0; i<3; i++)scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若运转时输入: 2 4 6<回车 >,则输出结果为A)200B)204C)240D)246( 35)有以下程序int add( int a,int b){ return (a+b);}main(){ int k, (*f)(), a=5,b=10;f=add;}则以下函数调用语句错误的选项是A) k=(*f)(a,b);B)k=add(a,b);C) k= *f(a,b);D) k=f(a,b);( 36)有以下程序#includemain( int argc, char*argv[ ]){ int i=1,n=0;while (iprintf("%d\n",n);}该程序生成的可履行文件名为:proc.exe。

2018年国家计算机二级C语言笔试真题及答案解析2

2018年国家计算机二级C语言笔试真题及答案解析2

2018年国家计算机二级C语言笔试真题及答案解析(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是()。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)4)下列叙述中正确的是()。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间5)数据流图中带有箭头的线段表示的是()。

A)控制流 B)事件驱动 C)模块调用 D)数据流6)在软件开发中,需求分析阶段可以使用的工具是()。

A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图7)在面向对象方法中,不属于“对象”基本特点的是()。

A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

A)人工管理阶段 B)文件系统阶段 C)数据库系统阶段 D)三个阶段相同(10)有三个关系R、S 和T 如下:R S TA B B C A B Cm 1 1 3 m 1 3n 2 3 5由关系R 和S 通过运算得到关系T,则所使用的运算为()。

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。

此解决方案的项目中包含一个源程序文件blank1.c。

函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。

该串长度最大不超过15。

例如,若表示二进制数的字符串为:”10011”,则运行结果应为:10011﹣>19请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!#include<stdio.h>#pragma warning(disable:4996)#define N16/*********found*********/int fun(char【1】){int i,n=0;/*********found*********/for(i=0;【2】;++i)/*********found*********/rl=n*2+(s[i]﹣【3】);return n;}main( ){char num[]=“10011”;int n;n=fun(num);printf(“%s﹣﹣>%d\n”,num,n);}正确答案:(1)s[](2)s[i]!=‘\0’&&i<N(3)48解析:填空1:该函数所接受的参数为字符数组,所以形参也为字符数组,根据函数内所用的字符数组s[i],所以该空填s[]。

答案为s[]。

填空2:访问一个字符数组的所有元素时,当该元素不为字符串结束符’\0’时,继续访问,当访问到字符串结束符’\0’时,表示该字符串结束了,结束循环返回计算结果,因为串的长度最大不超过15,所以定义了一个常量N为16,在for循环的第二个表达式中i<N用来控制其不超过15,当其超过了15位时后面的不做计算,所以该空填s[i]!=‘\0’&&i<N。

2018年计算机二级考试C语言试题及答案(1)

2018年计算机二级考试C语言试题及答案(1)

2018年计算机二级考试C语言试题及答案(1)2018年计算机等级考试即将开始,为考生们整理了2018年计算机二级考试C语言试题及答案,希望能帮到大家,想了解更多资讯,请关注小编的及时更新哦。

2018年计算机二级考试C语言试题及答案(1)选择题1). 在软件设计中,不属于过程设计工具的是( )A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图正确答案:D答案解析:DFD(数据流图Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。

它直接支持系统功能建模。

在软件详细设计的过程阶段,要对每个模块规定的功能以及算法的设计给出适当的算法描述。

常见的过程设计工具有:图形工具:程序流程图,N-S,PAD,HIPO;表格工具:判定表;语言工具:PDL(伪码)。

2). 数据结构中,与所使用的计算机无关的是数据的( )。

A.存储结构B.物理结构C.逻辑结构D.线性结构正确答案:C答案解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。

3). 设有定义: int x=2; 以下表达式中,值不为6的是( )A.2*x, x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1正确答案:A答案解析:本题考查逗号表达式。

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4;选项B中,值为6。

选项C中x*=x+1 等价于x=x*(x+1),所以等于6;选项D与选项C等价,结果也为6。

4). 在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )A.63B.64C.6D.7正确答案:B答案解析:顺序查找又称顺序搜索。

顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。

二级C语言机试(操作题)2018年3月真题汇编2及答案解析

二级C语言机试(操作题)2018年3月真题汇编2及答案解析
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s[i]﹣【3】);
return n;
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s[i]﹣【3】);
return n;
{
Struct BITS res;
/*在这里将函数代码补充完整*/
}
main()
{struct BITS a;
void NONO();
int i=0,n=0;
for(i=32;i<100;i++)
{n=i*i;
a=fun(n);
if(a.m3<a.m2&&a.m2<a.m1&&a.m1<a.m0)
printf("No.is%d\n",n);
例如,若表示二进制数的字符串为:"10011",则运行结果应为:10011﹣>19
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析
如果一个4位正整数等于其各个数字的4次方之和,则称该数为四叶玫瑰数。
例如,1634=1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4,因此1634就是一个四叶玫瑰数。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#pragma warning(disable:4996)
void fun(char*s1,char*s2,
char*s3)
{int i,j;
/*********found*********/
for(i=0,j=0;(s1[i]!=´\0´)&&(s2[i]!=´\0´);i++,j=j+1)
{s3[j]=s1[i];
s3[j+1]=s2[i];
}
if(s2[i]!=´\0´)
(for(;s2[i]!=´\0´;i++,
j++)
/*********found*********/
s3[i]=s2[j];
}
else if(sl[i]!=´\0´)
(for(;s1[i]!=´\0´;i++,j++)
s3[j]=s1[i];

2018年国家计算机二级C语言笔试真题及答案解析7

2018年国家计算机二级C语言笔试真题及答案解析7

2018年国家计算机二级C语言笔试真题及答案解析72018年国家计算机二级C语言笔试真题及答案解析1.以下选项中不符合良好程序设计风格的是什么?A)源程序应该文档化B)数据说明的顺序应该规范化C)避免滥用goto语句D)模块设计应该保证高耦合、高内聚2.从工程管理角度,软件设计一般分为两步完成,它们是什么?A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计3.下列选项中不属于软件生命周期开发阶段任务的是什么?A)软件测试B)概要设计C)软件维护D)详细设计4.在数据库系统中,用户所见的数据模式是什么?A)概念模式B)外模式C)内模式D)物理模式5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和什么?A)编码设计B)测试阶段C)运行阶段D)物理设计6.设有如下三个关系表,下列操作中正确的是什么?7.下列叙述中正确的是什么?A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对8.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为什么?A)63B)64C)6D)79.数据库技术的根本目标是要解决数据的什么问题?A)存储问题B)共享问题C)安全问题D)保护问题10.对下列二叉树进行中序遍历的结果是什么?A)ACBDFEGB)ACBDFGEC)ABDCGEFD)FCADBEG11.下列叙述中错误的是什么?A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在12.下列叙述中正确的是什么?A)每个C程序文件中都必须有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序可以由一个或多个函数组成D)在C程序的函数中不能定义另一个函数13) 错误的是B)double int_。

2018年9月计算机二级C语言考试章节习题及答案(4)

2018年9月计算机二级C语言考试章节习题及答案(4)

2018年9月计算机二级C语言考试章节习题及答案(4)第2章 C程序设计的初步知识2.1 简单C语言程序的构成和格式1[单选题] 下面程序的输出结果是( )。

#includemain(){int a[] = {1,2,3,4,5,6,7,10},*p;p =a;printf("%d\n",*p+8);}A.0B.1C.10D.9参考答案:D参考解析:“*”号的优先级比“+”的优先级高,所以先执行“*p”;指针P指向的是数组的首地址,因此*p=1;再加8得9。

3[单选题] 下面说法正确的是( )。

A.一个C程序可以有多个主函数B.一个C语言的函数中只允许有一对花括号C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内D.在对C程序进行编译时,可以发现注释行中的拼写错误参考答案:C参考解析:本题涉及C语言基本的3个知识点:①C 语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;②C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释中的错误。

4[单选题] 以下4个选项,不能看作一条语句的是( )。

A.{;}B.int x=0,y=1,z=0;C.if(!a);D.if(b==0)m=1:n=2:参考答案:D参考解析:语句是用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。

在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。

选项D)中没有将两个操作语句括起来,不能看作一条语句。

5[单选题] 以下程序的输出结果是( )。

A.1B.3C.2D.4参考答案:D参考解析:本题首先判断a>b,当a>b时结果等于a,否则等于“d>c?d:b”,因为a>b,所以直接输出a的值,注:这里“a:d>c?d:b”是用来干扰考生的。

2018年C语言二级考试及答案

2018年C语言二级考试及答案

2018年C语言二级考试及答案一、选择题1. 下列关于C语言中变量的描述,错误的是:A. 变量必须先声明后使用B. 变量的声明可以放在程序的任何位置C. 变量的类型决定了它所占用的内存大小D. 变量的声明必须在函数的开始处完成答案:B2. 在C语言中,以下哪个选项不是合法的标识符?A. _sumB. sum$C. 2valueD. sum答案:C3. C语言中,以下哪个选项是正确的字符串定义方式?A. char str[5] = "Hello";B. char str[] = "Hello";C. char str[6] = "Hello";D. char str = "Hello";答案:B4. 关于C语言中的数组,以下哪个说法是错误的?A. 数组名代表数组的首地址B. 数组的大小在定义后不能改变C. 数组的元素可以是不同类型的D. 数组的下标从0开始答案:C5. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b);B. int add();C. int add(int a, int b) {}D. int add(int a, int b) { return a + b; }答案:D二、填空题1. 在C语言中,使用____关键字可以定义一个整型变量。

答案:int2. 字符串"Hello"在内存中所占的字节数是____。

答案:63. 若定义一个二维数组int arr[3][4],则该数组的元素总数为____。

答案:124. 在C语言中,使用____运算符可以实现逻辑与操作。

答案:&&5. 若变量a的值为5,b的值为10,则表达式a++ + b的值为____。

答案:15三、编程题1. 编写一个C语言程序,实现计算并输出两个整数的和。

```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两数之和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现判断输入的年份是否为闰年,并输出结果。

2018年浙江省计算机二级c语言考试真题及答案

2018年浙江省计算机二级c语言考试真题及答案

2018年浙江省计算机二级c语言考试真题及答案2018年浙江省计算机二级c语言考试真题及答案【计算机等级考试官网暂未公布2018年浙江省计算机二级c语言考试真题及答案,届时小编会为你第一时间收集整理】下面是店铺给大家整理的计算机二级c语言考试习题及答案,供大家参阅,对接下来的计算机二级C语言考试有一定的了解!计算机二级c语言考试真题及答案1.(A )是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。

A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。

A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。

C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。

A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。

A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。

A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析
例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
fprintf(fp,"%d\n",result[i]);
fclose(fp);
}
_______
上一题交卷
交卷
答题卡
答案及解析
(1/1)程序填空题
第1题
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,把高于平均成绩的学生成绩求平均值并返回。
#pragma warning(disable:4996)
void fun(char*s1,char*s2,
char*s3)
{int i,j;
/*********found*********/
for(i=0,j=0;(s1[i]!=´\0´)&&(s2[i]!=´\0´);i++,j=j+1)
{s3[j]=s1[i];
例如,当s1为:"123456789",s2为:"abcdefghijk"时,
输出结果应该是:1a263c4d5e6t7g8h9ijk
请改正函数fun中指定部位的错误,使它能得出正确的结果。

计算机二级C语言2018年试题及答案

计算机二级C语言2018年试题及答案

计算机二级C语言2018年试题及答案一、选择题1. 在C语言中,下面哪个选项是正确的定义一个整型变量的语句?A. int a;B. int a[];C. int a[10];D. int a(10);答案:A2. 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以有多个参数D. 函数可以嵌套定义答案:D二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是______。

答案:&&2. 若有定义 int a[10], *p=a; 则*(p+5)表示数组的第______个元素。

答案:6三、编程题1. 编写一个C语言程序,实现输入一个整数,输出该整数的绝对值。

```c#include <stdio.h>#include <stdlib.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num < 0) {num = -num;}printf("该整数的绝对值是:%d\n", num);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出该字符串的逆序。

```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");gets(str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```四、简答题1. 请简述C语言中指针和数组的关系。

2018计算机二级C语言考试真题汇总

2018计算机二级C语言考试真题汇总

模拟卷11[填空题]下列给定程序中,函数fun得功能就是:在形参S所指字符串中寻找与参数C相同得字符,并在其后插入一个与之相同得字符,若找不到相同得字符则不做任何处理。

例如,若s所指字符串为"baacda",c中得字符为a,执行后S所指字符串为"baaaacdaa"请在程序得下画线处填入正确得内容并将下画线删除,使程序得岀正确得结果。

注意:部分源程序给岀如下。

不得增行或删行,也不得更改程序得结构试题程序:linclLid^ < std丄Q-忆工vOid iurL* 5char ciI int n;/*****.*•屮found *********,for (i 5;. k .! = [1】;i >if taf 1] ^ = C)I£ou n-d •••****** ’Mfhile (s[ i + 1 4-fl] !n ;[2(J -i + A +■ 1;\ > 1;j 一}13rfj +1]J4$ f ou *****>**•/15辛[i十丄]=UJ J16 17i + 1 ;\19main()20{ that s[001 - "baaccia™, c;忆Frintt ("Wihe22printf (*\n input a character:");卞24fun 啓“);屮:訓pcintfresult in:和'23726参考解析:【参考答案】([厂2 {2)0 {3)[-【解题思路】填空1: for语句循环条件就是判断就是否到达字符串结尾,即当前字符就是否为’\0 '。

填空2:while语句用以确定字符串得长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同得字符,就在后面插入一个相同得字符,且找到后应该给数组元素赋值,本题目给岀参数为c。

二、程序修改题2 [简答题]下列给定程序中函数fun得功能就是:逐个比较p、q所指两个字符串对应位置上得字符,并把ASCII值大或相等得字符依次存放到c所指得数组中,形成一个新得字符串。

2018c语言二级考试答案

2018c语言二级考试答案

2018c语言二级考试答案一、选择题1. 在C语言中,以下哪个选项是正确的数据类型?A. intB. stringC. floatD. bool答案:A、C2. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. =D. ==答案:A、B3. C语言中,以下哪个关键字用于定义函数?A. structB. returnC. voidD. function答案:C4. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int [10] array;D. int array;答案:A5. 下列哪个选项是C语言中的循环控制语句?A. ifB. whileC. switchD. for答案:B、D二、填空题1. 在C语言中,使用________关键字可以定义一个结构体。

答案:struct2. C语言中,________运算符用于计算两个整数的乘积。

答案:*3. 若要声明一个指向整数的指针变量,应使用________关键字。

答案:int*4. 在C语言中,使用________函数可以输出格式化的字符串。

答案:printf5. C语言中,________函数用于计算数组的长度。

答案:sizeof三、简答题1. 请简述C语言中指针和数组的区别。

答案:指针是一个变量,它存储了另一个变量的地址。

数组是一个连续的内存块,用于存储相同类型的多个元素。

指针可以被重新赋值指向不同的内存地址,而数组的大小在定义后是固定的。

2. 描述C语言中如何实现字符串的连接。

答案:在C语言中,可以使用`strcat`函数来实现字符串的连接。

该函数将源字符串追加到目标字符串的末尾,并返回目标字符串的指针。

四、编程题1. 编写一个C语言程序,计算并输出1到100之间所有偶数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("The sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 请编写一个C语言函数,实现字符串反转的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟卷1
1 [填空题]
下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
【解题思路】
填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0’。

填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。

二、程序修改题
2 [简答题]
下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII 值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为"Abcd",则c中的字符串应为“aBcdeFgH”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构!
参考解析:
【参考答案】 (1)int k=0;
(2)while(*p||*q)
【考点分析】
本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。

【解题思路】
(1)变量k存放数组e的下标,因此应初始化为0。

(2)while循环语句的循环条件是判断两个字符串是否到达结尾。

三. 程序设计题
3 [简答题]
规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:“****A*BC*DEF*G*******”.删除后,字符串中的内容应当是:“****A*BC*DEF*G”。

在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考解析:
【参考答案】
【考点分析】
本题考查:删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来。

【解题思路】
对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘\0’。

具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后面加上结束符号‘\0’。

模拟卷2
一、程序填空题
1 [填空题]
下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。

ss所指字符串数组中共有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!
参考解析:
【参考答案】 (1)N
(2)k
(3)ss[i]
【考点分析】
本题考查:for循环语句;if语句条件表达式;字符串拷贝函数strepy的使用。

【解题思路】
填空l:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i
填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。

填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。

【解题宝典】
字符串拷贝函数strcpy,其格式为:strepy(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组l中。

字符串结束标识‘\0’也一同拷贝。

字符数名2,也可以是一个字符串常量。

这时相当于把一个字符串赋予一个字符数组。

二、程序修改题
2 [简答题]
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。

若是,则输出所有可能的序列,否则输出“不能分解”。

例如:当输入100时,输出:100=9+10+11+12+13+14+15+16
100=18+19+20+21+22
请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:
参考解析:
【参考答案】 (1)m=n;
(2)m=m-c;c++;
(3)if(m==0)
【解题思路】
(1)每次循环,程序需要对n执行减去连续的正整数序列来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。

另外,程序声明变量m时,未初始化它的值,所以此处应该修改为:m=n。

(2)语法错误。

C语言中每个语句必须以分号结束,所以应修改为:m=m-c;c++;。

(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中m依次减去连续的正整数,当m为0时,表示m(即11)满足条件,再输出当前序列中的每个正整数,所以此处判断条件反了,应修改为:if(m==0)。

3 [简答题]
请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。

移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:
参考解析:
【参考答案】
【解题思路】
本题要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后,可以根据输入的P值,通过for循环语句,将P+1-n-1(含n-1)之间的数组元素依次向前移动P+1个存储单元,即
W[j-1]=w[j];,同时将0~P个数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作的。

模拟卷3
一、程序填空题
1 [填空题]
给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
【解题思路】
填空1:由语句fopen("filel.txt","r")可知,fp应该是文件类型指针,因此本空应该填写FILE *。

填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。

填空3:putchar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应该填写ch。

二、程序修改题
2 [简答题]
给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C 所指的数组的尾部。

例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,C所指数组中的内容应该为“192f3e4dcba”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:【参考答案】
【解题思路】
(1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i
(2)此处将if错写成If,这个错误比较简单,但往往不容易发现。

三. 程序设计题
3 [简答题]
请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m 的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19、23、29、31、37。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:
参考解析:
【参考答案】
【解题思路】
本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。

本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx 中。

相关文档
最新文档