2017 年秋:计算机高级语言程序设计(C++)答案:
一、单项选择题
(每题 2 分,共 30 分)
(1) C (2) C (3) B (4) C (5) C
(6) C (7) A (8) C (9) D (10) B
(11) C (12) D (13) C (14) A (15) D
二、程序阅读题
(每题 3 分,共 30 分)
(1) B (2) C (3) A (4) D (5) B
(6) C (7) C (8) A (9)D (10)A
(1)
#include <stdio.h>
#define N 4
#define M 5 /* 数组为 4 行 5 列 */
int main()
{
int i,j,k,a[N][M],max,maxj,flag;
printf("please input matrix:");
for (i=0;i<N;i++) /* 输入数组 */
for (j=0;j<M;j++)
scanf("%d",&a[i][j]);
for (i=0;i<N;i++)
{max=a[i][0]; /* 开始时假设 a[i][0]最大 */
maxj=0; /* 将列号 0 赋给 maxj 保存 */
for (j=0;j<M;j++) /* 找出第 i 行中的最大数 */
if (a[i][j]>max)
{max=a[i][j]; /* 将本行的最大数存放在 max 中 */
maxj=j; /* 将最大数所在的列号存放在 maxj 中 */
}
flag=1; /* 先假设是鞍点,以 flag 为 1 代表 */
for (k=0;k<N;k++)
if (max>a[k][maxj]) /* 将最大数和其同列元素相比 */
{flag=0; /* 如果 max 不是同列最小,表示不是鞍点令 flag1 为 0 */
continue;}
if(flag) /* 如果 flag1 为 1 表示是鞍点 */
{printf("a[%d][%d]=%d",i,maxj,max); /* 输出鞍点的值和所在行列号 */
评论0