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

上传人:dealItalian200 文档编号:502881 上传时间:2018-11-29 格式:DOC 页数:27 大小:85.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷143及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷143及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷143及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷143及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷143及答案与解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、国家二级( C语言)机试模拟试卷 143及答案与解析 一、选择题 1 下列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( )。 ( A)栈 ( B)循环队列 ( C)队列 ( D)二叉树 2 下列数据结构中,属于非线性结构的是 ( )。 ( A)顺序队列 ( B)带链队列 ( C)顺序栈 ( D)二叉树 3 在循环队列数据结构中,下列叙述中正确的是 ( )。 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针可以大于队尾指针,也可以小于队尾指针 ( D)队头指针 一定小于队尾指针 4 计算机术语中算法的空间复杂度是指 ( )。 ( A)算法在执行过程中所

2、需要的临时工作单元数 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的计算机存储空间 5 计算机软件设计过程中,符合划分模块的准则的选项是 ( )。 ( A)低内聚低耦合 ( B)高内聚高耦合 ( C)低内聚高耦合 ( D)高内聚低耦合 6 计算机程序设计过程中,不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)模块化 ( C)自顶向下 ( D)逐步求精 7 软件详细设计生产的图如下图: 该图是 ( )。 ( A) N一 S图 ( B) PAD图 ( C)程序流程图 ( D) E一 R图 8 计算机数据库管理系统是 ( )。 ( A

3、)操作系统的一部分 ( B)一种操作系统 ( C)一种编译系统 ( D)在操作系统支持下的系统软件 9 在 E一 R图中,用来表示属性的图形是 ( )。 ( A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 10 有三个关系表 R、 S和 T,其内容如下:其中关系 T由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A) 选择 ( B)求差 ( C)求交 ( D)并 11 以下关于 C程序叙述中正确的是 ( )。 ( A)程序的执行总是从程序的第一个函数开始,在 main函数结束 ( B)程序的执行总是从 main函数开始,在程序的最后一个函数中结束 ( C)程序的执行总是从 m

4、ain函数开始 ( D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 12 以下关于结构化程序设计的叙述中正确的是 ( )。 ( A)在 C语言中,程序的模块化是利用函数实现的 ( B)结构化程序使用 goto语句会很便捷 ( C)一个结构化程序必须同时由顺序、分支、循环三种结构组成 ( D)由三种基本结构构成的程序只能解决小规模的问题 13 若 a是数值类型,则逻辑表达式 a=1)(a! =1)的值是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D)不知道 a的值,不能确定 14 以下定义语句中正确的是 ( )。 ( A) int x=y=2; ( B) ch

5、ar A=65 b=b; ( C) float a=1, *b=&a, *c=&b; ( D) double a=0 0+1, b=1 1: 15 以下选项中符合 C语言语 法的是 ( )。 ( A) x+1=y ( B) x+, y=x ( C) x=x+10=x+y ( D) float(x) 10 16 在 C程序中已经定义三个整型变量 x, y, z,要通过语句: scanf( d, d, d, &x, &y, &z); 给 x赋值 1、给 y赋值 2、给 z赋值 3,以下输入形式中错误的是 ( )。 (注:口代表一个空格符 ) ( A) 1, 2, 3 ( B)口口口 1, 2, 3

6、 ( C) 1,口口口 2,口口口 3 ( D) 1口 2口 3 17 若要打印出字符 A,以下语 句不正确的是 ( )。 (注:字符 A的 ASC 码值为65,字符 a的 ASC 码值为 97) ( A) printf( c n, a一 32); ( B) printf( c n, B1); ( C) printf( c n, 65); ( D) printf( d n, A); 18 C语言的合法常量是 ( )。 ( A) 3, 100 ( B) 2 5E5 0 ( C) ( D) 002 19 设有定义: int a=1, b=2, c=3; 以下语句中执行效果与其他三个 不同的是 (

7、)。 ( A) if(a b) c=a; a=b; b=c; ( B) if(a b)e=a, a=b, b=c; ( C) if(a b)c=a, a=b, b=c; ( D) if(a b)c=a; a=b, b=c; 20 有以下程序: #include void main() int y=1; while(y); y; printf(y= d n, y); 程序执行后的输出结果是 ( )。 ( A) y=0 ( B) y=一 1 ( C) y=1 ( D) while构成无限循环 21 有以下程序: #include void main() int i, j; for(i=1; i 3

8、; i+) for(j=i; j 3; j+)printf( d* d= d, i, j, i*j); printf( n); ( A) 1*1=1 1*2=2 2*2=4 ( B) 1*1=1 1*2=2 2*1=2 2*2=4 ( C) 1*1=1 1*2=2 2*2=4 ( D) 1*1=1 1=1 2*1=2 2*2=4 22 有以下程序: #include void main() int i=7; do if(i 3=1) if(i 5=2) printf(* d, i); break; i+: while(i! =0); printf( n); 程序运行后的输出结果是 ( )。 (

9、 A) *7 ( B) *3, *5 ( C) *5*3 ( D) *7*8 23 有以下程序: #include float f(float x); void main() float a=0; for(int i=2; i 5; i+)a+=f(float)i); printf( 3 0f n, A); float f(float x) return x*x+1; 程序运行后的输出结果是 ( )。 ( A) 32 ( B) 29 ( C) 33 ( D) 28 24 对函数 int fun(float x10, int*n)声明正确语句是 ( )。 ( A) int fun(float,

10、int); ( B) int fun(float*, int*); ( C) int fun(float*x, int n); ( D) int fun(float x, int*n); 25 有以下程序: #nclude void main() int x=1, y=2, *p=&x, *q=&y, *r; r=p; p=q; q=r; printf( d, d, d, d n, x, y, *P, *q); 程序运行后的输出结果是 ( )。 ( A) 2, 1, 1, 2 ( B) 1, 2, 1, 2 ( C) 1, 2, 2, 1 ( D) 2, 1, 2, 1 26 若有以下定义:

11、int a10, *pt=x; 则对 a数组元素的 正确引用是 ( )。 ( A) pt+4 ( B) *&a10 ( C) *(pt+10) ( D) *(a+5) 27 有以下程序: #nclude void main() int i, s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i 9; i+=2)s+=*(t+i); printf( d n, s); 程序执行后的输出结果是 ( )。 ( A) 25 ( B) 20 ( C) 40 ( D) 36 28 有以下程序: #include #define N 4 void fun(int aN, i

12、nt b) int i; for(i=0; i N; i+)bi=aii; void main() int xN=1, 2, 3, 4, 3, 5, 6, 7, 8, 9, 10, 11, yN, i; fun(x, y); for(i=0; i N; i+)printf( d, , yi); printf( n); 程序运行后的输出结果是 ( )。 ( A) 1, 3, 5, 9, ( B) 1, 2, 3, 4, ( C) 1, 3, 7, 0, ( D) 3, 4, 8, 10 29 C语言中定义了字符指针, char*c,则将 c指向一个字符串的是 ( )。 ( A) char ss=

13、text; c=ss; ( B) scanf( s, c); ( C) c=getchar(); ( D) *c=text; 30 若有定义语句: char str8=abcdef 0 0; 则 strlen(str)的值是 ( )。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 31 有以下程序: #include #include void main() char s115=a, b, c, d, s2=abcd, s3=abcde; strcat(s1, s3); strcpy(s1+strlen(s2), s2); printf( d n, strlen(s1); 程序运行后

14、的输出结果是 ( )。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 32 有以下程序 (说明:字母 A的 ASC 码值是 65): #include void fun(char*s) while(*s) if(*s 2)printf( c, *s); s+; void main() char a=BYTE; fun(a); printf( n); 程序运行后的输出结果是 ( )。 ( A) BYTE ( B) YT ( C) YE ( D) BY 33 有以下程序: #include int fun() static int x=2; return x+=1: void main(

15、) int i, s=0; for(i=1; i =5; i+)s+=fun(); printf( d n, s); 程序运行后的输出结果是 ( )。 ( A) 25 ( B) 11 ( C) 15 ( D) 20 34 有以下程序: #include void fun2(char a, char b) printf( c c, a, b); char a=1, b=2; void funl() a=3; b=4; void main() funl(); printf( c c, a, b); fun2(5, 6); 程序运行后的输出结果是 ( )。 ( A) 1234 ( B) 3456 (

16、 C) 1212 ( D) 3434 35 关于 C语言中的 typedef的叙述不正确的是 ( )。 ( A)用 typedef为类型说明一个新名,通常可以增加程序的可读性 ( B) typedef只是将已存在的类型用一个新的名字来代替 ( C)用 typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名 ( D)用 typedef可以 增加新类型 36 程序中已构成如下图所示的不带头节点的单向链表结构,指针变量 s, p, q均已正确定义,并用于指向链表节点,指针变量 S总是作为指针指向链表的第一个节点。 若有以下程序段: q=s; s=s一next; p=s; while(

17、p一 next)p=p一 next; p一 next=q; q一 next=NULL;该程序段实现的功能是 ( )。 ( A)首节点成为尾节点 ( B)删除首节点 ( C)尾节点成为首节点 ( D)删除尾节点 37 有以下程序: #include #define S(x)2*(x)*x+1 void main() int k=1, j=3; printf( d n, S(k+j); 程序运行后的输出结果是 ( )。 ( A) 12 ( B) 33 ( C) 31 ( D) 21 38 有以下程序: #include void main() FILE*pf; char*sl=Mystring,

18、*s2=Text; pf=fopen(f dat, wb+); fwrite(sl, 8, 1, pf); rewind(pf); *文件位置指针回到文件开头 * fwrite(s2, 4, 1, pf); fclose(pf); 以上程序执行后 f dat文件的内容是 ( )。 ( A) Mystring ( B) Text ( C) MystringText ( D) Textring 39 若有以下程序段: int x=10: printf( d n, x 2); 程序运行后的输出结果是 ( )。 ( A) 16 ( B) 8 ( C) 4 ( D) 2 40 以下说法不正确的是 ( )

19、。 ( A) gets函数用于从终端读入字符 串 ( B) getchar函数用于从终端读入字符 ( C) fputs函数用于把字符串输出到终端 ( D) fwrite函数用于以二进制形式输出数据到文件 二、程序填空题 41 给定程序中,函数 fun的作用是:不断从终端读入整数,由变量 a统计大于 10的个数,用变量 c来统计小于 10的个数,当输入 0时结束输入,并通过形参 pa和pb把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 BLANK1 C中。不得增行或删行,也不得更改程序的结构! 试题程序: #inclu

20、de void fun(int*px, int*py) *found* int【 1】 ; scanf( d, &k); *found* while【 2】 if(k 10)a+; if(k 10)b+; *found* 【 3】 ; *px=a; *py=b: main() int x, y; fun(&x, &y); printf(x= d y= d n, x, y); 三、程序修改题 42 下列给定程序中,函数 fun的功能是:逐个比较 p、 q所指两个字符串对应位置上的字符,并把 ASC 值小或相等的字符依次存放到 c所指的数组中,形成一个新的字符串。 例如,若主函数中 a字符串为 “

21、aBCDeFgH”, b字符串为 “Abcd”,则 c中的字符串应为 “ABCDeFgH”。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MOD11 C中,不得增行或删行,也不得更改程序的结构! #include #include void fun(char*P, char*q,char*c) *found* int k=l; *found* while(*P! =*q) if(*p *q)ck=*q; else ck=*p; if(*P)p+; if(*q)q+; k+; main() char a10=aBCDeFgH, b10=ABcd, c80= 0; fun(

22、a, b, c); printf(The string a: ); puts(a); printf(The string b: ); puts(b); printf(The result: ); puts(c); 四、程序设计题 43 请编写函数 fun,其功能是:判断 t所指字符串中的字母是否由连续递增字母序列组成 (字符串长度大于等于 2)。例如字符串: uvwxyz满足要求;而字符串:uvxwyz不满足要求。 注意:部分源程序存放在 PROC1 C中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun指定的部位填入所编写的若干语句。 试题程序: #include #incl

23、ude void NONO(); int fun(char*t) main() char s26; printf(请输入一个字母组成的字符串: ); gets(s); if(fun(s)printf( s是由连续字母组成的字符串 n, s); else printf( s不是由连续字母组成的字 符串! n, s); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf; int i; char s26, *p; fp=fopen(in dat, r); wf=fopen(out dat, w); for(i=0;

24、i 10; i+) fgets(s, 26, fp); p=strehr(s, n); if(p)*p=0; if(fun(s)fprintf(wf, s n, s+2); else fprintf(wf, s n, strrev(s); fclose(fp); fclose(wf); 国家二级( C语言)机试模拟试卷 143答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 栈是先进后出原则存取数据的;队列是先进先出原则。 2 【正确答案】 D 【试题解析】 二叉树是非线性结构,其他都是线性结构。 3 【正确答案】 C 【试题解析】 循环队列的队头指针和队尾指针均不是固定的,也没有大

25、小之分,所以只有 选项 C正确。 4 【正确答案】 D 【试题解析】 算法的空间复杂度指的是所需的计算机存储空间,所以只有 D正确。 5 【正确答案】 D 【试题解析】 划分模块的目的一般是希望设计的模块能够实现较高的内聚力和较低的耦合性。 6 【正确答案】 A 【试题解析】 结构化程序设计原则有:模块化,自顶向下,逐步求精和尽量不使用跳转语句。 7 【正确答案】 C 【试题解析】 N S图提出了用方框来代替传统的程序流程图,故 A项错。 PAD图是问题分析图,是继承了程序流程图和方框图之后又 一种主要用于描述软件详细设计的图形表示工具,故 B项错误。 E R图是数据库中用于表示 E R模型的

26、图示工具, D项也错误。正确答案为 C项。 8 【正确答案】 D 【试题解析】 计算机程序有操作系统和应用软件。数据库管理系统是用来管理数据的系统,不属于操作系统,当然也不是操作系统的一部分,更不是编译系统。 9 【正确答案】 A 【试题解析】 在 E一 R图中,实体集用矩形,属性用椭圆,联系用菱形。 10 【正确答案】 D 【试题解析】 关系 T中包含了 R和 S中的所有元素,所以是并操作。 11 【正确答案】 C 【试题解析】 任何一个 C语言程序的执行总是从 main函数开始,以 main的结束而结束。其他函数是通过函数调用来执行的。 12 【正确答案】 A 【试题解析】 结构化程序设计

27、原则是尽量不使用跳转语句,因此,选项 B错误;程序设计中可以有多种结构中的一种或多种,因此, C错;三种基本结构可以解决非常复杂的问题,因此 D错。 13 【正确答案】 B 【试题解析】 仔细分析题目发现 运算符两边的值是两个相反数,所以不管 a的值是多少,结果均为真。所以答案为 B。 14 【 正确答案】 D 【试题解析】 A选项中的 y值在定义之前不能给变量 x赋值; B选项中的分号应该为逗号; C选项中的 *b和 *c是指针变量, *c=&b不正确; D选项在定义时可以将一个表达式的值同时赋给正在定义的变量。因为赋值操作是先计算赋值符号 (=)右边的表达式的值再将其赋给等号左边的变量。

28、15 【正确答案】 B 【试题解析】 A和 C选项中,不能给表达式赋值,所以错; D中进行强制类型转换的写法有误。应该是 (flaot)x; B选项是一个逗号表达式,其中又包含一个赋值表达式,语法正确。 16 【正确 答案】 D 【试题解析】 scanf()的格式中指定了要用逗号分隔输入的数值,所以在输入时必须要有逗号来分隔输入的内容,因此,选项 D错误。 17 【正确答案】 D 【试题解析】 要打印出 A,输出格式应该是 c,所以选项 D错误;另外,字符是一种特殊的整型数,对应的是其 ASC 码数值,所以选项 A, B, C正确。 18 【正确答案】 D 【试题解析】 C语言中没有千分位分隔

29、符,所以 A错;科学计数法的指数应该为整数,所以 B错:是转义字符,但后面没有具体需要转义的字符,所以 C错; D选项中是一 个常量字符串。表达正确。 19 【正确答案】 A 【试题解析】 此题主要考查分支语句后面的表达式的写法,在 C语言中, if条件为真时只执行后面的一条语句;由于 a b为假,所以选项 B, C, D均不执行语句,而选项 A后面的表达式用分号隔开。所以会执行后面两条语句;另外,选项C中出现的逗号表达式,算一个语句。 20 【正确答案】 D 【试题解析】 while后面注意不能紧跟分号,要在其后的循环体后面加分号;所以此题选项中 while(1):会构成死循环,因为后面的

30、y一等 while结束之后才能执行。 21 【正确答案】 A 【试题解析】 此题要注意内循环中的变量依赖于外循环的变量,因此 i永远大于或等于 i,所以选项 B和 D错;回车符是内层循环结束后打印出来的,所以选项 C不正确。 22 【正确答案】 A 【试题解析】 在第一次执行循环体时,两个 if语句的判断条件均为真,所以会执行输出 i的语句。同时也会执行 break语句跳出循环,结果为 A。 23 【正确答案】 A 【试题解析】 子函数的功能是平方之后加 1,循环体共执行 3次,执行子函数时的形参分别是 2, 3, 4,求和后的结果是 (2*2+1)+(3*3+1)+(4*4+1)=32。 2

31、4 【正确答案】 B 【试题解析】 函数声明可以只声明形参的类型,题目中的数组可以用指针代替,所以选项 B正确。 25 【正确答案】 C 【试题解析】 x和 y只有赋值语句,其值为 1和 2; p虽然赋了初值指向了 x,但后来又对其赋值指向了 y,所以其值是 2,因此选项 C正确, q同样也在赋初值之后进行了变量赋值,其值为 x。 26 【正确答案】 D 【试题解析】 数组引用是从 0开始,最后一个元素下标是 n 1,所以选项 B和C中的下标超限,选项 A是 一个指针,正确写法应该是 *(pt+4),选项 D正确,其中 a)当作指针使用,这对数组是合法的。 27 【正确答案】 A 【试题解析】

32、 本题是将数组中的部分元素进行求和的结果。下标分别是 0, 2,4, 8,所以结果是 1+3+5+7+9=25。 28 【正确答案】 C 【试题解析】 子函数的功能是将一个 4*4的二维矩阵的对角线上的元素赋给另外一个有 4个元素的一维数组。在主函数中定义数组时,没有指定元素默认为零,因此,主函数中的数组 x44=1, 2, 3, 0, 4, 3, 0, 0, 5, 6, 7, 8,9, 10, 11, 0,对角线上的元素为 1, 3, 7, 0。 29 【正确答案】 A 【试题解析】 字符串是一类特殊的字符数组,字符指针仅指向一个字符,因此正确的做法是先定义一个字符串数组,再将字符指针指向该

33、字符串的首字符,答案A正确。选项 B只能指向最后输入的一个字符,选项 C语法错误, getchar()只能输入一个字符给字符变量,选项 D的没有语法错误,但指针 c没有被赋初值,其可能指向一个有用的内存单元,因此,直接将一个字符串存放于该地址存在系统风险。 30 【正确答案】 A 【试题 解析】 系统会在字符数组末尾加一个字符 ( 0)作为结束符, strlen()会将 0作为字符串的结束符,因此,本题中的字符串的实际长度是 6。 31 【正确答案】 C 【试题解析】 strlen()是求字符串长度, strcat()是连接字符串, strcpy(a, b)是拷贝 b中的字符串,并将其存储在

34、a中,若出现 a+n,则是将 b存储于 a中的第 n个字符之后。所以, strcat(s1, s3)会将 s3连接到 s1后面,结果是s1=“abcdabcde, strcpy(s1+strlen(s2), s2)会 将 s2拷贝到 s1中从第 4个字符之后的位置,所以 s1=abcdabcd,所以 s1的长度为 8。 32 【正确答案】 C 【试题解析】 子函数的功能是将字符串中 ASC 码不是 2的整数倍的字符打印出来, A=65, B=66, E=69,据此便可以判断选项 C正确。不用再考查 Y的值是多少。 33 【正确答案】 A 【试题解析】 静态变量只在初次定义时赋初值,以后使用时将

35、调用其之前的值;主函数的循环体执行 5次,进行 s的叠加,每次叠加为子函数的返回值,所以结果为 0+(2+1)+(3+1)+(4+1)+(5+1)+(6+1)=25。 34 【正确答案】 B 【试题解析】 注意到有两个全局变量 a和 b,在 fun2()中有两个形参变量 a和b,因为全局变量在 fun2()之后,且没有使用 extern说明,因此, fun2()中的 a和b仅是形参变量,与全局变量无关, funl()在全局变量定义之后,所以其中直接使用了全局变量。主函数调用 fun1(),其中给全局变量赋值,之后打印全局变量 a和b的值 3“4,再调用 fun2()并传入了两个实参 56,所以

36、结果是 3456。 35 【正确答案】 D 【试题解析】 typedef为 C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型 (int, char等 )和自定义的数据类型 (struct等 )。在编程中使用 typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明,原来的类型名仍然是有效的。 typedef是为数据类型起别名,不能给变量起别名,而且 typedef只能给已经存在的 (原有类型和已经自定义的类型 ),但不能增加新的类型,选 D。 36 【正确答案】 A 【试题解析】 对 q的操作有三处,第一处是将其

37、指向首结点,第二是将其链接到指针 p的下一个结点,第三处是将原来的首结点的 next赋空值,即变为尾结点。 37 【正确答案】 A 【试题解析】 #define宏定义一定要先展开再计算,S(k+j)=2*(k+j)*k+j+1=2*(1+3)*1+3+1=12。所以在 #define定义表达式时一定要记得加括号。 38 【正确答案】 D 【试题解析】 rewind是将指针回到文件开头,所以 s2将会写在文件开头,且会覆盖之前写入的 Mystring的前 4个字符,因此 f dat的内容是 Textring。 39 【正确答案】 D 【试题解析】 是位操作,将操作对象的二进制数向右移动 2位。

38、10的二进制数是 00001010,移动二位后是 00000010,所以答案是 2。 40 【正确答案】 C 【试题解析】 fputs函数用于把字符串输出到文件中。 二、程序填空题 41 【正确答案】 1 a=0, b=0, k 2 (k! =0); 3 scanf( d, &k) 【试题解析】 填空 1:下面的 scanf函数用到变量 k,需要提前定义,在 while循环中使用了临时存放正、负数个数的变量 a, b。因此也要提前定义。 填空 2:根据题意,输入 0时结束程序,因此当 k! =0时进入循环记录大于或小于10的数的个数。 填空 3:需要不断从终端输入整数,因此在循环体内添加输入操

39、作。 三、程序修改题 42 【正确答案】 1 int k=0; 2 while(*p*q) 【试题解析】 1变量 k存放数组 c的下标,因此应初始化为 0。 2 while循环语句的循环条件是判断两个字符串是否到达结尾。 四、程序设计题 43 【正确答案】 int fun(char*t) int len=strlen(t); if(len 2) return 0; char before_ch=t0; char current_ch; int flag=1; for(int i=1; ti! = 0; +i) current_ch=ti; if(before_ch=current_ch_1)

40、flag=0; break; before_ch! =current_ch; return flag; 【试题解析】 函数 fun的功能是判断指针 t指向的 字符串是否是由连续递增的字母构成,返回值为整数, 0代表不满足条件。根据题目要求,字符串长度必须大于等于 2,所以首先需要对 t指向的字符串进行长度判断,小于 2的字符串返回 0。接着需要对字符串中的连续字符,逐个进行比较。 C语言中字符变量可以当作整数使用,所以当前字符只有是前一个字符的 ASC 码 +1,才能说它们是连续递增字母序列,然后比较后一个字符与当前字符的 ASC 码,如果字符串中的所有字符都满足条件,则返回 1;否则说明该字符串不满足要求,此时设置 flag=0,后面的字符也就不需要再比较了,跳出循环返回即可。

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

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

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