2013.03计算机二级C语言笔试答案

2026/1/25 15:07:50

A)a+(i++) B)&a[i+1] C)a+i D)&a[++i] 14.设有定义double a[5],*p=a; int i=0;不能正确给a数组元素输入数据的语句是( ) A)while(i<5) scanf(\ B)while(p-a<5) scanf(\C)for(i=0;i<5;i++) scanf(\ D)for(i=0;i<5;i++) scanf(\ 15.设有定义double a[6]={2,4,6,8,5,7},*p=a; int i;不能正确输出a数组元素中数据的语句是( ) A)for(i=0;i<6;i++) printf(\ B)for(i=0;i<6;i++) printf(\C)for(i=0;i<6;i++) printf(\ D)for(i=0;i<6;i++) printf(\

16.设有定义int i,a[20],sum=0,count=0;则以下程序段从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。 for(i=0;i<20;i++) scanf(\&a[i]);

for(i=0;i<20;i++){if(a[i]>0){count++; sum+=a[i];}} printf(\

17.已知a所指的数组中有N个元素,函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置,请填空。 void fun(int a[N],int k){int i; for(i=k;i

18.以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中,主函数中n存放a数组中的数据的个数,请填空。 void fun(int s[],int *n,int k,int x) main() {int i; {int a[20]={1,2,3,4,5,6,7,8,9,10,11},i,x=0,k=6,n=11; for(i=*n-1;i>=k;i--) s[i+1]=s[i]; fun(a,&n,k,x); for(i=0;i

字符串 1.以下正确的字符串常量是( ) A)\ B)'abc' C)Olympic Games D)\ 2.以下能正确进行字符串赋值的语句是( ) A)char str=\ B)char str=''; C)char str[]=\ D)char str[]={'\\064'}; 3.以下不能正确进行字符串赋值的语句是( ) A)char str[5]=\ B)char str[]=\ C)char *str=\ D)char str[5]={'g','o','o','d'}; 4.以下不能正确进行字符串赋值的语句是( ) A)char s[10]=\ B)char t[]=\C)char s[10]; s=\ D)char s[10]; strcpy(s,\5.以下能正确进行字符串赋值的语句是( )

A)char *sp; *sp=\B)char s[10]; s=\C)char s[10]; *s=\D)char *sp=\ 6.当用户要求输入的字符串中含有空格时,应当使用的输入函数是( ) A)scanf() B)getchar() C)gets() D)getc() 7.设有定义char a[10],*b=a;则以下不能给a数组输入字符串的语句是( ) A)gets(a); B)gets(a[0]); C)gets(&a[0]); D)gets(b); 8.设有定义char s[10];若要从终端给s输入5个字符,则以下错误的输入语句是( ) A)gets(&s[0]); B)scanf(\ C)gets(s); D)scanf(\ 9.设有定义char *c;则以下能使字符型指针c正确指向一个字符串的是( ) A)scanf(\ B)c=getchar(); C)*c=\ D)char str[]=\ 10.设有定义char s[100]; int c,i;则执行以下程序段,若从键盘输入123<空格>456<空格>789<回车>,输出结果是( ) scanf(\A)123,456,789 B)1,456,789 C)1,23,456,789 D)1,23,456 11.执行以下程序段,若从键盘输入how are you? I am fine<回车>,则输出结果是( ) char a[30],b[30]; scanf(\A)how are you? B)how C)how are you? I am fine D)how are you? I am fine are you? I am fine

12.执行以下程序段,若从键盘输入This is a cat!<回车>,则输出结果是( )

char a[20],b[20],c[20]; scanf(\A)Thisisacat! B)Thisis a C)Thisis a cat! D)Thisisa cat! 13.以下程序段的输出结果分别是( )( )( )( )( )( )( ) char str[]=\〃\\065\\xff\\n\A)5 B)14 C)8 D)不合法 char str[]=\〃\A)3 B)4 C)6 D)12 char str[]=\〃\A)14 B)7 C)9 D)10 char *p=\A)12 B)15 C)6 D)5 char a[]=\A)7,7 B)8,8 C)8,10 D)10,10 char a[7]=\ i,j; i=sizeof(a); j=strlen(a); printf(\A)2,2 B)7,6 C)7,2 D)6,2 char p[]={'a','b','c'},q[]=\A)4,4 B)3,3 C)3,4 D)4,3 14.设有定义char x[]=\则以下叙述正确的是( )

A)数组x和数组y等价 B)数组x和数组y长度相同 C)数组x长度大于数组y长度 D)数组x长度小于数组y长度

15.设有程序段char p[]={'a','b','c'},q[10]={'a','b','c'}; printf(\则以下叙述正确的是( ) A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3 C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3 D)由于p和q数组中都没有字符串结束符,故长度都不能确定 16.以下程序段的输出结果分别是( )( )

char *p1=\A)xyzabcABC B)zabcABC C)yzabcABC D)xyabcABC

char *p1,*p2,str[50]=\A)xyabcAB B)abcABz C)ABabcz D)xycdBCD

17.设有定义char p[20]={'a','b','c','d'},q[]=\则以下程序段的输出结果分别是( )( ) strcpy(p+strlen(q),r); strcat(p,q); printf(\A)20,9 B)9,9 C)20,11 D)11,11 strcat(p,r); strcpy(p+strlen(q),q); printf(\A)9 B)6 C)11 D)7

9

18.设有定义char *p; int i;则以下程序段的输出结果是emoclew。

p=(char*)malloc(sizeof(char)*20); strcpy(p,\字符串简单计算 1.设有定义char s[20]=\则以下不能代表字符'o'的表达式是( ) A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps 2.程序段char s[]=\的输出结果是( ) A)15 B)16 C)12 D)59 3.程序段char s[]={\的输出结果是( ) A)a B)e C)u D)元素s[4]的地址 4.程序段char s[]=\的输出结果是( ) A)字符c B)字符c的ASCII码 C)字符a的ASCII码 D)出错 5.设有定义char *p,*q;则执行以下程序段,若从键盘输入abc def<回车>,输出结果是( ) p=(char*)malloc(sizeof(char)*20); q=p; scanf(\A)def def B)abc def C)abc d D)d d 6.设有定义char *p,*q,*r;则以下程序段的输出结果是cab。

p=q=r=(char*)malloc(sizeof(char)*20); strcpy(p,\7.设有定义char a[]=\则以下程序段的输出结果是gae。 for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf(\

8.设有定义char ch[7]={\则以下程序段的输出结果是( ) for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf(\A)12ba56 B)6521 C)6 D)62 9.设有定义char s[]=\则以下程序段的输出结果是( ) for(i=0;s[i]!=0;i++) if(s[i]>='0'&&s[i]<='9') n++; printf(\A)0 B)3 C)7 D)8 10.设有定义char str[20]=\则以下叙述正确的是( ) A)*p与str[0]的值相等 B)str与p的类型完全相同,都是指针变量 C)str数组长度和p所指向的字符串长度相等 D)数组str中存放的内容和指针变量p中存放的内容相同 11.以下关于字符串的叙述中正确的是( ) A)C语言中有字符串类型的常量和变量 B)两个字符串中的字符个数相同时才能进行字符串大小的比较 C)可以用关系运算符对字符串的大小进行比较 D)空串一定比空格开头的字符串小 12.以下程序的输出结果是( )

ss(char *s) main()

{char *p=s; while(*p) p++; return(p-s);} {char *a=\A)8 B)7 C)6 D)5 13.函数fun(char *a,char *b){while((*b=*a)!='\\0'){a++; b++;}}的功能是( ) A)将a所指字符串赋给b所指空间 B)使指针b指向a所指字符串 C)将a所指字符串和b所指字符串进行比较 D)检查a和b所指字符串中是否有'\\0'

14.设有定义char s[100],d[100]; int j=0,i=0;且s中已赋字符串,请填空以实现字符串拷贝。(注意:不得使用逗号表达式) while(s[i]){d[j]=s[i++]; j++;} d[j]='\\0';

15.设s1和s2分别指向两个字符串,若要求s1所指字符串大于s2所指字符串时,执行语句S;则以下选项中正确的是( ) A)if(s1>s2) S; B)if(strcmp(s1,s2)) S; C)if(strcmp(s2,s1)>0) S; D)if(strcmp(s1,s2)>0) S; 16.程序段char *s1=\的输出结果是( ) A)正数 B)负数 C)零 D)不确定 17.若有定义语句:char *s1=\以下选项中,能够输出\的语句是( ) A)if(strcmp(s1,s2)==0) puts(s1); B)if(strcmp(s1,s2)!=0) puts(s2); C)if(strcmp(s1,s2)==1) puts(s1); D)if(strcmp(s1,s2)!=0) puts(s1);

18.函数fun(char *a,char *b){while((*a!='\\0')&&(*b!='\\0')&&(*a==*b)){a++; b++;} return(*a-*b);}的功能是( ) A)计算a和b所指字符串的长度之差 B)将b所指字符串复制到a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小

19.函数fun(char *x,char *y){int n=0; while((*x==*y)&&*x!='\\0'){x++; y++; n++;} return n;}的功能是( ) A)查找x和y所指字符串是否有'\\0' B)统计x和y所指字符串中最前面连续相同的字符个数 C)将y所指字符串赋给x所指定的存储空间 D)统计x和y所指字符串中相同的字符个数

一维数组综合计算 1.程序段int a[]={2,4,6,8,10},y=1,x,*p; p=&a[1]; for(x=1;x<3;x++) y+=p[x]; printf(\的输出结果是( ) A)10 B)11 C)14 D)15

2.程序段int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=*(t+i); printf(\的输出结果是( ) A)45 B)20 C)25 D)36 3.设有定义int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;则以下程序段的输出结果是9911。 for(j=3;j;j--) {switch(j)

{case 1:case 2: printf(\case 3: printf(\

4.程序段int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++){n[i]=n[i-1]*2+1; printf(\的输出结果是1 3 7 15。

5.程序段int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++) s=s+a[b[i]]; printf(\的输出结果是( ) A)6 B)10 C)11 D)15 6.设有定义int n[2]={0},i,j;则以下程序段的输出结果是3。 for(i=0;i<2;i++)

for(j=0;j<2;j++) n[j]=n[i]+1; printf(\7.以下程序的输出结果是( )

f(int b[],int m,int n) main()

{int i,s=0; {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf(\for(i=m;i

8.设有定义int x[10],a[9],i;数组x中各相邻两个元素的和依次存放到a数组中,请填空:for(i=1;i<10;i++) a[i-1]=x[i]+x[i-1]; 9.以下程序的输出结果是( )

void sum(int a[]) main()

{a[0]=a[-1]+a[1];} {int a[0]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf(\

10

A)6 B)7 C)5 D)8 10.以下程序的输出结果是( ) #define N 8 main()

void fun(int *x,int i) {int a[N]={1,2,3,4,5,6,7,8},i;

{*x=*(x+i);} fun(a,2); for(i=0;i

void fun(int t[],int n,int m) main()

{int i,j; for(i=n;i

fun(&a[1],1,3); for(i=0;i<8;i++) printf(\A)12344400 B)12333600 C)12344444 D)1234560 12.以下程序的输出结果是( ) void exch(int t[]) main() {t[0]=t[5];} {int x[10]={1,2,3,4,5,6,7,8,9,10},i=0; while(i<=4){exch(&x[i]); i++;} for(i=0;i<5;i++) printf(\A)2 4 6 8 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 7 8 9 10 13.以下程序的输出结果是( )

void swap1(int c0[],int c1[]) main()

{int t; t=c0[0]; c0[0]=c1[0]; c1[0]=t;} {int a[2]={3,5},b[2]={3,5};

void swap2(int *c0,int *c1) swap1(a,a+1); swap2(&b[0],&b[1]);

{int t; t=*c0; *c0=*c1; *c1=t;} printf(\A)3,5,5,3 B)5,3,3,5 C)3,5,3,5 D)5,3,5,3 14.以下程序的输出结果是( )

void fun(int *t,int n,int m) main()

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

while(i

void fun(int a[],int n) main()

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

for(i=0;i

void sort(int a[],int n) main()

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

for(i=0;i

A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3, 17.以下程序的输出结果是( )

void sort(int *a,int n) main()

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

for(i=0;i

A)double fun(double a[15]) B)double fun(double *a) C)double fun(double a[]) D)double fun(double a) 20.若有函数void fun(double a[],int *n){…}以下叙述中正确的是( ) A)形参a和n都是指针变量 B)调用fun函数只有数组执行按值传送,其他形参和实参间执行按地址传送 C)形参a是一个数组名,n是指针变量 D)调用fun函数将把double型实参数组元素一一对应地传送给形参a数组 21.以下程序的输出结果是( ) void fun(int *s) main() {static int j=0; {int k,a[10]={1,2,3,4,5}; do{s[j]=s[j]+s[j+1];}while(++j<2);} for(k=1;k<3;k++) fun(a); for(k=0;k<5;k++) printf(\A)12345 B)23445 C)34756 D)35745

字符串综合计算 1.以下程序的输出结果是( )

void swap(char *x,char *y) main()

{char t; t=*x; *x=*y; *y=t;} {char *s1=\A)123,abc B)abc,123 C)1bc,a23 D)321,cba 2.以下程序的输出结果是abcfg。

void fun(char *s,int p,int k) main()

{int i; for(i=p;i

{char s,*p1,*p2; p1=w; p2=w+m-1; {char a[]=\ while(p1

11

4.以下程序的输出结果是( ) void fun(char *c) main() {while(*c) {char s[81]=\{if(*c>='a'&&*c<='z')*c=*c-('a'-'A'); c++;}} A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing 5.以下程序的输出结果是( )

void fun(char *p) main()

{char *q; q=p; {char a[]={\ while(*q!='\\0'){(*q)++; q++;}} A)Prohsbn B)Prphsbn C)Progsbn D)Program

二维数组 1.以下不能正确定义数组的选项是( ) A)int x[]={1,2,3,4,5,6}; B)int x[][3]={{1,2},3,4,5,6}; C)int x[2][3]={{1,2},{3,4},{5,6}}; D)int x[][4]={1,2,3,4,5,6}; 2.设有定义int a[2][3];则以下对a数组元素正确引用的是( ) A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1] 3.设有定义int c[4][5],(*cp)[5]; cp=c;则以下对c数组元素正确引用的是( ) A)*(cp+3) B)*(cp+1)+3 C)*(*(cp+4)) D)*(cp[0]+2) 4.设有定义int a[3][2]={1,2,3,4,5,6},*p[3]; p[0]=a[1];则*(p[0]+1)所代表的数组元素是( ) A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2] 5.设有定义int t[3][2],*pt[3],k; for(k=0;k<3;k++) pt[k]=t[k];则能正确表示t数组元素地址的是( ) A)&t[3][2] B)*pt[0] C)*(pt+1) D)&pt[2] 6.设有定义int a[3][6];按照在内存中的存放顺序,则a数组的第10个元素是( ) A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4] 7.设有定义int a[3][2]={10,20,30,40,50,60},(*p)[2]; p=a;则*(*(p+2)+1)的值是60。 8.设有定义int a[][3]={{0},{1},{2}};则a[1][2]的值是0。 9.以下程序段的输出结果分别是( )( )( )

int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf(\A)0650 B)1470 C)5430 D)输出值不定 int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(\A)753 B)357 C)369 D)751 int m[][3]={1,4,7,2,5,8,3,6,9},i,j,k=2; for(i=0;i<3;i++) printf(\A)456 B)258 C)369 D)789

10.设有定义int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}},i,s=0;则以下程序段的输出结果是( ) for(i=0;i<4;i++) s+=aa[i][1]; printf(\A)11 B)19 C)13 D)20 11.设有定义int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;则以下程序段的输出结果是30。 for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf(\

12.设有定义int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},b[4]={0},i;则以下程序段的输出的结果是( ) for(i=0;i<3;i++) b[i]=a[i][i]-a[i][4-i-1];

for(i=0;i<3;i++) printf(\A)-12,-3,0,0 B)-3,-1,1,3 C)0,1,2,3 D)-3,-3,-3,-3 13.设有定义char *line[5];则以下叙述正确的是( ) A)定义line是一个指针数组,语句中的*号称为间址运算符 B)定义line是一个数组,每个数组元素是一个基类型为char的指针变量 C)定义line是一个指向字符型函数的指针 D)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 14.若有定义int (*pt)[3];则以下叙述正确的是( ) A)定义了基类型为int的三个指针变量 B)定义了基类型为int的具有三个元素的指针数组pt C)定义了一个名为*pt,具有三个元素的整型数组 D)定义了一个名为pt的指针变量,它可指向每行有三个整数元素二维数组 15.设有定义char s[3][10],(*k)[3],*p;则以下赋值语句正确的是( ) A)p=s; B)p=k; C)p=s[0]; D)k=s; 16.设有定义int *p[4];则以下选项中与此语句等价的是( ) A)int p[4]; B)int **p; C)int *(p[4]); D)int (*p)[4]; 17.设有定义int a[4][10],*p,*q[4];则以下语句错误的是( ) A)p=a; B)q[i]=a[i]; C)p=a[i]; D)p=&a[i][1];

18.设有定义int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0;则以下程序段的输出结果是( ) for(i=0;i<3;i++)

for(j=0;j<2;j++) k=k+*(*(p+i)+j); printf(\A)60 B)68 C)99 D)108 19.设有定义int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;则以下程序段的输出结果是( ) for(i=1;i<3;i++)

for(j=0;j<=i;j++) s+=a[i][j]; printf(\A)18 B)19 C)20 D)21 20.设有定义int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;则以下程序段的输出结果是( ) for(i=0;i<3;i++)

for(j=i;j<=i;j++) t+=b[i][b[j][i]]; printf(\A)1 B)3 C)4 D)9 21.设有定义int i,j,a[][3]={1,2,3,4,5,6,7,8,9};则以下程序段的输出结果是123056009。 for(i=0;i<3;i++)

for(j=i+1;j<3;j++) a[j][i]=0; for(i=0;i<3;i++) for(j=0;j<3;j++) printf(\22.以下程序的输出结果是( ) #define N 4 main()

void fun(int a[][N],int b[]) {int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; {int i; for(i=0;i

23.设有定义int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;则x[1]的初值是2,程序段的输出结果是2 4 6 8。 for(i=0;i<4;i++){p[i]=&x[2*i+1]; printf(\

12


2013.03计算机二级C语言笔试答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 2013.03计算机二级C语言笔试答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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