【计算机类职业资格】二级C语言程序设计-5及答案解析.doc
《【计算机类职业资格】二级C语言程序设计-5及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言程序设计-5及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言程序设计-5 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:22,分数:22.00)1.以下能正确进行字符串赋值、赋初值的语句组是 A.char s5=a, e, i, 0, u; B.char *s; s=“good!“; C.char s5=“good!“; D.char s5; s=“good“;(分数:1.00)A.B.C.D.2.设有定义:char str=“ABCD“,*p=str;则语句 printf(“%d/n“, *(p+4);的输出结果是 A.68 B.0 C.字符 D 的地址 D.不确定的值(分数:1.00)A.B.C.D.
2、3.语句 printf(“%d/n“, strlen(“ATS/n012/1/“);的输出结果是 A.11 B.10 C.9 D.8(分数:1.00)A.B.C.D.4.有以下程序:#includestdio.hchar fun(char*c) if( *c=Zreturn*c;main() char s81, *p=s;gets(s);while(*p) *p=fun(p); putchar(*p); p+; putchar(/n);若运行时从键盘输入:OPEN THE DOORCR(此处CR代表 Enter 键),则程序运行后的输出结果是 A.oPEN tHE dOOR B.open th
3、e door C.OPEN THE DOOR D.Open The Door(分数:1.00)A.B.C.D.5.有以下程序:#includestdio.h#includestring.hvoid fun(char*w, int m) char s, *p1, *p2;p1=w; p2=w+m-1;while(p1p2) s=*p1+; *p1=*p2-; *p2=s; main() char a=“ABCDEFG“;fun(a, strlen(a); puts(a);程序运行后的输出结果是 A.GFEDCBA B.AGADAGA C.AGAAGAG D.GAGGAGA(分数:1.00)A.B
4、.C.D.6.有以下程序:#includestdio.hmain()char s=“ABCD“, *p;for(p=s; ps+4; p+) printf(“%s/n“, p);程序运行后的输出结果是 A.ABCD BCD CD D B.A B C D C.D C B A D.ABCD ABC AB A(分数:1.00)A.B.C.D.7.设有定义语句:char*aa2=“abed“, “ABCD“;则以下叙述中正确的是 A.aa 数组元素的值分别是字符串“abed“和“ABCD“ B.aa 是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa 数组的两个元素分别存放的是含有四个字符的
5、一维数组的首地址 D.aa 数组的两个元素中各自存放了字符a和A的地址(分数:1.00)A.B.C.D.8.有以下程序:#includestdio.hmain()char ch25=“6937“, “8254“, *p2; int i, j, s=0; for(i=0; i2; i+) pi=chi;for(i=0; i2; i+)for(j=0; pij/0 j+=2) s=10*s+pij-0;printf(“%d/n“, s);程序运行后的输出结果是 A.6385 B.69825 C.63825 D.693825(分数:1.00)A.B.C.D.9.有以下程序:#include stdi
6、o.hmain()char*alpha6=“ABCD“, “EFGH“, “IJKL“, “MNOP“, “QRST“, “UVWX“, *p;int i;p=alpha;for(i=0; i4; i+) printf(“%s“, pi);printf(“/n“);程序运行后的输出结果是 A.ABCDEFGHIJKL B.ABCD C.ABCDEFGHIJKLMNOP D.AEIM(分数:1.00)A.B.C.D.10.库函数 strcpy 用以复制字符串。若有定义和语句:char str1=“string“, str28, *str3, *str4=“string“;则以下对库函数 strc
7、py 的运用中错误的是 A.strcpy(str1, “HELLO1“); B.strcpy(str2, “HELLO2“); C.strcpy(str3, “HELLO3“); D.strcpy(str4, “HELLO4“);(分数:1.00)A.B.C.D.11.以下叙述中不正确的是 A.C 程序的 main 函数可以没有参数 B.C 程序的 main 函数可以有参数 C.C 程序的 main 函数若有参数时,第一个参数的值最少是 1 D.main 函数的第一个参数必须是整型,其名字必须是 argc;第二个参数可以定义成:char*argv,名字必须是 argv(分数:1.00)A.B.
8、C.D.12.若有以下说明和定义:#includestdio.hmain() int(*a)(int*), *b(), w10, c;int fun(int*c)则以下选项中能正确调用 fun 函数是 A.a=fun; a(w); B.a=fun; (*a)( C.b=fun; *b(w); D.fun(b);(分数:1.00)A.B.C.D.13.以下叙述中正确的是 A.C 程序中各函数之间既允许直接递归调用,也允许间接递归调用 B.C 程序中各函数之间不允许直接递归调用,也不允许间接递归调用 C.C 程序中各函数之间允许直接递归调用,不允许间接递归调用 D.C 程序中各函数之间不允许直接递
9、归调用,允许间接递归调用(分数:1.00)A.B.C.D.14.有以下程序:#includestdio.hlong fib(int n) if(n2) return (fib(n-1)+fib(n-2);else return(2);main()printf(“%ld/n“, fib(6);程序的输出结果是 A.8 B.30 C.16 D.2(分数:1.00)A.B.C.D.15.有以下程序:#includestdio.hmain() int i=1, j=3;printf(“%d,“, i+);int i=0;i+=j*2; printf(“%d, %d, “, i, j);printf(“
10、%d, %d/n“, i, j);程序运行后的输出结果是 A.1,6,3,1,3 B.1,6,3,2,3 C.1,6,3,6,3 D.1,7,3,2,3(分数:1.00)A.B.C.D.16.有以下程序:#includestdio.hvoid sub(int*, int*);main() int a=1, 2, 3, 4, i, x=0;for(i=0; i4; i+)sub(a, printf(“%d“, x); printf(“/n“); void sub(int*s, int *y) static int t=3;*y=st; t-;程序运行后的输出结果是 A.1 2 3 4 B.4 3
11、 2 1 C.0 0 0 0 D.4 4 4 4(分数:1.00)A.B.C.D.17.有以下程序:#includestdio.hint func(int, int);main()int k=4, m=1, p;p=func(k, m); printf(“%d, “, p);p=func(k, m); printf(“%d/n“, p);int func(int a, int b) static int m, i=2;i+=m+1; m=i+a+b; return(m);程序运行后的输出结果是 A.8,17 B.8,16 C.8,20 D.8,8(分数:1.00)A.B.C.D.18.有以下程
12、序:#includestdio.hvoid fun(int*s) static int j=0;do sj+=sj+1; while(+j2);main()int k, a10=1, 2, 3, 4, 5;for(k=1; k3; k+) fun(a);for(k=0; k5; k+) printf(“%d“, ak);程序运行后的输出结果是 A.34756 B.23445 C.35745 D.12345(分数:1.00)A.B.C.D.19.有以下程序:#includestdio.hf(int a) int b=0;static int c=3;a=c+, b+; return(a);mai
13、n() int a=2, i, k;for(i=0; i2; i+) k+f(a+);printf(“%d/n“, k);程序运行后的输出结果是 A.3 B.6 C.5 D.4(分数:1.00)A.B.C.D.20.有以下程序:#includestdio.hint m=13;int fun2(int x, int y) int m=3;return(x*y-m);main() int a=7, b=5;printf(“%d/n“, fun2(a, b)/m);程序运行后的输出结果是 A.1 B.2 C.7 D.10(分数:1.00)A.B.C.D.21.C 语言中,形参的缺省的存储类说明是 A
14、.auto(自动) B.static(静态) C.register(寄存器) D.extern(外部)(分数:1.00)A.B.C.D.22.以下叙述中错误的是 A.一个变量的作用域的开始位置完全取决于变量定义语句的位置 B.全局变量可以在函数以外的任何部位进行定义 C.局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用 D.一个变量说明为 static 存储类是为了限制其他编译单位的引用(分数:1.00)A.B.C.D.二、B填空题/B(总题数:16,分数:32.00)23.以下程序运行后的输出结果是_。 #includestdio.h main() ch
15、ar b=“ABCDEFG“, *chp= while(-chp putchar(/n);(分数:2.00)填空项 1:_24.以下程序运行后的输出结果是_。 #includestdio.h void fun(char*a1, char*a2, int n) int k; for(k=0; kn; k+) a2k1=(a1_k-A-3+26)%26+A; a2n=/0; main() char s15=“ABCD“, s25; fun(s1, s2, 4); puts(s2); (分数:2.00)填空项 1:_25.以下程序运行后的输出结果是_。 #includestdio.h main()
16、char *p=“BOOL“, “OPK“, “H“, “SP“; int i; for(i=3; i=0; i-, i-) printf(“%c“, *pi); printf(“/n“); (分数:2.00)填空项 1:_26.有以下程序,若运行时从键盘输入字符串 qwerty回车和 abed回车,则程序的输出结果是_。 #includestring.h #includestdio.h strle(char a, char b) int num=0, n=0; while(*(a+num)!=/0)num+; while(bn)*(a+num)=bn; num+; n+; return(nu
17、m); main() char str181, str281, *p1=str1, *p2=str2; gets(p1); gets(p2); printf(“%d/n“, strle(p1, p2); (分数:2.00)填空项 1:_27.以下程序运行后的输出结果是_。 #includestdio.h #includestring.h #includectype.h void fun(char str) int i, j; for(i=0, j=0; stri; i+) if(isalpha(stri) strj+=stri; strj=/0; main() char ss80=“It is
18、!“; fun(ss); printf(“%s/n“, ss); (分数:2.00)填空项 1:_28.以下 fun 函数的功能是将一个字符串的内容颠倒过来,请填空。 #includestdio.h #includestring.h void fun(char str) int i, j, k; for(i=0, j=_; ij; i+, _) k=stri; stri=strj; strj=k; (分数:2.00)填空项 1:_29.以下程序运行后的输出结果是_。 #includestdio.h #includestring.h main() printf(“%d/n“, strlen(“s
19、/n/016/0end“); (分数:2.00)填空项 1:_30.以下程序运行后的输出结果是_。 #includestring.h #includestdio.h main() char s20=“goodgood!“, *sp=s; sp=sp+2; sp=“to“; puts(s); (分数:2.00)填空项 1:_31.假定以下程序经编译和连接后生成可执行文件 PROG.EXE,如果在 DOS 提示符下键入 PROG ABCD EFGH IJKLCR(此处CR代表 Enter 键) 则输出结果为_。 #includestdio.h main(int argc, char*argv) w
20、hile(-argc0) printf(“%s“, argvargc); printf(“/n“); (分数:2.00)填空项 1:_32.以下程序的输出结果是_。 #includestdio.h int fun(int x) int p; if(x=0x=1)return(3); p=x-fun(x-2); return p; main() printf(“%d/n“, fun(9); (分数:2.00)填空项 1:_33.以下程序的输出结果是_。 #includestdio.h int fun(int n, int*s) int f1, f2; if(n=1n=2)*s=1; else f
21、un(n-1, fun(n-2, *s=f1+f2; main() int x; fun(6, printf(“%d/n“, x); (分数:2.00)填空项 1:_34.以下程序调用 invert 函数按逆序重新放置 a 数组中元素的值,a 数组中的值在 main 函数中读入。请填空。 #define N 10 void invert(int*s, int i, int j) int t; if(ij) t=*(s+i); *(s+i)=_; *(s+j)=t; invert(s, _, j-1); main() int aN, i; for(i=0; iN; i+) scanf(“%d“,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言程序设计 答案 解析 DOC
