C语言 数组和指针练习题

2018-12-06 18:25

若当堂没做完,下周四之前上交也可。 至ftp://211.64.82.253/ 用户名和密码:stu

C语言程序设计练习题——数组 一、选择题

77、以下对一维数组a的正确说明是_d ___ A、char a(10); B、int a[ ];

C、int k=5,a[k]; D、char a[ ]={'a' , 'b' , 'c'};

78、若有说明语句:int a[2][4];,则对a数组元素的正确引用是_a___ A、a[0][3] B、a[0][4] C、a[2][2] D、a[2][2+1] 79、以下能对二维数组y进行初始化的语句是_b__ A、static int y[2][ ]={{1,0,1}, {5,2,3}}; B、static int y[ ][3]={{1,2,3}, {4,5,6}}; C、static int y[2][4]={{1,2,3}, {4,5} , {6}}; D、static int y[ ][3]={{1,0,1,0}, { }, {1,1}};

80、若有说明语句:int y[ ][4]={0,0}; 则下面叙述不正确的是_d___ A、数组y的每个元素都可得初值0 B、二维数组y的行数为1

C、该说明等价于int y[ ][4]={0};

D、只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0 81、以下各组选项中,均能正确定义二维实型数组s的选项是_c___ A、float s[3][4]; B、float s(3,4);

float s[ ][4]; float s[ ][ ]={{0};{0}}; float s[3][ ]={{1},{0}}; float s[3][4]; C、 float s[3][4]; D、float s[3][4]; static float s[ ][4]={{0},{0}}; float s[3][ ]; auto float s[ ][4]={{0},{0},{0}}; float s[ ][4];

82、若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8}; ,则a数组的行数为__a__ A、3 B、2 C、无确定值 D、1

83、若二维数组y有m列,则在y[i][j]前的元素个数为_B___

A、j*m+i B、i*m+j C、i*m+j-1 D、i*m+j+1

84、下面程序中有错误的行是__D__

1、 main( ) 2、 {

3、 int x[3]={1}; 4、 int k;

5、 scanf(\; 6、 for (k=1; k<3; k++) 7、 x[0]=x[0]+x[i];

8、 printf(\; 9、 }

A、3 B、6 C、7 D、5

85、若有以下语句,则正确的描述是__b__

char x[ ]=\;

char y[ ]={'1', '2', '3', '4', '5'}; A、x数组与y数组的长度相同 B、x数组长度大于y数组长度 C、x数组长度小于y数组长度

D、x数组等价于y数组

86、以下不正确的数组定义语句是__b__

A、double x[5]={2.0, 4.0, 6.0, 8.0, 10.0}; B、int y[5]={0, 1, 3, 5, 7, 9};

C、char ch1[ ]={'1', '2', '3', '4', '5'}; D、char ch2[ ]={'\\x10', '\\xa', '\\x8'}; 87、以下正确的数组定义语句是_c___

A、char a[5]={'1', '2', '3', '4', '5', '\\0'}; B、int b[2][ ]={{1}, {2}};

C、float c[ ][3]={1, 2, 3, 4, 5}; D、char d[5]=\;

88、判断字符串str1是否大于字符串str2,应当使用__d__

A、if (str1>str2) B、if (strcmp(str1, str2)) C、if (strcmp(str2, str1)>0) D、if (strcmp(str1, str2)>0) 89、下面程序段的运行结果是_c___

char x[5]={'a', 'b', '\\0', 'c', '\\0'}; printf(\;

A、'a''b' B、ab C、ab└┘c D、abc

90、有两个字符数组a,b,则以下能正确为a,b进行赋值的语句是_d___

A、gets(a, b); B、scanf(\;

C、getchar(a); getchar(b); D、gets(a); gets(b);

91、有字符数组s1[80]和s2[80],则以下能正确对s1, s2进行输出的语句是___b_

A、puts(s1, s2) B、printf(\; C、putchar(s1, s2); D、puts(s1), puts(s2); 92、以下程序段的运行结果是_c___

char a[7]=\; char b[4]=\; strcpy(a, b);

printf(\;

A、└┘ B、\\0 C、e D、f 93、以下描述正确的是_d___

A、两个字符串所包含的字符个数相同时,才能比较字符串 B、字符个数多的字符串比字符个数少的字符串大 C、字符串\└┘\与\相等 D、字符串\小于字符串\

94、以下对字符数组的描述中错误的是_c___

A、字符数组中可以存放字符串

B、字符数组中的字符串可以整体输入、输出

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

95、若有语句:char s1[10], s2[10]={\,则能将字符串books赋给数组s1的正确语句是_b___

A、s1={\; B、strcpy(s1, s2); C、s1=s2; D、strcpy(s2, s1); 96、以下printf语句的输出结果是__A__ printf(\;

A、7 B、6 C、存在语法错误 D、不定值

97、下面程序的功能是将字符串s中所有的字符c删除。请选择填空。____

#include main( )

{ char s[80]; int i, j; gets(s);

for (i=j=0; s[i]!='\\0'; i++) if (s[i]!='c') _a___ s[j]='\\0'; puts(s); }

A、s[j++]=s[i] B、s[++j]=s[i] C、s[j]=s[i]; D、s[j]=s[i]; 98、当运行以下程序时候,从键盘输入:

ab<回车> c<回车> def<回车>

则下面程序的运行结果是_d_ #include ``` #define N 6 main( )

{ char ch1[N]; int k=0;

for ( ; k

A、B、 a Cb Dab abcdef 、 、 b c c c d d d e f

99、下面程序的运行结果是_b___ #include #include main( )

{ char x[80]=\; (98题答案:) int n=0;

strcat(x, y);

while (x[n++]!='\\0') y[n]=x[n]; puts(y); }

A、LB B、ABLMNP C、AB D、LBLMNP

二、填空题

50、在C语言中,二维数组元素在内存中的存放顺序是_按行储存_______。

51、若有定义:double x[3][5];,则x数组中行下标的下限为_2___,列下标的上限为__4__。

52、若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为_i*m+j+1_______。(设a[0][0]是数组的第一个元素)

53、若有定义:int a[3][4]={{1, 2}, {0}, {4, 6, 8, 10}};, 则初始化后,a[1][2]得到的初值是__0__,a[2][1]得到的初值是__6__。

54、若有说明:char s[20];,如果想从键盘上把字符串:This is a book. 输入到数组s中,应当调用的函数是_gets()_____,函数调用语句的形式是__gets(s)_____。

55、请写出下面各printf语句的结果。

①、printf(\; __schoolstudent__________ ②、printf(\; __6__

③、printf(\; __0__

56、根据下面说明和要求,完成对应的填空。

①、若有:char str1[10],str2[ ]={\; 能把str2中的字符串赋给str1的串函数调用语句是____strncpy(str1,str2)___________ ②、若有:char str1[20]={\

{\; 能把str2中的字符串接到str1中的字符串后面的串函数调用语句是_strncat__

57、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。 main( )

{ int a[2][3]={{1, 2, 3}, {4, 5, 6}}; int b[3][2], i, j; printf(\; for (i=0; i<=1; i++)

{ for (j=0; _j<=2___; j++) { printf(\;

__b[j][i]=a[i][j]__________; }

printf(\; }

printf(\;

for (i=0; _i<=2___; i++) { for (j=0; j<=1; j++) printf(\; printf(\; }

}

58、下面程序可求出矩阵a的两条对角线上的元素之和。请填空。 main( )

{ static int a[3][3]={1, 3, 6, 7, 9, 11, 14, 15, 17};

int sum1=0, sum2=0, i, j; for (i=0; i<3; i++) for (j=0; j<3; j++) if (i= =j)

sum1+=a[i][j]; for (i=0; i<3; i++)

for (_j=3___; _j>=0___; j--) if (i+j= =2)

sum2+=a[i][j];

printf(\;

}

59、下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b。请填空。例如:

a?4152

main( )

{ static int a[2][3]={4, 5, 6, 1, 2, 3};

int b[2][3], i, j; printf(\; for (i=0; i<=1; i++) { for (j=0; j<3; j++)

{ printf(\;

If(j<=1)b[i][j+1]=a[i][j]____________; }

printf(\; }

for (i=0____; i<=2____; i++) b[i][0]=a[i][2]; printf(\;

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

printf(\;

_if(j=3)printf(“\\n”)_______; } }

60、下面程序的功能是检查一个二维数组是否对称(即对所有的a[i][j]=a[j][i])。请填空。

main( )

{ static int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; int i, j, found=0; for (j=0; j<4; j++)

for (i=0____; i<4; i++) if (a[i][j]!=a[j][i]) { found=1______; break; } if (found)

printf(\; else

printf(\; }

61、下面程序段将输出computer,请填空。 char c[ ]=\;

for (i=0; c[i]!=’\\0’______; i++) { if(i<=8)continue______; printf(\; }

66b?3 34512


C语言 数组和指针练习题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版小学四年级体育下册全册教案

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

马上注册会员

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