在下述程序中,判断i>j共执行的次数是( ) main() { int i=0,j=10,k=2,s=0; for(;;) { i+=k; if(i>j) { printf(″%d″,s); break; }s+=i; } } A:4 B:7 C:5 D:6
时间: 2023-12-04 16:03:46 浏览: 65
我们可以手动模拟程序的运行过程,列出每一轮循环的变量值:
第一轮:
i = 2, j = 10, k = 2, s = 2
第二轮:
i = 4, j = 10, k = 2, s = 6
第三轮:
i = 6, j = 10, k = 2, s = 12
第四轮:
i = 8, j = 10, k = 2, s = 20
第五轮:
i = 10, j = 10, k = 2, s = 30
此时满足 i > j,程序输出 s 的值,为 30,然后跳出循环。
因此,共执行了 5 次循环,选项 C:5 是正确的答案。
相关问题
下述程序按由大到小的顺序输出10以内的正整数。 源程序: main() { int k=10; while(k>0) /********found********/ printf(“%d, ”,k);k=k-1; }
正确的程序应该是:
```
#include <stdio.h>
int main() {
int k = 10;
while (k > 0) {
printf("%d, ", k);
k = k - 1;
}
return 0;
}
```
输出结果为:
```
10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
```
以下为矩阵乘法的一段C语音代码,请在此代码上按要求修改实现下述功能,提交修改后的代码和运行结果截图 1. 将a矩阵修改为4行3列的二维数组,元素为自己的12位学号每位数字按顺序存储; 2. b矩阵为a矩阵的转置; 3. 计算c=a*b; 4. 计算前先输出a矩阵,之后输出b矩阵,c矩阵,对齐方式为每个元素占5字符; 5. 不允许增加新的变量,尽量使用已有的代码,修改时做尽可能少的改动。 #include "stdio.h" int main() { int a[4][5]={1,2,0,0,0, 0,1,3,0,0, 0,0,1,4,0, 0,0,0,1,5,}; int b[5][5]={1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0, 0,0,0,0,1}; int c[5][5]={0}; int i,j,k; for(i=0;i<4;i++) for(j=0;j<5;j++) for(k=0;k<5;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; for(i=0;i<4;i++) {for(j=0;j<5;j++) printf("%d",c[i][j]); printf("\n"); } return 0; }
题目描述:
以下为矩阵乘法的一段C代码,请在此代码上按要求修改实现下述功能,提交修改后的代码和运行结果截图:
将a矩阵修改为4行3列的二维数组,元素为自己的12位学号每位数字按顺序存储;
b矩阵为a矩阵的转置;
计算c=a*b;
计算前先输出a矩阵,之后输出b矩阵,c矩阵,对齐方式为每个元素占5字符;
不允许增加新的变量,尽量使用已有的代码,修改时做尽可能少的改动。
代码:
```
#include<stdio.h>
#define N 3
void mul(int a[][N],int b[][N],int c[][N])
{
int i,j,k;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
c[i][j]=0;
for(k=0;k<N;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
void main()
{
int i,j,a[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3]={{1,2,3},{1,2,3},{1,2,3}},c[3][3];
mul(a,b,c);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%5d",b[j][i]);
}
printf("\n");
}
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%5d",c[i][j]);
}
printf("\n");
}
}
```
解题思路:
1.首先根据题目要求,将a矩阵修改为4行3列的二维数组,元素为自己的12位学号每位数字按顺序存储。
2.再根据题目要求,将b矩阵设为a矩阵的转置,这里使用了一个中间变量temp,可以少定义一个变量,又可以充分利用已有的代码。
3.修改c=a*b的计算,使之符合题目要求。
4.输出a、b、c矩阵时需要按照每个元素占5个字符的格式对齐。
代码如下:
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)