第2次练习循环数组.docx

上传人:b****0 文档编号:9645502 上传时间:2023-05-20 格式:DOCX 页数:19 大小:25.93KB
下载 相关 举报
第2次练习循环数组.docx_第1页
第1页 / 共19页
第2次练习循环数组.docx_第2页
第2页 / 共19页
第2次练习循环数组.docx_第3页
第3页 / 共19页
第2次练习循环数组.docx_第4页
第4页 / 共19页
第2次练习循环数组.docx_第5页
第5页 / 共19页
第2次练习循环数组.docx_第6页
第6页 / 共19页
第2次练习循环数组.docx_第7页
第7页 / 共19页
第2次练习循环数组.docx_第8页
第8页 / 共19页
第2次练习循环数组.docx_第9页
第9页 / 共19页
第2次练习循环数组.docx_第10页
第10页 / 共19页
第2次练习循环数组.docx_第11页
第11页 / 共19页
第2次练习循环数组.docx_第12页
第12页 / 共19页
第2次练习循环数组.docx_第13页
第13页 / 共19页
第2次练习循环数组.docx_第14页
第14页 / 共19页
第2次练习循环数组.docx_第15页
第15页 / 共19页
第2次练习循环数组.docx_第16页
第16页 / 共19页
第2次练习循环数组.docx_第17页
第17页 / 共19页
第2次练习循环数组.docx_第18页
第18页 / 共19页
第2次练习循环数组.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第2次练习循环数组.docx

《第2次练习循环数组.docx》由会员分享,可在线阅读,更多相关《第2次练习循环数组.docx(19页珍藏版)》请在冰点文库上搜索。

第2次练习循环数组.docx

第2次练习循环数组

C语言第2次练习题

一.选择题

1.以下叙述中正确的是____。

A).while循环语句的循环体至少执行一次

B).switch语句中每个语句序列中必须有break语句。

C).do-while循环语句的循环体至少执行一次

D).在多重循环中,continue语句只能出现最内层循环体内。

2.以下while循环执行__________.

intm=8;while(m=0)m=m-1;

A)8次B)一次C)一次也没执行D)无限循环

3.以下程序输出的是________.

inta=3;

do{printf(“%d\n”,a-=2);}while(!

(--a));

A)1B)3和0C)1和-2D)死循环

4.以下程序段中,不能实现1+2+3+4+…….+10的程序段是______.

A)inti=0,s=0;while(i<=10)s+=i;

B)inti,s;for(s=0,i=1;i<11;i++)s+=i;

C)inti=0,s=0;do{s+=i;++i;}while(i<=10);

D)inti,s;for(i=1,s=0;i<=10;)s+=i++;

5.下列一维数组说明中,正确的是_______.

A)#defineM10

floats[M];

B)intm;

scanf(“%d”,&m);

floata[m];

C)intm=10,a[m];

D)inta[];

6.下列为一维数组初始化时,正确的是_______.

A)inta[]={1,3,5,7,9,….15};B)inta[5]={};

C)inta[5]={5*3};D)inta[5]={0};

7.下列要将2,4,6,8存入数组a中,不正确的是______.

B)inta[4]={2,4,6,8};B)inta[]={2,4,6,8};

C)inta[4];a={2,4,6,8};D)inta[4];a[0]=2;a[1]=4,a[2]=6;a[3]=8;

8.若有说明:

inta[5][5];则对数组元素的正确引用是______.

A)a[3+2][3]B)a[0,3]C)a[4][1+2]D)a[][2]

9.下列二维数组初始化中,错误的是________.

A)inta[2][]={{3,4},{5}};B)inta[][3]={2,3,4,5,6,7};

C)inta[3][3]={0};D)inta[5][4]={{1,2},{2,3},{3,4},{4,5}};

10.若有以下数组定义:

charch[]=”book_120\n”;则数组ch的存储长度是____;

A)7B)8C)9D)10

11.以下程序段的输出结果是________.

charstr[8]={‘a’,b’,’c’,’d’,’\0’,’y’,’z’,’\0’};printf(“%s”,str);

A)abcdB)abcdyzC)abcdyzD)出错

12.设有以下定义:

chars1[10],s2[10];给s1和s2通过输入赋值,以下正确的是______.

A)scanf(“%s%s”,&s1,&s2);B)scanf(“%s%s”,s1,s2);

C)s1=getchar();s2=getchar();D)gets(s1,s2);

13.在数组:

inta[][3]={{1},{3,2},{4,5,6},{0}};中,数组元素a[2][1]的值是________.

A)3B)4C)5D)2

14.14设有如下定义:

chars1[20]=”tianjin”,s2[10]=”beijing”;

执行语句:

strcpy(s1+4,s2);printf(“%s”,s1);后,输出结果是:

_______.

A)tianB)tianbeijingC)tianjinbeijingD)tianbeij

15.设有定义语句:

intm[]={5,4,3,2,1},i=2;,下面数组元素引用错误的是____,

A)m[--i]B)m[i*i]C)m[m[0]]D)m[m[i]]

16.下列二维数组定义并初始化中,正确的是

A)inta[2][]={{3,4},{5,10,15}};

B)inta[2][3]={2,3,4,5,6,7,8,9};

C)inta[3][3]={{0},{1,2},{3,4,5}};

D)inta[][4]={(1,2,4,5),(2,3),(3,4,9),(5,6,8)};

二.阅读程序选择题

1.以下程序:

#include

main()

{intx=1,y=y,z=3;

if(x>y)

if(y>z)printf(“%d”,++z);

elseprintf(“%d”,++y);

printf(“%d”,x++);

}

程序的运行结果是:

A)331B)41C)2D)1

2.以下程序:

#include

Voidfun(inta,intb)

{intt;

t=a;a=b;b=t;

}

voidmain()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

for(i=0;i<10;i+=2)fun(c(i),c(i+1));

for(i=0;i<10;i++)printf(“%d,”,c[i]);

printf(“\n”);

}

程序的运行结果是:

A)1,2,3,4,5,6,7,8,9,0B)2,1,4,3,6,5,8,7,0,9

C)0,9,8,7,6,5,4,3,2,1D)0,1,2,3,4,5,6,7,8,9

3.有以下程序:

#include

main()

{inty=10;

for(;y>0;y--)

if(y%3!

=0)continue;

elseprintf(“%d”,y);

}

执行后的输出结果是()。

A)742B)852C)963D)875421

4.有以下程序:

#include

voidmain()

{inti,a[5]={1,2,6,8,9};

for(i=3;i;i--)

{switch(i)

{case1:

case2:

printf(“%d”,a[i]);break;

case3:

printf(“%d”,a[i]);break;

}

}

printf(“\n”);

}

执行后的输出结果是()

A)6B)8C)86D)862

5.有以下程序:

#include

main()

{inti,j,m=0;

for(i=1;i<=10;i++)

for(j=2;j<=20;j+=2)m++;

printf(“%d\n”,m);

}

执行后的输出结果是()

A)10B)20C)100D)200

6.有以下程序:

#include

voidmain()

{intn=12345,n1=0,n2=0,j;

while(n/=10)

{j=n%10;

if(j%2)n1+=j;

elsen2+=j;

}

printf(“%d,%d\n”,n1,n2);

}

A)9,6B)6,9C)6,4D)4,6

7.有以下程序:

#include

Voidmain()

{inta=1,b=10;

do{b-=a;a++;}while(b--<0);

printf(“a=%d,b=%d\n”,a,b);

}

A)a=1,b=-1B)a=2,b=8C)a=3,b=11D)a=4,b=9

 

8.有以下程序:

#include

Voidmain()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(a>=20)break;

if(b%3==1){b+=3;continue;}

b+=5;

}

printf(“%d\n”,a);

}

A)B)C)D)

9.以下能实现将a数组循环移位一位(移动后第0位移到第4位)正确的是:

B)main()

{intj,k,a[5]={1,2,3,4,5};

k=a[0];

for(j=0;j<40;j++)

a[j]=a[j+1];

a[4]=k;

}

D)main()

{intj,k,a[5]={1,2,3,4,5};

k=a[0];

for(j=4;j>=0;j--)

a[j]=a[j+1];

a[4]=k;

}

A)main()

{intj,k,a[5]={1,2,3,4,5};

k=a[0];

for(j=4;j>0;j--)

a[j-1]=a[j];

a[4]=k;

}

C)main()

{intj,k,a[5]={1,2,3,4,5};

k=a[0];

for(j=1;j<=4;j++)

a[j]=a[j+1];

a[4]=k;

}

10.以下a是3行4列的矩阵,以下2所有元素之和的程序段正确的是:

B)s=0

for(j=0;j<4;j++)

for(i=0;i<3;i++)

s+=a[i][j];

D)s=0;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

s+=a[j][i];

A)s=0;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

s+=a[i][j];

C)s=0;

for(i=0;i<4;i++)

for(j=0;j<3;j++)

s+=a[j][i];

三.阅读以下程序,根据要求写出结果.

1)#include

voidmain()

{inti;

for(i=1;i<=6;i+=2)

{if(i%2){printf(“AAAA\n”);continue;}

printf(“BBBB\n”);

}

}

2)#include

voidmain()

{inta=10;

while(a>0)

{if(a/3==1)break;

printf(“%d”,--a);

}

printf(“\n”);

}

3)#include

voidmain()

{inti=1;

chars[26];

s[0]=’a’;

do{s[i]=s[i-1]+1;i++;}while(i<26);

for(i=25;i>=0;i--)printf(“%c“,s[i]);

printf(“\n”);

}

4).#include

voidmain()

{chara[]={‘*’,’*’,’*’,’*’,’*’};

inti,j,k;

for(i=0;i<5;i++)

{printf(“\n”);

for(j=0;j

for(k=0;k<5;k++)printf(“%c”,a[k]);

}

}

5)#include

voidmain()

{intm,n;

scanf(“%d%d”,&m,&n);

while(m!

=n)

{while(m>n)m=m-n;

while(n>m)n=n-m;}

printf(“%d\n”,m);

}

执行该程序,当输入:

1463时,a)输出结果是什么?

b)该程序的功能是什么?

6)#include

voidmain()

{inti,j,a[4];

for(i=0;i<4;i++)a[i]=0;

for(i=1;i<4;i++)a[i]=a[i-1]+i;

printf(“%d%d\n”,a[1],a[3]);

}

7)#include

#include

voidmain()

{intk=0;

chars1[10]=”abc”,s2[5]=”xyz”;

strcat(s1,s2);

printf(“%s%s\n”,s1,s2);

}

8)#include

voidmain()

{charstr[][5]={“pen”,”book”,”desk”,”car”};

inti;

for(i=0;i<4;i++)printf(“%s\n”,str[i]);

}

9)#include

voidmain()

{inti=0;

while(++i<5)

{if(i%2)printf(”<”);

elsecontinue;

printf(”>”);

}

Printf(“\n”);

}

10)#include

voidmain()

{intj,a[]={1,2,3,4,10,12,13,15};

for(j=3;j>0;j--)

switch(j)

{case1:

case2:

printf(“%d,”,a[j+4]);break;

case3:

printf(“%d,”,a[j-1]);

}

printf(“\n”);

}

11)#include

voidmain()

{inti;

charch[]=”OLYMPICGAMES”;//字符串中间空一位

for(i=0;i<13;i++)

switch(i)

{case0:

case7:

case8:

default:

ch[i]=ch[i]+32;

}

printf(“%s\n”,ch);

}

四.程序填空

1.以下程序求

方阵的主对角线元素乘积,在程序_____处填空完成该程序.

#include

voidmain()

{inta[5][5],i,j,ss;

printf(“inputdata:

”);

for(i=0;i<5;i++)

for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);

ss=______;

for(i=0;i<5;i++)ss=___;

printf(“sum=%d\n”,ss);

}

2.以下程序求序列:

……前20项之和.在程序_____处填空完成该程序.

#include

voidmain()

{floatf1,f2,f3,sum;

intn;

f1=f2=___;sum=0;

for(n=1;n<=20;n++)

{f3=f1+f2;sum+=f3/f2;f1=f2;f2=__;}

printf(“sum=%f\n”,sum);

}

3.以下程序输出s数组中最大元素的下标,在程序_____处填空完成该程序.

#include

voidmain()

{intk,p,s[]={3,7,-2,9,-6,4};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])___;

printf(“%d\n”,k);

}

4.以下程序求任意10个实数的最大值和最小值,填空完成该程序.

#include

voidmain()

{inti;

floata[10],max,min;

for(i=0;i<10;i++)scanf(“%f”,&a[i]);

max=min=a[0];

for(i=1;i<10;i++)

{if(max

if(min>a[i])____;

}

printf(“最大值=%f\n”,max);

printf(“最小值=%f\n”,min);

}

5.以下程序求二维数组a中每行元素的平均值,并将平均值放数组b填空完成该程序.

#include

voidmain()

{inta[4][5],b[4],i,j;

for(i=0;i<4;i++)

for(j=0;j<5;j++)scanf(“%d”,__);

for(i=0;i<4;i++)

{b[i]=0;

for(j=0;j<5;j++)b[i]=____;

b[i]=b[i]/5;

}

for(i=0;i

printf(“\n”);

}

6.计算s=1+2+3+4+……+i,直到累加到s的值大于1000为止,输出s和i的值,填空完成程序。

#include

voidmain()

{inti,s;

;

for(i=1;;i++)

{s=s+i;

if(s>1000);

}

printf(“s=%di=%d\n”,s,i);

}

7.输出200以内被7整除且个位数为8的所有整数。

#include

voidmain()

{

inti,k;

for(i=0;i<20;i++){

k=i*10+8;//求个位为8的数

if()continue;//判是否能被7整除

printf(“%d\n”,k);

}

}

*8.以下程序的功能是输出1~100之间的自然数中各位数字乘积大于各位数字之和的那些数。

例如35,各位乘积是3×5=15,各位之和3+5=8。

#include

voidmain()

{intk,s,m,n;

for(n=11;n<=100;n++)

{k=1;s=0;m=n;

while(__)

{k*=m%10;//各位乘积

s+=m%10;//各位和

m=m/10;

}

if(__)printf(“%d“,n);

}

printf(“\n”);

}

*9.以下程序能够输出所有和为1000的连续整数序列。

#include

voidmain()

{inti,j,sum,k;

for(i=1;i<=1000;i++)

{j=i,sum=i;

while(){j++;sum+=j;}

if(sum==1000)

{for(k=i;;k++)printf(“%d,“,k);

cout<

}

}

10.以下的程序实现求分数序列2/1,3/2,5/3,8/5,13/8,21/13,……前20项的和。

#include

#defineN20

voidmain()

{inti,m,n,k;

;

m=2,n=1;

for(i=1;i<=N;i++)

{s=s+1.0*m/n;k=m;m=___;n=k;}

printf(”s=%f8.2”,s);

}

11.以下程序从给定的字符串中删除指定的一个字符。

#include

voidmain()

{charstr[]=”mystringprogram”,ch;

inti,j;

printf(“字符串:

%s\n”,str);

printf(”输入要删除的字符:

”);

ch=getchar();

for(i=0,j=0;str[i]!

=’\0’;i++)

if(str[i]!

=ch){;j++;}

s[j]=’\0’;

if()printf(”没有该字符!

\n”);

elseprintf(”删除后的字符串:

%s\n”,str);

}

12.以下求两个整数a和b的最小公倍数

#include

voidmain()

{inta,b,s=1;

scanf(“%d%d”,&a,&b);

while(s%a!

=0||s%b!

=0);

printf(“%d\n”,s);

}

13.以下求两个整数a和b的最大公约数

#include

voidmain()

{inta,b,r;

scanf(“%d%d”,&a,&b);

r=a%b;;

while()

{a=b;b=r;r=a%b;}

printf(“%d\n”,r);

}

五.编程序

a)输入一串字符,统计其中数字和空格字符的个数,输出统计结果.

b)输入10个数,将这10个数按由大到小的次序排序后输出.(参考书上例题)

c)求数列:

d)向数组a中输入30个整数,编程序分别将这30个数中的正数存入数组az中,负数存入数组af中,并分别输出az和af中的内容.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2