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

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

1、二级 C语言笔试-134 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.G)w,one(分数:1.00)A.n,twoB.t,oneC.O,two2.关系数据库的概念模型是()的集合。(分数:1.00)A.关系模型B.关系模式C.关系子模式D.存储模式3.信息隐蔽的概念与下述哪一种概念直接相关?(分数:1.00)A.软件结构定义B.模块独立性C.模块类型的划分D.模块耦合度4.下列关于单目运算符+、-的叙述中正确的是(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char型变量和 int型变量,但不能是

2、float型变量C.它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D.它们的运算对象可以是 char型变量、int 型变量和 float型变量5.数据的存储结构是指(分数:1.00)A.数据所占的存储空间量B.数据的逻辑结构在计算机中表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据6.设有如下说明typedef structint n;char c;double x;STD;则以下选项中,能正确定义结构体数组并赋初值的语句是(分数:1.00)_7.有以下程序main()unionunsigned int n;unsigned char c;ul;

3、u1.C=A;pfintf(“%c/n“,u1.n);执行后输出结果是(分数:1.00)A.产生语法错B.随机值C.AD.658.有以下程序main()int i=1,j=1,k=2;if(j+k+)if(ij)t=ai;ai=aj;aj=t;fun(a,+i,-j);main()int a=1,2,3,4,5,6,i;fun(a,0,5);for(i=0;i6;i+)printf(“%d“,ai);执行后输出结果是(分数:1.00)A.6 5 4 3 2 1B.4 3 2 1 5 6C.4 5 6 1 2 3D.1 2 3 4 5 611.有以下程序void f(int x,int y)in

4、t t;if(xy) t=x;x=y;y=t;main()int a=4,b=3,c=5;f(a,b) ;f(a,c) ;f(b,c) ;printf(“%d,%d,%d/n“,a,b,c) ;执行后输出结果是(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,512.下列叙述中正确的是(分数:1.00)A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型13.在深度为 5的满二叉树中,结点的个数为(分数:1.00)A.32B.31C.16D.1514.以下程序企图把从终端输入的

5、字符输出到名为 abctxt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#includestdiohmain()FILE*fout;char ch;four=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#)fputc(ch,fout);ch=fgetc(stdin);felose(fout);出错的原因是(分数:1.00)A.函数 fopen调用形式错误B.输入文件没有关闭C.函数 fsetc调用形式错误D.文件指针 stdin没有定义15.有以下程序main()int a3=1,2,3,4,5,0,(*p(分数:1.00)A.

6、3,i;pa=a;for(i=0;i3;i+)if(i2)Pa1i=pa1i-1;else pa1i=1;printf(“%d/n“,a01+a11+a12);执行后输出结果是 A) 7B.6C.8D.无确定值16.有以下程序main()char a,b,c,*d;a=/;b=/xbc;c=/0xab;d=“/0127“;pfintf(“%c%c%c%c/n“,a,b,c,*d) ;编译时出现错误,以下叙述中正确的是(分数:1.00)A.程序中只有 a=/;语句不正确B.b=/xbc;语句不正确C.d=“/0127“;语句不正确D.a=/;和 c=,0xab;语句都不正确17.若有以下程序段(

7、n 所赋的是八进制数)int m=32767,n=032767;printf(“%d,%o/n“,m,n);执行后输出结果是(分数:1.00)A.32767,32767B.32767,032767C.32767,77777D.32767,07777718.以下叙述中正确的是(分数:1.00)A.全局变量的作用域一定比局部变量的作用域范围大B.静态(static) 类型变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值19.以下程序段中,能够通过调用函数 fun,使 main函数中的指针变量 p指向一个合法

8、的整型单元的是(分数:1.00)A.main() int*p; fun(p); int fun(int *p) int s;p=B.main()int*p;fun(*p=C.#includestdlibh main() int*p; fun(printf(“%d,%d/n“,i-,+j);执行后输出结果是(分数:1.00)A.9,2B.10,2C.9,1,D.10,121.有以下程序main()int i;for(i=0;3;i+)switch(i)csse 1: printf(“%d“,i);case 2: printf(“%d“,i);default: printf(“%d“,i);执行后

9、输出结果是(分数:1.00)A.011122B.012C.012020D.12022.以下叙述中不正确的是(分数:1.00)A.C语言中的文本文件以 ASCII码形式存储数据B.C语言中对二进制文件的访问速度比文本文件快C.C语言中,随机读写方式不适用于文本文件D.C语言中,顺序读写方式不适用于二进制文件23.设 char型变量 x中的值为 10100111,则表达式(2+x)(3)的值是(分数:1.00)A.10101001B.10101000C.11111101D.0101010124.若有以下定义和语句#includestdiohint a=4,b=3,*p,*q,*w;p=q=w=q;

10、q=NULL;则以下选项中错误的语句是(分数:1.00)A.*q=0;B.w=p;C.*p=a;D.*p=*w;25.若要说明一个类型名 STP,使得定义语句 STPs;等价于 char*s;以下选项中正确的是(分数:1.00)A.typedef STP char *sB.typedef*char STP;C.typedef STP *char;D.typedef char*STP;26.C语言中用于结构化程序设计的三种基本结构是(分数:1.00)A.顺序结构、选择结构、循环结构B.if,switch、breakC.for、while、do-whileD.if,for、continue27.以

11、下能正确定义数组并正确赋初值的语句是(分数:1.00)A.int N=5,bNN;B.int a12=1,3;C.int c21=1,2,3,4;D.int d32=1,2,34;28.设有如下定义struct sschar name10;int age;char sex;std3,*p=std;下面各输入语句中错误的是(分数:1.00)A.scanf(“%d“,continue;i+;s+=i;while(i7);printf(“%d/n“,s);执行后输出结果是(分数:1.00)A.16B.12C.28D.2139.有以下程序main()int m3=1,4,7,2,5,8,3,6,9;i

12、nt i,j,k=2;for(i=0;i3;i+)printf(“%d“,mki);执行后输出结果是(分数:1.00)A.4 5 6B.2 5 8C.3 6 9D.7 8 940.有以下程序main()int p7=11,13,14,15,16,17,18,i=0,k=0;while(i7i+;printf(“%d/n“,k);执行后输出结果是(分数:1.00)A.58B.56C.45D.2441.有以下程序main(int argc,char *argv)int n,i=0;while(argv1i!=/0)n=fun();i+;printf(“%d/n“,n*argc) ;int fun(

13、)static int s=0;s=-1;return s;假设程序经编译、连接后生成可执行文件 examexe,若键入以下命令行cxam123回车则运行结果为(分数:2.00)A.6B.8C.3D.442.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(intxN)int i=0;while(iN)seanf(“%d“,_);在下划线处应填入的是(分数:2.00)A.x+iB. int f2(int x,int y)return xy?y:x; main()int a=4,b=3,c=5,d,e,f;d=f1(a,b) ; d=f1(

14、d,c) ;e=f2(a,b) ; e=f2(e,c) ;f=a+b+c-d-e;printf(“%d,%d,%d/n“,d,f,e);执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3D.3,5,449.有以下程序main()char atr=“xyz“,*ps=str;while(*ps)ps+;for(ps-;ps-str0;ps-) puts(ps);执行后输出结果是(分数:2.00)A.yz xyzB.xyzC.zyzxyzD.xxyxyz50.下列叙述中,不正确的是(分数:2.00)A.算法的执行效率与数据的存储结构有关B.算法的空间复杂度是指执行这个算法

15、所需要的内存空间C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.算法的时间复杂度是指执行这个算法所需要的时间二、填空题(总题数:18,分数:40.00)51.算法的复杂度主要包括 【1】 复杂度和空间复杂度。(分数:2.00)填空项 1:_52.数据的 【2】 结构在计算机存储空间中的存放形式称为数据的存储结构或物理结构。(分数:2.00)填空项 1:_53.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于 【3】 测试。(分数:2.00)填空项 1:_54.数据库的设计通常可以分为 4个步骤:需求分析、概念设计、 【4】 和物理设计。(分数:2.

16、00)填空项 1:_55.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 【5】 。(分数:2.00)填空项 1:_56.若有语句int i=-19,j=i%4;printf(“%d/n“,j);则输出结果是 【6】 。(分数:2.00)填空项 1:_57.若有程序main()int i,j;scanf(“i=%d,j=%d“,a=b;b=t;if(ac)t=a;a=c;c=t;pfintf(“%d%d%d/n“,a,b,c) ; 执行后输出结果是 【9】 。(分数:2.00)填空项 1:_60.若有以下程序main()int a44=1,2,

17、-3,-4,0,-12,-13,14,-21,23,0,-24,-21,32,-33,0;int i,j,s=0;for(i=0;i4;i+)for(j=0;j4;j+)if(aij0)continue;if(aij=0)break;s+=aij;printf(“%d/n“,s);执行后输出结果是 【10】 。(分数:2.00)填空项 1:_61.若有以下程序main()char a;a=H-A+0;printf(“%c/n“,A) ;执行后输出结果是 【11】 。(分数:2.00)填空项 1:_62.若有以下程序 int f(int x,int y)return(y-x)*x;main()i

18、nt a=3,b=4,c=5,d;d=f(f(3,4),f(3,5);printf(“%d/n“,d) ; 执行后输出结果是 【12】 。(分数:2.00)填空项 1:_63.函数 YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下11 11 2 11 3 3 11 4 6 4 1其构成规律是:(1)第 0列元素和主对角线元素均为 1(2)其余元素为其左上方和正上方元素之和(3)数据的个数每行递增 1请将程序补充完整。#define N 6void YangHui(int xNN)int i,j;x00=1;for(i=1;iN;i+)xi0= 【13】 =1;for(j

19、=1;ji;j+)xij= 【14】 ;(分数:4.00)填空项 1:_64.以下函数的功能是删除字符串 s中的所有数字字符。请填空。void dele(char *s)int n=0,i;for(i=0;si;i+)if( 【15】 )sn+=si;sn= 【16】 ;(分数:4.00)填空项 1:_65.设函数 findbig已定义为求 3个数中的最大值。以下程序将利用函数指针调用 findbig函数。请填空。main()int findbig(int,int,int);int(*f)(),x,y,z,big; f= 【17】 ;seanf(“%d%d%d“,struet ss *link

20、;x,y,z;且已建立如下图所示链表结构:(分数:2.00)填空项 1:_68.已有文本文件 testtxt,其中的内容为:Hello,everyone!。以下程序中,文件 testtxt 已正确为“读”而打开,由此文件指针 fr指向该文件,则程序的输出结果是 【20】 。#includestdio.hmain()FILE*fr; char str40;fgets(str,5,fr);printf(“%s/n“,str);felose(fr);(分数:2.00)填空项 1:_二级 C语言笔试-134 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00

21、)1.G)w,one(分数:1.00)A.n,twoB.t,oneC.O,two 解析:解析本题首先定义了一个有 3个元素的指针数组 s,并通过赋值使 s0指向字符串“one”,s1指向字符串“two”,s2指向字符串“three”,然后通过赋值语句“p =s1”,使 p指向了字符串“two”,故“*(p+1)”就是字符“w”。2.关系数据库的概念模型是()的集合。(分数:1.00)A.关系模型B.关系模式 C.关系子模式D.存储模式解析:解析数据库的概念模型体现了数据之间的关系,它是各种数据之间相互关系的集合。3.信息隐蔽的概念与下述哪一种概念直接相关?(分数:1.00)A.软件结构定义B.

22、模块独立性 C.模块类型的划分D.模块耦合度解析:解析采用信息隐蔽的目的就是为了确保每个模块的独立性。4.下列关于单目运算符+、-的叙述中正确的是(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量C.它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D.它们的运算对象可以是 char型变量、int 型变量和 float型变量 解析:解析C 语言中的+和运算符,这两种运算符是单目运算符,其运算对象可以是整型、字符型、float型和 double型等基本数据类型。5.数据的存

23、储结构是指(分数:1.00)A.数据所占的存储空间量B.数据的逻辑结构在计算机中表示 C.数据在计算机中的顺序存储方式D.存储在外存中的数据解析:解析数据的存储结构是数据元素在计算机存储器内的表示。数据的存储结构是逻辑结构用计算机语言的实现,即建立数据的机内表示。6.设有如下说明typedef structint n;char c;double x;STD;则以下选项中,能正确定义结构体数组并赋初值的语句是(分数:1.00)_解析:解析本题定义了一个结构体类型并自定义类型名为 STD,用户自定义类型后,就可以利用它进行变量与数组的定义。定义的方法,与 C语言中其他类型的定义完全样,定义结构型数

24、组并赋初值时,每个元素用一对“”和“7.有以下程序main()unionunsigned int n;unsigned char c;ul;u1.C=A;pfintf(“%c/n“,u1.n);执行后输出结果是(分数:1.00)A.产生语法错B.随机值C.A D.65解析:解析在定义共用体的同时,定义了一个共用体型变量 u1,共占两个字节,有两个成员 n和 c,两个成员的首地址是相同的。因此给 u1,c 赋一个“A”,其实就是给无符号整型成员 u1n 的低字节赋一个“A”,输出 u1,n 的时候是以字符型的形式输出,只输出它的低地址的一个字节,因此为“A”。8.有以下程序main()int i

25、=1,j=1,k=2;if(j+k+)if(ij)t=ai;ai=aj;aj=t;fun(a,+i,-j);main()int a=1,2,3,4,5,6,i;fun(a,0,5);for(i=0;i6;i+)printf(“%d“,ai);执行后输出结果是(分数:1.00)A.6 5 4 3 2 1 B.4 3 2 1 5 6C.4 5 6 1 2 3D.1 2 3 4 5 6解析:解析函数 fun()中有 3个参数,参数。为一个指针变量,接收的实参可以是数组名,参数 i和 j分别表示数组元素的下标,当下标 i小于下标 j时,ai和 aj交换,然后对自身进行调用,可见这是一个递归函数。其实现

26、的功能是把数组 a,从下标为 i的元素到下标为 j的元素之间的所有元素反序存放。在主函数中调用 fun()函数,把 a数组从 a0到 a5之间的所有元素反序存放,最后输出从 a1到 a5的值,因此输出的值为 6、5、4、3、2、1。11.有以下程序void f(int x,int y)int t;if(xy) t=x;x=y;y=t;main()int a=4,b=3,c=5;f(a,b) ;f(a,c) ;f(b,c) ;printf(“%d,%d,%d/n“,a,b,c) ;执行后输出结果是(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,5 解析:解析C 语言规定,

27、在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数 f(),用变量作为形参,在 main()函数中调用了 3次 f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。所以输出的 a、b、c 依旧是原来的值 4、3、5。12.下列叙述中正确的是(分数:1.00)A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型 解析:解析在 C语言中没有逻辑类型,逻辑类型用整型来表示,C 语言中没有集合类型。13.在深度为 5的满二叉树中,结

28、点的个数为(分数:1.00)A.32B.31 C.16D.15解析:解析二叉树有如下性质:深度为 m的二叉树最多有 2的 m次方再减 1个结点。14.以下程序企图把从终端输入的字符输出到名为 abctxt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#includestdiohmain()FILE*fout;char ch;four=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#)fputc(ch,fout);ch=fgetc(stdin);felose(fout);出错的原因是(分数:1.00)A.函数 fopen调用形式错误

29、B.输入文件没有关闭C.函数 fsetc调用形式错误D.文件指针 stdin没有定义解析:解析stdin 是标准输入设备的文件指针,不需定义直接可以使用,它随系统的启动而打开,随系统的关闭而关闭,fgetc()函数的作用是从某个文件中读取一个数据,其参数为要读取文件的文件指针。fopen()函数有两个参数,第一个参数是打开的文件名,第二个参数是文件打开模式,两个参数都是字符串,本例中“four=fopen(abctxt, w);”语句的 fopen()函数参数是错误的,应该用双引号“w”,正确的应改为 fout=fopen(“ abctx”,“w”);。15.有以下程序main()int a3

30、=1,2,3,4,5,0,(*p(分数:1.00)A.3,i;pa=a;for(i=0;i3;i+)if(i2)Pa1i=pa1i-1;else pa1i=1;printf(“%d/n“,a01+a11+a12);执行后输出结果是 A) 7 B.6C.8D.无确定值解析:解析本题定义了一个指向由 3个元素组成的一维数组的指针变量 pa,通过赋值让它指向具有 2行 3列的数组 a;此时用指针变量 pa,表示数组元素 aij的形式是 Paij。for 循环执行了 3次:第一次 i值为 0,执行 pa10=pa10-1,执行后 a10的值变为 3;第二次 i值为 1,执行 Pa11=Pa11-1,执

31、行后 a11的值为 4;第三次 i值为 2,执行 pa12=1,执行后 a12的值变为 1。故 printf 语句输入的值为 2+4+1=7。16.有以下程序main()char a,b,c,*d;a=/;b=/xbc;c=/0xab;d=“/0127“;pfintf(“%c%c%c%c/n“,a,b,c,*d) ;编译时出现错误,以下叙述中正确的是(分数:1.00)A.程序中只有 a=/;语句不正确B.b=/xbc;语句不正确C.d=“/0127“;语句不正确D.a=/;和 c=,0xab;语句都不正确 解析:解析给字符变量赋值只能赋一个字符,包括转义字符,语句“a=/”是错误的,因为“/”

32、是转义字符,应该用“/”来表示,语句“B=/xbe;”是正确的,它是将一个用十六进制表示的转义字符赋给一个字符型变量;语句“c=/0xab;”是正确的,反斜线后的十六进制只可由小写 x开头,不能用 0x。语句“d=”/0127“;”是正确的,可以给字符型指针变量赋一个字符串,其作用是让该指针变量指向该字符串。17.若有以下程序段(n 所赋的是八进制数)int m=32767,n=032767;printf(“%d,%o/n“,m,n);执行后输出结果是(分数:1.00)A.32767,32767 B.32767,032767C.32767,77777D.32767,077777解析:解析程序在

33、定义时,以十进制形式为 m赋初值,以八进制的形式为 n赋初值。输出的时候 m以十进制形式输出,n 以八进制形式输出,因此输出的结果为 32767和 32767。18.以下叙述中正确的是(分数:1.00)A.全局变量的作用域一定比局部变量的作用域范围大B.静态(static) 类型变量的生存期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量D.未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值解析:解析若在函数中定义与全局变量名字相同局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大;静态变量一旦定义,将在整个程序的运行期间都存

34、在;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的;没有赋值的auto型变量的初值是随机的,没有赋值的 static型变量的初值是 0。19.以下程序段中,能够通过调用函数 fun,使 main函数中的指针变量 p指向一个合法的整型单元的是(分数:1.00)A.main() int*p; fun(p); int fun(int *p) int s;p=B.main()int*p;fun(*p=C.#includestdlibh main() int*p; fun(printf(“%d,%d/n“,i-,+j);执行后输出结果是(分数:1.00)A.9,2B.1

35、0,2 C.9,1,D.10,1解析:解析+、-运算符在变量之前是先使变量的值加 1或减 1,然后再使用变量的值;如果在变量之后则先使用变量之前的值,再把变量的值加 1或减 1。显然,程序中表达式“i-”的值为 10,“+j”的值为 2,所以最后输出的值为 10和 2。21.有以下程序main()int i;for(i=0;3;i+)switch(i)csse 1: printf(“%d“,i);case 2: printf(“%d“,i);default: printf(“%d“,i);执行后输出结果是(分数:1.00)A.011122 B.012C.012020D.120解析:解析for

36、循环执行了 3次,第一次时 i的值为 0,执行其后的 switch语句,没有匹配的 case,执行 default语句后的 printf语句,输出为 0;第二次循环时 i的值为 1,执行其后的 switch语句,与第一个 case分支匹配,执行其后的 printf语句,输出 1,由于没有遇到 break语句,所以一直向下执行,又输出了两个 1,第三次循环时 i值为 2,执行其后的 switch语句,同理输出两个 2。22.以下叙述中不正确的是(分数:1.00)A.C语言中的文本文件以 ASCII码形式存储数据B.C语言中对二进制文件的访问速度比文本文件快C.C语言中,随机读写方式不适用于文本文

37、件D.C语言中,顺序读写方式不适用于二进制文件 解析:解析在 C语言中文本文件是以 ASCII码形式存放的,每个字符占一个字节。由于数据在计算机中是以二进制形式存放的,因此二进制文件中的数据可以直接读出,而不需要像文本文件那样把 ASCII码转换成二进制,因此速度较快。在文本文件中,数据以 ASCII码形式存放的,用户很难判定一个数据到底占几个字节,所以不适合使用随机读写方式。23.设 char型变量 x中的值为 10100111,则表达式(2+x)(3)的值是(分数:1.00)A.10101001B.10101000C.11111101D.01010101 解析:解析表达式(2+x)二进制表

38、示为“10101001”,(-3)即把 3按位取反得到二进制值为“11111100”,再把这两个二进制按位加(异或),得到结果位“01010101”。24.若有以下定义和语句#includestdiohint a=4,b=3,*p,*q,*w;p=q=w=q;q=NULL;则以下选项中错误的语句是(分数:1.00)A.*q=0; B.w=p;C.*p=a;D.*p=*w;解析:解析本题中定义了 3个指向整型的指针变量 p、q、w,并让 P指向 a,让 q指向 b,通过将 q的值赋给 w,使 w也指向 b,最后将 NULL赋值给 q。由整型变量指针的定义可知,可以给整型指针指向的变量赋一个常数值

39、(表达式);可以给指针变量赋一个同种类型的指针变量(或地址值);选项 A因为 q不指向任何变量,给一个空指针指向的单元赋值是错误的。25.若要说明一个类型名 STP,使得定义语句 STPs;等价于 char*s;以下选项中正确的是(分数:1.00)A.typedef STP char *sB.typedef*char STP;C.typedef STP *char;D.typedef char*STP; 解析:解析指针类型的自定义的形式如下:typedef 类型说明符*用户类型名。不难看出只有选项 D是正确的定义形式。26.C语言中用于结构化程序设计的三种基本结构是(分数:1.00)A.顺序结

40、构、选择结构、循环结构 B.if,switch、breakC.for、while、do-whileD.if,for、continue解析:解析结构化程序设计是由顺序结构、选择结构和循环结构 3种基本结构组成。27.以下能正确定义数组并正确赋初值的语句是(分数:1.00)A.int N=5,bNN;B.int a12=1,3;C.int c21=1,2,3,4;D.int d32=1,2,34; 解析:解析选项 A中,数组的长度使用了变量 N,而在 C中是不能用变量来定义数组的的长度的。在 C语言中,给二维数组赋初值时,行数不能超过定义的行数,每行的初值个数不能超过定义时的列数。选项C数组的第二

41、维下标缺省,而在 C语言中,数组的第二维下标不能缺省。28.设有如下定义struct sschar name10;int age;char sex;std3,*p=std;下面各输入语句中错误的是(分数:1.00)A.scanf(“%d“,continue;i+;s+=i;while(i7);printf(“%d/n“,s);执行后输出结果是(分数:1.00)A.16 B.12C.28D.21解析:解析do 循环与 continue语句,在循环体中有一条 if语句,其后面表达式为“i%2”,当 i的值为奇数时,其值为真,执行其后面的语句,i 的值加 1,重新开始循环,当 i的值为偶数时,“i%

42、2”为假,执行“i+;s+=i”。在循环中 i为偶数时的值分别为 0、2、4、 6,加 1过后的值分别为1、3、5、7,s 中存放的是它们的和,值为 16。39.有以下程序main()int m3=1,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0;i3;i+)printf(“%d“,mki);执行后输出结果是(分数:1.00)A.4 5 6B.2 5 8C.3 6 9 D.7 8 9解析:解析变量 k的初值为 2,循环执行了 3次,分别输出 m20、m21和 m22,其值分别为3,6,9。40.有以下程序main()int p7=11,13,14,15,16,17,1

43、8,i=0,k=0;while(i7i+;printf(“%d/n“,k);执行后输出结果是(分数:1.00)A.58B.56C.45D.24 解析:解析在主函数中首先定义了一个数组 p并初始化,在 while后面括号里的表达式中,i 初值为0,当 pi为偶数时,Pi%2 等于 0,根据“i+;printf(“%d/n“,n*argc) ;int fun()static int s=0;s=-1;return s;假设程序经编译、连接后生成可执行文件 examexe,若键入以下命令行cxam123回车则运行结果为(分数:2.00)A.6 B.8C.3D.4解析:解析主函数的第一个参数 argc

44、为整型参数,记下从命令行输入的参数的个数:第二个参数 argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中 argc的值为2,argv0指向字符串“exam”,argv1指向参数字符串“123”。在 main()函数中,while 循环执行了3次,调用了 3次 fun()函数:第一次调用 fun ()函数时,定义了一个静态变量 s并赋初值 0,加 1后作为函数值返回,n 伪值为 1;第二次调用 fun()函数时,静态变量 s的值将保留上一次退出时的值 1,再加1为 2,作为函数值返回,n 的值为 2;同理第三次调用返回后,n 的值为 3。输出 n*argc的值为

45、6。42.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(intxN)int i=0;while(iN)seanf(“%d“,_);在下划线处应填入的是(分数:2.00)A.x+iB.&xi+1C.x+(i+) D.&x+i解析:解析在 scanf()函数中有两个参数,其中第一个参数为输入格式字符串,第二个参数是地址字符串。根据 scant()的定义,故应该在空白处填入一地址,又由题意要给数组的每个成员赋值,i 表示数组的下标,那么 i必须每循环一次加 1,即指向下一个数组元素,当 i=7时循环体执行了 7次,数组的每个成员都被赋值了,

46、退出循环。43.在数据库管理系统提供的数据语言中,负责数据的模式定义与数据的物理存取构建的是(分数:2.00)A.数据定义语言 B.数据转换语言C.数据操纵语言D.数据控制语言解析:解析在数据库管理系统提供的数据语言中,数据定义语言负责数据的模式定义与数据的物理存取构建。44.有以下程序main()int a=5,b=4,c=3,d=2;if(abC) printf(“%d/n“,d) ;else if(c-1D) 1)printf(“%d/n“,d+1);elseprintf(“%d/n“,d+2);执行后输出结果是(分数:2.00)A.2B.3 C.4D.编译时有错,无结果解析:解析C 语言规定 else总是和离它最近的 if语句配对。故第一个 else和第一个 if配对,第二个else和第二个 if配对。首先计算第一个 if后面的表达式“abc”,表达式“ab”是为 1,表达式“1c”为 0,所以执行 else后面的语句。先执行 if后面的表达式,“c-1d”为真,值为1。“1=1”为真,执行 printf语句。45.在结构化方法中,软件功能分解属于下列软件开发中(

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

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

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