[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷5及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷5及答案与解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 5及答案与解析 一、选择题 1 有以下程序 main( ) inta=3: a+=a-=a*a: printf( dn, a); 程序的输出结果是 ( A) 9 ( B) 3 ( C) -12 ( D) 0 2 有以下程序 #include stdio h main( ) intb=10, a=-11; a =b =4; printf( d dn, a, b); ) 则程序的输出结果是 ( A) 12 ( B) -1-2 ( C) -12 ( D) 1.2 3 设有定义: inta; floatb;执行 scanf( 2d f, a, b);语
2、句时,若从键盘输入 876543 0则 a和 b的值分别是 ( A) 876和 543 0 ( B) 87和 6 0 ( C) 87和 543 0 ( D) 76和 543 0 4 设有定义: doublea, b, c;若要求通过输入分别给 a、 b、 c输入 1、 2、 3,输入形式如下 (注:此处 代表一个空格 )1 02 03 0则能进行正确输入的语句是 ( A) scanff 1PA1PAlf, b, c); ( B) scanf( f f f, a, b, c); ( C) scanff lf 1f 1f, a, b, c); ( D) scanf( 5 11f 5 11 5 11
3、f, a, b, c); 5 以下叙述中正确的是 ( A)在 scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符 ( B)只能在 printf函数中指定输入数据的宽度,而不能在 scanf函数中指定输入数据占的宽度 ( C) scanf函数中的字符串,是提示程序员的,输入数据时不必管它 ( D)复合语句也被称为语句 块,它至少要包含两条语句 6 若有定义语句: doublex, y, *px, *PY;执行 px= x; py= y;正确的输入语句是 ( A) scanf( f f x, y); ( B) scanf( f f, x, y); ( C) scanf( 1f 1e,
4、 px, py); ( D) scanf( 1f 1f, x, y); 7 有以下程序段 intj; floaty; charname50; scanf( 2d f s, j, y, name); 当执行上述程序段,从键盘上输入 555667777abc后, y的值为 ( A) 55566 0 ( B) 7777 0 ( C) 566 0 ( D) 566777 8 有以下程序 main( ) inta=0, b=0, c=0, d=0; if(a=1)b=1; c=2: elsed=3: printf( d, d, d, dn, a, b, C, d); ) 程序输出 ( A) 0, 0,
5、0, 3 ( B) 1, 1, 2, 0 ( C)编译有错 ( D) 0, 1, 2, 0 9 有以下程序段 inta, b, c; a=10; b=50; c=30; if(a b)a=b, b=c; c=a; printf(a= db= dc= dn, a, b, c); 程序的输出结果是 ( A) a=10b=50c=30 ( B) a=10b=30c=10 ( C) a=10b=50c=10 ( D) a=50b=30c=50 10 有如下嵌套的 if语句 if(a b) if(a c)k=a; elsek=c; else if(b c)k=b; elsek=c; 以下选项中与上述 i
6、f语句等价的语句是 ( A) k=(a b)?(bc)?b: c); ( B) k=(a c)?b: c; ( C) k=(a c)?a: c; ( D) k=(a b)?(a c)?a: c): (b c)?b: c); 11 有以下程序 main( ) inta=1, b=2, c=3, d: 0; if(a: 1 b+=2) if(b!=21c-!=3) printf( d, d, d, n, a, b, c); elseprintff d, d, d, n, a, b, c); elseprintf( d, d, dn, a, b, c); 程序运行后的输出结果是 ( A) 1, 3,
7、 2 ( B) 1, 2, 3 ( C) 1, 3, 3 ( D) 3, 2, 1 12 若有以下程序 #include stdio h main( ) inta=1, b=2, c=3, d=4, r=0; if(a!=1); elser=1; if(b=2)r+=2; else; if(c!=3)r+=3; else; if(d=4)r+=4; printf( dn, r); ) 则程序的输出结果是 ( A) 10 ( B) 6 ( C) 7 ( D) 3 13 以下叙述中正确的是 ( A) if语句只能嵌套一层 ( B)不 能在 else子句中再嵌套 if语句 ( C) if子句和 el
8、se子句中可以是任意的合法的 C语句 ( D)改变 if-else语句的缩进格式,会改变程序的执行流程 14 若有定义: floatx=1 5; inta=1, b=3, c=2;则正确的 switch语句是 ( A) switch(a+b)case1: printf(*n); case2+1: printf(*n); ) ( B) switch(int)x); casel: printf(*n); case2: printf(*n); ) ( C) switch(x)case1 0: printf(*n); case2 0: printf(*n); ) ( D) switch(a+b)cas
9、e1: printf(*n); casec: printf(*n); ) 15 以下选项中与 if(a=1)a: b; elsea+;语句功能不同的 switch语句是 ( A) switch(a=1)case0: a=b; break; case1: a+; ( B) switch(a)case1: a=b; break; default: a+; ) ( C) switch(a)default: a+; break; case1: a=b; ( D) switch(a=1)case1: a=b; break; case0: a+; ) 16 关于 while(条件表达式 )循环体 ,以下叙
10、述正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数与循环体的执行次数一样 ( C)条件表达式的执行次数总是比循环体的执行次数多一次 ( D)条件表达式的执行次数与循环体的执行次数无关 17 有以下程序 main( ) inty=10; while(y-); printf(y= dn, y); ) 程序执行后的输出结果是 ( A) y=0 ( B) y=1 ( C) y=-1 ( D) while构成无限循环 18 在以下给出的表达式中,与 while(E)?的 (E)不等价的表达式是 ( A) (E 0E 0) ( B) (!E=0) ( C)
11、(E!=0) ( D) (E=0) 19 由以下 while构成的循环,循环体执行的次数是 intk=0; while(k=1)k+; ( A)一次也不执行 ( B)执行一次 ( C)无限次 ( D)有语法错,不能执行 20 关于 do循环体 while(条件表达式 );以下叙述中正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数无关 ( D)条件表达式的执行次数与循环体的执行次数一样 21 若变量已正确定义,有以下程序段 i=0: do printf( d, , i);
12、while(i+); printf( dn, i);其输 出结果是 ( A) 0, 0 ( B) 1, 1 ( C) 0, 1 ( D)程序进入无限循环 22 有以下程序 #include stdio h main( ) inti, j, m=1; for(i=1; i 3; i+) for(j: 3; j 0; j-) if(i*j 3)break; m*=j*j; printf(m= dn, m); 程序运行后的输出结果是 ( A) m=2 ( B) m=4 ( C) m=5 ( D) m=6 23 有以下程序 main( ) inti; for(i=1; i =40; i+) if(i+
13、 5=0) if(+i 8=0)printf( d, i); printf(n); 执行后的输出结果是 ( A) 24 ( B) 5 ( C) 32 ( D) 40 24 有以下程序段 inti, n; for(i=0; i 8; i+) n=rand0 5; switch(n) case1: case3: printf( dn, n); break; case2: case4: printf( dn, n); continue; case0: exit(0); printf( dn, n); ) ( A)当产生的随机数 n为 4时结束循环操作 ( B)当产生的随机数 n为 1和 2时不做任何
14、操作 ( C)当产生的随机数 n为 0时结束程序运行 ( D) for循环语句固定执行 8次 25 以下叙述中正确的是 ( A)对于 for(表达式 1;表达式 2;表达式 3)循环体 首先要计算表达式 2的值,以便决定是否开始循环 ( B)对于 for(表达式 1;表达式 2;表达式 3)循环体 ,只在个别情况下才能转换成 while语句 ( C)只要 适当地修改代码,就可以将 do while与 while相互转换 ( D)如果根据算法需要使用无限循环 (即通常所称的 死循环 ),则只能使用 while语句 26 以下程序段中的变量已正确定义 for(i=0; i 4; i+, i+) f
15、or(k=1; k 3; k+); printff*); 程序段的输出结果是 ( A) * ( B) * ( C) * ( D) * 27 以下叙述中正确的是 ( A)循环发生嵌套时,最多只能两层 ( B)三种循环 for, while, do while可以互相嵌套 ( C)循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误 ( D) for语句的圆括号中的表达式不能都省略掉 28 有以下程序 #include stdio h main( ) intx=8: for(; x 0; x-) if(x 3)printf( d, , x一 ); continue; printf( d, , -
16、x); 程序的运行结果是 ( A) 8, 7, 5, 2, ( B) 9, 7, 6, 4, ( C) 7, 4, 2, ( D) 8, 5, 4, 2 29 以 下叙述中正确的是 ( A)当 break出现在循环体中的 switch语句体内时,其作用是跳出该 switch语句体,并中止循环体的执行 ( B)只能在循环体内和 switch语句体内使用 break语句 ( C) continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环 ( D)在 while语句和 do while语句中无法使用 continue语句 国家二级 C语言机试( C语言程序设计)模拟试卷 5答案与解析
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 答案 解析 DOC
