内容正文:
编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。
本专辑第19卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】:
(四)循环结构程序设计:while语句
重庆市高等职业教育分类考试 计算机类
《C语言程序设计》考点双析卷 第19卷
while语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共30小题,每题3分,共90分)
1.要求通过whi1e循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( )
A.while ((ch=getchar( ))!='N') printf(" % c",ch);
B.while (ch=getchar( )!='N’) printf("%c",ch);
C.while (ch=getchar( )= ='N’) printf(" %c",ch);
D.while ((ch=getchar( ))= :='N') printf("%c",ch);
2.C语言中while和do-while循环的主要区别是( )
A.do…while的循环体至少无条件执行一次
B.while的循环控制条件比do…while的循环控制条件严格
C.do…while允许从外部转到循环体内
D.do…while的循环体不能是复合语句
3.下列语句段中不是死循环的是( )
A.i=100;
while (1)
{
i=i%100+1;
if(i= =20) break;
}
B.for (i-=1;i++)
sum=sum+l;
C.k=0;
do
{
++k;
} while (k<=0);
D.s=3379;
while (s++%2+3%2)
s++;
4.语句while (!e);中的条件!e等价于( )
A.e==0 B.e!=l C.e!=0 D.~e
5.有以下程序段,程序执行后的输出结果是( )
main( )
{ int k=5, n=0;
while(k>0) { switch (k)
{default : break; case 1 : n+=k;
case 2: case 3: n+=k; } k--; }
printf(" %d
"',n); }
A.0 B.4 C.6 D.7
6.定义如下变量:int n = 10 ;则下列循环的输出结果是( )
while(n>7){
n-- ;
System.out.println(n) ;
}
A.10 9 8 7 B.9 8 7 6 C.10 9 8 D.9 8 7
7.以下程序段给数组所有的元素输入数据,请选择正确答案填入( )
#include<stdio.h>
main()
{
int a[10],i=0;
while(i<10) scanf("%d", 【 】);
┇
}
A.a+(i++) B.&a[i+1] C.a+i D.&a[++i]
8.有以下程序,程序的运行结果是( )
#include <stdio.h>
main( )
{ int k=5;
while (--k) printf("%d "',k-=3);
printf("
");
A.1 B.2 C.4 D.死循环
9.有以下程序,程序执行后的输出结果是( )
main( )
{ int y=10;
while (y--); printf("y= %d
", y);
}
A.y=0 B.y=-1
C.y=1 D.while构成无限循环
10.下列程序段的执行结果是( )
int n = 10;
while (n > 7) {
n--;
printf("%d,", n);}
A.9,8,7 B.987 C.9 8 7 D.程序错误
11.执行以下程序后,输出的结果是。( )
#include <stdio.h>
main()
{
int k, m, n;
n = 10; m = 1; k = 1;
while (k <= n) {
m *= 2; k += 3;}
printf("%d
", m);
}
A.13 B.14 C.15 D.16
12.以下程序段的执行结果是( )
int t, a = 2, b = 3, c = -2;
while (a > b > c) {
t = a; a = b; b = t; c++;}
printf("%d,%d,%d
", a, b, c);
A.2,3,0 B.1,2,3 C.230 D.123
13.执行下列程序 int k=10; while(k==0)k=k-1;则下面描述正确的是( )
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
14.以下程序段的输出结果是( )
int n = 1;
while (n <= 2) {
n++;
printf("%d ", n);}
A.2 3 B.4 5 C.3 9 D.0 9
15.执行下列程序 int k=3; while(k=0)k=k-1;则下面描述正确的是( )
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
16.函数del的作用是删除已按升序排列的数组a中的指定元素x。设有调用语句n=del(a,n,x);其中实参n为删除前数组元素的个数,赋值号左边的n为删除后数组元素的个数。请为第【2】空选择填入合适的内容。( )
int del(int a[ ],int n,int x)
{ int p,i;
p=0;
while(【1】)
p=p+1;
for(i=p-1;i<n;i++)
【2】;
n=n-1;
return n;}
A.a[i]=a[i+1] B.a[i]=a[i-1] C.a[i]=a[i] D.a[i+1]=a[i]
17.以下代码的输出是( )
int i = 0;
while (i < 2); {
printf("%d ", i);
i++;
}
A.0 1 B.0 C.无输出 D.死循环
18.以下代码的错误是( )
int x = 5;
while (x > 0) {
printf("%d ", x);
}
A.缺少 x-- B.条件错误 C.死循环 D.语法错误
19.以下代码的输出是( )
int a = 1;
while (a <= 3) {
printf("%d ", a);
a = a + 1;
}
A.1 2 3 B.1 2 C.2 3 D.0 1 2
20.以下代码的输出是( )
int i = 0;
while (i++ < 3) {
printf("%d ", i);
}
A.0 1 2 B.1 2 3 C.0 1 2 3 D.1 2
21.以下代码段中,循环体执行次数为( )
int x = 10;
while (x++ < 12) {
printf("Hello");
}
A.0 B.1 C.2 D.3
22.下列关于while循环表述正确的是:( )
A.while循环的执行次数要么1次,要么多次
B.while循环的初始化变量语句可以写在循环里
C.while循环的循环体里一定要有使变量趋于结束的代码
D.while循环条件表达式的执行次数和循环体的执行次数无关
23.以下程序,while循环的执行次数是( )
#include<stdio.h>
main(){
int i=0;
while(i=1) i++;
}
A.执行一次 B.有语法错,无法执行
C.无数次 D.一次也不执行
24.如下函数的功效是:通过键盘输入数据,为数组中的所有元素赋值。在程序中下划线处应填入的是( )
#include <stdio.h>
#define N 10
void fun(int x[N])
{ int i=0;
while(i<N) scanf(“%d”,_______);}
A.x+i B.&x[i+1] C.x+(i++) D.&x[++i]
25.设有语句段:int t=0;while(t=1){……},则下列叙述中正确的一项是( )
A.循环控制表达式的值为0,不执行循环体
B.循环控制表达式的值为1,执行循环体
C.循环控制表达式不合法
D.以上说法均不正确
26.执行以下程序段的输出结果是( )
int main()
{int i=10,s=2;
while(i<15){s+=i;i+=2;}
printf("%d",s);getch();}
A.32 B.34 C.36 D.38
27.执行以下程序段的输出结果是( )
main()
{int n=0;
while(n++<=2);
printf("%d
",n);getch();}
A.2 B.3 C.4 D.有语法错误
28.在while循环语句中,while后面的一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 的操作,否则,循环将无限制地进行下去。( )
A.0 B.-1 C.1 D.2
29.执行以下程序段的输出结果是( )
main()
{int n=9;
while(n>6)
{n--;printf("%d",n);}getch();}
A.987 B.876 C.8765 D.9876
30.执行以下程序段的输出结果是( )
main()
{int k=0;
while(k<=2)
{k++;printf("%d",k);}getch();}
A.1234 B.123 C.12 D.1
二、程序设计题(本大题共1小题,每题10分,共10分)
31.输入一行字符,输出其中字母的个数。
提示:n=0; //计算器n置0
ch=getchar(); //输入第1个字符
while(ch!='
')
{if(ch为英文字母)
n++; //计算器n加1
ch=getchar(); //输入下一个字符
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。
本专辑第19卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】:
(四)循环结构程序设计:while语句
重庆市高等职业教育分类考试 计算机类
《C语言程序设计》考点双析卷 第19卷
while语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共30小题,每题3分,共90分)
1.要求通过whi1e循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( )
A.while ((ch=getchar( ))!='N') printf(" % c",ch);
B.while (ch=getchar( )!='N’) printf("%c",ch);
C.while (ch=getchar( )= ='N’) printf(" %c",ch);
D.while ((ch=getchar( ))= :='N') printf("%c",ch);
【答案】A
2.C语言中while和do-while循环的主要区别是( )
A.do…while的循环体至少无条件执行一次
B.while的循环控制条件比do…while的循环控制条件严格
C.do…while允许从外部转到循环体内
D.do…while的循环体不能是复合语句
【答案】A
3.下列语句段中不是死循环的是( )
A.i=100;
while (1)
{
i=i%100+1;
if(i= =20) break;
}
B.for (i-=1;i++)
sum=sum+l;
C.k=0;
do
{
++k;
} while (k<=0);
D.s=3379;
while (s++%2+3%2)
s++;
【答案】C
4.语句while (!e);中的条件!e等价于( )
A.e==0 B.e!=l C.e!=0 D.~e
【答案】A
【详解】题目考查的是C语言中逻辑运算符!的含义及其在循环条件中的等价表达。关键点如下:
!e的含义:!是逻辑非运算符,若e的值为0(假),则!e为1(真);反之!e为0。
等价关系:!e表示“e为假”,即e==0
5.有以下程序段,程序执行后的输出结果是( )
main( )
{ int k=5, n=0;
while(k>0) { switch (k)
{default : break; case 1 : n+=k;
case 2: case 3: n+=k; } k--; }
printf(" %d
"',n); }
A.0 B.4 C.6 D.7
【答案】D
6.定义如下变量:int n = 10 ;则下列循环的输出结果是( )
while(n>7){
n-- ;
System.out.println(n) ;
}
A.10 9 8 7 B.9 8 7 6 C.10 9 8 D.9 8 7
【答案】B
7.以下程序段给数组所有的元素输入数据,请选择正确答案填入( )
#include<stdio.h>
main()
{
int a[10],i=0;
while(i<10) scanf("%d", 【 】);
┇
}
A.a+(i++) B.&a[i+1] C.a+i D.&a[++i]
【答案】A
8.有以下程序,程序的运行结果是( )
#include <stdio.h>
main( )
{ int k=5;
while (--k) printf("%d "',k-=3);
printf("
");
A.1 B.2 C.4 D.死循环
【答案】A
9.有以下程序,程序执行后的输出结果是( )
main( )
{ int y=10;
while (y--); printf("y= %d
", y);
}
A.y=0 B.y=-1
C.y=1 D.while构成无限循环
【答案】B
10.下列程序段的执行结果是( )
int n = 10;
while (n > 7) {
n--;
printf("%d,", n);}
A.9,8,7 B.987 C.9 8 7 D.程序错误
【答案】A
11.执行以下程序后,输出的结果是。( )
#include <stdio.h>
main()
{
int k, m, n;
n = 10; m = 1; k = 1;
while (k <= n) {
m *= 2; k += 3;}
printf("%d
", m);
}
A.13 B.14 C.15 D.16
【答案】D
12.以下程序段的执行结果是( )
int t, a = 2, b = 3, c = -2;
while (a > b > c) {
t = a; a = b; b = t; c++;}
printf("%d,%d,%d
", a, b, c);
A.2,3,0 B.1,2,3 C.230 D.123
【答案】D
13.执行下列程序 int k=10; while(k==0)k=k-1;则下面描述正确的是( )
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
【答案】C
14.以下程序段的输出结果是( )
int n = 1;
while (n <= 2) {
n++;
printf("%d ", n);}
A.2 3 B.4 5 C.3 9 D.0 9
【答案】A
15.执行下列程序 int k=3; while(k=0)k=k-1;则下面描述正确的是( )
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
【答案】C
16.函数del的作用是删除已按升序排列的数组a中的指定元素x。设有调用语句n=del(a,n,x);其中实参n为删除前数组元素的个数,赋值号左边的n为删除后数组元素的个数。请为第【2】空选择填入合适的内容。( )
int del(int a[ ],int n,int x)
{ int p,i;
p=0;
while(【1】)
p=p+1;
for(i=p-1;i<n;i++)
【2】;
n=n-1;
return n;}
A.a[i]=a[i+1] B.a[i]=a[i-1] C.a[i]=a[i] D.a[i+1]=a[i]
【答案】A
17.以下代码的输出是( )
int i = 0;
while (i < 2); {
printf("%d ", i);
i++;
}
A.0 1 B.0 C.无输出 D.死循环
【答案】D
18.以下代码的错误是( )
int x = 5;
while (x > 0) {
printf("%d ", x);
}
A.缺少 x-- B.条件错误 C.死循环 D.语法错误
【答案】C
19.以下代码的输出是( )
int a = 1;
while (a <= 3) {
printf("%d ", a);
a = a + 1;
}
A.1 2 3 B.1 2 C.2 3 D.0 1 2
【答案】A
20.以下代码的输出是( )
int i = 0;
while (i++ < 3) {
printf("%d ", i);
}
A.0 1 2 B.1 2 3 C.0 1 2 3 D.1 2
【答案】B
21.以下代码段中,循环体执行次数为( )
int x = 10;
while (x++ < 12) {
printf("Hello");
}
A.0 B.1 C.2 D.3
【答案】C
22.下列关于while循环表述正确的是:( )
A.while循环的执行次数要么1次,要么多次
B.while循环的初始化变量语句可以写在循环里
C.while循环的循环体里一定要有使变量趋于结束的代码
D.while循环条件表达式的执行次数和循环体的执行次数无关
【答案】C
【详解】while循环要么执行0次,要么执行多次。初始化变量的语句必须写在while循环外,且循环条件表达式的执行次数和循环体的执行次数相等。s
23.以下程序,while循环的执行次数是( )
#include<stdio.h>
main(){
int i=0;
while(i=1) i++;
}
A.执行一次 B.有语法错,无法执行
C.无数次 D.一次也不执行
【答案】C
【详解】注意判断相等是使用两个等号,一个等号表示赋值,赋值的表达式结果恒为1,恒成立。
24.如下函数的功效是:通过键盘输入数据,为数组中的所有元素赋值。在程序中下划线处应填入的是( )
#include <stdio.h>
#define N 10
void fun(int x[N])
{ int i=0;
while(i<N) scanf(“%d”,_______);}
A.x+i B.&x[i+1] C.x+(i++) D.&x[++i]
【答案】C
25.设有语句段:int t=0;while(t=1){……},则下列叙述中正确的一项是( )
A.循环控制表达式的值为0,不执行循环体
B.循环控制表达式的值为1,执行循环体
C.循环控制表达式不合法
D.以上说法均不正确
【答案】B
26.执行以下程序段的输出结果是( )
int main()
{int i=10,s=2;
while(i<15){s+=i;i+=2;}
printf("%d",s);getch();}
A.32 B.34 C.36 D.38
【答案】D
27.执行以下程序段的输出结果是( )
main()
{int n=0;
while(n++<=2);
printf("%d
",n);getch();}
A.2 B.3 C.4 D.有语法错误
【答案】C
28.在while循环语句中,while后面的一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 的操作,否则,循环将无限制地进行下去。( )
A.0 B.-1 C.1 D.2
【答案】A
29.执行以下程序段的输出结果是( )
main()
{int n=9;
while(n>6)
{n--;printf("%d",n);}getch();}
A.987 B.876 C.8765 D.9876
【答案】B
30.执行以下程序段的输出结果是( )
main()
{int k=0;
while(k<=2)
{k++;printf("%d",k);}getch();}
A.1234 B.123 C.12 D.1
【答案】B
二、程序设计题(本大题共1小题,每题10分,共10分)
31.输入一行字符,输出其中字母的个数。
提示:n=0; //计算器n置0
ch=getchar(); //输入第1个字符
while(ch!='
')
{if(ch为英文字母)
n++; //计算器n加1
ch=getchar(); //输入下一个字符
}
【答案】#include <stdio.h>
main() {
int n = 0;
char ch;
ch = getchar();
while (ch != '
') {
if (ch >= 'a' && ch <= 'z'||ch >= 'A' && ch <= 'Z')
n++;
ch = getchar();
}
printf("%d", n);
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$