第四章习题

更新时间:2023-10-17 21:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、填空题

1. 若有定义int a[3][5];则排列在数组中的第9个元素是( )。 2. strlen(\的值是( )。 3. C语言中字符串结束的标志是( )。

4. 写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定义语句是( )。

5. strcmp(\的值是( )。

二、选择题

1. 若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是( ) A.1 B.2 C.3 D.4 2. 对数组的描述正确的是( )。

A.数组一旦定义其大小是固定的,但数组元素的类型可以不同。 B.数组一旦定义其大小是固定的,但数组元素的类型必须相同。 C.数组一旦定义其大小是可变的,但数组元素的类型可以不同。 D.数组一旦定义其大小是可变的,但数组元素的类型必须相同。 3. 对字符串\进行完整赋值的操作是( )。 A.char s[3] = {'B','o','y'}; B. char s[] = \ C.char s[3] = {\ D.char s[3]; s=\

4. 在c语言中引用数组元素时,其数组下标的数据类型允许是( )。 A.整型常量 B.整型表达式

C.整型常量或整型表达式 D.任何类型的表达式 5. 对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};

A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

三、阅读程序,写出运行结果 1. main()

{int a[3][3] = {{1,0,2}, {2,2},{0,2}}, c[3][3],i,j; for(i=0; i<3; i++) {

for(j=0; j<3; j++) {

c[i][j] = a[a[i][j]][a[j][i]]; printf(\} }

printf(\}

2.当运行以下程序时,从键盘输入:Ah2MA A3ha,请写出输出结果。 main()

{ char s[80], c='a'; int i=0;

scanf(\ while(s[i++]!='\\0')

if(s[i] == c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32; puts(s); }

3. main()

{ int a[5]={1,2,3,4,5}; int *p=&a[1]; printf(\ }

4. main()

{ char a[]=\ char *p=a; p=p+2;

printf(\ }

5. main()

{ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*pa)[4]=a; pa++;

printf(\}

6.main()

{ char *str[]={\ int i;

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

printf(\ }

四、编程题

1. 用数组方法定义一个矩阵,求其转置矩阵。

2. 从键盘输入9个不同的整数,组成三行三列的二元数组,找出每一列中的最大元素,并

输出其行、列下标。

3.利用一个二维数组,打印出以下杨辉三角形,要求打印出10行。

1 1 1 1 1 1 ∶ ∶

1 2 3 4 5

1

3 1

6 4 1

10 10 5 1

4. 矩阵A是一个3×3的矩阵,B是一个3×2的矩阵,编程求C=A?B。 5. 不用现有的函数求计算字符串长度的程序。 6. 从键盘上输入一串字符,将其逆向显示。

7. 找出一个二位数组中的鞍点的位置,即该位置上的元素在该行上最大,在该列上最小。

如果有,输出其所在的行、列号,如果没有,则输出提示信息。

参考答案

一、填空题

1. a[1][3] 2 12 3 '\\0' 4 float s[6]={0}; 5 32 或>0

二、选择题

1 D 2 B 3 B 4 C 5 B

三、写结果

1 运行结果为: 2 2 0 0 0 2 2 0 1 2 运行结果为:AH2Ma 3 运行结果为:4

4 运行结果为:love China! 5 运行结果为:11 6 运行结果为:zqsl

四、编程题

1.提示:已知a[3][2],转置后的结果存放在b[2][3]; 则b[j][i]=a[i][j];

2.提示:已知a[3][3],max,row,col分别用来存放一列的最大值,行下标和列下标。

3.提示:定义一个10行10列的二维数组,并且通过两重循环对第1列所有元素赋值1,主对角线也赋值。根据a[i][j]=a[i-1][j]+a[i-1][j-1]求出其它元素的值。

4.提示:

定义一个3X2的数组c[3][2],该数组的元素值由A数组的一行元素分别与B的一列元素相乘得到。譬如:c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]。

5.提示:通过循环从前到后计算字符个数,遇到字符串结束标志'\\0'结束。

6.提示:首先计算字符串的长度,在从右边逐一显示字符,直到下标等于0为止。

7.提示:先找出行的最大元素,根据列下标找出列的最大元素。

本文来源:https://www.bwwdw.com/article/g4tf.html

Top