[计算机类试卷]国家二级(C语言)笔试模拟试卷178及答案与解析.doc

上传人:周芸 文档编号:503338 上传时间:2018-11-29 格式:DOC 页数:18 大小:54KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷178及答案与解析.doc_第1页
第1页 / 共18页
[计算机类试卷]国家二级(C语言)笔试模拟试卷178及答案与解析.doc_第2页
第2页 / 共18页
[计算机类试卷]国家二级(C语言)笔试模拟试卷178及答案与解析.doc_第3页
第3页 / 共18页
[计算机类试卷]国家二级(C语言)笔试模拟试卷178及答案与解析.doc_第4页
第4页 / 共18页
[计算机类试卷]国家二级(C语言)笔试模拟试卷178及答案与解析.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 178 及答案与解析 1 对于一个正常运行的 C程序,下列叙述中正确的是 ( )。 ( A)程序的执行总是从 main函数开始,在 main函数结束 ( B)程序的执行总是从程序的第一个函数开始,在 main函数结束 ( C)程序的执行总是从 main函数开始,在程序的最后一个函数中结束 ( D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束 2 以下选项中与 if(a=1)a+; else a=b;语句功能不同的语句是 ( )。 ( A) switch(A)ease 0: a=b; break; default: a+; ( B) swi

2、tch(a=1) case 0: a+: default: a=b; ( C) switch(A)default: a=b; break; case 1: a+; ( D) a=(a=1)?(a+): b 3 以下不合法的用户标识符是 ( )。 ( A) 804zhang ( B) _hh ( C) yy614 ( D) If 4 已知 char a; int b; float e; double d;则表达式 a-b+c-d结果为 ( )型。 ( A) double ( B) float ( C) int ( D) char 5 假设有语句 sizeof(double),则它是 ( )。 (

3、 A)一个整型表达式 ( B)一个双精度浮点型表达式 ( C)一种函数调用 ( D)一种函数定义 6 若变量都已正确说明,则以下程序段输出结果为 ( )。 #include stdio.h main() char a=a; int b=2; printf(a b?”*a=%d“: “#b=%d“, a, B; ( A) *a=3 ( B) #b=3 ( C) *a=3#b=5 ( D)全部错误 7 若有以下定义 (设 int类型变量占 2个字节 ) int i=8, j=9: 则以下语句: printf(“i=%d, j=%dn“, i, j); 输出的结果是 ( )。 ( A) i=8,j=

4、9 ( B) i=%d, j=%8 ( C) i=%d, j=%d ( D) 8, 9 8 设 a和 b均为 int型变量,且 a=6, b=11,则能使值为 3的表达式是 ( )。 ( A) b%(a%4) ( B) b%(a-a%5) ( C) b%a-a%5 ( D) (b%B)-(a%4) 9 有关 return语句说法不正确的是 ( )。 ( A)系统默认的返回值类型为整型,故当函数的返回值为 int型时,在函数定义时,返回值的类型说明可以省略 ( B)当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数 ( C)当函数没有返回值时,函数的返回值类型可以说明为 void型,它

5、表示 “无类型 ”或 “空类型 ” ( D)函数的返回值类型 必须与 return语句中的表达式值的类型一致,但 C语言也允许不同;这时,系统以函数定义时的返回值类型说明为准,并自动地将 return语句中表达式的值转换为函数的返回值类型 10 有以下程序: #include stdio.h main() int i=0, a=0; while(i 20) for(; ) if(i%5)=0)break; else i-; i+=13, a+=i; pfintf(“%dn“, A); 程序的输出结果是 ( )。 ( A) 62 ( B) 63 ( C) 23 ( D) 36 11 在下列选项中

6、,没有构成死循环的程序段是 ( )。 ( A) int i=100; for(; ) i=i%10+1; if(i 10)break; ( B) while(1); ( C) int k=0; do+k; while(k =10); ( D) int s=12; while(s); -s; 12 若已定义的函数有返回值,则以下关于该 函数调用的叙述中错误的是 ( )。 ( A)函数调用可以作为独立的语句存在 ( B)函数调用可以作为一个函数的实参 ( C)函数调用可以出现在表达式中 ( D)函数调用可以作为一个函数的形参 13 以下程序的输出结果是 ( )。 #include stdio.h

7、main() int a=1, b=3; if(+a 0) printf(“n%d“, C); ( A) 9 ( B) 10 ( C) 12 ( D) 2 29 已知一个文件中存放若干工人档案记录,其数据结 构如下: struct a char number100; int age; float p6; ; 定义一个数组: struct a number10; 假定文件已正确打开,不能正确地从文件中读入 10名工人数据到数组 b中的是 ( )。 ( A) fread(b, sizeof(structA), 10, fp); ( B) for(i=0; i 10; i+) fread(bi, s

8、izeof(structA), 1, fp); ( C) for(i=0; i 10; i+) fread(b+i, sizeof(structA), 1, fp); ( D) for(i=0; i 5; i+=2) fread(b+i, sezeof(structA), 2, fp); 30 以下程序运行时若从键盘输入: 10 20 30回车。输出结果是 ( )。 #include stdio.h main() int i=0,j=0,k=0; scanf(“%d%*d%d“, i, j, k);printf(“%d%d%dn“,i,j,k); 31 下面程序由两个源程序文件: t4.h和

9、t4.c组成,程序编译运行结果是 ( )。t4 h的源程序为: #define N 10 #define f2(x)(x*N) t4.c的源程序为: #include stdio.h #define M 8 #define f(x)(x)*M) #include“t4.h“ main() int i, j; i=f(1+1); j=f2(1+1); printf(“%d%dn“,i,j); 32 以下程序的运行结果是 ( )。 main() (int a=2, b=7, c=5; switch(a 0) case 1: switch(b 0) case 1: switch(“);break;

10、case 2: printf(“!“); break; case 0: switch(c=5) case 0: printf(“*“); break; case 1: printf(“#“); break; case 2: printf(“$“); break; default: printf (“ “); printf(“n“); 33 以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135,则输出531,请填空。 #include stdio.h main() int n, s; printf(“Enter a number: “); scanf(“%d“, n); printf

11、(“Output: “); do s=n%10; printf(“%d“, s); ( ); while(n!=0); printf(“n“); 34 以下程序的输出结果是 ( )。 int fun(int*x,int n) if(n=0) return x0; else return x0+fun(x+1, n-1); main() int a=1,2,3,4,5,6,7; printf(“%dn“,fun(a,3); 35 若有定 义: int a=4, b=5, c=6;然后顺序执行下列语句后,变量 b中的值是( )。 c=(a-=(b-5); c=(a%3)+(b=1); 36 以下程

12、序运行后的输出结果是 ( )。 main() int a, b, c; a=10; b=20;c=(a/b 1) printf(“%dn“, Power2(i+j); 38 以下程序运行后的输出结果是 ( )。 #include stdio.h main() int x=20; printf(“%d“, 0 x 20); printf(“%dn“, 0 x 39 以下程序运行后的输出结果是 ( )。 #include stdio.h main() int a=1, b=7; do b=b/2; a+=b; while(b 1); printf(“%dn“,A); 40 算法的基本特征主要包括叫

13、个方面,它们分别是可行性、确定性、 ( )和拥有足够的情报。 41 在长度为 n的有序线性表中进行二分查找,最坏的情况下,需要的比较次数为( )。 42 在面向对象方法中, ( )是具有相似性质的对象的集合。 43 软件产品从提出、实现、使用维护到停止使用退役的过程称为 ( )。 44 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有 3种,它们分别是层次模型、网状模型和 ( )。 国家二级( C语言)笔试模拟试卷 178 答案与解析 1 【正确答案】 A 【试题解析】 一个 C语言源程序无论包括了多少函数,总是从 main 函数开始执行,从 main 函

14、数结束。 2 【正确答案】 B 3 【正确答案】 A 【试题解析】 C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线 。 4 【正确答案】 A 【试题解析】 C语言中允许进行不同数据类型的混合运算,但在实际运算时,要先将不同类型的数据转化成同一类型再进行运算。类型转换的一般规则是: 运算中将所有 char型转换成 int型, float型转换成 double型; 低级类型服从高级类型,并进行相应的转换,数据类型由低到高的顺序为: *char- int- unsigned- long- float- double; 赋值运算中最终结果的类型,以赋值运算符左边变量

15、的类型为准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行 相应转换。 5 【正确答案】 A 【试题解析】 sizeof(double)是 C语言内部规定的一个计算参数 (double)在计算机的内存中所占用的字节数量的函数,它返回一个整数值。 6 【正确答案】 D 7 【正确答案】 B 8 【正确答案】 D 9 【正确答案】 D 10 【正确答案】 D 11 【正确答案】 C 12 【正确答案】 D 13 【正确答案】 C 14 【正确答案】 B 【试题解析】 题目中,虽然 else和第二个 if 不在同一行上,但等价于在 同一行上,因此,程序的意思是当 x大于 0且不等于 5时将其打

16、印出来。 15 【正确答案】 B 16 【正确答案】 A 【试题解析】 本题考查三目运算符 “?:”。表达式 “x 12?x+10:x-12”即,如果 x12成立,则 x+10的值即为此表达式的值,否则 x-12即为此表达式的值。因为x=12,所以 x 12不成立,所以执行 y=x-12=0。 17 【正确答案】 C 【试题解析】 本题考查 switch 语句。因为 ch=A,所以第一个 switch 语句,执行easeA后面的语句,输出 AAAA,没有遇到 break 语句,所以接着再执行 caseB和 default,分别输出 BBBB 和 CCCC。 18 【正确答案】 A 【试题解析】

17、 本题考查循环的 4个知识点: break 语句可以出现在循环体内及switch 语句体内,不能用于其他的语句; continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着转去判定循环条件是否成立,从而确定下一次循环是否继续执行,也就是说执行 contitme语句不会使整个循环终止; 在循环体内使用 break 语句会使循环提前终止; 从多层循环嵌套 中退出时,可以使用 goto语句或者 break 语句。 19 【正确答案】 C 20 【正确答案】 A 21 【正确答案】 D 22 【正确答案】 D 【试题解析】 程序首先定义了一个指向一维数组 a的指针 p,一个指向

18、指针变量p 的指针变量 q,输出 *(p+)是先输出 *p即 a0的值,再将指针 p 指向数组的下一个元素 a1,输出 *q是输出指针 p所指向单元的内容,即 a1的值。 23 【正确答案】 B 【试题解析】 本题涉及字符串的两个最基本的概念。 字符串的长度是指字符串中字符 的个数,但不包含字符串结束符; 以反斜线 “”开头的特殊字符序列,意思是把反斜线后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内 ,“”连同后面的字符为一个长度。 24 【正确答案】 B 【试题解析】 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。 数组第一维

19、的下标是 i,说明它前面还有 i行,有 i*m个元素,数组第二维的下标是 j,说明它前面还有 j列,有 j个元素,所以共有 i*m+j个元素。 25 【正确答案】 A 【试题解析 】 分析 fun 函数程序段,可知 fun 函数要实现的功能是将 s中第 (t+1)个元素以前的元素逆置赋给数组 p。由于 fun函数定义了静态变量 t=3,因此,在主函数中调用函数 fun(a, &x)时,就是要将数组 a中前 4个元素逆置赋给数组 x,最后输出 x数组。 26 【正确答案】 D 【试题解析】 本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点: 定义仅仅是符

20、号替换,不是赋值语句,因此不做语法检查; 为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写 ; 双引号中出现的宏名不替换; 使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。 27 【正确答案】 A 28 【正确答案】 A 29 【正确答案】 B 30 【正确答案】 10 30 0 【试题解析】 本题的考点是 C语言的 scanf的 “%*d”。 “%*d”是在输入流中跳过一个整数,而读入下一个整数。因此语句 “scanf(“%d%*d%d“, i, j,k); ”在读入 10、 20、 30 时,将 10读入到 i中,将 20跳过,将 30读入到 j中,而k 没有读

21、入数,仍是初值的 0。 31 【 正确答案】 16 11 【试题解析】 本题主要考查宏定义的两种形式,不带参数的宏定义: “#define宏名替换文本 ”;带参数的宏定义: “#define宏名 (形参表 )替换文本 ”。故i=(1+1)*8)=16, j=(1+1*10)=11。 32 【正确答案】 # 【试题解析】 刚开始时, switch 后面的表达式 a 0为真 (1),与 case1匹配,然后执行 case1后面的 switch 语句,表达式 b 0值为 0,没有与其匹配的语句,返回外层,因为外层没有 break 语句,顺序执行 case 0后面的 switch语句,表达式“c=5”

22、值为 1,与其后面的 case1匹配,因此输出 #,遇到 break 返回外层,又因为外层没有 break 语句,顺序执行 default 后的语句,输出。 33 【正确答案】 n/=10 【试题解析】 正整数按逆序输出,即从低位到高位顺序取出该正整数个数位的值输出。 “s=n%10”为除 10取余,第一次循环取出该正整数小数位,为顺序移位,该空应为 n/=10。 34 【正确答案】 10 【试题解析】 实参中 a将数组元素的首地址传递给形参 x,将 3传递给形参 n,调用函数 fun(),当 n=3时不满足 if 语句条件,执行 else语句,递归调用函数fun(),改变 x0的值。直到满足

23、 if 条件把 x0值返回,最后输出。函数 rotate的功能是:将 a所指 N行 N列的二维数组中的最后一行放到 b 所指二维数组的第 0列中,把 a所指二维数组中的第 0行放到 b 所指二维数组的最后一列中, b所指二维数组中其他数据不变。 35 【正确答案】 1 【试题解析】 本题考查的是基本赋值运算符和赋值表达式。 a-=(b-5)等价于 a=a-(b-5)=4, c=a=4; a%3=1, c=(a%3)+(b=1)=2,其中 b 的值被 b=1 确定为 1。 36 【正确答案】 10 20 0 【试题解析】 本题考查的是混合运算。 “(a/b 1)&(a%b 1)”的运算顺序为:括

24、号算术运算符关系运算符逻辑运算符。其中 a%b=10, a, b=0,所以a%b 1的值为 0, a/b 1的值为 1,故整个表达式的结果为 0,所以输出的 a,b, c的值为 10 20 0。 37 【正确答案】 62 【试题解析】 本题考查的是宏定义。带参数的宏定义是按 #indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为: 6+8*6+8,代入 i, j的值得到 62。 38 【正确答案】 10 【试题解析】 表达式 0 x 20,首先计算 0 x,其值为 1,再计算 1 20,其值为 1,输出 1;表达式 0 x & x 20, 0 x为 1, x 20为 0,再

25、计算 1 & 0,其值为 0,输出 0。所以输出结果为 10。 39 【正确答案】 5 【试题解析】 该程序考查 do-while循环。循环共进行两次。第一次循环 b=3,a=4;第二次循环 b=1, a=5。输出 a的值为 5。 40 【正确答案】 有穷性 41 【正确答案】 log2n 【试题解析】 对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较log2n 次,而顺序查找需要比较 n次。需要注意的是当有序线表为顺序存储时才能使用二分查找。 42 【正确答案】 类 【试题解析】 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同操作性质的对象的集合,是已经定义了的关

26、于对象的特征、外观和行为的模板。所以类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其划应类的一个实例。 43 【正确答案】 软件生命周期 【试题解析】 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 在国家标准 “计算机软件开发规范 ”中,把软件生命周期划分为 8个阶段,即可行性研究与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护,对每个阶段,都明确规定了该阶段的任务、实施方法、实施步骤和完成标志,其中特别规定了每个阶段需要产生的文档。 44 【正确答案】 关系模型 【试题解析】 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的反映,它分为两个阶 段:把现实世界中的客观对象抽象为概念模型;把概念模型转换为某一 DBMS 支持的数据模型。常见的数据模型有 3种,它们分别是层次模型、网状模型和关系模型。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1