《c语言 习题七 参考答案》由会员分享,可在线阅读,更多相关《c语言 习题七 参考答案(9页珍藏版)》请在金锄头文库上搜索。
1、习题七一、单项选择题1、 以下程序的输出结果是( ) 。main()int i,k,a10,p3;k=5;for(i=0;i0j+=2)s=10*s+aij-0;printf(“s=%dn”,s);A)6385 B)69825 C)63825 D)693825二、填空题1、以下程序的输出结果是_。 结果: main()int arr10,i,k;for(i=0;i=8)4、 以下程序的功能:把两个按升序排列的数组合并成一个按升序排列的数组。填空,使程序正确。 main()int i=0,j=0,k=0,a3=5,9,19,b5=12,24,26,37,48,c10;while(ibj) els
2、e ck=ai;k+;i+;while(_)ck=ai;k+;i+; (imax)k=i;max=ai;printf(n);for(i=k;i0) /* 按”除二取余”得到各位二进制数 ak*/ ak=s%2; k+;s=s/2; for(j=15;j=0;j-)/* 按倒排方式输出二进制数的各位数字 */printf(“%2d”,aj);程序2:/*P196_4.c*/main()int n,i;char a16;long k=1;printf(Input n=n);scanf(%d,while(nk) /*求大于n且最接近n的二进制权值*/k=k*2;k=k/2;for(i=0;k0;i+
3、) /*用除权法将n转换未二进制*/ai=n/k+0;n=n%k;k=k/2;ai=0;printf(%sn,a);5、 编写程序, 产生 30个 50以内的随机整数到 5行 6列数组中,输出那些在行和列上均为最小的元素。main( ) /*解 1*/ int i,j,p,q,a56,f;for(i=0;iak6)k=i; /*查找和值最大行*/printf(n);for(j=0;jamlmw)ml=i;mw=j; /*查找最大值元素*/if(aijai ) min=i;t=a1; a1=amax; amax=t; /* 最大值 amax与 a1交换 */if ( min=1 ) /*若最小值
4、是 a1,则 a1已交换到 amax,故 amax与 ak-2交换 */ t=ak-2; ak-2=amax; amax=t; else t=ak-2; ak-2=amin; amin=t; printf(“a=%sn”,a);11、编写程序,输入一个 3位正整数,计算其各位数字的和值,取该和值被 13除的余数,若余数为零,则输出*,否则输出对应的月份英文单词。输出形式如下(以整数 539和247为例):539:5+3+9=17,17%13=4,April 247:2+4+7=13,13%13=0,*main( ) int i,j,k,n,t,p;char a1320 = ”*”, “Janu
5、ary”, “February”, “Match”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “Deccember” ;scanf(“%d”, i=n/100; j=n/10%10; k=n%10;p=i+k+j;t=p%13; printf(“%d: %d+%d+%d=%d,%d%13= %d,%sn”,n,i,j,k,p,p,t,at);12、编写程序,任意输入 5个字符串存放到 2维数组中,按字符串的长度从短到长顺序输出它们。程序 1:#include “string.h”main( ) int i,j,k,n,t,p,b5;char a580;for ( i=0; istrlen(abj) ) k=j;if ( k!=i ) t=bk; bk=bi; bi=t; for ( i=0; istrlen(sj)k=j;strcpy(t,sk);strcpy(sk,si);strcpy(si,t);for(i=0;i5;i+)puts(si);