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

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

1、二级 C 语言笔试-248 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有如下程序段:int x=2002, y=2003;printf(“ % d/n“, (x, y);则以下叙述中正确的是_。(分数:2.00)A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出B.运行时产生出错信息C.输出值为 2002D.输出值为 20032.若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_。(分数:2.00)A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可

2、以作为一个函数的形参3.以下叙述正确的是_。(分数:2.00)A.构成 C 程序的基本单位是函数B.可以在函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义4.设有定义:int a=2, b=3, c=4;则以下选项中值为 0 的表达式是_。(分数:2.00)A.(! a=1) int i, j;i=sizeof((分数:2.00)A.; j=strlen(a);else return f(n-1)+1;main()int i, j=0;for(i=1; i3; i+)j+=f(i);printf(“% d/n“, j);程序运行后的输出结

3、果是_。(分数:2.00)A.4B.3C.2D.19.程序中对 fun 函数有如下说明:void * fun();此说明的含义是_。(分数:2.00)_10.C 语言中用于结构化程序设计的 3 种基本结构是_。(分数:2.00)A.顺序结构、选择结构、循环结构B.if、switch、breakC.for、while、do-whileD.if、for、continue11.以下程序的输出结果是_。int a, b;void fun()a=100;b=200;main()int a=5, b=7;fun();printf(“% d % d /n“, a, b);(分数:1.00)A.100200B

4、57C.200100D.7512.以下能正确定义二维数组的是_。(分数:1.00)A.int a3;B.int a3=2*3;C.int a3=;D.int a23=1), 2, 3,4;13.以下程序的输出结果是_。long fun(int n)long s;if(n=1 | n=2)s=2;else s=n-fun(n-1);return s;main()printf(“% 1d/n“, fun(3); (分数:1.00)A.1B.2C.3D.414.若有以下程序段(n 所赋值的是八进制数):int m=32767, n=032767;printf(“% d, % o/n“, m, n)

5、执行后输出结果是_。(分数:1.00)A.32767, 32767B.32767, 032767C.32767, 77777D.32767, 07777715.有以下程序:main()int m=3, n=4, x;x=-m+;x=x+8/+n;printf(“% d/n“, x);程序运行后的输出结果是_。(分数:1.00)A.3B.5C.-1D.-21616.以下定义语句中正确的是_。(分数:1.00)A.char a=A b=B;B.float a=b=19.0;C.int a=10, *b=D.float *a, b=17.以下叙述中错误的是_。(分数:1.00)A.用户所定义的标识

6、符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户所定义的标识符中,大、小写字母代表不同标识18.有以下程序:main()int a33, *p, i;p=for(i=0; i9; 1+)pi=i;for(i=0; i3; i+)printf(“% d“, a1i);程序运行后的输出结果是_。(分数:1.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 519.以下叙述正确的是_。(分数:1.00)A.可以把 define 和 if 定义为用户标识符B.可以把 define 定义为用户标识符,但不能把 if 定义为用户标识

7、符C.可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符D.define 和 if 都不能定义为用户标识符20.数据库设计的根本目标是要解决_。(分数:1.00)A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护21.以下程序的输出结果是_。int f()static int i=0;int s=1;s+=i; i+;return s;main()int i, a=0;for(i=0; i5; i+)a+=f();printf(“% d/n“ ,(分数:2.00)A.;22.s1 和 s2 已正确定义并分别指向两个字符串。若要求:当 s1 所指串大于 s

8、2 所指串时,执行语句 S。则以下选项中正确的是_。(分数:2.00)A.if(s1s2)S;B.if(strcmp(s1, s2)S;C.if(strcmp(s2, s1)0)S;D.if(strcmp(s1, s2)0)S;23.有以下程序:# define P 3yoid F(int x) return(p*x*x); main()printf(“% d/n“, F(3+5); 程序运行后的输出结果是_。(分数:2.00)A.192B.29C.25D.编译出错24.有以下程序:int f(int b4)int i, j, s=0;for(j=0; j4; j+)i=j;if(i2)i=3

9、j;S+=bij;return s;main()int a44=1, 2, 3, 4, 0, 2, 4, 6, 3, 6, 9, 12, 3, 2, 1, 0;printf(“%d/n“, f((分数:2.00)A.);main()int i;for(i=1; ix; i+)incre();incre()static int x=1;x*=x+1;printf(“ % d“, x);(分数:2.00)A.3 3B.2 2C.2 6D.2 526.有以下程序:main()int m, n, p;scanf(“m=% dn=% dp=% d“, printf(“% d % d % d/n“, m

10、 n, p);若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789,则正确的输入是_。(分数:2.00)A.m=123n=456p=789B.m=123 n=456 p=789C.m=123,n=456,p=789D.123 456 78927.设有以下函数:f(int(分数:2.00)A.int b=0;static int c=3;b+; c+;return(a+b+c);如果在下面的程序28.对于长度为 n 的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是_。(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序

11、为 nD.快速排序为 n(n-1)/229.设变量 x 为 float 型且已经赋值,则以下语句中能够将 x 中的数值保留到小数点后面两位,并将第三位四舍五入的是_。(分数:2.00)A.x=x*100+0.5/100.0B.x=(x*100+0.5)/100.0C.x=(int)(x*100+0.5)/100.0D.x=(x/100+0.5)*100.030.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句31.有以下程序:void swapl(int c0,

12、int c1)int t;t=coo; coo=o1o; c1o=t;void swap2(int * c0, int * c1)int t;t=*c0; *c0=*c1; *c1=t;main()int a2=3, 5, b2=A3, 5);swapl(a, a+1); swap2(printf(“%d%d%d%d/n“, a0, a1, b0,b1);程序运行后的输出结果是_。(分数:2.00)A.3 5 5 3B.5 3 3 5C.3 5 3 5D.5 3 5 332.有如下程序;int func(int a, int b)return(a+b); main()int x=2, y=5,

13、 z=8, r;r=func(func(x, y), z); printf(“% /d/n“, r); 该程序的输出的结果是_。A) 12 B) 13 C) 14 D) 15(分数:2.00)A.B.C.D.33.有以下程序:int a=3;main()int s=0;int a=5; s+=a+ ;s+=a+; printf(“% d/n“, s);程序运行后的输出结果是_。(分数:2.00)A.8B.10C.7D.1134.有定义语句:int a=1, b=2, c=3, x;,则以下选项中各程序段执行后,x 的值不等于 3 的是_。(分数:2.00)A.if(ca)x=1;else if

14、ba)x=2;else x=3;B.if(a3)x=3;else if(a2)x=2;else x=1;C.if(a3)x=3;if(a2)x=2;if(a1)x=1;D.if(ab)x=b;if(bc)x=c;if(ca)x=a;35.以下程序中函数 setup 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址:# includestdio. h# includestring. hchar * scmp(char * s1, char * s2)if(strcmp(s1, s2)0)return(s1);else return(s2);main()int i; char

15、 string20, str320;for(i=0; i3; i+)gets(stri);strcpy(string, scmp(str0, str1);strcpy(string, scmp(string, str2);printf(“% s/n“, string);若运行时依次输入:abcd、abba 和 abc3 个字符串,则输出结果为_。(分数:2.00)A.abcdB.abbaC.abcD.abca36.下列叙述中正确的是_。(分数:2.00)A.软件交付使用后还需要维护B.软件一旦交付使用就不需要维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令37.有以

16、下程序段:int n, t=1, s=0;scanf(“% d“, dos=s+t; t=t-2; )while(t!=n);为使程序不陷入死循环,从键盘输入的数据应该是_。(分数:2.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数38.以下循环体的执行次数是_。main()int i, j;for(i=0, j=1; i=j+1; i+=2, j-)printf(“% d/n“, i);(分数:2.00)A.3B.2C.1D.039.若指针 p 已正确定义,要使 p 指向两个连续的整型动态存储单元,不正确的语句是_。(分数:2.00)A.p=2*(int*)malloc(si

17、zeof(int);B.p=(int*)mallet(2*sizeof(int);C.p=(int*)malloc(2*2);D.p=(int*)calloc(2, sizeof(int);40.有以下程序:main()int a=1, b;for(b=1; b=10; b+)if(a=8)break;if(a % 2=1)a+=5; continue;a-=3;printf(“% d/n“, B) ;程序运行后的输出结果是_。(分数:2.00)A.3B.4C.5D.6二、填空题(总题数:15,分数:30.00)41.诊断和改正程序中错误的工作通常称为 【1】 。(分数:2.00)填空项 1:

18、42.在关系数据库中,把数据表示成二维表,每一个二维表称为 【2】 。(分数:2.00)填空项 1:_43.下面程序的运行结果: 【3】 。int f(int a, int n)if(n1) return a0+f(else return ao;main()int aa3=1, 2, 3, s;s=f( printf(“% d/n“, s);(分数:2.00)填空项 1:_44.以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数

19、据不变。# define N 4void rotate(int aN, int bN)int i, j;for(i=0; iN; i+)biN-1=a0i; 【4】 =aN-1i;(分数:2.00)填空项 1:_45.有以下程序:main()int t=1, i=5;for(; i=0; i-)t*=i;printf(“% d/n“, t);执行后的输出结果是 【5】 。(分数:2.00)填空项 1:_46.已知字符 A 的 ASCII 代码值为 65,以下程序运行时若从键盘输入:B33回车,则输出结果是 【6】 。# includemain()char a, b;a=getchar(); s

20、canf(“% d“, a=a-A+0; b=b*2;printf(“% c % c/n“, a, b);(分数:2.00)填空项 1:_47.若有以下程序:main()int p, a=5;if(p=a!=0)printf(“% d/n“, p);elseprintf(“% d/n“, p+2);执行后的输出结果是 【7】 。(分数:2.00)填空项 1:_48.以下主程序运行后的输出结果是 【8】 。main()int i, m=0, n=0, k=0;for(i=9; i=ii; i+)switch(i/10)case 0:m+; n+; break;case 10:n+; break;

21、default:k+; n+;printf(“% d % d % d/n“, m, n, k);(分数:2.00)填空项 1:_49.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型;请写出 fun 函数的首部 【9】 ,要求形参名为 b。main()double s1022;int n;fun(s);(分数:2.00)填空项 1:_50.以下程序中,fun 函数的功能是求 3 行 4 列二维数组每行元素中的最大值,请填空。void fun(int, int, int(*)4, int*);main()int a34=12, 41, 36, 28, 19, 33, 15

22、 27, 3, 27, 19, 1, b3, i;fun(3, 4, a, b);for(1=0; i3; i+)printf(“% 4d“, bi);printf(“/n“);void fun(int m, int n, int ar4, int * bar)int i, j, x;for(i=0; im; i+)x=ari0;for(j=0; jn; j+)if(xarij)x=arij;【10】 =x;(分数:2.00)填空项 1:_51.以下程序的输出结果是 【11】 。# define MCNA(m)2*m# define MCNB(n, m)2*MCRA(n)+m# define

23、 f(x)(x*x)main()int i=2, j=3;printf(“% d/n“, MCRB(j, MCRA(i);(分数:2.00)填空项 1:_52.以下程序运行后的输出结果是 【12】 。fun(int a)int b=0; static int c=3;b+; c+;return(a+b+c);main()int i, a=5;for(i=0; i3; i+)printf(“% d % d“, i, fun(a);printf(“/n“);(分数:2.00)填空项 1:_53.以下程序运行后的输出结果是 【13】 。# include string. hcbar *ss(char

24、 *s)char *p, t;p=s+1; t=*s;while(-p)*(p-1)=*p; p+;*(p-1)=t;return s;main()char *p, str10=“abcdefgh“;p=ss(str);printf(“% s/n“, p);(分数:2.00)填空项 1:_54.下面程序的功能:将字符数组 a 中下标值为偶数的元素从小到大排列,其他元素不变。请填空。# includestdio. h# includestring. hmain()char a=“clanquage“, t;int i, j, k;k=strlen(A) ;for(i=0; i=k-2; i+=2

25、)for(j=i+2;jk; j+=2)if( 【14】 )t=ai; ai=aj; aj=t; puts(A) ;printf(“/n“);(分数:2.00)填空项 1:_55.下面程序的功能:输出 100 以内能被 3 整除且个位数为 6 的所有整数,请填空。# includestdio. hmain()int i, j;for(i=0; i10 或 i=9; i+)j=i*10+6;if( 【15】 )continue;printf(“% d“, j);(分数:2.00)填空项 1:_二级 C 语言笔试-248 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40

26、分数:70.00)1.设有如下程序段:int x=2002, y=2003;printf(“ % d/n“, (x, y);则以下叙述中正确的是_。(分数:2.00)A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出B.运行时产生出错信息C.输出值为 2002D.输出值为 2003 解析:解析 printf 函数的输出项(x,y)是逗号表达式,因此 y 的值是整个表达式的值,故输出值为2003。2.若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_。(分数:2.00)A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.

27、函数调用可以作为一个函数的形参 解析:解析 swapl(a,a+1)是将 a,a+1 的地址进行传递,运行 swapl 以后,a0,a1的值不发生改变,而 swap2(则以下选项中值为 0 的表达式是_。(分数:2.00)A.(! a=1) int i, j;i=sizeof((分数:2.00)A.; j=strlen(a);else return f(n-1)+1;main()int i, j=0;for(i=1; i3; i+)j+=f(i);printf(“% d/n“, j);程序运行后的输出结果是_。(分数:2.00)A.4B.3 C.2D.1解析:解析 本题考查函数的递归调用。本题

28、中的函数 f 是递归函数,主函数中语句 j+=f(i)共执行了两次,首次执行时 j=j+f(i)=0+f(1)=f(1)=1;第二次执行时 j=j+f(2)=1+f(2)。其中 f(2)=f(1)+1-1+1=2,因此 j=1+f(2)=1+2=3,即 printf 语句输出结果为 3。9.程序中对 fun 函数有如下说明:void * fun();此说明的含义是_。(分数:2.00)_解析:解析 C 语言中函数的定义分为有参函数的定义和无参函数的定义。无参函数的定义形式为:类型标识符函数名() 说明部分语句有参函数的定义有两种形式:类型标识符函数名(形式参数列表)形式参数说明 说明部分语句或

29、类型标识符函数名(类型名 形参 1,类型名 形参 2,) 说明部分语句10.C 语言中用于结构化程序设计的 3 种基本结构是_。(分数:2.00)A.顺序结构、选择结构、循环结构 B.if、switch、breakC.for、while、do-whileD.if、for、continue解析:解析 本题主要考查结构化程序设计的基本结构。结构化程序设计有 3 种基本结构:顺序结构、选择结构、循环结构。11.以下程序的输出结果是_。int a, b;void fun()a=100;b=200;main()int a=5, b=7;fun();printf(“% d % d /n“, a, b);(

30、分数:1.00)A.100200B.57 C.200100D.75解析:解析 函数 fun 中的 a 和 b 是全局变量,在 main 函数中全局变量 a 和 b 不起作用。因此调用函数fun 后 main 中 a 和 b 的值不变,a=5、b=7。12.以下能正确定义二维数组的是_。(分数:1.00)A.int a3;B.int a3=2*3; C.int a3=;D.int a23=1), 2, 3,4;解析:解析 (1)二维数组的定义二维数组的定义方式为:类型说明符数组名常量表达式常量表达式。二维数组在内存中是按行优先的顺序存放的,即先存放第一行的元素,再存放第二行的元素,依次类推。(2

31、)二维数组元素的引用二维数组元素的表示形式为:数组名下标下标,下标可以是整型常量或整型表达式;其范围为:0(常量表达式-1)。(3)二维数组的初始化可以用以下方法对二维数组元素初始化。分行给二维数组赋初值,例如;int a22=(1, 2), 3, 4);这种赋值方式比较直观,把第 1 个大括号内的数据赋给第 1 行的元素,第 2 个大括号内的数据赋给第 2 行的元素,即按行赋值。可以将所有数据写在一个大括号内,按数组排列的顺序对各个元素赋初值。可以对部分元素赋初值,没有初始化的元素值为 0。如果对全部数组元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。13.以下程序

32、的输出结果是_。long fun(int n)long s;if(n=1 | n=2)s=2;else s=n-fun(n-1);return s;main()printf(“% 1d/n“, fun(3); (分数:1.00)A.1 B.2C.3D.4解析:解析 在主函数中调用 fun 时,形参 n=3,所以 fun 中变量 s=n-fun(n-1)=3-fun(2)=3-2=1,即fun(3)=1。14.若有以下程序段(n 所赋值的是八进制数):int m=32767, n=032767;printf(“% d, % o/n“, m, n);执行后输出结果是_。(分数:1.00)A.327

33、67, 32767 B.32767, 032767C.32767, 77777D.32767, 077777解析:解析 “%o”以八进制无符号形式输出整数,n=032767 中的 032767 是整数的八进制形式,当以“%o”格式输出 n 时,结果仍为 32767。15.有以下程序:main()int m=3, n=4, x;x=-m+;x=x+8/+n;printf(“% d/n“, x);程序运行后的输出结果是_。(分数:1.00)A.3B.5C.-1D.-216 解析:解析 本题主要考查+执行的次序。执行过 x=-m+;后,x=-3,m=4;执行 x=x+8/+n;时8/+n=1;因此最

34、后 x=-216。16.以下定义语句中正确的是_。(分数:1.00)A.char a=A b=B;B.float a=b=19.0;C.int a=10, *b= D.float *a, b=解析:解析 选项 A 中 a=A b=B中缺少一个逗号;B 中只能定义一个,如 a=19.0;D 中 b 是 float 类型的,不能取指针地址。17.以下叙述中错误的是_。(分数:1.00)A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户所定义的标识符中,大、小写字母代表不同标识解析:解析 在 C 语言中,用户所定义的

35、标识符不能使用关键字。18.有以下程序:main()int a33, *p, i;p=for(i=0; i9; 1+)pi=i;for(i=0; i3; i+)printf(“% d“, a1i);程序运行后的输出结果是_。(分数:1.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 5 解析:解析 p 指向的 a 的首地址,由于 C 语言是行优先存储的,一维数组 p 就依次存放了 a 中从第 0行到第 2 行的所有元素,因此 a1i就对应了 p3p5。19.以下叙述正确的是_。(分数:1.00)A.可以把 define 和 if 定义为用户标识符B.可以把 define 定义为用户

36、标识符,但不能把 if 定义为用户标识符 C.可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符D.define 和 if 都不能定义为用户标识符解析:解析 if 是 C 语言中的保留字,所以不能作为用户标识符;define 是 C 语言中的预编译命令,由于 C 语言中的预编译命令都是以#开头,所以 define 可以作为用户标识符。20.数据库设计的根本目标是要解决_。(分数:1.00)A.数据共享问题 B.数据安全问题C.大量数据存储问题D.简化数据维护解析:解析 数据库集中了各种应用的数据,进行统一的构造与存储,从而使它们能够被不同的应用程序所使用。21.以下程序的

37、输出结果是_。int f()static int i=0;int s=1;s+=i; i+;return s;main()int i, a=0;for(i=0; i5; i+)a+=f();printf(“% d/n“ ,(分数:2.00)A.;解析:解析 函数 f 中变量 i 为静态变量,函数 f 调用结束后变量 i 所占据的存储单元不会释放,而在主函数中 f 被调用 5 次,具体过程如下。第 1 次调用 f:s=s+i=1+0=1,i=i+1=1,主函数中 a=a+f()=O+1=1第 2 次调用 f:s=s+1=1+1=2,i=i+1=2,丰函数中 a=a+f()=1+2=3第 3 次调

38、用 f:s=s+1=1+2=3,i=i+1=3,主函数中 a=a+f()=3+3=6第 4 次调用 f:s=s+i=1+3=4,i=i+1=4,主函数中 a=a+r()=6+4=10第 5 次调用 f:s=s+i=1+4=5,i=i+4=5,主函数中 a=a+f()=10+5=15所以 printf 语句的输出结果为 15。22.s1 和 s2 已正确定义并分别指向两个字符串。若要求:当 s1 所指串大于 s2 所指串时,执行语句 S。则以下选项中正确的是_。(分数:2.00)A.if(s1s2)S;B.if(strcmp(s1, s2)S;C.if(strcmp(s2, s1)0)S;D.i

39、f(strcmp(s1, s2)0)S; 解析:解析 C 语言中,用 strcmp(s1,s2)来比较串 s1 和 s2 的大小,当 s1s2 时,strcmp 的值为正数;当 s1=s2 时,strcmp 的值为 0;当 s1s2 时,strcmp 的值为负数。因此 D 选项的 if 语句正确。23.有以下程序:# define P 3yoid F(int x) return(p*x*x); main()printf(“% d/n“, F(3+5); 程序运行后的输出结果是_。(分数:2.00)A.192B.29C.25D.编译出错 解析:解析 F 函数没有返回值,但是函数体中又有 retu

40、rn,因此编译出错。24.有以下程序:int f(int b4)int i, j, s=0;for(j=0; j4; j+)i=j;if(i2)i=3-j;S+=bij;return s;main()int a44=1, 2, 3, 4, 0, 2, 4, 6, 3, 6, 9, 12, 3, 2, 1, 0;printf(“%d/n“, f((分数:2.00)A.);main()int i;for(i=1; ix; i+)incre();incre()static int x=1;x*=x+1;printf(“ % d“, x);(分数:2.00)A.3 3B.2 2C.2 6 D.2 5解

41、析:解析 C 语言规定如果全局变量与局部变量同名,则在局部变量的作用域内全局变量不起作用。程序开头定义的变量 x 为全局变量,函数 incre 中定义的变量 x 是局部静态变量,存放在静态存储区,incre 调用结束后不释放 x 占据的存储单元。main 函数中使用的 x 是全局变量 x=3,所以 main 函数中调用函数 incre 两次。调用过程如下。第 1 次调用:x=x*(x+1)=1(1+1)=2,printf 函数输出 2;第 2 次调用:x=x*(x+1)=2(2+1)=6,printf 函数输出 6。26.有以下程序:main()int m, n, p;scanf(“m=% d

42、n=% dp=% d“, printf(“% d % d % d/n“, m, n, p);若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789,则正确的输入是_。(分数:2.00)A.m=123n=456p=789 B.m=123 n=456 p=789C.m=123,n=456,p=789D.123 456 789解析:解析 输入变量的值的时候,输入的格式要和输入语句中那些控制格式字符串的格式一致。27.设有以下函数:f(int(分数:2.00)A.int b=0;static int c=3;b+; c+;return(a+b+c);如果在下面的

43、程序 解析:解析 本题考查静态变量的问题。函数 f 中 c 是静态变量存放在静态存储区,在程序的整个运行期间都不释放占据的存储单元。函数 f 被调用 3 次,调用过程如下。第 1 次调用;a=2、b=0、c=3,执行 b+和 c+后 b=1、c=4,f(a)=a+b+c=2+1+4=7第 2 次调用:a=2、b=0、c=4执行 b+和 c+后 b=1、c=5,f(a)=a+b+c=2+1+5=8第 3 次调用:a=2、b=0、c=5,执行 b+和 c+后 b=1、c=6,f(a)=a+b+c=2+1+6=9所以输出结果为选项 A。28.对于长度为 n 的线性表,在最坏的情况下,下列各排序法所对

44、应的比较次数中正确的是_。(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 存最坏情况下,快速排序退化为冒泡排序,冒泡排序法的基本过程参见本题的理论链接。冒泡排序的每个元素都要与它前面的元素相比较,因此比较次数为(n-1)+(n-2)+1=n(n-1)/2。29.设变量 x 为 float 型且已经赋值,则以下语句中能够将 x 中的数值保留到小数点后面两位,并将第三位四舍五入的是_。(分数:2.00)A.x=x*100+0.5/100.0B.x=(x*100+0.5)/100.0 C.x=(int)(x*100+0.5)/

45、100.0D.x=(x/100+0.5)*100.0解析:解析 选项 A 的功能是将 x 的值放大 100 倍,然后与 0.0005 相加;选项 C 的功能是将 x 中的数值保留到小数点后面两位后强制转换为整型;选项 D 的功能是将 x 与 50 相加;正确答案为选项 B。30.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句解析:解析 C 语言中,只有一个分号的语句称为空语句,程序执行时并不产生任何的动作,但是随意加分号会产生错误,例如 D 选项所说到情况,这样就产生了错误。31.有以下程序:void swapl(int c0, int c1)int t;t=coo; coo=o1o; c1o=t;void swap2(int * c0, int * c1)int t;t=*c0; *c0=*c1; *c1=t;main()int a2=3, 5, b2=A3, 5);swapl(a, a+1); swap2(printf(“%d%d%d%d/n“, a0, a1, b0,b1);程序运行后的输出结果是_。(分数:2.00)A.3 5 5 3 B.5 3 3 5C.3 5 3 5D.5 3 5 3解析:解析 swapl(a,a+1

展开阅读全文
相关资源
猜你喜欢
  • ETSI TR 102 433-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in the fre.pdf ETSI TR 102 433-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in the fre.pdf
  • ETSI TR 102 433-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in the frer g.pdf ETSI TR 102 433-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in the frer g.pdf
  • ETSI TR 102 433-2007 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in specifi.pdf ETSI TR 102 433-2007 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in specifi.pdf
  • ETSI TR 102 433-2007 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in specifiion.pdf ETSI TR 102 433-2007 Electromagnetic compatibility and Radio spectrum Matters (ERM) Digital Private Mobile Radio (DPMR) using a channel spacing of 6 25 kHz and operating in specifiion.pdf
  • ETSI TR 102 434-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) Alternative Interference Mitigation Technologies to Listen Before Talk.pdf ETSI TR 102 434-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) Alternative Interference Mitigation Technologies to Listen Before Talk.pdf
  • ETSI TR 102 434-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) Alternative Interference Mitigation Technologies to Listen Before Talkla.pdf ETSI TR 102 434-2005 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) Alternative Interference Mitigation Technologies to Listen Before Talkla.pdf
  • ETSI TR 102 436-2014 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) intended for operation in the bands 865 MHz to 868 MHz and 915 MHz to .pdf ETSI TR 102 436-2014 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) intended for operation in the bands 865 MHz to 868 MHz and 915 MHz to .pdf
  • ETSI TR 102 436-2014 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) intended for operation in the bands 865 MHz to 868 MHz and 915 MHz to om.pdf ETSI TR 102 436-2014 Electromagnetic compatibility and Radio spectrum Matters (ERM) Short Range Devices (SRD) intended for operation in the bands 865 MHz to 868 MHz and 915 MHz to om.pdf
  • ETSI TR 102 437-2006 Electronic Signatures and Infrastructures (ESI) Guidance on TS 101 456 (Policy Requirements for certification authorities issuing qualified certificates) (V1 1.pdf ETSI TR 102 437-2006 Electronic Signatures and Infrastructures (ESI) Guidance on TS 101 456 (Policy Requirements for certification authorities issuing qualified certificates) (V1 1.pdf
  • 相关搜索

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

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