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

合集下载

2019年3月全国计算机等级考试二级C语言上机必考100套题库

2019年3月全国计算机等级考试二级C语言上机必考100套题库

2019年3月全国计算机等级考试二级C语言上机必考100套题库第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

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

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h) {int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套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返回这些数的个数。

2019年二级C语言笔试习题集答案及解析.doc

2019年二级C语言笔试习题集答案及解析.doc

第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。

这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。

这个题目考察用户标识符的概念。

4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。

16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的对于++、--单目运算符来说,其运算对象可以是char型、int型和float型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D中,%(求余运算符)运算对象只能是整形数。

2019年二级c语言笔试答案word版本 (20页)

2019年二级c语言笔试答案word版本 (20页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==二级c语言笔试答案篇一:二级C语言笔试题汇编及答案全国计算机等级考试二级C语言程序设计习题集校内复习资料第一章 C语言的结构一.单项选择题1.设d为字符变量,下列表达式不正确的是__________。

(A) d=97 (B) d='a'(C) d="a"(D) d='g' 2.C语言的程序一行写不下时,可以________。

A 用逗号换行 B 用分号换号 C 在任意一空格处换行 D 用回车符换行3.在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码__________。

(A) 大32(B) 大64(C) 小32 (D) 小14.下列四个叙述中,错误的是________。

A 一个C源程序必须有且只能有一个主函数 B 在C源程序中注释说明必须位于语句之后 C 一个C源程序可以含零个或多个子函数 D C 源程序的基本结构是函数5.一个C程序可以包含任意多个不同名的函数,但有且仅有一个__________。

(A) 过程 (B) 主函数 (C) 函数 (D) include 6.C 语言中,当复合语句多于一条时,要有一对________括起来。

A 方括号 B 圆括号C 花括号 D 尖括号7.__________是C程序的基本构成单位。

(A) 函数 (B) 函数和过程 (C) 超文本过程(D) 子程序 8.C语言程序的基本单位是__________。

(A) 程序行 (B) 语句(C) 函数(D) 字符 9.C语言规定,必须用__________作为主函数名。

(A) function(B) include(C) main (D) stdio10.C语言规定,在一个C程序中,main()函数位置________。

2019年3月全国计算机等级考试二级C语言笔试试题(含参考答案)

2019年3月全国计算机等级考试二级C语言笔试试题(含参考答案)

2019年3月全国计算机等级考试二级C语言笔试试卷(考试时间120分钟,满分100分)一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选择涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。

下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择B)投影C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)以下选项中合法的标识符是A)1_1B)1-1C)_11D)1_ _(12)若函数中有定于语句:int k;,则A)系统将自动给K赋初值0B)这时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115B)0118C)1.5e1.5D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x, x+=2(15)程序段:int x=12; double y=3.141593; printf (“%d%8.6f”, x, y);的输出结果是A)123.141593B)12 3.141593C)12, 3.141593D)123.1415930(16)若有定义语句:double x, y,*px,*pY; 执行了px=&x; py=&y;之后,正确的输入语句是A)scanf(“%f%f”,x,y);B)scanf(“%f%f”,&x,&y);C)scanf(“%lf%le”,px,py);D)scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){ int x;scanf(“%d”,&x);if (x<=3);elseif (x!=10) printf(“ %d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等10的整数C)大于3或等于10的整数D)小于3的整数(19)有以下程序#include <stdio.h>main(){ int a=1,b=2,c=3,d=0;if (a==1&&b++==2)if (b!=2||c--!=3)printf(“%d,%d,%d\n”,a,b, c);else printf(“%d, %d, %d\n”,a,b, c);else printf(“%d, %d,%d\n”,a,b,c);}程序运行后的输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,1(20)以下程序段中的变量已正确定义for( i=0; i<4; i++,i++)for( k=l; k<3; k++);printf(“*”);程序段的输出结果是A)********B)****C)**D)*(21)有以下程序#iinclude <stdio.h>main(){ char *s= {“ABC”};do{ printf(“%d”;*s%l0); s++}whi1e(*s);}注意:字母A的ASCII码值为65。

2019计算机二级C语言选择题题库

2019计算机二级C语言选择题题库

二级C语言选择题完整版题库第一节:C语言概述1. C语言程序的模块化是通过以下哪个选项实现的答案:A)函数2. 有以下程序#include <stdio.h>main(){int x=010, y=10;printf("%d,%d ", ++x, y--)}程序运行后的输出结果是答案:C)9,103.以下选项中叙述正确的是答案:B)C语言的标识符可分为关键字、预定义标识符和用户标识符三类4. 以下选项中叙述正确的是答案:B)函数体必须由{ 开始5. 以下选项中叙述正确的是答案:A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构6. 以下选项中叙述正确的是答案:A)使用三种基本结构就可以实现任何复杂算法7. 以下选项中叙述正确的是答案:D)C程序中的语句要经过编译才能转换成二进制机器指令8. 以下选项中叙述正确的是答案:D)复杂任务可以分解成简单子任务9. 以下叙述中错误的是答案:B)书写风格良好的程序执行效率高10. 以下选项中不能正确表示数值10000 的实型常量是答案:D)1.0E4.011. 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是答案:A)三种基本结构不可以嵌套使用12. 以下叙述正确的是答案:A)计算机只接收由0和1代码组成的二进制指令或数据13. 简单程序设计步骤中不包括答案:D)安装编译程序14. 以下叙述正确的是答案:CC)C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件15. 算法应当具有的特性不包括答案:D)美观性16. 以下叙述正确的是答案:D)循环结构、选择结构、顺序结构都是结构化程序的基本结构17. 以下叙述正确的是答案:D)只使用三种基本结构即可解决任何复杂问题18. 下面叙述正确的是答案:D)C语言程序的语句经过编译和链接转换成二进制机器指令后才能执行19. 下面叙述正确的是答案:A)任何复杂任务都可以分解成简单子任务20. 若变量已经定义且正确赋值,则针对程序段:temp=a; a=b; b=temp;以下叙述中正确的是答案:D)此段程序是从左至右依次执行21. 以下叙述中错误的是答案:C).OBJ文件和.EXE文件都是可直接执行的二进制文件22. 以下关于注释的叙述中错误的是答案:C)注释的边界符号“/*”和“*/”必须成对出现且可以嵌套23. 以下说法正确的是答案:A)C语言被称为“高级语言”是因为它用接近人们习惯的自然语言和数学语言作为表达形式,使人们学习和操作起来感到十分方便24. 以下说法错误的是答案:A)C语言提供了定义函数和子程序的功能25. 以下是正确C语言标识符的是答案:A)_8_26. 以下叙述中正确的是答案:A)一个程序要被称为结构化程序,则只能包含循环结构、选择结构、顺序结构27. 下面说法正确的是答案:B)使用只包含三种基本结构的算法可以求解复杂的问题29. 以下选项中,合法的C语言实数是答案:D).2e130. 以下叙述正确的是答案:A)对于只包含表达式语句的程序段,执行顺序与书写顺序一致31. 以下叙述正确的是答案:C)使用符号可以将一条#include 命令写在多行里第二节:数据类型、运算符与表达式1. 以下选项中可用作C语言合法用户标识符的是答案:C)_1232. 以下选项中合法的C语言赋值语句是答案:D)++i;3. 有以下程序段,其中的变量已定义为int类型sum = pad = 5; pAd = sum++, pAd++, ++pAd;printf( "%d ", pad );程序段的输出结果是答案:D)54. sizeof( double ) 是答案:B)一个整型表达式5. 有以下程序(字母A的ASCII代码为65)#include <stdio.h>main(){char c1 = 'A', c2 = 'Y';printf("%d, %d ", c1, c2 );}程序运行后的输出结果是答案:C)65, 896. 若有说明语句:char c = ':' ; 则变量c中存放的是答案:D)1个字符7. 有以下程序#include <stdio.h>main(){int a, b, c=241;a = c/100 % 9;b = ( -1 )&&( -1 );printf("%d, %d ", a, b );}程序运行后的输出结果是答案:B)2,18. 有以下程序#include <stdio.h>main(){printf("%d ", NULL );}程序运行后的输出结果是答案:A)09. 若有定义语句:int a=12;,则执行语句:a+= a-= a*a;后,a的值是答案:D)-26411. 已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为答案:C)212. 以下选项中,合法的C语言常量是答案:A)1.23413. 以下选项中,合法的C语言实数是答案:A).2e014. 设a,b,c是整型变量且均已赋值,则以下选项中错误的是答案:B)a = (b = 3) = 1;15. 有如下程序#include <stdio.h>main(){int x = 072;printf("%d ", x+1);}程序运行后的输出结果是答案:D)5916. 以下选项中,合法的数值型常量是答案:C)3.141517. 以下选项中,合法的实数是答案:A)4.5E218. 若有定义int a, b, c; 以下选项中的赋值语句正确的是答案:D)a = (b = c) + 1;19. 有如下程序#include <stdio.h>main(){int x = 0x13;printf("%d ", x+1);}程序运行后的输出结果是答案:B)2020. 设有定义:int a=0,b=1,c=1;以下选项中,表达式值与其它三个不同的是答案:B)b=a==c21. 设有两行定义语句:int scanf;float case;则以下叙述正确的是答案:C)第2行语句不合法22. 设有定义:double x=2.12;,以下不能完整输出变量x值的语句是答案:A23. 设有定义:int a,b; float x; ,则以下选项中对语句所作的注释叙述错误的是答案:A)scanf("%d%d%f",&a,&b); /* 多余的格式符%f完全不起作用*/24. 以下不能输出小写字母a的选项是答案:A)printf("%c ","a");25. 有以下程序段char c1,c2,c3;scanf("%c%c%c",&c1,&c2,&c3);若要给c1、c2、c3分别输入字母A、B、C,则以下对输入形式的描述正确的是答案:C)字母A、B、C之间不能有分隔符26. 以下不属于C语言位运算符的是答案:B)!27. 以下能正确表述算式sin(2πr+30°)的C 语言表达式是答案:D)sin(2*3.14*r+3.14*30/180.0)28. 设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是答案:D)z=(x==y) 29. 以下可以将任意一个两位整数n的个位数与十位数对换的表达式为答案:D)(n-n/10*10)*10+n/1030. 设有以下程序段int y;y=rand() % 30+1;则变量y的取值范围是答案:C)0<y≤3031. 设有定义:int a=64,b=8;,则表达式(a&b)||(a&&b)和(a|b)&&(a||b)的值分别为答案:C)1和132. 关于C语言标识符,以下叙述错误的是答案:A)标识符可全部由数字组成33. 若有C语言表达式2+3*4+7/3,则以下选项中关于执行顺序的叙述,正确的是答案:D)先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得1634. 若想给已定义为int型的变量a,b,c,d赋值为1,以下选项中错误的语句是答案:D)a=b, b=c, c=d, d=1;35. 若有定义:char c; int d; 程序运行时输入:c=1,d=2<回车>,能把字符1输入给变量c、整数2输入给变量d的输入语句是答案:C)scanf("c=%c,d=%d", &c,&d);36. 若有定义:int a=0,b=0,c=0,d=0; ,对于表达式(a++ && b++) ? c++ : d++,以下关于其执行顺序的叙述正确是答案:C)先计算表达式a++,其值为0,由此即可确定(a++ && b++)值为0,因此计算d++37. 以下不属于合法C语言转义字符的是答案:C)'c'38. 有以下程序#include <stdio.h>main( ){ char c;for(; (c=getchar()) != '#'; ) putchar(++c);}执行时如输入为:abcdefg##<回车> , 则输出结果是答案:C)bcdefgh39. 有以下程序#include <stdio.h>main( ){ int c, d;c = 10^3;d = 10+3;printf("%d,%d ", c, d);}程序运行后的输出结果是答案:C)9,1340. 以下不属于C语言整数的是答案:C)12f41. 有C语言表达式2*3+4+15%3 ,关于其执行顺序,以下叙述正确的是答案:A)先执行2*3得6,再执行6+4得10,再执行15%3得0,最后执行10+0得1042. 若想给已定义为int型的变量a、b、c、d赋整数1,以下选项中错误的语句是答案:D)d=c, c=b, b=a, a=1;43. 若有定义:int a; float b; double c; ,程序运行时输入:1,2,3<回车>,能把1输入给变量a、2输入给变量b、3输入给变量c的输入语句是答案:A)scanf("%d,%f,%lf", &a,&b,&c);44. 有以下程序#include <stdio.h>void fun(int a[ ], int n){int i;for (i=0; i<n; i++){if (i % 3 == 0)a[i] -= n;elsea[i] += n;}}main( ){ int c[5] = {6,7,8,9,10},i;fun(c, 5);for (i=0;i<5; i++) printf("%d,", c[i]);printf(" ");}程序运行后的输出结果是答案:A)1,12,13,4,15,45. 有以下程序#include <stdio.h>main( ){ int c,d;c = (13>>1)|1;d = (13>1)||1;printf("%d,%d ", c, d);}程序运行后的输出结果是答案:C)7,146. 以下选项中,合法的C语言常量是答案:C)21.8447. 以下选项中,合法的C语言实数是答案:B).1e048. 设a,b,c是整型变量,且已正确赋初值,以下选项中错误的赋值语句是答案:C)a = 2 = (b = 9) = 1;49. 有如下程序#include <stdio.h>main( ){int x = 072;printf("X=%d ", x+1);}程序运行后的输出结果是答案:A)X=59 50. 对于if(表达式) 语句,以下叙述正确的是答案:B)“表达式”的值可以是任意合法的数值51. 有如下程序#include <stdio.h>main( ){int a = 0, b = 1;if (a++ && b++)printf("TRUE");elseprintf("FALSE");printf("_OUT:a=%d,b=%d ", a, b);}程序运行后的输出结果是答案:A)FALSE_OUT:a=1,b=152. 以下叙述正确的是答案:D)char c1, *c2, **c3, c4[2]; 是C语言的合法语句53. 设有如下程序段int a[1] = {0};int b[] = {9};char c[3] = {"A", "B"};char d = "12";以下叙述正确的是答案:A)a, b的定义合法,c, d的定义不合法54. 以下选项中,合法的数值型常量是答案:B)3.255. 以下选项中,合法的实数是答案:D)1.5E256. 若已有定义语句:int a, b, c;,且变量已正确赋初值,则以下选项中正确的赋值语句是答案:B)a = (b = c) + 8;57. 有以下程序#include <stdio.h>main( ){int x = 0x13; printf("INT:%d ", x+1);}程序运行后的输出结果是答案:C)INT:2058. 有以下程序#include <stdio.h>main( ){int i, array[6] = {1, 5, 0, 4};for (i=0; i<5; i++)printf("%d,", array[i] & 4);printf(" ");}程序运行后的输出结果是答案:B)0,4,0,4,0,59. 设变量a,b和ch已正确定义并赋初值,则以下叙述中错误的是答案:C)语句ch=(unsigned int) a+b;是对a与b之和进行强制类型转换,结果赋值给变量ch60. 以下可以正确且安全的用作用户标识符的一组选项是答案:D)_32int, long6461. 以下关于运算符"/"的叙述正确的是答案:B)只有其两边运算对象的类型都是整型时,所做运算为整数整除运算62. 若有定义:char ch; int a; double d;,当输入为12345 678910.36时,以下选项中能给各个变量正确输入数据的是答案:D)scanf("%d%c%lf",&a,&ch,&d);63. 如图所示一平面圆,圆心是(2,1),半径为1:以下选项中,判断平面点(x,y)位于圆内时为真的表达式是答案:A)(x-2)*(x-2)+(y-1)*(y-1)<164. 以下叙述中正确的是答案:C)'A'和'A'都是转义字符常量65. C语言常量的类型从字面形式上可区分,以下判断中正确的是答案:D)2.0E3 --- 实型66. 以下选项中,算术表达式的值与其他三个不同的是答案:C)3/567. 设有定义:int k=3,i=2; 以下选项中,变量k的值与其他三个不同的是答案:C)k=i--;68. 设有如下语句:int k=0;k=printf("OK ");则以下叙述中正确的是答案:A)变量k得到的是输出字符的总个数369. 以下叙述中错误的是答案:A)C语言逻辑运算的结果是0和任意非0值为逻辑运算的对象70. C语言的逻辑表达式在特定情况下会产生“短路”现象。

c语言考试题及答案2019计算机二级

c语言考试题及答案2019计算机二级

c语言考试题及答案2019计算机二级一、单项选择题(每题2分,共40分)1. C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable2+答案:B2. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12.3L答案:A3. 若有定义语句:int a=10; float b=5.5; 则以下哪个表达式是合法的?A. a%bB. a+bC. a/bD. a*b答案:B4. 下列哪个选项不是C语言标准库函数?A. printf()B. scanf()C. strcat()D. strcpy()答案:C5. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. 'Hello, World\n'答案:A6. 在C语言中,以下哪个选项是正确的数组声明?A. int a[];B. int a[10];C. int a[10] = {1, 2, 3};D. int a = 10;答案:B7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. &答案:A8. 在C语言中,以下哪个选项是正确的函数声明?A. void myFunction();B. int myFunction();C. void myFunction(int a);D. int myFunction(int);答案:C9. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int ptr = 0;D. int *ptr = 0x12;答案:A10. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student {int id;char name[50];};B. struct {int id;char name[50];} Student;C. struct Student {int id;char name;};D. struct {int id;char name[50];} student;答案:A11. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE};C. enum Color {0, 1, 2};D. enum {RED = 0, GREEN, BLUE};答案:A12. 在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. ~答案:D13. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fread()D. fwrite()答案:A14. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. define PI 3.14159C. #define PI = 3.14159D. define PI = 3.14159答案:A15. 在C语言中,以下哪个选项是正确的递归函数调用?A. void func() { func(); }B. void func() { if (n > 0) func(n-1); }C. void func() { func(0); }D. void func() { if (n == 0) return; func(n-1); }答案:D20. 在C语言中,以下哪个选项是正确的联合体(Union)声明?A. union Data {int i;float f;char str[20];};B. struct Data {int i;float f;char str[20];};C. union Data {int i;float f;char str[20];} data;D. union {int i;float f;char str[20];};答案:A二、填空题(每题2分,共20分)1. C语言中,字符型数据在内存中以____形式存储。

c语言考试题及答案2019计算机二级

c语言考试题及答案2019计算机二级

c语言考试题及答案2019计算机二级一、选择题1.以下关于C语言的描述中,哪一项是错误的?A. C语言是一种面向过程的编程语言。

B. C语言是一种高级语言。

C. C语言开发了一些重要的编程概念,例如指针和结构体。

D. C语言可以直接操作计算机硬件。

答案:B2.在C语言中,下列哪个是合法的标识符?A. 1variableB. _variableC. my-variableD. variable#答案:B3.以下哪个是在C语言中输出字符的函数?A. scanfB. printfC. gets答案:B4.在C语言中,以下哪个是逻辑运算符?A. &B. +C. *D. /答案:A5.以下哪个关键字用于在C语言中定义常量?A. intB. constC. voidD. static答案:B二、填空题1.在C语言中,使用关键字_______可以定义一个整型变量。

答案:int2.在C语言中,使用符号_______表示“取地址”操作。

3.在C语言中,使用符号_______表示“取值”操作。

答案:*4.在C语言中,_______运算符可以用于判断两个值是否相等。

答案:==5.在C语言中,使用关键字_______可以定义一个字符型变量。

答案:char三、编程题1.编写一个C语言程序,要求用户输入两个整数,然后输出它们的和。

```c#include <stdio.h>int main(){int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```2.编写一个C语言程序,找出一个整数数组中的最大值,并将最大值打印出来。

```c#include <stdio.h>int main(){int arr[] = {1, 5, 3, 7, 9, 2};int size = sizeof(arr) / sizeof(arr[0]);int max = arr[0];for (int i = 1; i < size; i++){if (arr[i] > max){max = arr[i];}}printf("最大值为:%d\n", max);return 0;}```四、简答题1.请简要解释一下C语言中的指针的概念。

2019年9月份全国计算机等级考试二级C语言笔试真题与答案

2019年9月份全国计算机等级考试二级C语言笔试真题与答案

全国计算机等级考试二级C语言笔试真题一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除 D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是A)1:1联系 B)1:m联系C)m:1联系 D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接 B)交 C)除 D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234 B)'\123'C)123 D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)Lili B)name=LiliC)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#include <stdio.h>main(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4); break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#include <stdio.h>main(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#include <stdio.h>main(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);}printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#include <stdio.h>void fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a);printf("\n");}程序运行后的输出结果是A)BY B)BT C)YT D) YE(26)有以下程序段#include <stdio.h>main(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#include <stdio.h>main(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#include <stdio.h>void fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello BeijingC)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

2019年3月计算机二级c语言试题及详细解答答案9页word文档

2019年3月计算机二级c语言试题及详细解答答案9页word文档

2019 年3 月全国计算机等级考试二级C 语言真题(考试时间90 分钟,满分100 分)一、选择题1、下列叙述中正确的是:A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种链式存储结构C、循环队列是非线性结构D、循环队列是一直逻辑结构2、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈和队列都是非线性结构D、以上三种说法都不对3、一棵二叉树共有25 个节点,其中5 个时子节点,那么度为1 的节点数为A、4B、6C、10D、164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A、内模式B、外模式C、概念模式D、逻辑模式5、在满足实体完整性约束的条件下A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S 和T 如下:则由关系R 和S 得到关系T 的操作是A、自然连接B、并C、差D、交7、软件生命周期中的活动不包括A、软件维护B、市场调研C、软件测试D、需求分析8、下面不属于需求分析阶段任务的是A、确定软件系统的功能需求B、确定软件系统的系统的系能需求B、制定软件集成测试计划D、需求规格说明书审评9、在黑盒测试方式中,设计测试用例的主要根据是A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图10、在软件设计中不使用的工具是A、系统结构图B、程序流程图C、PAD 图D、数据流图(DFD 图)211、针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档12、关于C 语言中数的表示,以下叙述正确的是A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差13、以下关于算法叙述错误的是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14、以下叙述错误的是A、一个C 程序可以包含多个不同名的函数B、一个C 程序只能有一个主函数C、C 程序在书写时,有严格的缩进要求,否则不能编译通过D、C 程序的主函数必须用main 作为函数名15、设有以下语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2).若要为变量ch1 和ch2 分别输入字符A 和B,正确的输入形式应该是A、A 和B 之间用逗号间隔B、A 和B 之间不能有任何间隔符C、A 和B 之间可以用回车间隔D、A 和B 之间用空格间隔16、以下选项中非法的字符常量是A、’\102’B、’\65’C、’\xff’D、’\019’17、有以下程序#include <sthio.h>Main()Int A=0,B=0,C=0.C=(A=A5).(A=B,B+=4).Printf(“%d, %d, %d\n”,A,B,C)程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,018、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、x++. printf((“%d\n”,x).B、n=++x. printf((“%d\n”,n).C、++x. printf((“%d\n”,x).D、n=x++. printf((“%d\n”,n).19、以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.020、有以下程序#include <sthio.h>3Main(){ int a;Scanf(“%d”,&a).If(a++<9) printf((“%d\n”,a).Else printf((“%d\n”,a)程序运行时键盘输入9<回车>,则输出的结构是A、10 B 11 C 9 D 821、有以下程序#include <sthio.h>Main(){int s=0,n.For (n=0.n<3.n<++){switch(s){ case 0.Case 1.s+=1.Case 2.s+=2.break.Case 3.s+3.Case 4.s+=4.printf((“%d\n”,s).程序运行后的结果是A 1,2,4B 1,3,6C 3,10,14D 3,6,1022、若k 是int 类型变量,且有以下for 语句For(k=1;k<0.k++)printf(****\n”).下面关于语句执行情况的叙述中正确的是A、循环体执行一次B、循环体执行两次C、循环体一次也不执行D、构成无限循环23、有以下程序#include <sthio.h>Main(){char A,B,C.B=’1’.C=’A’For(A=0.A<6.A++){if(A%2) putchar(B+A).Else putchar(C+A);程序运行后输出的结果是A 1B3D5FB ABCDFEC A2C4E6D 12345624、设有如下定义语句Int m[ ]={2,4,6,8},*k=m.4以下选项中,表达式的值为 6 的是A *(k+2)B k+2C *k+2D *k+=225、fun 函数的功能是:通过键盘输入给x 所指的整型数组所有元素赋值。

计算机二级c语言2019笔试题及答案

计算机二级c语言2019笔试题及答案

计算机二级c语言2019笔试题及答案一、选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable_2D. variable$2答案:C3. 在C语言中,下列哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strncat答案:A4. 下列哪个选项是C语言中正确的注释方式?A. /* This is a comment */B. // This is a commentC. //* This is a commentD. /* This is a comment */5. C语言中,while循环的语法结构是:A. while(expression) statementB. do statement while(expression);C. for(expression; statement; expression)D. if(expression) statement答案:A6. 在C语言中,下列哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. 以上都是答案:D7. 下列哪个选项是C语言中用于定义一个整型数组的语法?A. int array[10];B. int array[];C. int array[10]={0};D. 以上都是答案:D8. 在C语言中,下列哪个函数用于将浮点数转换为字符串?A. sprintfB. sscanfC. atoiD. atof答案:A9. 在C语言中,下列哪个关键字用于定义一个指针?B. floatC. charD. *答案:D10. 下列哪个选项是C语言中正确的函数定义?A. int function(int x, int y) { return x + y; }B. int function(int x, int y) { return x - y; }C. int function(int x, int y) { return x * y; }D. 以上都是答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个宏。

计算机二级c语言2019笔试题及答案

计算机二级c语言2019笔试题及答案

计算机二级c语言2019笔试题及答案本篇文章将为读者呈现2019年计算机二级C语言笔试题目及其详细解答。

希望通过这篇文章的阅读与学习,读者们能够更好地掌握和理解C语言的知识点,为提高自身编程水平打下坚实的基础。

1. 选择题1) C语言中,以下哪个是合法的标识符?A. 123CB. C123C. C@123D. void答案:B. C123解析:C语言的标识符由字母、数字和下划线组成,且首字符不能是数字或者特殊字符。

因此选项B符合标识符的要求,可以作为合法的标识符使用。

2) 下列语句中,哪个是赋值运算符?A. +B. =C. %D. /答案:B. =解析:在C语言中,赋值运算符使用等号(=)来表示。

其他选项分别代表加法运算符(+)、取余运算符(%)和除法运算符(/)。

2. 填空题1) C语言中,用于输出内容到屏幕的函数是_______。

答案:printf解析:在C语言中,我们可以使用printf函数来输出内容到屏幕上。

2) 下列代码段中,正确的语句是_______。

A. int x;B. x = 10;C. printf("Hello World!");D. All of the above.答案:D. All of the above.解析:所有选项中的语句都是正确的。

选项A定义了一个整型变量x,选项B对变量x进行了赋值,选项C使用printf函数输出字符串。

3. 简答题1) 请简要解释C语言中的循环语句。

答案:循环语句在C语言中用于重复执行一段代码块。

C语言中提供了三种类型的循环语句:while、do-while和for循环。

这些循环语句的执行都依靠一个条件判断,只有当条件满足时,循环语句才会执行。

循环语句的使用可以有效地简化代码,提高程序的效率。

2) 常用的C语言控制语句有哪些?请简要介绍。

答案:C语言中常用的控制语句有条件语句和循环语句。

其中,条件语句包括if语句和switch语句。

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

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

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〞。

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

注意:局部源程序在文件中,不得增行或删行,也不得改正程序的结构!参照解析:【参照答案】(1)int k=0;(2)while(*p||*q)【考点解析】此题观察:变量初始化,需依照题意确定变量含义,尔后对其进行初始化操作;while循环语句。

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

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

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

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

2019年计算机二级考试C语言部分真题

2019年计算机二级考试C语言部分真题

2019年计算机二级考试C语言部分真题(11)以下叙述中准确的是A)在C语言程序中,main 函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都能够单独实行编译C)在C语言程序中,只有main 函数才可单独实行编译D)每个后缀为.C的C语言源程序都应该包含一个main函数(12)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述准确的是A)预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B)用户标识符能够由字母和数字任意顺序组成C)在标识符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标识符,但失去原有含义(13)以下选项中表示一个合法的常量是(说明:符号□表示空格)A)9□9□9B)0XabC)123E0.2D)2.7e(14)C语言主要是借助以下哪个功能来实现程序模块化A)定义函数B)定义常量和外部变量C)三种基本结构语句D)丰富的数据类型(15)以下叙述中错误的是A)非零的数值型常量有正值和负值的区分B)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表示的常量叫符号常量(16)若有定义和语句:int a,b; scanf("%d,%d",&a,&b); 以下选项中的输入数据,不能把值3 赋给变量a、5 赋给变量b 的是A)3,5,B)3,5,4C)3 ,5D)3,5(17)C语言中char 类型数据占字节数为A)3B)4C)1D)2(18)下列关系表达式中,结果为“假”的是A)(3+4)>6B)(3!=4)>2C)3='A'&&aa[j][0]){ t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;} puts(a[1]);程序运行后的输出结果是A)fwoB)fixC)twoD)owo(33)有以下程序#includeint a=1,b=2;void fun1(int a, int b){ printf(“%d%d”,a,b); }void fun2( ){ a=3; b=4; }main(){ fun1(5,6); fun2();printf("%d%d\n",a,b);程序运行后的输出结果是A)1 2 5 6B)5 6 3 4C)5 6 1 2D)3 4 5 6(34)有以下程序#includefunc(int n){ static int num=1;num=num+n;printf("%d",num);void main(){ func(3);func(4);printf("\n"); }程序运行后的输出结果是A)4 8B)3 4C)3 5D)4 5(35)有以下程序#include#includefun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);void main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);程序运行后的输出结果是A)42B)0C)1D)41(36)有以下程序#includestruct STU{char name[9];char sex;int score[2];};void f(struct STU a[]){ struct STU b={"zhao",'m',85,90};a[1]=b;main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].s core[1]);printf("%s,%c,%d,%d\n,",c[1].name,c[1].sex,c[1].score[0],c[1] .score[1]);程序运行后的输出结果是A)Zhao,m,85,90,Sun,m,98,99B)Zhao,m,85,90, Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99D)Qian,f,95,92,Zhao,m,85,90(37)以下叙述中错误的是A)能够用trpedef 说明的新类型名来定义变量B)trpedef 说明的新类型名必须使用大写字母,否则会出编译错误C)用trpedef 能够为基本数据类型说明一个新名称D)用trpedef 说明新类型的作用是用一个新的标识符来代表已存有的类型名(38)以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简单类型B)函数能够返回指向结构体变量的指针C)能够通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间能够整体赋值(39)若有定义语句 int b=2; 则表达式(b,则输出结果是【8】。

2019年计算机二级C语言考前必做试题及答案2

2019年计算机二级C语言考前必做试题及答案2

2019年计算机二级C语言考前必做试题及答案2(21)有以下程序:程序运行后的输出结果是( )。

A.852B.963C.741D.875421(22)有以下程序:程序运行后的输出结果是( )。

A.let=4B.m=2C.m=6D.m=5(23)有以下程序:程序运行后的输出结果是( )。

A.6B.3C.8(24)有以下程序:则以下函数调用语句错误的是( )。

A.k:f(a,B.;B.k:add(a,B.;C.k=(*f)(a,B.;D.k=*(a,B.;(25)有以下程序(26)下列定义数组的语句中,准确的是( )。

(27)有以下程序:程序运行后的输出结果是( )。

A.0 3 0 4B.2 0 5 0C.3 3 4 4D.3 0 4 0(28)有以下程序:程序运行后的输出结果是( )。

B.4C.lD.9(29)以下语句中存有语法错误的是( )。

(30)以下不能将s所指字符串准确复制到t所指存储空间的是( )。

A.do{*t++=*8++;}while(*s);B.for(i=0;t[i]=s[i];i++);C.while(*t=*s){t++;s++;}D.for(i=0,j=0;t[i++]=s[j++];);(31)有以下程序:程序运行后的输出结果是( )。

A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World(32)有以下程序:程序运行后的输出结果是( )。

B.3C.7D.8(33)有以下程序:程序执行后的输出结果是( )。

A.5,11B.5,5C.11,11D.11,5(34)在c语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

A.aut0和staticB.extern和registerC.aut0和registerD.static和register(35)下面结构体的定义语句中,错误的是( )。

A.struct ord{int x;int Y;int z;}struct ord a;B.struct ord{int x;im Y;im z;};struct ord a;C.struct ord{int x;int Y;int Z;}a;D.struct{int x;int Y;int z;}a;(36)有以下程序:程序运行后的输出结果是( )。

2019年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2019年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2019 年9 月全国计算机等级考试二级笔试试卷C 语言程序设计(考试时间90 分钟,满分100 分)一、选择题((1)—(10 )、(21 )—(40 )每题 2 分,(11 )—(20)每题 1 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装B)自顶向下C)模块化D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R 图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系R,S 和T 如下:T其中关系T由关系R和SA)选择B)投影C)交D)并(11) 以下叙述中正确的是A) 程序设计的任务就是编写程序代码并上机调试B) 程序设计的任务就是确定所用数据结构C) 程序设计的任务就是确定所用算法D) 以上三种说法都不完整(12) 以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned(13) 阅读以下程序#include <stdio.h>main(){ int case; float printF;printf(" 请输入2 个数:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printF);}该程序编译时产生错误,其出错原因是A) 定义语句出错,case 是关键字,不能用作用户自定义标识符B) 定义语句出错,printF不能用作用户自定义标识符C) 定义语句无错,seanf不能作为输入函数使用D) 定义语句无错,printf 不能输出case 的值(14) 表达式:(int)((double)9/2)-(9)%2 的值是A) 0 B)3 C)4 D)5(15) 若有定义语句:int x=10; ,则表达式x-=x+x 的值为A)-20 B)-10 C)0 D)10(16) 有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);A)0,0 B)1,0 C)3,2 D)1,217) 设有定义:int a=1,b=2,c=3; ,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;} C)if(a>b)c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}(18) 有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3 B)5 C)7 D)9(19) 以下程序段中,与语句:k=a>b?(b>c?1:0):0; 是功能相同的A)if((a>b)&&(b>c)) k=1; B)if((a>b)||(b>c) k=1;else k=0; else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;(20) 有以下程序#include <stdio.h>main(){ char s[]={"012xy"};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>='a' &&s[i]<='z') n++;printf("%d\n",n);} 程序运行后的输出结果是A)0 B)2 C)3 D)5(21) 有以下程序#include <stdio.h>main(){ int n=2,k=0; while(k++&&n++>2);A)0 2 B)1 3 C)5 7 D)1 2(22) 有以下定义语句,编译时会出现编译错误的是A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';(23) 有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母 A 的ASCII 码为65 ,程序运行后的输出结果是A) E,68 B)D,69 C)E,D D) 输出无定值(24) 有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf("%d",p);}main(){ int a=1;fun(a); printf("%d\n",a);}程序运行后的输出结果是A)32 B)12 C)21 D)22(25) 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max; for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A) 定义语句int i,max; 中max 未赋初值B) 赋值语句max=MIN; 中,不应给max 赋MIN 值C) 语句if(max<x[i]) max=x[i]; 中判断条件设置错误D) 赋值语句max=MIN; 放错了位置(26) 有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);程序运行后的输出结果是A) 1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27) 若有定义语句:int a[4][10],*p,*q[4];且0 < i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28) 有以下程序#include <stdio.h>#include <string.h>main(){ char str[ ][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是A)9,One*World B)9,One*Dream! C)10,One*Dream!D)10,One*World(29) 有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");} 程序运行后的输出结果是A) 3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4(30) 有以下程序#include <stdio.h> #include <string.h> main() { char a[10]="abcd"; printf("%d,%d\n",strlen(a),sizeof(a));程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)10,10(31) 下面是有关C 语言字符数组的描述,其中错误的是A) 不可以用赋值语句给字符数组名赋字符串B) 可以用输入语句把字符串整体输入给字符数组C) 字符数组中的内容不一定是字符串D) 字符数组只能存放字符串(32) 下列函数的功能是fun(char *a,char *b){ while((*b=*a)!='\0') {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有'\0'(33) 设有以下函数void fun(int n,char * s) { ..... }则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun;C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;34) 有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7 B)8 C)9 D)10(35) 有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);} 程序运行后的输出结果是A)10,64 B)10,10 C)64,10 D)64,64(36) 下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B) struct ord {int x;int y;int z;} struct ord a;C) struct ord {int x;int y;int z;} a;D) struct {int x;int y;int z;} a;(37) 设有定义:char *c;,以下选项中能够使字符型指针指向c 正确一个字符串的是A)char str[ ]="string";c=str; B)scanf("%s",c);C)c=getchar(); D)*c="string";(38) 有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}struct A f(struct A t){ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0(39) 若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40) 下列关于C 语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C) 文件由数据序列组成,可以构成二进制文件或文本文件D) 文件由字符序列组成,其类型只能是文本文件二、填空题(每空 2 分,共30 分)请将每空的正确答案写在答题卡【1】至【15 】序号的横线上,答在试卷上不得分。

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

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 中。

相关文档
最新文档