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

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

1、国家二级( C语言)机试模拟试卷 97及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)算法就是程序 ( B)设计算法时只需要考虑数据结构的设计 ( C)设计算法时只需要考虑结果的可靠性 ( D)以上三种说法都不对 2 下列叙述中正确的是 ( )。 ( A)有一个以上根结点的数据结构不一定是非线性结构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)双向链表是非线性结构 3 下列关丁二叉树的叙述中,正确的是 ( )。 ( A)叶子结点总是比 度为 2的结点少一个 ( B)叶子结点总是比度为 2的结点多一个 ( C)叶子结点数是度为 2的

2、结点数的两倍 ( D)度为 2的结点数是度为 1的结点数的两倍 4 软件生命周期中的活动不包括 ( )。 ( A)市场调研 ( B)需求分析 ( C)软件测试 ( D)软件维护 5 某系统总体结构图如下图所示: 该系统总体结构图的深度是 ( )。 ( A) 7 ( B) 6 ( C) 3 ( D) 2 6 程序调试的任务是 ( )。 ( A)设计测试用例 ( B)验证程序的正确性 ( C)发现程序中的错误 ( D)诊断和改 正程序中的错误 7 下列关于数据库设计的叙述中,正确的是 ( )。 ( A)在需求分析阶段建立数据字典 ( B)在概念设计阶段建立数据字典 ( C)在逻辑设计阶段建立数据字

3、典 ( D)在物理设计阶段建立数据字典 8 数据库系统的三级模式不包括 ( )。 ( A)概念模式 ( B)内模式 ( C)外模式 ( D)数据模式 9 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)投影 ( D)并 10 下列选项中属于面向对象设计方法主要特征的 是 ( )。 ( A)继承 ( B)自顶向下 ( C)模块化 ( D)逐步求精 11 以下叙述中错误的是 ( )。 ( A)算法正确的程序可以有零个输入 ( B)算法止确的程序最终一定会结束 ( C)算法正确的程序可以有零个输出 ( D)算法正确的程序对于相

4、同的输入一定有相同的结果 12 以下叙述中正确的是 ( )。 ( A) C语句必须在一行内写完 ( B) C程序中的每一行只能写一条语句 ( C) C语言程序中的注释必须与语句写在同一行 ( D)简单 C语句必须以分号结束 13 以下选项中关于 C语言 常量的叙述错误的是 ( )。 ( A)经常被使用的变量可以定义成常量 ( B)常量分为整型常量、实型常量、字符常量和字符串常量 ( C)常量可分为数值型常量和非数值型常量 ( D)所谓常量,是指在程序运行过程中,其值不能被改变的量 14 以下选项中,不合法的 C语言用户标识符是 ( )。 ( A) a_b ( B) AaBc ( C) a-b

5、( D) _1 15 若变量均已正确定义并赋值,以下合法的 C语言赋值语句是 ( )。 ( A) x=y=5; ( B) x=n 2 5; ( C) x+n=i; ( D) x=5=4+1; 16 设有定义: int a; float b; 执行 scanf(“ 2d f“, &a, &b); 语句时,若从键盘输入 876 543 0回车 则 a和 b的值分别是 ( )。 ( A) 87和 6 0 ( B) 876和 543 0 ( C) 87和 543 0 ( D) 76和 543 0 17 有以下定义语句,编译时会出现编译错误的是 ( )。 ( A) char a= x2d; ( B) c

6、har a= n; ( C) char a=a; ( D) char a=“aa“; 18 当变量 c的值不为 2、 4、 6时,值也为 “真 “的表达式是 ( )。 ( A) (c =2& c =6)&(c 2!=1) ( B) (c=2)|(c=4)|(c=6) ( C) (c =2& c =6)&!(c 2) ( D) (c =2& c =6)|(c!=3)|(c!=5) 19 有以下计算公式 若程序前面已在命令行中包含 math h文件,不能够正确计算上述公式的程序段是 ( )。 ( A) if(X =0)y=sqrt(x); if(X 0)y=sqrt(-x); ( B) if(X

7、=0)y=sqrt(x); else y=sqrt(-x); ( C) y=sqrt(X); if(X 0)y=sqrt(-x); ( D) y=sqrt(x =0?x: -x); 20 有以下程序: #include stdio h main() int y=10; while(y-); printf(“y= d n“, y); 程序执行后的输出结果是 ( )。 ( A) y=-1 ( B) y=0 ( C) y=1 ( D) while构成无限循环 21 有以下程序: #ilMude stdio h main() int i; for(i=1; i =40; i+) if(i+ 5=0)

8、if(+i 8=0)printf(“ d“, i); printf(“ n“); 程序执行后的输出结果是 ( )。 ( A) 5 ( B) 24 ( C) 32 ( D) 40 22 有以下程序: #include stdio h main() int s; scanf(“ d“, &s); while(s 0) switch(s) case1: printf(“ d“, s+5); case2: printf(“ d“, s+4); break; case3: printf(“ d“, s+3); default: printf(“ d“, s+1); break; scanf(“ d“,

9、&s); 运行时,若输入 1 2 3 4 5 0回车,则输出结果是 ( )。 ( A) 66656 ( B) 6566456 ( C) 66666 ( D) 6666656 23 以下叙述中错误的是 ( )。 ( A)用户定义的函数中可以没有 return语句 ( B)用户定义的函数中可以有多个 return语句,以便可以调用一次返 回多个函数值 ( C)用户定义的函数中若没有 return语句,则应当定义函数为 void类型 ( D)函数的 return语句中可以没有表达式 24 有以下程序: #include stdio h void fun(char*c, int d) *c=*c+1;

10、 d=d+1; printf(“ c, c, “, *c, d); main() char b=a, a=A; fun(&b, a); printf(“ c, c n“, b, a); 程序运行后的输出结果是 ( )。 ( A) b, B, b, A ( B) b, B, B, A ( C) a, B, B, a ( D) a, B, a, B 25 下列选项中,能正确定义数组的语句是 ( )。 ( A) int nun0 2008; ( B) int Bum; ( C) intN=2008; int numN; ( D) #define N2008 int numN; 26 以下函数实现按每

11、行 8个输出 w所指数组中的数据: #include stdio h void fun(int*w, int n) int i; for(i=0; i n; i+) _ printf(“ d“, wi); printf(“ n“); 在横线处应填入的语句是 ( )。 ( A) if(i 8=0)printf(“ n“); ( B) if(i 8=0)continue; ( C) if(i 8=0)printf(“ n“); ( D) if(i 8=0)continue; 27 有以下程序: #include stdio h void fun(char*c) while(*c) if(*c =a

12、&*c =z) *c=*c-(a-A); c+: main() char s81; gets(s); fun(s); puts(s); 当执行程序时从键盘上输入 Hello Beijing回车,则程序运行后的输出结果是( )。 ( A) hello beijing ( B) Hello Beijing ( C) HELLO BEIJING ( D) hELLO Beijing 28 有以下程序: #include stdio h main() int a44=1, 4, 3, 2, 8, 6, 5, 7, 3, 7, 2, 5, 4, 8, 6, 1; inti, j, k, t; for(i

13、=0; i 4; i+) for(j=0; j 3; J+) for(k=j+1; k 4; k+) if(aji aki) t=aji; aji=aki; aki=t; *按列排序 * for(i=0; i 4; i+) printf(“ d, “, aii); 程序运行后的输出结果是 ( )。 ( A) 1, 6, 2, 1, ( B) 8, 7, 3, 1, ( C) 4, 7, 5, 2, ( D) 1, 6, 5, 7, 29 有以下程序 (strcat函数用于连接两个字符串 ): #include stdio h #include string h main() char a20=

14、“ABCD 0EFG 0“, b=“IJK“; strcat(a, b); printf(“ s n“, a); 程序运行后的输出结果是 ( )。 ( A) UK ( B) ABCDE OFG OUK ( C) ABCDUK ( D) EFGIJK 30 有以下程序段: char name20; int nun; scanf(“name= s num= d“, name, &num); 当执行上述程序段,并从键盘输入: name=Lili Hum=1001回车后, name的值为 ( )。 ( A) name=Lili num=1001 ( B) name=Lili ( C) Lili nun

15、= ( D) Lili 31 有以下程序: #include stdio h main() char ch=“uvwxyz“, *pc; pc=ch; fwintf(“ c n“, *(pc+5); 程序运行后的输出结果是 ( )。 ( A) z ( B) 0 ( C)元素 ch5的地址 ( D)字符 y的地址 32 有以下程序: #include stdio h main() char s=“012xy“; int i, n=0: for(i=0; i!=0; i+) if(si =a&si =z) n+: printf(“ d n“, n); 程序运行后的输出结果是 ( )。 ( A) 0

16、 ( B) 2 ( C) 3 ( D) 5 33 有以下程序: #include sldio h int fun(int n) if(n=1) return1; else return(n+fun(n-1); main() int x; scanf(“ d“, &x); x=fun(x); prinff(“ d n“, x); 执行程序时,给变量 x输入 10,程序运行后的输出结果是 ( )。 ( A) 55 ( B) 54 ( C) 65 ( D) 45 34 有以下程序: #include stdio h int f(int m) static int n=0: n+=m: return

17、n; main() int n=0: printf(“ (1, “, f(+n); printf(“ d n“, f(n+); 程序运行后的输出结果是 ( )。 ( A) 3, 3 ( B) 1, 1 ( C) 2, 3 ( D) 1 2 35 设有以下语句: typedef struct TT char c; int a4; CIN: 则下面叙述中正确的是 ( )。 ( A) CIN是 strut TT类型的变量 ( B) TT是 strut类型的变量 ( C)可以用 TT定义结构体变量 ( D) 可以用 CIN定义结构体变量 36 有以下程序: #include stdio h Struc

18、t ord int x, y; dt2=; 1, 2, 3, 4; main() struct ord*p=dt: printf(“ d, “, +(p- x); printf(“ d n“, +(p- y); 程序运行后的输出结果是 ( )。 ( A) 3, 4 ( B) 4, 1 ( C) 2, 3 ( D) 1 2 37 有以下程序: #include sidio h #define SUB(A)(a)-(a) main() int a=2, b=3, c=5, d: d=SUB(a+1)*c; printf(“ d n“, d): 程序运行后的输出结果是 ( )。 ( A) 0 ( B

19、) -12 ( C) -20 ( D) 10 38 有以下程序: #include stdio h main() int a=2, b; b=a 2; printf(“ d n“, b): 程序运行后的输出结果是 ( )。 ( A) 2 ( B) 4 ( C) 6 ( D) 8 39 下列关于 C语言文件的叙述中正确的是 ( )。 ( A)文件由一系列数据依次排列组成,只能构成二进制文件 ( B)义件由结构序列组成,可以构成二进制文件或文本文件 ( C)文件由数据序列组成,可以构成二进制义件或文本文件 ( D)文件由字符序列组成,其类型只能是文本文件 40 )有以下程序: #include s

20、tdio h main() FILE*fp: int a10=1, 2, 3, 0, 0, i: fp=fopen(“d2 dat“, “wb“): fwrite(a, sizeof(int), 5, fp); fwrite(a, sizeof(int), 5, fp); fclose(fp): fp=fopen(“d2 dat“, “rb“); frefld(a, sizeof(int), 10, fp); fclose(fp); for(i=0; i 10; i+) printf(“ d, “, ai); 程序运行后的输出结果是 ( )。 ( A) 1, 2, 3, 0, 0, 0, 0,

21、 0, 0, 0, ( B) 1, 2, 3, 1, 2, 3, 0 0 0, 0, ( C) 123, 0, 0, 0, 0, 123, 0, 0, 0, 0, ( D) l, 2, 3, 0, 0, 1, 2, 3, 0, 0, 二、程序填空题 41 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的最小值放在元素a0中,接着把 a所指数组中的最大值放在 a1元素中;再把 a所指数组元素中的次小值放在 a2中,把 a所指数组元素中的次大值放在 a3,以此类推。 例如,若 a所指数组中的数据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7;则按规则移动后,数据排列为

22、: 1、 9、 2、 8、 3、 7、 4、 6、 5。彤参 n中存放 a所指数组中数据的个数。 规定 fun函数中的 max存放当前所找的最大值, px存放当前所找最大值的下标。 请在程序的下划线处填入 正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include stdio h #define N9 void fun(int a, int n) int i, j, max, min, px, pn, t; for(i=0; i n-1; i+=2) *found* max=min=1; px=pn

23、=i: for(j=i+1; j n; j+) *found* if(max 2) max=aj; px=j; *found* if(min 3) nlin=ai; pn=i; if(pn!=i) t=ai; ai=min; apn=t; if(px=i)px=pn; if(px!=i+1) t=ai+1; ai+1=max; apx=t; main() int bN=9, 1, 4, 2, 3, 6, 5, 8, 7, i; printf(“ nThe original data: n“); for(i=0; i N; i+)printf(“ 4d“, bi); printf(“ n“);

24、fun(b, N); printf(“ nThe data after moving: n“); for(i=0; i N; i+)printf(“ 4d“, bi); printf(“ n“); 三、程序修改题 42 下列给定程序中函数 fun的功能是:将 tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。 例如,若输入 “Ab, cD”,则输出 “AB, CD”。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不得增行或删行,也不得更改程序的结构 ! #include stdio h #include string h char*fun

25、(char tt) int i; for(i=0; tti; i+) *found* if(a =tti)|(tti =z) *found* tti+=32; return(tt); main() char tt81; printf(“ nPlease enter a string: “): gets(tt); printf(“ nThe result string is: n s“, fun(tt); 四、程序设计题 43 学生记录由学号和成绩组成, N名学生的数据已放入主函数中的结构体数组中,请编写函数 fun,其功能是:把分数最低的学生数据放入 b所指的数组中,注意:分数最低的学生可能不

26、止一个,函数返回分数最低的学生人数。 注意:部 分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include stdio h #define N16 typedef struct char Bum10; int s; STREC; int fun(STREC*a, STREC*b) main() STREC sN=“GA05“, 85, “GA03“, 76, “GA02“, 69, “GA04“, 85, “GA01“, 91, “GA07“, 72, “GA08“, 64, “GA06“, 87, “

27、GA015“, 85, “GA013“, 91, “GAO12“, 64, “GA014“, 91, “GA011“, 91, “GA017“, 64, “GA018“, 64, “GA016“, 72; STREC hN; int i, n; FILE*out; n=fun(s, h); printf(“The d lowest score: n“, n); for(i=0; i n; i+) printf(“ s 4d n“, hi nun, hi s); printf(“ n“); out=fopen(“out dat“, “w “); fprintf(out, “ d n“, n);

28、for(i=0; i n; i+) fprintf(out, “ 4d n“, hi s); fclose(out); 国家二级( C语言)机试模拟试卷 97答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以 A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑 算法的控制结构。 2 【正确答案】 B 【试题解析】 线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以 B正确。所以有一个以上根结点的数据结构一定是非线性结构,所以 A错误。循环链表和双向链表都是线性结构的数据

29、结构。 3 【正确答案】 B 【试题解析】 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0的叶子结点总是比度为 2的结点多一个。所以选择 B。 4 【正确答案】 A 【试题解析】 软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。 主要活动阶段是:可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护,所以选择 A。 5 【正确答案】 C 【试题解析】 根据总体结构图可以看出该树的深度为 3,比如: XY系统 功能 2功能 2 1,就是最深的度数的一个表现。 6 【正确答案】 D 【试题解析】 程序调试的任务是诊断和改正程序中的错误。 7 【正确答案】 A

30、 【试题解析】 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。 8 【正确答案】 D 【试题解析】 数 据库系统的三级模式是慨念模式、外模式和内模式,所以选择D。 9 【正确答案】 A 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分最必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据 T中元组可以判断 R和 s做的是自然连接操作。 10 【正确答案】 A 【试题解析】 面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择 A、 11 【正确答案】 C 【试题解析】 算法的特征: 有穷性。一个算法 (对任何合法的输

31、入 )在执行有穷步后能够 结束,并且存有限的时间内完成、 确定性。算法中的每一步鄙有确切的含义。 可行性并法中的操作能够用已经实脱的基本运算执行有限次束实现。 输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。 输出:一个算法有一个或者多个输出,以反映出数据加工的结果所以 C选项错误。 12 【正确答案】 D 【试题解析】 C语句可以跨行来写,但是必须以分号结束,所以 A选项错误。 C程序中的一行可以有多条语句,所以 B选项借误。 C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以 C选项错误。 13 【正确答案】 A 【试题解析】 C语言中,常量是指在程序运行过

32、程中其值不能做改变的量,变量是指运行过程中其值可以改变的毓,二者不能混淆,所以 A选项错误。 14 【正确答案】 C 【试题解析】 C讲言规定,变艟命名必须符合标示符的命名规则, C选项中包含了非法字符 “-”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。 15 【正确答案】 A 【试题解析】 B选项中运算符 “ ”的前后必须为整数, C选项中不能将变量赋给表达式 x+n, D选项中不能将表达式 4+1赋给常量 5。 16 【正确答案】 A 【试题解析】 在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将 87赋给 int

33、型变量 a,把 6 0赋给 int型 float型变量 b。 17 【正确答案】 D 【试题解析】 D选项中将字符串常量 “aa”赋给字符变量 a是错误的。 18 【正确答案】 D 【试题解析】 逻辑或运算符中只要有一个运算量为真结果就是其,当 c =2&c =6条件不成、立时 c的值肯定不是 2、 3、 4、 5、 6,所以 c!=3与 c!=5均成立。所以 D选项的结果一定为真。 19 【正确答案】 C 【试题解析】 本题重点考查的知识点是: sqrt()函数 sqrt()函数的作用是计算平方根,要求输出的参数 x必须大于等于 0,题目公式的要求是无论 x大于等于 0还是小于 0, y的值

34、都为 x绝对值的开方。选项 C中调用了 sqrt(x)函数,而没有判断 x的正负,则 v=sqrt(x)会出错 20 【正确答案】 A 【试题解析】 y-表示 y使用后再自减 1,所以最后一次 y的值为 0条件不成立但仍要执行自减操作, y的值为 -1,跳出循环,打印 y的值 -1。 21 【正确答案】 C 【试题解析】 本题的含义是在 1-40的整数的范围中,只有当 i的值能被 5整除,且 i+2的值能被 8整除时,打印 i的值,满足这个条件的只有 32,选择 C选项 22 【正确答案】 R 【试题解析】 switch语句的执行流程是:首先计算 switch后面圆括号中表达式的值,然后用此值

35、依次与各个 case的常量表达式比较,若圆括号中表达式的值与某个 case后面的常量表达式的值相等,就执行此 case后面的语句,执行后遇 break语句就退出 switch语句;若圆括号中表达式的值与所有 case后面的常量表达式都不等,刚执行 default后面的语句。然后退出,所以输入 1时打印 65,输入 2时打印 6,输入 3时打印 64,输入 4时打印 5,输入 5时打印 6。 23 【正确答案】 B 【试题解析】 本题重点考察闲数返回值的相关知识,函数的值只能通过 return语句返回主调函数,在函数中允许有多个 return语句,但每次调用只能有一个return,语句被执行,因

36、此只能返回一个函数值。不返回函数值的函数,可以明确定义为 “窄类型 ”,类型说明符为 “void”。因此 B选项正确。 24 【正确答案】 A 【试题解析】 本题重点考察函数的调用,首先要了解字母对应的 ASCII码。例如 A为 65, a为 97。即字母 +1则可得到下一个字母,其次是函数形参和实参的问题,运行过程如下:在 fun(&b, a)中, *c=a, b=65。 *c+1=b,d+1=66 printf(“ c, c“, *c, d);输出 b, B,因为指针 c指向地址的值为b,此时 b=*c=b;函数返回执行 printf(“ c c n“, b, a);输出 b, A,因此A

37、选项正确。 25 【正确答案】 D 【试题解析】 C语言不允许定 义动态数组,定义数组的大小必须为常量表达式。A选项错误, C语言中数组没有此类型的定义方法; B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初俩的个数; C选项错误, N为变量,不能用来定义数组大小。因此 D选项正确。 26 【正确答案】 C 【试题解析】 要按照每行 8个输出数据的话,横线处语句的功能应该为:当 j是8的倍数时 (即 i 8=0),输出一个换行符。因此 C选项正确。 27 【正确答案】 C 【试题解析】 主程序读取整个字符串存于 s中,调用 fun函数,字符指针 c指向数绀 s。函数 fun的

38、功能是把指针 c所指向的字符数组中的所有小写字符转换为大写 gets函数可以把空格作为字符串的一部分输入,以回车作为输入结束如果 *c为小写字符,则 *c=*c-32(转大写 ),因此 C选项正确。 28 【正确答案】 D 【试题解析】 首先对三维数组进行赋值操作, a00、 a01、 、 a32、a33的值为 1、 4、 、 6、 1,通过 for语句和 if语句,对二维数组各列元素进行有小到大的排序操作,程序最后通过 for语句输出二维数组对角线上的元索因此 D选项正确。 29 【正确答案】 C 【试题解析】 字符数组 a中包含两个 0,遄到第一个 0时就表示字符串 a结束,字符串处理函数

39、 strcat(字符数组 a,字符数组 b),功能是连接两个字符数组中的字符串,把字符串 b连接到 a的后面,结果放在字符数组 a中,连接时将字符串 a后的 0取消,只在新串最后保留一个 0,本题相当于将 “ABCD”和“IJK”连接,因此 C选项正确。 30 【正确答案】 D 【试题解析】 在输入格式控制 “name= s unm= d”中,普通字符 “name=num=”在输入时要原样 输入,而格式控制符 s和 d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入 “name=Lili num=1001回车 ”后,将字符串Lili赋给字符数组 name,整数 00腻给变量 num因

40、此 D选项正确。 31 【正确答案】 A 【试题解析】 语句 pc=ch;使得指针变量指向子符数组 ch的首地址,即指向字符 u,则 pc+5指向的是字符向后移动 5位,指向字符 z,所以输出的 *pc+5的值即为 z因此 A选项正确。 32 【正确答案】 B 【试题解析】 程序首先给字符数组 s赋值为 “012xy”, for循环语句的功能是遍历字符串,通过 if条件语句对字符串中的小写字母计数,在符串中小写字母为 2个,即 n=2,因此 B选项正确。 33 【正确答案】 A 【试题解析】 该程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调

41、用,执行结果为1+2+3+8+9+10=55 ,因此 A选项正确。 34 【正确答案】 D 【试题解析】 该题目中首先区别 +n和 n+,第一次调用 f函数时,将 +n(n自增 1后再参与运算 )作为参数 进行传递,此时变量 m的值为 1,执行 n+=m;后,n=1,将 1返回主函数,并输出。第二次调用了 f函数时,将 n+(n参与运算后再自增 1)作为参数进行传递,此时变量 m的值为 1,执行语, n+=m;,由于 n是静态存储变量,因此 n=2,将 2返回主函数并输出,因此 D选项正确。 35 【正确答案】 D 【试题解析】 本题考查 typedef重新声明一种结构体类型,其中 CIN为结

42、构体类型名,而不是结构体变量,所以 D选项正确。 36 【正确答案】 C 【试题解析】 本题考查结构体数组的相关操作, dt为结构体 数组,那么指针 p指向了结构体数组的一个元素,所以 p- x为 1, p- y为 2,结果为 2, 3选项 C正确。 37 【正确答案】 C 【试题解析】 本题考查宏定义,宏定义只是做简单的替换,所以本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20,所以答案为 C选项。 38 【正确答案】 D 【试题解析】 本题考查运算符,题目中将 a向左移两位,左移两位表示乘以 4,所以答案为 8,选项 D正确。 39 【正确答案】 C 【试题解析】 本题考查文

43、件的慨念,文件是由数据序列组成,可以构成 二进制文件或文本文件,所以答案为 C选项。 40 【正确答案】 D 【试题解析】 本题考查文件操作函数,两次 fwrite后, fp文件中已经写入 1,2, 3, 0, 0, 1, 2, 3, 0, 0然后将文件 fp中的内容重新写入数组 a中,最后输出 a为 1, 2, 3, 0 0, 1, 2, 3, 0, 0,所以选项 D正确。 二、程序填空题 41 【正确答案】 (1)ai (2)aj (3)aj。 【试题解析】 本题考查:数组的引用; if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,则不执行 下面的语句。 求最大值或者

44、最小值的题目,一般都是假设一个元素最大或最小,然后通过 if条件语句将该元素和其他元素进行比较操作来完成。 三、程序修改题 42 【正确答案】 (1)if(ttij =a)&(tti =z) (2tti-=32;。 【试题解析】 本题考查: if语句条件表达式;小写字母转大写字母的方法。 (1)分析本题可知,要判断字符是否为小与字母,即判断其是否在 a z之间,所以这里需要进行连续的比较,用 &。 (2)从 ASCIl码表中可以看出,小写字母的 ASCII码值比对应大写字母的 ASCII值大 32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据 ASCII码值判断该字母是不是小写字母,若是,则 ASCII码值减 32即可。 四、程序设计题 43 【正确答案】 int fun(STREC*a, STREC*b) int i, j=0, mm=a0 s; for(i=0; i N; i+) if(min ai s) min=ai s; *找出最小值 * for(i=0; i N; i+) if(min=ai s) bj+=ai; *找出成绩与 min相等的学 生的记录,存入结构体 b中 * return j; 。 【试题解析】 本题考查:查找结构体数组中的最小数据,需要通过 for循环语句和 if条件语句来完成。

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

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

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