程序阅读及填空_第1页
程序阅读及填空_第2页
程序阅读及填空_第3页
程序阅读及填空_第4页
程序阅读及填空_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档精品文档PAGE精品文档

一.程序阅读题

1.若运行时输入 100↙,写出以下程序的运行结果。

main()

{inta;

scanf( “%d”,&a);

printf( “%s”,(a%2!=0) ”No”:”Yes”);

}

答案: Yes

2.写出以下程序的运行结果。

main()

{inta=2,b=7,c=5;switch(a>0){

case1:switch(b<0){

case1:printf(“@”);break;case2:printf(“!”);break;}case0:switch(c==5){case1:pritnf(“*”);break;case2:printf(“#”);break;default:printf(“#”);break;}default:printf(“&”);}printf(n“”);}

答案:*&

3.写出下面程序运行的结果。

main()

{inti,b,k=0;

for(i=1;i<=5;i++){

b=i%2;

while(b--==0)k++;

}

printf( “%d,%d”,k,b);

}

答案:2 0

4.写出下面程序运行的结果。

main()

{intk=1,n=263;

do{k*=n%10;n/=10;}while(n);

printf( “n%d”,k);

}

答案:36

5.写出下面程序运行的结果。

main()“%2d”,a[i][j]);

{inta=10,y=0;do{

a+=2;y+=a;

if(y>50)break;}while(a=14);

printf(“a=%dy=%dn”,a,y);

}

答案:a=16 y=60

数组部分:

1.写出下面程序的运行结果。鲣義吕厕誅颉怿许鵬踐岭輻該顆诟。main() 答 案 :

{inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){

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

printf(

printf( n“”);

}

}

2.写出下面程序的运行结果。

main()兩輇肮鍔綬掴餘疡齑濘鏵锹鹏鵒譾。{inti=0;

chara[]= ”abm”,b[]= ”

while(a[i]!= 0’’&&b[i]!=0’’){馀誡戔鵬脛噥鑊覲銑枢决胪韙铜极。

aqid

”,c[10];

if(a[i]>=b[i])c[i]=a[i]-32;

elsec[i]=b[i]-32;

i++;

}

c[i]= 0’;

puts(c);

}

答案:AQM

3.当运行下面程序时,从键盘上输入 AabD↙,则写出下面程序的运行结果。

main()

{chars[80];inti=0;gets(s);詁忧颓資橈鈉臥椠繰鹆鹺惫蛻錕贄。while(s[i]!=

0’’){

if(s[i]<=

’z’

&&s[i]>=

’a’)

s[i]= ’z-’s[i]+;’a’

i++;

}

puts(s);

}

答案:AzyD

二.程序判断题

1.下面程序将输入的大写字母改写成小写字母输出, 其他字符不变;请判断下面程序的正误,

如果错误请改正过来。

main()

{charc;

c=getchar();

c=(c>=A’’||c<= ’c-32Z’:)c+32;

printf( “%c”,c);

}

答案:c=(c>=A’||c<=’Z’c)-32:c+32; 改为:c=(c>='A'&&c<='Z') c+32:c;

2.下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入3+5↙得到结果8;请判断下面程序的正误,如果错误请改正过来。

main()

{

floatx,y,r;

charop;

scanf( “%f%c%f”,&x,&op,&y);

switch(op){

case ‘+’:r=x+y;

case-’‘:r=x-y;

case ‘*’*y:;r=x

case ‘/’/y:;r=x

}

printf( “%f”,r);

}

答案:每个Case分之后面加 Break;

三.程序填空题

1、以下程序输出 x,y,z三个数中的最小值,请填( 2)空使程序完整。

main()

{intx=4,y=5,z=8;intu,v;

扫攝亏迟銩车玛费赁颯嘤稈蠅卻绛。u=x<y【1】;v=u<z【2】;printf(“%d”,v);}答案:【1】x:y【2】u:z2、下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,

请填(3)空使程序完整。

main()

{intm,n,w;

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

while(n){

w=【1】;

m=【2】;

n=【3】;

}

printf( “%d”,m);

}

答案:【1】w=m%n; 【2】m=n; 【3】n=w;

3、下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。

main()

{intn,k=1,s=0,m;

for(n=1;n<=100;n++){

k=1;s=0;

【1】;

while(【2】){

k*=m%10;

s+=m%10;鰓滲鑲猫錕緬谳盐绘骒釕寶親厦栏。【3】;

}

if(k>s)printf(

}

}

“%dd”,n);

答案: 【1】

m=n;

【2】

m!=0

【3】m=m/10;

4、下面程序按公式(课本 169页习题) 求和并输出结果,请填 (3)空使程序完整。

main()

{

1】;

intk;

for(k=1;k<=100;k++)

s+=k;

for(k=1;k<=50;k++)

s+=k*k;

for(k=1;k<=10;k++)炖廩暧见鐠枞镤鹇憂踊諼驃護刹谙。s+=【2

printf(

】;

“sum=【3

】”

,s);

}答案:【1】

float

s=0;

【2】1/k

【3】%f

数组部分:

一、程序判断:

1.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过来。

main()

貳鋪唛辉鍍颢缍锩懼禪资绋韃叹綆。{inta[3]={3*0};inti;for(i=0;i<4;i++)scanf(“%d”,&a[i]);for(i=0;i<4;i++)printf(“%d”,a[i]);}答案:for(i=0;i<3;i++)(只有3个数组元素,下标0~2)2.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过来。

main()

{inta[3]={1,2,3},i;

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

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

}

答案:scanf("%d%d%d",&a[0],&a[1],&a[2]);鈑訣孪郓谘驶峽噯燜訖椟癢條酱鏽。3.下面程序的功能是:先将在字符串正序连接到t串的后面。例如,当

s中的字符按逆序存放到 t串中,然后把 s中的字符按

s中的字符串为: “ABCDE”时则 t中的字符串应为:

嗚呜赕殲荚贞虜磽阙頇头鸽莖韫確。“EDCBAABCDE;”判断下面程序的正误,如果错误请改正过来。

main()

{chars[80],t[200];inti,sl;

gets(s);sl=strlen(s);閎锒蒞聯鱟賽摇当腫鸩閨垩呗颊鲧。for(i=0;i<sl;i++)t[i]=s[sl-i];

改为:

t[i]=s[sl-i-1];

for(i=0;i<sl;i++)t[sl+i]=s[i];t[s1+i]='\0';

加上语句:

t[s1+i]='\0';

puts(t);

}

答案:见右边修改语句4.下面程序的功能是:将

n各无序整数从小到大排序;判断下面程序的正误,如果错误请改

正过来。main()

{inta[100],i,j,p,t,n=20;

for(j=0;j<n;j++)scanf(

for(j=0;j<n-1;j++)

{p=j;

for(i=j+1;i<n-1;i++)

if(a[p]>a[i])t=i;

if(p!=j)

{t=a[j];a[j]=a[p];a[p]=t;}

}

for(j=0;j<n;j++)printf(

}虚谮燈漸療業颠镄憒祕鏟們泷泶却。

“,%d”改,&a[j])为: ;

n-1改为:n

t 改为:p

,&a[j]); “%d”

答案:见右边修改语句5.下面程序的功能是:统计子字符串

substr

在字符串

str

中出现的次数。例如,若字符串为

aaaslkaaas,子字符串为as,则应输出main()

{charsubstr[80],str[80];inti,j,k,num=0;gets(substr);gets(str);for(i=0,str[i],i++)

for(j=i,k=0;substr[k]==str[j];k++,j++)

if(substr[k+1]!=’0’){

num++;

break;

}

printf( “num=%d”,num);

}

答案: 程序修改如右框所示。

二、程序填空题摻鶻宫誘粤璎澗访沤埘馋櫞溆骜譚。

2;判断下面程序的正误,如果错误请改正过来。

main()

{charsubstr[80],str[80];/*substr放需要统计的子字符串*/inti,j,k,num=0;

龈淀闭唛纭綃綃罷飒呓惨谩坜鷯閥。gets(substr);

gets(str);

for(i=0;i<=strlen(str)-strlen(substr);i++)

for(j=i,k=0;substr[k]==str[j];k++,j++)

if(substr[k+1]=='\0')

{num++;break;

}

printf("num=%d",num);

}

鍰滌銚锰擔鱸绐庆蹌确釹諧椤錳鶩。1.下面程序可求出矩阵 a的主对角线上的元素之和,请填 (2)空使程序完整。

main()

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i<3;i++)

for(j=0;j<3;j++)if(【1】)sum=sum+【2】;

printf( “sum=%d”,sum);

}缘刹绘总禄酿耻麸釅樯鳏绌闲树暂。答案: 【1】i==j

2.下面程序将十进制整数main()

{inti,base,n,j,num[20];scanf(“%d”,&n);scanf(“%d”,base);do{

i++;

num[i]=【1】;n=【2】;

}while(n!=0);for(【3】);

printf(“%d”,num[j]);

}綺訐籩錾硗賂縭誒殫龜痈柠適龛賄。

2】a[i][j]

base转换成n进制,请填(3)空使程序完整。

main()

{inti=0,base,n,j,num[20];scanf("%d",&n);scanf("%d",&base);do{

i++;

num[i]=base%n;

base=base/n;

}while(base!=0);

for(j=i;j>=1;j--)

printf("%d",num[j]);

}

闋竞瓒饯粜剧类絷伦赞锕齙硕廳讯。答案:此程序有点小错误 ,红色文字为改正错误 ,蓝色文字为填空答案 .

3.下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。

main()

{inta[10],max,min,i,j,k;for(i=0;i<10;i++)庙凍嘍嶸鴝维辘謁谤劌员镣鯢蟈签。

scanf( “%d”,&a[i]);

max=min=a[0];

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

if(a[i]<min){min=a[i]; 【1】;}

if(a[i]>max){max=a[i]; 【2】;}

} /*循环完后,最小的数组元素下标放在变量 j中,最大的放在变量 k中*/

【3】; /* 借助中间变量 max,将最大最小两数组元素交换 */

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

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

}

答案: 【1】j=i 【2】k=i 【3】max=a[j];a[j]=a[k];a[k]=max;

4.下面程序用“插入法”对数组a进行由小到大的排序,请填 (3)空使程序完整。

经典算法提示:

简单插入排序算法的基本思想使将数组处理 n-1次,第k次处理是将第 k个元素插入到

目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a[0],a[1],,a[k-1]必定已排成了升序,将a[k]与a[k-1],a[k-2],a[0]逐个比较(由后向前),若有a[j]<a[k],则a[k]插入到a[j]之后,否则a[k]维持原位不变。

main()

{inta[10]={191,3,6,4,11,7,25,13,89,10};inti,j,k;

for(i=1;i<10;i++){k=a[i];

j=【1】;

while(j>=0&&k>a[j]){ /* k>a[j]改为: k<a[j] */

2】;

j--;

}

3】=k;

}

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

}

答案: 【1】 i-1 【2】a[j+1]=a[j] 【3】a[j+1]

5.下面程序用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数儔廂阁鉴误浓縞韫鑌鲜鏑煙黄僅宝。组,请填(3)空使程序完整。

main()

{inta[3]={5,9,10};

intb[5]={12,24,26,37,48};

intc[10],i=0,j=0,k=0;

while(i<3&&i<5)

if(【1】){

c[k]=b[j];k++;j++;

}else{

c[k]=a[j];k++;i++;

}

while(【2】){屨熱陣攣鶚鯔處惩颗暈骑紺呗釹岂。

main()

{inta[3]={3,5,10};

intb[5]={1,6,26,37,48};

intc[10],i=0,j=0,k=0;

while(i<3&&j<5)

if(a[i]>b[j]){ c[k]=b[j];k++;j++;}

else{c[k]=a[i];k++;i++;}

while(i<3)

{c[k]=a[i];i++;k++;}while(j<5)

{c[k]=b[j];j++;k++;}

for(i=0;i<k;i++)printf("%d",c[i]);

}

此程序有点小错误,红色文字为改正错误,蓝色文字为填空答案.聶費恸伪帮锾铝悯韻縟珐热譖囵餒。

{c[k]=a[j];i++;k++;}while(【3】){

{c[k]=b[j];j++;k++;}

鱸锤禪鋏綃誆擊绮禪錆裝钲釵騏頑。for(i=0;i<k;i++)printf(“%d”,c[i]);}6.下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的结果保存到b数组中,并按矩阵形式输出a和b,请填(3)空使程序完整。数组a数组main()main(){inta[2][3]={{4,5,6},{1,2,3}},b[2][3],i,j;{inta[2][3]={{4,5,6},{1,2,3}},b[2][3],i,j;for(i=0;i<2;i++)for(i=0;i<2;i++){for(j=0;j<3;j++)for(j=0;i<3;j++){printf("%5d",a[i][j]);printf(“%5d”,a[i][j]);printf("\n");【1】;}}printf("\n");printf(“n”);for(i=0;i<2;i++)}for(j=0;j<3;j++)for(【2】)b[i][0]=a[i][2];b[i][(j+1)%3]=a[i][j];for(i=0;i<2;i++){for(i=0;i<2;i++)for(j=0;i<3;j++){{for(j=0;j<3;j++)printf(“%5d”,b[i][j]);printf("%5d",b[i][j]);【3】;printf("\n");}}printf(n“”);printf("\n");}}}答案:此程序有错误,正确的程序见右框7.下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出-1,请填(2)空使程序完整。include<>main(){charc= ’a’需要;/*查找的字符

chart[50];

inti,j,k;

gets(t);

i=【1】;

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

if(【2】)

{j=k;break;}

elsej=-1;

printf( “%d”,j);

}浓癱貢钧輝靓鏌畝漬緡种剂蟯瑤蹒。

*/

答案:【1】

strlen(t)

【2】

t[k]==c

8.下面程序用“顺序查找法”查找数组

a中是否存在某一关键字,请填

(2)空使程序完整。

main()

{inta[10]={25,57,48,371,123,291,18,22,44};inti=0,x;

scanf( “%d”,&x);

責鋁鴝铪誹殡荩纥馅無缏騅鰩隊笋。【1】;while(a[i]!=x&&i<10)i++;if(【2】)printf(“found=%d”,i);elseprintf(“’cantfound!n”);}答案:【1】不需要填【

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论