【计算机类职业资格】二级C语言-268及答案解析.doc
《【计算机类职业资格】二级C语言-268及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-268及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-268 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:100.00)1.有以下程序 #includestdio.h int f(int x); main() int a, b=0; for(a=0; a3; a+=1) b+=f(a); putchar(“A“+b); int f(int x) return x*x+1; 程序运行后输出结果是_。(分数:2.00)A.BDIB.BCDC.ABED.BCF2.有以下程序 #includestdio.h int add(int a, int h)return(a+b); main() int
2、k, (*f)(int, int), a=5, b=10; f=add; 则以下函数调用语句错误的是_。(分数:2.00)A.k=*f(a, b);B.k=add(a, b);C.k=(*f)(a, b);D.k=f(a, b);3.有以下程序 #includestdio.h int f(int x); main() int n=1, m; m=f(f(f(n); printf(“%d/n“, m); int f(int x) return x*2; 程序运行后的输出结果是_。(分数:2.00)A.4B.2C.8D.14.以下叙述中正确的是_。(分数:2.00)A.简单递归不需要明确的结束递归
3、的条件B.任何情况下都不能用函数名作为实参C.函数的递归调用不需要额外开销,所以效率很高D.函数既可以直接调用自己,也可以间接调用自己5.设有如下函数定义 #includestdio.h int fun(int k) if(k1)return 0; else if(k=1)return 1; else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数 fun 总共被调用的次数是_。(分数:2.00)A.3B.2C.4D.56.有以下程序 #includestdio.h int fun(int x) int p; if(x=0|x=1) return(3); p=
4、x-fun(x-2); return p; main() printf(“%d/n“, fun(7); 执行后的输出结果是_。(分数:2.00)A.2B.3C.7D.07.若有以下程序 #includestdio.h int f(int a, int n) if(n1) int t; t=f(a, n-1); returntan-1?t:an-1; else return a0; main() int a=8, 2, 9, 1, 3, 6, 4, 7, 5; printf(“%d/n“, f(a, 9); 则程序的输出结果是_。(分数:2.00)A.1B.9C.8D.58.有以下程序 #inc
5、ludestdio.h void fun(int n, int*s) int f; it(n=1)*s=n+1; else fun(n-1, *s=f; main() int x=0; fun(4, printf(“%d/n“, x); 程序运行后的输出结果是_。(分数:2.00)A.3B.1C.2D.49.有以下程序 #includestdio.h void fun(int a, int b) int t; t=a; a=b; b=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; for(i=0; i10; i+=2) fun(ci, ci
6、+1); for(i=0; i10; i+) printf(“%d,“, ci); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.1, 2, 3, 4, 5, 6, 7, 8, 9, 0,B.2, 1, 4, 3, 6, 5, 8, 7, 0, 9,C.0, 9, 8, 7, 6, 5, 4, 3, 2, 1,D.0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10.有以下程序 #includestdio.h void fun(int a, int n) int i, t; for(i=0; in/2; i+)t=ai; ai=an-1-i; an-1-i=t
7、; main() int k10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; fun(k, 5); for(i=2; i8; i+)printf(“%d“, ki); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.345678B.876543C.1098765D.32167811.有以下程序 #includestdio.h #define N 4 void fun(int aN, int b) int i; for(i=0; iN; i+) bi=aii-aiN-1-i; main() int xNN=1, 2, 3, 4, 5, 6, 7, 8
8、, 9, 10, 11, 12, 13, 14, 15, 16, yN, i; fun(x, y); for(i=0; iN; i+)printf(“%d,“, yi); printf(“/n“); 程序运行后的输出结果是()。(分数:2.00)A.-3, -1, 1, 3,B.-12, -3, 0, 0,C.0, 1, 2, 3,D.-3, -3, -3, -3,12.有以下程序 #includestdio.h void f(int*q) int i=0; for(;i5; i+)(*q)+; main() int a5=1, 2, 3, 4, 5, i; f(a); for(i=0; i5
9、; i+)printf(“%d,“, ai); 程序运行后的输出结果是_。(分数:2.00)A.2, 2, 3, 4, 5,B.6, 2, 3, 4, 5,C.1, 2, 3, 4, 5,D.2, 3, 4, 5, 6,13.有以下程序 #includestdio.h int fun(int(*s)4, int n, int k) int m, i; m=s0k; for(i=1; in; i+) if(sikm) m=sik; return m; main() int a44=1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34
10、; printf(“%d/n“, fun(a, 4, 0); 程序的运行结果是_。(分数:2.00)A.31B.34C.4D.3214.若有以下程序 #includestdio.h #define N 4 void fun(int aN, int b, int flag) int i, j; for(i=0; iN; i+) bi=ai0; for(j=1; jN; j+) if(flag?(biaij):(biaij) bi=aij; main() int xNN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, yN, i; fu
11、n(x, y, 1); for(i=0; iN; i+)printf(“%d,“, yi); fun(x, y, 0); for(i=0; iN; i+)printf(“%d,“, yi); printf(“/n“); 则程序的输出结果是_。(分数:2.00)A.1, 2, 3, 4, 13, 14, 15, 16,B.4, 8, 12, 16, 1, 5, 9, 13,C.1, 5, 9, 13, 4, 8, 12, 16,D.13, 14, 15, 16, 1, 2, 3, 4,15.若有以下程序 #includestdio.h void fun(int a, int n) int t,
12、i, j; for(i=1; in; i+=2) for(j=i+2; jn; j+=2) if(aiaj)t=ai; ai=aj; aj=t; main() int c10=10, 9, 8, 7, 6, 5, 4, 3, 2, 1, i; fun(c, 10); for(i=0; i10; i+)printf(“%d,“, ci); printf(“/n“); 则程序的输出结果是_。(分数:2.00)A.2, 9, 4, 7, 6, 5, 8, 3, 10, 1,B.10, 9, 8, 7, 6, 5, 4, 3, 2, 1,C.10, 1, 8, 3, 6, 5, 4, 7, 2, 9,
13、D.1, 10, 3, 8, 5, 6, 7, 4, 9, 2,16.有以下程序 #includestdio.h int f(int n) int t=0, a=5; if(n/2)int a=6; t+=a+; elseint a=7; t+=a+; return t+a+; main() int s=0, i=0; for(;i2; i+)s+=f(i); printf(“%d/n“, s); 程序运行后的输出结果是_。(分数:2.00)A.36B.28C.32D.2417.以下叙述中正确的是_。(分数:2.00)A.只要是用户定义的标识符,都有一个有效的作用域B.只有全局变量才有自己的作
14、用域,函数中的局部变量没有作用域C.只有在函数内部定义的变量才是局部变量D.局部变量不能被说明为 static18.以下叙述中正确的是_。(分数:2.00)A.在复合语句中不能定义变量B.对于变量而言,“定义”和“说明”这两个词实际上是同一个意思C.全局变量的存储类别可以是静态类D.函数的形式参数不属于局部变量19.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:2.00)A.extern 和 registerB.auto 和 registerC.auto 和 staticD.staric 和 register20.以下选项中叙述错误的是_。(分数:2.00)A.在
15、C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内B.C 程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函数的形参不可以说明为 static 型变量21.有以下程序 #includestdio.h int fun(int x, int y) static int m=0, i=2; i+=m+1; m=i+x+y; return m; main() int j=1, m=1, k; k=fun(j, m); printf(“%d“, k); k=fun(j, m); printf(“%d/
16、n“, k); 执行后的输出结果是_。(分数:2.00)A.5, 11B.5, 5C.11, 11D.11, 522.有以下程序 #includestdio.h int fun() static int x=1; x*=2; return x; main() int i, s=1; for(i=1; i=3; i+)s*=fun(); printf(“%d/n“, s); 程序运行后的输出结果是_。(分数:2.00)A.30B.10C.0D.6423.有以下程序 #includestdio.h int fun() statie int x=1; x+=1; return x; main() i
17、nt i, s=1; for(i=1; i=5; i+)s+=fun(); printf(“%d/n“, s); 程序运行后的输出结果是_。(分数:2.00)A.21B.11C.6D.12024.有以下程序 #includestdio.h 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; far(;i2; i+)s+=f(i); printf(“%d/n“, s); 程序运行后的输出结果是_。
18、(分数:2.00)A.36B.24C.32D.2825.若有定义语句: double a, *p= 以下叙述中错误的是_。(分数:2.00)A.定义语句中的 p 只能存放 double 类型变量的地址B.定义语句中的*号是一个说明符C.定义语句中的*号是一个间址运算符D.定义语句中*p= 执行 px= py= 正确的输入语句是_。(分数:2.00)A.scanf(“%lf%lf“, px, py);B.scanf(“%f%f“C.scanf(“%f%f“, x, y);D.scanf(“%lf%lf“, x, y);27.以下程序段完全正确的是_。(分数:2.00)A.int *p; scan
19、f(“%d“, p)p;B.int k, *p= scanf(“%d“, p);C.int *p; scanf(“%d“, D.int k, *p; *p= scanf(“%d“, p);28.有以下程序 #includestdio.h void fun(char *c, int d) *c=*c+1; d=d+1; printf(“%c, %c,“, *c, d); main() char b=“a“, a=“A“; fun( printf(“%c, %c/n“, b, a); 程序运行后的输出结果是_。(分数:2.00)A.b, B, b, AB.b, B, B, AC.a, B, B,
20、aD.a, B, a, B29.设有定义: int x=0, *p; 紧接着的赋值语句正确的是_。(分数:2.00)A.*p=x;B.*p=NULL;C.p=x;D.p=NULL;30.设已有定义: float x; 则以下对指针变量 p 进行定义且赋初值的语句中正确的是_。(分数:2.00)A.float *p=B.int *p=(float)x;C.float p=D.float *p=1024;31.若有以下程序 #includestdio.h void sp(int *a) int b=2; a= *a=*a*2; printf(“%d,“, *a); main() int k=3,
21、*p= sp(p); printf(“%d, %d/n“, k, *p); 则程序的输出结果是_。(分数:2.00)A.4, 3, 4B.4, 3, 3C.6, 3, 6D.6, 6, 632.若有以下程序 #includestdio.h int *f(int *s, int *t) int *k; if(*s*t)k=s; s=t; t=k; return s; main() int i=3, j=5, *p= r=f(p, q); printf(“%d, %d, %d, %d, %d/n“, i, j, *p, *q, *r); 则程序的输出结果是_。(分数:2.00)A.5, 3, 5,
22、 3, 5B.3, 5, 5, 3, 5C.3, 5, 3, 5, 5D.5, 3, 3, 5, 533.若有定义语句: int year=2009, *p= 以下不能使变量 year 中的值增至 2010 的语句是_。(分数:2.00)A.*p+;B.(*p)+;C.+(*p);D.*p+=1;34.以下叙述中正确的是_。(分数:2.00)A.在对指针进行加、减算术运算时,数字 1 表示 1 个存储单元的长度B.如果 p 是指针变量,则*p 表示变量 p 的地址值C.如果 p 是指针变量,则 r=p; p=q; q=r; printf(“%d, %d, %d, %d/n“, m, n, *p
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 268 答案 解析 DOC
