【计算机类职业资格】二级C语言笔试-147及答案解析.doc

上传人:amazingpat195 文档编号:1325981 上传时间:2019-10-17 格式:DOC 页数:27 大小:94KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-147及答案解析.doc_第1页
第1页 / 共27页
【计算机类职业资格】二级C语言笔试-147及答案解析.doc_第2页
第2页 / 共27页
【计算机类职业资格】二级C语言笔试-147及答案解析.doc_第3页
第3页 / 共27页
【计算机类职业资格】二级C语言笔试-147及答案解析.doc_第4页
第4页 / 共27页
【计算机类职业资格】二级C语言笔试-147及答案解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、二级 C语言笔试-147 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下函数:int fun(char * s)char * t=s;while(*t+);return(t-s)该函数的功能是_。(分数:2.00)A.比较两个字符串的大小B.计算 s所指字符串占用内存字节个数C.计算 s所指字符串的长度D.将 s所指字符串复制到字符串 t中2.以下数组定义中错误的是_。(分数:2.00)A.intx30;B.int x231,2,3,4,5,6);C.intx31,2,3,4,5,6;D.mtx231,2,3,4,5,6;3.设有定

2、义:char p1,2,3,*qp;,以下不能计算出一个 char型数据所占字节数的表达式是_。(分数:2.00)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p0)4.有以下程序:void f(int n,int * r)int r1=0;if(n%3=0)r1=n/3;else if(n%5=0)r1=n/5;else f(-n,&r1);*r=r1;main()intm=7,r;f(m,&r);printf(“%d/n“,r);程序运行后的输出结果是_。(分数:2.00)A.2B.1C.3D.05.若变量已正确定义,则以下语句的输出结果是_。

3、s=32;s=32;printf(“%d“,s);(分数:2.00)A.-1B.0C.1D.326.设变量已正确定义,则以下能正确计算 fn!的程序段是_。(分数:2.00)A.f=0; for(i=1;i=n;i+)f*=i;B.f=1;for(i=1;in;i+)f*=i;C.f=1; for(i=n;i1;i+)f*=i;D.f=1;for(i=n;i=2;i-)f*=i;7.有以下程序:main()intp8=11,12,13,14,15,16,17,18,i=0,i=0;while(i+7)if(pi%2)j+=pi;printf(”%dn“,j);程序运行后的输出结果是_。(分数:

4、2.00)_8.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据9.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。(分数:2.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不会占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元10.下列叙述中正确的是_。(分数:2.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一

5、对应的D.算法的时间复杂度与空间复杂度一定相关11.有以下程序:voidf(int*x,int * y)int t;t= *x;*x= *y;*y=t;main()inta8=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q=&a7;while(p)f(p,q);p+;q-;for(i=0;i8;i+)printf(“%d,“,ai);程序运行后的输出结果是_;(分数:1.00)_12.以下对结构体类型变量 td的定义中,错误的是_。(分数:1.00)A.typedef struct aaint n;float m;AA;AA td;B.struct aaint n;float m;

6、td;struct aa td;C.structint n;float m;aa;D.structint n;float m;td;struct aa td;13.下列描述中正确的是_。(分数:1.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题14.在数据库设计中,将 E-R图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段15.从工程管理角度,软件设计一般分为两步完成,它们是_。(分数:1

7、.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计16.设有定义 int a;float b;执行 scanf(“%2d%f“,&a,&b);语句时,若从键盘输入 876543.0回车,a 和 b的值分别是_。(分数:1.00)A.876和 543.000000B.87和 6.000000C.87和 543.000000D.76和 543.00000017.设变量 x和 y均已正确定义并赋值,以下 if语句中,在编译时将产生错误信息的是_。(分数:1.00)A.if(x+);B.if(xy&y!=0);C.if(xy)x-else y+:D.i

8、f(y0);else x+;18.下列叙述中正确的是_。(分数:1.00)A.软件测试的主要目的是发现程序中的错误B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误19.已知字母 A的 ASC代码值为 65,若变量 kk为 char型,以下不能正确判断出 kk中的值为大写字母的表达式是_。(分数:1.00)A.kk=A&kk=ZB.!(kk=Akk=Z)C.(kk+32)=a&(kk+32)=zD.isalpha(kk)&(kk91)20.有以下程序,其中函数 f的功能是将多个字符串按字典顺序排序:#i

9、ncludestringhvoidf(char*p,intn)char*t;int i,j;for(i=0;in-1;i+)for (j=i+1;jn;j+)if(strcmp(pi,pj)0)t=pi;pi=pj;pj=t;main()char*p5=“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“;f(p,5);printf(“%d/n“,strlen(p1);程序运行后的输出结果是_。(分数:1.00)_21.若变量均已正确定义并赋值,以下合法的 C语言赋值语句是_。(分数:2.00)A.x=y=5;B.x=n%2.5;C.x+n=iD.x=5=4+1;22.有以下程

10、序:int a=4;int f(int n)int t=0;static int a=5;if(n%2) int a=6;t+=a+;elseint a;7;t+=a+;return t+a+;main()int s=a,i=0;for(;i2;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。(分数:2.00)A.24B.28C.32D.3623.以下叙述中错误的是_。(分数:2.00)A.C语言是一种结构化程序设计语言B.结构化程序由顺序、分支、循环三种基本结构组成C.使用三种基本结构构成的程序只能解决简单问题D.结构化程序设计提倡模块化的设计方法24.有以

11、下程序:fun(int x,int y)return(x+y);main()int a=1,b=2,c=3,Sum;sum=fun(a+,b+,a+b),c+);printf(“%d“,sum);执行后的输出结果是_。(分数:2.00)A.6B.7C.8D.925.有以下程序:#includestdio.hmain()char c1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c“,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(“%c%c/n“,c5,c6);程序运行后,若从键盘

12、输入(从第 1列开始)123回车45678回车则输出结果是_。(分数:2.00)A.1267B.1256C.1278D.124526.有以下程序:#includestdio.hiht fun(iht n,int*p)int f1,f2;if(n=1|,n=2)*p=1;elsefun(n-1,&f1);fun(n-2,&f2);*p=f1+f2;main()int s;fun(3,&s); printf(“%d/n“,s);程序的运行结果是_。(分数:2.00)A.2B.3C.4D.527.有以下程序,其中%u 表示按无符号整数输出:main()unsigned int x=0xFFFF;/*

13、 x 的初值为十六进制数*/printf(“%u/n“,x);程序运行后的输出结果是_。(分数:2.00)A.-1B.65535C.32767D.0XFFFF28.以下程序段中的变量已正确定义:for(i=0;i4;i+,i+)for(k=1;k3;k+);printf(“*“);程序段的输出结果是_。(分数:2.00)A.*B.*C.*D.*29.有以下程序:#includestdio.hmain()FILE *fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);fprintf(fp,“%d%d%d/n“,a0,a1,a2);fprintf(fp,“

14、%d%d%d/n“,a3,a4,a5);fclose(fp);fp=fopen(“d2.dat“,“r“);fscanf(fp,“%d%d/n“,&k,&n);printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是_。(分数:2.00)A.1 2B.1 4C.123 4D.123 45630.有三个关系 R、S 和 T如下: (分数:2.00)A.B.C.D.31.下列选项中不符合良好程序设计风格的是_。(分数:2.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto语句D.模块设计要保证高耦合、高内聚32.以下关于 typedef的叙述错误

15、的是_。(分数:2.00)A.用 typedef可以增加新类型B.typedef只是将已存在的类型用一个新的名字来代表C.用 typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef为类型说明一个新名,通常可以增加程序的可读性33.对下列二叉树:(分数:2.00)A.B.C.D.34.下列叙述中错误的是_。(分数:2.00)A.一个 C语言程序只能实现一种算法B.C程序可以由多个程序文件组成C.C程序可以由一个或多个函数组成D.一个 C函数可以单独作为一个 C程序文件存在35.以下不能定义为用户标识符是_。(分数:2.00)A.MainB._0C._intD

16、.sizeof36.有以下函数:fun(char * a,char * b)while(*a!=/0)&(*b!=/0)&(*a=*b)a+;b+;return(* a-*b);该函数的功能是_。(分数:2.00)A.计算 a和 b所指字符串的长度之差B.将 b所指字符串连接到 a所指字符串中C.将 b所指字符串连接到 a所指字符串后面D.比较 a和 b所指字符串的大小37.下列叙述中正确的是_。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据

17、结构可以有多种存储结构,且各种存储结构影响数据处理的效率38.若程序有宏定义:#define N 100 则以下叙述中正确的是_。(分数:2.00)A.宏定义中定义了标识符 N的值为整数 100B.在编译程序对 C源程序进行预处理时用 100替换标识符 NC.对 C源程序进行编译时用 100替换标识符 ND.在运行时用 100替换标识符 N39.若有定义:intw35,则以下不能正确表示该数组元素的表达式是_。(分数:2.00)A.*(*w+3)B.*(w+1)4C.*(*(w+1)D.*(&w00+1)40.下列叙述中正确的是_。(分数:2.00)A.break语句只能用于 switch语句

18、B.在 switch语句中必须使用 defaultC.break语句必须与 switch语句中的 case配对使用D.在 switch语句中不一定使用 break语句二、填空题(总题数:14,分数:30.00)41.对长度为 10的线性表进行冒泡排序,对坏情况下需要比较的次数为 1(分数:2.00)填空项 1:_42.一棵二叉树第六层(根节点为第一层)的节点数最多为 1。(分数:2.00)填空项 1:_43.下列软件系统结构图的宽度为_。(分数:2.00)填空项 1:_44.模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1 的作用是将测试数据传送给被测试

19、的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_45.在数据库系统中,实现各种数据管理功能的核心软件称为 1。(分数:2.00)填空项 1:_46.定义 char ch“$“;int i=1,j;执行 j! ch&i+以后,i 的值为 1。(分数:2.00)填空项 1:_47.下列程序运行时输入 1234567CR,则输出结果是_。#includestdio.hmain()int a=1,b;scanf(“%2d%2d“,&a,&b);printf(“%d %d/n“, a,b);(分数:2.00)填空项 1:_48.若有定义:int k;,以下程序段的输出结果是_。fo

20、r(k=2;k6;k+,k+)printf(“#%d“,k);(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是_。main()char c1,c2;for(c1=0,c2=9;c1c2;c1+,c2-)printf(“%c%c“,c1,c2);printf(“/n“);(分数:2.00)填空项 1:_50.以下程序的功能是输入任意整数给 n后,输出 n行由大写字母 A开始构成的三角形字符阵列图形。例如,输入整数 5时(注意:n 不得大于 10),程序运行结果如下:A B C D EF G H IJ K LM NO请填空完成该程序。main()int i,j,n;char ch=

21、A;scanf(“%d“,&n);if(n11)for(i=1;i=n;i+)for(j=1;jn-i+1;j+)printf(“%2c“,ch);10 ;11 ;else printf(“n is too large!/n“)printf(“/n“);(分数:4.00)填空项 1:_51.以下程序的输出结果是_。#includestdio.hmain()inta5=2,4,6,8,10,*p;p=a; p+;printf(“%d“,* p);(分数:2.00)填空项 1:_52.下面程序的运行结果是_。#includestdio.hint f(inta,int n)if(n1)return

22、a0+f(a+1,n-1);elsereturn a0;main()int aa10=1,2,3,4,5,6,7,8,9,10,s;s=f(aa+2,4); printf(“%d/n“,s);(分数:2.00)填空项 1:_53.有以下程序:int sub(int n) return(n/10+n%10); main()int x,y;scanf(“%d“,&x);y=sub(sub(sub(x);printf(“%d/n“,y);若运行时输入:1234回车,程序的输出结果是_。(分数:2.00)填空项 1:_54.以下程序运行后的输出结果是_。struct NODEint hum;struc

23、t NODE *next;main()structNODE s3=1,/0,2,/0,3,/0, *p, *q, *r;int sum=0;s0next=s+1;s1.next=s+2;s2.next=s;p=S;q=p-next;r=q-next;sum+=q=next-num;sum+=r-next-next-num;printf(“%d/n“,sum);(分数:2.00)填空项 1:_二级 C语言笔试-147 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下函数:int fun(char * s)char * t=s;while(

24、*t+);return(t-s)该函数的功能是_。(分数:2.00)A.比较两个字符串的大小B.计算 s所指字符串占用内存字节个数C.计算 s所指字符串的长度 D.将 s所指字符串复制到字符串 t中解析:解析 定义一个字符指针 t,并将字符指针 s的首地址赋给字符指针 t;通过 while语句将指针 t往下移到字符串最后一个字符后面的地址,指针 s始终指向首地址,将末地址减去首地址可以计算出字符串的长度。2.以下数组定义中错误的是_。(分数:2.00)A.intx30;B.int x231,2,3,4,5,6); C.intx31,2,3,4,5,6;D.mtx231,2,3,4,5,6;解析

25、:解析 二维数组赋初值时,第一个维数即行数可以省略,但是列数不能省略。因此选项 A、C 正确。选项 D是按数据在二维数组中的顺序初始化。在选项 B中,列维数的初始化格式跟定义的维数不一致,为错误选项。3.设有定义:char p1,2,3,*qp;,以下不能计算出一个 char型数据所占字节数的表达式是_。(分数:2.00)A.sizeof(p) B.sizeof(char)C.sizeof(*q)D.sizeof(p0)解析:解析 本题考查的重点是 sizeof()的运用。sizeof 用于返回其操作数(变量、类型)相对应数据类型的字节数。因此,选项 A是错误的,因为 p是一个地址,它既不是一

26、个数据类型,也不是数据变量。4.有以下程序:void f(int n,int * r)int r1=0;if(n%3=0)r1=n/3;else if(n%5=0)r1=n/5;else f(-n,&r1);*r=r1;main()intm=7,r;f(m,&r);printf(“%d/n“,r);程序运行后的输出结果是_。(分数:2.00)A.2 B.1C.3D.0解析:解析 题目中定义了一个指针变量 r作为形参 f()的函数。在主函数 main()中定义了两个变量 m和 r,同时给 m赋初值 7,调用函数 f(m, &r)并执行,函数 f()通过指针 r将最后的值返回。5.若变量已正确定义

27、,则以下语句的输出结果是_。s=32;s=32;printf(“%d“,s);(分数:2.00)A.-1B.0 C.1D.32解析:解析 为按二进制异或运算符,变量 s与其相等的数值异或的结果为 0。6.设变量已正确定义,则以下能正确计算 fn!的程序段是_。(分数:2.00)A.f=0; for(i=1;i=n;i+)f*=i;B.f=1;for(i=1;in;i+)f*=i;C.f=1; for(i=n;i1;i+)f*=i;D.f=1;for(i=n;i=2;i-)f*=i; 解析:解析 选项 A中,f 初值设为 0。则执行循环体后,所得的乘积值始终为 0,不符合题意。选项 B中,for

28、 循环条件是 in,则当 i为 n时即退出循环,所以求得的乘积值是(n-1)!,也不符合题意。选项C中,i 的初值为 n,且 i在每次执行循环体后都增加 1,则如果 n为大于 1的数,程序会陷入死循环。只有选项 D符合题意,求得 f的值为 n*(n-1)*(n-2)*2,即 n!。7.有以下程序:main()intp8=11,12,13,14,15,16,17,18,i=0,i=0;while(i+7)if(pi%2)j+=pi;printf(”%dn“,j);程序运行后的输出结果是_。(分数:2.00)_解析:解析 由循环语句“while(i+7)if(pi%2)j+Pi;”可知,当“pi%

29、2”为真,也就是非0时,累加 pid到 j上。而“pi%2”非 0,也就是 Pi为奇数,因此循环是累加数组 Pi11,12,13,14,15.16,17,188.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是限定在一端进行插入与删除的线性表,允许插入元素的一端为栈顶,允许删除元素的一端为栈底,故选项 C、D 是错误的。栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素则总是最先被插入而最后被删除的元素,即栈是按“先进后出”的原则组织数据的。9.若函数调用时的实参为变量时,以

30、下关于函数形参和实参的叙述中正确的是_。(分数:2.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不会占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元 解析:解析 本题考查的重点是形参与实参的存储单元是否一致。C 语言中,函数的形参和实参是分别占用不同的存储单元的,因此,选项 D是正确的。10.下列叙述中正确的是_。(分数:2.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量 C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关解

31、析:解析 本题考查的是算法的基本概念,包括时间复杂度和空间复杂度,算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。11.有以下程序:voidf(int*x,int * y)int t;t= *x;*x= *y;*y=t;main()inta8=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q=&a7;while(p)f(p,q);p+;q-;for(i=0;i8;i+)printf(“%d,“,ai);程序运行后的输出结果是_;(分数:1.00)_解析:解析 本题的函数 f是将两个指针所指的两个单元中的数值对换。指针 p指向数组 a的

32、第一个元素 a0而指针 q指向数组 a的元素 a7。调用 f将 p和 q所指元素值对换,也就是将 a0和 a7的值对换,对换后结果分别是 8、1。P+指向 a1,q-指向 a6J,继续循环,调用 f将 a1和 a 6交换,结果变成 7、1。以此类推,直到 p和 q相遇循环站束。数组 a的值由1,2,3,4,5,6,7,8变成了8,7,6,5,4,3,2,112.以下对结构体类型变量 td的定义中,错误的是_。(分数:1.00)A.typedef struct aaint n;float m;AA;AA td;B.struct aaint n;float m;td;struct aa td;C.

33、structint n;float m;aa; D.structint n;float m;td;struct aa td;解析:解析 本题的考点是 C语言结构体的定义和自定义类型 typedef。对于选项 A,首先用 typedef将结构体自定义为 AA,再用 AA定义结构体变量 td是正确的。对于选项 B首先定义结构体类型 aa,再用struct aa定义结构体变量 td也是正确的。选项 D直接用无名结构体定义结构体变量 td也是正确的。而选项 C中,首先用无名结构体定义了结构体变量 aa,再用结构体变量 aa去定义结构体变量 td是完全错误的。因此正确选项是 C。13.下列描述中正确的是

34、_。(分数:1.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发中的技术问题解析:解析 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程的目的就是要建造一个优良的软件系统,它所包含的内容概括为以下两点:软件开发技术,主要有软件开发方法学、软件工具、软件工程环境;软件工程管理,主要有软件管理、软件工程经济学。软件工程的主要思想是将工程化原则运用到软件开发过程,它包括 3个要素:方法、工具和过程。14.在数据库设计中,将 E-

35、R图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 数据库的逻辑设计主要工作是将 E-R图转换成指定 RDBMS中的关系模式。需求解析阶段的任务是通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的需求,然后在此基础上确定新系统的功能。概念设汁的目的则是解析数据间内在的语义关联,在此基础上建立一个数据的抽象模型。物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度以及有效利用存储空间。15.从工程管理角度,软件设计一般分为两步完成,它们是_。(分数:1.00)A

36、.概要设计与详细设计 B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计解析:解析 从工程管理角度来看软件设计一般分为两步完成,分别是概要设计和详细设计。16.设有定义 int a;float b;执行 scanf(“%2d%f“,&a,&b);语句时,若从键盘输入 876543.0回车,a 和 b的值分别是_。(分数:1.00)A.876和 543.000000B.87和 6.000000 C.87和 543.000000D.76和 543.000000解析:解析 “%2d”指定输入数据所占宽度为 2,&是 C语言中的求地址运算符。17.设变量 x和 y均已正确定义并赋值

37、,以下 if语句中,在编译时将产生错误信息的是_。(分数:1.00)A.if(x+);B.if(xy&y!=0);C.if(xy)x-else y+: D.if(y0);else x+;解析:解析 if 是 C语言的关键字,表达式两侧的圆括号不能少,最后一条语句足用花括号括起来的一组语句。选项 A和 B是在表达式后面跟了一条空语句,选项 D是在表达式后跟厂一组空语句。选项 C中的x-是表达式而不是语句。所以在编泽时会出现错误信息。18.下列叙述中正确的是_。(分数:1.00)A.软件测试的主要目的是发现程序中的错误 B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由

38、程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误解析:解析 软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误,软件测试是一个发现错误而执行程序的过程。软件调试的目的是发现错误的位置,并改正错误。19.已知字母 A的 ASC代码值为 65,若变量 kk为 char型,以下不能正确判断出 kk中的值为大写字母的表达式是_。(分数:1.00)A.kk=A&kk=ZB.!(kk=Akk=Z) C.(kk+32)=a&(kk+32)=zD.isalpha(kk)&(kk91)解析:解析 本题主要考查逻辑运算。对于正确判断 kk为大写字母的表达式,当表达式为真时 k

39、k为大写字母。大写字母的 ASCII代码值在 6590 之间,对应的小写字母的 ASCII代码值在 97122 之间,因此选项 A、C 都是正确的表达式。选项 D中 isalpha(kk)用于判断 kk是否是字母, ASCII 代码值小于 91的字母为大写字母,因此选项 D是正确的表达式。选项 B中的表达式可以转换为 kkA&.kkZ,无法判断 kk中的值是否为大写字母。20.有以下程序,其中函数 f的功能是将多个字符串按字典顺序排序:#includestringhvoidf(char*p,intn)char*t;int i,j;for(i=0;in-1;i+)for (j=i+1;jn;j+

40、)if(strcmp(pi,pj)0)t=pi;pi=pj;pj=t;main()char*p5=“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“;f(p,5);printf(“%d/n“,strlen(p1);程序运行后的输出结果是_。(分数:1.00)_解析:解析 函数 f的功能是将字符串数组中的每个字符串元素按照由小到大的顺序进行排列,调用f(p,5)后,字符串数组 p变为“aabdfg”,“abbd”,“abc”,“cd”,“dcdbe”21.若变量均已正确定义并赋值,以下合法的 C语言赋值语句是_。(分数:2.00)A.x=y=5; B.x=n%2.5;C.x+n

41、=iD.x=5=4+1;解析:解析 对于取模运算符“%”,不能用于浮点数,在表达式 B中,2.5 为浮点数,因此 B是错误的;在赋值表达式,其左值不能为表达式,因此 C是错误的;在赋值表达式,其左值不能为常数,因此 D是错误的,因为在“54+1”中,5 是常数,但出现在赋值表达式的左边。22.有以下程序:int a=4;int f(int n)int t=0;static int a=5;if(n%2) int a=6;t+=a+;elseint a;7;t+=a+;return t+a+;main()int s=a,i=0;for(;i2;i+)s+=f(i);printf(“%d/n“,s

42、);程序运行后的输出结果是_。(分数:2.00)A.24B.28 C.32D.36解析:解析 在主函数 main()中定义了两个变量 s和 i,同时给 s赋初值 a4,i 赋初值 0。当 i=0时。执行“s+f(i);”语句,调用 f()并将 i的初值 0 传递给形参 n。首先执行 if语句中内条件:n%2,若条件为假。则执行 else下的语句,a7,t7+07,使用 return返回 t,t7+(a+)7+512,此时a运算完后自增 1,变为 6;返回主函数中,s4+1216。当 i=1时,执行“s+=f(i);”语句,调用 f()并将 i的初值 1传递给形参 n。首先执行 if语句中的条件

43、:n%2,条件为真,执行 if下面的语句,t0,a6 t0+66,使用 return返回 t,t=6+6=12,返回主函数中,s16+12=28。最后输出的结果为 28。23.以下叙述中错误的是_。(分数:2.00)A.C语言是一种结构化程序设计语言B.结构化程序由顺序、分支、循环三种基本结构组成C.使用三种基本结构构成的程序只能解决简单问题 D.结构化程序设计提倡模块化的设计方法解析:解析 结构化程序由三种基本结构组成:顺序结构、循环结构、选择结构,已经证明,由三种基本结构组成的算法结构可以解决任何复杂问题。24.有以下程序:fun(int x,int y)return(x+y);main(

44、)int a=1,b=2,c=3,Sum;sum=fun(a+,b+,a+b),c+);printf(“%d“,sum);执行后的输出结果是_。(分数:2.00)A.6B.7C.8 D.9解析:解析 在 fun(a+,b+,a+b),c+)函数中先计算括号内的“(a+,b+,a+b)”逗号运算符,整个逗号表达式最后的值为 5;接下来调用 fun()函数,此时原句变为 fun(5,c+)。运算 c+表示在使用完 c后再将 c的值加 1,函数的返回值为 8。25.有以下程序:#includestdio.hmain()char c1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c“,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(“%c%c/n“,c5,c6);程序运行后,若从键盘输入(从第 1列开始)123回车45678

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

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

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