选择结构程序设计,循环结构程序设计习题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
else {printf("不能组成三角形") ;}
}
二、编程题
1.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。例如:1转换成Monday,7转换成Sunday。
2.输入年号,计算这一年的2月份的天数,将结果输出。
3.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:
A)n=0;while((ch=getchar())!=’\n’)n++;
B) n=0;while(getchar()!=’\n’)n++;
C)for(n=0; getchar()!=’\n’;n++);
D)n=0;for(ch=getchar();ch!=’\n’;n++);
4.有以下程序
# include <stdio.h>
习题4
选择结构程序设计
一、单选题
1.有如下嵌套的if语句
if(a<b)
if(a<c) k=a;
else k=c;
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
A)k=(a<b)?a:b;k=(b<c)?b:c;
B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);
if(x>y)
if(y<z) printf("%d", ++z);
else printf("%d", ++y);
printf("%d\n", x++);
}
程序的运行结果是【】。
4. #include <stdio.h>
main( )
{ int k=5,n=0;
do
{ switch(k)
{ case 1: case 3:n+ =1;k--;break;
90~100:A级;80~89:B级;70~79:C级;60~69:D级;0~59:E级;
习题5
循环结构程序设计
一、单选题
1.有以下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d\n”,k,n);
}
程序运行后的输出结果是
A)0 2 B)1 3
}
该程序的执行结果是
A) 6 B) 3
C) 死循环D) 0
7.3、有如下程序
main()
{ int x=23;
do
{ printile(!x);
}
该程序的执行结果是
B)if((a>b)||(b>c) k=1;
else k=0;
C)if(a<=b) k=0;
else if(b<=c) k=1;
D)if(a>b) k=1;
else if(b>c) k=1;
else k=0;
6.以下是if语句的基本形式:
if(表达式)
语句
其中“表达式”
A)必须是逻辑表达式
B)必须是关系表达式
main( )
{int x,y=1;
if(y!=0) x=5;
printf("%d\t",x);
if(y==0) x=3;
else x=5;
printf("%d\t\n",x);
}
程序的运行结果是【】。
8. #include <stdio.h>
main( )
{int x=1,y=1,z=0;
if(z<0)
else printf(“%d,%d,%d\n”,a,b,c);
else printf(“%d,%d,%d\n”,a,b,c);
}
程序运行后的输出结果是
A)1,2,3
B)1,3,2
C)1,3,3
D)3,2,1
9.以下程序中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
main()
{float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if (a<b)
{t=a;【】; b=t;}
If (【】)
{t=a; a=c; c=t;}
if(b<c)
{【】; b=c; c=t;}
printf("%f,%f,%f",a,b,c);}
3.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型.在( )填正确内容.
{ case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
case 3: a++; b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
程序的运行结果是【】
2.#include<stdio.h>
main()
{int a=1,b=2,c=3,d=0;
if(y>0) x=3;
else x=5;
printf("%d\t",x);
if(z=y<0) x=3;
else if(y==0 ) x=5;
else x=7;
printf("%d\t",x);
printf("%d\t",z);
}
程序的运行结果是【】。
9. #include <stdio.h>
main( )
{case0:a=b;break;
case1:a++;
}
C)switch(a)
{default:a++;break;
case1:a=b;
}
D)switch(a==1)
{case1:a=b;break;
case0:a++;
}
3.设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是
scanf("%d",&a);
printf("Enter integer b:");
scanf("%d",【】);
if(a==b)
printf("a==b\n");
else
printf("a!=b\n");
}
2.输入3个实数a, b, c要求按从大到小的顺序输出三数。
#include <stdio.h>
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i)
其输出结果是
A)0,0 B)0,1
C)1,1 D)程序进入无限循环
6.2、有如下程序
main( )
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf(“%d\n”,sum);
C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);
D)k=(a<b)?a:b;k=(a<c)?a:c;
2.以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是
A)switch(a)
{case1:a=b;break;
default:a++;
}
B)switch(a==1)
{ case 1:switch(b<0)
{ case 1:printf( " @ " );break;
case 2:printf( " ! " );break;
}
case 0: switch(c==5)
{ case 0: printf(" * "); break;
case 1: printf(" # "); break;
if(【】)
{ printf("等边三角形");}
else if(【】)
{printf("等腰三角形");}
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)
||(b*b+c*c==a*a))
{printf("直角三角形");}
else {printf("一般三角形");}
default:n=0;k--;
case 2: case 4;n+ =2;k--;break;
}
printf("%d",n);
}while(k>0 && n<5);
}
程序的运行结果是【】。
5. #include<stdio.h>
main()
{int a,b,d=241;a=d/100%9; b=(-1)&&(-1);
A)a=10 b=50 c=10 B)a=10 b=50 c=30
C)a=10 b=30 c=10 D)a=50 b=30 c=50
一、看程序,写运行结果
1.#include <stdio.h>
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
printf(“%d,%d”,a,b);}
程序的运行结果是【】。
6. #include <stdio.h>
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0) z=0;
else z+=1;
printf(“%d\n”,z);}
程序的运行结果是【】。
7. #include <stdio.h>
()。
A)if(x+ +); B)if(x>y&&y! =0);
C)if(x>0)x-- D)if(y<0){;}
else y+ +; else x+ +;
4.有以下程序
#include
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
B)大于3且不等于10的整数
C)
大于3或等于10的整数
D)小于3的整数
8.有以下程序
#include<stdio.h>
Main()
{
int a=1,b=2,c=3,d=0;
if(a= =1 &&b++= =2)
if(b!=2 || c--!=3)
printf(“%d,%d,%d\n”,a,b,c);
case 2: printf(" $ "); break;
}
default: printf("&");
}
printf("\n");
}
程序的运行结果是【】。
三、程序填空
1.输入两个数,并判断是否相等
#include <stdio.h>
main()
{ int a,b;
printf("Enter integer a:");
main()
{ int i=5;
do
{ if (i%3==1)
if (i%5==2)
{ printf("*%d", i); break;}
i++;
} while(i!=0);
printf("\n");
}
程序的运行结果是( )。
A)*7 B)*3*5 C)*5 D)*2*6
5.若变量已正确定义,有以下程序段
C)5 7 D)1 2
2.有以下程序
#include<stdio.h>
main()
{int a=1,b=2;
for(;a<8;a++) { b+=a;a+=2;}
printf(“%d,%d\n”,a,b);
}
程序运行后的输出结果是
A)9,18B)8,11
C)7,11D)10,14
3.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是
C)必须是逻辑表达式或关系表达式
D)可以是任意合法的表达式
7.有以下程序
#include <stdio.h>
main()
{int x;
scanf(“%d”,&x);
if(x<=3); else
if(x!=10)
printf(“%d\n”,x);
}
程序运行时,输入的值在哪个范围才会有输出结果
A)不等于10的整数
#include<stdio.h>
#include“math.h”
main()
{
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
if(【】)
{ s=0.5*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%6.2f",area);
printf(”*”);
程序段的输出结果是
A)********
B)****
C)**
D)*
10.有以下程序段
int a, b, c;
a=10; b=50; c=30;
if (a>b) a=b, b=c; c=a;
printf("a=%d b=%d c=%d\n”, a, b, c);
程序的输出结果是()。
{int i,j;
for(i=1;i<4;i++)
{ for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j);
printf("\n");}
}
程序的运行结果是【】。
10. #include <stdio.h>
main( )
{int a=2,b=7,c=5;
switch(a>0)
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d\n”,c);
else {printf("不能组成三角形") ;}
}
二、编程题
1.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。例如:1转换成Monday,7转换成Sunday。
2.输入年号,计算这一年的2月份的天数,将结果输出。
3.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:
A)n=0;while((ch=getchar())!=’\n’)n++;
B) n=0;while(getchar()!=’\n’)n++;
C)for(n=0; getchar()!=’\n’;n++);
D)n=0;for(ch=getchar();ch!=’\n’;n++);
4.有以下程序
# include <stdio.h>
习题4
选择结构程序设计
一、单选题
1.有如下嵌套的if语句
if(a<b)
if(a<c) k=a;
else k=c;
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
A)k=(a<b)?a:b;k=(b<c)?b:c;
B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);
if(x>y)
if(y<z) printf("%d", ++z);
else printf("%d", ++y);
printf("%d\n", x++);
}
程序的运行结果是【】。
4. #include <stdio.h>
main( )
{ int k=5,n=0;
do
{ switch(k)
{ case 1: case 3:n+ =1;k--;break;
90~100:A级;80~89:B级;70~79:C级;60~69:D级;0~59:E级;
习题5
循环结构程序设计
一、单选题
1.有以下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d\n”,k,n);
}
程序运行后的输出结果是
A)0 2 B)1 3
}
该程序的执行结果是
A) 6 B) 3
C) 死循环D) 0
7.3、有如下程序
main()
{ int x=23;
do
{ printile(!x);
}
该程序的执行结果是
B)if((a>b)||(b>c) k=1;
else k=0;
C)if(a<=b) k=0;
else if(b<=c) k=1;
D)if(a>b) k=1;
else if(b>c) k=1;
else k=0;
6.以下是if语句的基本形式:
if(表达式)
语句
其中“表达式”
A)必须是逻辑表达式
B)必须是关系表达式
main( )
{int x,y=1;
if(y!=0) x=5;
printf("%d\t",x);
if(y==0) x=3;
else x=5;
printf("%d\t\n",x);
}
程序的运行结果是【】。
8. #include <stdio.h>
main( )
{int x=1,y=1,z=0;
if(z<0)
else printf(“%d,%d,%d\n”,a,b,c);
else printf(“%d,%d,%d\n”,a,b,c);
}
程序运行后的输出结果是
A)1,2,3
B)1,3,2
C)1,3,3
D)3,2,1
9.以下程序中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
main()
{float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if (a<b)
{t=a;【】; b=t;}
If (【】)
{t=a; a=c; c=t;}
if(b<c)
{【】; b=c; c=t;}
printf("%f,%f,%f",a,b,c);}
3.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型.在( )填正确内容.
{ case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
case 3: a++; b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
程序的运行结果是【】
2.#include<stdio.h>
main()
{int a=1,b=2,c=3,d=0;
if(y>0) x=3;
else x=5;
printf("%d\t",x);
if(z=y<0) x=3;
else if(y==0 ) x=5;
else x=7;
printf("%d\t",x);
printf("%d\t",z);
}
程序的运行结果是【】。
9. #include <stdio.h>
main( )
{case0:a=b;break;
case1:a++;
}
C)switch(a)
{default:a++;break;
case1:a=b;
}
D)switch(a==1)
{case1:a=b;break;
case0:a++;
}
3.设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是
scanf("%d",&a);
printf("Enter integer b:");
scanf("%d",【】);
if(a==b)
printf("a==b\n");
else
printf("a!=b\n");
}
2.输入3个实数a, b, c要求按从大到小的顺序输出三数。
#include <stdio.h>
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i)
其输出结果是
A)0,0 B)0,1
C)1,1 D)程序进入无限循环
6.2、有如下程序
main( )
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf(“%d\n”,sum);
C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);
D)k=(a<b)?a:b;k=(a<c)?a:c;
2.以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是
A)switch(a)
{case1:a=b;break;
default:a++;
}
B)switch(a==1)
{ case 1:switch(b<0)
{ case 1:printf( " @ " );break;
case 2:printf( " ! " );break;
}
case 0: switch(c==5)
{ case 0: printf(" * "); break;
case 1: printf(" # "); break;
if(【】)
{ printf("等边三角形");}
else if(【】)
{printf("等腰三角形");}
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)
||(b*b+c*c==a*a))
{printf("直角三角形");}
else {printf("一般三角形");}
default:n=0;k--;
case 2: case 4;n+ =2;k--;break;
}
printf("%d",n);
}while(k>0 && n<5);
}
程序的运行结果是【】。
5. #include<stdio.h>
main()
{int a,b,d=241;a=d/100%9; b=(-1)&&(-1);
A)a=10 b=50 c=10 B)a=10 b=50 c=30
C)a=10 b=30 c=10 D)a=50 b=30 c=50
一、看程序,写运行结果
1.#include <stdio.h>
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
printf(“%d,%d”,a,b);}
程序的运行结果是【】。
6. #include <stdio.h>
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0) z=0;
else z+=1;
printf(“%d\n”,z);}
程序的运行结果是【】。
7. #include <stdio.h>
()。
A)if(x+ +); B)if(x>y&&y! =0);
C)if(x>0)x-- D)if(y<0){;}
else y+ +; else x+ +;
4.有以下程序
#include
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
B)大于3且不等于10的整数
C)
大于3或等于10的整数
D)小于3的整数
8.有以下程序
#include<stdio.h>
Main()
{
int a=1,b=2,c=3,d=0;
if(a= =1 &&b++= =2)
if(b!=2 || c--!=3)
printf(“%d,%d,%d\n”,a,b,c);
case 2: printf(" $ "); break;
}
default: printf("&");
}
printf("\n");
}
程序的运行结果是【】。
三、程序填空
1.输入两个数,并判断是否相等
#include <stdio.h>
main()
{ int a,b;
printf("Enter integer a:");
main()
{ int i=5;
do
{ if (i%3==1)
if (i%5==2)
{ printf("*%d", i); break;}
i++;
} while(i!=0);
printf("\n");
}
程序的运行结果是( )。
A)*7 B)*3*5 C)*5 D)*2*6
5.若变量已正确定义,有以下程序段
C)5 7 D)1 2
2.有以下程序
#include<stdio.h>
main()
{int a=1,b=2;
for(;a<8;a++) { b+=a;a+=2;}
printf(“%d,%d\n”,a,b);
}
程序运行后的输出结果是
A)9,18B)8,11
C)7,11D)10,14
3.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是
C)必须是逻辑表达式或关系表达式
D)可以是任意合法的表达式
7.有以下程序
#include <stdio.h>
main()
{int x;
scanf(“%d”,&x);
if(x<=3); else
if(x!=10)
printf(“%d\n”,x);
}
程序运行时,输入的值在哪个范围才会有输出结果
A)不等于10的整数
#include<stdio.h>
#include“math.h”
main()
{
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
if(【】)
{ s=0.5*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%6.2f",area);
printf(”*”);
程序段的输出结果是
A)********
B)****
C)**
D)*
10.有以下程序段
int a, b, c;
a=10; b=50; c=30;
if (a>b) a=b, b=c; c=a;
printf("a=%d b=%d c=%d\n”, a, b, c);
程序的输出结果是()。
{int i,j;
for(i=1;i<4;i++)
{ for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j);
printf("\n");}
}
程序的运行结果是【】。
10. #include <stdio.h>
main( )
{int a=2,b=7,c=5;
switch(a>0)
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d\n”,c);