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

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

1、国家二级( C语言)机试模拟试卷 113及答案与解析 一、选择题 1 下列关于 C语言文件的叙述中正确的是 ( )。 ( A)文件由一系列数据依次排列组成,只能构成二进制文件 ( B)文件由结构序列组成,可以构成二进制文件或文本文件 ( C)文件由数据序列组成,可以构成二进制文件或文本文件 ( D)文件由字符序列组成,其类型只能是文本文件 2 有以下程序: #include main() int m=1, n=2, *P=&m, *q=&n, *r; r=p; p=q; q=r; printf(“ d, d, d, d n“, m, n, *P, *q); 程序运行后的输出结果是 ( )。 (

2、 A) 1, 2, 1, 2 ( B) 1, 2, 2, 1 ( C) 2, 1, 2, 1 ( D) 2, 1, 1, 2 3 有以下程序: #include #include struet A int a; ehar b10; double c; ; struet A f(struet A t); main() struet A a=1001, “ZhangDa“, 1098 0; a=f(a); printf(“ d, s, 6 If n“, a a, a b, a c); struet A f(struet A t) t a=1002; strcpy(t b, “ChangRong“)

3、; t c=1202 0; return t; 程序运行后的输出结果是 ( )。 ( A) 1001, ZhangDa, 1098 0 ( B) 1002, ZhangDa, 1202 0 ( C) 1001, ChangRong, 1098 0 ( D) 1002, ChangRong, 1202 0 4 数据库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 5 有以下程序: #include void fun(int p) int d=2; p=d+; printf(“ d“, p); main() int a

4、=1; fun(a); printf(“ d n“, a); 程序运行后的输出结果是 ( )。 ( A) 32 ( B) 12 ( C) 21 ( D) 22 6 有以下程序: #include #define f(x)x*x*x main() int a=3, s, t; s=f(a+1); t=f(a+1); printf(“ d, d n“, s, t); 程序运行后的输出结果是 ( )。 ( A) 10, 64 ( B) 10, 10 ( C) 64, 10 ( D) 64, 64 7 有以下程序: #include main() int a=2, 3, 5, 4, i; for(i=

5、0; i #include main() char a10=”abcd”; pfinff(“ d, d n“, strlen(a), sizeof(a); 程序运行后的输出结果是 ( )。 ( A) 7, 4 ( B) 4, 10 ( C) 8, 8 ( D) 10, 10 12 以下函数 findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。 #define MIN-2147483647 int findmax(int x, int n) int i, max; for(i=0; i n; i+) max=MIN; if(max xi)max=xi; re

6、tum max; 造成错误的原因是 ( )。 ( A)定义语句 int i, max;中, max未赋初值 ( B)赋值语句 max=MIN;中,不应给 max赋 MIN值 ( C)语句 if(max xi)max=xi;中,判断条件设置错误 ( D)赋值语句 max=MIN;放错了位置 13 设有 定义: char*C;以下选项中能够使字符型指针 c正确指向一个字符串的是( )。 ( A) char str=“string“; c=str; ( B) scanf(“ s“, c); ( C) c=getchar(); ( D) *C=“string: 14 软件详细设计产生的图如下: 该图是

7、 ( )。 ( A) N-S图 ( B) PAD图 ( C)程序流程图 ( D) E-R图 15 下列函数的功能是 ( )。 fun(char*a, char*b) while(*b=*a)! = 0) a+; b+; ( A)将 a所指字符串赋给 b所指空间 ( B)使指针 b指向 a所指字符串 ( C)将 a所指字符串和 b所指字符串进行比较 ( D)检查 a和 b所指字符串中是否有 0 16 表达式: (int)(double)9 2) (9) 2的值是 ( )。 ( A) 0 ( B) 3 ( C) 4 ( D) 5 17 有以下程序: #include #include main()

8、 char str20= “One*World“, “One*Dream! “, *p=str1; printf(“ d, “, strlen(p); printf(“ s n“, p); 程序运行后的输出结果是 ( )。 ( A) 9 One*World ( B) 9, One*Dream! ( C) 10 One*Dream! ( D) 10, One*World 18 对于循环队列,下列叙述中正确的是 ( )。 ( A)队头指针是固定不变的 ( B)队头指 针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 19 有以下程序: #i

9、nclude int f(int n); main() int a=3, s; s=f(a); s=s+f(a); printf(“ d n“, s); int f(int n) static int a=1; n+: a+; return n; 程 序运行以后的输出结果是 ( )。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 20 有以下程序: #include main() int c=0, k; for(k=1; k 3; k+) switch(k) default: c+=k; case 2: c+; break; case 4: c+=2; break; printf(

10、” d n”, c); 程序运行后的输 出结果是 ( )。 ( A) 3 ( B) 5 ( C) 7 ( D) 9 21 有三个关系 R, S和 T如下: 其中关系T由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 22 下面是有关 C语言字符数组的描述,其中错误的是 ( )。 ( A)不可以用赋值语句给字符数组名赋字符串 ( B)可以用输入语句把字符串整体输入给字符数组 ( C)字符数组中的内容不一定是字符串 ( D)字符数组只能存放字符串 23 若有定义语句: int aE 410, *p, *q4;且 0i 4,则错误的赋值是 (

11、)。 ( A) P=a ( B) qi=ai ( C) P=ai ( D) P=&a21 24 以下程序段中,与语句: k=a b?(b c?1: 0): 0;功能相同的是 ( )。 ( A) if(a b)&(b c)k=1; else k=0: ( B) if(a b) (b c), k=1; else k=0; ( C) if(a =b)k=0; else if(b =c)k=1; ( D) if(a b)k=1; else if(b c)k=1; else k=0; 25 若有定义语句: int x=10;,则表达式 x-=x+x的值为 ( )。 ( A) 20 ( B) 10 ( C

12、) 0 ( D) 10 26 有以下程序: #include main() char S=“012xy“; int i, n=0; for(i=0; si! = 0; i+) if(si: a&si =z)n+; printf(“ d n“, n); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 2 ( C) 3 ( D) 5 27 下列选项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 28 有以下程序: #include main() char c1 c2: c1=A+8-4; c2=A+8-5: printf(“

13、c, d n“, c1, c2); 已知字母 A的 ASCII码为 65,程序运行后的输出结果是 ( )。 ( A) E, 68 ( B) D, 69 ( C) E, D ( D)输出无定值 29 算法的空间复杂度是指 ( )。 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 30 以下叙述中正确的是 ( )。 ( A)程序设计的任务就是编写程序代码并上机调试 ( B)程序设计的任务就是确定所用数据 结构 ( C)程序设计的任务就是确定所用算法 ( D)以上三种说法都不完整 31 下

14、列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( )。 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 32 有以下程序: #include main() int a=1, b=0; printf(“ d, “, b=a+b); printf(“ d n“, a=2*b); 程序运行后的输出结果是 ( )。 ( A) 0, 0 ( B) 1, 0 ( C) 3, 2 ( D) 1, 2 33 以下选项中,能用作用户标识符的是 ( )。 ( A) void ( B) 8 8 ( C) 0 ( D) unsigned 34 软件设计中划分模块的一个准则是 ( )。 ( A)低

15、内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 35 设有以下函数: void fun(int n, char*s) 则下面对函数指针的定义和赋值均是正确的是 ( )。 ( A) void(*pf)(); pf=fun; ( B) void*pf(); pf=fun; ( C) void*pf(); *pf=fun; ( D) void(*pf)(int, char); pf=&fun; 36 下列数据结构中,属于非线性结构的是 ( )。 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 37 阅读以下程序: #include main() in

16、t case; float printf; printf(“请输入 2个数: “); scanf(“ d f“, &case, &printf); printf(“ d f n“, case, printf); 该程序编译时产生错误,其出错原因是 ( )。 ( A)定义语句出错, case是关键字,不能用作用户自定义标识符 ( B)定义语句出错, printf不能用作用户自定义标识符 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 case的值 38 在 E-R图中,用来表示实体联系的图形是 ( )。 ( A)椭圆形 ( B)矩形 ( C)

17、菱形 ( D)三角形 39 设有定义: int a=1, b=2, c=3;,以下语句中执行效果与其他三个不同的是( )。 ( A) if(a b)c=a, a=b, b=c; ( B) if(a b)c=a, a=b, b=c; ( C) if(a b)c=a; a=b; b=c; ( D) if(a b)c=a; a: b b=c; 40 有以下程序: #include main() int n=2, k=0; while(k+&n+ 2); printf(“ d d n“, k, n); 程序运行后的输出结果是 ( )。 ( A) 02 ( B) 13 ( C) 57 ( D) 12 二

18、、程序填空题 41 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的偶数按原顺序依次存放到 a0、 a1、 a2 中,把奇数从数组中删除,偶数的个数通过函数值返回。 例如,若 a所指数组中的数据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7,删除奇数后, a所指数组中的数据为: 4、 2、 6、 8,返回值 为 4。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意: 不得增行或删行,也不得更改程序的结构! 【试题源程序】 #include #define N 9 int fun(int a, int n) int i, j; j=0;

19、 for(i=0; i n; i+) *found* if(【 1】 =0) *found* 【 2】 =ai; j+; *found* return 【 3】 ; main() int bN=9, 1, 4, 2, 3, 6, 5, 8, 7, i, n; printf(“ nThe original data: n“); for(i=0, i N, i+) printf(“ 4d“, bi); printf(“ n“); n=fun(b, N); printf(“ nThe number of even: d n“, n); printf(“ nThen even: n“); for(i=

20、0; i n; i+) printf(“ 4d“, bi); printf(“ n“); 三、程序修改题 42 下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数 fun的作用是求出单向链表结点 (不包括头结点 )数据 域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。 注意: 不要改动 main函数,不得增行或删行,也不得更改程序的结构。 【试题源程序】 #include #include typedef struct aa, int data; struct aa*next: NODE; fun(NODE*h) int max=

21、 1: NODE*p; *found* p=h; while(p) if(P- data max) max=p- data: *found* p=h- next: return max; outresult(int s, FILE*pf) fprintf(pf, “ nThe max in link: d n“, s); NODE*creatlink(int n, int m) NODE*h, *p, *s, *q; int i, x; h=p=(NODE*)malloc(sizeof(NODE); h- data=9999: for(i=1; i =n; i+) S=(NODE*)mallo

22、c(sizeof(NODE); S- data=rand() m; s- next=p- next; P- next=s; p=p- next; P- next=NULL: return h; outlink(NODE*h, FILE*pf) NODE*P; P=h- next: fprintf(pf, “ nTHE LIST: n nHEAD“); while(P) fprintf(pf, “- d“, P- data); p=p- next; fprintf(pf, “ n“); main() NODE*head; int m; head=creatlink(12, 100); outli

23、nk(head, stdout); m=fun(head); printf(“ nTHE RESULT: n“); outresult(m, stdout); 四、程序设计题 43 请编写函数 fun(),该函数的功能是:移动一维数组中的内容,若数组中有 n个整数,要求把下标从 p n 1(p n 1)的数组元素平移到数组的前面。 例如,一维数组中的原始内容为 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 1, 12, 13,14, 15, p的值为 6。移动后 ,一维数组的内容应为 7, 8, 9, 10, 11, 12, 13,14, 15, 1, 2, 3, 4, 5

24、, 6。 注意: 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 【试题源程序】 #include #define N 80 void fun(int*w, int p, int n) main() int aN: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15; int i, p, n=15; printf(“The original data: n“); for(i=0; i n; i+) printf( 3d“, ai); printf(“ n nEnter p: “); seanf(“

25、 d“, &p); fun(a, p, n); printf(“ nThe data after moving: n“); for(i=0; i n; i+) printf(“ 3d“, ai); printf(“ n n“); 国家二级( C语言)机试模拟试卷 113答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 C语言将文件看作是一个字符 (字节 )的序列,即由一个一个字符 (字节 )数据顺序组成。根据数据的组成形式,可将文件分为两种: ASCII文件,又称文本 (text)文件,它的每一个字节可放一个 ASCII码,代表一个字符; 二进制文件,是把内存中的数据按其在内存中的存

26、储形式原样输出到磁盘上存放。 2 【正确答案】 B 【试题解析】 程序中定义了两个整型变量,然后用两个指针分别指向这两个整型变量,交换指针,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。 3 【正确答 案】 D 【试题解析】 函数 f对结构体成员进行修改,并返回新的结构体; main函数先定义了一个结构体变量 a并为它赋初值,然后调用函数 f修改结构体变量的成员值,最后输出新的结构体变量成员。 4 【正确答案】 B 【试题解析】 系统软件主要包括: 操作系统软件; 各种语言的解释程序和编译程序; 各种服务性程序; 各种数据库管理系统。数据库管理系统属于

27、系统软件,负责数据库中的数据组织、数组操纵、数据维护、控制和保护以及数据服务等。 5 【正确答案】 C 【试题解析】 C语言中函数参数传递 满足 “单向传递 ”,实现传递值的功能,改变形参的值不影响实参的值。 fun函数体内输出 p的值为 2,并不影响到 fun函数外a的值, a的值在 main函数内依然为 1。 6 【正确答案】 A 【试题解析】 C语言中带参数的宏可以理解为用参数直接替换定义式中的变量,而不经过任何修改。所以 s=f(a+1)=a+1*a+1*a+1=3+3+3+1=10,t=f(a+1)=(a+1)*(a+1)*(a+1)=444=64。 7 【正确答案】 C 【试题解析

28、】 main函数的主体是一个 for循环语句, for循环中包含一个 switch语句,如果判断条件为 0则进入第二个 switch语句,如果判断语句为 1则执行“ai=0”,最后将数组顺序输出。所以程序功能是将数组的偶数项设为 0,奇数项如果为奇数则减 1,为偶数则加 1,最后得到结果。 8 【正确答案】 C 【试题解析】 C语言中 “ ”是二进制的右移运算符,右移相当于将原数做除二操作,它将原数右移相应位数,并将移出的位信息舍去,在高位补 0。本题中 8的二进制为 00001000,右移一位得到 00000100,所以输出 4。 9 【正确答案】 C 【试题解析】 本题中 a为一个字符型变

29、量,只能为其赋值一个字符常量。 C项中aa不是字符常量,所以会编译错误。 BD两项为转义字符,编译可以通过。 10 【正确答案】 B 【试题解析】 C语言中结构体变量的定义有 3种方法: 定义结构体类型的同时定义结构体变量; 使用无名结构体类型定义结构体变量; 先定义结构体类型,后定义结构体变量。 11 【正确答案】 B 【试题解析】 在 C语言中, strlen()用来统计字符串中字符的个数 (不包含字符串结束标志 0), sizeof()用来求分配给数 组的存储空间大小。题目中字符串 a中字符个数为 4,但由于数组 a定义含有 10个字符,所以所占空间大小为 10。 12 【正确答案】 D

30、 【试题解析】 for循环中每次都是将 MIN值与 xi值进行比较,所以无论 xi的值是什么,都不会影响 if的判断语句, max=xi始终执行。所以函数返回的是数组中最后一个元素的值。程序的错误在于 max=MIN的位置, for循环之前应先执行 max=MIN。 13 【正确答案】 A 【试题解析】 B项 scanf()函数是将 C定义为一个字符数组的数组名, C项是 将 C定义为一个字符型变量, D项是在指针定义时为它赋值,否则是不合法的,所以BCD三项都不正确。 A项定义字符数组 str,再将字符数组 str的首地址赋给字符型指针 C,正确。 14 【正确答案】 C 【试题解析】 程序

31、流程图基本图符有 3种:控制流 (用箭头表示 )、加工步骤 (用方框表示 )、逻辑条件 (用菱形表示 )。控制结构有 5种: 顺序结构; 选择结构; 多分支选择结构; 后判断重复型结构; 先判断重复型结构。因此该图是选择结构的程序流程图。 15 【正确答案】 A 【试题解析】 函数 fun中 a和 b是两个字符型指针,在 while语句的表达式中将指针 a所指向的字符赋给指针 b所指向的内存单元,再判断该字符是不是字符串中的结尾符,若不是,则字符指针 a和 b分别自增,再执行循环语句,直至 b所指向的字符为字符串中的空字符。 16 【正确答案】 B 【试题解析】 运算符 “ ”、 “ ”的优先

32、级高于 “ ”,所以先进行除法和求余运算,再进行减法运算。强制类型转换表达式的形式: (类型名 )(表达式 )。 “9 2”结果为 4,转换成 double类型再转换成 int类型结果依然为 4, (9) 2的结果为 1,最后结果为 4 1=3。 17 【正确答案】 C 【试题解析】 程序将两个字符串常量赋值给一个二维字符数组,用字符串常量为字符数组赋值需要在最后加上一个休止符 “ 0”表示字符串结束,数组的下标是从0开始计数,所以 p指向第二个字符串。 18 【正确答案】 D 【试题解析】 在循环队列中,用队尾指针 (rear)指向队列中的队尾元素,用队头指针 (front)指向队头元素的前

33、一个位置。在循环队列中,一般情况下 rearfront,当存储空间的最后一个位置被使用,要将元素插入到第一个位置,此时存储空间的第一个位置作为队 尾,便有 front rear。 19 【正确答案】 C 【试题解析】 在函数 f中,整型变量 a为静态变量,所以每次调用函数 f时不再为 a重新赋值。第一次调用 f后 n=4, a=2;第二次调用时,返回 n=3+2=5;s=4+5=9。 20 【正确答案】 A 【试题解析】 程序执行过程:当 k=1时: c=012 ;当 k=2时: c=23 ;当k=3时 for循环结束。输出结果为 3。 21 【正确答案】 D 【试题解析】 选择和投影操作对单

34、个关系进行操作,选择运算是对行的操作,投影运算是对列的操 作。交和并运算要求参与运算的表具有相同的属性,交运算的结果是两个表的公共部分,并运算的结果包含两个表的所有元素。观察三个关系的元组可知,关系 T=R S。 22 【正确答案】 D 【试题解析】 C语言中,字符数组可以用来存放单个的字符或者字符串。 23 【正确答案】 A 【试题解析】 二维数组名是指向指针的指针,所以 a和 q都为指向指针的指针,而 p为指向 int类型的指针, p和 a不同类型,故 p=a赋值语句错误。其余选项可以正确赋值,其中 D项是用取地址符 &返回整数的地址,然后赋值给 p。 24 【正确答案】 A 【试题解析】

35、 三元运算符表达式的形式为:表达式 1?表达式 2:表达式 3,当表达式 1的值为真时,结果为表达式 2的值;当表达式 1的值为假时,结果为表达式 3的值。首先判断 a、 b的关系: 如果 a b,执行语句 (b c?1: 0);判断 b、c的关系,如果 b c, k=1,否则 k=0; 如果 a =b,则 k=0。综上所述:当 a b且 b c时, k=1,否则 k=0。 25 【正确答案】 B 【试题解析】 单目加运算符优先级高于赋值运算符,所以先做 x+x结果为 20,再做 x 20,结果为 10。 26 【正确答案】 B 【试题解析】 程序功能是判断字符串 s中小写字母的个数,结果为

36、2。 27 【正确答案】 A 【试题解析】 结构化程序设计的基本原则包括: 模块化; 自顶向下; 逐步求精; 限制使用 goto语句。可封装是面向对象的设计思想。 28 【正确答案】 A 【试题解析】 C语言中每个字符都对应一个 ASCII码值,该值可以用来运算。程序中 main函数将字符 A经过加 4和加 3运算后分别赋值给 c1、 c2,然后将 c1按字符格式输出, c2按整型格式输出。 29 【正确答案】 A 【试题解析】 算法的空间复杂度是指算法在执行过程中所需要的计算机存储空间。 30 【正确答案】 D 【试题解析】 程序设计是指设计、编程、调试程序的方法和过程,通常分为 4个阶段:

37、 问题建模; 算法设计; 编写代码; 编译调试。 31 【正确答案】 B 【试题解析】 栈是按照 “先进后出 ”原则在表特定的一端进行插入和删除操作的线性表。 32 【正确答案】 D 【试题解析】 main函数先为 a、 b赋值,然后做运算 a+b结果赋值给 b,此时 b为 1,并将 b打印出来。接着执行语句 a=2*b=2,输出 2,所以最终的输出结果为1, 2。 33 【正确答案】 C 【试题解析】 标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。 C语言定义标识符应遵循以下六种规则: 标识符由字母、数字或下划线组成; 第一个字符必须是字母或下划线; 标识符最多由 274个字符

38、组成; 在标识符中严格区分大小写字母; 关键字不能作为自定义的标识符在程序中使用。 AD两项是关键字, B项以数字开头。 34 【正确答案】 B 【试题解析】 模块独立性的两个标准为: 耦合性; 内聚性。高内聚、低耦合是较为优秀的软件设计应当遵循的原则。 35 【正确答案】 A 【试题解析】 函数指针的一般定义形式为:数据类型 (木指针变量名 )()。 D项,void(*pf)(int, char)带有两个数据类型,不符合函数指针定义。 36 【正确答案】 C 【试题解析】 线性结构要满足两个条件: 有且仅有一个根结点; 每个结点最多有一个前驱,也最多有一个后继。栈和队列均满足这两个条件,属于

39、线性结构;循环队列是一个头结点和尾结点互为前驱结点和后继结点的特殊的队列,属于线性结构;二叉树除了叶子结点外,每个结点 都可以有两个后继结点,属于非线性结构。 37 【正确答案】 A 【试题解析】 C语言中,关键字又称保留字,它是系统预先定义的、具有特定含义的标识符,不能用作用户自定义的标识符在程序中使用。 38 【正确答案】 C 【试题解析】 在 E-R图中,菱形表示联系,矩形表示实体,椭圆形表示属性。 39 【正确答案】 C 【试题解析】 if语句仅作用于紧随其后的那条语句或者是复合语句的内容, A项,执行三条语句组成的复合语句; BD两项执行大括号中的三条语句;而 C项只执行 C=a;。

40、 40 【正确答案】 D 【试题解析】 (表达式 1)&(表达式 2)中,如果表达式 0为假或 0,那么表达式 2就不会被执行。程序首先进入 while的判断语句,判断 k是否为假或 0。 k为零,不满足循环条件,所以 n+不会被执行, while循环结束后, k自增为 1, n没有进行运算,仍为 2。 二、程序填空题 41 【正确答案】 【 1】 ai 2 【 2】 aj 【 3】 j 【试题解析】 填空【 1】: if语句条件表达式,判断数组元素是否为偶数,对 2求余,结果为 0,则为偶数;结果为 1则为奇数。 填空【 2】:如果该数组元素是偶数,则将其值保存。 填空【 3】:最后按要求将

41、偶数个数通过 return语句返回给 main函数。 三、程序修改题 42 【正确答案】 (1)错误: p=h; 正确: p=h- next; (2)错误: p=h- next; 正确: p=p- next; 【试题解析】 程序中使用 while循环语句,并结合结构体指针 p来找到数据域中的最大值。 错误 (1): p指向形参结构体指针 h的 next指针,所以应改为: p=h- next; 错误 (2): p指向自己的下一个结点,所以应改为: p=p- next; 四、程序设计题 43 【正确答案】 void fun(int*w, int p, int n) int i, j, t; for(i=p; i =n 1; i+) t=wn 1; for(j=n 2; j =0; j-) wj+1=wj; w0=t; 【试题解析】 本题采用 “循环右移 ”的算法。

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

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

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