内容正文:
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第22卷为专业核心模块训练卷,按《C语言》中"C语言卷9——while和do while循环结构"范围和要求编写。具体内容为:理解while和do while循环结构。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷9——while和do while循环结构)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. while循环的基本格式是( )
A.while 条件 语句 B.while(条件) 语句
C.while (条件) then 语句 D.while 条件 do 语句
【答案】B
【解析】while循环格式为while(条件) 语句。
2. do...while循环的基本格式是( )
A.do 语句 while(条件); B.do 语句 while 条件
C.do {语句} while(条件) D.do 语句 while(条件)(无分号)
【答案】A
【解析】do...while格式为do 语句 while(条件); 注意while后必须有分号。
3. while循环先____条件,再执行循环体
A.执行 B.判断 C.更新 D.初始化
【答案】B
【解析】while循环先判断条件,条件为真才执行循环体。
4. do...while循环先____循环体,再判断条件
A.判断 B.执行 C.更新 D.初始化
【答案】B
【解析】do...while先执行一次循环体,再判断条件。
5. 下列关于while循环,正确的是( )
A.while循环体至少执行一次 B.while循环先判断条件 C.while循环不能实现无限循环 D.while循环条件不能为空
【答案】B
【解析】while循环先判断条件,条件为真才执行循环体,可能一次都不执行。
6. 下列关于do...while循环,正确的是( )
A.循环体可能一次都不执行 B.循环体至少执行一次
C.while后不需要分号 D.do...while和while完全相同
【答案】B
【解析】do...while先执行一次循环体,再判断条件,所以至少执行一次。
7. 下列while循环执行次数正确的是( )
while(i<10) i++; (初始i=0)
A.9次 B.10次 C.11次 D.无限次
【答案】B
【解析】i从0到9,共10次迭代,i变为10后退出循环。
8. 想要实现无限循环,下列写法正确的是( )
A.while(0) B.while(1) C.while(-1) D.while(2)
【答案】B
【解析】while(1)中1为非0值(真),条件永远为真,形成无限循环。
9. 下列程序段执行后i的值是( )
int i=0; while(i<5) i++;
A.4 B.5 C.6 D.不确定
【答案】B
【解析】i从0递增到5时退出循环,循环结束时i的值为5。
10. 下列关于while和do...while的区别,正确的是( )
A.两者完全相同 B.while先判断,do...while先执行
C.do...while先判断,while先执行 D.两者都不能实现无限循环
【答案】B
【解析】while先判断条件再执行,do...while先执行一次再判断条件。
11. 以下程序段执行后,循环体总共执行了多少次?( )
int x = 5;
do {
x -= 2;
} while (x > 0);
A. 2次
B. 3次
C. 4次
D. 无限循环
【答案】B
【解析】
循环次数 执行前 x 执行 x-=2 判断 x>0 是否继续
第1次 5 3 3>0 真 继续
第2次 3 1 1>0 真 继续
第3次 1 -1 -1>0 假 退出
所以共执行 3次,最终 x = -1。
12. 在while循环中,想要跳出整个循环应该使用( )
A.continue语句 B.break语句 C.exit语句 D.return语句
【答案】B
【解析】break语句用于跳出整个循环。
13. 在while循环中,想要跳过本次循环剩余语句应该使用( )
A.break语句 B.continue语句 C.exit语句 D.return语句
【答案】B
【解析】continue语句跳过本次循环剩余语句,进入下次迭代。
14. 下列关于while循环的条件,正确的是( )
A. 条件必须存在
B. 条件可以省略(无限循环)
C. 条件必须是关系表达式
D. 条件不能为常量
【答案】A
【解析】while循环的条件表达式必须存在,不能省略。while(1) 和 while(true) 虽然可以形成无限循环,但条件是存在的(是常量表达式),而不是省略了条件。只有 for 循环的条件才可以省略,即 for(;;)。
15. 下列程序段输出结果是( )
int i=1; while(i<=3) { printf("%d ",i); i++; }
A.1 2 3 B.1 2 3 4 C.2 3 4 D.编译错误
【答案】A
【解析】i从1到3,输出1 2 3。
16. do...while循环while后面的分号( )
A.可以省略 B.必须存在 C.可以替换为逗号 D.编译时自动添加
【答案】B
【解析】do...while循环的while(条件)后面必须加分号;。
17. 想要用while循环计算1+2+...+n,循环条件可以设为( )
A.i<n B.i<=n C.i>n D.i>=n
【答案】B
【解析】i从1到n,条件i<=n时继续循环。
18. 下列关于while循环,错误的是( )
A.while循环可能一次都不执行 B.while循环可以实现无限循环
C.while循环必须有循环体 D.while循环的条件不能为表达式
【答案】D
【解析】while循环的条件可以是任何表达式,0为假,非0为真。
19. 下列程序段执行后sum的值是( )
int i=1,sum=0; while(i<=100) { sum+=i; i++; }
A.5050 B.4950 C.5100 D.不确定
【答案】A
【解析】1+2+...+100=5050。
20. while循环和for循环的主要区别是( )
A.while循环不能嵌套 B.for循环结构更紧凑,适合计数循环
C.while循环不能实现无限循环 D.for循环必须先执行循环体
【答案】B
【解析】for循环将初始化、条件、更新集中在一行,结构更紧凑。
二、判断题(共10题,每题1分,共10分)
21. while循环先判断条件,再执行循环体( )
【答案】√
【解析】while循环先判断条件,条件为真才执行循环体。
22. do...while循环先执行循环体,再判断条件( )
【答案】√
【解析】do...while先执行一次循环体,再判断条件。
23. while循环的循环体可能一次都不执行( )
【答案】√
【解析】若条件一开始就为假,while循环体可能一次都不执行。
24. do...while循环的循环体至少执行一次( )
【答案】√
【解析】do...while先执行一次循环体,再判断条件,所以至少执行一次。
25. while(1)是一个合法的无限循环( )
【答案】√
【解析】1为非0值(真),while(1)条件永远为真,形成无限循环。
26. do...while循环中while(条件)后面必须有分号( )
【答案】√
【解析】do...while循环的while(条件)后面必须加分号;。
27. break语句可以跳出整个while循环( )
【答案】√
【解析】break语句用于跳出整个循环。
28. continue语句可以跳出整个while循环( )
【答案】×
【解析】continue跳过本次循环剩余语句,进入下次迭代,不能跳出整个循环。
29. while循环不能用来实现无限循环( )
【答案】×
【解析】while(1)可以实现无限循环。
30. while循环的条件部分可以省略(形成无限循环)( )
【答案】×
【解析】 while循环的条件部分不能省略,while() 是语法错误。能形成无限循环的正确写法是 while(1) 或 while(true),但这里的条件表达式 1 或 true 是存在的,并非省略。容易混淆的是 for 循环,其条件部分可以省略,即 for(;;) 构成无限循环。
三、填空题(共10空,每空2分,共20分)
31. while循环的基本格式是:while(____) 语句。
【答案】条件(表达式)
【解析】while循环需要圆括号中的条件表达式。
32. do...while循环的基本格式是:do 语句 ____(条件);。
【答案】while
【解析】do...while格式为do 语句 while(条件);。
33. while循环先____条件,再执行循环体。
【答案】判断(检查)
【解析】while循环先判断条件,条件为真才执行循环体。
34. do...while循环先执行____,再判断条件。
【答案】循环体
【解析】do...while先执行一次循环体,再判断条件。
35. 在while循环中,____语句可以跳出整个循环。
【答案】break
【解析】break语句用于跳出整个循环。
36. 在while循环中,____语句可以跳过本次循环的剩余语句。
【答案】continue
【解析】continue语句跳过本次循环剩余语句,进入下次迭代。
37. 想要实现无限循环,可以使用while(____)。
【答案】1(非0值)
【解析】while(1)中1为非0值(真),条件永远为真。
38. do...while循环中,while(条件)后面的____不能省略。
【答案】分号;
【解析】do...while循环的while(条件)后面必须加分号;。
39. while循环的条件为____时,循环体一次都不执行。
【答案】假(0)
【解析】若条件一开始就为假(0),while循环体一次都不执行。
40. do...while循环的循环体至少执行____次。
【答案】一(1)
【解析】do...while先执行一次循环体,所以至少执行一次。
四、程序综合题(共3题,每题10分,共30分)
41. 程序阅读题:阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int i=1,s1=0,s2=0;
while(i<=3)
{
s1=s1+i;
i++;
}
i=1;
do
{
s2=s2+i;
i++;
}while(i<=3);
printf("s1=%d,s2=%d
",s1,s2);
return 0;
}
【答案】s1=6,s2=6
【解析】
while 循环:i 从 1 到 3,累加 1+2+3,s1 结果为 6;
do-while 循环:同样累加 1+2+3,s2 结果为 6;
最终输出 s1=6,s2=6。
42. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。
(1) #include <stdio.h>
(2) int main()
(3) {
(4) int n=5;
(5) while(n>0)
(6) {
(7) printf("%d ",n);
(8) n--;
(9) }
(10) return 0;
(11) }
上述程序中,while循环的条件是①____,第8行n--表示②____,
循环体执行了③____次,程序输出结果为④____。
【答案】① n>0 ② 变量 n 的值自减 1 ③ 5 ④ 5 4 3 2 1
【解析】
① while 括号里的循环条件为 n>0;
② n-- 含义是变量 n 自减 1;
③ n 从 5 递减到 1,循环一共执行 5 次;
④ 循环依次输出 5 4 3 2 1。
43.文件vote_rank.dat存储候选人姓名和得票数。按得票数降序排名,票数相同按姓名升序,输出排名前10的候选人。请完善程序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 180
#define TOP 10
void sort_vote(char name[][20],int vote[],int n);
int main()
{
FILE *fp;
int i=0,n;
char cand[N][20];
int vt[N];
fp=fopen("vote_rank.dat","r");
while(!feof(fp))
{
fscanf(fp,"%s%d",cand[i],&vt[i]);
①;
}
n=i;
fclose(fp);
sort_vote(cand,vt,n);
for(i=0;i<TOP&&i<n;i++)
printf("%d.%s %d票
",i+1,cand[i],vt[i]);
return 0;
}
void sort_vote(char name[][20],int vote[],int n)
{
int i,j,p;
char tname[20];
int tvote;
for(i=0;i<n-1;i++)
{
p=i;
for(j=i+1;j<n;j++)
{
if(vote[p]<②||(vote[p]==vote[j]&&strcmp(name[p],name[j])>0))
p=j;
}
if(p!=i)
{
strcpy(tname,name[p]);strcpy(name[p],name[i]);strcpy(name[i],tname);
tvote=vote[p];vote[p]=vote[i];vote[i]=tvote;
}
}
}
【答案】① i++ ② vote [j]
【解析】
① 每读取一位候选人信息,下标 i 自增 1;
② 票数降序,若当前候选票数小于后面的票数,则更换位置。
学科网(北京)股份有限公司
$
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第22卷为专业核心模块训练卷,按《C语言》中"C语言卷9——while和do while循环结构"范围和要求编写。具体内容为:理解while和do while循环结构。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷9——while和do while循环结构)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. while循环的基本格式是( )
A.while 条件 语句 B.while(条件) 语句
C.while (条件) then 语句 D.while 条件 do 语句
2. do...while循环的基本格式是( )
A.do 语句 while(条件); B.do 语句 while 条件
C.do {语句} while(条件) D.do 语句 while(条件)(无分号)
3. while循环先____条件,再执行循环体
A.执行 B.判断 C.更新 D.初始化
4. do...while循环先____循环体,再判断条件
A.判断 B.执行 C.更新 D.初始化
5. 下列关于while循环,正确的是( )
A.while循环体至少执行一次 B.while循环先判断条件 C.while循环不能实现无限循环 D.while循环条件不能为空
6. 下列关于do...while循环,正确的是( )
A.循环体可能一次都不执行 B.循环体至少执行一次
C.while后不需要分号 D.do...while和while完全相同
7. 下列while循环执行次数正确的是( )
while(i<10) i++; (初始i=0)
A.9次 B.10次 C.11次 D.无限次
8. 想要实现无限循环,下列写法正确的是( )
A.while(0) B.while(1) C.while(-1) D.while(2)
9. 下列程序段执行后i的值是( )
int i=0; while(i<5) i++;
A.4 B.5 C.6 D.不确定
10. 下列关于while和do...while的区别,正确的是( )
A.两者完全相同 B.while先判断,do...while先执行
C.do...while先判断,while先执行 D.两者都不能实现无限循环
11.以下程序段执行后,循环体总共执行了多少次?( )
int x = 5;
do {
x -= 2;
} while (x > 0);
A. 2次
B. 3次
C. 4次
D. 无限循环
12. 在while循环中,想要跳出整个循环应该使用( )
A.continue语句 B.break语句 C.exit语句 D.return语句
13. 在while循环中,想要跳过本次循环剩余语句应该使用( )
A.break语句 B.continue语句 C.exit语句 D.return语句
14. 下列关于while循环的条件,正确的是( )
A. 条件必须存在
B. 条件可以省略(无限循环)
C. 条件必须是关系表达式
D. 条件不能为常量
15. 下列程序段输出结果是( )
int i=1; while(i<=3) { printf("%d ",i); i++; }
A.1 2 3 B.1 2 3 4 C.2 3 4 D.编译错误
16. do...while循环while后面的分号( )
A.可以省略 B.必须存在 C.可以替换为逗号 D.编译时自动添加
17. 想要用while循环计算1+2+...+n,循环条件可以设为( )
A.i<n B.i<=n C.i>n D.i>=n
18. 下列关于while循环,错误的是( )
A.while循环可能一次都不执行 B.while循环可以实现无限循环
C.while循环必须有循环体 D.while循环的条件不能为表达式
19. 下列程序段执行后sum的值是( )
int i=1,sum=0; while(i<=100) { sum+=i; i++; }
A.5050 B.4950 C.5100 D.不确定
20. while循环和for循环的主要区别是( )
A.while循环不能嵌套 B.for循环结构更紧凑,适合计数循环
C.while循环不能实现无限循环 D.for循环必须先执行循环体
二、判断题(共10题,每题1分,共10分)
21. while循环先判断条件,再执行循环体( )
22. do...while循环先执行循环体,再判断条件( )
23. while循环的循环体可能一次都不执行( )
24. do...while循环的循环体至少执行一次( )
25. while(1)是一个合法的无限循环( )
26. do...while循环中while(条件)后面必须有分号( )
27. break语句可以跳出整个while循环( )
28. continue语句可以跳出整个while循环( )
29. while循环不能用来实现无限循环( )
30. while循环的条件部分可以省略(形成无限循环)( )
三、填空题(共10空,每空2分,共20分)
31. while循环的基本格式是:while(____) 语句。
32. do...while循环的基本格式是:do 语句 ____(条件);。
33. while循环先____条件,再执行循环体。
34. do...while循环先执行____,再判断条件。
35. 在while循环中,____语句可以跳出整个循环。
36. 在while循环中,____语句可以跳过本次循环的剩余语句。
37. 想要实现无限循环,可以使用while(____)。
38. do...while循环中,while(条件)后面的____不能省略。
39. while循环的条件为____时,循环体一次都不执行。
40. do...while循环的循环体至少执行____次。
四、程序综合题(共3题,每题10分,共30分)
41. 程序阅读题:阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int i=1,s1=0,s2=0;
while(i<=3)
{
s1=s1+i;
i++;
}
i=1;
do
{
s2=s2+i;
i++;
}while(i<=3);
printf("s1=%d,s2=%d
",s1,s2);
return 0;
}
42. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。
(1) #include <stdio.h>
(2) int main()
(3) {
(4) int n=5;
(5) while(n>0)
(6) {
(7) printf("%d ",n);
(8) n--;
(9) }
(10) return 0;
(11) }
上述程序中,while循环的条件是①____,第8行n--表示②____,
循环体执行了③____次,程序输出结果为④____。
43.文件vote_rank.dat存储候选人姓名和得票数。按得票数降序排名,票数相同按姓名升序,输出排名前10的候选人。请完善程序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 180
#define TOP 10
void sort_vote(char name[][20],int vote[],int n);
int main()
{
FILE *fp;
int i=0,n;
char cand[N][20];
int vt[N];
fp=fopen("vote_rank.dat","r");
while(!feof(fp))
{
fscanf(fp,"%s%d",cand[i],&vt[i]);
①;
}
n=i;
fclose(fp);
sort_vote(cand,vt,n);
for(i=0;i<TOP&&i<n;i++)
printf("%d.%s %d票
",i+1,cand[i],vt[i]);
return 0;
}
void sort_vote(char name[][20],int vote[],int n)
{
int i,j,p;
char tname[20];
int tvote;
for(i=0;i<n-1;i++)
{
p=i;
for(j=i+1;j<n;j++)
{
if(vote[p]<②||(vote[p]==vote[j]&&strcmp(name[p],name[j])>0))
p=j;
}
if(p!=i)
{
strcpy(tname,name[p]);strcpy(name[p],name[i]);strcpy(name[i],tname);
tvote=vote[p];vote[p]=vote[i];vote[i]=tvote;
}
}
}
学科网(北京)股份有限公司
$