[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷3及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷3及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷3及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 3及答案与解析 一、选择题 1 有以下程序 main() int a=3: a+=a-=a*a: printf(“ d n“, a); 程序的输出结果是 ( A) 9 ( B) 3 ( C) -12 ( D) 0 2 若有以下程序 #include main() int b=10, a=-11; a =b =4: printf(“ d d n“, a, b); ) 则程序的输出结果是 ( A) 1 2 ( B) -1-2 ( C) -1 2 ( D) 1-2 3 有以下程序 main() char a, b, c, d; scanf(“ c c
2、“, &a, &b); c=getchar(); d=getchar(); printf(“ c c c c n“, a, b, c, d); 当执行程序时,按下列方式输入数据 (从第 1列开始,代表回车,注意:回车也是一个字符 ) 12 34则输出结果是 ( A) 12 ( B) 1234 ( C) 12 3 ( D) 12 34 4 设变量均已正确定义,若要通过 scanf(“ d c d c“, &a1, &c1, &a2,&c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是 (注: 代表空格字符 ) ( A) 10X
3、20Y ( B) 10X20Y ( C) 10X 20Y ( D) 10X20Y 5 若有定义: int a, b:通过语句 scanf(“ d; d“, &a, &b);能把整数 3赋给变量 a, 5赋给变量 b的 输入数据是 ( A) 3 5 ( B) 3 5 ( C) 3; 5 ( D) 35 6 设有定义: double a,b, c;若要求通过输入分别给 a、 b、 C输入 1、 2、 3,输入形式如下 (注:此处口代表一个空格 )1 02 0133 0则能进行正确输入的语句是 ( A) scanf(“ 1f 1f 1f“,a, b, c); ( B) scanf(“ f f f“,
4、 &a, &b, &c); ( C) scanf(“ 1f 1f 1f“, &a, &b, &c); ( D) scanf(“ 5 11f 5 11f 5 11f“, &a, &b, &c); 7 以下叙述中正确的是 ( A)在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( B)在使用 scanf函数输入整数或实数时,输入数据之间只能用空格来分隔 ( C)在 printf函数中,各个输出项只能是变量 ( D)使用 printf函数无法输出百分号 8 有以下程序 #include main() int a1, a2; char c1, c2; scanf(” d c
5、d c”, a1, c1, &a2, &c2); printf(“ d, c, d, c“, a1, c1, a2, c2); ) 若想通过键盘输入,使得 a1的值为 12, a2的值为 34, c1的值为字符 a, c2的值为字符 b,程序输出结果是: 12, a, 34, b则正确的输入格式是 (以下口代表空格,代表回车 ) ( A) 12a34b ( B) 12, a, 34, b ( C) 12a34b ( D) 12a34b 9 若有定义语句: double x, y,*px, *py;执行 px=&x; py=&y;正确的输入语句是 ( A) scanf(“ f f“&x, &y)
6、; ( B) scanf(“ f f“, x, y); ( C) scanf(“ 1f 1e“, px, py); ( D) scanf(“ 1f 1f“, x, y); 10 若在定义语句: int a, b, c, *p=&c;接着执行以下选项中的语句,则能正确执行的语句是 ( A) scanf(“ d d d“, a, b, c); ( B) scanf(“ d“, a, b, c); ( C) scanf(“ d“, p); ( D) scanf(“ d“, &p); 11 有以下程序段 char name20; int num; scanf(“name= s num= d“, nam
7、e, &nurn); 当执行上述程序段,并从键盘输入: name=Lili num=1001后, name的值为 ( A) name=Lili ( B) Lili num= ( C) name=Lili num=1001 ( D) Lili 12 有以下程序 main() int x=1, y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“ d n“, y); 程序运行后的输出结果是 ( A) 2 ( B) 0 ( C) 1 ( D) 3 13 有以下程序段 int a, b, c; a=10; b=50; c=30; if(a
8、 b)a=b, b=c; c=a; printf(“a= d b= d c= d n“, a, b, c); 程序的输出结果是 ( A) a=10 b=50 c=30 ( B) a=10 b=30 c=10 ( C) a=10 b=50 c=10 ( D) a=50 b=30 c=50 14 if语句的基本形式是: if(表达式 )语句,以下关于 “表达式 “值的叙述中正确的是 ( A)必须是整数值 ( B)必须是正数 ( C)可以是任意合法的数值 ( D)必须是逻辑值 15 有以下计算公式 若程序前面已经在命令行中包含 math h文件,不能够正确计算上述公式的程序段是 ( A) y=sqr
9、t(x); if(x 0)y=sqrt(-x); ( B) if(x =0)y=sqrt(x); else y=sqrt(-x); ( C) if(x =0)y=sqrt(x); if(x 0)y=sqrt(-x); ( D) y=sqrt(x =07x: -x); 16 有以下程序 main() int a=1, b=2, c=3, d=0; if(a=1& b+=2) if(b!=2c-!=3) printf(“ d, d, d n“, a, b, c); else printf(“ d, d, d n“, a, b, c); else printf(“ d, d, d a“, a, b,
10、 c); 程序运行后的输出结果是 ( A) 1, 3, 2 ( B) 1, 2, 3 ( C) 1, 3, 3 ( D) 3, 2, 1 17 若有以下程序 #include main() int a=1, b=2, c=3, d=4; if(a=2)(b=1)c=2; if(c=3)&(d=-1)a=5; printf(“ d, d, d, d n“, a, b, C, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2, 4 ( C) 5, 1, 2, -1 ( D) 1, 2, 3, 4 18 若有以下程序 #include main() int a=
11、1, b=2, c=3, d=4; if(a=2)&(b=1)c=2; if(c=3)(d=-1)a=5; printf(“ d, d, d, d n“, a, b, c, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2 2, 2, 4 ( C) 1, 2, 3, 4 ( D) 5, 1, 2, -1 19 以下叙述中正确的是 ( A) if语句只能嵌套一层 ( B)不能在 else子句中再嵌套 if语句 ( C) if子句和 else子句中可以是任意的合法的 C语句 ( D)改变 if-else语句的缩进格式,会改变程序的执行流程 20 若有定义: float x
12、=1 5; int a=1, b=3, c=2;则正确的 switch语句是 ( A) switch(a+b)case 1: printf(“* n“); case 2+1: printf(“*n“); ) ( B) switch(int)x); case 1: printf(“* n“); case 2: printf(“* n“); ) ( C) switch(x)case 1 0: printf(“* n“); case 2 0: printf(“* n“); ) ( D) switch(a+b)case 1: printf(“* n“); case c: printf(“* n“);
13、21 有以下程序 main() int k=5, n=0; do switch(k) case 1: case 3: n+=1; k-; break; default: n=0; k-; case 2: case 4: n+=2; k一; break; ) printf(“ d“, n); ) while(k 0&n 5) 运行以后的输出结果是 ( A) 0235 ( B) 235 ( C) 02356 ( D) 2356 22 有以下程序 #include main() int x=1, y=0, a=0, b=0; switch(x) case 1: switch(y) case 0: a
14、+; break; case 1: b+; break; case 2: a+; b+; break; printf(“a= d, b= d n“, a, b); 程序运行后的输出结果是 ( A) a=1, b=1 ( B) a=1, b=0 ( C) a=2, b=1 ( D) a=2, b=2 23 以下程序段中,与语句: k=a b?(b c?1: 0): 0;功能相同的是 ( A) if(a b)(b c)k=1; else k=0; ( B) if(ac)k=1; else k=0; ( D) if(a b)k=1; else if(b c)k=1; else k=0; 24 有以下
15、程序 #include main() int y=10; while(y-); printf(“y= d n“, y); 程序执行后的输出结果是 ( A) y=0 ( B) y=-1 ( C) y=1 ( D) while构成无限循环 25 有以下程序 main() int y=10; while(y-); printf(“y= d n“,y); 程序执行后的输出结果是 ( A) y=0 ( B) y=1 ( C) y=-1 ( D) while构成无限循环 26 有以下程序 #include main() int a=7; while(a-); printf(“ d n“, a); 程序运行
16、后的输出结果是 ( A) 0 ( B) 1 ( C) -1 ( D) 7 27 要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是 ( A) while(ch=getchar()=N)printf(“ c“, ch); ( B) while(ch=getchar()=“N“)pfintf(“ c“, ch); ( C) while(ch=getchar()!=N)printf(“ c“, ch); ( D) while(ch=getchar()=N)printf(“ c“, ch); 28 由以下 while构成的循环,循环体执行的次数是 in
17、t k=0; while(k=1)k+; ( A)一次也不执行 ( B)执行一次 ( C)无限次 ( D)有语法错,不能执行 29 关于 do循环体 while(条件表达式 );以下叙述中正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环 体的执行次数无关 ( D)条件表达式的执行次数与循环体的执行次数一样 30 有以下程序 main() int i=5; do if(i 3=1) if(i 5=2) printf(“* d“, i); break; i+; while(i!=0);
18、printf(“ n“); 程序的运行结果是 ( A) *3*5 ( B) *5 ( C) *7 ( D) *2*6 31 若有以下程序 main() int a=-2, b=0; do +b; while(a+); printf(“ d, d n“, a, b); 则程序的输出结果是 ( A) 0, 2 ( B) 1, 2 ( C) 1, 3 ( D) 2, 3 32 有以下程序段 int i, n; for(i=0; i 8; i+) n=rand() 5; switch(n) case 1: case 3: printf(“ d n“, n); break; case 2: case 4
19、: printf(“ d n“, n); continue; case 0: exit(0); printf(“ d n“, n); 以下关于程序段执行情况的叙述,正确的是 ( A)当产生的随机数 n为 4时结束循环操作 ( B)当产生的随机数 n为 1和 2时不做任何操作 ( C)当产生的随机 数 n为 0时结束程序运行 ( D) for循环语句固定执行 8次 33 有以下程序 #inc lude main() int ij, m=1; for(i=1; i 3; i+) for(j: 3; j 0; j-) if(i*j 3)break; m*=i*j; printf(“m= d n“,
20、m); 程序运行后的输出结果是 ( A) m=2 ( B) m=4 ( C) m=5 ( D) m=6 34 有以下程序 #include main() int i, j; for(i=3; i =1; i-) for(j=l; j =2; j+)printf(“ d“i+j); printf(“ n“); 程序的运行结果是 ( A) 4 3 2 5 4 3 ( B) 2 3 3 4 4 5 ( C) 4 5 3 4 2 3 ( D) 2 3 3 4 2 3 35 有以下程序 #include void main() char b, c; int i; b=a; c=A; for(i=0; i
21、 6; i+) if(i 2)putchar(i+b); else putchar(i+c); printf(“ n“); 程序运行后的输出结果是 ( A) ABCDEF ( B) aBcDeF ( C) abcdef ( D) AbCdEf 36 有以下程序段 int i, n; for(i=0; i 8; i+) n=rand() 5; switch(n) case 1: case 3: printf(“ d n“, n); break; case 2: case 4: printf(“ d n“, n); continue; case 0: exit(0); printf(“ d n“,
22、 n); ( A)当产生的随机数 n为 4时结束循环操作 ( B)当产生的随机数 n为 1和 2时不做任何操作 ( C)当产生的随机数 n为 0时结束程序运行 ( D) for循环语句固定执行 8次 37 若有以下程序 main() int a=6, b=0, c=0; for(; a&(b=0); ) b+=a; a-=c+; printf(“ d, d, d n“, a, b, c); 则程序的输出结果是 ( A) 6, 0, 0 ( B) 5, 6, 0 ( C) 6, 6, 1 ( D) 5, 6, 1 38 若有以下程序 #include char*a=“you“: char b=“
23、Welcome you to China!“; main() int i, j=0; char*p; for(i=0; bi!= 0; i+) if(*a=bi) p=a; for(j=i; *p!= 0; j+) if(*P!=bj)break; p+; if(*p= 0)break; printf(“ s“, &bi); ) 则程序的输出结果是 ( A) you to China! ( B) to China! ( C) me you to China! ( D) China! 39 有以下程序 main() int ij; for(i=1; i 4; i+) for(j=i; j 4;
24、j+) printf(“ d* d= d“, i,j, i*j); printf(“ n“); ( A) 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3 ( B) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3: 9 ( C) 1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 ( D) 1*1=1 2*1=2 2*2= 4 3*1=3 3*2=6 3*3=9 40 以下叙述中正确的是 ( A)循环发生嵌套时,最多只能两层 ( B)三种循环 for, while, do-while可以互相嵌套 ( C)循环嵌套时,如果不进行缩进形
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 答案 解析 DOC
