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

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

1、国家二级( C语言)笔试模拟试卷 24 及答案与解析 1 下面叙述不正确的是 ( A)算法的执行效率与数据的存储结构有关 ( B)算法的空间复杂度是指执行这个算法所需要的内存空间 ( C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( D)算法的时间复杂度是指执行这个算法所需要的时间 2 下列关于栈的叙述中正确的是 ( A)在栈中只能插入数据 ( B)在栈中只能删除数据 ( C)栈足先进先出的线性表 ( D)栈是先进后出的线性表 3 设有下列二叉树: 对此二叉树先序遍历的结果为 ( A) ABCDEF ( B) BDAECF ( C) ABDCEF ( D) DBEFCA 4 下面对对

2、象概念描述错误的是 ( A)任何对象都必须有继承性 ( B)对象是属性和方法的封装体 ( C)对象间的通讯靠消息传递 ( D)操作是对象的动态属性 5 信息隐蔽的概念与下述哪一种概念直接相关 ? ( A)软件结构定义 ( B)模块独立性 ( C)模块类型划分 ( D)模块耦合度 6 软件详细设计的主要仟务是确定每个模块的 ( A)算法和使用的数据结构 ( B)外部接口 ( C)功能 ( D)编程 7 对长度为 n的线性表进行顺序查找,在最坏情况下,所需要的比较次数为 ( A) log2n ( B) n/2 ( C) n ( D) n+1 8 利用 E-R模型进行数据库的概念设计,可以分成三步:

3、首先设计局部 E-R模型,然后把各个局部 E-R模型综合成一个全局的模型,最后对全局 E-R模型进行_,得到最终的 E-R模型。 ( A)简化 ( B)结构化 ( C)最小化 ( D)优化 9 概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是 ( A)把软件划分成模块 ( B)确定模块之间的调用关系 ( C)确定 各个模块的功能 ( D)设计每个模块的伪代码 10 以下叙述正确的是 ( A) C语言比其他语言高级 ( B) C语言可以不用编译就能被计算机识别执行 ( C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 ( D) C语言出现的最晚、具有其他语言的一切优

4、点 11 以下叙述中正确的是 ( )。 ( A) C语言比其他语言高级 ( B) C语言可以不用编译就被计算机识别并执行 ( C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 ( D) C语言出现最晚,具有其他语言的一切优点 12 在一个 C语言程序中, ( )。 ( A) main函数必须出现在所有函数之前 ( B) main函数可以在任何地方出现 ( C) main函数必须出现在所有函数之后 ( D) main函数必须出现在固定位置 13 C语言中最简单的数据类型包括 ( )。 ( A)整型、实型、逻辑型 ( B)整型、实型、字符型 ( C)整型、字符型、逻辑型 ( D)字

5、符型、实型、逻辑型 14 若变量已正确定义并赋值,以下符合 C语言语法的表达式是 ( )。 ( A) a:=b+1 ( B) a=b=c+2 ( C) int 18.5%3 ( D) a=a+7=c+b 15 下列可用于 C语言用户标识符的一组是 ( )。 ( A) void, define, WORD ( B) a3_b3, _123, Car ( C) For, -abc, IF Case ( D) 2a, DO, sizeof 16 C语言中运算对象必须是整型的运算符是 ( )。 ( A) %= ( B) / ( C) = ( D) = 17 若变量 a, i已正确定义,且 i已正确赋值

6、,下面合法的语句是 ( )。 ( A) a=1 ( B) +i; ( C) a=a+=5; ( D) a=int(i); 18 已知 int t=0; while(t=1) 则以下叙述正确的是 ( )。 ( A)循环控制表达式的值为 0 ( B)循环控制表达式的值为 1 ( C)循环控制表达式不合法 ( D)以上说法都不对 19 若变量已正确说明为 float型,要通过 scanf(“%f%f%f“, i+; printf(“%dn“,k); 执行后输出的结果足 ( A) 58 ( B) 56 ( C) 45 ( D) 24 22 有以下程序 main() int i=0,s=0; for(;

7、) if(i=3i=5) continue; if(i=6) break; i+; s+=i ; printf(“%dn“,s) 程序运行后的输出结果是 ( A) 10 ( B) 13 ( C) 21 ( D)程序进入死循环 23 若变量已正确定义,要求程序段完成求 51的计算,不能完成此操作的程序段是 ( A) for(i=1,p=1;i =5;i+) p*=i; ( B) for(i=1;i =5;i+) p=1; p*=i; ( C) i=1; p=1; while(i =5)p*=i; i+; ( D) i=1;p=1;dop*=i; i+; while(i =5) 24 以下程序的输

8、出结果是 main() int a=0,i; for(i=1;i 5 i+) switch(i) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(“%dn“,A) ; ( A) 31 ( B) 13 ( C) 10 ( D) 20 25 有以下程序; char fun(char x , char y) if(x y) return x; return y; main() int a=9,b=8,c=7; print f (“%cn“ , fun(fun(a, B) , fun(b, C) ) ); 程序的执行结果是

9、( A)函数调用出错 ( B) 8 ( C) 9 ( D) 7 26 有以下程序 int f (int A) return a%2; main ( ) int s8=1,3,5,2,4,6),i,d=0; for (i=0; f(si; i+) d +=si; print f (“%dn“, D) ; 程 序运行后的输出结果是 ( A) 9 ( B) 11 ( C) 19 ( D) 21 27 有以下程序: void f(int v , int w) int t; t=v;v=w;w=t; main() int x=l,y=3,z=2; if(x y f(x,y); else if(y z)

10、f(y,z); else f(x,z); printf(“%d,%d,%dn“,x,y,z); 执行后输出结果是 ( A) 1, 2, 3 ( B) 3, 1, 2 ( C) 1, 3, 2 ( D) 2, 3, 1 28 有以下程序 main() int a,b,d=25; a=d/10 % 9; b=a printf (“%d,%dn“,a,B) ; 程序运行后的输出结果是 ( A) 6, 1 ( B) 2, 1 ( C) 6, 0 ( D) 2, 0 29 以下程序段的输出结果是 char s=“141141abct“; printf (“%dn“,strlen(s); ( A) 9 (

11、 B) 12 ( C) 13 ( D) 14 30 有以下程序: void swapl(int c) int t; t=c0; c0=c1; c1=t; void swap2int c0, int c1) int t; t=c0; c0=c1; c1=t; main() int a2=3,5, b2=3,5; swap1 (A) ; swap2 (b0,b1); printf(“%d %d %d %dn“,a0,a1,b0,b1); 其输出结果是 ( A) 5 3 5 3 ( B) 5 3 3 5 ( C) 3 5 3 5 ( D) 3 5 5 3 31 有以下程序: void sum(int

12、 *A) a0 =a1; main ( ) int aa10=1,2,3,4,5,6,7,8,9,10, i; for (i=2 ;i =0;i-) sum( print f (“%dn“,aa0); 执行后的输出结果是 ( A) 4 ( B) 3 ( C) 2 ( D) 1 32 有以下程序 main() int m3=1,4,7,2,5,8,3,6,9; int i,j,k=2; for(i=0;i 3;i+) printf(“%d “,mki); 执行后输出结果是 ( A) 456 ( B) 2 5 8 ( C) 3 6 9 ( D) 7 8 9 33 以下函数的功能是:通过键盘输入数据

13、,为数组中的所有元素赋值。 #define N 10 void arrin(int xN) int i=0; while(i N) scanf(“%d“, _); 在下划线处应填入的是 ( A) x+i ( B) 该函数的返回值是 ( A)不确定的值 ( B)形参 p中存放的值 ( C)形参 p所指存储单元中的值 ( D)形参 P的地址值 35 在函数调用过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数funA,则 ( A)称为函数的直接递归调用 ( B)称为函数的间接递归调用 ( C)称为函数的循环调用 ( D) C语言上不允许这样 的递归调用 36 有以下程序 #

14、include stdio.h main() FILE *fp; int i=20,j=30,k,n; fp=fopen(“d1.dat“,“w“); fprintf(fp,“%dn“,i);fprintf(fp,“%dn“,j); fclose(fp); fp=fopen(“d1.dat“, “r“); fp=fscanf(fp,“%d%d“, printf(“%d%dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( A) 20 30 ( B) 20 50 ( C) 30 50 ( D) 3020 37 若有定义: int x=0, *p=,则语句 printf(“%dn

15、“,*p);的输出结果是 ( A)随机值 ( B) 0 ( C) x的地址 ( D) p的地址 38 设有定义语句: char c1=92,c2=92;,则以下表达式中值为零的是 ( A) c1c2 ( B) c1 main() int s=0; int a=5; s+=a+; s+=a+;printf(“%dn“,s); 程序运行后的输出结果是 ( A) 8 ( B) 10 ( C) 7 ( D) 11 41 有以下程序: void sort(int a,int n) int i,j,t; for(i=0;i n-1;i+=2) for(j=i+2;j n;j+=2) if(ai aj) t

16、=ai;ai=aj;aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa,10); for(i=0;i 10;i+) printf(“%d“,aai); printf(“n“); 其输出结果是 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( B) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( C) 9, 2, 7, 4, 5, 6, 3, 8, 1, 10, ( D) 1, 10, 3, 8, 5, 6, 7, 4, 9, 2, 42 有以下程序 struct STU char num10;

17、float score3; ; main() struct STU s3=“20021“,90,95,85, “20022“,95,80,75, “20023“,100,95,90,*p=s; int i; float sum=0; for(i-0;i 3,i+) sum=sum+p-scorei; printf(“%6.2fn“,sum; 程序运行后的输出结果是 ( A) 260 ( B) 270 ( C) 280 ( D) 285 43 以下程序的输出结果是 #include stdio.h #include string,h main() char b18=“abcdefg“,b28,*

18、pb=b1+3; while (-pb =b1) strcpy(b2,pB) ; printf(“%dn“,strlen(b2); ( A) 8 ( B) 3 ( C) 1 ( D) 7 44 有以下程序 #include string.h main ( ) char p=a,b ,c, q10=a,b,c; printf(“%d %dn“,strlen(p),strlen(q); 以下叙述中正确的是 ( A)在给 p和 q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3 ( B)由于 p数组中没有字符申结束符,长度不能确定;但 q数组中字符串长度为3 ( C)由于 q数组中没有

19、字符串结束符,长度不能确定:但 p数组中字符串长度为3 ( D)由于 p和 q数组中都没有字符串结束符,故长度都不能确定 45 有以下程序 main() char s=“159“,*p; p=s; printf(“%c“,*p+); pritnf(“%c“,*p+); 程序运行后的输出结果是 ( A) 15 ( B) 16 ( C) 12 ( D) 59 46 若 fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(中 )的值为 ( A) 0 ( B) 1 ( C) -1 ( D)一个 非 0值 47 以下程序的输出的结果是 int x=3; main() int i; fo

20、r (i=1;i x;i+) incre(); incre() staic int x=1; x*=x+1; printf(“ %d“,x); ( A) 3 3 ( B) 22 ( C) 26 ( D) 25 48 有以下程序 #include string.h struct STU char name10; int num; ; void f(char *name, int num) struct STU s2=“SunDan“,20044,“Penghua“,20045; num=s0.num; strcpy(name,s0.name); main() struct STU s2=“Yan

21、gSan“,20041,“LiSiGuo“,20042,*p; p= f(p- name,p-num); printf(“%s %dn“,p- name,p- num); 程序运行后的输出结果是 ( A) SunDan 20042 ( B) SunDan 20044 ( C) LiSiGuo 20042 ( D) YangSan 20041 49 以下对结构体类型变量 td的定义中,错误的是 ( A) typedef struct aa int n; float m; AA; AA td; ( B) stmct aa int n;float m;td;stmct aa td; ( C) str

22、uct int n; float m; aa; struct aa rd; ( D) struct int n;float m;td; 50 有以下程序 (提示:程序中 fseek(fp-2L*sizeof(int),SEEK_END) ;语 句的作用是使位置指针从文件末尾向前移 2*sizeof(ing)字节 ) #include stdio.h main() FILE *fp; int i, a4=1,2,3,4,b; fp=fopen(“data.dat“,“wb“); for(i=0;i 4;i+) fwrite( fclose(fp); fp=fopen(“data.dat“,“rb

23、“); fseek(fp,-2L*sizeof(int),SEEK_END) ; fread ( /*从文件中读取 sizeof(int)字节的数据到变量 b中 */ fclose(fp); printf(“%dn“,B) ; 执行后输出结果是 ( A) 2 ( B) 1 ( C) 4 ( D) 3 51 解题方案的准确而完整的描述称为 _。 52 在数据结构中,顺序存储结构的数据元素所占的存储空间是 _的。 53 诊断和改正程序中错误的工作通常称为 _。 54 数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,_给出了数据库物理存储结构与物理存取方法。 55 关系模型的完整性

24、规则是对关系的某种约束条件,包括实体完整性、 _和自定义完整性。 56 以下程序运行时若从键盘输入 : 10 20 30回车。输出结果是 _。 #include stdio.h main() int i=0,j=0,k=0; scanf(“%d%*d%d“, printf(“%d %d %dn“,i,j,k); 57 以下程序的输出结果是 _。 main() int a=177; printf(“%on“,a); 58 有以下程序 main() int t=1,i=5; for( ; i =0; i-) t*=i; printf(“%dn“,t); 执行后输出结果是 _。 59 以下程序运行后

25、的输出结果是 _。 main() int x=15; while(x 10 if(x/3)x+;break; else continue; printf(“%dn“,x); 60 若有以下程序 main ( ) int a4 4=1,2;-3,-4,0,-12,-13,14 , 21,23,0,-24,-31,32,-33;0; int i,j,s=0; for(i=0;i 4;i+) for(j=0;j 4;j+) if(aij 0) continue; if(aij=0) break; s+=aij; printf(“%dn“,s); 执行后输出结果是 _。 61 已知字符 A的 ASCI

26、I代码值为 65,以下程序运行时若从键盘输入 : B33回车。则输出结果是 _。 #include stdio,h main() char a,b; a=geCchar(); scanf(“%d“, a=a-A+0; b=b*2; printf(%c %cn“ ,a,b); 62 有以下程序 int sub(int n)retnrn(n/10+n%10); main() int x,y; scanf(“%d“, y=sub(sub(sub(x); printf(“%dn“,y); 若运行时输入: 1234回车 ,程序的输出结果是 _。 63 设有如下定义 #define MYSWAP(z,x,

27、y) z=x; x=y; y=z; float a=5,b=16,c; MYSWAP(_,a,b); 64 以下程序运行后的输出结果是 _。 fun(int a) int b=0; static int c=3; b+; c+; return(a+b+c); main() int i,a=5; for(i=0;i 3;i+) printf(“%d %d“,i,fun(a); printf(“n“); 65 以下程序运行后的输出结果是 _。 struct NODE int k; struct NODE *link; ; main() struct NODE m5,*p=m,*q=m+4; int

28、 i=0; while(p!=q) p- k-+i; p+; q- k-i+; q-; q- k=i; for(i-0;i 5;i+) printf(“%d“,mi.k); printf(“n“); 66 fun函数的功能是:首先对 a所指的 N行 N列的矩阵,找出各行中的最大数,再求这 N个最大值中的最小的那个数作为函数值返回。请填空 _。 #include stdio.h #define N 100 int fun(int(*a)N) int row, col,max,min; for(row=0;row N;row+) for(max=arow0,col=1; col N;col+) i

29、f( ) max=arowcol; if(row=0) min=max; else if( ) min=max; return min; 67 以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数数返回字符串: yes!否则函数返回这符串: no!并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如: adgda。请填空 #include string.h char*huiwen(char *str) char *p1,*p2; int i,t=0; pl=str; p2=_; for(i=0;i =strlen(str)/2;i+*) if(*p1+!=

30、*p2-)t=1;break; if(_) return(“yes!“); else return(*no!“); main() char str50; printf(“Input:“); scanf(“%s“,str); printf(“%sn“,_); 国家二级( C语言)笔试模拟试卷 24 答案与解析 1 【正 确答案】 D 【试题解析】 算法的时间复杂度是指执行算法所需要的计算工作量,故 D选项不正确。 2 【正确答案】 D 【试题解析】 对栈可进行插入和删除数据的操作,但必须牢记插入和删除数据都只能在栈顶,是一种特殊的线性表所以栈是先进后出的线性表。 3 【正确答案】 C 【试题解析

31、】 二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历,其遍历顺序应该为:访问根结点 ,先序遍历左于树 -先序遍历右子树。按照定义,先序遍历序列是 ABDCEP,故答案为 C。 4 【正确答案】 A 【试题解析】 有时为了保护某些特有的对象,可以通过定义其为私有属性达到不被继承的目的,所以 A选项的说法错误,为所选。 5 【正确答案】 B 【试题解析】 采用信息隐蔽的目的就是为了确保每个模块的独立性。 6 【正确答案】 A 【试题解析】 从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设

32、计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。 7 【正确答案】 C 【试题解析】 在长度为 n 的线性表中进行顺序查找,最坏情况下需要比较 n次选项 C正确。 8 【正确答案】 D 【试题解析】 在概念设计中按照模块的划分画出各个模块的 E-R图,然后把这些图合成一张 E-R图作为全局模型,最后应该对全局 E-R图进行优化,看看是否有重复和不合理的地方。不能只进行简单的合并。 9 【正确答案】 D 【试题解析】 概要设计是数据库的总体设计,其目的就是要按照需求规格说明书把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系,而设计每个 模块的伪代

33、码则属于详细设计。所以 D选项不属于概要设计。 10 【正确答案】 C 【试题解析】 C语言是一种高级语言,必须编译成目标代码才能执行,故选项 B错误;与其他语言相比 C语言更接近于硬件,更 “低级 ”:程序语言是不断发展的,不断有新的语言出现, C语言不是出现最晚的,故选项 A和选项 D错误;高级语言类似于人类的自然语言和数学语言。所以, c选项为所选。 11 【正确答案】 C 【试题解析】 计算机语言分为低级语言和高级语言, C语言属于高级语言,但并非比其他语言高级,选项 A) 错误 ;除了机器语言外,其他各种语言都必须编译成能被计算机识别的机器代码才能执行,选项 B) 错误; C语言出现

34、于 1972年至1973年,并不是出现最晚的语言,选项 D) 错误。 12 【正确答案】 B 【试题解析】 C语言规定, main 函数在程序中的位置是任意的。 13 【正确答案】 B 【试题解析】 选项 A) 中包含一个不合法的运算符 “:=”;选项 C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式: a+7=c+b 和 a=a+7,因为 C语言规定赋值号的左边只能是单个变量,不能是表达式 或常量等,所以 a+7=c+b 是错的。因此,正确答案是选项 B) ,它相当于 a=(b =c+2),可分解为两个表达式: b=c+2和 a=b。 14 【正确答案】 B 【试题解析】

35、选项 A) 中包含一个不合法的运算符 “:=”;选项 C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式: a+7=c+b 和 a=a+7,因为 C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以 a+7=c+b 是错的。因此,正确答案是选项 B) ,它相当于 a=(b =c+2),可分解为两个表达式: b=c+2和 a=b。 15 【正确答案】 B 【试题解析】 C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项 C) 和 D) ; C语言还规定标识符不能为C语言的关键字,选项 A) 中 void 为关键字,故排除选项

36、 A) 。 16 【正确答案】 A 【试题解析】 C语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含取余运算,它的运算对象也必须是整型。 17 【正确答案】 B 【试题解析】 选项 A) 缺少分号,是一个表达式,而不是语句;选项 C) 包含一个不合法的运算符 “+=”;选项 D) 应改为 a=(int)i;。 18 【正确答案】 B 【试题解析】 这里要注意 “=”与 “=”的用法, t=1是将 t赋值为 1,所以循环控制表达式的值为 1。 19 【正确答案】 B 【试题解析】 在 scanf(“%f%f%f, &a, &b, &c);中,格式描述为“%f%f%f,当输入数据

37、时,数据之间可用空格、制表符和回车符作为间隔符,而逗号不是合法的间隔符。 20 【正确答案】 A 【试题解析】 该程序的关键是要搞清楚程序执行的路线。由于 x的值等于 1,所以在 switch 语句中,程序从 case 1后面的语句开始执行。由于 case 1后面没有break 语句,所以程序顺序执行 case 2后面的语句。程序共执行了三条语句:a+; a+; b+;所以,变量 a和 b最后的值分别为 2和 l。选项 A) 正确。 21 【正确答案】 D 【试题解析】 本题考核的知识点是 while循环语句的程序分析。在主函数中首先定义了一个数组 p并初始化,在 while后面括号里的表达式

38、中, i初值为 0,当 pi为偶数时, pi%2 等于 0,根据 “&”运算符的规则, 其表达式为假退出循环,显然当 i=2时, pi=14 为偶数,此时 while后面括号里的毒达式的值为假,退出循环,此时 K=p0+p1,即 k=11+13。所以最后输出 k 为 24。所以, D选项为所选。 22 【正确答案】 D 【试题解析】 本题考核的知识点是 for循环, continue语句和 break 语句的运用。程序中 for循环中省略了判断退出循环的表达式, for循环将由里面的 break语句控制是否结束循环,第一次循环,第一条 if语句后面括号里的表达式的值为假,所以该 if语句不被执

39、行,执行下面的 第二条语句,此时该 if 语句表达式的值为假,所以该 if语句也不执行,执行下面的语句, i+、 s+=i,执行完毕后 i的值为 1, s的值为 1,如此循环,直到第三次之后 i, s的值都为 3,继续第四次循环,显然这时满足第一条 if语句的,执行后面的 continue;该次循环结束从头开始下次循环,而 i的值为 3一直没有改变,所以第一条语句始终要执行,因此 for循环将一直循环下去,所以, 4个选项中选项 D符合题意。 23 【正确答案】 B 【试题解析】 本题考核的知识点是 C语言在生活中的简单应用。选项 B 中 for循环了 5次,而每次循环的时候,都将 p 的值重

40、新赋值为 1后,再乘以当前数字 i,最后的结果为 5,显然不是 51的值,同样的分析可知选项 A、选项 C和选项 D计算的都是 5!。所以, 4个选项中选项 B 符合题意。 24 【正确答案】 A 【试题解析】 本题考核的知识点是 for语句与 switch 语句地综合运用。 switch 语句的执行过程是:在 switch 后面的表达式的值和 case后面常量表达式的值吻合时,就执行该 case分支的语句。如果在该语句的后面没有 break 语句,则按顺序继续执行下一个 case分支,直到遇到 break语句 或 switch 多分支语句结束,在switch 语句中, break 语句的作用

41、是使流程跳出 switch 结构,终止 switch 语句的执行在本题中,因为每个 case语句后面都没有 break 语句,所以,第一轮循环(i=1)执行过后 a的值为 8,第 2轮 (i=2)执行过后 a的值为 16,第 3轮 (i=3)执行过后 a的值为 26,第 4轮 (i=4)执行过后 a的值为 31,然后执行 “i+”语句,这时循环条件为假,循环结束所以, 4个选项中 A为所选。 25 【正确答案】 D 【试题解析】 本题考核的知识点是函数的返回 值以及返回值作为函数的参数。经过分析得出函数 fun()的功能是比较形参 x和形参 y的大小,返回较小的一个函数 fun()有两个参数本

42、题中,首先定义了三个整型变量 a、 b 和 c,分别赋初值为9、 8和 7然后执行函数 fun(fun(a,b) ,fun(b,c) )。在该函数中分别将 fun(a,b) 和fun(b, C) 函数的返回值作为该函数的两个实参。在函数 fun(a,b) 中, 由于 ab,故返回较小值 b 即 8,在函数 fun(b, C) 中,由于 b c, 故返回较小值 c即为7, 因此调用函数 fun(fun(a,b) , fun(b, C) )相当于执行函数 fun(8, 7),返回较小值即 7。所以, 4个选项中选项 D符合题意。 26 【正确答案】 A 【试题解析】 本题考核的知识点是一维数组的定

43、义,初始化和数组中元素的引用。函数 f()的作用是形参 a为偶数的时候返回 0,主函数中首先定义了一个长度为 8的一维数组,然后给它赋初值使得 s0=1、 a1=3、 s2=5、 s3=2、 s4=4、 s5=6其他没有赋值的数组元素将自动赋值为 0。 for循环中,当 s1不为偶数的时,将 si相加,即 当 i=3时, si=2为偶数,退出循环,此时 d的值为 d=s101+s1+s2=1+3+5=9,因此最后输出的 d 的值为 9。所以, 4个选项中选项A符合题意。 27 【正确答案】 C 【试题解析】 本题考核的知识点是函数的调用和 if-else语句的应用。 C语言规定else总是和离

44、它最近的 if 语句配对。分析可以知道,函数 f()作用是让形参 v和形参 w的值交换。在 i函数中首先定义了三个变量 x。 y和 z。然后再执行下面的 if-else语句由程序可以看出第 个 else和第一个订搭配,第二个 else和 第二个 if 搭配。由于调用函数时是进行值传递的。即将实参 x, y, z传给形参 v和 w,以后行参和实参再无联系,故通过 if 语句调用 f()函数后, x、 y和 z的值并没有改变。故最后输出的 x、 v和 z的值为 1、 3和 2,所以, 4个选项中选项 C符合题意。 28 【正确答案】 B 【试题解析】 本题主要考查的是 C语言中的整除、求余以及逻辑

45、值的概念。在C语言中, /号的两边如果都是整数的话,返回的结果也是整数,如果除不净则舍去小数部分。 %是求余运算,它的运算对象只能是整型,运算结果是两数相除后所得的余数, 当运算量为负数 时,结果的符号与被除数相同。 因此, 执行语句 a=d/10%9;后, a=25/10%9=2%9=2。 C语言中没有专门的逻辑值,而是用整型值来代替。当整型值作逻辑值使用时,非零即表示 “真 ”,零表示 “假 ”,而逻辑值当整型值使用时, “真 ”等于 1, “假 ”等于 0。因此,执行语句 b=a&(-1);后b=2&(-1)=“真 ”&“真 ” =“真 ”=1。所以, 4个选项中选项 B 符合题意。 29 【正确答案】 A 【试题解析】 本题考核的知识点是字符串的长度。字符数组中可以存放字符串,但字符数组的 长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即, 0之前的字符数。 字符数组 s中依次存放的字符是: “1“4“1“141“a“b“c“t和最后一个

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

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

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