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

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

1、国家二级 C语言机试(选择题)模拟试卷 59及答案与解析 一、选择题 1 有以下程序: include main ( ) int y=10; while(y-); printf(“y= d n“, y); 程序执行后的输出结果是 ( )。 ( A) Y=0 ( B) y=-1 ( C) y=1 ( D) while构成无限循环 2 有以下程序: #include main( ) int k=5; while(-k)printf(“ d“, k-=3); printf(“ n“); 执行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 4 ( D)死循环 3 关于 “while(条

2、件表达式 )循环体 ”,以下叙述正确的是 ( )。 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数一样 ( D)条件表达式的执行次数与循环体的执行次数无关 4 有以下函数: int fun(char *s) char *t=s; while(*t+); return(t-s); 该函数的功能是 ( )。 ( A)计算 s所指字符串的长度 ( B)比较两个字符串的大小 ( C)计算 s所指字符串占用内存字节的个数 ( D)将 s所指字符串复制到字符串 t中 5 有以下程序: inc

3、lude main( ) int a=7; while(a-); printf(“ d n“, a); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) -1 ( C) 1 ( D) 7 6 有以下函数: int aaa(char *s) char *t=s; while(*t+); t-; return(t-s); 以下关于 aaa函数功能叙述正确的是 ( )。 ( A)将串 s复制到串 t ( B)比较两个串的大小 ( C)求字符串 s的长度 ( D)求字符串 s所占字节数 7 在以下给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 ( A) (E 0 E

4、 int fun(char s) int n=0; while(*s = 9 printf(“m= d n“, m); 则程序运行后的输出结果是 ( )。 ( A) m=4 ( B) m=2 ( C) m=6 ( D) m=5 28 若有以下程序: #include main( ) int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1; for(i=0; i main( ) int i; for(i=1; i =40; i+) if(i+ 5=: 0) if(+i 8=0)printf(“ d“, i); printf(“ n“); 则执行后的输出结果是 (

5、 )。 ( A) 5 ( B) 24 ( C) 32 ( D) 40 30 以下叙述中正确的是 ( )。 ( A) continue语句的作用是使程序的执行流程跳出包含它的所有循环 ( B) break语句只能用在循环体内和 switch语句体内 ( C)在循环体内使用 break语句和 continue语句的作用相同 ( D) break语句只能用于 switch语句体中 31 以下叙述中正确的是 ( )。 ( A) continue语句使得整个循环终止 ( B) break语句不能用于提前结束 for语句的本层循环 ( C)使用 break语句可以使流程跳出 switch语句体 ( D)在

6、 for语句中, continue与 break的效果是一样的,可以互换 国家二级 C语言机试(选择题)模拟试卷 59答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 执行 y-直到值为 0,由于 y-是先用再减,所以退出循环时, y的值为 -1。 2 【正确答案】 A 【试题解析】 -k先自减再使用,所以第一次判断条件即为 while(4),条件为真,打印 k的值, k=4-3,结果为 1;第二次判断条件即为 while(0),条件为假,结束循环,打印回车换行符。所以选择 A选项。 3 【正确答案】 B 【试题解析】 while循环是先判断条件,满足条件后执行循环体,执行完后接着判

7、断条件,再执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择 B选项。 4 【正确答案】 A 【试题解析】 首先 char*s接受一个字符型数组的首地址,并将这个首地址赋给另一个字符型指针 char*t, while(*t+)不断循环直到 *t为 “ 0“,再将 t-1,这时字符指针 t指向字符串的最后一个字符,又因为 s指向字符数组的首地址,即字符串的首地址,所以 return(t-s)便是返回字符数组中字符串的长度。 5 【正确答案】 B 【试题解析】 a-的含义是先使用后减 1,所以当 a的值为 0时,跳出循环,但是仍要执行 a-,

8、a的值变为 -1。 6 【正确答案】 C 【试题解析】 本题重点考查的知识点 while循环语 句的应用。 aaa()函数中,首先定义了一个字符指针 t指向形参 s,然后通过一个 while循环让指针 t不断递增,直到 t指向字符串结束标识处。当 t指向结束标识处时,由于后缀 +运算符的原因,它还会被再递增 1,所以接下来的 t-;语句让它回到结束标识处。最后返回t-s, s还是指向字符串第 1个字符处,而 t指向了字符串结尾,故返回值为字符串的长度值。因此 C选项正确。 7 【正确答案】 B 【试题解析】 while语句中条件表达式 E的值不为 0即为真,认为满足条件,所以与 B选项中表达式

9、的含义正好相反,因此选择 B选 项。 8 【正确答案】 C 【试题解析】 在 fun函数中, while循环的功能是:逐个取字符数组 s中的字符,并判断其是否是数字。若是则将其作为个位数字保存到变量 n中, n的原数据的各个数位将相应左移一个 10进制位。当指针 s指向数组的第 3位时,循环条件不成立,循环结束,返回 n的值,输出 n的值为 61。因此 C选项正确。 9 【正确答案】 A 【试题解析】 第一次 while判断条件是 a+,先使用后加 1,为一 2时不为 0,条件为真,执行 a的自加与 +b操作, a的值变为 -1, b的值变为 1。第二次 while判断后, a的值变为 0,

10、b的值变为 2。第三次 while判断条件为假,但是仍要执行自加操作,即值为 1,跳出循环。打印 1和 2。 10 【正确答案】 D 【试题解析】 本题考查 while语句, while语句的语义是:计算表达式的值,当值为真 (非 O)时,执行循环体语句。 k=1为赋值语句,即 k的值等于 1。while(k=1)=while(1),是死循环,执行无限次。因此 D选项正确。 11 【正确答案】 C 【试题解析】 dowhile 循环的执行过程是先执行一遍循环体后再执行条件表达式的判断条件 ,直到条件不成立跳出循环,所以循环体和条件表达式的执行次数是一致的。所以选择 C选项。 12 【正确答案】

11、 A 【试题解析】 A选项中 do后面的语句只执行了一次便结束了循环; B选项中条件 while(1)永远成立,所以是死循环; C选项中 n的值为 10,而循环体为空语句,所以 while(n)永远为真,进入死循环; D选项中 for语句第二个表达式为空,所以没有判别条件,进入死循环。 13 【正确答案】 A 【试题解析】 第一次首先执行循环体,打印 i的值 0,然后判断 while的条件i+,先使用后自增 1,所以判断时条件为假,跳出循环,但是仍执行了 i的自增操作, i的值为 1,在接下来的打印语句中进行打印。 14 【正确答案】 A 【试题解析】 本题重点考查 dowhile 语句及 d

12、owhile 的循环语句保证会执行一次 (表达式的真值在每次循环结束后检查 ), +b即变量 b自增 l后再参与运算,而 a+则表示 a参与运算后再自增 l。所以第一次循环结束后, b=1, a=-1;第二次循环后, b=2, a=0,这里是先对 while的判断为真,然后 a才自增为零的,所以还会进行第三次循环;第三次循环后, b=3, a=1。因 此 A选项正确。 15 【正确答案】 B 【试题解析】 本题重点考查 dowhile 语句,该循环语句的特点是,先执行循环中的语句,然后判断表达式是否为真,如果为真,则继续循环;如果为假,则终止循环。因此, dowhile 循环至少要执行一次循环

13、语句。变量 a赋初值为 3,每循环一次需执行语句 a-=2一次,同时循环条件使变量 a自减 1,所以第一次循环后变量 a变为 1,第 2次循环后变量 a变为 -2。因此 A选项正确。 16 【正确答案】 B 【试题解析】 本题主要考查 dowhile 语句,执行 fun函数后, a数组里面的元素变为 35745,输出后 4个字符,所以结果为 5745,选项 B正确。 17 【正确答案】 C 【试题解析】 由于内层循环 for(k=1; k 3; k+)后面直接跟了空语句 “; ”所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“*“,故选择 C。 18 【正确答案】 A

14、 【试题解析】 第一次 for循环, y的值为 9 y 3的值为 0,满足条件,打印 -y,即先减 1后打印,所以打印 8;第二次 for循环, y的值为 7, y 3的值为 1,不执行打印语句;第三次 for循环, y的值为 6, y 3的值为 0,满足条件,打印 -y,打印 5;第四次 for循环, y的值为 4,不满足 if条件,不执行打印语句;第五次 for循环, y的值为 3,满足 if条件,打印 2;第六次 for循环, y的值为 1,不满足条件,不执行打印语句。 19 【正确答案】 D 【试题解析】 第一次循环 a的值为 1,满足条件,执行 b+=a与 a+=2,则 b的值变为

15、3, a的值变为 3。执行 a+, a的值为 4,满足条件进入第二次循环,执行完循环体后 b的值为 7, a的值为 6。执行 a+, a的值为 7,满足条件进入第三次循环,执 行完循环体后 b的值为 14, a的值为 9。执行 a+, a的值变为 10,不满足条件循环结束。所以选择 D选项。 20 【正确答案】 D 【试题解析】 coutinue的作用是跳出循环体中剩余的语句而进行下一次循环。第一次循环 x的值为 8,循环体中 if条件成立,打印 x的值 8后将 x减 1,再执行continue语句,跳出本次循环。第二次判断循环条件时, x的值变为 6,不满足循环体内 if条件,执行打印 -x

16、的操作,即打印 5后跳出循环。第三次判断循环条件时 x的值为 4,满足循环体中 if条件,执行打印 x-的操作,即打印 4后将 x值减1,执行 conti肌 e语句,跳出本次循环。第四次判断循环条件时 x的为 2,满足循环体中 if条件,打印 x-,即打印 2后将 x减 1,执行 continue语句,跳出本次循环。在进行 for条件表达式中第三个表达式 x-的操作后 x的值为 0,不满足条件结束循环。所以打印结果为 8, 5, 4, 2,。 21 【正确答案】 B 【试题解析】 本循环的条件判断时,只要 a为 0就退出循环体,初始 a的值为6,满足条件,执行完循环体后 b的值为 6, a-=

17、+c即 a=a-(+C),所以 a的值为5, c的值为 1;第二次循环后 b的值为 11, a的值为 3, c的值为 2;第三次也是最后循环后, a的值为 0, b的值 14, c的值为 3。 22 【正确答案】 C 【试题解析】 本题重点考查 c语言中 for语句和逻辑表达式, for语句的一般形式为: for(表达式 1;表达式 2;表达式 3)语句 其循环中的 “表达式 1(循环变量赋初值 )”、 “表达式 2(循环条件 )”和 “表达式 3(循环变量增量 )”都是选择项,即可以缺省,但 “; ”不能缺省。该题目中省略了 “表达式 l(循环变量赋初值 )”和 “表达式 3(循环变量增量

18、)”。 for(; a&(b=0); )b+=a;a-=c+; 相当于 while(a&(b=0)b+=a; a-=c+; 。因此 C选项正确。 23 【正确答案】 A 【试题解析】 本题重点考查 for语句,变量没有初始化的情况下,默认值与编译器有关系,不同的编译器有不同的值。因此 A选项正确。 24 【正确答案】 A 【试题解析】 外循环第一次 i的值为 1,内循环第一次 j的初值为 1,打印1*1=1;内循环第二次 j的值为 2,打印 1*2=2;内循环第三次 j的值为 3,打印1*3=3,打印回车换行,退出内循环。外循环第二 次 i的值为 2,内循环第一次 j的初值为 2,打印 2*2

19、=4;内循环第二次 j的值为 3,打印 2*3=6,打印回车换行,退出内循环。外循环第 3次, i的值为 3,内循环第一次 j的初值为 3,打印3*3=9,打印回车换行,退出内循环。 25 【正确答案】 D 【试题解析】 dowhile 语句是先执行后判断,所以第一次先执行循环体,判断i 3=1的条件,由于 i为 5,所以余数为 2,条件不成立,执行 i+, i的值为 6,判断 while条件为真,第二次执行循环体,同第一次循环体的执行过程一样, i的值变为 7,判断 while条件为真,第三次执行循环体,此时 i 3=1条件成立,判断 i 5=2也成立,打印 +与 i的值,即 *7,然后执行

20、 break语句,跳出循环。所以选择 D选项。 26 【正确答案】 B 【试题解析】 第一次执行外循环, i的值为 3;第一次执行内循环, j的值为 1, j =2条件成立,打印 i+j的值,即 4。第二次执行内循环, j的值为 2, j =2条件成立,打印 i+j的值,即 5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环, i的值为 2,内循环的执行同第一次一样,所以打印 3和 4,打印回车换行,结束内循 环。第三次执行外循环 i的值为 1,同理内循环中打印 2和 3,打印回车换行符,结束内循环。 27 【正确答案】 C 【试题解析】 第一次外循环 i的值为 1,第一次内循

21、环 j的值为 3,不满足条件,执行 m*=i*j,即 m的值为 3;第二次 j的值为 2,不满足条件,执行 m*=i*j,即m的值为 6;第三次 j的值为 1,不满足条件,执行 m*c=i*j,即 m的值仍为 6。第二次外循环 i的值为 2, j的值为 3,满足条件,执行 break语句,跳出循环。 28 【正确答案】 B 【试题解析】 每次内循环只循环一次就结束,第一 次外循环时,t=t+b0b00=l+b00=1+0=l;第二次外循环时,t=t+b1b11=1+b11=1+1=2;第三次外循环时, t=t+b2b22=2十b22: 2+2=4。 29 【正确答案】 C 【试题解析】 本题的

22、含义是在 1-40的整数的范围中,只有当 i的值能被 5整除,且 i+2的值能被 8整除时,打印 i的值,满足这个条件的只有 32,选择 C选项。 30 【正确答案】 B 【试题解析】 continue语句的作用是: 跳过循环体中剩余的语句而进行下一次循环,所以 A选项错误。 Break语句的作用是终止正在执行的 switch流程,跳出switch结构或者强制终止当前循环,从当前执行的循环中跳出,所以 C、 D选项错误。 31 【正确答案】 C 【试题解析】 break语句通常用在循环语句和开关语句中。当 break用于开关语句 switch中时,可使程序跳出 switch而执行 switch以后的语句;当 break语句用于 dowhile 、 for、 while循环语句中时,可使程序终止循环而执行循环后面的语句,即满足条件时便跳出 循环。 continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。 A、 B和 D三个选项中均有错误。因此 C选项正确。

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

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

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