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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)机试模拟试卷 141及答案与解析 一、选择题 1 下列关于数据链表的叙述中正确的是 ( )。 ( A)只有一个根节点的数据结构不一定是线性结构 ( B)有一个以上根节点的数据结构不一定是非线性结构 ( C)循环链表是非线性结构 ( D)双向链表是非线性结构 2 关于算法和程序,以下叙述中正确的是 ( )。 ( A)算法就是程序 ( B)设计算法时只需要考虑数据结构的设计 ( C)设计算法时只需要考虑结果的可靠性 ( D)以上三种说法都不对 3 下列关于二叉树的叙述中,正确的是 ( )。 ( A)叶子节点总是比度为 2的节点多 1个 ( B)叶子节点总是比度为 2的节点多 2

2、个 ( C)叶子节点数是度为 2的节点数的两倍 ( D)度为 2的节点数是度为 1的节点数的两倍 4 软件生命周期中的各个阶段都不包括的活动是 ( )。 ( A)市场调研 ( B)需求分析 ( C)软件测试 ( D)软件维护 5 某系统总体结构图如下图所示: 该系统总体结构图的深度是 ( )。 ( A) 7 ( B) 6 ( C) 3 ( D) 2 6 程序测试的主要目的是 ( )。 ( A)设计测试程序 ( B)验证程序的 正确性 ( C)发现程序中的错误 ( D)改正程序中的错误 7 下列有关数据库的描述中正确的是 ( )。 ( A)在需求分析阶段建立数据字典 ( B)在概念设计阶段建立数

3、据字典 ( C)在逻辑设计阶段建立数据字典 ( D)在物理设计阶段建立数据字典 8 数据库系统的三级模式不包括 ( )。 ( A)数据模式 ( B)内模式 ( C)外模式 ( D)概念模式 9 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( )。 ( A)并 ( B)交 ( C)投影 ( D)自然连接 10 面 向对象设计方法的主要特征是 ( )。 ( A)继承 ( B)自顶向下 ( C)模块化 ( D)逐步求精 11 关于 C语言常量的叙述中错误的是 ( )。 ( A)经常被使用的变量可以定义成常量 ( B)常量分为整型常量、实型常量、字符常量和字符串常量 ( C

4、)常量可分为数值型常量和非数值型常量 ( D)所谓常量,是指在程序运行过程中,其值不能被改变的量 12 以下关于 C语言的相关叙述中正确的是 ( )。 ( A)简单 C语句必须以分号结束 ( B) C程序中的每一行只能写一条语句 ( C) C语言程序中的注 释必须与语句写在同一行 ( D) C语句必须在一行内写完 13 以下关于算法的叙述中错误的是 ( )。 ( A)算法正确的程序可以有零个输入 ( B)算法正确的程序可以有零个输出 ( C)算法正确的程序最终一定会结束 ( D)算法正确的程序对于相同的输入一定有相同的结果 14 关于 C语言的用户标识符中,不合法的是 ( )。 ( A) a_

5、1 ( B) Xa3c ( C) A一一 x ( D) _1 15 关于 C语言的赋值语句,合法的是 ( )。 ( A) a=b=1; ( B) e=n 3; ( C) x+y=u; ( D) x=2=6+2; 16 在使用 scanf( 2d f, &a, &b);语句并从键盘输入 123 456后, a和b的值分别是 ( )。 ( A) 12和 3 0 ( B) 123和 456 0 ( C) 12和 456 0 ( D) 12和 345 6 0 17 下列 C语言语句会出现错误的是 ( )。 ( A) char a=123 ( B) char a= n; ( C) char a=a; (

6、 D) char = x2d; 18 下列表达式的值当变量 c的值不为 2、 4、 6时 也为 “真 ”的是 ( )。 ( A) (c =2&c =6)&(c 2! =1) ( B) (c=2)(c=4)(c=6) ( C) c =2&c =6)&! (c 2) ( D) (c =2&c =6)(c! =3)(c! =5) 19 C语句中不能够正确计算下述公式的程序段是 ( )f= ( A) if(x =0) f=sqrt(x); if(x 0) f=sqrt( x); ( B) if(x =0) f=sqrt(x); else f=sqrt( x); ( C) f=sqrt(x) if(x

7、0) f=sqrt( x); ( D) f=sqrt(x =0? x: x); 20 有以下程序: #include main() int m=20; while(m ); printf(y= d n, m); 程序执行后的输出结果是 ( )。 ( A) m= 1 ( B) m=0 ( C) m=1 ( D) while构成无限循环 21 有以下程序: #include main() int i; for(i=1; i =40; i+) if(i+ 5=0) if(i+ 8=0)print( d, i) printf( d, i); 程序执行后的输出结果是 ( ) ( A) 17 ( B) 2

8、4 ( C) 32 ( D) 12 22 有以下程序: #include main() int s; scanf( d, &s); while(s 0) switch(s) case 1: printf( d, s+5) case 2: printf( d, s+4); break; case 3: printf( d, s+3); case 4: printf( d, s+2); default: printf( d, s+1); break; scanf( d, &s) 运行时,若输入 123450回车则输出的结果是 ( A) 6.56655e+008 ( B) 6.56646e+006

9、( C) 6.66665e+006 ( D) 6.66666e+006 23 关于 return语句叙述中错误的是 ( )。 ( A)函数的 return语句中可以没有表达式 ( B)用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值 ( C)用户定义的函数中若没有 return语句,则应当定义为 void类型 ( D)用户定义的函数中可以没有 return语句 24 有以下程序: #include stdio h void fun(char *c, int d) *c=*c+1; d=d+1; printf( c, c, *c, d); main() char x=

10、1, y=A; fun(&x, y); printf( c, c n, x, y) ( A) 2, B, 2, A ( B) 2, B, B, A ( C) 1, B, B, 1 ( D) 1, B, a, B 25 下列选项中,能正确定义数组的语句是 ( )。 ( A) int a0 10 ( B) int b; ( C) int N=10; int cN; ( D) #define N 10 int dN 26 以下函数实现按每行 5个输出 a所指数组中的数据: #include void fun(int*a, int n) int i; for(i=0; i n; i+) printf(

11、 d, ai); printf( n); 在横线处应填入的语句是 ( )。 ( A) if(i 5=0)printf( n); ( B) if(i 5=0)continue; ( C) if(i 5=0)prinff( n); ( D) if(i 5=0)continue; 27 有以下程序: #include void if(char*c) while(*c) if(*c =a&*c =z) *c=*c一 (a一 A); c+; main() char s21; gets(s); ff(s); puts(s); 当执行程序时从键盘上输入 Hello World,则程序运行后的输出结果是 (

12、)。 ( A) hello world; ( B) Hello World ( C) HELLO WORLD ( D) hELLO World 28 有以下程序: #include main() int a44=1, 2, 3, 4, 2, 4, 3, 1, 1, 7, 1, 5, 5, 6, 7, 8; int 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, ,

13、aii); 程序运行后的输出结果是 ( )。 ( A) 1, 4, 3, 8, ( B) 1, 7, 3, 1, ( C) 4, 7, 5, 8, ( D) 1, 2, 5, 4, 29 有以下程序 (strcat函数用于连接两个字符串 ): #nclude #include main() char s20=Welcome 0to 0, t=Beijing; strcat(s, t); printf( s n, s); 程序运行后的输出结果是 ( )。 ( A) Welcome to Beijing ( B) Welcome 0to 0Beijing ( C) WelcomeBeijing (

14、 D) Beijing 30 有以下程序段: char name20; int Bum; scanf(name= s num= d, name, &hum); 当执行上述程序段,并从键盘输入: name=David num=101后, name的值为( )。 ( A) name=David ( B) name=David num=101 ( C) David ( D) David Bum=101 31 有以下程序: #include main() char ch=12345, *P; p=ch; printf( c n, *(p+3); 程序运行后的输出结果是 ( )。 ( A) 2 ( B)

15、 3 ( C) 4 ( D)一个地址值 32 有以下程序: #include main() char s=012abc; int i, n=0; for(i=0; si! =0; i+) if(si a&si =z) n+; printf( d n, n); 程序运行后的输 出结果是 ( )。 ( A) 0 ( B) 3 ( C) 5 ( D) 6 33 有以下程序: #include int fun(int n) if(n=1) return 1; else return(n+fun(n一 1); main() int y; scanf( d, &y); y=fun(y); printf(

16、d n, y); 执行程序时,输入 5,程序运行后的输出结果是 ( )。 ( A) 5 ( B) 10 ( C) 15 ( D) 20 34 有以下程序: #include int fun(int m) static int n=( ); n+=m return n; main() int i=l; pfintf( d, , fun(i+); printf( d n, fun(+i); 程序运行后的输出结果是 ( )。 ( A) 1, 4 ( B) 1, 1 ( C) 2, 4 ( D) 2, 2 35 有以下程序: #include struct S int a, b; st2=3, 4,

17、5, 6; main() struct S*p=st; printf( d, , +(p一 a); printf( d n, +(p一 b); 程序运行后的输出结果是 ( )。 ( A) 3, 4 ( B) 4, 5 ( C) 3, 5 ( D) 4, 6 36 设有以下语句: typedef struct S char c; int a4; PN; 则下面叙述中正确的是 ( )。 ( A) PN是 struct S类型的变量 ( B) S是 struct类型的变量 ( C)可以用 S定义 结构体变量 ( D)可以用 PN定义结构体变量 37 有以下程序: #include #define S

18、UB(x)(x)一 (x) main() int a=l, b=2, c=3, s; s=SUB(a+b)*c; printf( d n, s); 程序运行后的输出结果是 ( )。 ( A) 0 ( B)一 6 ( C)一 1 ( D) 3 38 有以下程序: #include main() int x=1, y; V=x 2: printf( d n, y); 程序运行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 4 ( D) 8 39 下列关于文件概念的叙述中正确的是 ( )。 ( A)文件由 ASC 码组成,只能构成二进制文件 ( B)文件由结构序列组成,可以构成二进制

19、文件或文本文件 ( C)文件由字符序列组成,其类型只能是文本文件 ( D)文件由数据序列组成,可以构成二进制文件或文本文件 40 有以下程序: #include main() FILE*fp; int a10=a, b, C, d, i; fp=fopen(d2 dat, wb); fwrite(a, sizeof(int), 5, fp); fwrite(a, sizeof(int), 5, fp); fclose(fp); fp=fopen(d2 dat, rb); fread(a, sizeof(int), 10, fp); fclose(fp); for(i=0; i 10; i+)

20、printf( d, , a i); 程序运行后的输出结果是 ( )。 ( A) a, b, c, d, ( B) a, b, C, d, 0, a, b, c, d ( C) a, b, c, d, a, b, c, d, ( D) a, b, C, d, a, b, c, d, 0 二、程序填空题 41 下列给定程序中,函数 fun的功能是:把数组中的元素按 “最小、最大、次小、次大 的顺序排列。 例如,若 a所指数组中的数据最初排列为: 1、 2、 3、 4、 5、 6、 7、 8、 9;则按规则移动后,数据排列为: 1、 9、 2、 8、 3、 7、 4、 6、 5。形参 n中存放 a

21、所指数组中数据的个数。 规定 fun函数中的 max存放当前所找的最大值, px存放当前所找最大值的下标。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。不得增行或删行,也不得更改程序的结构! #include #define N 9 void fun(int a int n) int i, j, max, min, px, pn, t; for(i=0; i n一 i; j+=2) *found* max=min=【 1】 px=pn=i; for(j=i+1; j n; j+) *found* if(max 【 2】 )

22、 max=aj; px=j; *found* if(min 【 3】 ) max=aj; pn=j; if(pn! =i), t=ai; ai=min; apn=t; if(px=i)px=pn; if(px! =i+1) t=ai+1; ai+1=max; apx=t; main() int bN=9, 1, 4, 2, 3, 6, 5, 8, 7, i; printf( nThe original data: n); for(i=0; i N; i+)printf( 4d, bi); printf( n); fun(b, N); printf( nThe data after moving

23、: h n); for(i=0; i N; i+)printf( 4d, bi); printf( n); 三、程序修改题 42 下列给定程序中函数 fun的功能是:将 tt所指字符串中 的小写字母全部改为对应的大写 字母,其他字符不变。 例如,若输入 “Ab, cD”,则输出 “AB, CD”。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MOD11 C中,不得增行或删行,也不得更改程序的结构! #include #include char*fun(char tt) int i; for(i=0; tti; i+) *found* if(a =tti)(tti =z)

24、 *found* tti+=32; return(tt); main() char tt81; printf( nPlease enter a str: ng: ); gets(tt); printf( nThe result string is: n s, fun(tt); 四、程序设计题 43 请编写函数 fun,其功能是分别统计形参 t所指二维数组中字母 #和 *的个数。 注意:部分源程序存在 PROG1 C中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #include #include #define M 14 voi

25、d NONO(); void fun(char(*t)M, int*a, int*c) void get(char(*s)M) inti, j; for(i=0; i M; i+) for(j=0; j M; j+) sij=65+rand() 12; printf( c, sij); printf( n); main() char aMM; int x, y; get(a); fun(a, &x, &y); printf(#= d*= d n, x, y); NONO(); void NON0() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf;

26、 int i, j, x, y; char aMM; fp=fopen(c: test in dat, r); wf=fopen(c: test out dat, w); for(i=0: i M; +) for(j=0; j M; j+) fscanf(fp, n c, &aij; fun(a, &x, &y); fprintf(wf, #= d n, x); fprintf(wf, *= d n, y); fclose(fp); fclose(wf); 国家二级( C语言)机试模拟试卷 141答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 二叉树只有一个根节点,但不是线性结构,

27、 所以 A正确。有一个以上根节点的结构一定是非线性结构,链表是线性结构。 2 【正确答案】 D 【试题解析】 算法是程序的一部分;设计算法时不只考虑数据结构和结果的可靠性,还应该考虑数据对象的运算和操作等其他方面,所以选 D。 3 【正确答案】 A 【试题解析】 二叉树中的叶子节点总比度为 2的节点多 1个。 4 【正确答案】 A 【试题解析】 软件生命周期是指产品从提出、实现、使用、维护到停止使用退役的过程,因此,它不包括市场调研活动。 5 【正确答案】 C 【试题解析】 可 知:该树的深度为 3,例如,系统功能 2功能 2 1,就是最深的度数的一个表现。 6 【正确答案】 D 【试题解析】

28、 程序测试的主要目的是改正程序中的错误。 7 【正确答案】 A 【试题解析】 数据字典是在需求分析阶段建立的。 8 【正确答案】 A 【试题解析】 数据库系统的三级模式是概念模式、内模式和外模式。 9 【正确答案】 D 【试题解析】 自然连接要求两个关系的属性一致,并将其进行并操作。所以,答案为 D。 10 【正确答案】 A 【试题解析】 面向对象 设计方法的基本特征:封装性、继承性、多态性、抽样性。 11 【正确答案】 A 【试题解析】 常量和变量的概念不同,常量是指在程序运行中,其值不能被改变的量,变量是在程序运行过程中会发生变化的量,所以选项 A不正确,常量分为整型常量、实型常量、字符常

29、量和字符串常量,也可分为数值型常量和非数值型常量。 12 【正确答案】 A 【试题解析】 简单 C语句必须以分号结束,多条语句可以写在同一行上,注释也可以单独成行或有多行注释,另外, C语句不一定要写在一行上,除了特别的一些地方 (如字符串引用 )之外, C语句可以用硬回车连接。 13 【正确答案】 B 【试题解析】 程序可以不用输入,但一定要有输出,所以 B不正确;算法正确的程序一定会结束,而且相对于相同的输入输出一定相同。 14 【正确答案】 C 【试题解析】 C语言的用户标识符由数字、字母和下划线构成,选项 C中出现的短线不是下划线,所以不合法。 15 【正确答案】 B 【试题解析】 常

30、量不能被赋值,所以 D错,表达式不能被赋值,所以 C错,赋值运算的级别高手逻辑运算符,所以 A错,若写成 a=(b=1)则是合法的表达式。 16 【正确答案】 A 【试题解析】 scanf是严格执照格式输入的, 2d指只输入两位数字,所以 a=12,b=3,另外,题目中没有 c格式用来输入字符,所以空格将会被看作是分隔符 (此处为结束符 )。 17 【正确答案】 A 【试题解析】 选项 A将一个字符串赋给了一个字符变量是不正确的;选项 B和C是字符赋值,正确;选项 D是十六进制表示法。也正确。 18 【正确答案】 D 【试题解析】 是或运算符,即只要其中有一个表达式为真,结果即为真,当 c=3

31、或 c=5时,选项 D最左边的表达式为真,所以整 个表达式为真。 19 【正确答案】 C 【试题解析】 选项 C中在没有判断 x的正负之前便进行了开方运算,所以和公式不符。 20 【正确答案】 A 【试题解析】 注意 while循环体为空语句, m是先使用值再减 1,所以当 m=0时退出循环,再减 1,结果为一 1。 21 【正确答案】 A 【试题解析】 i+是在表达式中先使用 i的值,表达式执行完成后将 i加 1。题目的意思是在 1 40的数中先找到能被 5整除的数,如 5, 10, 15, 20等,若找到则将其加 1并判断是否能被 8整除,如果能则再加 1,执 行输出操作。所以只有15能被

32、 5整除,且加 1后也能被 8整除,再加 1后为 17。 22 【正确答案】 A 【试题解析】 case语句执行后若没有 break,则会继续执行后面的 case语句,直到碰到 break或 switch结束。当输入 1时输出 65,输入 2时输出 6,输入 3时输出 654,当输入 4时输出 65,当输入 5时输出 6,当输入 0时 while语句结束。 23 【正确答案】 B 【试题解析】 函数中可以没有 return语句, return语句中也可以没有表达式,若没有 return则函数要定义成 void类型,一个函数中也可以有多个 return语句,但要确保执行时只调用其中一个 retu

33、rn语句,不能一次返回多个函数值。 24 【正确答案】 A 【试题解析】 这里主要考查形参和实参之间的值传递,子函数的形参第一个是指针,第二个是实徽,所以第一个参数的值在子函数中改变后在主函数中会体现出来,而第二个参数在子函数中改变后在主函数中不会体现出来;另外,字符可以当作特殊的整数对待,因此在子函数中打印出的是 “2, B, ”,在主函数中再打印时 x的值发生了变化,但 y的值没有发生变化,所以打印出的是 “2, A”。 25 【正确答案】 D 【试题解析】 A的 中的内容错误, B中若没有确定数组的长度,则需要在定义的时候同时赋值, C中不能用变量定义数组长度。 26 【正确答案】 C

34、【试题解析】 一行输出 5个,所以应该判断数组下标是否为 5的整数倍,若是则输出一个换行符。 27 【正确答案】 C 【试题解析】 子函数的功能是将字符串中的字母变成大写,所以答案为 C。 28 【正确答案】 A 【试题解析】 前面的 for循环的目的是按列排序,最后一个 for循环是打印数组对角线上的值,所以答案是 1, 4, 3, 8。 29 【正确答案】 C 【试题解析】 系统会在字符串后面补一个结束符 0,也就是说系统会将 0作为字符串的结束符,在 strcat操作时 s=Welcome, t=“Beijing,所以操作后s=WelcomeBeijing。 30 【正确答案】 C 【试

35、题解析】 scanf在输入内容时严格按照格式要求接收字符,沣意到 s后面有个空格,所以 name的值将是 David。 31 【正确答案】 C 【试题解析】 字符指针只指向字符串或字符数组的首地 址即 ch0的地址,对其进行加减操作时是将其向后或向前移动一个字符的位置,所以 (p+3)指向了数组的第 4个字符, *(p+3)提取了这个字符。 32 【正确答案】 A 【试题解析】 for循环的功能是统计字符中的小写字母的个数,但此处判断条件写成了 si! =0,而不是 si! = 0,所以当 i=0时,第一个字符便是 0,循环结束, n=0。 33 【正确答案】 C 【试题解析】 子函数的功能是

36、迭代求和,输入 5的迭代过程是 5+4+3+2+1=15。 34 【正确答案】 A 【试题解析】 static变量在内存中固定位置存放,只在第一次赋初值;第一次调用子函数时传入的数值是 1,返回的 n值是 1;第二次调用子函数时,传入的值是3,此时子函数中的依然是 1,所以返回值是 4。 35 【正确答案】 B 【试题解析】 指针 p指向的是结构体数组的第一个元素,所以引用的值是 3和4,因为 +操作是先加再使用。所以输出的值是 4, 5。 36 【正确答案】 D 【试题解析】 typedef作用是定义别名,即将 struct S及其大括号中的内容定义成别名为 PN的类型,所以可以用 PN来定

37、义这变量。如果要用 S来定义变量就得使用 Struet S的形式。 37 【正确答案】 B 【试题解析】 是位运算符, 1的二进制表示是 00000001,向左移动 2位后为00000100,为 4。 38 【正确答案】 C 【试题解析】 是位运算符, 1的二进制表示是 00000001,向左移动 2位后为00000100,为 4。 39 【正确答案】 D 【试题解析】 文件由数据序列组成,可以构成二进制文件或文本文件。 40 【正确答案】 C 【试题解析】 文件先写入再读出 ,写入的内容是数组的内容,进行了两次写入,所以读出的内容是原来数组的内容的两份拷贝。 二、程序填空题 41 【正确答案

38、】 1 ai; 2 aj; 3 aj; 【试题解析】 填空 1: for循环语句循环体中将数组元素 ai赋值给变量 max和变量 min。 填空 2:通过一次 for循环,找到数组中的最大值, if语句的条件表达式是 maxaj。 填空 3:同理,此处 if语句的条件表达式是 min aj。 求最大值或者最小值的题目,一般都是假设一个元素最大或最小,然后通过 if条件语句将该元素 和其他元素进行比较操作来完成。 三、程序修改题 42 【正确答案】 1 if(tti =a)&(tti =z) 2 tti一 =32; 【试题解析】 1分析本题可知,要判断字符是否为小写字母,即判断其是否在a z,所

39、以这里需要进行连续的比较。用 &。 2从 ASC 码表中可以看出,小写字母的 ASC 码值比对应大写字母的 ASC值大 32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据 ASC 码值判断该字母是不是小写字母,若是,则 ASC 码值减 32即可。 四、程序设计题 43 【正确答案】 int i=0, j=0;循环统计的下标 *a=0;初始化 a字符统计的个数 *c=0;初始化 c字符统计的个数 for(i=0; i M; i+)行 for(j=0; j M; j+),列 if(tij=#)字符是 a,计数 (*a)+; if(tij=*)字符是 c,计数 (*c)+; 【试题解析】 对二维数组的行列分别循环,行优先,查找数组中元素为 #或者 *,分别对其进行计数。

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