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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C语言机试( C语言程序设计)模拟试卷 18及答案与解析 一、选择题 1 有以下程序 #include int fun(int(*s)4,int n,int k) int m,i; m s0k; for(i 1; i n; i )if(sik m)m sik; return m; main() int a44 1, 2, 3, 4), 11, 12, 13, 14, 21, 22, 23, 24), 31, 32,33, 34); printf(“ d n“, fun(a, 4, 0); 程序的运行结果是 ( A) 31 ( B) 34 ( C) 4 ( D) 32 2 有下列程序:

2、 main() int a44 1,4, 3, 2, 8, 6, 5, 7, 3, 7, 2, 5, 4, 8, 6, 1, i,j, k, t; for(i 0; i 4; i ) for(j 0; j 3; j ) for(k j 1; k 4; k ) if(aji aki)t aji; aji aki; aki t; *按列排序 * for(i 0; i 4; i )printf(“ d, “, aii); 程序运行后的输出结果是 ( A) 8, 7, 3, 1, ( B) 1, 6, 5, 7, ( C) 4, 7, 5, 2, ( D) 1, 6, 2, 1, 3 有下列程序: m

3、ain() int i,t3 9, 8, 7, 6, 5, 4, 3, 2, 1; for(i 0; i 3; i ) printf(“ d“, t2 ii); 程序执行后的输出结果是 ( A) 7 5 3 ( B) 3 6 9 ( C) 7 5 1 ( D) 3 5 7 4 有下列程序: main() int a44 1, 4, 3, 2), 8, 6, 5, 7), 3, 7, 2, 5), 4, 8, 6, 1), i,k, t; for(i 0; i 3; i ) for(k i 1; k 4; k )if(aii akk)t aii; aii=akk; akkt; for(i 0;

4、i 4; i )printf(“ d, “, a0i); 程序运行后的输 出结果是 ( A) 6, 2, 1, 1, ( B) 1, 1, 2, 6, ( C) 2, 3, 4, 6, ( D) 6, 4, 3, 2, 5 若有定义: int w35;则以下不能正确表示该数组元素的表达式是 ( A) *(*w 3) ( B) *(*(w 1) ( C) *(w 1)4 ( D) *(&w00 1) 6 以下错误的定义语句是 ( A) int x43 1, 2, 3, 1, 2, 3, 1, 2, 3), 1, 2, 3; ( B) int x3 0, 1, 1, 2, 3; ( C) int

5、x3 1, 2, 3, 4; ( D) int x4 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3; 7 以下叙述中正确的是 ( A)语句 int a43 1, 2, 4, 5;是错误的初始化形式 ( B)语句 int a3 1, 2, 4, 5);是错误的初始化形式 ( C)在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵 ( D)语句 int a43 1, 2, 4, 5;是错误的初始化形式 8 设有定义: int x23;则以下关于二维数组 x的叙述错误的是 ( A)数组 x可以看作是由 x0和 x1两个元素组成的一维数组 ( B)可以用 x0 0;的形式

6、为数组所有元素赋初值 0 ( C)元素 x0可看作是由 3个整型元素组成的一维数组 ( D) x0和 x1是数组名,分别代表一个地址常量 9 有以下程序 #include #deftne N 3 void fun(int aN, int b) int i,j; for(i 0; i N; i ) bi ai0; for(j 1; j N; j ) if(bi aij) bi aij; main() int xNN 1, 2, 3, 4, 5, 6, 7, 8, 9, yN, i; fun(x, y); for(i 0; i N; i ) printf(“ d, “, yi); printf(“

7、 n“); ( A) 1, 3, 5, ( B) 2, 4, 8, ( C) 3, 5, 7 ( D) 3, 6, 9, 10 以下语句中存在语法错误的是 ( A) char ss20 “right?“; ( B) char*ss6; ss1 “right?“; ( C) char *ss “right?“; ( D) char ss620; ss1 “right?“; 11 下面是有关 C语言字符数组的描述,其中错误的是 ( A)不可以用赋值语句给字符数组名赋字符串 ( B)可以用输入语句把字符串整体输入给字符数组 ( C)字符数组中的内容不一定是字符串 ( D)字符数组只能存放字符串 12

8、 以下选项中有语法错误的是 ( A) char str310; str1 “guest“; ( B) char str10 “guest“; ( C) char *str3; str1 “guest“; ( D) char*str “guest“); 13 下列叙述中正确的是 ( A)两个连续的单引号 (“)是合法的字符常量 ( B)可以对字符串进行关系运算 ( C)两个连续的双引号 (“)是合法的字符串常量 ( D)空字符串不占用内存,其内存空间大小是 0 14 以下选项中,能正确进行字符串赋值的是 ( A) char s5 A, B, C, D, E); ( B) char *S “ABC

9、DE“; ( C) char s45 “ABCDE“); ( D) char *S; gets(s); 15 有以下程序 #include int fun(char s) char *P s; while(*P 0) p; return(p-s); main() printf(“ d n“, fun(“0ABCDEF“); 程序运行后的输出结果是 ( A) 6 ( B) 7 ( C) 1 ( D) 0 16 若有以下程序段 char str412 “aa“, “bbb“, “CCCCC“, “d“, *strp4; int i: for(i 0; i 4; i )strpi stri; 不能正

10、确引用字符串的选项是 ( A) strp ( B) str0 ( C) strp3 ( D) *strp 17 以下叙述中正确的是 ( A)下面的语句用赋初值方式来定义字符串,其中, 0是必须的 char str1S, t, r, 1, 0; ( B)有定义语句: char str1 “str1“;,数组 str1将包含 4个元素 ( C)字符串常量 “str1“的类型是:字符串数据类型 ( D)字符数组的每个元素可存放一个字符,并且最后一个元素必须是 0字符 18 以下叙述中正确的是 ( A) char ca35 “A“, “BB“, “CCC“;是不合语法的 ( B)字符串数组,是指数组中

11、的每个元素都是一个存放字符串的一维数组 ( C) char ca5 “A“, “BB“, “CCC“;是不合语法的 ( D) char *ca3 “A“, “BB“, “CCC“);是不合语法的 19 以下叙述中正确的是 ( A)函数调用 strlen(s);会返回字符串 S实际占用内存的大小 (以字节为单位 ) ( B)两个字符串可以用关系运算符进行大小比较 ( C)当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和 ( D) C语言本身没有提供对字符串进行整体操作的运算符 20 以下叙述中正确的是 ( A)不能用字符串常量对字符数组名进行整体赋值操作 ( B)字符串常量 “

12、Hello“会被隐含处理成一个 无名字符型数组,它有 5个元素 ( C) char str7 “string!“;在语法上是合法的,运行也是安全的 ( D) char *str; str “Hello“;与 char str; str “Hello“;效果是一样的 21 以下叙述中正确的是 ( A)语句 char str10 “string!“;和 char str10 “string!“;并不等价 ( B)对于一维字符数组,不能使用字符串常量来赋初值 ( C)对于字符串常量 “string!“,系统己自动在最后加入了 0字符, 表示串结尾 ( D)在语句 char str “string!“

13、;中,数组 str的大小等于字符串的长度 22 设有定义 char str “Hello“;则语句 printf(“ d d“, sizeof(str), strlen(str);的输出结果是 ( A) 6 6 ( B) 6 5 ( C) 5 5 ( D) 5 6 23 设有定义语句: char *aa2 “abcd“,“ABCD“;则以下叙述正确的是 ( A) aa数组的两个元素只能存放含有 4个字符的一维数组的首地址 ( B) aa数组的 值分别是字符串 “abcd“和 “ABCD“ ( C) aa是指针变量,它指向含有两个元素的字符型数组 ( D) aa0存放了字符串 “abcd“的首地

14、址 24 以下选项中,没有编译错误的是 ( A) char str3 d, e, b, u, g, 0; ( B) char str15 “pass“, str26; str2 str1; ( C) char name10; name “china“; ( D) char str4; str4 “hello world“; 25 有 以下程序 main() char a510 “one“, “two“, “three“, “four“, “five”; int i, j; char t; for(i 0; i 4; i ) for(j i 1; j 5; j ) if(ai0 aj0) t a

15、i0; ai0 aj0; aj0 t; puts(a1); 程序运行后的输出结果是 ( A) fwo ( B) owo ( C) two ( D) fix 26 设有定义: char s81; int i 0;以下不能将一行 (不超过 80个字符 )带有空格的字符串正确读入的语句或语句组是 ( A) while(si getchar()! n); si 0; ( B) scanf(“ s“, s); ( C) gets(s); ( D) doscanf(“ c“, &si); while(si ! n); si 0; 27 设有定义: char p 1, 2, 3), *q p;以下不能计算出

16、一个 char型数 据所占字节数的表达式是 ( A) sizeof(p) ( B) sizeof(char) ( C) sizeof(*q) ( D) sizeof(p0) 28 有以下程序 #include #include void main() char str20 “One*World“,“One*Dream!“, *p str1; printf(“ d,“,strlen(p); printf(“ s n“, p); 程序运行后的输出结果是 ( A) 9,One*Dream ( B) 10,One*Dream! ( C) 9,One*World ( D) 10,One*World 29

17、 有以下程序 #include void main() char s “012xy 08s34f4w2“; int i, n 0; for(i 0; si! 0; i ) if(si 0&si 9)n; printf(“ d n“, n); 程序运行后的输出结果是 ( A) 0 ( B) 7 ( C) 3 ( D) 8 30 以下不能将 S所指字符串正确复制到 t所指存储空间的是 ( A) for(i 0; ti: si; i ); ( B) while(*t *s)t; s; ( C) for(i 0, j 0; ti sj ; ); ( D) do*t *s; while(*s); 31

18、下列语句组中,正确的是 ( A) char*s; s “Olympic“; ( B) char s7; s “Olympic“; ( C) char*s; s “Olympic“); ( D) char s7; s “Olympic“; 32 有以下程序 main() char ch “uvwxyz“,*pc; pc ch; printf(“ c n“, *(pc 5); 程序运行后的输出结果是 ( A) 0 ( B)元素 ch5的地址 ( C) z ( D)字符 y的地址 33 有以下程序 #include void main() char s “012xy“; int i,n 0; for

19、(i 0; si! 0; i ) if(si a&si z)n; printf(“ d n“, n); 程序运行后的输出结果是 ( A) 0 ( B) 3 ( C) 5 ( D) 2 34 以下能正确定义字符串的语句是 ( A) char str “ x43“; ( B) char str “ 0“; ( C) char str “; ( D) char str 064; 35 以下关于字符串的叙述中正确的是 ( A)两个字符串中的字符个数相同时才能进行字符串大小的比较 ( B)可以用关系运算符对字符串的大小进行比较 ( C)空串比空格打头的字符串小 ( D) C语言中有字符串类型的常量和变量

20、 36 若要求从键盘读入含有空格字符的字符串,应使用函数 ( A) getc() ( B) gets() ( C) getchar() ( D) scanf() 37 有以下程序,执行后的结果是 #include main() char s “abcde“; s 2; printf(“ d N“, s0); ( A)输出字符 C的 ASCII码 ( B)输出字符 C ( C)输出字符 a的 ASCII码 ( D)程序出错 38 有下列程序,程序执行后的输出结果是 fun(char P10) int n 0, i; for(i 0; i 7; i ) if(Pi0=T)n; return n;

21、main() char str10 “Mon“, “Tue“, “Wed“, “Thu“,“Fri“,“Sat“, “Sun“; printf(“ d n“, fun(str); ( A) 1 ( B) 3 ( C) 0 ( D) 2 国家二级 C语言机试( C语言程序设计)模拟试卷 18答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 函数 fun(int(*s)4,intn,intk)的功能是返回二维数组第 k列的最大元素。在主函数中由于二维数组 a44已经初始化,所以 fun(a,4,0)的值是二维数组 a第 1列中的最大元素 31。 【知识模块】 C语言程序设计 2 【正确答

22、案】 B 【试题解析】 最外层的 for语句的自变量 i是列下标,而内部的两个 for语句的自变量 j和 k是行下标。所以由程序段可知,这是利用三重循环对二维数组a44、的 元素按列从小到大进行排序, 所以最后排完序的结果为 a44 1,4, 2, 1), 3, 6, 3, 2, 4, 7, 5, 5), 8, 8, 6, 7,最后一个 for语句的功能是输出数组 a44主对角线上的元素,因而输出为 1, 6, 5, 7。 【知识模块】 C语言程序设计 3 【正确答案】 D 【试题解析】 由于在程序中定义了二维数组 t3 9, 8, 7, 6, 5, 4, 3, 2,1:由二维数组的存储方式按

23、行存储,即初始化完第一行的所有列再初始化下一行的元素。可知这是一个 3行 3列的二维数 组,第一行的元素为 9, 8, 7,第二行的元素为 6, 5, 4,第三行的元素为 3, 2, 1。然后用 for循环输出 t20、t11、 t02,它们的值分别为 3、 5、 7。 【知识模块】 C语言程序设计 4 【正确答案】 D 【试题解析】 利用二重 for循环对二维数组 a44的主对角线上的元素 1, 6,2, 1实现按列从大到小排序, 所以数组 a44的值变为 6, 4, 3, 2, , 8,2, 5, 7), 3, 7, 1, 5, 4, 8, 6, 1),最后输出数组 a44第一行上的元素,

24、所以输出结果为 6, 4, 3, 2。 【知识模块】 C语言程序设计 5 【正确答案】 C 【试题解析】 在 C语言中,二维数组的名字表示的是二维数组的地址,对于二维数组 int w35,可以认为 w为一个一维数组,含有 3个元素,而每个元素为一个含有 5个元素的一维数组。而 (w 1)为一个含有两个元素的一维数组,首先和(w 1)4结合非法, 4超出了二维数组的边界,取值也就是非法的了。 【知识模块】 C语言程序设计 6 【正确答案】 D 【试题解析】 一维数组 定义和初始化是允许省略行下标,不允许省略列下标。 【知识模块】 C语言程序设计 7 【正确答案】 C 【试题解析】 在理解二维数组

25、的时候,可以把一个二维数组看成是一个一维数组,每个数组元素又是包含有若干个元素的一维数组,也就是具有行列的结构,二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。 【知识模块】 C语言程序设计 8 【正确答案】 B 【试题解析】 二维数组的元素在内存中占一系列连续的存储单元。数组元素在内存中的排列顺序是先 存放第 0行的元素,再存放第 1行的元素 称这种存放顺序为按行存放。可以把一个二维数组看成是一个一维数组,每个数组元素又是包含有若干个元素的一维数组。另外在给二维数组赋初值时可以不用含花括号对。例如, inta43 1, 2, 4, 5;在编译时,

26、系统将按 a数组元素在内存中排列的顺序,将花括号内的数据一一对应地赋给各个元素,若数据不足,系统将给后面的元素自动补初值 0。以上将给 a 数组第一行的元素和第二行的第一个元素依次赋予 1、 2、 4、 5,其他元素的初值都为 0。 【知识模块】 C语言程序设计 9 【正确答案】 D 【试题解析】 函数 fun()的作用是求出二维数组 aN中每一行中的最大元素,所以在 main()函数中执行完 fun(x,y)后,数组 y中的元素为二维数组 xNN每一行的最大元素。 【知识模块】 C语言程序设计 10 【正确答案】 A 【试题解析】 选项 A中定义了二维数组 ss,可以用于存储字符串,但是字符

27、串的存储不能通过赋值,仅可以初始化或者输入得到,而选项 C和 A不同,选项 C为指针数组,对于指针变量可以保存常量字符串的地址。 【知识模块】 C语言程序设计 11 【正确答案】 D 【试题解析】 本题考查字符数组。选项 A、 B和 C都是正确的,字符数组存放其他数据。 【知识模块】 C语言程序设计 12 【正确答案】 A 【试题解析】 本题考查字符数组的定义和使用。选项 A定义了一个二维字符数组,第二句是直接给字符数组赋值错误, C语言中不能直接给字符数组赋值:选项 B、 C和 D都是正确的。 【知识模块】 C语言程序设计 13 【正确答案】 C 【试题解析】 两个连续的双引号: “,是一个

28、字符串常量,称为 “空串 ”。 【知识模块 】 C语言程序设计 14 【正确答案】 B 【试题解析】 对于选项 A字符串中无法存放字符串结束标志 0,选项 C每行仅仅存放 5个字符,同样的不能存放字符串结束标志,选项 D中指针变量 s没有实际的内存空间,无法存放输入的字符串。因此正确的选项为 B,相当于char*s; s “ABCDE“。把字符串常量的首地址存放到指针变量中存储。 【知识模块】 C语言程序设计 15 【正确答案】 B 【试题解析】 函数 fun的主要功能是计算字符串中实际字符的个数,因此主函数中调用 fun得到结果为 7。 【知识模块】 C语言程序设计 16 【正确答案】 A

29、【试题解析】 程序段中定义指针数组 *strp,含有 4个元素, for循环 strp分别保存了二维数组 str中的 4个字符串的首地址,因此 strp为二级地址,不能保存字符串的首地址, *strp或者 strp0中存放了字符串 “aa“的首地址。所以不能正确引用字符串的为选项 A。 【知识模块】 C语言程序设计 17 【正确答案】 B 【试题解析】 选项 B中除了字符串中实际字符之外,还要存储字符串结束标志,应为 5个元素。在 C语言中没有字 符串数据类型,因此选项 C不正确,选项D字符数组不一定必须存放字符串,因此没有规定最后一个元素为字符串结束标志。 【知识模块】 C语言程序设计 18

30、 【正确答案】 B 【试题解析】 字符串数组,也就是二维字符数组,其中每个元素为一个字符串,选项 B的说法正确。选项 A和 C对于 ca的定义是正确的。选项 D定义一个指针数组,可以保存多个字符串的首地址。 【知识模块】 C语言程序设计 19 【正确答案】 D 【试题解析】 C语言中没有运算符可以处理字符串,要调用 “string库中的函数来处 理字符串,其中 strlen函数主要测试字符串中实际字符的个数,比实际占用的内存至少要少一个。 Strcat(sl, s2)函数用于连接两个字符串,是把字符串 s2连接到 s1的后面。 【知识模块】 C语言程序设计 20 【正确答案】 A 【试题解析】

31、 字符数组仅仅可以采用定义时初始化以及输入得到数据,在程序其他部分不允许对其进行赋值。字符串常量中除了实际字符之外还有结束标志,选项 B错误,而选项 C中,没有空间存放字符串结束标志,因此运行是不安全的。选项 D中第一个 str为指针,可以赋值,而后面的为数组, 在程序中赋值出错。 【知识模块】 C语言程序设计 21 【正确答案】 C 【试题解析】 在 C语言中,字符串是借助于字符型一维数组来存放的,可以借助在定义时初始化以及输入来把字符串存入数组,并规定以字符 0作为 “字符串结束标志 ”。 0是一个转义字符,称为空值,它的 ASCII码值为 0。 0作为标志占用存储空间,但不计入字符串的实

32、际长度。在 C语言中,系统在每个字符串的最后自动加入一个字符 ( 0)作为字符串的结束标志。 【知识模块】 C语言程序设计 22 【正确答案】 B 【试题解析】 sizeof主要用于测试变量所占的实际内存,而 strlen函数主要测试字符串中实际字符的个数,字符串 “Hello“占有内存 6个字节,而字符串中共有 5个字符。 【知识模块】 C语言程序设计 23 【正确答案】 D 【试题解析】 题目中 char*aa2,定义了指针数组 aa,有两个元素, aa0存放“abcd“地址,而 aa1存放 “ABCD“地址。 【知识模块】 C语言程序设计 24 【正确答案】 A 【试题解析】 选项 A是

33、定义了字符数组 str3,并 对其赋初值。 选项 B中语句str2 str1非法,字符数组不能直接赋值。选项 C, D和选项 B一致。 【知识模块】 C语言程序设计 25 【正确答案】 A 【试题解析】 这个程序的执行过程是当 i 0时, j 1, a00 o a10 t;不置换:当 i 1时, j 2,a10 t a20 t;不置换;当 i 2时, j 3,a20 t a30 f;置换 a20 f, a30 t:此时, a20 f, a10 t,再置换 a20 t, a10 C:当 i 3时, j 4,a30 f a430 f;不置换;所以 a1的结果为 fwo。 【知识模块】 C语言程序设

34、计 26 【正确答案】 B 【试题解析】 本题考查标准输入输出函数和循环语句。 gets(s)函数的作用是将输入的字符读入字符串 s,直到遇到回车。而 scanf()函数接收字符串时的结束标志为回车或者空格。 【知识模块】 C语言程序设计 27 【正确答案】 A 【试题解析】 选项 A计算的是 p字符数组首地址所占的内存字节数,返回 值数组中所有元素占有的空间。 *q和 p0分别表示数组 p中下标为 0的字符元素,选项 B和 D都可以计算 char型数据占有的字节数。 【知识模块】 C语言程序设计 28 【正确答案】 B 【试题解析】 在主函数中定义了二维字符数组 str,并对它赋初值。定义字

35、符指针 p,并把字符串 str1的地址赋给它。所以这时字符指针 p指向字符串“One*Dream!”,然后在两个输出语句中,分别输出这个字符串的长度 10和字符串本身。 【知识模块】 C语言程序设计 29 【正确答案】 C 【试题解 析】 在主函数中的 for循环语句中,当 si的值不等于 0 9之间的数字时,结束循环语句的执行。由字符数组 s的初值可以得到 for循环语句执行了三次,所以变量 n的值等于 3。 【知识模块】 C语言程序设计 30 【正确答案】 D 【试题解析】 在选项 D中,不能把 s所指字符串的结束标志符赋给字符串 t。 【知识模块】 C语言程序设计 31 【正确答案】 A

36、 【试题解析】 选项 A中定义了指针变量 s,通过赋值语句保存字符串常量的地址,而字符数组绝对不能赋值,而只能初始化或者输入。 【知识模块】 C语言程序设计 32 【正确答案】 C 【试题解析】 在程序中语句 pc ch;的功能是字符指针 pc指向字符串数组 ch的地址,而 *(ps 5)表示字符串数组 ch中第 6个字符 z。 【知识模块】 C语言程序设计 33 【正确答案】 D 【试题解析】 这段程序的功能求出字符串 s中字符在小写字符 a到 z之间字符的个数。在程序中字符串 s的值为 “012xy”,所以在字符串 s中符合要求的字符的个数等于 2。 【知识模块】 C语言程序设计 34 【

37、正确答案】 B 【 试题解析】 字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不用一对大括号对括起来。 【知识模块】 C语言程序设计 35 【正确答案】 C 【试题解析】 C语言本身并没有设置一种类型来定义字符串变量,却允许使用“字符串常量 ”。字符串常量是由双引号括起来的一串字符。任意两个字符串的大小比较要调用字符串比较函数 strcmp(s1, s2)来进行,其比较的方法是依次对 s1和 s2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符决定所在串的大小 (比较字符大小的依据 是其 ASCII码值 )。 【知识模块】 C语言程序设计 36 【正确

38、答案】 B 【试题解析】 scanf()语句中用 “空格 ”间隔不同的字符串,空格将被全部忽略掉,所以用 scanf()函数不能输入空格; getchar()函数用于输入字符,其调用形式为:ch getchar(), getchar()函数从终端读入一个字符作为函数值,把读入的一个字符赋给变量 ch。在输入时,空格、回车符都将用于字符读入,而且只有在用户敲入Enter键时,读入才开始执行。 gets()函数的调用形式为: gets(str adr),其中str_adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。 gets()函数用来从终端键盘读入字符串 (包

39、括空格符 ),直到读入一个换行符为止。 getc()函数的调用形式为: ch getc(pf)其中 pf是文件指针。函数的功能是从 pf指定的文件中读入一个字符,并把它作为函数值返回。 【知识模块】 C语言程序设计 37 【正确答案】 D 【试题解析】 因为字符数组 s中的数组名 s表示的是一个地址常量。所以语句 “s 2; ”不能将指针在当前位置的基 础上再向后移动两位。因而程序编译时出错。 【知识模块】 C语言程序设计 38 【正确答案】 D 【试题解析】 本题在主函数中定义了一个字符二维数组 str10,并用“Mon”, “Tue”, “Wed” , “Thu”, “Fri”, “Sat”, “Sun”初始化。函数 fun(char p10)的功能是统计出 p10中 pi0等于字符 T的个数。所以 fun(str)的功能是统计一周七天中英文名称首字母为 “T”的个数。因为字符串 “Tue”和 “Thu”的首字符是 “T”, 所以 n 2。 【知识模块】 C语言程序设计

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