C语言练习3(数组)=参考答案(3)

2020-04-03 10:12

四.程序填空题

1.下面程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完整。 main ( )

{ int a[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 (【i==j】)

sum=sum+【a[i][j]】; printf(“sum=%d”,sum); }

2.下面程序将十进制整数n转换成base进制,请填(3)空使程序完整。 main ( )

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

num[i]=【nose 】; n=【n/base】; } while (n!=0);

for (【j=i;j>0;j--】) printf(“%d ”,num[j]) ; }

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

{ int a[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++) {

11

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

【max=a[j];a[j]=a[k];a[k]=max;】 for (i=0; i<10; i++) printf(“%d ”,a[i]); }

4.下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出-1,请填(2)空使程序完整。 # include main ( )

{ char c=?a? ; /* 需要查找的字符*/ char t[50] ; int i,j,k; gets(t) ;

i = 【strlen(t) 】; for (k=0; k

5.下面程序用“顺序查找法”查找数组a中是否存在某一关键字,请填(2)空使程序完整。 main ( )

{ int a[10]={25,57,48,371,123,291,18,22,44}; int i=0,x ;

scanf(“%d”,&x); 【a[10]=x】;

while (a[i]!=x) i++ ;

if (【i<10 】) printf(“found=%d\\n”,i); else printf(“can\\?t found!\\n”); }

6. 以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)空使程序完整。 main ( )

{ char a[40]=”Great ”, b[ ]=”Wall”; int i=0,j=0 ;

while (a[i]!=?\\0?) i++ ; while (【b[j]!='\\0' 】) { a[i]=b[j] ; i++ ; j++ ; }

【a[i]='\\0'】; printf(“%s\\n”,a); }

12

五、编程题

[1] 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0元素统计字符“0”的个数,下标为1的元素统计字符“1”的个数,...。 #include #define N 80 void main() {

char chs[N]; int i,count[10];

printf(\ scanf(\

for(i=0;i<10;i++) count[i]=0; for(i=0;i

count[chs[i]-'0']++; }

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

if(count[i]) printf(\}

[2] 编写程序求任意方阵每行、每列、两对角线元素之和。 #include #define N 5 #define M 5 void main() {

int a[N][M]={ {3,4,7,8,9}, {6,8,2,1,3}, {8,5,4,3,2}, {7,6,9,1,5}, {5,6,4,1,7}}; int s1[N];//存放每行的和 int s2[M];//存放每列的和

int sum1=0,sum2=0;//存放两对角线的和 int i=0,j=0;

for(i=0;i

for(i=0;i

s1[i]+=a[i][j]; }

13

for(j=0;j

s2[j]+=a[i][j]; }

for(i=0;i

sum1+=a[i][i]; }

for(i=0;i

sum2+=a[i][M-1-i]; }

printf(\每行和:\

for(i=0;i

for(i=0;i

[3] 编写程序求两个矩阵的和。 #include #define N 4 #define M 5 void main() {

int a[N][M]={ {3,4,7,8,9}, {6,8,2,1,3}, {8,5,4,3,2}, {7,6,9,1,5} }; int b[N][M]={ {2,4,7,5,9}, {7,8,2,5,3}, {9,5,4,3,2}, {8,6,9,1,5} }; int c[N][M],i,j;

for(i=0;i

c[i][j]=a[i][j]+b[i][j]; }

for(i=0;i

for(j=0;j

14

{

printf(\ }

printf(\ } }

[4] 编写程序打印出以下形式的乘法九九表。 ** A MULTIPCATION TABLE **

(1) (2) (3) (4) (5) (6) (7) (8) (9) (1) 1 2 3 4 5 6 7 8 9 (2) 2 4 6 8 10 12 14 16 18 (3) 3 6 9 12 15 18 21 24 27 (4) 4 8 12 16 20 24 28 32 36 (5) 5 10 15 20 25 30 35 40 45 (6) 6 12 18 24 30 36 42 48 54 (7) 7 14 21 28 35 42 49 56 64 (8) 8 16 24 32 40 48 56 64 72 (9) 9 18 27 36 45 54 63 72 81 #include

void main() {

int i=0,j=0;

printf(\

printf(\ printf(\

for(i=1;i<10;i++) { printf(\ for(j=1;j<10;j++) {

printf(\ }

printf(\ } }

[5] 调用随机函数为5*4的矩阵置100以内的整数,输出该矩阵,求出每行元素之和,并把和值最大的那一行与第一行上的元素对调。若已定义x为int类型,调用随机函数步骤如下: #include \ . .

x=rand()0 /*产生0到100的随机数*/

15


C语言练习3(数组)=参考答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学生的成长更应顺应社会需求资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: