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

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

1、二级 C语言笔试-282 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.C语言结构体类型变量在程序执行期间( )。(分数:2.00)A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中2.下列选项中不合法的十六进制数是( )。(分数:2.00)A.“0“xffB.“0“X11C.“0“xlgD.“0“Xabc3.有以下程序:main()unionchar ch2;int d:s;s.d=0x4321;printf(“%x,%x/n“,s.ch0,s.ch1);在 16位编译系统上,程序执

2、行后的输出结果是()。(分数:2.00)A.21,43B.43,21C.43,00D.21,004.下列程序的输出结果是( )。# includestdio.hmain()int a=0 ,1;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);(分数:2.00)A.19B.18C.6D.85.有以下程序:main()int a=0,b=0;a=10; /*给 a赋值b=20; 给 b赋值 */printf(“a+b=%d/n“,a+b);/输出计算机结果程序运行后的输

3、出结果是( )。(分数:2.00)A.a+b=10B.a+b=30C.30D.出错6.设有以下定义和语句:char str20=“Program“,*p;p=str;则以下叙述中正确的是( )。(分数:2.00)A.*p与 str0的值相等B.str与 p的类型完全相同C.str数组长度和 p所指向的字符串长度相等D.数组 tr中存放的内容和指针变量 p中存放的内容相同7.标准库函数 fgets(s,n,file)的功能是( )。(分数:2.00)A.从文件 file中读取长度为 n的字符串存入字符数组 s中B.从文件 file中读取长度为不超过 n-1个字符的字符串放到字符数组 s中C.从文

4、件 file中读到 n个字符串存入字符数组 s中D.从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中8.若有说明“char s130=“abc“,s2=“defghi“;”,则在使用函数 stcat(s1,s2)后结果是( )。(分数:2.00)A.s1的内容更新为 abcdefghiB.s1的内容更新为 defghi/0C.s1的内容更新为 defghiabc/0D.s1的内容更新为 abcdefghi/09.#define能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为( )。(分数:2.00)A.#define f(x)

5、5*x*x+5*x+5B.#define f5*x*x+5*x+5C.# define f(a) (5*a*a+5*a+5)D.#define (5*x*x+5*x+5) f(x)10.有下列函数定义:int fun(double a,double b)return a*b;)若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.if(fun(x,y)B.z=fun(fun(x,y),fun(x,y);C.z=fun(fun(x,y)x,y);D.fun(x,y);11.有以下程序:main()int num44=1,2,3,4,5,6,7,8,9,10,11

6、,12,13,14,15,16,i,j;for(i=0;i4;i+)for(j=0;ji;j+) printf(“%4c“,“);for(j=_;j4;j+) printf(“%4d“,numij);printf(“/n“);若要按以下形式输出数组右上半三角1 2 3 46 7 811 1216则在程序下划线处应填入的是()。(分数:1.00)A.i-1B.iC.i+1D.4-i12.有以下程序:int 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/n“ ,sum)

7、;执行后的输出结果是( )。(分数:1.00)A.6B.7C.8D.913.已知 i、j、k 为 int型变量,若要从键盘输入 2、3、4CR,使 i、j、k 的值分别为 2、3、4,下列正确的输入语句是( )。(分数:1.00)A.scanf(“%3d,%3d,%3d“,.i,j,%k);B.scanf(“%d,%d,%d“,i,j,k);C.scanf(“%d%d%d“,.i,j,k);D.scanf(“i=%d,j=%d,k=%d“,i,j,k);14.对下列二叉树(分数:1.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG15.源程序的文档不包括( )。(

8、分数:1.00)A.符合号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释16.下列叙述中正确的是( )。(分数:1.00)A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若 a和 b类型相同,在执行赋值 a=b后,b 中的值将放入 a中,但 b中的值不变D.在 C程序中,求余算符“%”两边的类型相同时才能进行运算17.有以下程序:main()int a=0,b=lO,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf(“%d, %d,%d,%d/n“ ,a,b,c,d);程序输出( )。(分

9、数:1.00)A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错18.下列程序的输出结果是( )。main()int a=6,b=3,c;if(ab)c=a*b;printf(“%d%d,%d/n“ ,b,a,c);elsec=b/a; printf(“% d,%d,%d/n“,b,a,c);(分数:1.00)A.3,6,18B.3,6,2C.6,3,18D.6,3,219.有下列程序:# includestdio.hmain()int x=0;int y=0;while(x7+y)y-;x+;printf(“%d,%d“,y,x);程序的输出结果是( )。(分数:1.00)A

10、.0,7B.7,7C.0,6D.1,620.若有定义“double a;”,则正确的输入语句是( )。(分数:1.00)A.scanf(“%1f“ ,a);B.scanf(“%f“,a);C.scanf(“%1f“,-a)D.scanf(“%1e“,a);21.数据库系统的核心是( )。(分数:2.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员22.若有定义和语句:int*pp,*p,a=20,b=10;pp=p;p=a;p=b;printf(“%d,%d/n“,*p,*pp);则输出结果是()。(分数:2.00)A.20,10B.20,20C.10,20D.10 ,1023.

11、函数调用 strcat(strcpy(str1,str2) ,str3)的功能是( )。(分数:2.00)A.将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后B.将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后C.将字符串 str2复制到字符串 str1之后再将字符串 str3连接到字符串 str1之后D.将字符串 str2连接到字符串 str1之后再将字符串 str1复制到字符串 str3中24.若有以下的说明和语句,则在执行 for语句后,*(*(pt+1)+2)表示的数组元素是()。int t33,*pt3,k;for(k=O;k3;k+)

12、ptk=tk0;(分数:2.00)A.t20B.t22C.t12D.t2125.下列叙述中正确的是( )。(分数:2.00)A.算法的执行效率与数据存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上 3种描述都不对26.下列 4个关于 C语言的结论中错误的是( )。(分数:2.00)A.可以用 do-while语句实现的循环一定可以用 while语句实现B.可以用 for语句实现的循环一定可以用 while语句实现C.可以用 while语句实现的循环一定可以用 for语句实现D.do-while语句与 while语句

13、的区别仅是关键字“while”出现的位置不同27.下列程序的输出结果是( )。# includestdio.hmain()struct stint y,x,z;unionlong i;int j;char k:un;printf(“%d,%d/n“, sizeof(struct st),sizeof(un);(分数:2.00)A.6,2B.6,4C.8,4D.8,628.下列程序的运行结果是( )。# includestdio.hmain()int a=2,b=3,c=4;if(ab)if(b0)c=0;else c+;printf(“%d/n“ ,c);(分数:2.00)A.2B.3C.5D

14、.429.下列程序的运行结果是( )。# includestdio.hvoid fun(int*s,int*p)static int t=3;*p=st;t-:void main()int a=2,3,4,5),k;int x:for(k=0,k4,k+)fun(a,x);printf(“%d,“,x);(分数:2.00)A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,530.有以下程序:void funl(char*p)char*q;q=p;while(*q!=/0)(*q)+;q+;main()char a=“Program“),*p;p=a3;funl(p);pri

15、ntf(“%s/n“ ,a);程序执行后的输出结果是( )。(分数:2.00)A.ProhsbnB.PrphsbnC.ProgsbnD.Program31.下列能正确定义且赋初值的语句是( )。(分数:2.00)A.int n1=n2=1;B.char c=99;C.float f=f+1;D.double x=1.2E5.6:32.下列叙述中正确的是( )。(分数:2.00)A.break语句只能用于 switch语句体中B.continue语句的作用是使程序的执行流程跳出包含它的所有循环C.break语句只能用在循环体内和 switch语句体内D.在循环体内使用 break语句和 cont

16、inue语句的作用相同33.为了提高软件的独立性,模块之间最好是( )。(分数:2.00)A.控制耦合B.公共耦合C.内容耦合D.数据耦合34.在 16位编译系统上,若有定义“int a=10,20,30,*p=a;”,当执行“p+;”后,下列说法错误的是()。(分数:2.00)A.p向高地址移了一个字节B.p向高地址移了一个存储单元C.p向高地址移了两个字节D.p与 a+1等价35.若希望下列的程序运行后输出 25,程序空白处的正确选项是( )。main()int i,j=50,a=7,4,10,5,8;for( )j+=ai;printf(“%d“,j-40);(分数:2.00)A.i=1

17、;i4;+iB.i-1;i3;+iC.i-4;i2;i-D.i-2;i4;+i36.已知大写字母 A的 ASC码是 65,小写字母 a的 ACS码是 97。下列能将变量中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(c-A)%26+AB.c=c+32C.c=c-A+AD.c=(A+37.下列程序的执行结果是( )。# includestdio.hint a,b,c;a=b=2,c=1;c=(a+)-1; printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);(分数:2.00)A.3,14,1B.3,14,2C.2,04,

18、1D.2,14,138.下列标识符不是关键字的是( )。(分数:2.00)A.breakB.charC.SwithchD.return39.以下程序的输出结果是( )。void prt(int*m,int n)int i;for(i=0;in;i+)mi+;)main()int a=1,2,3,4,5,i;prt(a,5);for(i=0;i5;i+)printf(“%d,“,ai);(分数:2.00)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,140.以下程序的输出结果是( )。main()int a=1,b;for(b=1,b=10;b+)if(a

19、=8)break;if(a%2=1) a+=5;continue;a=3;printf(“%d/n“,b);(分数:2.00)A.3B.4C.5D.6二、填空题(总题数:13,分数:30.00)41.按照“先进先出”的原则组织数据的结构是 1。(分数:2.00)填空项 1:_42.Jackson方法是一种面向 1 的结构化方法。(分数:2.00)填空项 1:_43.下列程序段的输出结果是_。int n=c;switch(n+)default: printf(“error“);break;case a:printf(“good“);break;case c:printf(“morning“);c

20、ase d:printf(“class“);(分数:2.00)填空项 1:_44.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。# includestdio.h# includectype.hmain()char c;mt a,s=0;while(_)if(isdigit(c)a=s-0;s+=a;printf(“s=%d“,s);(分数:2.00)填空项 1:_45.下列程序的输出结果是_。# define p(a) printf(“%d,“,(int)(a)# define PRINT(a) p(a); printf(“the end“)main()int

21、 i,a=0;for(i=1;i5;i+)PRINT(a+i);printf(“/n“);(分数:2.00)填空项 1:_46.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_47.若想通过以下输入语句使 a中存放字符串 1234,b中存放字符 5,则输入数据的形式应该是_。char a10,b;scanf(“a=%s b=%c“,a,b);(分数:2.00)填空项 1:_48.下面程序的输出结果是_。# define MAX 3int aMAX;main()fun1();fun2(a);printf(“/n“);fun1()int k,t=0;for(k=0;kMAX;k

22、+,t+) ak=t+t;fun2 (int b)int k;for(k=0;kMAX;k+) printf(“%d“,*(b+k);(分数:2.00)填空项 1:_实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于 copy命令),假定文件在当前目录下。请填空。# includestdio.hvoid main(int argc,char*argv)FILE*f1,*f2;if(argc_)printf(“parameter error! /n“); exit(0);)f1=fopen( argv1,“r“);f2=fopen(argv2,“w“)

23、;while(_)fputc(fgetc(f1) ,f2);fclose(f1);fclose(f2);(分数:4.00)填空项 1:_填空项 1:_49.下列程序运行的结果是_。int k=0;void fun(int m)m+=k;k+=m; printf(“m=%dk=%d“,m,k+);main()int i=4;fun(i+);printf(“i=%dk=%d/n“,i,k);(分数:2.00)填空项 1:_50.下列程序的运行结果是_。main()int a=2,b=7,c=5;switch(a0)case 1:switch(b0)case 1:printf(“);break;ca

24、se 2:printf(“!“);break;case 0:switch(c=5)case 0:printf(“*“);break;case 1:printf(“#“);break;case 2:printf(“$“);break;default:printf(“)printf(“/n“);(分数:2.00)填空项 1:_51.设有定义语句:“int a3=0,1,2;”,则数组元素 a12的值是 1。(分数:2.00)填空项 1:_下列程序的功能是:求出数组 x中各相邻两个元素的和依次存放到 a数组中,然后输出。请填空。main()int x10,a9,i;for(i=0;i10;i+)sc

25、anf(“%d“,xi);for(_;i10;i+)ai-1=xi+_;for(i=0;i9;i+)printf(“%d“ ,ai);printf(“/n“);(分数:4.00)填空项 1:_填空项 1:_二级 C语言笔试-282 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.C语言结构体类型变量在程序执行期间( )。(分数:2.00)A.所有成员一直驻留在内存中 B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中解析:解析 在 C语言的结构体类型变量在程序执行期间所有成员一直驻留在内存中。2.下列选项中不合法的十

26、六进制数是( )。(分数:2.00)A.“0“xffB.“0“X11C.“0“xlg D.“0“Xabc解析:解析 十六进制是以“0x、0X”开头的字符串,字符串中只能含有 09 这 10个数字和a、b、c、d、e、f 这 6个字母。3.有以下程序:main()unionchar ch2;int d:s;s.d=0x4321;printf(“%x,%x/n“,s.ch0,s.ch1);在 16位编译系统上,程序执行后的输出结果是()。(分数:2.00)A.21,43 B.43,21C.43,00D.21,00解析:解析 s 是一个公用体,d 的值分别与 ch中的两上元素的值相同,d 的高位放在

27、 ch1中、低位放在 ch0中,因此输出的结果为 21,43。4.下列程序的输出结果是( )。# includestdio.hmain()int a=0 ,1;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);(分数:2.00)A.19 B.18C.6D.8解析:解析 本题考查 switch case开关语句,default 退出继续循环。当 i=1时,执行 case 1,因为没有 break语句,所以依次往下运行,a=a+2-2,a=a+3-5;当 i=2时,执行

28、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时,没有 case语句,则执行 default,a=a+3=19,i=5 不成立循环结束。5.有以下程序:main()int a=0,b=0;a=10; /*给 a赋值b=20; 给 b赋值 */printf(“a+b=%d/n“,a+b);/输出计算机结果程序运行后的输出结果是( )。(分数:2.00)A.a+b=10 B.a+b=30C.30D.出错解析:解析 本

29、题中/*/为多行注释,所以可知 b-20为注释语句,在程序运行时不起作用,b 仍为0,所以本题中 A正确。6.设有以下定义和语句:char str20=“Program“,*p;p=str;则以下叙述中正确的是( )。(分数:2.00)A.*p与 str0的值相等 B.str与 p的类型完全相同C.str数组长度和 p所指向的字符串长度相等D.数组 tr中存放的内容和指针变量 p中存放的内容相同解析:解析 本题中的 str为一个字符型数组,p 为字符型指针变量,其指向 str的首地址,*p 的值为str0中的字符,其类型、长度不同但字符第一个相同,故答案选择 A。7.标准库函数 fgets(s

30、,n,file)的功能是( )。(分数:2.00)A.从文件 file中读取长度为 n的字符串存入字符数组 s中B.从文件 file中读取长度为不超过 n-1个字符的字符串放到字符数组 s中 C.从文件 file中读到 n个字符串存入字符数组 s中D.从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中解析:解析 本题考查 fgets()函数的使用调用形式为:fgets(s,n,fp)。fgets 函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针:“n”为要读取的最多的字符个数:“fp“是指向该文件型指针。fgets 函数的功能是:从 fp所指向的文件中读取长

31、度不超过 n-1个字符的字符串,并将该字符串放到字符数组 s中,读入字符串后会自动在字符串末尾加入“/0“结束符,表示字符串结束。8.若有说明“char s130=“abc“,s2=“defghi“;”,则在使用函数 stcat(s1,s2)后结果是( )。(分数:2.00)A.s1的内容更新为 abcdefghiB.s1的内容更新为 defghi/0C.s1的内容更新为 defghiabc/0D.s1的内容更新为 abcdefghi/0 解析:解析 strcat(s1,s2)函数的功能是把 s2字符串连接到 s1字符串的末尾,要保证 s1有足够的空间容纳下连接后的字符串。9.#define能

32、作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为( )。(分数:2.00)A.#define f(x) 5*x*x+5*x+5B.#define f5*x*x+5*x+5C.# define f(a) (5*a*a+5*a+5) D.#define (5*x*x+5*x+5) f(x)解析:解析 本题考查带参数宏的格式:#define 标识符(形参表)形参表达式。其功能:把预处理程序中出现的所有带实参的宏名,展开形成由实参组成的表达式。故 C正确。10.有下列函数定义:int fun(double a,double b)return a*b;)若下列

33、选项中所用变量都已经正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.if(fun(x,y)B.z=fun(fun(x,y),fun(x,y);C.z=fun(fun(x,y)x,y); D.fun(x,y);解析:解析 本题考查函数的在函数调用时参数传递形式,形参与实参参数个数类型要一致。11.有以下程序:main()int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j;for(i=0;i4;i+)for(j=0;ji;j+) printf(“%4c“,“);for(j=_;j4;j+) printf(“%4d“,numij);

34、printf(“/n“);若要按以下形式输出数组右上半三角1 2 3 46 7 811 1216则在程序下划线处应填入的是()。(分数:1.00)A.i-1B.i C.i+1D.4-i解析:解析 本题中要求输出右上半角的数,对角线上的数的下标相同,所以 j=i。12.有以下程序:int 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/n“ ,sum);执行后的输出结果是( )。(分数:1.00)A.6B.7C.8 D.9解析:解析 sum=fun(a+,b+,a+b)

35、,c+)中 a+,b+,a+b 为逗号表达武,运算后取 a+b的值为5,c+为 3,故函数调用后输出结果为 8。13.已知 i、j、k 为 int型变量,若要从键盘输入 2、3、4CR,使 i、j、k 的值分别为 2、3、4,下列正确的输入语句是( )。(分数:1.00)A.scanf(“%3d,%3d,%3d“,.i,j,%k);B.scanf(“%d,%d,%d“,i,j,k); C.scanf(“%d%d%d“,.i,j,k);D.scanf(“i=%d,j=%d,k=%d“,i,j,k);解析:解析 本题主要考查 scanf函数的使用,scanf 函数的调用形式是:scanf(格式字符

36、串,输入项地址表)。“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。14.对下列二叉树(分数:1.00)A.ACBDFEG B.ACBDFGEC.ABDCGEFD.FCADBEG解析:解析 有 3种遍历方法;前序、中序、和后序。中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。D 为前序遍历对二叉树进行中序遍历,结果为 ACBDFEG。15.源程序的文档不包括( )。(分数:1.00)A.符合号名的命名要有实际意义B.正确的文档形式 C.良好的视觉组织D.正确的程序注释解析:解析 本题主要考查源程序的定义:符号名应具有一定实际的含义;正确的程序注释;良好的视觉

37、组织。16.下列叙述中正确的是( )。(分数:1.00)A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若 a和 b类型相同,在执行赋值 a=b后,b 中的值将放入 a中,但 b中的值不变D.在 C程序中,求余算符“%”两边的类型相同时才能进行运算 解析:解析 选项 A,在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式,右边也不得出现表达式;选项 B中,整型变量中只能存放整型数,但实型交量中的能存放实型数,也能存放整型数;选项 C表达武 a=b的意思是把变量 b的值赋给变量 a,从而覆盖 a中原来值;选项 D

38、,要求取余运算符“%“两边的类型均为整型。17.有以下程序:main()int a=0,b=lO,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf(“%d, %d,%d,%d/n“ ,a,b,c,d);程序输出( )。(分数:1.00)A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错 解析:解析 语法错误 else与 if之间不应再用其他语句,如果满足 if条件则继续执行 if后面的语句不满足就执行 else语句。18.下列程序的输出结果是( )。main()int a=6,b=3,c;if(ab)c=a*b;printf(“%d%d,%d/n“

39、 ,b,a,c);elsec=b/a; printf(“% d,%d,%d/n“,b,a,c);(分数:1.00)A.3,6,18B.3,6,2 C.6,3,18D.6,3,2解析:解析 本题考查 if.else语句。如果 if条件成立,则执行 if下面的语句,不成立则执行else,判断条件,发现 ab 不成立,则执行 else下的语句,得 c=b/a=2。19.有下列程序:# includestdio.hmain()int x=0;int y=0;while(x7+y)y-;x+;printf(“%d,%d“,y,x);程序的输出结果是( )。(分数:1.00)A.0,7 B.7,7C.0,

40、6D.1,6解析:解析 本题考查 while循环。在 while循环中,y 自加每次循环都加 1,在循环体内 y-每次减1,所以总的 y值不变,当 x自加到 7时不满足循环条件,循环结束。20.若有定义“double a;”,则正确的输入语句是( )。(分数:1.00)A.scanf(“%1f“ ,a);B.scanf(“%f“,a);C.scanf(“%1f“,-a)D.scanf(“%1e“,a); 解析:解析 本题考查 scanf函数的调用形式:scanf(格式字符串,输入项地址表)。题中定义变量 a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“”加变量名表示,所以

41、选项 D正确。21.数据库系统的核心是( )。(分数:2.00)A.数据模型B.数据库管理系统 C.数据库D.数据库管理员解析:解析 本题考查对数据库系统的理解,数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台 5个部分构成。其中数据库管理系统是数据库系统的核心,它负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等工作。22.若有定义和语句:int*pp,*p,a=20,b=10;pp=p;p=a;p=b;printf(“%d,%d/n“,*p,*pp);则输出结果是()。(分数:2.00)A.20,10B.20,20C.10

42、,20D.10 ,10 解析:解析 本题考查指针变量的赋值。*pp 是定义一个指针变量,语句 pp=p 是将 pp指向指针p,*p 和*pp 都是指针 p所指的内存空间的内容,即 b的值。23.函数调用 strcat(strcpy(str1,str2) ,str3)的功能是( )。(分数:2.00)A.将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后B.将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后C.将字符串 str2复制到字符串 str1之后再将字符串 str3连接到字符串 str1之后 D.将字符串 str2连接到字符串 str1之后再将

43、字符串 str1复制到字符串 str3中解析:解析 strcat(s1,s2)函数的功能是把 s2字符串连接到 s1字符串末尾,strcpy(s1,s2)是把 s2字符串复制到给 s1字符串,要保证 s1的容量。24.若有以下的说明和语句,则在执行 for语句后,*(*(pt+1)+2)表示的数组元素是()。int t33,*pt3,k;for(k=O;k3;k+)ptk=tk0;(分数:2.00)A.t20B.t22C.t12 D.t21解析:解析 从 for循环可知 pt是指向行的首地址的指针变量,因此由指针的表示方法可知:*(*(pt+1)+2)=pt12=t12。25.下列叙述中正确的

44、是( )。(分数:2.00)A.算法的执行效率与数据存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上 3种描述都不对解析:解析 在程序设计中,算法执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需存储空间。26.下列 4个关于 C语言的结论中错误的是( )。(分数:2.00)A.可以用 do-while语句实现的循环一定可以用 while语句实现B.可以用 for语句实现的循环一定可以用 while语句实现C.可以用 while语句实现的循环一定可以用 for语句实现D.do-while语句

45、与 while语句的区别仅是关键字“while”出现的位置不同 解析:解析 本题考查对各个循环语句的理解。do-while 语句、for 语句、while 语句所实现的循环可以相互替代;do-while 语句至少执行一次,而 while是符合条件执行条件,不符合不执行。27.下列程序的输出结果是( )。# includestdio.hmain()struct stint y,x,z;unionlong i;int j;char k:un;printf(“%d,%d/n“, sizeof(struct st),sizeof(un);(分数:2.00)A.6,2B.6,4 C.8,4D.8,6解析

46、:解析 本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,联合所占用内存空间最长的成员占用的空间。28.下列程序的运行结果是( )。# includestdio.hmain()int a=2,b=3,c=4;if(ab)if(b0)c=0;else c+;printf(“%d/n“ ,c);(分数:2.00)A.2B.3C.5 D.4解析:解析 本题考查 ifelse语句。第一个 if语句,先判断条件,发现 ab 条件成立,则执行第二个 if语句,再判断条件,发现 b0 条件件成立,则执行与其配对的 else语句

47、,c+,c 自加 1,得c=5。29.下列程序的运行结果是( )。# includestdio.hvoid fun(int*s,int*p)static int t=3;*p=st;t-:void main()int a=2,3,4,5),k;int x:for(k=0,k4,k+)fun(a,x);printf(“%d,“,x);(分数:2.00)A.5,4,3,2 B.2,3,4,5C.2,2,2,2D.5,5,5,5解析:解析 依据 fun函数,可知其要实现的功能是将 s中第(t+1)个元素以前的元素逆置赋给数组 p。由于 fun中函数定义了静态变量 t=3,因此,main()函数中调用函数 fun(a,x)时,就是要将数组 a中前 4个元素逆置赋给数 x,最后输出 x数组。30.有以下程序:void funl(char*p)cha

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

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

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