2013年9月全国计算机等级《二级C语言程序设计》终极押密卷(5)(整理版)
- 格式:doc
- 大小:107.50 KB
- 文档页数:15
全国计算机等级考试二级C语言笔试试题及答案一、选择题1. 以下关于C语言的描述中,正确的是(A)A. C语言是一种结构化程序设计语言B. C语言是面向对象的程序设计语言C. C语言是一种解释型语言D. C语言是一种高级汇编语言答案:A2. 在C语言中,以下哪个选项是非法的整型常量?(D)A. 012B. 0x123C. 0XabcD. 0123答案:D3. 若变量已正确定义并赋值,以下正确的表达式是(C)A. a = b ++ + 1;B. a = b ++ = a++;C. a = b + b++;D. a = ++b + ++b;答案:C4. 在C语言中,以下哪个函数用于输出字符?(B)A. printfB. putcharC. putcharcD. putchart答案:B5. 已知 int a = 5, b = 3;,以下哪个选项的结果为1?(D)A. a % bB. a / bC. a + bD. a - b答案:D二、填空题1. 在C语言中,一个int类型的数据在内存中占______个字节。
答案:42. C语言中,逻辑运算符“或”用______表示。
答案:||3. 若定义 int a = 10, b = 20;,则执行语句 a += b -= a; 后,b的值为______。
答案:104. 在C语言中,函数的返回值类型为void时,表示该函数______。
答案:无返回值5. 在C语言中,以下函数的返回类型为______。
int max(int a, int b) {return (a > b) ? a : b;}答案:int三、判断题1. C语言中的数组名可以作为指针使用。
(正确)2. 在C语言中,静态存储区的数据在程序运行期间一直存在。
(正确)3. 在C语言中,结构体是一种用户自定义的数据类型。
(正确)4. 在C语言中,函数的参数传递都是按值传递的。
(错误,部分按引用传递)5. 在C语言中,文件操作完成后必须关闭文件,否则可能导致数据丢失。
全国计算二级考试c语言试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的数据类型?A. 整型B. 浮点型C. 字符型D. 所有选项答案:D2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. charD. double答案:A3. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D4. C语言中,用于实现循环的关键字是:A. forB. whileC. do-whileD. 所有选项答案:D5. 在C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. strcat()D. sum()答案:D6. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. $variableD. variable答案:B7. C语言中,用于定义一个字符型变量的关键字是:A. intB. floatC. charD. double答案:C8. C语言中,用于输出的函数是:A. printf()B. scanf()C. getchar()D. getche()答案:A9. 在C语言中,以下哪个选项是正确的注释方式?A. /* 这是一个注释 */B. // 这是一个注释C. # 这是一个注释D. 所有选项答案:A10. C语言中,用于定义一个浮点型变量的关键字是:A. intB. floatC. charD. double答案:B二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑“与”的运算符是________。
答案:&&2. C语言中,表示逻辑“或”的运算符是________。
答案:||3. C语言中,表示逻辑“非”的运算符是________。
答案:!4. 在C语言中,用于定义一个字符串的字符数组时,需要在数组声明的末尾加上________。
全国计算机考试二级c语言真题题库答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的数据类型?A. intB. floatC. doubleD. A、B和C都是答案:D2. 下列哪个是合法的C语言变量名?A. 2variableB. variable-nameC. _variableD. variable name答案:C3. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. =答案:A4. 以下哪个选项是C语言中的控制语句?A. ifB. switchC. whileD. A、B和C都是5. 在C语言中,哪个函数用于计算并返回一个浮点数的平方根?A. sqrt()B. pow()C. log()D. sin()答案:A6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int [10] array;D. A和B都是答案:D7. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str = "Hello";D. A和B都是答案:D8. 在C语言中,以下哪个选项是正确的函数声明?A. void function();B. int function();C. void function(int a);D. A、B和C都是答案:D9. 在C语言中,以下哪个选项表示“或”逻辑操作?B. ||C. !D. =答案:B10. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int id;char name[50];} employee;B. struct employee {int id;char name[50];};C. A和B都是D. A和B都不是答案:C11. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = NULL;D. A和C都是答案:D12. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fprintf()D. A、B和C都是13. 在C语言中,以下哪个选项表示“非”逻辑操作?A. &&B. ||C. !D. =答案:C14. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {Red, Green, Blue};B. enum {Red, Green, Blue} color;C. A和B都是D. A和B都不是答案:C15. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. const double PI = 3.14159;C. A和B都是D. A和B都不是答案:A16. 在C语言中,以下哪个选项是正确的联合体声明?A. union {int a;float b;} data;B. struct {int a;float b;C. A和B都是D. A和B都不是答案:A17. 在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. A、B和C都是答案:D18. 在C语言中,以下哪个选项是正确的类型转换?A. (int)3.14B. (float)3C. A和B都是D. A和B都不是答案:C19. 在C语言中,以下哪个选项是正确的递归函数声明?A. void function();B. void function(int a);C. void function(void function());D. A和B都是答案:B20. 在C语言中,以下哪个选项是正确的预处理指令?A. #includeB. #defineC. #ifdefD. A、B和C都是二、程序填空题(每题5分,共20分)1. 请填写以下代码段中缺失的部分,以实现计算并打印一个整数的平方:```c#include <stdio.h>int main() {int num, square;scanf("%d", &num);square = num _____ num;printf("Square: %d\n", square);return 0;}```答案:*2。
2013年9月二级C语言真题及答案(考试时间:120分钟,满分100分)一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分)) (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(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。
c语言国家二级考试真题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x123B. 123.0C. '123'D. 0123答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. $variableD. variable name答案:B3. 若有定义:int a=3, b=4; 则表达式 a++ + b 的值是多少?A. 7B. 6C. 5D. 8答案:A4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A5. 以下哪个选项是C语言中的合法浮点数?A. 3.14e2B. 3.14E2C. 3.14eD. 3.14E答案:B6. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a[] = {1, 2, 3, 4};答案:B7. 在C语言中,以下哪个选项是正确的函数声明?A. int func(int a, int b);B. int func();C. int func(int a, b);D. int func(int a, int);答案:A8. 若有定义:int x=10; 则表达式 x += 5 的值是多少?A. 10B. 15C. 5D. 20答案:B9. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student { int age; char name[20]; };B. struct { int age; char name[20]; } Student;C. struct Student { int age; char name[20]; } student;D. struct { int age; char name[20]; };答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p[];C. int (*p)[];D. int *p[10];答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。
一2013年9月全国计算机等级《二级C语言程序设计》终极押密卷(5)、选择题(每小题1分,共40分)1有以下定义语句,编译时会出现编译错误的是(C)。
A.char a='a’;B. char a='\n’C。
char a=’aa’;D. char a='\x2d’;解析:char类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。
2下列链表中,其逻辑结构属于非线性结构的是(C)0、A.双向链表B。
带链的栈 C. 二叉链表D。
循环链表解析:数据的逻辑结构是描述数据之间的关系,分两大类:线性结构和非线性结构.线性结构是n个数据元素的有序(次序)集合,指的是数据元素之间存在着“一对一”的线性关系的数据结构。
常用的线性结构有:线性表,栈,队列,双队列,数组,串.非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱.常见的非线性结构有:树(二叉树等),图(网等),广义表。
3在黑盒测试方法中,设计测试用例的主要根据是(D)。
A。
程序外部功能B。
程序内部逻辑 C. 程序数据结构 D. 程序流程图解析:黑盒测试是不考虑内部结构,而程序流程图是程序内部的表示方法,所以此测试是根据程序流程图进行的,答案选择D4定义无符号整数类为UInt,下面可以作为类UInt实例化值的是(B)。
A.—369 B。
369 C。
0.369 D。
整数集合{1,2,3,4,5}解析:其中A选项是有符号的,C选项是小数,D选项是结合并不是类的实例化对象,只有B完全符合.5有以下程序:#include〈stdio.h>main(){short C=124;C=C_;print f(”%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是( D )。
A.>>2 B。
|248 C。
&0248 D. 〈〈1解析:124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D6设有定义:int x[2][3];,则以下关于二维数组X的叙述错误的是(D)。
⼀、选择题(1)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的⽐较次数为 A)log2n B)n2 C)O(n1.5) D)n(n-1)/2(2)算法分析的⽬的是 A)找出数据结构的合理性 B)找出算法中输⼊和输出之间的关系 C)分析算法的易懂性和可靠性 D)分析算法的效率以求改进(3)线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是 A)每个元素都有⼀个直接前件和直接后件 B)线性表中⾄少要有⼀个元素 C)表中诸元素的排列顺序必须是由⼩到⼤或由⼤到⼩ D)除第⼀个元素和最后⼀个元素外,其余每个元素都有⼀个且只有⼀个直接前件和直接后件(4)在单链表中,增加头结点的⽬的是 A)⽅便运算的实现 B)使单链表⾄少有⼀个结点 C)标识表结点中⾸结点的位置 D)说明单链表是线性表的链式存储实现(5)软件⼯程的出现是由于 A)程序设计⽅法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展(6)软件开发离不开系统环境资源的⽀持,其中必要的测试数据属于 A)硬件资源 B)通信资源 C)⽀持软件 D)辅助资源(7)在数据流图(DFD)中,带有名字的箭头表⽰ A)模块之间的调⽤关系 B)程序的组成成分 C)控制程序的执⾏顺序 D)数据的流向(8)分布式数据库系统不具有的特点是 A)数据分布性和逻辑整体性 B)位置透明性和复制透明性 C)分布性 D)数据冗余(9)关系表中的每⼀横⾏称为⼀个 A)元组 B)字段 C)属性 D)码(10)下列数据模型中,具有坚实理论基础的是 A)层次模型 B)状模型 C)关系模型 D)以上3个都是(11)以下叙述不正确的是 A)⼀个C源程序可由⼀个或多个函数组成 B)⼀个C源程序必须包含⼀个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于⼀条语句的后⾯(12)在C语⾔中,int,char和short三种类型数据在内存中所占⽤的字节数 A)由⽤户⾃⼰定义 B)均为2个字节 C)是任意的 D)由所⽤机器的机器字长决定(13)以下叙述正确的是 A)在C程序中,每⾏中只能写⼀条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,⽆论是整数还是实数,都能被准确⽆误地表⽰ D)在C程序中,%是只能⽤于整数运算的运算符(14)C语⾔中的标识符只能由字母,数字和下划线三种字符组成,且第⼀个字符 A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母,数字和下划线中任⼀字符(15)已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合C语⾔语法的表达式是 A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3)(16)x,y,z被定义为int型变量,若从键盘给x,y,z输⼊数据,正确的输⼊语句是 A)INPUT x、y、z; B)scanf("%d%d%d",&x,&y,&z); C)scanf("%d%d%d",x,y,z); D)read("%d%d%d",&x,&y,&z);(17)设x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A)10,3 B)9,3 C)9,2 D)10,2(18)以下程序的输出结果是 main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d);} A)1 B)0 C)⾮0的数 D)-1(19)执⾏下列程序时输⼊:123456789 输出结果是 main() { char s[100]; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s\n",c,i,s);} A)123,456,789 B)1,456,789 C)1,23,456,789 D)1,23,456(20)下⾯有关for循环的正确描述是 A)for循环只能⽤于循环次数已经确定的情况 B)for循环是先执⾏循环体语句,后判断表达式 C)在for循环中,不能⽤break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须⽤花括号括起来(21)以下程序的输出结果是 main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2)continue; x++; } x++; } printf("x=%d\n",x); } A)x=4 B)x=8 C)x=6 D)x=12(22)设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运⾏程序段后输出0 B)运⾏程序段后输出1 C)程序段中的控制表达式是⾮法的 D)程序段执⾏⽆限次(23)对下Ⅰ,Ⅱ两个语句描述正确的是 Ⅰ.while(1)Ⅱ.for(;;) A)都是⽆限循环 B)Ⅰ是⽆限循环,Ⅱ错误 C)Ⅰ循环⼀次,Ⅱ错误 D)以上答案都错(24)若有以下定义,则能使值为3的表达式是 int k=7,x=12; A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)(25)设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执⾏(m=a>b)&&(n=c>d)后n的值是 A)1 B)2 C)3 D)4(26)以下描述中正确的是 A)由于do-while循环中循环体语句只能是⼀条可执⾏语句,所以循环体内不能使⽤复合语句 B)do-while循环由do开始,⽤while结束,在while(表达式)后⾯不能写分号 C)在do-while循环体中,是先执⾏⼀次循环,再进⾏判断 D)do-while循环中,根据情况可以省略while(27)以下函数返回a所指数组中最⼩的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i if(a[i] return(p);} 在下划线处应填⼊的是 A)i=p B)a[p]=a[i] C)p=j D)p=I(28)以下叙述正确的是 A)函数可以嵌套定义但不能嵌套调⽤ B)函数既可以嵌套调⽤也可以嵌套定义 C)函数既不可以嵌套定义也不可以嵌套调⽤ D)函数可以嵌套调⽤但不可以嵌套定义(29)若有说明语句 char a[]="It is mine"; char *p="It is mine"; 则以下不正确的叙述是 A)a+1表⽰的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符(30)以下程序的运⾏结果是 sub(int x,int y,int *z) {*z=y-x;} main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("M,M,M\n",a,b,c);} A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7(31)若⼆维数组a有m列,则计算任⼀元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第⼀个位置上) A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1(32)下列说法正确的是 int i,x; for(i=0,x=0;i<=9 &&x!=876;i++)scanf("%d",x); A)最多的执⾏10次 B)最多执⾏9次 C)是⽆限循环 D)循环体⼀次也不执⾏(33)若有下⾯的程序⽚段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引⽤是 A)pp[0][1] B)a[10] C)p[3][1] D)*(*(p+2)+2)(34)若有说明:int a[3][4]={0};则下⾯正确的叙述是 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不⼀定为0 D)数组a中每个元素均可得到初值0(35)对下⾯程序描述正确的⼀项是(每⾏程序前⾯的数字表⽰⾏号) 1 main() 2 { 3 float a[3]={0.0}; 4 int i; 5 for(i=0;i<3;i++)scanf("%d",&a[i]); 6 for(i=1;i<3;i++)a[0]=a[0]+a[i]; 7 printf("%f\n",a[0]); 8 } A)没有错误 B)第3⾏有错误 C)第5⾏有错误 D)第7⾏有错误(36)以下不正确的说法是 C语⾔规定: A)实参可以是常量,变量或表达式 B)形参可以是常量,变量或表达式 C)实参可以为任何类型 D)形参应与其对应的实参类型⼀致(37)已有如下数组定义和f函数调⽤语句,则在f函数的说明中,对形参数组array的正确定义⽅式为 int a[3][4]; f(a); A)f(array[3][4]) B)f(int array[3][]) C)f(int array[][4]) D)f(int array[][])(38)下⾯程序的输出结果为 main() { int a,b;b=(a=3*5,a*4,a*5); printf("%d",b);} A)60 B)75 C)65 D)⽆确定值(39)在位运算中,操作数右移⼀位,其结果相当于 A)操作数乘以2 B)操作数除以2 C)操作数乘以4 D)操作数除以4(40)有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。
全国等级考试二级c试题答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中定义一个整型变量的正确方式?A. int number;B. integer number;C. var number;D. number int;答案:A2. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C3. 若有以下代码段:```cint a = 5, b = 10;a = b;```执行后,变量a的值是多少?A. 5B. 10C. 15D. 0答案:B4. C语言中,用于计算两个数的乘积的运算符是什么?A. +B. -C. *D. /答案:C5. 在C语言中,哪个函数用于输入一个字符?A. scanf()B. printf()C. getchar()D. getc()答案:C6. 若有以下代码段:```cint x = 3;printf("%d", x++);```执行后,输出的结果是多少?A. 2B. 3C. 4D. 5答案:B7. 在C语言中,哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C8. 下列哪个选项是C语言中声明一个浮点型变量的正确方式?A. float number;B. floating number;C. real number;D. decimal number;答案:A9. C语言中,用于计算两个数的和的运算符是什么?A. +B. -C. *D. /答案:A10. 若有以下代码段:```cint a = 5, b = 10;b = a + b;```执行后,变量b的值是多少?A. 5B. 10C. 15D. 20答案:C11. 在C语言中,哪个函数用于输出一个整数?A. scanf()B. printf()C. getchar()D. getc()答案:B12. C语言中,用于计算两个数的差的运算符是什么?A. +B. -C. *D. /答案:B13. 若有以下代码段:```cint x = 3;printf("%d", ++x);```执行后,输出的结果是多少?A. 3B. 4C. 5D. 6答案:B14. 在C语言中,哪个关键字用于声明一个数组?A. arrayB. listC. sequenceD. []答案:D15. C语言中,用于计算两个数的商的运算符是什么?A. +B. -C. *D. /答案:D16. 若有以下代码段:```cint a = 5, b = 10;a = a * b;```执行后,变量a的值是多少?A. 25B. 50C. 100D. 500答案:B17. 在C语言中,哪个函数用于输入一个字符串?A. scanf()B. printf()C. gets()D. fgets()答案:D18. C语言中,用于计算两个数的余数的运算符是什么?A. +B. -C. %D. /答案:C19. 若有以下代码段:```cint x = 3;printf("%d", x--);```执行后,输出的结果是多少?A. 2B. 3C. 4D. 5答案:B20. 在C语言中,哪个关键字用于声明一个结构体?A. structB. typeC. classD. record答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于声明一个字符型变量的关键字是________。
全国计算机等级考试二级C语言真题2013年9月(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是______。
(分数:1.00)A.12345ABCDEB.EDCBA54321 √C.ABCDE12345D.54321EDCBA解析:[解析] 栈是按照先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B。
2.下列叙述中正确的是______。
(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的√解析:[解析] 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B与C错误。
3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是______。
(分数:1.00)A.O(n)B.O(n2)C.O(log2n) √D.0(nlog2n)解析:[解析] 当有序线性表为顺序存储时才能用二分法查找。
可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次。
4.下列叙述中正确的是______。
(分数:1.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的√B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:[解析] 链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与C错误。
一2013年9月全国计算机等级《二级C语言程序设计》终极押密卷(5)、选择题(每小题1分,共40分)1有以下定义语句,编译时会出现编译错误的是(C)。
A.char a='a';B. char a='\n'C. char a='aa';D. char a='\x2d';解析:char类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。
2下列链表中,其逻辑结构属于非线性结构的是(C)0、A.双向链表B. 带链的栈C. 二叉链表D. 循环链表解析:数据的逻辑结构是描述数据之间的关系,分两大类:线性结构和非线性结构。
线性结构是n个数据元素的有序(次序)集合,指的是数据元素之间存在着“一对一”的线性关系的数据结构。
常用的线性结构有:线性表,栈,队列,双队列,数组,串。
非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。
常见的非线性结构有:树(二叉树等),图(网等),广义表。
3在黑盒测试方法中,设计测试用例的主要根据是(D)。
A. 程序外部功能B. 程序内部逻辑C. 程序数据结构D. 程序流程图解析:黑盒测试是不考虑内部结构,而程序流程图是程序内部的表示方法,所以此测试是根据程序流程图进行的,答案选择D4定义无符号整数类为UInt,下面可以作为类UInt实例化值的是(B)。
A.-369B. 369C. 0.369D. 整数集合{1,2,3,4,5}解析:其中A选项是有符号的,C选项是小数,D选项是结合并不是类的实例化对象,只有B完全符合。
5有以下程序:#include<stdio.h>main(){ short C=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是( D )。
A.>>2B. |248C. &0248D. <<1解析:124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D6设有定义:int x[2][3];,则以下关于二维数组X的叙述错误的是(D)。
A. x[0]可看做是由3个整型元素组成的一维数组B. x[0]和x[l]是数组名,分别代表不同的地址常量C. 数组X包含6个元素D. 可以用语句x[o]=0;为数组所有元素赋初值0解析:x[0]是不能赋值的。
7以下程序的主函数中调用了在其面前定义的fun函数#include<stdio.h>main(){double a[15],k;k=fun(a);..}则以下选项中错误的fun函数首部是(A)。
、A. double fun(double a[l5])B. double fun(double *a) 。
C. double fun(double a[])D. double fun(double a)解析:由题可知fun的参数为变量,而a[15]为常量,所以答案为A。
8有以下程序:#include<stdio.h>,main(){int S;scanf("%d",&s);while(s>O){switch(s){case l:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,由输出结果是(A)。
A. 6566456B. 66656C. 66666D. 6666656解析:根据题意,当s=1时,输出65;当s=2时,输出6;当S=3时,则输出64;当S=4时,输出5;当s=5时,输出6;当s=0时,程序直接退出。
所以最后答案为6566456,A选项正确。
9有三个关系R、S和T如下:则由关系R和S得到关系T的操作是(D)。
A.自然连接B. 并C. 交D. 差解析:关系的基本运算有差、交、并、投影等。
根据R和S得到T,可以看出,此关系为差,所以答案选择D。
10有以下定义和语句:struct workers{int num;char name[20];char C;struct{int day;int month;int year;)S;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是(D)。
A. *pw.year=1980;B. w.year=1980;C. pw->year=1980D. w.S.year=1980;解析:结构workers中的成员s是一个嵌套的结构类型定义,因此在给year赋值时,要用“.”运算在深入一层访问到最基本的成员year,只有D项反映出了这一点。
11在软件开发中,需求分析阶段产生的主要文档是(D)。
A. 软件集成测试计划B. 软件详细设计说明书C. 用户手册D. 软件需求规格说明书解析:软件需求分析阶段所生成的说明书为需求规格说明书。
12以下叙述中错误的是(C)。
A. 一个C程序中可以包含多个不同名的函数B. 一个C程序只能有一个主函数C. C程序在书写时,有严格的缩进要求,否则不能编译通过D. C程序的主函数必须用main作为函数名解析:C语言程序中有且只有一个主函数,但允许自定义多个函数。
主函数的表示方法为main(),所以答案选择C。
13下列叙述中正确的是( B )。
A. 数据库系统是一个独立的系统,不需要操作系统的支持B. 数据库技术的根本目标是要解决数据的共享问题C. 数据库管理系统就是数据库系统D. 以上三种说法都不对解析:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台这五部分共同构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
数据库技术的根本目的是要解决数据的共享问题a数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等,是数据库系统的核心,它是数据库系统的一部分,二者不能等同。
14以下定义数组的语句错误的是(B)。
A. int num[]={1,2,3,4,5,6};B. int num[][3]={{1,2},3,4,5,6};C. int num[2][4]={{1,2},{3,4},{5,6}};D. int num[][4]={1,2,3,4,5,6};解析:二维数组的定义有3种形式,第一种是分行为两位数组赋值,即int num[]={{12},{3,4},{5,6}},第二种是按照数组排列顺序进行赋值,即int num[]={1,2,3,4,5,6},第三种为对部分元素赋初值,即int num[]={{1,2}{},{3,4},{5,6}},所以错误的为B。
15有以下程序:#include<stdio.h>struct S{int a,b;)data[2]=10,100,20,200);main(){struet S p=data[l];printf("%d\n",++(p.a));}程序运行后的输出结果是(D)。
A. 10B. 11C. 20D. 2116有如下嵌套的if语句:if(a<b)if(a<c)k=a;else k=C:elseif(b<c)k=b;else k=C;以下选项中与上述if语句等价的语句是(C)。
A. k=(a<b)?a:b;k=(b<c)?b:C;B. k=(a<b)?((b<c)?a:b):((b>c)?b:c);C. k=(a<b)?((a<c)?a:c):((b<c)?b:c);D. k=(a<b)?a:b;k=(a<c)?a:c;解析:条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式做真/假检测,然后根据结果返回两个表达式中的一个作为运算的结果。
<表达式1>?<表达式2>:<表达式3>。
在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。
17有以下程序:#include <stdio.h>int a=1,b=2:void funl(int a,int b){printf( "%d%d",a,b);}void fun2(){ a=3;b=4;}main(){ funl(5,6);fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是(B)。
A. 1 2 5 6B. 5 6 3 4C. 5 6 1 2D. 3 4 5 6解析:Funl是输出局部变量的值,fun2是把全局变量的值改成3和4,所以输出的结果是5634 18若有定义语句“int a,b;double X;”,则下列选项中没有错误的是( C )。
A. switch(X%2){case 0:a++;break;case l:b++;break;default:a++;b++;}B. switch((int)x/2.O){case 0:a++;break;case l:b++;break;default:a++;b++;}C. switch((int)X%2){case 0:a++;break;case l:b++;break;default:a++;b++;}D. switch((int)(x)%2){case 0.0:a++;break;case l.0:b++;break;default:a++;b++;}解析:C语言中,switch语句中的表达式和case表达式都不能是浮点类型。
所以选C。
19有以下程序(函数fun只对下标为偶数的元素进行操作):#include<stdio.h>void fun(int*a。
int n){ int i,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main(){int aa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序运行后的输出结果是( A )。