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错误。
计算机二级C语言专家押题卷(三)及答案2013年9月计算机二级C语言专家押题卷(三)及答案一、选择题(每题2分,共计70分)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)大系统的复杂性 B)人员知识不足C)客观世界千变万化 D)时间紧、任务重8.下列SQL语句中,用于修改表结构的是A)ALTER B)CREATEC)UPDATE D)INSERT9.数据库、数据库系统和数据库管理系统之间的关系是A)数据库包括数据库系统和数据库管理系统B)数据库系统包括数据库和数据库管理系统C)数据库管理系统包括数据库和数据库系统D)3者没有明显的包含关系10.关系模型允许定义3类数据约束,下列不属于数据约束的是A)实体完整性约束 B)参照完整性约束C)域完整性约束 D)用户自定义的完整性约束11.下列用于printf函数的控制字符常量中,代表"竖向跳格"的转义字符常量是A)\b B)\t C)\v D)\f12.以下程序的输出结果是main(){ int a=21,b=11;printf("%d\n",--a+b,--b+a);}A)30 B)31 C)32 D)3313.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.014.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是A)x&&y B)x<=yC)x||++y&&y-z D)!(x15.若变量已正确说明为int类型,要通过语句scanf("%d %d %d ",&a,&b,&c);给a 赋值3,b赋值5,c赋值8,不正确的输入形式是A)3<回车>5<回车>8<回车>B)3,5,8<回车>C)3<回车>58<回车>D)35<回车>8<回车>16.设有程序段int k=10;while(k=0)k=k-1;则下面描述中正确的是A)while循环执行10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次17.对表达式for(表达式1; ;表达式3)可理解为A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)18.以下程序的输出结果是main(){ int a,i;a=0;for(i=1;i<5;i++){ switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}} printf("%d\n",a);A)31 B)13 C)10 D)2019.若有如下语句int x=3;do{ printf("%d\n",x-=2);}while(!(--x));则上面程序段A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环20.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的语句是#includemain(){ int a,b,t;scanf("%d%d",&a,&b);while(){ f(a>b){ =a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}A)!a=b B)a!=b C)a==b D)a=b21.有以下程序void fun(int a,int b,int c){a=456,b=567,c=678;}main(){ int x=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出结果是A)30,20,10B)10,20,30C)456,567,678D)678,567,45622.若有说明:int a[][4]={0,0};则下面不正确的叙述是A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值23.有以下程序main(){ char a[]={ ′a′,′b′,′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j;i=sizeof(a); j=strlen(a);printf("%d,%d\b",i,j);}程序运行后的输出结果是A)9,9 B)8,9 C)1,8 D)9,824.已知学生记录描述为struct student{ int no;char name[20],sex;struct{ int year,month,day;} birth;};struct student s;设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是A)year=1984;month=11;day=12;B)s.year=1984;s.month=11;s.day=12;C)birth.year=1984;birth.month=11;birth.day=12;D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;25.以下程序的运行结果是#define MIN(x,y)(x)<(y)?(x):(y)main(){ int i=10,j=15,k;k=10*MIN(i,j);printf("%d\n",k);}A)10 B)15 C)100 D)15026.有如下程序int func(int a,int b){ return(a+b);}main(){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出的结果是A)12 B)13 C)14 D)1527.设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名28.有如下定义struct person{char name[9];int age;};struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,}; 根据上述定义,能输出字母M的语句是A)printf("%c\n",class[3].name);B)printf("%c\n",class[3].name[1]);C)printf("%c\n",class[2].name[1]);D)printf("%c\n",class[2].name[0]);29.以下程序执行后a的值是main(){ int x,y=252,i=386,*m=&y,*z=&ix=(z==y);printf("%d",x);}A)252 B)1 C)0 D)运行时出错,x无定值30.阅读下列程序,当运行函数时,输入asd af aa z67,则输出为#include#include#includeint fun (char *str){ int i,j=0;for(i=0;str[i]!=′\0′;i++)if(str[i]!=′′)str[j++]=str[i];str[j]= ′\0′;}main(){char str[81];int n;clrscr();printf("Input a string : ");gets(str);puts(str);fun(str);printf("%s\n",str);}A)asdafaaz67 B)asd af aa z67C)asd D)z6731.下列程序的输出结果是struct abc{ int a, b, c, s;};main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0].a+s[1].b;printf("%d\n",t);}A)5 B)6 C)7 D)832.若有定义: char *st= "how are you "; 下列程序段中正确的是A)char a[11], *p; strcpy(p=a+1,&st[4]);B)char a[11]; strcpy(++a, st);C)char a[11]; strcpy(a, st);D)char a[], *p; strcpy(p=&a[1],st+2);33.下列程序的运行结果是void fun(int *a, int *b){ int *k;k=a; a=b; b=k;}A)6 3 B)3 6 C)编译出错 D)0 034.请选出正确的程序段A)int *p;scanf("%d",p);…B)int *s, k;*s=100;…C)int *s, k;char *p, c;s=&kp=&c*p=′a′;…D)int *s, k;char *p, e;s=&kp=&cs=p;*s=1;…35.若有下面的说明和定义,则sizeof(struct aa)的值是struct aa{ int r1; double r2; float r3;union uu{char u1[5];long u2[2];}ua;} mya;A)30 B)29C)24 D)22二、填空题(每空2分,共计30分)1.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为______。
2013年9月全国计算机等级《二级C语言程序设计》上机模考试卷(5)总分:100分及格:60分考试时间:120分一、选择题(每小题1分,共40分)(1) 下列叙述中正确的是( )。
A. 在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B. 实型变量中允许存放整型数C. 若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变D. 在C程序中,求余算符“%”两边的类型相同时才能进行运算(2) 软件生命周期中,花费最多的阶段是( )。
A. 详细设计B. 软件编码C. 软件测试D. 软件维护(3) 假定X和Y为double型,则表达式x=2,y=x+3/2的值是( )。
A. 3.500000B. 3C. 2.000000D. 3.000000(4) 有如下程序:main(){ int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++.b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是( )。
A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=2(5) 设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。
A. x&&yB. x<=yC. x||y+z&&y—ZD. !((x<y)&&!z||1)(6) 有下列程序:main(){ char s[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是( )。
A. 输出字符a的ASCII码B. 输出字符c的ASCII码C. 输出字符cD. 程序出错(7) 设有以下定义union data{int d1;float d2;)demo;则下面叙述中错误的是( )。
A. 变量demo与成员d2所占的内存字节数相同B. 变量demo中各成员的地址相同C. 变量demo和各成员的地址相同D. 若给demo.d1赋99后,demo.d2中的值是99.0(8) 要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。
国家c语言二级机试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是正确的C语言函数声明?A. int function(int a, int b);B. int function(int, int);C. int function(int a; int b);D. int function(int a, int b)答案:A3. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列哪个选项是C语言中合法的数组声明?A. int a[10];B. int b[2,3];C. int c[2][3];D. int d[];答案:C5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[5] = "Hello";D. char str[] = "Hello", "World";答案:A6. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A7. C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h" <stdio.h>D. #include <stdio.h> "stdio.h"答案:B8. 在C语言中,以下哪个选项是正确的循环语句?A. do-whileB. do...whileC. do { ... } while (condition);D. do { ... } while;答案:C9. 下列哪个选项是C语言中合法的函数原型?A. int function();B. int function(int);C. int function(int a, int b);D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int *ptr = NULL;D. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个指针变量。
全国等级考试二级c试题答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义int a[5] = {1, 2, 3, 4, 5};,则a[3]的值是多少?A. 3B. 4C. 5D. 6答案:B3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. $variableD. variable5. 在C语言中,哪个运算符用于计算两个数的乘积?A. /B. *C. %D. +答案:B6. 以下哪个函数用于在字符串中查找子字符串?A. strstr()B. strfind()C. strchr()D. strcspn()答案:A7. 在C语言中,哪个关键字用于声明一个函数?A. functionB. defineC. defD. int答案:D8. 若有定义int a = 10;,则表达式a++的值是多少?A. 10B. 11C. 9D. 错误答案:A9. 在C语言中,哪个关键字用于声明一个指针?B. pointerC. *D. ref答案:C10. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. ==答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以对变量进行自增操作。
答案:++2. 若有定义int a = 5;,则执行语句a %= 3;后,变量a的值是________。
答案:23. 在C语言中,使用________函数可以将一个字符串复制到另一个字符串。
答案:strcpy()4. 若有定义int a[3] = {1, 2, 3};,则执行语句for (int i = 0;i < 3; i++) printf("%d ", a[i]);后,输出结果是________。
2013年9月计算机二级c语言考试真题及答案一、选择题(每题2分,共40分)1. 下列关于C语言中变量的描述,错误的是:A. 变量名可以包含数字和下划线B. 变量名必须以字母或下划线开头C. 变量名区分大小写D. 变量名可以包含空格答案:D2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个选项不是合法的标识符?A. _nameB. 2nameC. name$D. name答案:B4. 若有定义 int a=5, b=3;,则表达式 a%b 的值是:A. 2B. 1C. 0D. 错误答案:B5. 在C语言中,以下哪个运算符不能用于浮点数?A. %B. +C. -D. /答案:A6. 以下哪个选项不是C语言中的基本数据类型?A. intB. floatC. stringD. double答案:C7. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A8. 若有定义 int a=10;,则执行语句 a+=a-=a*a; 后,a 的值是:A. -80B. -70C. 0D. 10答案:A9. 在C语言中,以下哪个选项是正确的二维数组的声明?A. int array[3,4];B. int array[3][4];C. int array[][4];D. int array[3][4];答案:B10. 下列关于C语言中函数的描述,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数必须有返回值D. 函数可以有默认参数答案:B11. 在C语言中,以下哪个选项不是控制语句?A. ifB. switchC. forD. include答案:D12. 若有定义 int a=5, b=10;,则执行语句 a=b>a?b:a; 后,a 的值是:A. 5B. 10C. 15D. 0答案:B13. 在C语言中,以下哪个选项不是合法的指针类型?A. int *B. float *C. char *D. double *答案:D14. 在C语言中,以下哪个函数用于动态分配内存?A. malloc()B. free()C. calloc()D. realloc()答案:A15. 在C语言中,以下哪个选项不是合法的数组初始化方式?A. int array[3] = {1, 2, 3};B. int array[] = {1, 2, 3};C. int array[3] = {1};D. int array[] = {1, 2, 3, 4, 5};答案:D16. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student { int age; char name[20]; };B. struct { int age; char name[20]; };C. struct Student { int age; char name; };D. struct { int age; char name[20]; } student;答案:A17. 在C语言中,以下哪个选项不是合法的文件操作函数?A. fopen()B. fclose()C. fgetc()D. fgets()答案:D18. 在C语言中,以下哪个选项不是合法的宏定义?A. #define PI 3.14159B. #define SQUARE(x) x*xC. #define PRINT printf("Hello World")D. #define PRINT(x) printf(x)答案:C19. 在C语言中,以下哪个选项不是合法的预处理指令?A. #includeB. #defineC. #ifdefD. #end答案:D20. 在C语言中,以下哪个选项不是合法的位运算符?A. &B. |C. ^D. %答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是________。
二级C语言真题2013年09月-(4)(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是______。
(分数:1.00)A.栈与队列都只能顺序存储B.循环队列是队列的顺序存储结构√C.循环链表是循环队列的链式存储结构D.栈是顺序存储结构而队列是链式存储结构解析:[解析] 栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。
为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构,故B选项正确。
2.设某二叉树的前序序列为ABC,中序序列为CBA,则该二叉树的后序序列为______。
(分数:1.00)A.BCAB.CBA √C.ABCD.CAB解析:[解析] 二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
前序序列为ABC,则A为根节点。
中序序列为CBA,则C和B均为左子树节点或右子树节点,且C为B父节点,可知后序序列为CBA,故B选项正确。
3.下列排序方法中,最坏情况下时间复杂度最小的是______。
(分数:1.00)A.冒泡排序B.快速排序C.堆排序√D.直接插入排序解析:[解析] 在最坏情况下,对长度为n的线性表排序,冒泡排序、快速排序、直接插入排序的时间复杂度均为O(n2),堆排序时间复杂度为O(nlog 2 n),复杂度最小。
故C选项正确。
4.为了对有序表进行对分查找,则要求有序表______。
(分数:1.00)A.只能顺序存储√B.只能链式存储C.可以顺序存储也可以链式存储D.任何存储方式解析:[解析] 二分法查找也称拆半查找,是一种高效的查找方法。
全国计算机等级考试二级c语言押题一、选择题(每题2分,共50题)在Word中,若要将邀请信内容以繁体中文格式呈现,最优的操作方法是:A. 选用一款繁体中文输入法,然后使用该输入法输入邀请信内容B. 先输入邀请信内容,然后通过Word中内置的中文简繁转换功能将其转换为繁体格式C. 在计算机中安装繁体中文字库,然后将邀请信字体设为某一款繁体中文字体D. 在Windows“控制面板”的“区域和语言”设置中,更改区域设置以实现繁体中文显示下列属于计算机程序设计语言的是:A. ACDSeeB. VisualBasicC. WaveEditD. WinZip二进制数1110111.11转换成十六进制数是:A. 77.CB. 77.3C. E7.CD. E7.3在PowerPoint中,若需将一个被其他图形完全遮盖的图片删除,最优的操作方法是:A. 先将上层图形移走,然后选中该图片将其删除B. 通过按Tab键,选中该图片后将其删除C. 打开“选择窗格”,在对象列表中选择该图片名称后将其删除D. 直接在幻灯片中单击选择该图片,然后将其删除数据独立性是数据库技术的重要特点之一,所谓数据独立性是指:A. 数据与程序独立存放B. 不同的数据被存放在不同的文件中C. 不同的数据只能被对应的应用程序所使用D. 数据与应用程序的逻辑结构相互独立下列关于算法的描述,正确的是:A. 算法的时间复杂度是指执行算法程序所需要的时间B. 算法的空间复杂度是指算法程序所占的存储空间C. 算法是解决问题的步骤集合,具有确定性、有穷性、输入、输出和可行性D. 算法只能使用计算机语言描述在Excel中,要为工作表添加“第1页,共?页”样式的页眉,最快捷的操作方法是:A. 在页面布局视图中,直接输入“第1页,共?页”B. 在页面布局视图中,使用页眉的预设样式功能C. 在“页面设置”对话框中,为页眉应用“第1页,共?页”的预设样式D. 在页眉区域使用VBA代码实现动态页码下列文件扩展名中,不属于Word模板文件的是:A. .DOTXB. .DOCXC. .DOTD. .DOTM在计算机网络中,英文缩写WAN的中文名是:A. 局域网B. 无线网C. 广域网D. 城域网下列关于软件工程三要素的描述,正确的是:A. 方法、工具和平台B. 方法、工具和过程C. 方法、工具和环境D. 方法、算法和工具(注:由于篇幅限制,以下仅展示部分题目,实际试卷应包含更多题目以全面考察考生能力。
一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 )。