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

下载本文档

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

文档简介

1、一. 程序阅读题1 若运行时输入100/,写出以下程序的运行结果。 main ()int a ;scanf(“ d”,&a); printf(“s”,(a%2!=0)?”No”:”Yes”);答案:Yes2. 写出以下程序的运行结果。main ()int a=2,b=7,c=5;switch (a0) case 1: sv/itch (b0) case 1: printf(“”); break ;case 2: printf(“!”); break ;case 0: sv/itch (c=5) case 1: pritnf(*n) ; break ;case 2: printf(“#”) ;

2、break ; default : printf(“#”) ; break ;default : printf(&”);printf(“n”);答案:*&3 写出下而程序运行的结果。main ()int i,b,k=0 ;for (i=1; i50) break ; while (a=14); printf(ua=%d y=%dnn,a,y); 答案:a=16 y=60数组部分:1.写出下而程序的运行结果。main ()int a66,i,j ;for (i=1; i6 ; i+)for (j=1 ; j6 ; j+) aij=(i/j)*(j/i);for (i=1;i6 ; i+) for

3、 (j=1 ; j=bij) ci=ai-32 ;else ci=bi-32 ;i+;ci=,0,;puts(c);答案:AQM3. 当运行下而程序时,从键盘上输入AabD/,则写出下而程序的运行结果。main () char s80;int i=0;gets(s);while (si!=,0,) if (si=,a,)si=,z,+,a,-si;i+;puts(s);答案:AzyD二. 程序判断题1 下面程序将输入的大写字母改写成小写字母输岀,其他字符不变:请判断下而程序的正误, 如果错误请改正过来。main () char c;c = getchar ();c = (c=,A, | | c

4、=,A, | | c-A& c=Z) ? c+32 : c ;2. 下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入 3+5/得到结果8:请判断下面程序的正误,如果错误请改正过来。main ()float x,y,r;char op ;scanf (“ f%c%f ”, &x, &op, &y);switch(op) case: r=x+y ;case: r=x-y ;case: r=x*y ;case: r=x/y ;printf (u%Pr);答案:每个Case分之后而加Break;三. 程序填空题仁以下程序输出x,y,z三个数中的最小值,请填(2)空使程序

5、完整。main ()int x=4,y=5,z=8 ;int u,v;u = xy ? 1 ;v = uz ? 2 ;printf (“d”,v);答案:11 x:y 2 u:z2、下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是il算 m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数 作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。main ()int m,n,w;scanf(“d,%d”,&m,&n);v/hile (n) w= 1 :m= 2 :n= 3 】:答案:【11 w=

6、m%n; 2 m=n; 3 n=w;3、下面程序的功能是输岀1至100之间每位数的乘积大于每位数的和的数,请填(3)空 使程序完整。main ()int n,k=1,s=0,m ;for (n=1 ; ns) printf(%ddn,n);答案:1 m=n; 2 m!=03 m=m/10;4、下面程序按公式(课本169页习题6.5)求和并输岀结果,请填(3)空使程序完整。main ()D】;int k ;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(asum

7、= 3 n,s);答案:1 float s=0; 2 1/k3 %f数组部分:一、程序判断:1. 下而程序为数组输入数据并输出结果;判断下而程序的正误,如果错误请改正过来。main () int a3=3*0;int i;for (i=0; i4; i+) scanf(“%d”,&ai);for (i=0; i4; i+) printf(“d”,ai);答案:for (i=0; i3; i+)(只有3个数组元素,下标02)2. 下面程序为数组输入数据并输出结果;判断下而程序的正误,如果错误请改正过来。main ()int a =1,2,3, 1;scanf (“ d%d%d”, &a);for

8、 (i=0; i3; i+) printf(f%dM,ai);答案:scanf(%d%d%d,&aO, &a1, &a2);3. 下而程序的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按 正序连接到t串的后面。例如,当s中的字符串为:“ABCDE”时则t中的字符串应为: “EDCBAABCDE”;判断下而程序的正误,如果错误请改正过来。main () char s80,t200; int i,sl ;gets(s); si = strlen(s);for (i=0; isl; i+) ti = ssl-i; 改为:ti = ssl-i-1;for (i=0; isl; i

9、+) tsl+i = si;ts1 +i=,0,;加上语句:ts1 +i=0,;puts(t);答案:见右边修改语句4. 下而程序的功能是:将n W无序整数从小到大排序:判断下面程序的正误,如果错误请改 正过来。main () int a100, i, j, p, t, n=20 ;for (j = 0; jn ; j+) scanf(“d”, &aj), 改为:for (j = 0;jn-1 ; j+)p = j;for (i=j+1; iai) t=i;t 改为:pif (p!=j)t = aj;aj = ap;ap=t;for (j = 0; jn ; j+ ) printf(“d&aj

10、);答案:见右边修改语句5下面程序的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaaslkaaas,子字符串为as,则应输出2:判断下面程序的正误,如果错误请改正过来。main () char substr80,str80; /substr 放需要统计的子字符串 */ int i.j,k.num=0;gets(substr); gets(str);for(i=0:i=strlcn(str)-strlcn(substr):i+) for(j=i,k=0;substrk= =strj;k+j+)if(substrk+l= =*0f) num+;break:prin

11、tf(Mnum=%dH, num);main () char substr80,str80;int i,j,k,num=O;gets(substr); gets(str);for (i = 0, stri, i+)for (j=i,k=0;substrk=strj;k+,j4if (substrk+1!=,0,) num+; break;printf(Mnum=%dM, num);答案:程序修改如右框所示。二、程序填空题1. 下而程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完整。 main () int a33=1,3,5,7,9,11,13,15,17 , sum=0, i,

12、j ;for (i=0 ; i3 ; i+)for (j=0 ; j3 ; j+)if ( 1 1 )sum=sum+ 2 ;printf(=l;j-) printf(M%dmain () int i,base,n,j,num20;scanf(“d”,&n);scanf(a%dw,base);do i+;numi= 1 ;n= 2 ; while (n!=0);for ( 3 );printf(“;答案:此程序有点小错误,红色文字为改正错误,蓝色文字为填空答案3. 下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后 输出调整后的10个数,请填(3)空使程序完整。ma

13、in ()int a10,max,min,i,j,k ;for (i=0; i10; i+)scanf (“%d”,&ai);max=min=aO;for (i=0; i10; i+) if (aimax) max二ai; 2 ; 厂循环完后,最小的数组元素下标放在变量j中,最大的放在变量k中*/【3】; 厂借助中间变量max,将最大最小两数组元素交换*/for (i=0; i10; i+)printf (“ d”,ai);答案:1 j =i 2 k=i 3 max=aj;aj=ak;ak=max;4. 下面程序用“插入法”对数组a进行由小到大的排序,请填(3)空使程序完整。经典算法提示:简单

14、插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k个元素插入到 目前的位置。第k次的元素是这样插入的:在第k次处理时,前而的元素 a0,a1,.,ak-1必定已排成了升序,将ak与ak-1,ak-2,.a0逐个比较(由后向 前),若有ajak,则ak插入到aj之后,否则ak维持原位不变。main () int a10=191,3,6,4,11,7,25,13,89,10;for (i=1; i=0 & kaj ) /* kaj改为:kaj */【2】;J-;3 =k;for (i=0; i10; i+) printf(“d”風i);答案:1 i-12 aj+1=aj3 aj+1组,

15、请填(3)空使程序完整。main ()int a =5,9,10;int b5=12,24,26,37,48;int c10,i=0,j=0,k=0 ;v/hile (i3 & i5)if (1 】)ck=bj ; k+ ; j+ ; else ck=aj ; k+ ; i+ ;v/hile (【2 】)5下面程序用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数main () int a3=3,5,10;int b5= 1,6,26,37,48;intc10J=0j=0.k=0;while (iv3 & jbUJ) ck=bj;k+:j+; else c|k=ai; k

16、+ ; i+ ; while (iv3) ck=ai; i+ ; k卄;while (j5)ckl=bj;j卄;k+; for (i=0; ik; i+) printf(M%d H,ci);此程序有点小错晁红色文字为改正错误,蓝色文字 为填空答案.main () int a2卩= 4,5.6,1,23, b,i,j; for (i=0; i2 ; i+)for (j=O; j3 ;j+) printf(M%5dM,aij);printf(,fiiH);printf(,rnH);for (i=0;i2;i+)for(j=0;j3;j+) bi(j+l)%3=aiUl;for (i=0; i2 ;

17、 i+)for (j=O; j3 ;j卄) printf(H%5dbij);printf(,rnH);)printf(,rnH); ck=aj ; i+ ; k+ ; v/hile (【3 】) ck=bj ; j+ ; k+ ; for (i=0; ivk; i+) printf(“d ”,ci);6下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的结果保存到b数组中,并按矩阵形式输出a和b,请填(3)空使程序完整。数组a数组main () int a23 =4,5,6,1,2,3, b,i,jfor (i=0; i2 ; i+)for (j=0; i3 ; j+

18、 ) printf(临5d”,aij);【1】;printf(nn);for( 2 ) bi0=ai2;for (i=0; i2 ; i+) for (j=0; i3 ; j+) printf(%5dw,bij);【3 ;printf(nM);答案:此程序有错误,正确的程序见右框7 下而程序的功能是在一个字符串中查找一个指左的字符,若字符串中包含该字符则输岀该 字符在字符串中第一次出现的位置(下标值),否则输出一 1,请填(2)空使程序完整。# include main ()charc=,a,; /*需要查找的字符*/char t50;inti,j,k;gets(t);i= (1 1 ;for

19、 (k=0; ki; k+)if (【2 )j = k ; break ;else j=-1;prin tf(“%d”,j);答案:11 strlen(t)2 tk= =c&下而程序用“顺序查找法”查找数组a中是否存在某一关键字,请填(2)空使程序完整。 main () int a10=25,57,48,371,123,291,18,22,44;int i=O,x ;scanf(a%dn,&x);(1】;v/hile (ai!=x & i10) i+ ;if ( 2 】)printf(found=%dn,i);else printf(“cant found!nM);答案:11不需要填【2】i109.以下程序是求矩阵a

温馨提示

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

最新文档

评论

0/150

提交评论