《全国计算机二级C语言试题与答案.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言试题与答案.docx(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.1 以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案:C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C) main ()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案:A2.3 以下说法正确的是A) C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main ()函数中定义C) C语言程序总是从main ()函数开始执行D) C语言程序中的
2、main ()函数必须放在程序的开始部分正确答案:C2.4 C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后正确答案:C2.5 以下叙述不正确的是A) 一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案:D2.6 下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言的函数uj以嵌套调用正确答案:D2.7 以下叙述正确的是A)在C程序中,每行中
3、只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案:D2.8 以下说法错误的是A) 一个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现(循环结构)D)算法的目的是为了求解正确答案:C2. 9算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性 的是A)有零个输入或多个输入B)高效性(有效性、有1个或者多个输出)C)有穷性D)确定性正确答案:B3.
4、 10下列关于C语言的说法不正确的是A) C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间 的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案:B1.11 以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C) C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE (.obj)的二进制文件D)每种高级语言都有它对应的编译程序正确答案:C1.12 C语言中用于结
5、构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B) if, switch, breakC) for, while, do-whileD) if, for, continue正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)2.13用高级语言编写的程序称为【1】程序,它可以通过解释程序翻译一句执行一句的方式 执行,也可以通过编译程序一次翻译产生目标程序,然后执行。正确答案:源程序2. 14 C语言程序的注释可以出现在程序中的任何地方,一个注释以【2】作为开始和结束。正确答案:/* */3.1 C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符
6、型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案:B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案:C3.3 下列可用于C语言用户标识符的一组是A) void, define, WORDB) a3_b3, _123, CarC) For, -abc, IF CaseD) 2a, DO, sizeof正确答案:B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A) 016 0x8f 018B) Oabc 017 OxaC) 010 -0x11 0
7、x16D) 0al2 7ff -123正确答案:D3.5 下列数据中,不合法的C语言实型数据的是A) 0. 123B) 123e3C) 2. Ie3. 5D) 789.0正确答案:C3.6 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A) a=20000+20000;B) a=4000*10;C) a=30000+10000;D) a=4000L*10L;正确答案:D3.7 若有说明语句:char c= 72;则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案:A3.8 有字符串如下,n407aslxabc,则字符串的长
8、度为A) 6B) 7C) 8D) 9正确答案:D3.9 C语言中运算对象必须是整型的运算符是A) %=B) /C)=D) y后,变量z的值为A) 0B) 1C) 4D) 5正确答案:B5.3能正确表示逻辑关系:“210或8辽0”的C语言表达式是A) a=10 or a=0|a=10 &a=10 II a=0正确答案:D5. 4若变量c为char类型,能正确判断出c为小写字母的表达式是A) a =c=z az ) | (c=z zz )C) ( a =c)D) (c= a ) & (c=z z )正确答案:D5.5 设 int x=l,y=l;表达式(!x| |y-)的值是A) 0B) 1C)
9、2D) -1正确答案:B5. 6有如下程序段ASCII 码A 65B 66.Z 90a 97b98.z 122int a=14, b=15, x;char c= A;x=(a&b) & (cd)后n的值是A) 1B) 2C) 3D) 4正确答案:B5.9 已知x,y,z均为整型变量,且值均为1,则执行语句+x| |+y&+z;后,表达式x+y的 值为A) 1B) 2C) 3D) 4正确答案:C5. 10表达式aA) IIB) &C) 100) break;B) for (;);C) int k=10000;dok+;while (k10000);D) int s=36;while (s) -s
10、;正确答案:D6. 3下面有关for循环的正确描述是A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来正确答案:D6.4 若int i,j;,则for (i=j=0; i10&j8;b=+k)printf (*%d, %d, , a- b);printf (n) ;A) 10, 10, 10,0,B) 10, 9, 9, 0,C) 10, 10, 9, 1,D) 9,9,9, 1,考生答案:正确答案:B6.6 有一堆零件(100到2
11、00之间),如果分成4个零件一组的若干组,则多2个零件;若分成7 个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。#includemain () int i;for (i=100;i200;i+)if (i-2) %4=0)if (! (i-3) %7)if ()printf i);)A) i%9=5B) i%9!=5C) (i-5) %9!=0D) (i-5) %9=0正确答案:D6.7 下列程序的输出结果是#include stdio. hmain ()int i, a=0, b=0;for (i=l;i10;i+) if (i%2= =0
12、) a+;continue; b+; printf (*a=%d, b=%d*, a, b) ;A) a=4, b=4B) a=4, b=5C) a=5, b=4D) a=5, b=5正确答案:B6.8 阅读下列程序,则执行结果是include stdio. hmain ()int a=0, b=0, c=0, i;for (i=0;i2;m-) k=0;for (n=m;nl;n-)k=k+m*n;printf (%f n, k);)A) 5. 000000B) 15. 000000C) 25.000000D) 35.000000正确答案:B6. 10下面程序的运行结果是#include s
13、tdio. hmain () int j, i, k=0;for (j=50;j=j-l) printf j);k+; A) 5359B) 5953C) 3595D) 9535正确答案:A6. 11已知int t-0;while (t=l).)则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案:B6.12 设有以下程序段 int x=0, s=0;while (!x!=0) s+=+x;printf s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次正确答案:B6.13
14、下列程序的输出结果是 ftinclude stdio. h main () int i=6;while (i)printf i);printf;A) 531B) 420C) 654321D)死循环正确答案:B6. 14对下I , II两个语句描述正确的是1 . while (1) II. for (;)A)都是无限循环B) I是无限循环,H错误C) I循环一次,H错误D)以上答案都错正确答案:A6.15以下程序段的描述,正确的是dox=x*x;while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误 正确答案:C 6. 16若有如下语句 int x=3;do print
15、f (%dn”, x-=2) ;while (! (x);则上面程序段A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环 正确答案:B 6. 17下面程序的运行结果是 #include main () int a=l, b=10;do b=a; a+; while (b0);printf (*a=%d, b=%d n*, a, b);)A) a=3, b=ll B) a=2, b=8 C) a=l, b=-l D) a=4, b=9 正确答案:B6.18若运行以下程序时,从键盘输入ADescriptor (表示回车),则下面程序的运行结果是 #include main () ch
16、ar c;int vO=l, vl=0, v2=0;doswitch (c=getchar ()casea:caseA,:case e1:case E:case i,:case r :case o:case O:case u1:case U :vl+=ldefault:vO+=l;v2+=l; while (c! = , n);printf (*vO=%d, vl=%d, v2=%dn*, vO, vl, v2) ;A) vO=7, vl=4, v2=7B) v0=8, vl=4, v2=8C) vO=ll, vl=4, v2=llD) v0=13, vl=4, v2=12 正确答案:D6.
17、19下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选 择填空。ttincludemain () int i=0, j, k;do i+; k=316-13*i; while ();j=k/ll;printf (*316=13*%d+U*%d*, i, j);A) k/11B) kC) k/ll=0D) k=0 正确答案:B6. 20 C语言中while和do-whi le循环的主要区别是A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件更严格C) do-while允许从外部转到循环体内D) do-wh
18、ile的循环体不能是复合语句正确答案:AE) 21下列说法中错误的是A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C)在while和dowhile循环中,continue语句并没有使整个循环终止D) continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一 次进行循环判断 正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)6.22设i, j, k均为int型变量,则执行完下面的for语句后,k的值为11 for (i=0, j=10; i=j; i+, j- -) k=i+j;正
19、确答案:106. 23下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请 填空。main ()int i, x, y=l;scanf&x);for (i=2; i0; y)if (y%3=0) printfy) ; continue; )正确答案:8526. 25阅读下面程序段,则执行后的输出结果为【4】o#include “stdio. h main () int a=l;for (;a=15;)if (+a%5!=2) continue;else printf (%d,a);printf (n) ; 正确答案:27126.26 阅读下面语句,则执行后的输出结果为【
20、5】#include stdio. hmain () char a, b;for (a= O ,b=9 ;aprintf (%c%c”, a, b);printf (n) ; 正确答案:09182736456.27 阅读下面程序,则执行后程序的结果为【6】#include “stdio. h main () int a=0, b=0;while (a15) a+;while (b+15);printf (*%d, %dn*, a, b) ;正确答案:15, 16一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确选项填涂在答题卡相应位置上。)1.1 若有说
21、明int a 3 4;则a数组元素的非法引用是A) a 0 2*1B) a 1 3C) a 4-2 0D) a 0 4正确答案:D1.2 在C语言中,引用数组元素时,其数组卜标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案:C1.3 执行下面的程序段后,变量k中的值为int k=3, s 2;s 0 =k; k=s 1 *10;A)不定值B) 33C) 30D) 10 正确答案:A7.4定义如下变量和数组: int k;int a 3 3 =9, 8, 7,6, 5, 4, 3, 2,1; 则卜.面语句的输出结果是for (k=0;k3;k+)
22、printf (%d, a k k A) 7 5 3B) 9 5 1一0 9 6 3D) 7 4 1 正确答案:B 7.5下列程序执行后的输出结果是 main ()/ char arr 2 4 ; strcpy (arr, you); strcpy (arr 1;arr 0 3 =z ; printfarr);00 9,01 8, 02 7106,11 5, 124);20 3, 21 2,22 100 Y ,01 0,02 U,03 010M,ll E J20,130A) you&meB) youC) meD) err7. 6设有数组定义:char array正确答案:AA)B)C)D)4个
23、字节5个字节6个字节7个字节 正确答案:C7.7 以下不正确的定义语句是A) double x 5 =2. 0, 4. 0, 6. 0, 8. 0, 10. 0;B) int y 5 =0,1,3,5,7, 9;C) char cl 口 = 1 J 2 J 3 J 4 J 5 ;D) char c2 口 = xlOz , xa , x8,;正确答案:B7.8 若有说明:int a 口 3 =1, 2, 3, 4, 5, 6, 7;则a数组第一维的大小是三列 1 23 456 77.9 对以下说明语句的正确理解是 int a 10 =6, 7, 8, 9, 10;A)将5个初值依次赋给a 门至a 5B)将5个初值依次赋给a 0至a 4C)将5个初值依次赋给a 6至a 10D)因为数