C语言程序设计习题集(按目录2)--打印 联系客服

发布时间 : 星期二 文章C语言程序设计习题集(按目录2)--打印更新完毕开始阅读b93325badaef5ef7ba0d3cec

数组

一 单项选择题(每题2分,共40分)

1 以下对一维整型数组a的正确定义(说明)的是___。

A int a(10); B)int n=10,a[n]; C int n; D #define SIZE 10

scanf(\%d\,&n); int a[SIZE]; int a[n];

2 若有定义(说明)int a[10];,则对数组a的元素正确引用的是___。 A a[10] B a[3.5] C a(5) D a[10-10] 3 执行下面程序段后,变量k 的值是___。

int k=3,s[2];

s[0]=k; k=s[1]*10;

A 不定值 B 33 C 30 D 10 4 以下程序的输出结果是___。

main()

{ int i,k,a[10],p[3]; k=5;

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

for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf(\%d\\n\,k); }

A 20 B 21 C 22 D 23 5 以下对一维整型数组a初始化的语句中正确的是___。 A int a[10]=(0,0,0,0,0); B int a[10]=(); C int x=2,a[10]={10*x}; D int a[10]={0}; 6 若有以下说明,则数值为4的表达式是___。

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;

A a[g-c] B a[4] C a['d'-'c'] D a[7 下列程序运行后的输出结果是___。

#define MAX 10 void main()

{ int i,sum,a[]={1,2,3,4,5,6,7,8,9,10}; sum=1;

for(i=0;i

A sum=55 B sum=-54 C sum=-55 D sum=54 8 以下程序的输出结果是___。

main()

{ int y=18,i=0,j,a[8];

do{ a[i]=y%2; i++; y=y/2; }while(y>=1); for(j=i-1;j>0;j--) printf(\%d\,a[j]); }

A 1000 B 1001 C 1010 D 1100

16

'd'-c]

9 以下对二维数组a的正确定义(说明)的是___。

A int a[3][]; B float a(3,4); Cdouble a[1][4]; D float a(3)(4); 10 若有定义(说明)int a[3][4];,则对数组a的元素的引用非法的是___。

A a[2][2*1] B a[1][3] C a[4-2][0] D a[0][4] 11 以下不能对二维数组a进行正确初始化的语句是___。

A int a[2][3]={0}; B int a[][3]={{1,2},{0}}; C int a[2][3]={{1,2},{3,4},{5,6}}; D int a[][3]={1,2,3,4,5,6}; 12 下列数组定义语句中,正确的是___。

A char a[][]={'a','b','c','d','e','f'}; B char a[2][3]='a','b';

C char a[][3]={'a','b','c','d','e','f'}; D char a[][]={{'a','b','c','d','e','f'}}; 13 下列程序运行后的输出结果是___。

main()

{ int a[4][4],i,j,k; for(i=0;i<4;i++)

for(j=0;j<4;j++) a[i][j]=i-j; for(i=1;i<4;i++) for(j=i+1;j<4;j++)

{ k=a[i][j]; a[i][j]=a[j][i]; a[j][i]=k; } for(i=0;i<4;i++) { printf(\\\n\);

for(j=0;j<4;j++) printf(\M\,a[i][j]); } }

A 0 -1 -2 -3 B 0 1 2 3

1 0 -1 -2 -1 0 1 2 2 1 0 -1 -2 -1 0 1 3 2 1 0 -3 -2 -1 0 C 0 -1 -2 -3 D 0 1 2 3

1 0 1 2 -1 0 -1 -2 2 -1 0 1 -2 1 0 -2 3 -2 -1 0 -3 2 1 0

14 以下程序的输出结果是___。

main()

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

printf(\%d%d%d%d\\n\,a[0][3],a[1][2],a[2][1],a[3][0]); }

A 0650 B 1470 C 5430 D 输出值不定 15 有以下程序:

main()

{ int x[3][2]={0},i;

for(i=0;i<3;i++) scanf(\%d\,x[i]);

printf(\===\\n\,x[0][0],x[0][1],x[1][0]); }

若运行时输入:2 4 6<回车>,则输出结果是___。

A 2 0 0 B 2 0 4 C 2 4 0 D 2 4 6 16 下列描述不正确的是___。

17

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

B 可以对字符型数组进行整体输入和输出 C 可以对整型数组进行整体输入和输出

D 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 17 对于以下定义,叙述正确的是___。

char x[]=\bcdef\

char x[]={'a','b' 'c','d','e','f'};

A 数组x和数组y等价 B 数组x和数组y的长度相等 C 数组x的长度大于数组y的长度 D 数组x的长度小于数组y的长度 18 以下选项中,不能正确赋值的是___。

A char s1[10];s1=\Ctest\; B char s2[]={'C','t','e','s','t'};

C char s3[20]=\Ctest\; D char s4[30];strcpy(s4,\Ctest\); 19 若有定义和语句:char s=[10];s=\abcd\;printf(\%s\\n\,s);,则输出结果是___。

(以下□表示空格)

A abcd B a C abcd□□□□□ D 编译不通过 20 当执行下面程序时,如果输入ABC,则输出结果是___。

#include #include main()

{ char ss[10]=\12345\;

gets(ss); strcat(ss, \6789\; printf(\%s\\n\,ss); }

A ABC6789 B ABC67 C 12345ABC6 D ABC45678

二 填空题(每空3分,共24分)

1 若int类型变量占两个字节,定义int x[10]={0,2,4};,则数组x在内存中所占的字节数是___。

2 若有定义char a[]=\\\\\141\\141abc\\t\;,则数组a在内存中所占的字节数是___。 3 下列程序的输出结果是___。

main()

{ int i,a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf(\%d%d%d\\n\,a[2],a[5],a[8]); }

4 下列程序运行的结果是___。

main()

{ char ch[7]=\65ab21\; int i,s=0;

for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf(\%d\\n\,s); }

5 有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现字符串复制。(注意:不得使用逗号表达式) while(s[i])

18

{ d[j]=___; j++ ; } d[j]=0;

6 下面程序运行的结果是___。

main()

{ char s[]=\abcdef\; s[3]='\\0';

printf(\%s\\n\,s); }

7 以下程序的输出结果是___。

main()

{ char ch[3][5]={\AAAA\,\BBB\,\CC\}; printf(\\\\%s\\\\\n\,ch[1]); }

8 以下程序的输出结果是___。

main()

{ char ch[]=\abc\,x[3][4]; int i; for(i=0;i<3;i++) strcpy(x[i],ch);

for(i=0;i<3;i++) printf(\%s\,&x[i][i]); printf(\\\n\); }

三 程序填空题(每空3分,共36分)

1 以下程序的功能是:从键盘上输入若干个学生的成绩(用输入负数结束输入),统计出平均成绩,并输出低于平均分的学生成绩。请填空。 #include \stdio.h\ main()

{ int n=0,i; float x[1000],sum=0.0,ave,a; printf(\Enter mark:\\n\); scanf(\%f\,&a); while(a>=0.0 && n<1000)

{ sum+= 【1】 ; x[n]= 【2】 ; n++; scanf(\%f\,&a); }

ave= 【3】 ; print(\Output:\\n\); printf(\ave=%f\\n\,ave);

for(i=0;i

2 以下程序的功能是求出矩阵x的上三角元素之积。其中矩阵x的行列数和元素的值均由键盘输入。请填空。 #define M 10 main()

{ int x[M][M]; int n,i,j; long s=1; printf(\Enter a integer(<=10):\\n\); scanf(\%d\,&n);

19