第四章 数组习题集答案

更新时间:2024-05-30 17:50:01 阅读量: 综合文库 文档下载

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

第四章 数组习题

一、选择题

1. 如果char型变量占两个字节的存储单元,则按照如下方式定义的数组x占用的字节数

是【 】。 char x[50]={2,4,6,8,10};

A) 50 B) 100 C) 10 D) 5 2. 下面关于数组的定义正确的是【 】。 A)

int n=10;

float a[n]={1.0,2.1,3.2}; B)

#define N 10 int a[N]={1,2,3}; C)

int n;

scanf(\ int a[n]; D)

#define N 10; int a[N]={1,2,3};

3. 若有说明 int a[5][4]; 则对其数组元素的正确引用是【 】。 A)a[3+1][2] B)a(2)(3) C)a[0,2] D)a[3][5]

4. 若定义了数组int k[][4]={{1},{1,2,3},{5,6}};则数组共有【 】元素。 A)6 B) 9 C) 10 D) 12

5. 要将20,30,40,50 存入数组b中, 下列正确的程序段是【 】。 A)

int i,b[4];

for(i=0; i<4; i++) b[i]=(i+2)*10; B)

int b[4];

b={20,30,40,50}; C)

int b[4];

b[1]=20,b[2]=30,b[3]=40,b[4]=50; D)

int b[4];

b[4]={20,30,40,50};

6. 下列二维数组初始化语句中正确且与语句float a[]={0,1,2,0,4,0}等价的是【 】。 A) float a[6]={0,1,2,0,4}; B) float a[]={0,1,2,0,4}; C) float a[7]={0,1,2,0,4,0}; D) float a[5]={0,1,2,0,4};

7. printf(\程序段的输出结果是【 】。

A) 11 B) 10 C) 9 D) 8

8. 如果有char s[10]和int i,那么下面能够把输入的字符串存入数组s的选项是【 】。 A) scanf(\ B) gets(s);

C) for(i=0;i<10;i++) scanf(\ D) for(i=1;i<10;i++) getc(s[i]);

9. 若有说明char s1[]=”good”,s2[]=”idea”, 则下列输出语句中正确的是【 】。 A) printf(\ B) printf(\ C) putc(s1);putc(s2); D) puts(s1,s2);

10. 若有定义char str[7]; 要将键盘输入的字符串\赋给str,应使用【 】。

A) gets(str); B) scanf(\C) str=\D) getchar(str); 11. 若有说明 char s1[5],s2[7];,要将字符串存储到s1和s2中,下列语句中正确的是【 】。 A) scanf(\B) gets(s1, s2); C) scanf(\ D) s1=getchar( ); s2=getchar( ); 12. 下面程序段运行后,输出结果是【 】。

main() {

char s[20]=\

printf(\}

A) 4,20 B) 5,20 C) 9,10 D) 10,10 13. 下列一维数组说明中,不正确的是【 】。

A) float a[5+6]; B) int n=10, a[n]; C) #define M 10 int a[M+5] ;

D) float a[10], b[9] ; 14. 定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句输出结果是【 】。

for(i=0;i<3;i++) printf(\

A) 1 4 7 B) 3 5 7 C) 3 6 9 D) 1 5 9 15. 下面程序段的运行结果是【 】。

char c[5]={?a?,?b?,?\\0?,?c?,?\\0?}; printf(“%s”,c) ;

A) ?a? ?b? B) ab C) ab c D) ab 16. 运行下面程序段的输出结果是【 】。

int a[7]={1,3,5} ; printf(\A) 0 B)5 C) 3 D) 不确定数

17. 要将字符串str2连接到字符串str1后,应使用的函数是【 】。 A) strcpy(str1,str2);

B) strcat(str2,str1); C) strcat(str1,str2); D) strcmp(str2,str1);

18. 下列二维数组说明中,正确的是【 】。

A) int n=5; float a[n][5]; B) int a[][9];

C) #define L1 7 #define L2 8 float a[L1][L2];

D) int n, m; scanf (\

19. 若 int data[5][6];且数组的起始地址为100(十进制), 则元素data[3][2]的地址为【 】。

A) 120 B) 113 C) 140 D) 126

20. 若已有定义 char s[10]; int i;下列输入函数调用中错误的是【 】。

A) for (i=0; i<10; ++i) s[i]=getchar( ) ; B) for (i=0; i<10; i++) scanf(\C) scanf(\D) gets(s);

21. 设定义char a[20] ,要想使数组a得到字符串“how are you”应使用【 】

A) printf(\; B) gets(a); C) a=gets(); D) printf(\; 22. 若有说明char s1[]=\则下列输出语句中正确的是【 】。

A) printf(\); B) printf(\; C) puts(s1, s2); D) puts(s1); puts(s2);

23. 若有定义 char s[]=\;则数组的长度自动定义为【 】。

A) 6 B) 5 C) 8 D) 7

24. 在C语言中,引用数组元素时,其数组下标的数据类型允许是【 】。

A)整型常量 B)整型表达式

C)整型常量或整型表达式 D)任何类型的表达式

25. 若有说明int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是【 】。

A) 2 B)3 C)4 D) 无确定值 26. 下面程序段的运行结果是【 】。

char st[5]={?a?,?b?,?\\0?,?c?,?\\0?}; puts(st);

A) ‘a’’b’ B) ab C) ab c D) ab 27. 下面程序段的运行结果是【 】。

int i;

char st[5]={?a?,?b?,?\\0?,?c?,?\\0?}; for(i=0;i<5;i++)

printf(“%c”,st[i]);

A) ‘a’’b’ B) ab C) ab c D) ab 28. 运行下面程序段的输出结果是【 】。

int a[10]={1,3,5} ; printf(\

A) 0 B) 5 C) 3 D) 不确定数

29. 要将字符串str2复制到字符串str1,应使用的函数是【 】。

A) strcpy(str1,str2); B) strcat(str2,str1); C)strcat(str1,str2); D) strcmp(str2,str1); 30. 若已定义

char s1[]=\s2[]=\

假设已经执行预编译命令

#include

则函数strcmp(s1,s2) 的值是【 】。

A) 0 B) -5 C) 5 D) 13

31. 若已经包含头文件,且已有定义:

char s[]={?a?,?\\0?,?c?,?o?,?d?,?e?,?\\0?}; int i;

若要输出 “a code”,应使用【 】。 A) puts(s); B) for(i=0;i<6;i++) printf(\C) printf(\ D) for(i=0;i<6;i++) putchar(s[i]); 32. 有下列程序段,运行时会【 】。

char a[3],b[]=\a=b;

printf(“%s”,a);

A) 运行后将输出tianjin B) 运行后将输出ti C) 运行后将输出tian D) 编译出错

若已有定义char s[6]=\下列错误的是【 】。 A) for (i=0; i<6; i++) putchar(s[i]); B) for (i=0; i<6; i++) put(s[i]) ; C) printf(\ D) puts(s);

若有说明 double b[7][6]; 对元素的非法引用是【 】。

A) b[3][5] B)b[7][5] C) b[2*3][4] D) b[0][9-6] 若已包含标题文件,并已有定义 char s1[5],s2[]=\;int i;现要将字符串”abcd”赋给s1,下述语句中错误的是【 】。 A) strcpy(s1,\B) s1=”abcd”;

C) for(i=0;i<5;i++) s1[i]=s2[i];

D) s[0]=?a?,s[1]=?b?,s[2]=?c?,s[3]=?d?;s[4]=?\\0?; 运行下面程序段的输出结果是【 】。

33.

34. 35.

36.

char s1[6]={'d','o','\\0','i','t ','\\0'}; printf (\

A) 5 B) 2 C) 6 D) 7 37. 定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句输出结果是【 】

for(i=0;i<3;i++) printf(\

A) 1 4 7 B) 3 5 7 C) 3 6 9 D) 1 5 9

38. 若有一维数组初始化语句int b[5]={1,2,3,4,5};且数组的起始地址为8050H(H表示十六

进制),则8058H是数组元素【 】的起始地址(假设一个int型变量在内存占2个字节存储空间)。

A) b[1] B) b[4] C) b[0] D) b[2]

39. 设 char str[4][5]; 所说明的数组在存储区的起始地址为50(十进制), 则数组元素

str[3][3]在存储区中的地址为【 】。 A) 62 B) 86 C) 63 D) 68 40. 下面程序段运行后,输出结果是【 】。 int i, j, x=0; int a[6]={1,2,3};

for (i=0,j=1; i<3 && j<4; ++i, j++ ) x+=a[i]+a[j]; printf(\

A) 8 B) 11 C) 10 D) 不确定值 41. 下列程序运行后,输出值为【 】。

main() {

int a[6]={1,3,5,7,9},b[]={2,4,6,7,3},c,d; c=a[1]*b[2]; d=a[5]/b[4];

printf(\) ; } A) 4,3 B) 4,0 C) 18,0 D) 18,不确定值 42. 下面的程序用来求方阵的主对角线元素之和,请将程序填完整。

#include main() {

int i=0,x=0;

int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0}; while (i<4) {

x+= 【 】; i++; }

printf(\ }

A) a[3-i][3-j] B) a[i][3-i] C) a[i][i] D) a[3-i][4] 43. 下面的程序用来求方阵的次对角线元素之和,请将程序填完整。

#include main( ) {

int i=0,x=0;

int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0}; while (i<4) {

x+=【 】;

i++; }

printf(\ }

A) a[3-i][3-j] B) a[i][3-i] C) a[i][i] D) a[3-i][4] 44.

运行下面的程序段,输出结果是【 】。

int i=0;

char s1[10]=\strcat(s1,s2); while (s1[i]!='\\0') {i++;s2[i]=s1[i];} puts(s2); A) abcefg B) efgabc C) ebcefg 45.

下面程序的运行结果是【 】。

main( ) {

int i, j=20, a[]={3, 5, 8, 9, 10}; for(i=1;i<3;++i) j-=a[i];

printf(\A) 20 B) 15 C) 7 D) 8 46.

下面程序运行后,输出结果是【 】。

#include main( ) {

char s[]=\ int i;

for (i=0; i<5; i++ ) if (s[i]

A) 2 B) 1 C) 3 D) 5 47.

下面程序运行后,输出结果是【 】。

#include main( ) {

char s[]=\ int j=3;

s[j]=s[5]; printf(\}

A) abcde B) abcd C) eabcd D) abc 48.

下面的程序运行后, 输出结果是【 】。

main( )

D) afgabc 49.

50.

51.

52.

53.

{

int i, j, a[5][5], x=0; for (i=0; i<3; i++)

for (j=0;j<3; j++) a[i][j]=i+j; for (i=0; i<5; i++) x+=a[i][i]; printf(\}

A) 4 B) 6 C) 0 D) 不确定值 运行下面的程序段,输出结果是【 】。

int i;

char s[][5]={\ for (i=0; i<3; i++) printf(\ A) 123456 B) 456789abc C) 47a D) 456789 设已包含标题文件,下面程序段的输出结果是【 】。

char s1[20]=\strcpy(s1,s2);

printf(\

A) 5 B) 4 C) 1 D) 2 下面程序的结果是【 】。

main( ) {

int i=1,x=0;

char a[][4]={\ while (i<4) {

x+=a[i][i]; i++; }

printf(\ }

A) 155 B) 13 C) 158 D) 159 运行下面程序段的输出结果是【 】。

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

A) 11 B) 10 C) 21 D) 不确知数 下面的程序运行后输出结果是【 】。

main( ) {

int i, s=90, a[]={3, 5, 7, 9, 11};

for (i=1;i<5;i+=2) s-=a[i]; printf(\}

A) 74 B) 76 C) 72 D) 68

54. 运行下面的程序段,输出结果是【 】。

int i;

char s1[10]=\strcat(s1,s2); i=1;

while (s1[i-1]!='\\0') { s2[i]=s1[i]; i++; }

puts(s2);

A) abcefg B) efgabc C) ebcefg D) afgabc 55. 下面程序段运行后,输出结果是【 】。

int i, j, x=0; int a[6]={1,2,3};

for (i=1,j=1; i<3 && j<4; ++i, j++ ) x+=a[i]+a[j]; printf(\

A) 8 B) 10 C) 11 D) 不确定值 56. 下面的程序段运行后,输出结果是【 】。

int i, j, x=0;

int a[7][7]={0}; for (i=0; i<3; i++) for (j=0;j<3; j++) a[i][j]=i+j; for (i=0; i<7; i++) if (i==j) x+=a[i][j]; printf(\

A) 6 B) 16 C) 0 D) 不确定值 57. 运行下面程序段的输出结果是【 】。

#include main( ) {

int i=0,j=0,x=0;

int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0}; while(i<4 && j<4) {

x+= a[3-i][j];

58.

59.

60.

61.

i++; j++; }

printf(\ x); }

A) 18 B) 9 C) 20 D) 19 运行下面的程序段,输出结果是【 】。

int i;

char s[][5]={\ for (i=0; i++<3;) printf(\A) 123456789 B) 456789abc C) 47a D) 456789 下面的程序用来输出两个字符串中对应相等的字符, 请将程序填完整。

#include main( ) {

char s1[]=\ int i;

for (i=0; s1[i]!='\\0' && s2[i]!='\\0'; i++) if(s1[i]==s2[i]) 【 】 ; }

A) printf(\B) printf(\C) putchar(\D) puts(s2[i]) 下面的程序段运行后, 输出结果是 【 】

int i, j, x=0;

int a[7][7]={0}; for (i=0; i<3; i++) for (j=0;j<3;j++) a[i][j]=2*(j+1)-1; for (i=0; i<7; i++) for (j=0; j<7; j++) if (i==j) x+=a[i][j]; printf(\

A) 0 B) 16 C) 9 D) 不确定值 下列程序的输出结果是 【 】

#include\main() {

char s[]=\ int i,j=0;

for(i=1;i<6;i++) if(s[j]>s[i]) j=i; s[j]=s[6];

printf(\}

A) frther B) father C) f D) fath

62. 下面的程序用来求二维数组的最大元素及其位置,请选择合适答案填空。

#include main() {

int a[5][4],i,j,max,row,col; for(i=0;i<5;i++) for(j=0;j<4;j++)

scanf(\ max=a[0][0]; row=0; col=0; for【 】

for(j=0;j<4;j++) if(max

max=a[i][j]; row=i; col=j; }

printf(\}

A) i=4;i>0;--i B) i=0;i<5;i++ C) i=-1;i<4;++i D) i=5;i>0;--i 63. 下面程序的运行结果是【 】。

main() {

int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2;

for(i=0;i

#include main() {

char s[10]=\

int i,j; i=0;

j=strlen(s)-1; while(i

t=s[i]; s[i]=s[j]; s[j]=t; i++; j--; }

printf(\}

A) abcdef B) fedcba C) ABCDEF D) FEDCBA 65. 下面程序的运行结果是【 】。

main( ) {

char

a[ ][6]={\ int i;

for(i=0;i<3;i++) printf(\ printf(\}

A) ABCDEFGHIJKL B) AEI C) ABCDEFGH D) ABCD 66. 下面程序的运行结果是【 】。

main( ) {

int a[ ]={2,4,6,8,10}; int y=1,x;

for(x=0;x<3;x++) y+=a[x+1]; printf(\}

A) 19 B) 17 C) 20 D) 18

67. 下面的程序段运行后, 输出结果是 【 】。

int i, j, x=0;

int a[7][7]={0}; for (i=0; i<3; i++)

for (j=0;j<3;j++) a[i][j]=2*(j+1)-1; for (i=0; i<7; i++) x+=a[i][j]; printf(\

A) 9 B) 16 C) 0 D) 不确定值

68. 下列程序的输出结果是 【 】。

#include\main() {

char s[]=\ int i,j=0;

for(i=1;i<6;i++) if(s[j]

printf(\}

A) frther B) father C) fa 69. 下面程序运行后,输出结果是【 】。

#include main( ) {

char s[]=\ int i;

for (i=0; i<5; i++ ) if (s[i]>?a?) c++; printf(\); }

A) 4 B) 1 C) 3 D) 5

70. 下面的程序运行后, 输出结果是(【 】)。 main( ) {

int i, j,x=0; int a[5][5]={0}; for (i=0; i<5; i++)

for (j=0;j<5; j++) a[i][j]=i+j; for (i=0; i<5; i++) x+=a[i][0]; printf(\}

A) 4 B) 10 C) 20 D) 不确定值 71. 运行下面的程序段,输出结果是(【 】)。

D) fath

char s1[10]=\strcat(strcpy(s2,s3),s1); puts(s2); A) hiabcd B) higabcd C) abcdhi 72. 运行下面程序段的输出结果是【 】。

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

D) abcdhig

73.

74.

75.

76.

77.

78.

printf(\A) 11 B) 10 C) 21 D) 不确知数 下面的程序运行后输出结果是【 】。

main( ) {

int i, s=90, a[]={3, 5, 8, 9, 10}; for (i=0;i<5;i++) if(i%2) s-=a[i]; printf(\}

A) 74 B) 76 C) 72 D) 68

已知字符”t”的ASCII码为116,运行下面程序段的输出结果是【 】。

char s1[6]=”cut”,s2[6]=”cup”; printf (\

A) 116 B) -116 C) 4 D) -4 运行下面的程序段,输出结果是【 】。

int i;

char s[][5]={\ int sum=0;

for (i=0; i<3;i++) sum=sum*10+s[i][i]-'0' ; printf(\

A) 159 B) 456 C) 123 D) 789 判断字符串s1是否小于字符串s2, 应该使用【 】。 A) if (strcmp(s1,s2) >0) B) if (s1

C) if (strcmp(s2,s1) ) D) if (strcmp(s2,s1) >0)

下面字符数组初始化语句正确且与语句char c[]=\等价的是【 】。 A) char c[]={'s','t','r’,'i’,'n','g'};

B) char c[]={'s','t','r’,'i’,'n','g',’\\0’}; C) char c[]={'string'}; D) char c[]='string';

下面程序求Fibonacci数列1,1,2,3,5,8,13??的前40个数(数列的前两项数均是1,从第三项开始的一个数都是它的前两项数之和)。请选择最合适答案填空。

main() {

long int fib[40]={1,1}; int i;

for(i=2;i<40;i++)

fib[i]= fib[i-2]+【 】; for(i=0;i<39;i+=2)

printf(\ ld\\n \}

A) fib[i-1] B) fib[i-2] C) fib[i] D) fib[i+1]

79. 下面程序的功能是求一维数组中的最大值。请选择最合适答案填空。

#include #define N 10 main() {

int a[N] = {66, 88, 94, 65, 98, 72, 76, 93, 79, 86}; int i,max; max=a[0];

for(i=1;i max=【 】;

printf(\}

A) a[i-1] B) a[i] C) a[i+1] D) i

80. 有一个已排好序的数组a,今输入一个数x,要求按原来的顺序规律,将它插入到数组

a中。算法是:假设a中数据排列顺序为从小到大,对输入的数x,检查它在数组中哪一个数之前,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请从给定的答案中选择一个正确的答案填入程序中对应空白处。

#include #define N 100 main() {

float a[N+1],x; int i,p;

for(i=0;i

scanf(\ scanf(\

for(i=0,p=N;i

if(x

for(i=N-1; i>=p;i--) a[i+1]=a[i]; a[p]=x;

for(i=0;i<=N;i++) {

printf(\ if(i%5==0) printf(\ } }

A) p=i+1 B) p=i C) P=a[i] D) p=N

二、读程序写结果

1.阅读下面程序,给出输出结果。

#include

#include void main() {

int i=0;

char s1[20]= \ strcat(s1,s2); while(s1[i]!='\\0') {

if((s1[i]>='a')&&(s1[i]<='z')) s1[i]=s1[i]-32; i++; }

puts(s1); puts(s2); }

2. 阅读下面程序,给出输出结果。

#include #include void main( ) {

char s1[20]=\ strcpy(s1,s2);

printf(\}

3.阅读下面程序,给出输出结果。

#include # include void main() {

char w[ ][10]={ \ for(k=1;k<3;k++)

printf(“%s\\n”,&w[k][k]); }

4. 阅读下面程序,给出输出结果。

#define N 10

#include void main() {

int a[N]={5,8,7,3,4,2,6,1,0,9},i,t,j,k; for(i=0;i

k=i;

for(j=i+1;j

if(i!=k)

{ t=a[i];a[i]=a[k];a[k]=t;} }

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

printf(\ \}

5. 阅读下面程序,给出输出结果。 #include void main() {

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

printf(\}

6.阅读下面程序,给出输出结果。

#include void main() {

char s1[]=\ int i;

for (i=0;s1[i]!='\\0?&&s2[i]!='\\0?; i++) if(s1[i]<=s2[i])

printf(\}

7.阅读下面程序,给出输出结果。

#include void main() {

int a[3][3]={1,2,3,4,5,6,10,8,9},i,s1=0,s2=0; for(i=0;i<3;i++) {

s1+=a[i][i]; s2+=a[i][2-i]; }

printf(“s1=%d,s2=%d\\n”,s1,s2); }

8.阅读下面程序,给出输出结果。

#include #include void main() { char s[20]=\ printf(\

}

9.阅读下面程序,给出输出结果。

#include void main() { int a[5][5]= {{11,12,13,14,15}, {21,22,23,24,25}, {31,32,33,34,35}, {41,42,43,44,45}, {51,52,53,54,55}}; int i; int s1,s2; s1=s2=0; for(i=0;i<5;i++) { s1+=a[0][i]; s2+=a[i][0]; } printf(\}

10. 阅读下面程序,给出输出结果。

#include void main() {

int i, j, x=0;

int a[7][7]={0}; for (i=0; i<3; i++ )

for (j=0;j<3; j++) a[i][j]=2*(j+1)-1; for (i=0; i<7; i++) if (i==j) x+=a[i][j];

printf(\}

11.运行下面程序,从键盘输入以下数据:1、6、9、12、1、4。给出输出结果。

#include void main() {

int a[3][2],i,j,max,row,col; for(i=0;i<3;i++) for(j=0;j<2;j++)

scanf(\ max=a[0][0]; row=0; col=0;

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

max=a[i][j]; row=i; col=j; }

printf(\}

12. 阅读下面程序,给出输出结果。

#include void main() {

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

printf(\ \}

13. 阅读下面程序,给出输出结果。

#include void main() {

int i,a[8]={1,1}; for(i=0;i<8;i++) {

if(i>=2)

a[i]=a[i-1]+a[i-2]; if(i%2)

printf(\ \ }

printf(\}

三、填空题

1. 下面程序的功能是打印杨辉三角形的前10行,请将程序填写完整。

#include void main( ) {

int c[10][10],i,j; for(i=0;i<10;i++) {

c[i][0]=1;

【1】 }

for(i=2;i<10;i++) for(j=1;j

(for(j=0;【3】;j++)

printf(\ printf(\ }

printf(\}

2. 下列程序将一个二维数组a的行和列的元素互换,存放到数组b中,并将数组b输出。

例如, 1 2 3 4 5 6

则a的行列互换后得到a的转置b为: 1 4 2 5 3 6

请将程序填写完整。 #include void main() {

int i,j;

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

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

printf(\ }

3. 将数组a中小于平均值的元素显示出来,请将程序填完整。

#define N 5 void main() {

int i,a[N];float s=【1】,aver; for(i=0;i

scanf(\ for(i=0;i

aver=s/N;

for(i=0;i

printf(\ \}

4. 下面程序判断字符串是否是回文。所谓回文是指如果字符串正读和反读都一样。请将程

序填完整。

#include #include void main() {

char s[100]; int i,n;

printf(\输入字符串:\\n\ gets(s); n=【1】;

for(i=0;i

if(s[i]!= 【2】) break; if(【3】) printf(\是回文!\\n\ else printf(\不是回文!\\n\}

5. 下面程序应用折半查找法从存有10个整数的升序数组a中对关键字m进行查找,如

果找到则输出“OK”,否则输出“NO”,请填空。

#include void main( ) {

int a[10],m,low=0,high=9,mid; for(i=1;i<10;i++)

scanf(\ scanf(\ while (low<=high) {

mid=(low+high)/2;

if( ma[mid] ) low=【2】; else break; }

if (【3】) printf(\ else printf(\}

四、编程题

1.下面程序实现将输入的无序字符串按照26个字母的顺序重新排序并输出。用选择法实

现对字符串的排序,请将程序补充完整。

#include #include

main() {

int n,i,j,k; char t; char s[80]; gets(s); n=strlen(s);

for(i=0;i

}

puts(s); }

2. 下列的程序用来求数组a各元素的平均值,请将程序补充完整。

#include main() {

int i, a[10]={3,6,2,8,12,4,7,23,6,16}; float avger=0.0;

printf(\}

3. 判断字符串是否是回文。所谓回文是指字符串正读和反读都一样,请将程序补充完整。

#include #include main() {

char s[81]; int i,j,n; gets(s); n=strlen(s); i=0; j= n-1;

if(i

第4章

一、选择题

1. A 2. B 3. A 4. D 5. A 6. A 7. C 8. B 9. A 11. C 12. A 13. B 14. B 15. B 16. A 17. C 18. C 19. C 21. B 22. D 23. A 24. C 25. B 26. B 27. C 28. A 29. A 31. D 32. D 33. B 34. B 35. B 36. B 37. A 38. B 39. D 41. C 42. C 43. B 44. C 45. C 46. A 47. D 48. D 49. A 51. A 52. C 53. B 54. C 55. B 56. C 57. A 58. B 59. B 61. C 62. B 63. D 64. B 65. A 66. A 67. C 68. C 69. A 71. A 72. C

73. B 74. C 75. A 76. D

77. B

78.

A

79.

B

二、读程序写结果

1. TCPROGRAM program 2. 2,24 3. fgh kl

4. 0 1 2 3 5. 1,3 6. a,e e,k

7. s1=15,s2=18 8. 8,20,g,abcdefgh 9. s1=65,s2=155 10. 0135

11. max=12,row=1,col=1,1 12. 5 4 3 2 13. 1 3 8 21

三.填空题

1. 【1】c[i][i]=1; 【2】c[i][j]= c[i-1][j-1]+ c[i-1][j]; 【3】j<=i 2. 【1】int b[3][2]; 【2】b[i][j]= a[j][i]; 【3】j=0;j<2;j++ 3. 【1】0.0 【2】a[i] 【3】a[i]

10. A 20. B 30. C 40. B 50. D 60. C 70. B 80. B

4. 【1】strlen(s) 5. 【1】mid-1 【2】s[n-1-i] 【2】mid+1

【3】i>=n/2 【3】m==a[mid]

四.编程题

1.

for(j=i+1;j

{ t=s[i];s[i]=s[k];s[k]=t;}

2.

for(i=0;i<10;i++) avger+= a[i] ; avger/=10;

3.

while(i

if(s[i]!=s[j]) break; else { i++;j--; } }

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

Top