任务16:多重循环结构程序设计 《编程语言-C语言》45分钟专题训练
|
2份
|
25页
|
116人阅读
|
2人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目三: 循环结构程序设计
第16卷: 多重循环结构程序设计
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.以下程序段的输出结果是( )
int i,j;
for(i=0;i<1;i+=1)
for(j=2;j>0;j--)printf("*");
A.****** B.**** C.*** D.**
2.执行以下程序段的输出结果是( )
int i,j,m=0,n=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if(j>=i)m++;n++;printf("%d",n);
A.1 B.0 C.2 D.3
3.若有定义:int i,j;,则以下程序段中的内循环体执行次数是( )
for(i=5;i;i--)
for(j=0;j<4;j++){……}
A.20 B.24 C.25 D.30
4.下列程序段的输出结果是( )
int i,j,m=0;
for(i=1;i<5;i++)
{for(j=5;j>0;j--)
{if(i+j>2)
m*=i+j;}}printf("m=%d",m);
A.m=0 B.m=1 C.m=25 D.有语法错误
5.执行以下程序段的输出结果是( )
int i,b,k=0;
for(i=1;i<=6;i++)
{b=i;
while(b>=0) {b--;++k;}}
printf("%d,%d",k,b);
A.26,-1 B.-1,27 C.27,-1 D.27,1
6.设程序段中的变量均已正确定义,则该程序段的输出结果是( )
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf(“*”);
A.****** B.**** C.** D.*
7.执行以下程序段的输出结果是( )
int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++) m=m%j;
printf("%d",m);
A.1 B.0 C.2 D.3
8.执行以下程序的输出结果是( )
int y=2,a=1;
while(y--!=-1)
{do
{a*=y;a++;}
while(y--);}
printf("%d,%d",a,y);
A.1,2 B.-2,1 C.1,1 D.1,-2
9.执行以下程序段的输出结果是( )
int i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;while(b-->0)k++;}
printf("%d,%d",k,b);
A.3,-1 B.8,-1 C.3,0 D.8,-2
10.执行下列程序段的输出结果是( )
int i,j,m=1;
for(i=1;i<8;i++)
{for(j=1;j<3;j++)
{if(i+j>10) break;
m+=i+j;}}printf("m=%d",m);
A. m=76 B. m=77 C. m=78 D. m=79
11.执行以下程序段的输出结果是( )
int i,j,k=10;
for(i=0;i<2;i++)
{k++;
{int k=0;
for(j=0;j<=3;j++)
{if(j%2)continue;k++;}}k++;}printf("k=%d",k);
A.k=12 B.k=13 C.k=14 D.k=15
12.执行以下程序段的输出结果是( )
int i,a=0;
for(i=1;i<=5;i++)
{do{i++;a++;}while(i<3);i++;}
printf("a=%d,i=%d
",a,i);
A. a=2,i=8 B. a=3,i=8 C. a=8,i=3 D.a=3,i=7
13.执行以下程序段的输出结果是( )
int i,j,m=0;
for(i=1;i<=15;i+=4)
for(j=3;j<=19;j+=4) m++;printf("%d",m);
A.12 B.15 C.20 D.25
14.执行以下程序段的输出结果是( )
int i,j,m=0;
for(i=1;i<=3;i++)
for(j=0;j<=3;j++)m++;printf("%d",m+=m--);
A.12 B.24 C.25 D.13
15.设以下变量均已正确定义,则以下程序段中循环体的执行次数是( )
for(i=5;i;i--)
for(j=0;j<4;j++){ 循环体语句 }
A.20 B.24 C.25 D.30
16.执行以下程序段的输出结果( )
int i,j,m=0;;
for(i=2;i;i--)
for(j=0;j<3;j++){printf("%d",m++);}
A.012 B.0123 C.01234 D. 012345
17.执行以下程序段的输出结果是( )
int i,j,m=0;;
for(i=2,j=5;i;i--)
{while(i!=j--)
printf("%d",m++);}
A.012 B.0123 C.01 D.12
18.执行以下程序段的输出结果是( )
int a,b;char c='A';
for(a=0,b=7;a<b;a++,b--)
{do c++;while(!c);
printf("%c",c);}
A.E B.BCD C. BCDE D.CDE
19.执行以下程序段的输出结果是( )
int i,j=0;
for(i=0;i<2;i++)
while(j++<2)
printf("*");
A.* B.** C.*** D.****
20.执行以下程序段的输出结果是( )
int i,j=0;
for(i=0;i<2;i++)
do printf("*");while(j++<2);
A.* B.** C.*** D.****
21.执行以下程序段的输出结果是( )
int i,j=3,sum=0,count=0;
for(i=1;i<5;i++)
while(j-->0)
if(i*j%2==0)
{sum=sum+(i*j);count++;}
printf("%d",j);
A.4 B.-4 C.0 D.-2
22.执行以下程序段的输出结果是( )
int n,k=1,s=0,m;
for(n=1;n<=25;n++)
{k=1;s=0;
m=n;
while(m>0)
{k*=m%10;s+=m%10;m=m/10;}
if(k>s)printf("%d,",n);}
A.23,24,25 B.23,24 C.22,23,25, D.23,24,25,
23.执行以下程序段的输出结果是( )
int i,b,k=0;
for(i=1;i<=6;i++)
{b=i%2;
while(b-->=0) ++k;}
printf("%d,%d",k,b);
A.9,-2 B.9,-1 C.-2,9 D.9,2
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j,k,m=0,n=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
if(j>=i)m++;
else if(j>=k)n++;
printf("%d,%d",m,n);
getch();}
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j,k,count;
count=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
if(i==j) continue;
else
for(k=1;k<=3;k++)
if(k!=i&&k!=j) count++;
printf("%d",count);
getch();}
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j;
for(i=1;i<2;i++)
{for(j=i;j<4;j++)
printf("%d*%d=%d ",i,j,i*j);
printf("
");}
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int m,n;
printf("Enter m,n:");
scanf("%d%d",&m,&n);
while(m!=n){
while(m>n) m-=n;
while(n>m) n-=m;}
printf("m=%d
",m);
getch();}
执行程序时输入:45 16<回车>
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j;
for(i=4;i>=1;i--)
{for(j=1;j<=i;j++)
putchar('#');
for(j=1;j<=4-i;j++)
putchar('*');
putchar('
');}getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,n=0;
for(i=2;i<5;i++)
{do
{if(i%3) continue;
n++;}
while(!i);n++;}
printf("n=%d
",n);
getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++) printf("*");
printf("
");}getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分)
31.下列程序的功能是输出如图1所示图形。程序中有三处错误,请改正。
氺
氺氺氺
氺氺氺氺氺
氺氺氺
氺
图1
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int i,j,n;
L5 printf("
please Enter n:");
L6 scanf("%d",&n);
L7 for(i=1;i<=n;i++)
L8 {for(j=1;j<=n+i;j++)
L9 if(j>i)printf("*");
L10 else printf(" ");
L11 printf("
");}
L12 for(i=1;i<n;i++)
L13 {for(j=1;j<2*n-i-1;j++)
L14 if(j>i)printf("*");
L15 else printf(" ");
L16 printf("
");}
L17 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.小王将养的一缸金鱼分5次出售:第一次卖出全部的一半加条;第二次卖出余下的三分之一加 条,第三次卖出余下的四分之一加 条;第4次卖出余下的五分之一加 条;最后卖出余下的11条。请填空。
#include <stdio.h>
#include<conio.h>
main()
{ int i,j,x,flag=0;
for(i=23;【1】;i+=2)
{for(j=1,x=i;j<=4&&x>=11;j++)
if((x+1)%(j+1)==0)
x-=【2】;
else
{x=0;
break;}
if(【3】)
{printf("原来的鱼缸中共有%d条金鱼.",i);
flag=【4】;}}
getch();}
33.自守数是指一个数的平方的尾数等于该数自身的自然数。
例如: 下列程序求100000以内的自守数,请填空。
#include <stdio.h>
#include<conio.h>
main()
{ long mul,number,k,a,b;
printf("It exists following automorphic nmbers small than 100000:
");
for(number=0;number<100000;number++)
{for(mul=number,k=1;(mul/=10)>0;【1】);
a=k*10;
mul=0;
b=10;
while(【2】)
{mul=(mul+(【3】))*(number%b-number%(b/10)))%a;
k/=10;
b*=10;}
if(【4】)
printf("%d\t",number);}
printf("
");
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目三: 循环结构程序设计
第16卷: 多重循环结构程序设计
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.以下程序段的输出结果是( )
int i,j;
for(i=0;i<1;i+=1)
for(j=2;j>0;j--)printf("*");
A.****** B.**** C.*** D.**
【答案】D
2.执行以下程序段的输出结果是( )
int i,j,m=0,n=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if(j>=i)m++;n++;printf("%d",n);
A.1 B.0 C.2 D.3
【答案】A
3.若有定义:int i,j;,则以下程序段中的内循环体执行次数是( )
for(i=5;i;i--)
for(j=0;j<4;j++){……}
A.20 B.24 C.25 D.30
【答案】A
4.下列程序段的输出结果是( )
int i,j,m=0;
for(i=1;i<5;i++)
{for(j=5;j>0;j--)
{if(i+j>2)
m*=i+j;}}printf("m=%d",m);
A.m=0 B.m=1 C.m=25 D.有语法错误
【答案】A
5.执行以下程序段的输出结果是( )
int i,b,k=0;
for(i=1;i<=6;i++)
{b=i;
while(b>=0) {b--;++k;}}
printf("%d,%d",k,b);
A.26,-1 B.-1,27 C.27,-1 D.27,1
【答案】C
6.设程序段中的变量均已正确定义,则该程序段的输出结果是( )
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf(“*”);
A.****** B.**** C.** D.*
【答案】D
7.执行以下程序段的输出结果是( )
int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++) m=m%j;
printf("%d",m);
A.1 B.0 C.2 D.3
【答案】A
8.执行以下程序的输出结果是( )
int y=2,a=1;
while(y--!=-1)
{do
{a*=y;a++;}
while(y--);}
printf("%d,%d",a,y);
A.1,2 B.-2,1 C.1,1 D.1,-2
【答案】D
9.执行以下程序段的输出结果是( )
int i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;while(b-->0)k++;}
printf("%d,%d",k,b);
A.3,-1 B.8,-1 C.3,0 D.8,-2
【答案】A
10.执行下列程序段的输出结果是( )
int i,j,m=1;
for(i=1;i<8;i++)
{for(j=1;j<3;j++)
{if(i+j>10) break;
m+=i+j;}}printf("m=%d",m);
A. m=76 B. m=77 C. m=78 D. m=79
【答案】C
11.执行以下程序段的输出结果是( )
int i,j,k=10;
for(i=0;i<2;i++)
{k++;
{int k=0;
for(j=0;j<=3;j++)
{if(j%2)continue;k++;}}k++;}printf("k=%d",k);
A.k=12 B.k=13 C.k=14 D.k=15
【答案】C
12.执行以下程序段的输出结果是( )
int i,a=0;
for(i=1;i<=5;i++)
{do{i++;a++;}while(i<3);i++;}
printf("a=%d,i=%d
",a,i);
A. a=2,i=8 B. a=3,i=8 C. a=8,i=3 D.a=3,i=7
【答案】B
13.执行以下程序段的输出结果是( )
int i,j,m=0;
for(i=1;i<=15;i+=4)
for(j=3;j<=19;j+=4) m++;printf("%d",m);
A.12 B.15 C.20 D.25
【答案】C
14.执行以下程序段的输出结果是( )
int i,j,m=0;
for(i=1;i<=3;i++)
for(j=0;j<=3;j++)m++;printf("%d",m+=m--);
A.12 B.24 C.25 D.13
【答案】B
15.设以下变量均已正确定义,则以下程序段中循环体的执行次数是( )
for(i=5;i;i--)
for(j=0;j<4;j++){ 循环体语句 }
A.20 B.24 C.25 D.30
【答案】C
16.执行以下程序段的输出结果( )
int i,j,m=0;;
for(i=2;i;i--)
for(j=0;j<3;j++){printf("%d",m++);}
A.012 B.0123 C.01234 D. 012345
【答案】D
17.执行以下程序段的输出结果是( )
int i,j,m=0;;
for(i=2,j=5;i;i--)
{while(i!=j--)
printf("%d",m++);}
A.012 B.0123 C.01 D.12
【答案】A
18.执行以下程序段的输出结果是( )
int a,b;char c='A';
for(a=0,b=7;a<b;a++,b--)
{do c++;while(!c);
printf("%c",c);}
A.E B.BCD C. BCDE D.CDE
【答案】B
19.执行以下程序段的输出结果是( )
int i,j=0;
for(i=0;i<2;i++)
while(j++<2)
printf("*");
A.* B.** C.*** D.****
【答案】B
20.执行以下程序段的输出结果是( )
int i,j=0;
for(i=0;i<2;i++)
do printf("*");while(j++<2);
A.* B.** C.*** D.****
【答案】D
21.执行以下程序段的输出结果是( )
int i,j=3,sum=0,count=0;
for(i=1;i<5;i++)
while(j-->0)
if(i*j%2==0)
{sum=sum+(i*j);count++;}
printf("%d",j);
A.4 B.-4 C.0 D.-2
【答案】B
22.执行以下程序段的输出结果是( )
int n,k=1,s=0,m;
for(n=1;n<=25;n++)
{k=1;s=0;
m=n;
while(m>0)
{k*=m%10;s+=m%10;m=m/10;}
if(k>s)printf("%d,",n);}
A.23,24,25 B.23,24 C.22,23,25, D.23,24,25,
【答案】D
23.执行以下程序段的输出结果是( )
int i,b,k=0;
for(i=1;i<=6;i++)
{b=i%2;
while(b-->=0) ++k;}
printf("%d,%d",k,b);
A.9,-2 B.9,-1 C.-2,9 D.9,2
【答案】A
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j,k,m=0,n=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
if(j>=i)m++;
else if(j>=k)n++;
printf("%d,%d",m,n);
getch();}
【答案】18,4
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j,k,count;
count=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
if(i==j) continue;
else
for(k=1;k<=3;k++)
if(k!=i&&k!=j) count++;
printf("%d",count);
getch();}
【答案】6
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j;
for(i=1;i<2;i++)
{for(j=i;j<4;j++)
printf("%d*%d=%d ",i,j,i*j);
printf("
");}
getch();}
【答案】1*1=1 1*2=2 1*3=3
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int m,n;
printf("Enter m,n:");
scanf("%d%d",&m,&n);
while(m!=n){
while(m>n) m-=n;
while(n>m) n-=m;}
printf("m=%d
",m);
getch();}
执行程序时输入:45 16<回车>
【答案】m=1
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j;
for(i=4;i>=1;i--)
{for(j=1;j<=i;j++)
putchar('#');
for(j=1;j<=4-i;j++)
putchar('*');
putchar('
');}getch();}
【答案】
####
###*
##**
#***
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,n=0;
for(i=2;i<5;i++)
{do
{if(i%3) continue;
n++;}
while(!i);n++;}
printf("n=%d
",n);
getch();}
【答案】n=4
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++) printf("*");
printf("
");}getch();}
【答案】
*
***
*****
*******
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分)
31.下列程序的功能是输出如图1所示图形。程序中有三处错误,请改正。
氺
氺氺氺
氺氺氺氺氺
氺氺氺
氺
图1
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int i,j,n;
L5 printf("
please Enter n:");
L6 scanf("%d",&n);
L7 for(i=1;i<=n;i++)
L8 {for(j=1;j<=n+i;j++)
L9 if(j>i)printf("*");
L10 else printf(" ");
L11 printf("
");}
L12 for(i=1;i<n;i++)
L13 {for(j=1;j<2*n-i-1;j++)
L14 if(j>i)printf("*");
L15 else printf(" ");
L16 printf("
");}
L17 getch();}
答案:
L8 {for(j=1;j<n+i;j++)
L9 if(j>n-i)printf("*");
L13 {for(j=1;j<=2*n-i-1;j++)
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.小王将养的一缸金鱼分5次出售:第一次卖出全部的一半加条;第二次卖出余下的三分之一加 条,第三次卖出余下的四分之一加 条;第4次卖出余下的五分之一加 条;最后卖出余下的11条。请填空。
#include <stdio.h>
#include<conio.h>
main()
{ int i,j,x,flag=0;
for(i=23;【1】;i+=2)
{for(j=1,x=i;j<=4&&x>=11;j++)
if((x+1)%(j+1)==0)
x-=【2】;
else
{x=0;
break;}
if(【3】)
{printf("原来的鱼缸中共有%d条金鱼.",i);
flag=【4】;}}
getch();}
答案:①flag==0 ②(x+1)/(j+1) ③j==5&&x==11 ④ 1
33.自守数是指一个数的平方的尾数等于该数自身的自然数。
例如: 下列程序求100000以内的自守数,请填空。
#include <stdio.h>
#include<conio.h>
main()
{ long mul,number,k,a,b;
printf("It exists following automorphic nmbers small than 100000:
");
for(number=0;number<100000;number++)
{for(mul=number,k=1;(mul/=10)>0;【1】);
a=k*10;
mul=0;
b=10;
while(【2】)
{mul=(mul+(【3】))*(number%b-number%(b/10)))%a;
k/=10;
b*=10;}
if(【4】)
printf("%d\t",number);}
printf("
");
getch();}
答案:①k*=10 ②k>0 ③number%(k*10 ④number==mul
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$