【计算机类职业资格】国家二级(C语言)机试模拟试卷140及答案解析.doc

上传人:priceawful190 文档编号:1334730 上传时间:2019-10-17 格式:DOC 页数:14 大小:83.50KB
下载 相关 举报
【计算机类职业资格】国家二级(C语言)机试模拟试卷140及答案解析.doc_第1页
第1页 / 共14页
【计算机类职业资格】国家二级(C语言)机试模拟试卷140及答案解析.doc_第2页
第2页 / 共14页
【计算机类职业资格】国家二级(C语言)机试模拟试卷140及答案解析.doc_第3页
第3页 / 共14页
【计算机类职业资格】国家二级(C语言)机试模拟试卷140及答案解析.doc_第4页
第4页 / 共14页
【计算机类职业资格】国家二级(C语言)机试模拟试卷140及答案解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、国家二级(C 语言)机试模拟试卷 140 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.关于栈的叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确2.关于栈的叙述中正确的是( )。(分数:2.00)A.栈底元素最先能被删除B.栈顶元素最后才能被删除C.栈顶元素永远不能被删除D.栈顶元素最先被删除3.某二叉树共有 5 个节点,其中叶子节点只有 1 个,则该二叉

2、树的深度为(假设根节点在第 1 层)( )。(分数:2.00)A.3B.4C.5D.74.计算机软件可分为应用软件、系统软件和支撑软件。下面属于应用软件的是( )(分数:2.00)A.Office 文字处理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.不属于结构化程序基本结构的是( )。(分数:2.00)A.顺序结构B.重复(循环)结构C.选择(分支)结构D.GOTO 跳转6.关于软件设计的叙述中不正确的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图

3、是软件详细设计的表示工具7.数据库查询语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据控制语言D.数据操纵语言8.一个学生可选多门课程,一门课程也可由多个学生来选。则学生和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.并C.除D.差10.在 C 语言中可以作为无符号整数类实例化值的是( )。(分数:2.00)A.123B.123C.0123D.整数集合1,2,311.关于 C 语言语句的叙述中正确的是( )。(分数:2.00)A.C 语言的

4、数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间12.关于 C 程序运行的叙述中错误的是( )。(分数:2.00)A.C 程序在运行过程中所有计算都以十六进制方式进行B.C 程序在运行过程中所有计算都以二进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASC码值13.以下不合法的字符常量是( )。(分数:2.00)A.nB.C.083D.xcc14.以下合法的定义语句是( )。(分数:2.

5、00)A.float,a,b;B.float a=b=7;C.floata:b;D.float a=7,b=7;15.若 int a=3,b=2,c=1;则赋值表达式有误的是( )。(分数:2.00)A.a=(b+4)=1;B.a=b=c+3;C.a=(b=2)+cD.a=2+(b=c=3);16.与 while(E)中的(E)不等价的表达式是( )。(分数:2.00)A.(E0E0)B.(E=0)C.(!E=0)D.(E!=0)17.已知 A 和 a 的 ASC码值分别是 65 和 97,以下不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(c 一A)

6、32+aB.c=c+32C.c=cA+aD.c=(c 一A)26+a18.若对于 int x,y;能通过 scanf(d;d,&x,&y);将整数 1 赋给变量 x,2 赋给变量 y 的输入数据是( )。(分数:2.00)A.1 2B.1,2C.1;2D.1219.k=ab?(bc?1:0):0 的功能是( )。(分数:2.00)A.if(ab)(bc)k=1; else k=0;B.if(ab)&(bc)k=1; else k=0;C.if(a=b)k=0; else if(b=c)k=1;D.if(ab)k=1; else if(bc)k=1; else k=0;20.有以下程序: #ln

7、clude main() int x=1,y=3; for(;x4;x+)y+=x;x+=1; printf(d,dn,x,y); 程序运行后的输出结果是( )。(分数:2.00)A.5,7B.4,9C.5,9D.4721.有以下程序: #lnclude main() int i,j,x=14; for(i=1;i=3;i+) for(j=3;j:i;j+)x=xj; printf(dn,x); 程序运行后的输出结果是( )。(分数:2.00)A.0B.1C.2D.322.有以下程序: #include main() int x=1; for(;x8;x+) if(x3) printf(d,x

8、+); continue; printf(d,+x); 程序运行后的输出结果是( )。(分数:2.00)A.1,4,5,7B.1,3,5,7C.2,4,5,8D.8,5,4,223.关于 C 语言函数的叙述中错误的是( )。(分数:2.00)A.C 程序必须由一个或一个以上的函数组成B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过 return 语句返回D.函数形参的值也可以传回给对应的实参24.有以下程序:#includestdiohmain()int a=2,b=3,c=4;int*p1=&a,*p2=&b,*p=&c;*p=2+*p1*(*p2);printf(dn,c

9、);程序执行后的输出结果是( )。(分数:2.00)A.4B.2C.3D.825.有以下程序: #include void fun(int*p,int*q); main() int m=1,n=2,*r=&m; fun(r,&n);printf(d,d,m,n); void fun(int*P,int*q) P=p+1; *q=*q*5; 程序运行后的输出结果是( )。(分数:2.00)A.1,5B.1,10C.2,5D.2,1026.若有定义语句:int a23,*P;则以下语句中正确的是( )。(分数:2.00)A.p=a;B.p=a12;C.p=&a12;D.p=&a;27.以下程序中函

10、数 fun 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进 行由大到小排序。 #include void fun(int b,int n,int flag) int i,j,t; for(i=0;in 一 1;i+) for(j=i+1;jn;j+) if(flag?bibj:bibj) t=bi;bi=bj;bj=t main() int a10=7,3,5,1,8,6,4,i,*p; p=a; fun(p+1,5,0); fun(a,5,1); for(i=0;i10;i+) printf(d,ai); 程序运行后的输出结果是( )。(分数:2.00)A

11、.3,5,6,7,8,1,4,B.8,7,6,5,3,1,4,C.8,7,6,5,4,3,1,D.1,3,4,5,6,7,8,28.有以下程序: #include main() int 812=1,2,3,4,4,3,2,1,0,1,2,3,c5=0,i; for(i=0;i12;i+) csi/+; for(i=0;i5;i+) printf(d,ci); printf(n); 程序运行后的输出结果是( )。(分数:2.00)A.1,3,3,3,2B.4,3,3,3,2C.1,2,3,4,5D.5,4,3,2,129.关于字符串的定义语句,以下选项正确的是( )。(分数:2.00)A.cha

12、r str=x34;B.char str=0;C.char str=;D.char str=28;30.关于字符串的叙述中正确的是( )。(分数:2.00)A.C 语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串比空格打头的字符串小31.有以下程序: #include void fun(char*x,char*y) while(*x=*)x+; while(*y=*x)y+;x+; main() char*s=*x*y,t80; fun(s,t);puts(t); 程序运行后的输出结果是( )。(分数:2.

13、00)A.xyB.xC.x*yD.y32.下列函数的功能是( )。void fun(char*x,char*y)while(*y=*x)!=0)x+;y+;(分数:2.00)A.使指针 y 指向 x 所指字符串B.求 x 和 y 中长度较长的那个字符串的长度C.比较字符串 x 和 yD.将 x 所指字符串赋给 y 所指字符串空间33.有以下程序: #include int f(int a) int b; if(a=1) return(3); b=af(a 一 2); return b; main() printf(dn,f(7); 程序执行后的输出结果是( )。(分数:2.00)A.1B.2C

14、.3D.734.有以下程序: #include int fun() static int m=l; retum m*=3; main() int i=2,s=1; while(i 一一)s=fun(); printf(dn,s); 程序运行后的输出结果是( )。(分数:2.00)A.1B.3C.9D.235.关于结构体类型的说明和变量定义,以下选项正确的是( )。(分数:2.00)A.stmct REC; char c;int m;float s; REC t1,t2;B.typedef struct char c;int m;float s;REC; REC t1,c2;C.typedef

15、struct REC; char c;int m;float s;t1,t2;D.struct char c;int m;float s;REC; REC t1,t2;36.在如图所示的链表中,可将 q 所指节点从链表中删除并释放该节点的是( )。 (分数:2.00)A.(*p)next=(*q)next;free(p);B.p=q 一next;free(q);C.p=q;free(q);D.p 一next=q 一next;free(q);37.有以下程序: #include #include stmct STU int a; char b10; float c; ; void fun(str

16、uct STU t); main() struct STU a=1001,Tim,6350; fun(a); printf(d,s,51fn,aa,ab,ac); void fun(struct STU t) ta=1002: strcpy(tb,Dom); tc=7010; 程序运行后的输出结果是( )。(分数:2.00)A.1001,Tim,6350B.1002,Dom,7010C.1002,Dom,7010D.1001,Tim,701038.有以下程序: #include #define M 6 #define g(x)(x*M) main() int m,n,k=1; m=g(k+1)

17、; n=g(2); printf(d,dn,m,n); 程序运行后的输出结果是( )。(分数:2.00)A.7,12B.12,12C.7,11D.7,739.设 fp 为指向某二进制文件末尾的指针,则函数 feof(fp)的返回值为( )。(分数:2.00)A.0B.0C.1D.非 0 值40.有以下程序: #include main() intx=5,y=1,t; t=(x1)ly; printf(dn,t); 程序运行后的输出结果是( )。(分数:2.00)A.1B.11C.6D.21二、程序填空题(总题数:1,分数:2.00)41.下列给定程序中,函数 fun 的功能是:从形参 ss 所

18、指字符串数组中,删除所有串长超过 k 的字符串,函数返回剩余字符串的个数。SS 所指字符串数组中共有 N 个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1C 中。不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 10 int fun(char(*ss)M,int k) int i,j=0,len; *found* for(i=0;i【1】;i+) len=strlen(ssi); *found* if(1en=【2】) *found* s

19、trcpy(ssj+,【3】); return j; main() char xNM=Beijing,Chongqing,Tianjin,Nanjing,Guangzhou; int j,f; printf(nThe original stringnn); for(i=0;iN;i+) puts(xi); printf(n); f=fun(x,7); printf(The string witch length is less than or equal to 7:n); for(i=0;if;i+)puts(xi); printf(n); (分数:2.00)_三、程序修改题(总题数:1,分数

20、:2.00)42.下列给定程序中函数 fun 的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。例如,当 s 中的数为 87653142 时,t 中的数为 8642。 请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件 MOD11c 中,不得增行或删行,也不得更改程序的结构!#includestdiohvoid fun(10ng s,long*t)int d:long sl=1;*found*t=0;while(s0)d=s10;*found*if(d2=1)*t=d*sl+*t:sl*=10:s=10;main()long s,

21、t;printf(nPlease enter s:);scanf(ld,&s);fun(s,&t):printf(The result is;ldn,t);(分数:2.00)_四、程序设计题(总题数:1,分数:2.00)43.编写函数 fun,其功能是:将所有大于 1 小于整数 m 的非素数存入 xx 所指数组中,非素数的个数通过k 返回。例如,若输入 17,则应输出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#includestdiohvoid f

22、un(int m,int*k,int xx)main() int m,n,zz100;void NONO();printf(nPlease enter an integer number between 10 and 100:);scanf(d,&n)fun(n,&m,zz);prinff(nnThere ared nonprime numbers less thand:,m,n);for(n=0;nm;n+)printf(n4d,zzn);NONO();void NONO()*请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*int m,n,zz100;FILE*

23、rf,*wf;rf=fopen(indat,r);Wf=fopen(outdat,w);fscanf(rf,dt,&n);fun(n,&m,zz);fprintf(wf,dndn,m,n);for(n=0;nm;n+)fprintf(wf,dkn,zzn);fclose(rf);fclose(wf);(分数:2.00)_国家二级(C 语言)机试模拟试卷 140 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.关于栈的叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素

24、随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D.以上说法都不正确解析:解析:栈的存取原则是先进后出,所以,栈底指针不变,栈中元素随栈顶指针的变化而动态变化。2.关于栈的叙述中正确的是( )。(分数:2.00)A.栈底元素最先能被删除B.栈顶元素最后才能被删除C.栈顶元素永远不能被删除D.栈顶元素最先被删除 解析:解析:栈的存取原则是先进后出,所以最后进入的栈顶元素将最先被删除。3.某二叉树共有 5 个节点,其中叶子节点只有 1 个,则该二叉树的深度为(假设根节点在第 1 层)( )。(分数:2.00)A.3B.4C.5 D.7解析:解析:二叉树中度为

25、 0 的节点(叶子节点),总是比度为 2 节点多 1 个,所以此题中,度为 2 的节点是 1 一 1=0 个,因此,本题中的其他节点均为度为 1 的节点,该二叉树只有一个分支,且深度为 5。4.计算机软件可分为应用软件、系统软件和支撑软件。下面属于应用软件的是( )(分数:2.00)A.Office 文字处理系统 B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统解析:解析:操作系统、编译程序和数据库管理系统都属于系统软件。5.不属于结构化程序基本结构的是( )。(分数:2.00)A.顺序结构B.重复(循环)结构C.选择(分支)结构D.GOTO 跳转 解析:解析:结构化程序基本结构包

26、括顺序结构、重复(循环)结构和选择(分支)结构。6.关于软件设计的叙述中不正确的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析:软件设计是将软件需求转换为软件表示的过程,设计过程中 PAD 图是软件详细设计的表示工具。但系统总体结构图主要是确定算法和数据结构,而非详细设计。7.数据库查询语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据控制语言D.数据操纵语言 解析:解析:数据操纵语言是指对数据的增、删、改、查;数

27、据控制语言负责数据的完整性、安全性的定义与检查等,数据定义与数据管理语言也不涉及查询。8.一个学生可选多门课程,一门课程也可由多个学生来选。则学生和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系 解析:解析:一个学生可选多门课程,一门课程也可由多个学生来选,所以他们之间是多对多的关系。9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.并C.除D.差 解析:解析:S+T=R,所以 T=SR。10.在 C 语言中可以作为无符号整数类实例化值的是( )。(分数:2.00)A.123B.123 C.0123D.整数集合1

28、,2,3解析:解析:选项 A 是负数,选项 C 是小数,选项 D 是数组,所以只有选项 B 正确。11.关于 C 语言语句的叙述中正确的是( )。(分数:2.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间 解析:解析:C 语言的常量中不能夹带空格,C 语言的变量必须是先定义才能使用,C 语言的表达式两边可以是不同的类型,在运算时会进行强制转换成数度较高的类型。12.关于 C 程序运行的叙述中错误的是( )。(分数:

29、2.00)A.C 程序在运行过程中所有计算都以十六进制方式进行 B.C 程序在运行过程中所有计算都以二进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASC码值解析:解析:C 程序在运行过程中所有计算都以二进制方式进行,所以 A 项错误,其他选项均正确。13.以下不合法的字符常量是( )。(分数:2.00)A.nB.C.083 D.xcc解析:解析:AB 两项是转义字符,选项 D 是十六进制,选项 C 是八进制,但其中不能包含 8,C 项错误。14.以下合法的定义语句是( )。(分数:2.00)A.float,a,b;B.float a=b=7;

30、C.floata:b;D.float a=7,b=7; 解析:解析:选项 A 的关键字与变量名之间应该用空格而不是逗号,选项 B 不能对没有定义的变量(a)赋值,选项 C 中间的冒号使用错误。15.若 int a=3,b=2,c=1;则赋值表达式有误的是( )。(分数:2.00)A.a=(b+4)=1; B.a=b=c+3;C.a=(b=2)+cD.a=2+(b=c=3);解析:解析:不能给表达式赋值。16.与 while(E)中的(E)不等价的表达式是( )。(分数:2.00)A.(E0E0)B.(E=0) C.(!E=0)D.(E!=0)解析:解析:while(E)中的 E 是指不为 0

31、的值,A 项与 D 项正确,选项 C 与选项 D 等价,选项 B 不等价。17.已知 A 和 a 的 ASC码值分别是 65 和 97,以下不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(c 一A)32+a B.c=c+32C.c=cA+aD.c=(c 一A)26+a解析:解析:选项 B 和 C 是最常用的方法,因为 C 与A之间的差值是小于 26 的,所以 D 选项与 C 选项等值,唯有选项 A 有误。18.若对于 int x,y;能通过 scanf(d;d,&x,&y);将整数 1 赋给变量 x,2 赋给变量 y 的输入数据是( )。(分数:2.0

32、0)A.1 2B.1,2C.1;2 D.12解析:解析:scanf 是严格按照格式获取数据的,因此在输入时需要以分号进行分隔。19.k=ab?(bc?1:0):0 的功能是( )。(分数:2.00)A.if(ab)(bc)k=1; else k=0;B.if(ab)&(bc)k=1; else k=0; C.if(a=b)k=0; else if(b=c)k=1;D.if(ab)k=1; else if(bc)k=1; else k=0;解析:解析:这是问号表达式的嵌套,问号前的表达式为真时 k 取冒号前的值,否则 k 取冒号后面的值。20.有以下程序: #lnclude main() int

33、 x=1,y=3; for(;x4;x+)y+=x;x+=1; printf(d,dn,x,y); 程序运行后的输出结果是( )。(分数:2.00)A.5,7 B.4,9C.5,9D.47解析:解析:注意到 for 循环中的循环变量 x 除了在循环表达式中加 1 外,在循环体中也有个加 1 的运算,所以循环变量 x 的值每次会加 2,循环体将循环 2 次,x=1,x=3,所以 y=3+1+3=7,循环后 x 的变量是5。21.有以下程序: #lnclude main() int i,j,x=14; for(i=1;i=3;i+) for(j=3;j:i;j+)x=xj; printf(dn,x

34、); 程序运行后的输出结果是( )。(分数:2.00)A.0B.1C.2 D.3解析:解析:外部 for 循环变量 i=1,2,3,内部 for 循环的判断条件是 j=i,且 j 的初值是 3,所以只有外部循环 i=3 时,才能执行内部循环,且只循环一次,此时 i=3,所以 x=143=2。22.有以下程序: #include main() int x=1; for(;x8;x+) if(x3) printf(d,x+); continue; printf(d,+x); 程序运行后的输出结果是( )。(分数:2.00)A.1,4,5,7 B.1,3,5,7C.2,4,5,8D.8,5,4,2解

35、析:解析:注意循环变量在循环体中有个加 1 的运算,所以循环变量 x=1,3,5,7;当 x 是 3 的整数倍时,输出+x,当 x 不是 3 的整数倍时输出 x+,所以结果是 1,4,5,7。23.关于 C 语言函数的叙述中错误的是( )。(分数:2.00)A.C 程序必须由一个或一个以上的函数组成B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过 return 语句返回D.函数形参的值也可以传回给对应的实参 解析:解析:函数形参是形式上的变量,主调用函数中的实参向函数的形参传递数据是值传递,所以形参的值不会回传给对应的实参。因此 D 选项说法不正确。24.有以下程序:#inc

36、ludestdiohmain()int a=2,b=3,c=4;int*p1=&a,*p2=&b,*p=&c;*p=2+*p1*(*p2);printf(dn,c);程序执行后的输出结果是( )。(分数:2.00)A.4B.2C.3D.8 解析:解析:指针指向的是变量的地址,所以指针变量所指向的空间的值发生变化,其指向的变量的值会同时发生变化,因此,c=2+a*b=2+2*3=8。25.有以下程序: #include void fun(int*p,int*q); main() int m=1,n=2,*r=&m; fun(r,&n);printf(d,d,m,n); void fun(int*

37、P,int*q) P=p+1; *q=*q*5; 程序运行后的输出结果是( )。(分数:2.00)A.1,5B.1,10 C.2,5D.2,10解析:解析:函数是地址传递,所以子函数中的变化会反映到主函数中的变量上,但要注意的是,在指针引用时必须在前面加上*,否则操作的是地址本身,而不是其指向的变量的值,因此 p=p+1 会将 p 指向下一个整型地址,*q=*q*5 会操作 n 的值,m 的值没有变化,所以结果是 1,10。26.若有定义语句:int a23,*P;则以下语句中正确的是( )。(分数:2.00)A.p=a;B.p=a12;C.p=&a12; D.p=&a;解析:解析:a 是一个

38、二维数组,类型是 int*,a12是一个 int 型,&a12是一个 int*,所以 C项正确,a 是数组名不能取地址,所以 D 项不正确。27.以下程序中函数 fun 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进 行由大到小排序。 #include void fun(int b,int n,int flag) int i,j,t; for(i=0;in 一 1;i+) for(j=i+1;jn;j+) if(flag?bibj:bibj) t=bi;bi=bj;bj=t main() int a10=7,3,5,1,8,6,4,i,*p; p=a; fu

39、n(p+1,5,0); fun(a,5,1); for(i=0;i10;i+) printf(d,ai); 程序运行后的输出结果是( )。(分数:2.00)A.3,5,6,7,8,1,4, B.8,7,6,5,3,1,4,C.8,7,6,5,4,3,1,D.1,3,4,5,6,7,8,解析:解析:子函数的功能题目已经明确,所以不用去关注;注意第 1 次调用并排序的是从数组的第 2 个元素开始的 5 个元素,所以排序后的结果是:7,8,6,5,3,1,4,第 2 次调用的是整个数组,并对前5 个元素进行排序,最终结果是 3,5,6,7,8,1,4。28.有以下程序: #include main(

40、) int 812=1,2,3,4,4,3,2,1,0,1,2,3,c5=0,i; for(i=0;i12;i+) csi/+; for(i=0;i5;i+) printf(d,ci); printf(n); 程序运行后的输出结果是( )。(分数:2.00)A.1,3,3,3,2 B.4,3,3,3,2C.1,2,3,4,5D.5,4,3,2,1解析:解析:for 循环中是对 c赋值,但 c的下标由 si确定,所以通过数 s中的下标个数便可知对应的 c的值,其中 s的值中,0,1,2,3,4 分别出现了 1,3,3,3,2 次,所以 c0=1,c1=c2:c3=3,c4=2。29.关于字符串的

41、定义语句,以下选项正确的是( )。(分数:2.00)A.char str=x34;B.char str=0; C.char str=;D.char str=28;解析:解析:字符串是用数组存放的一串字符,要用双引号括起来,所以 C 项和 D 项不正确,它们是没有用双引号,A)项不正确,因为定义的是字符而不是字符串。30.关于字符串的叙述中正确的是( )。(分数:2.00)A.C 语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串比空格打头的字符串小 解析:解析:C 语言中没有字符串类型的数据,只有字符型数据,

42、字符串是用数组存放的一组字符,字符串比较是只比较第一个不相同的字符的大小(ASC代码),字符串的比较可以使用库函数 atrcnp(),另外也可以缩写程序来比较,但不能使用关系运算符进行比较。31.有以下程序: #include void fun(char*x,char*y) while(*x=*)x+; while(*y=*x)y+;x+; main() char*s=*x*y,t80; fun(s,t);puts(t); 程序运行后的输出结果是( )。(分数:2.00)A.xyB.xC.x*y D.y解析:解析:子函数的功能是将字符串 x 拷贝到宇符串 y 中,如果 x 前面是*,则从不是*

43、的字符开始拷贝,但如果有非*得字符出现,则后面即使出现*也会被拷贝。32.下列函数的功能是( )。void fun(char*x,char*y)while(*y=*x)!=0)x+;y+;(分数:2.00)A.使指针 y 指向 x 所指字符串B.求 x 和 y 中长度较长的那个字符串的长度C.比较字符串 x 和 yD.将 x 所指字符串赋给 y 所指字符串空间 解析:解析:子函数中,while 循环的差别式中先将 x 指向的字符内容赋值给 y 所指的字符空间,再判断其是否是字符串结束符,如果不是结束符,x 和 y 指针分别指向各自空间的下一个字符,直到碰到字符串结束符为止。所以选项 D 正确。

44、33.有以下程序: #include int f(int a) int b; if(a=1) return(3); b=af(a 一 2); return b; main() printf(dn,f(7); 程序执行后的输出结果是( )。(分数:2.00)A.1B.2 C.3D.7解析:解析:本题考查的是函数的迭代调用,使用代入法,当传入 7 时,b=7 一(5 一(3 一 fun(1),fun(1)=3,所以 b=7 一(5 一(33)=7 一 5=2。34.有以下程序: #include int fun() static int m=l; retum m*=3; main() int i=

45、2,s=1; while(i 一一)s=fun(); printf(dn,s); 程序运行后的输出结果是( )。(分数:2.00)A.1B.3C.9 D.2解析:解析:此题考查静态变量,静态变量只在初次定义时赋初值,且在内存中有固定的存储空间,所以第 1 次运行 fun()函数时,m 的初值是 1,返回 3;当第 2 次调用时,m 的值依然还是 3,所以返回的值是9。35.关于结构体类型的说明和变量定义,以下选项正确的是( )。(分数:2.00)A.stmct REC; char c;int m;float s; REC t1,t2;B.typedef struct char c;int m;float s;REC; REC t1,c2; C.typedef struct REC; char c;int m;float s;t1,t2;D.struct char c;int m;float s;REC

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

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

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