ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:110KB ,
资源ID:503167      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-503167.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C语言)机试模拟试卷44及答案与解析.doc)为本站会员(dealItalian200)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级(C语言)机试模拟试卷44及答案与解析.doc

1、国家二级( C语言)机试模拟试卷 44及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上说法均错误 2 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 3 对下列二叉树 进行前序遍历的结果为 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) ABCDEFXYZ 4 一个栈的初始状态为空。现将元素 1,2,3,A,B,

2、C依次入栈,然后再依次出栈,则元素出栈的顺序是 ( A) 1,2,3,A,B,C ( B) C,B,A,1,2,3 ( C) C,B,A,3,2,1 ( D) 1,2,3,C,B,A 5 下面属于白盒测试方法的是 ( A)等价类划分法 ( B)逻辑覆盖 ( C)边界值分析法 ( D)错误推测法 6 下面对对象概念描述正确的是 ( A)对象间的通信靠消息传递 ( B)对象是名字和方法的封装体 ( C)任何对象必须有继承性 ( D)对象的多态性是指一个对象有多个操作 7 软件设计中模块划分应遵循的准则是 ( A)低内聚低耦合 ( B)高耦合高内聚 ( C)高内聚低耦合 ( D)以上说法均错误 8

3、下面描述中不属于数据库系统特点的是 ( A)数据共享 ( B)数据完整性 ( C)数据冗余度高 ( D)数据独立性高 9 数据库设计过程不包括 ( A)概念设计 ( B)逻辑设计 ( C)物理设计 ( D)算法设计 10 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( A)自然连接 ( B)交 ( C)投影 ( D)并 11 下列叙述中正确的是 ( A) C程序中所有函数之间都可以相互调用 ( B)在 C程序中 main函数的位置是固定的 ( C)在 C程序的函数中不能定义另一个函数 ( D)每个 C程序文件中都必须要有一个 main函数 12 以下叙述正确的是 (

4、 A) C语言函数可以嵌套调用,例如: fun(fun(x) ( B) C语言程序是由过程和函数组成的 ( C) C语言函数不可以单独编译 ( D) C语言中除了 main函数,其他函数不可作为单独文件形式存在 13 以下选项中合法的标识符是 ( A) 1_ _ ( B) 2015/1/1 ( C) 1_1 ( D) _11 14 表达式 3.6-5/2+1.2+5%2的值是 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 15 有以下定义: int a; long b; double x, y; 则以下选项中正确的表达式是 ( A) a=x y ( B) a%(int

5、)(x-y) ( C) (a*y)%b ( D) y=x+y=x 16 有以下程序 #include stdio.h main() int a=0, b=0; /* 给 a赋值 a=10; b=20; 给 b赋值 */ printf(“a+b=%dn“,a+b); /* 输出计算结果 */ 程序运行后的输出结果是 ( A)出错 ( B) a+b=30 ( C) a+b=10 ( D) a+b=0 17 以下选项中,值为 1的表达式是 ( A) 1 -0 ( B) 1 - 0 ( C) 1 -0 ( D) 0 - 0 18 当变量 c的值不为 2、 4、 6时,值为 “真 “的表达式是 ( A)

6、 (c =2 else printf(“%dn“, y); ( B) if ( a=0 ) printf(“%dn“, y); else printf(“%dn“, x); ( C) if ( a=0 ) printf(“%dn“, x); else printf(“%dn“, y); ( D) if ( a ) printf(“%dn“, x); else printf(“%dn“, y); 20 有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(x y) if(y z) printf(“%d“,+z); else printf(“%d“,+

7、y); printf(“%dn“, x+ ); 程序的运行结果是 ( A) 1 ( B) 41 ( C) 2 ( D) 331 21 要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是 ( A) while(ch=getchar() =N) printf(“%c “,ch); ( B) while(ch=getchar()!=N) printf(“%c “,ch); ( C) while(ch=getchar()=N) printf(“%c “,ch); ( D) while(ch=getchar()=N) printf(“%c “,ch);

8、22 以下叙述中正确的是 ( A) continue语句的作用是:使程序的执行流程跳出包含它的所有循环 ( B) break语句只能用在循环体内和 switch语句体内 ( C)在循环体内使用 break语句和 continue语 句的作用相同 ( D) break语句只能用于 switch语句体中 23 若各选项中所用变量已正确定义,函数 fun中通过 return语句返回一个函数值,以下选项中错误的程序是 ( A) main() x=fun(2,10); float fun(int a,intB) ( B) float fun(int a,intB) main() x=fun(i,j);

9、( C) float fun(int ,int); main() x=fun(2,10); ( D) main() float fun(int i,int j); x=fun(i,j); 24 若有定义语句: int year=2009, *p= 以下不能使变量 year中的值增至 2010的语句是 ( A) (*p)+; ( B) *p+; ( C) +(*p); ( D) *p+=1; 25 若在定义语句: int a,b,c,*p= 接着执行以下选项中的语 句,则能正确执行的语句是 ( A) scanf(“%d“,a,b,c); ( B) scanf(“%d%d%d“,a,b,c); (

10、 C) scanf(“%d“,p); ( D) scanf(“%d“, 26 以下错误的定义语句是 ( A) int x43=1,2,3,1,2,3,1,2,3,1,2,3; ( B) int x4= 1,2,3,1,2,3,1,2,3,1,2,3; ( C) int x3=0,1,1,2,3; ( D) int x3=1,2,3,4; 27 有以下程序 #include stdio.h main() int i, t3=9,8,7,6,5,4,3,2,1; for(i=0;i 3;i+) printf(“%d “,t2-ii); 程序执行后的输出结果是 ( A) 3 5 7 ( B) 7 5

11、 3 ( C) 3 6 9 ( D) 7 5 1 28 有以下程序 #include stdio.h void fun(int *a, int n) /* fun函数的功能是将 a所指数组元素从大到小排序 */ int t, i, j; for (i=0; i n-1;i+) for (j=i+1; j n; j+) if (ai aj) t=ai; ai=aj; aj=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4, 6); for (i=0;i 10; i+) printf(“%d,“, ci); printf(“n“); 程序的运行结果是

12、 ( A) 1,2,3,4,9,8,7,6,5,0, ( B) 0,9,8,7,6,5,1,2,3,4, ( C) 0,9,8,7,6,5,4,3,2,1, ( D) 1,2,3,4,5,6,7,8,9,0, 29 以下正确的字符串常量是 ( A) ( B) abc ( C) Olympic Games 30 下列选项中,能够满足 “只要字符串 s1等于字符串 s2,则执行 ST“要求的是 ( A) if(s1-s2=0) ST; ( B) if(s1=s2) ST; ( C) if(strcpy(s1,s2)=1) ST; ( D) if(strcmp(s2,s1)=0) ST; 31 有以

13、下程序 #include stdio.h int fun(char p10) int n=0,i; for(i=0; i 7; i+) if(pi0= T) n+; return n; main() char str10=“Mon“,“Tue“,“Wed“,“Thu“,“Fri“,“Sat“,“Sun“; printf(“%dn“,fun(str); 程序执行后的输出结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 0 32 有以下程序 #include stdio.h void fun(char *t , char *s) while(*t!=0) t+; while( (*t+

14、= *s+ )!=0 ) ; main() char ss10=“acc“,aa10=“bbxxyy“; fun(ss, aa); printf(“%s,%sn“, ss,aa); 程序的运行结果是 ( A) acc,bbxxyy ( B) accbbxxyy,bbxxyy ( C) accxxyy,bbxxyy ( D) accxyy,bbxxyy 33 有以下程序 #include stdio.h #include string.h void fun (char *w, int m ) char s, *p1, *p2; p1=w; p2=w+m-1; while ( p1 p2 ) s=

15、*p1; *p1=*p2; *p2=s; p1+; p2-; main() char a =“123456“; fun ( a, strlen(a) ); puts(a); 程序运行后的输出结果是 ( A) 123456 ( B) 116611 ( C) 161616 ( D) 654321 34 有以下程序 #include stdio.h int b=2; int fun(int *k ) b=*k+b; return (b); main() int a10=1,2,3,4,5,6,7,8, i; for(i=2;i 4;i+) b=fun( printf(“%d “,b); printf

16、(“n“); 程序运行后的输出结果是 ( A) 8 10 ( B) 10 28 ( C) 10 12 ( D) 10 16 35 设有定义: struct char mark12; int num1; double num2; t1,t2; 若变量均已正确赋初值,则以下语句中错误的是 ( A) t1=t2; ( B) t2.num1=t1.num1; ( C) t2.mark=t1.mark; ( D) t2.num2=t1.num2; 36 有以下程序 #include stdio.h #include string.h struct A int a; char b10; double c;

17、 void f(struct A t); main() struct A a=1001,“ZhangDa“,1098.0; f(a); printf(“%d,%s,%6.1fn“, a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; 程序运行 后的输出结果是 ( A) 1002,ZhangDa,1202.0 ( B) 1002,ChangRong,1202.0 ( C) 1001,ChangRong,1098.0 ( D) 1001,ZhangDa,1098.0 37 有以下程序 #in

18、clude stdio.h #include string.h typedef struct char name9; char sex; float score2; STU; STU f(STU A) STU b=“Zhao“, m, 85.0, 90.0; int i; strcpy(a.name, b.name); a.sex = b.sex; for (i=0; i 2; i+) a.scorei = b.scorei; return a; main() STU c=“Qian“, f, 95.0, 92.0, d; d=f(c); printf(“%s,%c,%2.0f,%2.0fn“

19、,d.name,d.sex,d.score0,d.score1); 程序的运行结果是 ( A) Zhao,m,85,90 ( B) Qian,m,85,90 ( C) Qian,f,95,92 ( D) Zhao,f,95,92 38 若程序中有宏定义行: #define N 100 则以下叙述中正确的是 ( A)宏定义行中定义了标识符 N的值为整数 100 ( B) 在编译程序对 C源程序进行预处理时用 100替换标识符 N ( C)上述宏定义行实现将 100赋给标示符 N ( D)在运行时用 100替换标识符 N 39 若变量已正确定义,则以下语句的输出结果是 s=32; s=32; pr

20、intf(“%d“,s); ( A) -1 ( B) 0 ( C) 1 ( D) 32 40 有以下程序 #include stdio.h main() FILE *fp;char str10; fp=fopen(“myfile.dat“,“w“); fputs(“abc“,fp); fclose(fp); fp=fopen(“myfile.dat“,“a+“); fprintf(fp,“%d“,28); rewind(fp); fscanf(fp,“%s“,str); puts(str); fclose(fp); 程序运行后的输出结果是 ( A) abc ( B) 28c ( C) abc2

21、8 ( D)因类型不一致而出错 二、程序填空题 41 下列给定程序的功能是:调用函数 fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回 1,失败时返回 0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量 sfname中,目标文件名放在变量 harne中。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include stdlib h int fun(char*source, char*target) FILE*fs

22、, *ft; char ch; /*found*/ if(fs=fopen(source, 【 1】 )= NULL) return 0; if(ft=fopen(target, “w”)= NULL) return 0; printf(“ nThe data in file: n”), ch=fgetc(fs); /*found*/ while(!feof(【 2】 ) putchar(ch); /*found*/ fputc(ch, 【 3】 ); ch=fgetc(fs); fclose(fs); fclose(ft); printf(“ n n”); return 1; main()

23、char sfname20=“myfilel”, tfname(20=“myfile2”; FILE*myf; int i, char C; myf=fopen(sfname, “W”); printf(“nThe original data: n”); for(i=1; i 30; i+) (C=A+rand() 25; fprintf(myf, “ C”, C); printf (“ C”, C); fclose(myf), printf(“nn”); if(fun(Sfname, tfname) printf(“Succeed !”); else printf(“Fail!”); 三、程

24、序修改题 42 下列给定程序中,函数 fun的功能是:对 N名学生的学习成绩,按从高到低的顺序找出前 m(m10)名学生来,并将这些学牛的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdlib h #include conio h #include string h #include stdio h #include malloc h #define N 10 typedef struct Ss char num10;

25、int s; STU; STU*fun(STU a, int m) STU bN, *t; int i, j, k; /*found*/ t=(STU*)calloc(Sizeof(STU), m) for(i=0; i N; i+) bi=ai; for(k=0; k m;k+) for(i=j=0; i N; i+) if(bi s bj s) j=i; /*found*/ t(k)=b(j); bj S=0; return t, outresult(STU a, FILE*pf) int i; for(i=0; i N, i+) fprintf(Pf, “No= S Mark= d n”

26、, ai num, ai s); fprintf(pf, “ n n”); void main() STU aN=(“A01”, 81, “A02”, 89, “A03”, 66, “A04”, 87,“A05”, 77, “A06”, 90, “A07”, 79, “A08”, 61, “A09”, 80,“A10”, 71, STU*p0rder; int i, m; system(“CLS”); printf(“*THE Original data* n”); outresult(a, stdout); printf(“nGive the number of the studentS w

27、ho have better score: ”); scanf(“ d”, m); while(m 10) printf (“ nGive the number of the students who have better scoEe: ”); scanf(“ d”, m);) pOrder=fun(a, m); printf(“*THE RESULT* * n”); printf(“The top: n”); for(i=0; i m, i+) printf(“ s d n”, pOrder i num, pOrderi S); free(pOrder); 四、程序设计题 43 规定输入的

28、字符串中只包含字 母和 *号。请编写函数 fun,其功能是:将字符串中的前导 *号全部移到宁符串的尾部。 例如,字符串中的内容为 “*A*BC*DEF*G*”,移动后,字符串中的内容应当是 “A*BC*DEF*G*”。在编写函数时,不得使用 C语言提供的字符串函数。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #include conio h void fun(char*a) main() char s81, *P; char test480=(“*A*BC*DEF*

29、G*”, ”A*B*CD*EF*G*”,“*A*G*”, “*d*b*a*e*”; int i; printf(“Enter a string: n: ”); gets(s); fun(s); printf(“The string after moveing: n”); puts(s); 国家二级( C语言)机试模拟试卷 44答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。 2 【正确答案】 D 【试题解析】 队列的修改是依先进先出的原则进行的, D正确。 3 【正确答案】 C 【试题解析】 前序

30、遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问 根结点,然后遍历左子树,最后遍历右子树。前序遍历描述为:若二叉树为空,则执行空操作。否则: 访问根结点; 前序遍历左子树; 前序遍历右子树, C正确。 4 【正确答案】 C 【试题解析】 栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选 C。 5 【正确答案】 B 【试题解析】 白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断 -条件覆盖,选择 B。其余为黑盒测试法。 6 【正确答案】 A

31、 【试题解析】 对象之间进行 通信的构造叫做消息, A正确。多态性是指同一个操作可以是不同对象的行为, D错误。对象不一定必须有继承性, C错误。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作, B错误。 7 【正确答案】 C 【试题解析】 根据软件设计原理提出如下优化准则: 划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。 一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。 软件结构的深度、宽度、扇入、扇出应适 当。 模块的大小要适中。 C正确。 8 【正确答案】 C 【试题

32、解析】 数据库系统的特点为高共享、低冗余、独立性高、具有完整性等,C错误。 9 【正确答案】 D 【试题解析】 数据库设计过程主要包括需求分析、概念结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。答案为 D选项。 10 【正确答案】 A 【试题解析】 关系 R和关系 S有公共域,关系 T是通过公共域的等值进行连接的结果,符合自然连接,选 A。 11 【正确答案】 C 【试题解析】 C程序 中主函数不能被其他函数调用 ,所以 A选项错误, main函数可以放在程序开始 ,也可以放在中间 ,也可以放在最后 ,位置不固定 ,但程序执行时必须从 main函数开始 ,所以 B选

33、项错误,在 C程序的函数中不能定义另一个函数 ,可以声明或调用另一个函数 ,所以 C选项正确,每个 C程序中必须包含一个 main函数 ,但不一定是每个 C程序文件中必须有 ,用户单独编写的某个函数也可以存储为一个 C程序文件 ,所以 D选项错误。 12 【正确答案】 A 【试题解析】 C语言程序是由函数组成的 ,所以 B错误, C语言函数可以单独进行编译 ,所以 C错误 ,每个 C程序中必须包含一个 main函数 ,但不一定是每个 C程序文件中必须有 ,用户单独编写的某个函数也可以存储为一个 C程序文件 ,所以 D错误。 13 【正确答案】 D 【试题解析】 C语言中的标识符由下划线、字母和

34、数字组成 ,且必须以下划线或字母开始 ,所以只有 D选项正确。 14 【正确答案】 D 【试题解析】 计算 5/2,结果取整数值 2。计算 3.6-2,结果与高精度数据保持一致,即为 1.6。计算 1.6+1.2,结果为 2.8。计算 5%2,结果为 1。计算 2.8+1结果为 3.8。所以选择 D选项 . 15 【正确答案】 B 【试题解析】 C语言中没有 “ “运算符 ,所以 A选项错误, “%“运算符的两个操作值必须为整型数据 ,所以 B选项正确, a*y的结果为 double型 ,所以 C选项错误,不能将值赋给像 x+y这样的表达式 ,所以 D选项错误。 16 【正确答案】 D 【试题

35、解析】 注释语句可以在一行也可以在多行 ,用 /*/ 或 /表示 ,。它不参与程序的运行,所以 a与 b的值仍然为 0,所以打印的结果为 a+b=0. 17 【正确答案】 B 【试题解析】 0,空值 ,其 ASCII码值为 0,所以 B选项的值为 1,字符 0的 ASCII码值为 048,所以 A,C,D的值均不为 1。 18 【正确答案】 D 【试题解析】 逻辑或表达式中有一个值不为 0,结果即为真 ,逻辑与表达式中只有两个运算对象均非零 ,结果才为真,所以只有选项 D满足要求。 19 【正确答案】 C 【试题解析】 A,B,D选项的含义均为 :a的值如果为 0时打印 y的值 ,否则打印 x

36、的值,但是 C选项的含义是 :a的值为 0时打印 x的值 ,不为 0时打印 y的值 ,与其他选项正好相反。 20 【正确答案】 A 【试题解析】 else总是与离 他最近的上面的 if配对,所以第一个 if语句的判断条件不成立 ,不再执行第二个 if语句和与第二个 if语句配对的 else语句,而是直接执行打印 x+的操作 ,打印 x的值 1以后在加一。 21 【正确答案】 B 【试题解析】 在 C语言中等于号用 “= =“表示 ,一个 “=“表示赋值 ,所以 A错误。C、 D 选项的含义都是如果输入的字符为 “N“,则打印输出 ,所以正好和题意相反。 22 【正确答案】 B 【试题解析】 c

37、ontinue语句的作用是 :跳过循环体中剩余的语句而进行下一次循环 ,所以 A选项错误, Break语句的作用是终止正在执行的 switch流程 ,跳出 switch结构或者强制终止当前循环 ,从当前执行的循环中跳出 ,所以 C, D选项错误。 23 【正确答案】 A 【试题解析】 在调用子函数时,应对其进行说明。 A选项中,调用时,没有对子函数进行说明。 B选项、 C选项中被调用函数在主调函数之前定义,不用说明; D选项中在主函数中对被调用函数的返回值类型进行了说明。因此 A选项正确。 24 【正确答案】 B 【试题解析】 由于自加运算符 +的运算级别高于间接运算 *的运算级别,所以 B选

38、项的表达式 *p+不能使变量 year中的值增至 2010。因此 B选项正确。 25 【正确答案】 C 【试题解析】 本题重点考察的知识点是标准输入函数 scanf()。 scanf()函数要求,除了第 1个参数为格式化字符串以外,其余参数均为相应变量的地址值。本题中,只有 p是地址值,因此 C选项正确。 26 【正确答案】 B 【试题解析】 二维数组定义的一般形式是:类型说明符数组名 常量表达式 1常量表达式 2。其中常量表达式 1表示第一维下标的长度,常量表达式 2 表示第二维下标的长度。如对二维数组全部元素赋初值,则 第一维的长度可以不给出。但如果对 x4赋值,只确定行数,而不确定列数,

39、就无法正确赋值。因此 B选项正确。 27 【正确答案】 A 【试题解析】 该题中 t3=9,8,7,6,5,4,3,2,1;实际上就是 t33= 9,8,7,6,5,4,3,2,1;,通过 for循环语句,确定需要输出 t20,t11和t02,即输出 3、 5、 7。 因此 A选项正确。 28 【正确答案】 A 【试题解析】 该题目中 fun函数的功能是将 a所指数组元素从大 到小排序,fun(c+4, 6);即指排序从第 5个元素开始进行从大到小排序。因此 A选项正确。 29 【正确答案】 D 【试题解析】 本题考察的知识点是:字符串常量。在 C语言中,字符串常量是以双引号括起来的字符序列。

40、因此 B选项和 C选项不正确。字符序列中可包含一些转义字符,转义字符都是以 “开头的。 A选项中包含了三个 “,前两个 ()代表了一个 “字符,后面一个和 “一起 (“)被看作一个 “,所以该字符串缺少一个结束的 “,因此不正确。 D选项的两个 “之间没有任何字符,代表的是一个空 串,是合法的字符串常量,因此 D选项正确。 30 【正确答案】 D 【试题解析】 在 C语言中要对两个字符串的大小进行比较,就需要调用字符串比较函数 strcmp,如果这个函数的返回值等于 0,说明两个字符串相等。因此 D选项正确。 31 【正确答案】 B 【试题解析】 此程序是统计一周七天中英文名称首字母为 “T“

41、的个数。 P i 0是字符串的首字符,一共有两个 “T“,所以 n=2。因此 B选项正确。 32 【正确答案】 B 【试题解析】 本题重点考察 while循环语句的简单应用。函数 fun()中,前一个while循环的作用是:如果形参指针 t所指内容不为 0,则让 t增 1,直到它指向0。后一个 while循环的作用是:将 s所指内容赋给 t所指地址,然后两者同时增1,直到赋给 t的内容为 0。由此可见,函数 fun()的作用就是将形参 s所指字符串连接到形参 t所指字符串末尾,相当于库函数中的 strcat()。主函数中使用 fun()将数组 aa中的字符串连接到了数组 ss中原有字符串之后,

42、所以执行完后, ss中的字符串为 “accbbxxyy“。程序最后输出的结果是: accbbxxyy,bbxxyy。因此 B选项正确。 33 【正确答案】 D 【试题解析】 主函数中调用 fun(a,6)后,指针 p1指向字符串中的 “1“、 p2指向字符串中的 “6“。 While循环中,只要 p1 p2,则把 p1、 p2所指向的字符互换,同时 p1前移, p2后移。最终字符串逆序存放。因此 D选项正确。 34 【正确答案】 B 【试题解析】 主函数中循环执行 2次 ,fun函数被调用 2次, b是全局变量 ,整个程序均可使用 ,第 1次调用 :fun(主程序中 :b=fun(第 2次调用

43、 :fun(主程序中 :b=fun( *判断 *p是否是 *号,并统 计 *号的个数 * while(*p=*) n+, p+; *将前导 *号后的字符传递给 a* while(*p) *将 *之后的字符串保存到 a中 * ai=*p; i+; p+; while(n!=0) *在 a后追加 n个 *号 * ai=*; i+, n一一 ; ai= 0; *加上结束符 * 【试题解析】 函数 fun的功能是:将字符串中的前导 *号全部移到字符串的尾部。本题解题思路:首先定义一个指针并指向字符串的首地址;其次利用循环语句找出字符串的前导 *号的个数 n;然后利用循环语句把剩余的字符复制到另一个字符串中;最后在字符串的末尾接上 n个 *号。

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