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

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

1、国家二级 C语言机试(选择题)模拟试卷 44及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 2 下列叙述中正确的是 ( A) 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态 变化 ( D)以上说法都不对 3 一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,

2、则该二叉树中的总结点数为 ( A) 219 ( B) 229 ( C) 230 ( D) 231 4 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( A) 9 ( B) 10 ( C) 45 ( D) 90 5 构成计算机软件的是 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 6 软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是 ( A)测 试 ( B)设计 ( C)可行性研究 ( D)实现 7 下面不能作为结构化方法软件需求分析工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (

3、DFD图 ) ( D)判定表 8 在关系模型中,每一个二维表称为一个 ( A)关系 ( B)属性 ( C)元组 ( D)主码(键) 9 若实体 A和 B是一对多的联系,实体 B和 C是一对一的联系,则实体 A和 C的联系是 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 10 有三个关系 R、 S和 T如下 则由关系 R和 S得到关系 T的 操作是 ( A)选择 ( B)投影 ( C)交 ( D)并 11 我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 ( A)一条 C语句可能会被转换成零条机器指令 ( B)一条 C语句可能会被转换成多

4、条机器指令 ( C)一条 C语句对应转换成一条机器指令 ( D)某种类型和格式的 C语句被转换成机器指令的条数是固定的 12 关于 “while(条件表达式 )循环体 “,以下叙述正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是 比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数一样 ( D)条件表达式的执行次数与循环体的执行次数无关 13 关于 C语言的符号常量,以下叙述中正确的是 ( A)符号常量的符号名是标识符,但必须大写 ( B)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量 ( C)符号常量在整个程序

5、中其值都不能再被重新定义 ( D)符号常量的符号名必须是常量 14 若有以下程序 #include main() intb=10,a=-11; a%=b%=4; printf(“%d%dn“,a,b); 则程序的输出结果是 ( A) 1, 2 ( B) -1, 2 ( C) -1, -2 ( D) 1, -2 15 若有以下程序 #include main() inta=0,b=0,c=0; c=(a-=+a),(a+=b,b+=4); printf(“%d,%d,%dn“,a,b,c); 则程序的输出结果是 ( A) 0,4,0 ( B) 0,4,4 ( C) 1,4,1 ( D) 1,4,

6、4 16 若有以下程序 #include main() inta=0,b=0,c=0,d; c=(a+=b,b+=a);/*第 4行 */ d=c;/*第 5行 */ ;/*第 6行 */ ;printf(“%d,%d,%dn“,a,b,c);/*第 7行 */ 编译时出现错误,你认为出错的是 ( A)第 4行 ( B)第 5行 ( C)第 6行 ( D)第 7行 17 若有以下程序 #include main() inta=1,b=2,c=3,d=4; if(a=2)|(b=1)c=2; if(c=3) printf(“%d,%d,%d,%dn“,a,b,c,d); 则程序的输出结果是 (

7、A) 1,2,3,4 ( B) 2,1,2,-1 ( C) 5,1,2,-1 ( D) 2,2,2,4 18 若有以下程序 #include main() inta=1,b=2,c=3,d=4,r=0; if(a!=1);elser=1; if(b=2)r+=2; else;if(c!=3)r+=3; else;if(d=4)r+=4; printf(“%dn“,r); 则程序的输出结 果是 ( A) 10 ( B) 7 ( C) 6 ( D) 3 19 若有以下程序 #include main() ints=0,n; for(n=0;n 4;n+) switch(n) default:s+=

8、4; case1:s+=1; case2:s+=2; case3:s+=3; printf(“%dn“,s); 则程序的输出结果是 ( A) 6 ( B) 18 ( C) 10 ( D) 24 20 若有以下程序 #include main() inta=-2,b=0; while(a+)+b; printf(“%d,%dn“,a,b); 则程序的输出结果是 ( A) 1,2 ( B) 0,2 ( C) 1,3 ( D) 2,3 21 若有以下程序 #include main() inta=6,b=0,c=0; for(;a;)b+=a;a-=+c; printf(“%d,%d,%dn“,a,

9、b,c); 则程序的输出结果是 ( A) 1,14,3 ( B) 0,14,3 ( C) 0,18,3 ( D) 0,14,6 22 以下选项中非法的 C语言字符常量是 ( A) 007 ( B) b ( C) aa ( D) xaa 23 若有以下程序 #include charf(charx) returnx*x+a; main() chara,b=0; for(a=0;a 4;a+=1) b=f(a);putchar(b); 则程序的输出结果是 ( A) abcd ( B) ABEJ ( C) abej ( D) ABCD 24 若有以下程序 #include voidsp(int*a)

10、 intb=2; a=*a=*a*2;printf(“%d,“,*a); main() intk=3,*p= sp(p);printf(“%d,%dn“,k,*p); 则程序的输出结果是 ( A) 4,3,3 ( B) 4,3,4 ( C) 6,3,6 ( D) 6,6,6 25 若有以下程序 #include intk=7; voidf(int*s) int*t= *s=t; printf(“%d,%d,%d,“,k,*t,*s); main() inti=3,*p= f(r);printf(“%d,%d,%dn“,i,*p,*r); 则程序的输出结果是 ( A) 3,3,3,7,7,7 (

11、 B) 3,7,7,7,7,7 ( C) 7,7,7,3,3,3 ( D) 7,7,7,3,7,7 26 若有以下程序 #include int*f(int*s,int*t) int*k; if(*s #defineN4 voidfun(intaN,intb,intflag) inti,j; for(i=0;i N;i+) bi=ai0; for(j=1;j N;j+) if(flag?(bi aij):(bi aij) bi=aij; main() intxNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i; fun(x,y,1); for(i=0;

12、i N;i+)printf(“%d,“,yi); fun(x,y,0); for(i=0;i N;i+)printf(“%d,“,yi); printf(“n“); 则程序的输出结果 是 ( A) 1,5,9,13,4,8,12,16, ( B) 4,8,12,16,1,5,9,13, ( C) 1,2,3,4,13,14,15,16, ( D) 13,14,15,16,1,2,3,4, 28 若有以下程序 #include voidfun(inta,intn) intt,i,j; for(i=1;i n;i+=2) for(j=i+2;j n;j+=2) if(ai aj)t=ai;ai=a

13、j;aj=t; main() intc10=10,9,8,7,6,5,4,3,2,1,i; fun(c,10); for(i=0;i 10;i+)printf(“%d,“,ci); printf(“n“); 则程序的输出结果是 ( A) 1,10,3,8,5,6,7,4,9,2, ( B) 10,9,8,7,6,5,4,3,2,1, ( C) 2,9,4,7,6,5,8,3,10,1, ( D) 10,1,8,3,6,5,4,7,2,9, 29 若有以下程序 #include main() inti,j=0; chara=“Howareyou!“; for(i=0;ai;i+) if(ai!=

14、)aj+=ai; aj=0; printf(“%sn“,a); 则程序的输出结果是 ( A) Hay! ( B) Howareyou ( C) Howareyou! ( D) How are you! 30 若有以下程序 #include char*a=“you“; charb=“WelcomeyoutoChina!“; main() inti,j=0;char*p; for(i=0;bi!=0;i+) if(*a=bi) p=a; for(j=i;*p!=0;j+) if(*p!=bj)break; p+; if(*p=0)break; printf(“%s“, 则程序的输出结果是 ( A)

15、 China! ( B) to China! ( C) me you to China! ( D) you to China! 31 若有以下程序 #include main() chara20,b=“Theskyisblue.“;inti; for(i=0;i 7;i+)scanf(“%c“, gets(a);printf(“%s%sn“,a,b); 执行时若输入 :(其中 表示回车符 ) Figflowerisred. 则输出结果是 ( A) wer is red.Fig flo is blue. ( B) wer is red.Fig flo ( C) wer is red.The sk

16、y is blue. ( D) Fig flower is red.The sky is blue. 32 若有以下程序 #include main() charw20,a510=“abcdef“,“ghijkl“,“mnopq“,“rstuv“,“wxyz“; intp62=0,1,1,5,0,0,0,2,1,4,4,4,i; for(i=0;i 6;i+)wi=api0pi1; puts(w); 则程序的输出结果是 ( A) catis ( B) ababj ( C) ckbdl ( D) black 33 若有以下程序 #include voidf(intx) if(x =10) pri

17、ntf(“%d-“,x%10);f(x/10); else printf(“%d“,x); main() intz=123456; f(z); 则程序的输出结果是 ( A) 6-5-4-3-2-1- ( B) 6-5-4-3-2-1 ( C) 1-2-3-4-5-6 ( D) 1-2-3-4-5-6- 34 若有以下程序 #include inta=2; intf(intm) staticintn; n=0;n+;a+; returnn+m+a; main() intk; for(k=0;k 4;k+)printf(“%d,“,f(k); 则程序的输出结果是 ( A) 4,5,6,7, ( B

18、) 4,7,10,13, ( C) 4,6,8,10, ( D) 3,5,7,9, 35 若有以下程序 #include #defineS(x)x*x #defineT(x)S(x)*S(x) main() intk=5,j=2; printf(“%d,%dn“,S(k+j),T(k+j); 则程序的输出结果是 ( A) 17,289 ( B) 49,2401 ( C) 17,37 ( D) 49,289 36 若有以下程序 #include #include #include structstu char*name,gender; intscore; ; main() structstua=

19、NULL,m,290,b; a.name=(char*)malloc(10); strcpy(a.name,“Zhao“); b=a;b.gender=f;b.score=350; strcpy(b.name,“Qian“); printf(“%s,%c,%d,“,a.name,a.gender,a.score); printf(“%s,%c,%dn“,b.name,b.gender,b.score); 则程序的输出结果是 ( A) Zhao,m,290,Zhao,f,350 ( B) Zhao,m,290,Qian,f,350 ( C) Qian,f,350,Qian,f,350 ( D)

20、Qian,m,290,Qian,f,350 37 若有以下程序 #include #include #include typedefstructstu char*name,gender; intscore; STU; voidf(char*p) p=(char*)malloc(10); strcpy(p,“Qian“); main() STUa=NULL,m,290,b; a.name=(char*)malloc(10); strcpy(a.name,“Zhao“); b=a; f(b.name); b.gender=f;b.score=350; printf(“%s,%c,%d,“,a.na

21、me,a.gender,a.score); printf(“%s,%c,%dn“,b.name,b.gender,b.score); 则程序的输出结果是 ( A) Zhao,m,290,Qian,f,350 ( B) Zhao,m,290,Zhao,f,350 ( C) Qian,f,350,Qian,f,350 ( D) Qian,m,290,Qian,f,350 38 若有定义 typedefint*T; Ta10; 则 a的定义与下面哪个语句等价 ( A) int (*a)10; ( B) int *a10; ( C) int *a; ( D) int a10; 39 若有以下程序 #i

22、nclude main() intc; c=105; printf(“%dn“,c); 则程序的输出结果是 ( A) 5 ( B) 15 ( C) 10000 ( D) 105 40 若有以下程序 #include main() FILE*fp; inti,a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+“); for(i=0;i 6;i+) fseek(fp,0L,0);fprintf(fp,“%dn“,ai); rewind(fp); fscanf(fp,“%d“, fclose(fp); printf(“%dn“,k); 则程序的输出结果是 ( A) 1

23、23456 ( B) 1 ( C) 6 ( D) 21 国家二级 C语言机试(选择题)模拟试卷 44答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为 D。 2 【正确答案】 A 【试题解析】 在循环队列中,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。因此,从排头指针 front指向的后一个位置直到队尾指针 rear指向 的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变

24、化而变化, A正确。 3 【正确答案】 B 【试题解析】 二叉树中,度为 0的节点数等于度为 2的节点数加 1,即 n2=n0-1,叶子节点即度为 0,则 n2=79,总结点数为 n0+n1+n2=80+70+79=229,答案为B。 4 【正确答案】 C 【试题解析】 冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换,需要互换的次数为9+8+7+6+5+4+3+2+1=45,选 C。 5 【正确答案】 D 【试题解析】 软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选 D。 6 【正确答案】 C 【试题解析】 开发阶段

25、包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计 3个阶段,实施则包括编码和测试两个阶段, C不属于开发阶段。 7 【正确答案】 A 【试题解析】 结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。 8 【正确答案】 A 【试题解析】 关系模型采用二维表来 表示,即每个二维表称为一个关系。 9 【正确答案】 B 【试题解析】 A和 B为一对多的联系,则对于 A中的每一个实体, B中有多个实体与之联系,而 B与 C为一对一联系,则对于 B中的每一个实体, C中之多有一个实体与之联系,则可推出对于 A中的每一个实体, C中有多个实体与联系,所以为一对多

26、联系。 10 【正确答案】 D 【试题解析】 关系 T中的元素与关系 R和关系 S中不同元素的总和,因此为并操作。 11 【正确答案】 C 【试题解析】 一个 C语句经过编译后产生若干条机器指令。声明部分不是语句 ,不产生机器指令 ,只是对有关数据的声明。而且固定类型和格式的 C语句被转换成机器指令的条数固定。所以选择 C选项。 12 【正确答案】 B 【试题解析】 while循环是先判断条件 ,满足条件后执行循环体 ,执行完后接着判断条件 ,执行 ,直到最后一次判断条件后不成立 ,跳出循环 ,所以最后一次执行了条件表达式 ,但是没有执行循环体 ,所以选择 B选项。 13 【正确答案】 B 【

27、试题解析】 在 C语言中 ,可以用一个标识符来代表一个常量 ,称为符号常量。这个标识符必须在程序中进行特别的 “指定 “,并符合标识符的命名 规则。用作符号常量的标识符通常采用大写字母表示 ,在主函数中其值不能再被定义。所以选择 B选项。 14 【正确答案】 B 【试题解析】 先计算 b%=4,即 b=b%4,结果为 2,然后计算 a%=2,结果为 -1,最后 a的值为 -1,b的值为 2,所以选择 B选项。 15 【正确答案】 A 【试题解析】 逗号运算符的结合性从左到右 ,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低,所以先计算 c=(a-=+a)这部分。其中,赋值运算符从右

28、往左计算 ,先执行 +a,a自增 1后再赋值 ,所以 a的值为 1,执行 a=a-1,即a=1-1,a的值为 0,并将 0赋给变量 c。第二部分 (a+=b,b+=4),先执行 a=a+b,a=0+0,即 a的值为 0,然后执行 b+=4,b=0+4,即 b的值为 4。所以打印结果为 0,4,0,选择 A选项。 16 【正确答案】 A 【试题解析】 第 4行逗号表达式中间的第二个表达式为空,是不合法的 ,可以去掉写成 a+=b,b+=a,也可以在里面补一个表达式,如 a+=b,a,b+=a。所以选择 A选项。 17 【正确答案】 D 【试题解析】 第一个 if语句的判断条件中是逻辑或表达式 ,

29、所以只要有一个运算对象为真结果就为真 ,且如果前面的已经为真 ,后面的表达式不再进行执行判断。执行第一个 if判断条件时 a的值为 2,整个表达式的值为真 ,b的值不变 ,c的值为 2。判断第二个 if条件为逻辑与表达式 ,只有两个运算对象均非零 ,才为真 ,第一个表达式c=3,不成立 ,不再判断第二个运算对象 ,所以不执行 d=-1操作和 a=5操作。所以结果为选项 D。 18 【正确答案】 B 【试题解析】 else总是和与之最近的上面的 if配对 ,执行第一个 if,判断条件不成立 ,执行 else r=1;语句。再执行第二个 if语 句中的判断条件 ,成立 ,左移执行 r+=2,r的值

30、为 3,再执行第三个 if的判断条件 ,不成立执行第 7行 else后面的空语句 “;“。再执行第四个 if的判断条件 d=4成立 ,执行 r+=4,r的值为 7。然后打印输出。 19 【正确答案】 D 【试题解析】 第一次 for循环 ,n的值为 0,所以从 default后面的语句开始执行 ,s+=4,s+=1,s+=2,s+=3,s的值为 10。在进入第二次 for循环 ,n的值为 1,所以执行s+=1,s+=2,s+=3,s的值为 16。在进入第三次 for循环 ,n的值为 2,所以执行s+=2,s+=3,s的值为 21。在进入第四次 for循环 ,n的值为 3,所以执行 s+=3,s

31、的值为24。 20 【正确答案】 A 【试题解析】 第一次 while判断条件中 a+,先用后加 ,为 -2不为 0条件为真 ,执行 a的自加与 +b操作 ,a的值变为 -1,b的值变为 1。第二次 while判断后 ,a的值变为 0,b的值变为 2。第三次 while判断条件为假 ,但是仍要执行自加操作 ,即值为 1,跳出循环。打印 1和 2。 21 【正确答案】 B 【试题解析】 本循环的条件判断时只要 a为 0就退出循环体 ,初始值 a的值 为 6,满足条件执行完循环体 ,b的值为 6,a-=+ +c即 a=a-(+c),所以 a的值为 5,c的值为1。第二次循环后 b的值为 11,a的

32、值为 3,c的值为 2。第三次也是最后循环后 ,a的值为 0,b的值 14,c的值为 3。 22 【正确答案】 C 【试题解析】 C选项中是字符串常量 ,应该用双引号表示即 “aa“。所以选择 C选项。 23 【正确答案】 C 【试题解析】 该题目首先初始化变量 a和 b,通过 for循环语句使 a取值为 0、1、 2、 3, f函数的功能是将 a*a+a的值返回给 b,即 b为 a、 b、 e、 j。最后通过字符输出函数 putchar()将 b输出。因此 C选项正确。 24 【正确答案】 A 【试题解析】 首先在主函数中给整型变量 k赋值为 3,将变量 k的地址赋给指针变量 p;调用 sp

33、函数,将实参 p的值传给形参 a,在 sp函数中,指针变量 a又获得变量 b的地址,通过运算后,输出 a的值为 4;返回主函数,输出 k的值和 p的值为 3和 3。因此 A选项正确。 25 【正确答案】 D 【试题解析】 在主函数中分别给整型变量 i,指针型变量 p和指向指针的指针变量r赋初值 ;调用 f函数 ,并将实参变量 r的值传递给形参变 量 s,在 f函数中 ,通过printf(“%d,%d,%d,“, k, *t, *s);语句输出 7,7,7;返回主函数 ,通过printf(“%d,%d,%dn“, i, *p, *r);输出 3,7,7。因此 D选项正确。 26 【正确答案】 B

34、 【试题解析】 在主函数中分别给整型变量 i、 j和指针型变量 p、 q赋初值,并声明指针变量 r;调用 f函数,并将实参变量 p和 q的值传递给形参变量 s和 t,并且 f函数是指针型函数,即函数的返回值将是一个地址。在 f函数中,如果条件成立,则将指针变量 s和 t互换,并且将指针 s的地址返回主函数。最后输出 i, j, *p, *q, *r的值,即 3,5,3,5,5。因此 B选项正确。 27 【正确答案】 A 【试题解析】 该题首先初始化二维数组 ,if (flag ? (bi aij) : (bi aij)作为条件表达式的值 ,否则以 (bi aij)作为条件表达式的值 ,fun函

35、数功能是给一维数组赋值。 fun(x, y, 1);该函数调用后 ,即当 flag为真时 ,使一维数组获得二维数组第 1列的数值 ;fun(x, y, 0);该函数调用后 ,即当 flag为假时 ,使一维数组获得二维数组第 4列的数值 ;因此 A选项正确。 28 【正确答案】 D 【试题解析】 该题首先对一维数组进行初始化, c0到 c9依次赋值为 10到 1;fun(c, 10);语句调用 fun函数, fun函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。因此 D选项正确。 29 【正确答案】 C 【试题解析】 主函数中首 先定义字符数组 a=“Ho

36、w are you!“;执行 for循环语句,语句 if (ai != ) aj+=ai; 其功能是将字符数组中的空格去掉。因此 C选项正确。 30 【正确答案】 D 【试题解析】 该程序首先定义 *a和 b ,并进行初始化。主函数中通过外层 for循环语句,遍历字符数组 b ,并且将符合 if条件语句的字符赋给数组 p; for内层循环语句,遍历字符数组 a 。再将符合 if条件语句的结果输出。因此 D选项正确。 31 【正确答案】 A 【试题解析】 程序首先初始化字符数组 b,执行 for循环语句 ,循环变量 i的取值范围从 0到 6。在 for循环语句中通过 scanf函数将从键盘上输入

37、的数据输入到 b 中 ,即 b的值为 Fig flo is blue.。退出 for循环语句 ,执行语句 gets(a); ,gets()函数的调用形式为 :gets(str_adr),其中 str_adr是存放输入字符串的起始地址 ,可以是字符数组名、字符数组元素的地址或字符指针变量。 gets函数用来从终端键盘读入字符串 (包括空格符 ),直到读入一个换行符为止 ,即 a的值为 wer is red.。因此 A选项正确。 32 【正确答案】 D 【试题解析】 程序首先初始化字符数组 a510和二维数组 p62。执行 for循环语句,循环变量 i从 0取值到 5,得到字符数组 w 的值,并通

38、过字符串输出函数 puts进行输出操作。 w0=a01、 w1=a15 、 w2=a00 、w3=a02 、 w4=a14 、 w5=a44;因此最后字符数组 w的结果为black。因此 D选项正确。 33 【正确答案】 B 【试题解析】 本题重点考察函数的递归调用,程序首先初始化整型变量 z为123456,调用函数 f。 f函数中首先通过 if条件语句判断 x是否大于等于 10,如果条件成立,求 x除以 10的余数并输出,同时将变量 x进行 x/10运算,同时调用函数 f。如果条件不成立,直接输出变量 x。因此第 1次调用函数,变量 x为123456,条件成立,输出余数 6;第 2次调用函数

39、,变量 x为 12345,条件成立,输出余数 5;第 3次调用函数,变量 x为 1234,条件成立,输出余数 4;第 4次调用函数,变量 x为 123,条件成立,输出余数 3;第 5次调用函数,变量 x为 12,条件成立,输出余数 2;第 6次调用函数,变量 x为 12345,条件不成立,输出1。因此 B选项正确。 34 【正确答案】 C 【试题解析】 主函数中变量 k作为 for语句的循环变量,取值 0、 1、 2、 3,同时也作为实参通过调用函数 f传递给形参变量 m。由于变量 a是全局变量,变量 n是static静态变量,因此 k=0时, f函数中,语句 return n+m+a;即 1

40、+0+3=4; k=1时, f函数中,语句 return n+m+a;即 2+1+3=6; k=2时, f函数中,语句 return n+m+a;即 3+2+3=8; k=3时, f函数中,语句 return n+m+a;即 4+3+3=10。因此 C选项正确。 35 【正确答案】 C 【试题解析】 本题考查宏定义,宏定义只是做个简单的替换,执行S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j*k+j=37,选项 C正确。 36 【正确答案】 D 【试题解析】 本题中考查结构体中变量的引用, a结构体中 name被修改为Qian,所以本题答案

41、为 D。 37 【正确答案】 B 【试题解析】 本题考查结构 体变量中的引用,其中 a的 name为 Zhao, b执行函数 f(b.name)后 b的 name并没有改变,还是 Zhao,所以答案为 B选项。 38 【正确答案】 B 【试题解析】 本题考查 typedef的使用方法, typedef对已存在的类型使用一个新的名字,其中本题中 int* 用 T来代替,所以定义 T a10;就相当于是 int *a10;选项 B正确。 39 【正确答案】 B 【试题解析】 本题考查位运算中按位异或运算符,异或运算只有在两个比较的位不同时其结果是 1,否则结果为 0, 10用 二进制表示为 00001010,5用二进制表示为 00000101,异或后 00001111,即 15,选项 B正确。 40 【正确答案】 C 【试题解析】 本题考查文件操作函数, fseek 用于二进制方式打开的文件 ,移动文件读写指针位置。将文件内部的位置指针重新指向一个流(数据流 /文件)的开头。所以最后只保留了 6,答案为 C。

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

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

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