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

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

1、二级 C语言笔试-351 及答案解析(总分:99.00,做题时间:90 分钟)一、选择题(总题数:50,分数:64.00)1.有以下程序:#includestdio.hmain()int c;while(c=getchar()!=/n)switch(c-2)case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+4);case 4:putchar(c+4);break;printf(“/n“);输入以下数据,CR代表一个回车符,2743CR程序的输出结果是( )。A) 877 B) 966 C) 778 D) 766(分数:

2、1.00)A.B.C.D.2.以下语句或语句组中,能正确进行字符串赋值的是( )。A) char *sp; *sp=“right!“; B) char s10; s=“right!“;C) char s10; *s=“right!“; D) char *sp=“right!“;(分数:1.00)A.B.C.D.3.有以下程序:void f(int b)int i;for(i=2;i6;i+)bi*=2;main()int a10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf(“%d,“,ai);程序运行后的输出结果是_。A) 1,2,3,4

3、,5,6,7,8,9,10, B) 1,2,6,8,10,12,7,8,9,10C) 1,2,3,4,10,12,14,16,9,10, D) 1,2,6,8,10,12,14,16,9,10,(分数:2.00)A.B.C.D.4.若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后,a 的值是_。A-3 B9 C-12 D6(分数:2.00)A.B.C.D.5.下列不属于软件调试技术的是_。A) 强行排错法 B) 集成测试法 C) 回溯法 D) 原因排除法(分数:1.00)A.B.C.D.6.软件生命周期中所花费用最多的阶段是( )。A) 详细设计 B) 软件编码 C)

4、软件测试 D) 软件维护(分数:1.00)A.B.C.D.7.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序的易读性(分数:1.00)A.B.C.D.8.下列程序的输出结果是#include“stdio.h“#define N3#define M3void fun(int aMN)printf(“%d/n“,*(a1+2);main()int aMN;int i,j;for(i=0;iM;i+)for(j=0;jN;j+)aij=i+j-(i-j);fun(a);A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B.C.D.

5、9.设变量已正确定义,则以下能正确计算 f=n!的程序段是_。(A) f=0; for(i=1;i=n;i+)f*=i;(B) f=1; for(i=1;ispan(C) f=1; for(i=n;i1;i+)f*=i;(D) f=1; for(i=n;i=2;i-)f*=i;(分数:1.00)A.B.C.D.10.下列关于逻辑运算符两侧运算对象的叙述中正确的是( )。 A) 只能是整数 0或 1 B) 只能是整数 0或非 0整数 C) 可以是结构体类型的数据 D) 可以是任意合法的表达式(分数:1.00)A.B.C.D.11.C语言中各种基本数据类型的存储空间长度排列为 ( )A) char

6、longintfloatdouble B) doublefloatlongintcharC) charintlongfloatdouble D) floatintlongchardouble(分数:1.00)A.B.C.D.12.以下叙述中正确的是_。A) 局部变量说明为 static存储类,其生存期将得到延长B) 全局变量说明为 static存储类,其作用域将被扩大C) 任何存储类的变量在未赋初值时,其值都是不确定的D) 形参可以使用的存储类说明符与局部变量完全相同(分数:1.00)A.B.C.D.13.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是( )A) 文件打开时,原有文件

7、内容不被删除,位置指针移到文件末尾,可以进行添加或读操作B) 文件打开时,原有文件内容不被删除,只能进行读操作C) 文件打开时,原有文件内容被删除,只能进行写操作D) 以上三种说法都不正确(分数:1.00)A.B.C.D.14.对两个数组 a和 b进行下列初始化:char m=“1234567“;char n= 1,2,3,4,5,6,7;则下列叙述正确的是( )。A) 数组 m与数组 n完全相同B) 数组 m与数组 n长度相同C) 数组 m比数组 n长 1D) 数组 m与数组 n中都存放字符串(分数:2.00)A.B.C.D.15.执行以下程序段时,输出结果为( )。double a;a=3

8、33.721568;printf(“%-62e/n“,a);A) 输出格式描述符的域宽不够,不能输出B) 33.721568e+01C) 3.3e+02D) -3.33e2(分数:1.00)A.B.C.D.16.下面程序main()int x=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1) x=1:else if(ok2)x=10;x=-1;printf(“%d/n“,x);的输出是_。A) -1 B) 0 C) 1 D) 不确定的值(分数:2.00)A.B.C.D.17.若有定义:int a23; ,以下选项中对 a数组元素正确引用的是(

9、)。A) a2!1 B) a23 C) a03 D) a11!1(分数:1.00)A.B.C.D.18.下列程序的输出结果是( )。main()char a7=“a0/0a0/0“;int i,j;i=sizeof(a);j=strlen(a);printf(“%d %d/n“,i,j);A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:1.00)A.B.C.D.19.下面程序的运行结果是( )。#include stdiohmain()int a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%d/n“,a,b);A) a=3,b=11 B

10、) a=2,b=8 C) a=1,b=-1 D) a=4,b=9(分数:2.00)A.B.C.D.20.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。A) 只能是整数 0或 1 B) 只能是整数 0或非 0整数C) 可以是结构体类型的数据 D) 可以是任意合法的表达式(分数:2.00)A.B.C.D.21.C语言程序的基本单位是 ( )A) 函数 B) 过程 C) 字符 D) 语句(分数:1.00)A.B.C.D.22.下列函数定义中,会出现编译错误的是_。A) max(int x,int y,int *z) *z=xy?x:y; z=xy?x:y;return z;B) int max(

11、int x,y)int z;C) max(int x,int y) int z; z=xy?x:y;return(z);D) int max(int x,int y)return xy?x:y;(分数:1.00)A.B.C.D.23.下列程序的输出结果是( )。#includestdio.hmain()int a=0,i;for(i=1;i5;i+)switch(i)case 0:case 3:a+=1;case 1:case 2:a+=2;default:a+=3;printf(“%d“,A) ;A) 19 B) 18C) 6 D) 8(分数:2.00)A.B.C.D.24.有以下程序#in

12、clude stdio.hmain()int a=7;while(a-);pfintf(“%d/n“,a);程序运行后的输出结果是( )。A)-1 B)0 C)1 D)7(分数:2.00)A.B.C.D.25.有以下程序main()int a=0,b=0;a=10; /* 给 a赋值b=20; 给 b赋值 */printf(“ab=%d/n“,ab);/* 输出计算结果 */程序运行后的输出结果是_。A) ab=10 B) ab=30 C) 30 D) 出错(分数:1.00)A.B.C.D.26.数据处理的最小单位是( )。A) 数据 B) 数据元素 C) 数据项 D) 数据结构(分数:1.0

13、0)A.B.C.D.27.有以下程序main( )int i=10,j=1;printf(“%d,%d/n“,i-,+j);执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,1(分数:1.00)A.B.C.D.28.若有定义:int a= 7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是( )。 A) 2.500000 B) 2.750000 C) 3.500000 D) 0.000000(分数:1.00)A.B.C.D.29.若有程序片段:int a120,* p3,* *pp,ifor (i0;i3;i+)piwhil

14、e(iN)scanf(“%d“, );在下划线处应填入的是( )。A) x+i B) scanf(“%d%d“,while(m!=n)while(mn)m-=n;while(nm)n-=m;printf(“m=%d/n“,m);A) m=3 B) m=2 C) m=1 D) m=0(分数:2.00)A.B.C.D.33.有以下程序int f(int b 4)int i,j,s=0;for(j=0; j4; j+)i=j;if (i2) i=3-j;s+=bi j;return s;main ( )int a4 4 =1,2,3,4, 0,2,4,6, 3,6,9,12), 3,2,1,0;pr

15、int f ( “%d/n“ , f(a);执行后的输出结果是A) 12 B) 11 C) 18 D) 16(分数:1.00)A.B.C.D.34.有以下程序段char ch; int k;ch=a; k=12;pnntf(“%c,%d,“,ch,ch,k); printf(“k 二%d/n“,k);已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D.35.对长度为 n的线性表进行顺序查找,在

16、最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C.D.36.下面程序的输出是_。typedef unionlong x2;int y4;char z8;MYTYPE;MYTYPE them;main()printf(“%d/n“,sizeof(them);A) 32 B) 16 C) 8 D) 24(分数:1.00)A.B.C.D.37.计算机能直接执行的程序是_。A) 源程序 B) 目标程序 C) 汇编程序 D) 可执行程序(分数:1.00)A.B.C.D.38.有 3个关系 R、S 和 T如下:(分数:2.00)A.B.C.D

17、.39.若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是A. int *i = NULL;scanf(“%d“, i);B. float *f = NULL;*f = 10.5;C. char t = m, *c = *c = D. long *L;L = /0;(分数:1.00)A.B.C.D.40.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_。A) 编码设计 B) 测试阶段C) 运行阶段 D) 物理设计(分数:1.00)A.B.C.D.41.已定义 c为字符型变量,则下列语句中正确的是A) c=97; B) c=“97“; C) c=97; D) c

18、=“a“;(分数:1.00)A.B.C.D.42.有以下程序:void fun(int *a,int i,int i)int t;if(ij)t=ai;ai=aj;ai=t;i+; j-;fun(a,i,j);main()int x=2,6,1,8),i;fun(x,0,3),for(i=0;i4;i+) printf(“%2d“,xi);printf(“/n“);程序运行后的输出结果是( )。A) 1268 B) 8621 C) 8162 D) 8612(分数:1.00)A.B.C.D.43.以下能正确定义且赋初值的语句是 _。A) int n1=n2=10; B) char c=32;C)

19、 float f=f+1.1; D) double x=12.3E2.5;(分数:1.00)A.B.C.D.44.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是A) if(ab)else k=0;B) iff(ab)(bc) k=1;else k=0;C) iffa=b) k=0;else iffb=c) k=1;D) if(ab) k=1;else if(bc) k=1;else k=0;(分数:1.00)A.B.C.D.45.以下程序的运行结果是_。#includestdio.hmain()int a=1,2,3,4,5,6,7,8,9,10,11,12;int*p=a+

20、5,*q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);A) 运行后报错 B) 6 6C) 6 12 D) 5 5(分数:1.00)A.B.C.D.46.下列定义数组的语句,正确的是( )。 A) int N=10;int xN;B) #define N 10 int xN; C) int x010; D) int x;(分数:2.00)A.B.C.D.47.有以下程序:#include stdio. hint 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

21、+ =si;prinff( “% d /n“, d);程序运行后的输出的结果是( ).A) 9 B) 11 C) 19 D) 21(分数:1.00)A.B.C.D.48.有以下程序:#include stdio.hmain()printf(“%d/n“,NULL)“程序运行后的输出结果是( )。A) 0 B) 1 C) -1 D) NULL没定义,出错(分数:1.00)A.B.C.D.49.以下叙述中正确的是( )。A预处理命令行必须位于 C源程序的起始位置B在 C语言中,预处理命令行都以“#”开头C每个 C程序必须在开头包含预处理命令行:#includestdio.hDC 语言的预处理不能实

22、现宏定义和条件编译的功能(分数:1.00)A.B.C.D.50.C语言结构体类型变量在程序运行期间( )。A) TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B) 所有的成员一直驻留在内存中C) 只有最开始的成员驻留在内存中D) 部分成员驻留在内存中(分数:2.00)A.B.C.D.二、填空题(总题数:19,分数:35.00)51.下面的 if语句与 y=(x=10)?3*x-11:(x1)?x:2*x-1;的功能相同,请补充完整。if(_)if(_)y=2*x-1;else y=x;else y=3*x-11;(分数:1.00)填空项 1:_52.一棵二叉树第六层(根结点为第一层)的结

23、点数最多为 1 个。(分数:3.00)填空项 1:_53.下面的程序用来统计文件中字符的个数。请填空。# includestdiohmain( )FILE *fP;long num0;if( (fp=fopen(“fnamedat“,“r“)NULL)printf(“Cant open file! /n“);sxit(0);while _ fgetc(fp);num;printr(“num%d/n“,num);fclose (fp);(分数:1.00)填空项 1:_以下程序段的定义语句中,x1的初值是_,程序运行后输出的内容是_。#includestdio.hmain( )int x=1,2,

24、3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i;for(i=0;i4;i+)pi=dp=x+x-y*y;main()im a=4,b=3,c=9,d=8;t(a,b,c,d);printf(“%d%d/n“,c,d);(分数:2.00)填空项 1:_59.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为 1。(分数:2.00)填空项 1:_60.设有定义:FILE*fw; ,请将以下打开文件的语句补充完整,以便可以向文本文件“readme.txt”的最后续写内容。fw=fopen(

25、“readme. txt“, _);(分数:2.00)填空项 1:_61.阅读下面语句,则程序的执行结果是_。#include “stdio.h“main()int a=-1,b=1,k;if(+a0)!(b-=0)printf(“%d,%d/n“,a,b);else printf(“%d,%d/n“,b,a);(分数:2.00)填空项 1:_62.以下条件表达式可计算:1+|a|的值,请填空。a=0?_:_(分数:1.00)填空项 1:_63.设有说明struct DATE int year;int month;int day;请写出一条定义语句,该语句定义 d为上述结构体类型变量,并同时为

26、其成员 year、month、day 依次赋初值 2006、10、1:_。(分数:1.00)填空项 1:_64.函数 mystrlen(char *s)的功能是求字符串 s的长度,请填空。mystrlen(char *s)char *t:t=s;while(_)t+;return(t-s);(分数:2.00)填空项 1:_65.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 1。(分数:1.00)填空项 1:_66.设有定义:struct personint ID;char name12;p;请将 scanf(“%d“,_);语句补充完整,使其能够为结构体变量 p的

27、成员 ID正确读入数据。(分数:2.00)填空项 1:_67.下列程序段中循环体的执行次数是_。a15;b0,dob+2;a-2+b;while(a0);(分数:2.00)填空项 1:_68.有以下语句段:int n1=10,n2=20;printf(“_“,n1,n2);要求按以下格式输出 n1和 n2的值:n1=10n2=20每个输出行从第一列开始,请填空。(分数:2.00)填空项 1:_二级 C语言笔试-351 答案解析(总分:99.00,做题时间:90 分钟)一、选择题(总题数:50,分数:64.00)1.有以下程序:#includestdio.hmain()int c;while(c

28、=getchar()!=/n)switch(c-2)case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+4);case 4:putchar(c+4);break;printf(“/n“);输入以下数据,CR代表一个回车符,2743CR程序的输出结果是( )。A) 877 B) 966 C) 778 D) 766(分数:1.00)A. B.C.D.解析:解析 本题通过一个 while循环向键盘缓冲区读取字符,直到读到的字符是回车键结束循环。当读到的 c为2时,c-2为 0, switch 语句中没有 case 0:所以没有

29、输出,继续读下一个;当 c为7时,c-2=5,也没有输出;当 c为4时,c-2=2,执行 case 2:后面的语句输出一个字符c+4=4+4=8;当 c为3时,c-2=1,执行 case 1:后面的语句,连续输出两次 c+4=3+4=7。故程序输出结果是 877,应该选择 A。2.以下语句或语句组中,能正确进行字符串赋值的是( )。A) char *sp; *sp=“right!“; B) char s10; s=“right!“;C) char s10; *s=“right!“; D) char *sp=“right!“;(分数:1.00)A.B.C.D. 解析:在选项 A中,首先定义了一个

30、字符指针 sp,然后将个字符串赋给甲所指的地址,这是错误的。因为 sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项 B首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项 C首先定义了个字符数组,然后将个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项 D是定义一个字符指针 sp,同时使其指向一个字符串常量,即将个常字符型指针赋给 sp。这是可行的。所以,4 个选项中选项 D符合题意。3.有以下程序:void f

31、(int b)int i;for(i=2;i6;i+)bi*=2;main()int a10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf(“%d,“,ai);程序运行后的输出结果是_。A) 1,2,3,4,5,6,7,8,9,10, B) 1,2,6,8,10,12,7,8,9,10C) 1,2,3,4,10,12,14,16,9,10, D) 1,2,6,8,10,12,14,16,9,10,(分数:2.00)A.B. C.D.解析:解析 本题在调用函数时,实参是数组名也是把数组 a的首地址传递给形参,由条件 i=2且 i6得出函数将列

32、以 a2开始的 4个元素(3、4、5、6)进行乘 2操作,结果分别是 a2=6、a3=8、a4=10、a5=12。a0、a1、a6、a7、a8、a9的值没有发生变化。4.若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后,a 的值是_。A-3 B9 C-12 D6(分数:2.00)A.B.C. D.解析:5.下列不属于软件调试技术的是_。A) 强行排错法 B) 集成测试法 C) 回溯法 D) 原因排除法(分数:1.00)A.B. C.D.解析:解析 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。6.软件生命周期中所花费用最多的

33、阶段是( )。A) 详细设计 B) 软件编码 C) 软件测试 D) 软件维护(分数:1.00)A.B.C.D. 解析:解析 软件维护是软件生命周期的最后一个阶段,也是持续时间最长,花费最多的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。7.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序的易读性(分数:1.00)A.B.C.D. 解析:解析 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。8.下列程序的输出结果是#inclu

34、de“stdio.h“#define N3#define M3void fun(int aMN)printf(“%d/n“,*(a1+2);main()int aMN;int i,j;for(i=0;iM;i+)for(j=0;jN;j+)aij=i+j-(i-j);fun(a);A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B. C.D.解析:解析 若有以下定义:int a34,i,j;且当 0=i3,0=j4,则可以有以下几种方式来引用数组中的第 i行,第 j列的元素:aaj,*(ai+j),*(*(a+i)+j),(*(a+i)j,*( for(i=1;i=n;i+)f*=

35、i;(B) f=1; for(i=1;ispan(C) f=1; for(i=n;i1;i+)f*=i;(D) f=1; for(i=n;i=2;i-)f*=i;(分数:1.00)A.B.C.D. 解析:10.下列关于逻辑运算符两侧运算对象的叙述中正确的是( )。 A) 只能是整数 0或 1 B) 只能是整数 0或非 0整数 C) 可以是结构体类型的数据 D) 可以是任意合法的表达式(分数:1.00)A.B.C.D. 解析:解析 逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为 0(“假”)。11.C语言中各种基本数据类型的存储空间长度排列为 (

36、)A) charlongintfloatdouble B) doublefloatlongintcharC) charintlongfloatdouble D) floatintlongchardouble(分数:1.00)A.B.C. D.解析:12.以下叙述中正确的是_。A) 局部变量说明为 static存储类,其生存期将得到延长B) 全局变量说明为 static存储类,其作用域将被扩大C) 任何存储类的变量在未赋初值时,其值都是不确定的D) 形参可以使用的存储类说明符与局部变量完全相同(分数:1.00)A. B.C.D.解析:13.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是

37、( )A) 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作B) 文件打开时,原有文件内容不被删除,只能进行读操作C) 文件打开时,原有文件内容被删除,只能进行写操作D) 以上三种说法都不正确(分数:1.00)A. B.C.D.解析:解析 本题考查文件使用方式标识符,以“a+”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。14.对两个数组 a和 b进行下列初始化:char m=“1234567“;char n= 1,2,3,4,5,6,7;则下列叙述正确的是( )。A) 数组 m与数组 n完全相同B) 数

38、组 m与数组 n长度相同C) 数组 m比数组 n长 1D) 数组 m与数组 n中都存放字符串(分数:2.00)A.B.C. D.解析:解析 本题考查字符数组和字符串赋值给数组的些区别。语句“char m=“1234567;”定义了一个字符型数组并进行了初始化,C 语言规定,在字符串的末尾自动加上串结束标记,/0,因此数组 m的长度是 8;而数组 n是按照字符方式对数组进行初始化,系统不会自动加上串结束标记0,因此数组 n的长度是 7。15.执行以下程序段时,输出结果为( )。double a;a=333.721568;printf(“%-62e/n“,a);A) 输出格式描述符的域宽不够,不能

39、输出B) 33.721568e+01C) 3.3e+02D) -3.33e2(分数:1.00)A.B.C. D.解析:解析 格式输出符为 e,数据将按科学计数形式输出。-控制数据左对齐。所以,选项 C正确。16.下面程序main()int x=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1) x=1:else if(ok2)x=10;x=-1;printf(“%d/n“,x);的输出是_。A) -1 B) 0 C) 1 D) 不确定的值(分数:2.00)A. B.C.D.解析:解析 第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三

40、个判断如此循环,在打印输出语句的前一行,程序给变量 x赋了值,为-1,所以,无论前期如伺变化,最后的 x值依然为-1。17.若有定义:int a23; ,以下选项中对 a数组元素正确引用的是( )。A) a2!1 B) a23 C) a03 D) a11!1(分数:1.00)A.B.C.D. 解析:解析 本题主要考查的是二维数组的运用。本题定义的二维数组 a23,其下标范围分别是01 和 02。因此,选项 A)、B)和 C)都不正确。选项 D)中,表达式 11 的值是“假”,可以被看做整数“0”,表达式!1 的值也是“假”,所以整个 a11!1就是 a00,这是对 a数组元素的正确引用,故应该

41、选择 D)。18.下列程序的输出结果是( )。main()char a7=“a0/0a0/0“;int i,j;i=sizeof(a);j=strlen(a);printf(“%d %d/n“,i,j);A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:1.00)A.B.C. D.解析:解析 函数 sizeof(a)的功能是求出字符串 a中的字符占用存储空间的大小,由于字符数组 a有长度为 7,所以 i=7;函数 strlen(a)的功能是:求出字符串 a的长度。而每个字符串都以/0为字符串的结束标记,所以 j的值等于 2。19.下面程序的运行结果是( )。#include std

42、iohmain()int a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%d/n“,a,b);A) a=3,b=11 B) a=2,b=8 C) a=1,b=-1 D) a=4,b=9(分数:2.00)A.B. C.D.解析:解析 本题考查两个知识点:自加自减运算符和 do -while循环语句。do -while 循环条件是 b-0,所以循环体语句只执行一次。20.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。A) 只能是整数 0或 1 B) 只能是整数 0或非 0整数C) 可以是结构体类型的数据 D) 可以是任意合法的表达式(分数:2.00)

43、A.B.C.D. 解析:解析 逻辑运算的对象可以是 C语言中任意合法的表达式。21.C语言程序的基本单位是 ( )A) 函数 B) 过程 C) 字符 D) 语句(分数:1.00)A. B.C.D.解析:22.下列函数定义中,会出现编译错误的是_。A) max(int x,int y,int *z) *z=xy?x:y; z=xy?x:y;return z;B) int max(int x,y)int z;C) max(int x,int y) int z; z=xy?x:y;return(z);D) int max(int x,int y)return xy?x:y;(分数:1.00)A.B.

44、 C.D.解析:解析 在 C语言中,不可以在函数的参数声明列表中用一个类型名指定多个参数。故选项 B是错误的。其正确的表示方式应为:int max(int x,int y)或int max(x,y)int x,y;23.下列程序的输出结果是( )。#includestdio.hmain()int a=0,i;for(i=1;i5;i+)switch(i)case 0:case 3:a+=1;case 1:case 2:a+=2;default:a+=3;printf(“%d“,A) ;A) 19 B) 18C) 6 D) 8(分数:2.00)A. B.C.D.解析:解析 本题考查 switch

45、语句。当 i=1时,执行 case 1,因为没有遇到 break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当 i=2时,执行 case 2,因为没有遇到 break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当 i=3时,执行 case 3,a=a+1=11,因为没有遇到 break 语句,所以依次往下运行,a=a+2=13,a=a+3=16;当 i=4时,执行 default,a=a+3=19,结束循环。24.有以下程序#include stdio.hmain()int a=7;while(a-);pfintf(“%d/n“,a);程序运行后的输出结果是( )。A

46、)-1 B)0 C)1 D)7(分数:2.00)A. B.C.D.解析:解析 在 while语句中,先判断 while后面的表达式是否为 0,如果为 0,则退出循环,否则执行循环体。在本题中,当变量 a的值经过几次循环后,其值等于 0时,退出 while循环语句,变量 a再执行自减运算,所以其值等于-1。25.有以下程序main()int a=0,b=0;a=10; /* 给 a赋值b=20; 给 b赋值 */printf(“ab=%d/n“,ab);/* 输出计算结果 */程序运行后的输出结果是_。A) ab=10 B) ab=30 C) 30 D) 出错(分数:1.00)A. B.C.D.解析:评析:在 C语言中,注释是用于协助读者更好地理解程序,它不会被系统编译执行,此题中第处的注释内容包括:“/*给 a赋值 b=20; 给 b赋值 */”,故本题中“b=20;”在程序中不起作用,所以输出语句执行的 ab 的值为 100 的值,即输出为“ab=10”。26.数据处理的最小单位是( )。A) 数据 B) 数据元素 C) 数据项 D) 数据结构(分数:1.00)A.B.

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

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

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