c语言答案(7)

2019-08-03 12:39

只需按要求修改矩阵的输出部分,方法如下,其运行结果不变。 for(i = 0; i < n; i++)

for(j = 0; j < i; j++) { temp = a[i][j]; a[i][j] = a[j][i]; a[j][i] = temp; }

若修改为遍历整个程序,方法如下,则运行结果仍将输出原矩阵,无法达到转置要求,原因是矩阵中每个元素相应被交换了2次。 for(i = 0; i < n; i++)

for(j = 0; j < n; j++) { temp = a[i][j]; a[i][j] = a[j][i]; a[j][i] = temp; }

练习7-7 编写程序,读入 1 个正整数 n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵除副

第60/106页

对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。 解答:

#include int main(void) {

int a[6][6],i,j,n,sum; printf(\

printf(\d\sum=0;

for (i=0;i

printf(\

练习7-8 编写程序,输出一张九九乘法口诀表。提示:将乘数、被乘数和乘积放入一个二维数组中,再输出该数组。 解答: #include int main(void) {

int i,j,n,a[10][10]; for( i=0; i<=9; i++ ) for( j=0; j<=9; j++ )

if( i==0) a[i][j]=j; else if( j==0) a[i][j]=i; else a[i][j]=i*j; for( i=0; i<=9; i++ ){ for( j=0; j<=9; j++ ) if( i==0&&j==0 ) printf( \

else if( i==0||j<=i ) printf( \}

return 0; }

练习7-9 编写程序,输入日期(年、月、日),输出它是该年的第几天。要求调用例7-10中定义的函数day_of_year(year, month, day)。

第61/106页

解答:

#include \

int year, month,day, day_year;

int day_of_year(int year, int month, int day); printf(\th,day: \

day_year=day_of_year(year, month, day); printf(\day_year); return 0; }

7.3.2习题参考答案 一.选择题

1.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4}; 则数组x在内存中所占字节数是 D 。 A.3

B.6 C.10 D.20

2.以下能正确定义数组并正确赋初值的语句是。 A.int N=5,b[N][N];

B.int a[1][2]={{1},{3}}; D.int d[3][2]={{1,2},{34}}; C.a [0][3] D.a[1>2][1] D.7个字节

C.int c[2][]={{1,2},{3,4}}; A.a[2][0]

3.若有定义:int a[2][3]; 以下选项中对 a 数组元素正确引用的是。 B.a[2][3] 4.设有数组定义:char array [ ]=\则数组 array所占的空间为。 A.4个字节 B.5个字节 C.6个字节 5.下述对C语言字符数组的描述中错误的是 A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入、输出 C.可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较

6.有以下定义:char x[ ]=\','g'}; 则正确的叙述为。 A.数组x和数组y等价

B.数组x和数组y的长度相同 D.数组x的长度小于数组y的长度 C.数组x的长度大于数组y的长度 7.以下程序的输出结果是。 int main(void) { } A.4 5 6 int main(void) B.2 5 8 C.3 6 9 D.7 8 9

8.以下程序的输出结果是

int m[][3]={1,4,7,2,5,8,3,6,9}; int i, j, k=2; for (i=0;i<3;i++)

printf (\

第62/106页

{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i, s=0;

for(i=0;i<4;i++) s+=aa[i][1]; printf(\B.19 C.13 D.20 } A.11 二.填空题

1.设有定义语句:int a[ ][3]={{0},{1},{2}}; 则数组元素 a[1][2]的值是 2.下列程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。 int main(void ) {

int x[10],a[9],i; for(i=0; i<10; i++) scanf(\; for(i=0; i<9; i+ +)

printf(\3.写出下列程序的运行结果是。 int main(void) { }

4.写出下面程序的运行结果。

#include int main(void)

{ float s[6]={1, 3, 5, 7, 9}; float x; int i; scanf(“%f”, &x);

for (i=4 ; i>=0; i--) if(s[i]>x) s[i+1]=s[i]; else break; printf(\

int a[10]={10,1,-20,-203,-21,2,-2,-2,11,-21}; int j,s=0; for(j=0;j<10;j++) if(a [j]%2==0) s+=a[j];

printf(\

第63/106页

(1) 如果输入4,则输出 2 。 (2) 如果输入5,则输出 3 。 5.下列程序的功能是输出如下形式的方阵,请填空。

13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 int main(void) { int i,j,x; {

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

printf(\

6.以下程序的功能是输入一个字符串,输出其中所出现过的大写英文字母。如运行时输入字符串\,则输出\。请填空。 int main(void)

{ char x[80],y[26]; int i,j,ny=0; gets(x); for(i=0; if(x[i]>='A' { for(j=0;j

for(i=0;i

1.编写程序,输入一个正整数n (1

解答:

#include int main(void) {

int i, index, n, t; int a[10]; printf(\scanf(\

printf(\for(i=0; i

for(i=1; i

a[0]=a[index]; a[index]=t; index=n-1;

for(i=0; i a[index]) index=i; t=a[n-1];

a[n-1]=a[index]; a[index]=t;

printf(\for(i=0; i

return 0;

}

2.编写程序,输入一个正整数n (1 int main(void) {

int i, index, k, n, temp; int a[10];

printf(\scanf(\

printf(\for(i=0; i

for(i=k+1; i

if(a[i]> a[index]) index=i; temp=a[index]; a[index]=a[k]; a[k]=temp;

第65/106页

}

printf(\for(i=0; i

3.编写程序,输入一个正整数 n (1≤n≤6)和n 阶方阵a中的元素,如果a是上三角矩阵,输出“YES”, 否则,输出“NO”。(上三角矩阵,即主对角线以下的元素都为0,主对角线为从矩阵的左上角至右下角的连线) 解答:

#include int main(void) {

int a[6][6],flag,i,j,n; printf(\


c语言答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011华师汉硕语言学基础

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

马上注册会员

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