C语言作业题第5至6章1008.docx
《C语言作业题第5至6章1008.docx》由会员分享,可在线阅读,更多相关《C语言作业题第5至6章1008.docx(13页珍藏版)》请在冰豆网上搜索。
C语言作业题第5至6章1008
第五章循环控制
一、单项选择题
【1】下述循环的循环次数是____________。
intk=2;
while(k=0)
printf(″%d″,k);k--;
printf(″\n″);
A)无限次B)0次C)1次D)2次
【2】执行语句for(i=1;i++;i<4)后变量i的值是_____。
A)3B)4C)5D)不定
【3】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。
当输入一对相等数时结束循环。
请选择。
#include
voidmain()
{inta,b,t;
scanf("%d%d",&a,&b);
while(________________)
{if(a>b)
{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!
a=bB)a!
=bC)a==bD)a=b
【4】下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。
#include
voidmain()
{intm=0,n=0;
charc;
while(([1]!
='\n’))
{if(c>='A’&&c<='Z’)m++;
if(c>='a’&&c<='z’)n++;
}
printf("%d\n",m[2]);
}
[1]A)c=getchar()B)putchar()C)c=getch()D)scanf("%c",c)
[2]A)n:
mB)m:
nC)m:
mD)n:
n
【3】以下程序段______________。
X=-1;
do
{x=x*x;
}while(!
x);
A)是死循环B)循环执行二次C)循环执行一次D)有语法错误
二、填空题
【1】下面程序的功能是计算1-3+5-7+…-99+101的值,请填空。
#include
voidmain()
{inti,t=1,s=0
for(i=1;i<101;i+=2)
{_____________;s=s+t;_____________;}
printf(″%d\n″,s);
}
【2】下面程序的功能是求1000以内的所有完全数。
请填空。
(说明:
一个数如果恰好等于它的因子之和(除自身外),则称该数这完全数,例如:
6=1+2+3,6为完全数)
#include
voidmain()
{inta,i,m;
for(a=1;a<=1000;a++)
{for(;i<=a/2;i++)
if(!
(a%i));
if(m==a)printf(″%4d″,a);
}
}
【3】执行下面程序段后,k值是_____________。
k=1;n=263;
do{k*=n%10;n/=10;}while(n);
}
【4】若for循环用以下形式表示:
for(表达式1;表达式2;表达式3)循环体语句;
则执行语句for(i=0;i<3;i++)printf(″*″);时,表达式1执行______________次,表达式3执行________________次。
【5】下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。
请填空。
#include
voidmain()
{intr,m,n;
scanf(″%d%d″,&m,&n);
if(mr=m%n;
while(r){m=n;n=r;r=________________;}
printf(″%d\n″,n);
}
【6】下面程序的功能是从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。
请填空。
#include
voidmain()
{inti,j,k;
printf(″\nhongbaihei\n″);
for(i=1;i<=3;i++)
for(;j<=5;j++)
{k=8-i-j;
if()
printf(″%3d%3d%3d\n″,i,j,k);
}
}
三、程序运行结果填空题
【1】下面程序的运行结果是_________。
#include
voidmain()
{inta=1,b=10;
do{b-=a;a++;}while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
A)a=3,b=11B)a=2,b=8C)a=1,b=-1D)a=4,b=9
【2】下面程序段的运行结果是_________。
a=1;b=2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
【3】若从键盘输入6514(表示回车符),则下面程序的运行结果是__________。
#include
voidmain()
{intm,n;
printf(″Enterm,n:
″);
scanf(″%d%d″,&m,&n);
while(m!
=n)
{while(m>n)m-=n;
while(n>m)n-=m;
}
printf(″m=%d\n″,m);
}
【4】下面程序的运行结果是__________。
#include
voidmain()
{inti,x,y;
i=x=y=0;
do
{++i;
if(i%2!
=0)
{x=x+i;i++;}
y=y+i++;
}while(i<=7);
printf(″x=%d,y=%d\n″,x,y);
}
【5】下面程序段的运行结果是______________。
x=y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
A)20,7B)6,12C)20,8D)8,20
【6】下面程序的运行结果是___________。
#include
voidmain()
{intnum=0;
while(num<=2)
{num++;
printf("%d,",num);
}
}
A)1,2B)1,2,3C)1,3D)1,3,4
【7】写出程序的结果运行结果___________________。
#include
voidmain(void)
{inti,a,sum,t;
a=2;
sum=0;
t=0;
for(i=1;i<6;i++)
{t=10*t+a;sum+=t;}
printf(“sum=%d,i=%d”,sum,i);
}
【8】下面程序片段的运行结果是_________。
inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<4;j++)
{
if(j%2)continue;
x++;
}
x++;
}
printf(“x=%d”,x);
四、编程题
1.编程输出如下格式的九九表
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
2
4
6
8
10
12
14
16
18
3
6
9
12
15
18
21
24
27
4
8
12
16
20
24
28
32
36
5
10
15
20
25
30
35
40
45
6
12
18
24
30
36
42
48
54
7
14
21
28
35
42
49
56
63
8
16
24
32
40
48
56
64
72
9
18
27
36
45
54
63
72
81
2.试编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。
第六章数组
一、单项选择题
【1】判断字符串a和b是否相等,应当使用_______。
A)if(a==b)B)if(a=b)C)if(strcpy(a,b))D)if(strcmp(a,b))
【2】下面程序的功能是将字符串s中所有的字符c删除。
请选择填空。
#include
voidmain()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!
=’\0’;i++)
if(s[i]!
=’c’);
s[j]=’\0’;
puts(s);
}
A)s[j++]=s[i]B)s[++j]=s[i]C)s[j]=s[i];j++D)s[j]=s[i]
【2】若有说明:
inta[10];则对a数组元素的正确引用是_________。
A)a[10]B)a[3.5]C)a[5]D)a[5.0]
【3】对两个数组a和b进行如下初始化
chara[]="ABCDEF";
charb[]={’A’,’B’,’C’,’D’,’E’,’F’};
则以下叙述正确的是__。
A)a与b数组完全相同B)a与b长度相同
C)a和b中都存放字符串D)a数组比b数组长度长
二、填空题
【1】下面程序用“顺序查找法”查找数组a中是否存在某一关键字。
请填空。
#include
voidmain()
{inta[9]={25,57,48,37,12,92,86,33},i,x;
scanf(″%d″,&x);
;i=0;
while(a[i]!
=x)i++;
if()
printf(″Found!
Theindexis;%d\n″,i);
else
printf(″Can′tfound!
\n″);
}
【2】数组是一批具有________数据类型的数据之集合。
【3】若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是___________,a[2][1]得到的初值是__________。
【4】以下程序可求出所有的水仙花数。
(所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。
例如;407=4×4×4+0×0×0+7×7×7,故407是一个水仙花数。
)
#include
voidmain()
{intx,y,z,a[8],m,i=0;
printf(″Thespecialnumbersare:
\n″);
for(;m++)
{x=m/100;
y=;
z=m%10;
if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)
{;i++;}
}
for(x=0;x
printf(″%6d″,a[x]);
}
【5】有十个字符串。
下面程序的功能是在每个字符串中,找出最大字符按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串的最大字符。
请填空。
#include
voidmain()
{chars[10][20];
inta[10],i,j;
for(i=0;i<10;i++)gets(s[i]);
for(i=0;i<10;i++)
{;
for(j=1;s[i][j]!
=′\0′;j++)
if(a[i]
}
for(i=0;i<10;i++)
printf(″%d%c″,i,a[i]);
}
三、程序运行结果填空题
【1】下面程序的运行结果是_____________。
#include
voidmain()
{
intnum_list[]={6,7,8,9},k,j,b,u=0,m=4,w;
w=m-1;
while(u<=w)
{
j=num_list[u];
k=2;b=1;
while(k<=j/2&&b)
b=j%++k;
if(b)
printf(″%d\n″,num_list[u++]);
else
{num_list[u]=num_list[w];num_list[w--]=j;}
}
}
【2】读下列程序
#include
#include
voidmain(void)
{
inta[10],i,j,k,m,b[10]={0,0,0,0,0,0,0,0,0,};
for(i=0;i<6;i++)
scanf(“%d”,&a[i]);
for(i=5;i>0;i--)
{
k=a[5];
for(j=4;j>5-i-1;j--)
a[j+1]=a[j];
a[5-i]=k;
}
j=0;
for(i=0;i<6;i++)
j+=a[i];
j/=6;
for(i=0;i<6;i++)
if(abs(a[i]-j<2))
{
printf(“%d”,a[i]);
b[i]=1;
}
for(i=0;i<6;i++)
if(b[i]==0)
printf(“%d”,a[i]);
}
假设运行上述程序时,输入的6个整数分别为1,2,3,4,5,6,则运行结果为__________________。
【3】读下列程序
#include
#include
#include
voidmain(void)
{
chars[41],d[41];
inti,n;
gets(s);
i=0;
n=0;
while(s[i])
{
if(i%2==0)
{
d[n]=s[i];
n++;
}
i++;
}
d[n]=0;
printf(“%s”,d);
}
假设运行上述程序时,输入的数据为EexXaAmMiInNgG.,则运行结果为:
______________________。
【4】读下列程序
#include
#include
#include
#include
voidmain(void)
{
chars1[101],s2[51];
intl1,l2,i;
printf(“请输入字符串1:
”);
gets(s1);
printf(“请输入字符串2:
”);
gets(s2);
l1=strlen(s1);
l2=strlen(s2);
for(i=0;iprintf(s1);
}
假设运行上述程序时,输入的2个字符串分别为ABCDEF,1234,则运行结果为:
______________。
【5】下面程序的运行结果是________。
#include
voidmain()
{chara[]="morning",t;
inti,j=0;
for(i=0;i<7;i++)
if(a[j]j=i;
t=a[j];
a[j]=a[7];
a[7]=a[j];
puts(a);
}
A)mogninrB)moc)morningD)mornin
【6】下面程序的运行结果是__________。
#include
voidmain()
{charch[7]={"12ab56"};
inti,s=0;
for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)
s=10*s+ch[i]-’0’;
printf("%d\n",s);
}
A)1B)12C)12ab56D)1256