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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)机试模拟试卷 110及答案与解析 一、选择题 1 有以下程序: #include main() int a=5, b=1, t; t=(a 2) b; printf(“ d n“, t); 程序运行后的输出结果是 ( )。 ( A) 21 ( B) 11 ( C) 6 ( D) 1 2 设函数中有整型变量 n,为保证其在未赋值的情况下初值为 0,应选择的存储类别是 ( )。 ( A) auto ( B) register ( C) static ( D) auto或 register 3 若有以下定义: int x10, *pt=x; 则对 x数组元素的正确引用是 ( )。

2、 ( A) *&x10 ( B) *(x+3) ( C) *(pt+10) ( D) pt+3 4 有以下程序: #include struet ord int x, y; dt2=1, 2, 3, 4; main() struet ord*p=dt; printf(“ d“, +p x); printf(“ d“, +P- y); 程序运行后的输出结果是 ( )。 ( A) 1, 2 ( B) 2, 3 ( C) 3, 4 ( D) 4, 1 5 以下函数按每行 8个输出数组中的数据: void fun(int*w, int n) int i: for(i=0; i n; i+) print

3、f(“ d“, wi); printf(“ n“); 下划线处应填入的语句是 ( )。 ( A) if(i 8=0)printf(“ n“); ( B) if(i 8=0)continue; ( C) if(i 8=0)printf(“ n“); ( D) if(i 8=0)continue; 6 有以下程序: #include 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(&ai)+b; printf(“ d“, b); p

4、rintf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 1012 ( B) 810 ( C) 1028 ( D) 1016 7 有以下程序: #include void fun(char*s) while(*s) if(*s 2=0)printf(“ c“, *s); s+: main() char a=(“good“); fun(a); printf(“ n“); 注意:字母 a的 ASCII码值为 97,程序运行后的输出结果是 ( )。 ( A) d ( B) go ( C) god ( D) good 8 有以下程序: #include main() FILE*f; f=f

5、open(“filea txt“, “W“); fprintf(f, “abe“); fclose(f); 若文本文件 filea txt中原有内容为: hello,则运行以上程序后,文件 filea txt中的内容为 ( )。 ( A) helloabe ( B) abelo ( C) abe ( D) abchello 9 有以下程序: #include int f(int x, int y) return(y x)*x); main() int a=3, b=4, c=5, d; d=f(f(a, b), f(a, c); printf(“ d n“, d); 程序运行后的输出结果是 (

6、 )。 ( A) 10 ( B) 9 ( C) 8 ( D) 7 10 有以下程序: #include #define PT 3 5 #define S(x)PT*x*x main() int a=1, b=2; printf(“ 4 1f n“, S(a+b); 程序运行后的输出结果是 ( )。 ( A) 14 0 ( B) 31 5 ( C) 7 5 ( D)程序有错无输 出结果 11 有以下程序: #include main() int a1, a2; char c1, c2; scanf(“ d c d c“, &a1, &c1, &a2, &c2); printf(“ d, c, d

7、, e“, a1, c1, a2, c2); 若想通过键盘输入,使得 a1的值为 12, a2的值为 34, c1的值为 a, c2的值为b,程序输出结果是: 12, a, 34, b,则正确的输人格式是 (以下一代表空格,代表回 车 )( )。 ( A) 12a34b ( B) 12 a 34 b ( C) 12, a, 34, b ( D) 12 a34 b 12 设有宏定义: #define IsDIV(k, n)(k n=1)?1: 0)且变量 m已正确定义并赋值,则宏调用: IsDIV(m, 5)&IsDIV(m, 7)为真时所要表达的是 ( )。 ( A)判断 m是否能被 5或者

8、7整除 ( B)判断 m是否能被 5和 7整除 ( C)判断 m被 5或者 7整除是否余 1 ( D)判断 m被 5和 7整除是否都余 1 13 支 持子程序调用的数据结构是 ( )。 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 14 将 E-R图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 15 有以下程序: #include void fun(int*p, int*q) main() int m=1, n=2, *r=&m; f(r, &n); printf(“ d, d“, m, n); void f(int*P, in

9、t*q) p=p+1; *q=*q+1; 程序运行后的输出结果是 ( )。 ( A) 1, 3 ( B) 2, 3 ( C) 1, 4 ( D) 1, 2 16 有两个关系 R, S如下: 由关系 R通过运算得到关系S,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 17 设有定义: char s81; int i=0;,以下不能将一行 (不超过 80个字符 )带有空格的字符串正确读入的语句或语句组是 ( )。 ( A) gets(s); ( B) while(si+=getchar()! = n); si= 0; ( C) scanf(“ s“, s);

10、( D) doseanf(“ c“, &si); while(si+! = n) si= 0; 18 若有定义语句: double x, y, *px, *py;执行了 px=&x; py=&y;之后,正确的输入语句是 ( )。 ( A) seanf(“ f f“, x, y); ( B) seanf(“ f &x, &y); ( C) seanf(“ 1f 1f“, px, py); ( D) seanf(“ 1f 1f“, x, y); 19 以下选项中正确的语句组是 ( )。 ( A) char s; s=“BOOK! “; ( B) char*s; s=“BOOK! “; ( C) c

11、har s10; s=“BOOK! “; ( D) char*s; s=“BOOK! “; 20 有以下程序: #include void fun(int*a, int*b) int*c; c=a; a=b; b=c; main() int x=3, y=5, *p=&x, *q=&y; fun(p, q); printf(“ d, d“, *p, *q); fun(&x, &y); printf(“ d, d n“, *p, *q); 程序运行后的输出结果是 ( )。 ( A) 3, 5, 5, 3 ( B) 3, 5, 3, 5 ( C) 5, 3, 3, 5 ( D) 5, 3, 5,

12、3 21 以下选项中,能用作数据常量的是 ( )。 ( A) 0115 ( B) 0118 ( C) 1-5e1 5 ( D) 115L 22 数据库应用系统中的核心问题是 ( )。 ( A)数据库设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 23 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点个数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 24 以下是 if语句的基本形式: if(表达式 )语句 其中 “表达式 ”( )。 ( A)必须是逻辑表达式 ( B)必须是关系表达式 ( C)必须是逻辑表达式或关系表达式 ( D)可以是

13、任意合法的表达式 25 下列排序方法中, 最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序 ( C)直接插入排序 ( D)堆排序 26 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 27 下列叙述正确的是 ( )。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有 序线性表既可以采用顺序存储结构,也可以采用链式存储

14、结构 28 以下程序段中的变量已正确定义: for(i=0; i 4; i+, i+) for(k=1; k 3; k+); printf(“*“); 程序段的输出结果是 ( )。 ( A) * ( B) * ( C) * ( D) * 29 有以下程序: #include main() int x; seanf(“ d“, &x); if(x =3); else if(x! =10) printf(“ d n“, x); 程序运行时,输入的值在哪个范围内才会有输出结果 ( )。 ( A)不等于 10的整数 ( B)大于 3且不等于 10的整数 ( C)大于 3或等于 10的整数 ( D)小于

15、 3的整数 30 若函数中有定义语句: int k;,则 ( )。 ( A)系统将自动给 k赋初值 0 ( B)这时 k中的值无定义 ( C)系统将自动给 k赋初值 1 ( D)这时 k中无任何值 31 设变量已正确定义,以下不能统 计出一行中输入字符个数 (不包含回车符 )的程序段是 ( )。 ( A) n=0; while(ch: getchar()! =” n”)n+; ( B) n=0; while(getchar()! =” n”)n+; ( C) for(n=0; getchar()! =” n”; n+); ( D) 13: O; for(ch=getchar()! =” n”;

16、 n+); 32 软件按功能可以分为:应用软件、系统软件、支撑软件 (或工具软件 ),下面属于应用软件的是 ( )。 ( A)编译程序 ( B)操作系统 ( C) 教务管理系统 ( D)汇编程序 33 有以下程序: #include main() int a=1, b=2, c=3, d=0; if(a=1&b+=2) if(b! =2 c-! =3) printf(“ d, d, d n“, a, b, c); else printf(“ d, d, d n“, a, b, c); else printf(“ d, d, d n“, a, b, c); 程序运行后的 输出结果是 ( )。 (

17、 A) 1, 2, 3 ( B) 1, 3, 2 ( C) 1, 3, 3 ( D) 3, 2, 1 34 有以下程序: #include main() char*s=“ABC“; do printf(“ d“, *s 10); s+: while(*s); 注意:字母 A的 ASCII码值为 65,程序运行后的结果是 ( )。 ( A) 5670 ( B) 656667 ( C) 567 ( D) ABC 35 以下选项中合法的标识符是 ( )。 ( A) 1 1 ( B) 1-1 ( C) 11 ( D) 1 36 有以下程序: #include main() char*a=“abed“,

18、 “ef“, “gh“, “ijk“; int i; for(i=0; i 4; i+)printf(“ c“, *ai); 程序运行后的输出结果是 ( )。 ( A) aegi ( B) dfhk ( C) abed ( D) abedefghijk 37 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 ( )。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)降低耦合性提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 38 程序段: int x=12; double y=3

19、141593; printf(“ d 8 6f, x, y);输出结果是 ( )。 ( A) 123 141593 ( B) 123 141493 ( C) 12, 3 141593 ( D) 123 1415930 39 设有定义: int x=2;,以下表达式中,值不为 6的是 ( )。 ( A) x*=x+1 ( B) x+, 2*x ( C) x*=(1+x) ( D) 2*x, x+=2 40 有以下程序: #include int fun(int x, int y) if(x=y)return(x); else return(x+y) 2); main() int a=4, b=5

20、, c=6; printf(“ d n“, fun(2*a, fun(b, c); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 6 ( C) 8 ( D) 12 二、程序填空题 41 给定程序中,函数 fun的功能是:调用随机函数产生 20个互不相同的整数放在形参 a所指数组中 (此数组在主函数中已置 0)。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 部分源程序在文件 BLANK1 C中。不得增行或删行,也不得更改程序的结构! 【试题源程序】 #include #include #define N 20 void fun(int*a) int

21、 i, x, n=0; X=rand() 20; *found* while(n【 1】 ) for(i=0; i n; i+) *found* if(x=ai) 【 2】 ; *found* if(i=【 3】 ) an=x; n+; X=rand() 20; main() int xN=0, i; fun(x); printf(“The result: n“); for(i=0; i N; i+) printf(“ 4d“, xi); if(i+1) 5=0)printf(“ n“); printf(“ n n“); 三、程序修改题 42 下列给定程序中,函数 fun的功能是:从 s所指字

22、符串中,找出 t所指字符串的个数作为函数值返回。例如,当 s所指字符串中的内容为 “abcdabfab”, t所指字符串的内容为 “ab”,则函数返回整数 3。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动 main函数,不 得增行或删行,也不得更改程序的结构! 【试题源程序】 #include #include #include #include int fun(char*s, char*t) int n; char*P, *r; n=0; while(*s) p=s; r=t; while(*r) *found* if(*r=*P)r+; p+ else break; *f

23、ound* if(r= 0) n+; s+: return n; void main() char s100, t100; int m; system(“CLS“); printf(“ nPlease enter string s: “); scanf(“ S“, s); printf(“ nPlease enter substring t: “); scanf(“ S“, t); m=fun(s, t); printf(“ nThe result is: m= d n“, m); 四、程序设计题 43 请编写函数 fun,其功能是:计算并输出 3到 n之间 (含 3和 n)所有素数的平方根之

24、和。例如,在主函数中从键盘给 n输入 100后,输出为: sum=148 874270。 注意: 要求 n的值大于 2但不大于 100。部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 【试题源程序】 #include #include double fun(int n) main() int n; double sum; printf(“ n nInput n: “); scanf(“ d“, &n); sum=fun(n); printf(“ n nsum= f n n“, sum); 国家二级( C语言)机试模拟试卷

25、110答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 5的二 进制是 101,计算 5 2,即将 101左移 2位后为 10100,然后和 00001进行逐位或运算等于 10101,其十进制为 21。 2 【正确答案】 C 【试题解析】 静态存储类型变量在未对其初始化时的默认初始化值是 0,其他存储类型不能确定变量在未赋值情况的初值。 3 【正确答案】 B 【试题解析】 数组的下标是从 0开始的,故 x10实际上具体为 x0, x1, ,x9,而若使用 x10就会溢出,编译出错,所以 AC两项错误; D项, pt+3指向地址,并未引用到元素; B项的表达正确,引 用 x3。 4 【

26、正确答案】 B 【试题解析】 dt是一个结构体数组,所以初始化的结果为 dt0=1, 2,at1=3, 4。 *P=dt;,表示 p指向 dt0。 +P- x中, -的优先级大于 +,所以表达式等价于 +(P- x),因为 P- x为 1,所以输出这个值为 2,同理,第二个+P- Y的值为 2+1=3。 5 【正确答案】 C 【试题解析】 每行输出 8个数组数据后输入一个换行,应该采取对 8取余的方法,余数循环一次便换行一次,所以语句为 if(i 8=0)printf(“ n“);。 6 【正确答案】 C 【试题解析】 变量 b是全局变量,所以它的值在整个程序结束时才会消失。 for循环第一次

27、 i=2, ai=3,所以 fun(&ai)=3+2=5,这时 b为 5,所以输出的b=fun(&ai)+b=5+5=10。 for循环第二次, i=3, b=10,然后 fun(&ai),代入ai=4,这时 fun(&ai)=10+4=14,所以输出的 b=fun(&ai)+b=14+14=28。 7 【正确答案】 A 【试题解析】 字符串 “good“中 g的 ASCII码值为 103, 0的 ASCII码值为 111,d的 ASCII码值为 100。在 fun函数中, if(*s 2=0)语句选择 ASCII码值为偶数的字母输出。在 good中,只有 d的 ASCII码值为偶数,所以结果

28、为 d。 8 【正确答案】 C 【试题解析】 fopen(“filea txt“, “w);表示以只写模式打开 filea txt,fprintf(f, “abc“);是先将文件清空再写入。所以 filea txt中内容为 abe。 9 【正确答案】 B 【试题解析】 程序执行过程:首先计算 f(a, b),代入 a=3, b=4得 3,然后计算f(a, c),代入 a=3, c=5得 6,所以 d=f(3, 6)=9。 10 【正确答案】 C 【试题解析】 S(a+b)=PT*a+b*a+b=(PT*a)+(b*a)+b=7 5,程序输出 7 5。 注意:宏只能简单替换,不能做任何修改。 1

29、1 【正确答案】 A 【试题解析】 根据 scanf函数中的格式说明字符串,各个输入之间没有任何符号,所以键盘输入也应该没有符号。 12 【正确答案】 D 【试题解析】 IsDIV(m, 5)&IsDIV(m, 7)为真,即表达式 (m 5=1)?1: 0)结果为 1,且表达式 (m 7=1)?1: 0)结果也为 1,也就是 m 5, m 7都等于 1,所以表达的是,判断 m被 5和 7整除是否都余 1。 13 【正确答案】 A 【试题解析】 在高级语言中,函数的调用是通过栈来实现的。在进行函数调用时,系统将所需的信息压入栈中,如函数的局部变量、返回值等。 14 【正确答案】 C 【试题解析】

30、 E-R图转换为关系模式时,实体和联系都可以表示为关系。 15 【正确答案】 A 【试题解析】 执行语句 p=p+1;只改变指针 p的地址,跟 p内容无关,所以 m值没有改变;执行语句 *q=*q+1;根据 q地址指针指向的内容改变了 n,所以 n变为 3。 16 【正确答案】 B 【试题解析】 关系 S是由关系 R的第 1、 2列的元组组成,这是对关系 R进行投影运算的结果。选择运算是对行的操作,投影运算是对列的操作。投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。 17 【正确答案】 C 【试题解析】 字符串的输入有两种方式: scanf()函数; gets()

31、函数。 C项, s代表输入一 个字符数组,遇到空格时会默认字符串输入结束,所以不能正确读入带有空格的字符串。 18 【正确答案】 C 【试题解析】 输入函数 scanf的标准格式是: scanf(格式控制,地址列表 )。需注意,格式控制和地址列表问应该用逗号隔开。 19 【正确答案】 D 【试题解析】 AC两项错误,不能直接将一个字符串整体赋值给字符数组; B项错误, “BOOK! “表示一个字符串数组,对应 char*的指针结构; D项正确,语句先定义一个字符串变量,然后将变量指向一个字符串常量。 20 【正确答案】 B 【试题解析】 C语言中,函数参数传递的功能是 “传值 ”,即形参和实参

32、是两个没有关系的变量。本题程序中函数的形参为指针变量,函数内部交换的是地址值,不是地址值所指向的值,所以不会改变实参的值。 21 【正确答案】 D 【试题解析】 C语言中实型常量有两种表示:小数形式和指数形式。在指数形式中,字母 e(或 E)之前必须要有数字,且 e或 E后面的指数必须为整数,故 C项错误;八进制整数常量以数字 0开始,故 A项错误。在八进制数中的有效数字为0 7,故 B项错误; L是长整型数据标识, 115L为长整型常数即 long int, D项正确。 22 【正确答案】 A 【试题解析】 数据库应用系统是在数据库管理系统 (DBMS)支持下建立的计算机应用系统,核心问题是

33、数据库设计。 23 【正确答案】 C 【试题解析】 对于一个非空的二叉树,叶子结点数等于度为 2的结点数目加 1。 24 【正确答案】 D 【试题解析】 if中的表达式一般是关系表达式或逻辑表达式,用于描述选择结构的条件,但也可以是其他类型表达式,在其值非零时为真,所以任意合法的表达式都可以做 if语句的判断条件。 25 【正确答案】 D 【试题解析】 冒泡排序,简单选择排序和直接插入排序在最坏情况下的比较次数都是 O(n2),而堆排序为 O(nlog2n)。 26 【正确答案】 A 【试题解析】 软件测试是为了发现软件中的错误,开发出高质量的完全符合用户需要的软件。 27 【正确答案】 D

34、【试题解析】 栈是 “先进后出 ”的线性表,队列是 “先进先出 ”的线性表,循环队列是链式存储的线性表,是线性结构。有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。 28 【正确答案】 D 【试题解析】 第二个 for循环 以 “; ”结束,整个双重循环将被视为空语句。执行下一个顺序语句,输出一个 *。 29 【正确答案】 B 【试题解析】 if-else语句中,若 x 3,则进入 else语句中,在 else语句中只有当x! =10时才会有输出结果,所以输入的值应为大于 3且不等于 10的整数。 30 【正确答案】 B 【试题解析】 int k;这条语句是定义一个整型变量 k,是动

35、态定义,所以 k中的值无定义。 31 【正确答案】 D 【试题解析】 要统计一行中输入字符个数 (不包含回车符 ),首先定义一个用作统计的变量 n,赋初值为 0;一行字符是否结束的判断条件应为 getchar()! =“n“; D项中 for循环表达式格式错误,应在 ch前添加 “; ”号。 32 【正确答案】 C 【试题解析】 系统软件主要包括: 操作系统软件; 各种语言的解释程序和编译程序; 各种服务性程序; 各种数据库管理系统。操作系统、编译程序与汇编程序属于系统软件,编译程序与汇编程序属于支撑软件,教务管理系统属于应用软件。 33 【正确答案】 C 【试题解析】 首先 a=1, b=2

36、, c=3, d=0; a为 1, b+为 2,所以第一个 if语 句的判断条件为真,进入 if语句。 b经过 b+运算后值为 3,所以第二个 if语句为真(逻辑或运算时,一个为真,整体都为真,并且第一个为真时第二个不会被执行运算 ),这时后面的运算都忽略, c仍为 3。 34 【正确答案】 C 【试题解析】 每进行一次循环,将输出 s指向字母的 ASCII码值除以 10的余数。字符 A的 ASCII码值为 65,第一次输出 65 10的余数 5,执行 s+后,指针指向字母 B;第二次输出 66 10的余数 6,执行 s+后,指针指向字母 c;第三次输出 67 10的余数 7,执行 s+后,指

37、针指向串结束 标志 0, 0对应 ASCII值为 0,即 *s等于 0,退出循环。因此,输出结果为 567。 35 【正确答案】 C 【试题解析】 C语言中标识符的命名规则:标识符由字母、数字和下划线组成,并且第一个字符必须是字母或下划线,不可以是数字。 36 【正确答案】 A 【试题解析】 char*a定义了一个指向数组的指针。 *a0=“abcd“, a1=“ef“,a2=“gh“, a3=“ijk“,输出语句要求输出的格式是 c,为一个字符,所以每个元素输出第一个字符,即 aegi。 37 【正确答案】 B 【试题解析】 耦合性是指模块间互相连接的紧密程度,内聚性是指一个模块内部各个元素

38、间彼此结合的紧密程度。提高内聚性、降低耦合性是提高模块独立性的方法。 38 【正确答案】 A 【试题解析】 输出的 x与 y间没有空格或逗号, “ 8 6f“代表输出字符型数据 y的格式应为小数点后保留 6位。 39 【正确答案】 D 【试题解析】 A项,先执行 x+1,赋值符号右侧为 3,然后再 x*=3,所以x=2*3=6; B项, x+得 3然后 2*x得 6; C项与 A项原理一致。 D项, 2*x虽然结果为 4,但没有赋值,此时 x的值仍为 2,所以最终为 4。 40 【正确答案】 B 【试题解析】 fun的功能是求两数的平均数,并且参数和结果都为整型。题中是用一个函数作为另一个函数

39、的参数,先执行 fun(b, c),值为 5。 fun(2*a, fun(b,c)即为计算 fun(2*4, 5),所以结果为 (5+8) 2=6。 二、程序填空题 41 【正确答案】 【 1】 N或 20 【 2】 break 【 3】 n 【试题解析】 填空【 1】:变量 n用于存储数组的最大下标, while语句对数组进行赋值,数组的 容量为 20,因此循环条件应为 n 20或 n N。 填空【 2】:通过一个 for循环判断 x是否与数组中已存的元素重复,若重复则跳出 for循环。 填空【 3】:若 for循环是由 break语句结束的,则 x与数组中的元素重复,此时 i小于 n;若

40、for循环是因为循环变量 i递增到某值,而不再满足循环条件结束的,说明 x的值与数组中的元素不重复,则此时 i的值等于 n。 三、程序修改题 42 【正确答案】 (1)错误: if(*r=*p)r+; p+ 正确: if(*r=*p)r+; p+; (2)错误: if(r= O) 正确: if(*r= O) 【试题解析】 错误 (1):在经过 “if”判断后执行后面括号内的语句时,每条语句应以 “; ”做结尾, “p+”后面没有分号即是错误。 错误 (2):该题目中定义 *r为指针变量, r为指针名称,对其所指内容进行判断时应加 “*”。 四、程序设计题 43 【正确答案】 double fun(int n) while(n 2&n =100)int i, j; double s=0: for(i=3; i =n; i+) for(j=2; j i; j+) if(i j=0) break; if(j=i) s=s+sqrt(i); return s; return( 1); 【试题解析】 程序是计算并输出 3到 n之间 (含 3和 n)所有素数的平方根之和,所以 fun应当具有判断一个数是否为素数的功能,可以利用 sqrt()函数。

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