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

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

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