[G]福建省C语言二级考试(选择+填空+程序填空+输出结果)-学生 下载本文

51509下面语句错误的是( A )。

A. int *p; *p=20; B. char *s=\C.char *str=\ D.char *str;str=\

51510若有定义int a[2][3],*p=a;,则能表示数组元素a[1][2]地址的是( D )。 A. *(a[1]+2) B. a[1][2] C.p[5] D.p+5

51511若已定义: int a=5,*p; 且 p=&a; 则以下表示中不正确的是( B )。 A. &a==&(*p) B. *(&p)==a C.&(*p)==p D.*(&a)==a

51512若有以下程序段,则叙述正确的是( D )。 char s[]=\ char *p; p=s; A. s和p完全相同 B. 数组s的长度和p所指向的字符串长度相等 C.*p与s[0]相等 D.数组s中的内容和指针变量p中的内容相等 51513C语言中,二维数组元素在内存中的存放顺序是(A)。

A. 按行存放 B. 按列存放 C.由用户自己定义 D.随机存放

51514若有定义:int *p1,*p2; ,则不能用于指针变量p1、p2之间的运算符是( C )。 A. = B. = = C.+ D.-

51515下面叙述错误的是( C )。

A. 一个指针变量只能指向同一类型的变量 B. 一个变量的地址称为该变量的指针 C.可以将一个整数值赋给指针变量 D.任何指针变量都可以与空指针NULL进行比较 51516以下程序段运行后*(p+1)的值为( A )。 char a[]=\ char *p; p=a; A. 'o' B. 'g' C.a[1]的地址 D.不确定

51517以下程序段运行后*(p++)的值为( A )。 char a[5]=\ char *p; p=a; A. 'w' B. a[0]的地址 C.'o' D.a[1]的地址

51518若有定义:int a=4,*p=&a; ,则以下( B )均表示地址。 A. a,p B. &a,p C.&a,*p D.a,*p

51600以下程序段的运行结果是( B )。 enum weekday{ aa,bb=2,cc,dd,ee }week=ee; printf(\

A. ee B. 5 C.2 D.4

51601若有以下程序段,则不能正确访问数组元素a[1][2]的是( A )。 int (*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9}; p = a;

A. p[1]+2 B. p[1][2] C.(*(p+1))[2] D.*(*(a+1)+2)

51602以下程序段的运行结果是( A )。 int a[]={1,2,3,4,5,6,7},*p=a; int n,sum=0; for(n=1;n<6;n++) sum+=p[n++]; printf(\ A. 12 B. 15 C.16 D.27

51603下面程序的运行结果是( A )。 main( ) { int a,b; int *p1=&a,*p2=&b,*t; a=10; b=20; t=p1; p1=p2; p2=t; printf(\ } A. 10,20 B. 20,10 C.10,10 D.20,20 51604以下程序段运行后变量s的值为( C )。 int a[]={1,2,3,4,5,6,7};

int i, s=1,*p; p=&a[3];

for(i=0;i<3;i++) s*=*(p+i);

A. 6 B. 60 C.120 D.210

51605以下程序段运行后变量ans的值为( B )。 int a[]={1,2,3},b[]={3,2,1}; int *p=a,*q=b; int k,ans=0;

for(k=0;k<3;k++) if(*(p+k)==*(q+k)) ans=ans+*(p+k)*2;

A. 2 B. 4 C.6 D.12

51606以下程序运行结果是( A )。 main( )

{ char a[]=\ for(p=a;p

A. abcbcc B. abc C.cbabaa D.cba

51607以下程序的输出结果是( B )。 #include void main() {int i;

char *s=\ for(i=0;i<3;i++)

printf(\ }

A. CD BCD ABCD B. ABCD BCD CD C.AB ABC ABCD D.ABCD ABC AB 51608以下程序的输出结果是( B )。 #include void main()

{char *p=\ printf(\ } A. A B. B C.C D.D

51609下面程序执行时,若输入5 4 3 2 1<回车>,则输出为:( B ) #include #define N 5 void main() {int a[N]; int *p=a;

while(p

while(p>a)

printf(\ }

A. 5 4 3 2 1 B. 1 2 3 4 5 C.3 4 5 1 2 D.3 2 1 5 4 51610下面程序段的运行结果是( C )。 int a[]={1,2,3,4,5,6},*p=a; int i,sum=0;

for(i=1;i<6;i++) sum+=*(p++); printf(\

A. 10 B. 12 C.15 D.20

51611下面程序运行结果是( D )。 main( )

{ int a[]={1,2,3,4,5},*p,*q,i; p=a; q=p+4; for(i=1;i<5;i++)

printf(\ }

A. 24334251 B. 51423324 C.15243342 51612下面程序运行结果是( B )。 main( )

{ static char a[]=\ char *p=a,*q=b; int i;

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

if(*(p+i)==*(q+i)) printf(\ }

A. geca B. aceg C.bdf D.fdb 51613以下程序段的运行结果是( B )。 int x[3]={1,2,3}; int *p; p=x;

for(p++;p<&x[2];p++) printf(\ \

A. 3 B. 2 C.1 2 D.2 3

51614以下程序段的运行结果是( B )。 int x[]={2,3,4,5,6,7},*p=x; int i,s=0;

for(i=1;i<5;i++) s+=p[i++]; printf(\

A. 14 B. 8 C.6 D.20

51615以下程序的运行结果是( C )。 main( ) { int x,y;

D.42332415

int *p,*q,*t; x=23; y=45; p=&x;

q=&y; t=p; p=q; q=t;

printf(\ }

A. 23,23 B. 45,45 C.23,45 D.45,23 51616以下程序段运行后x的值为( C )。 int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[1];

for(i=0;i<3;i++) x*=*(p+i);

A. 1 B. 6 C.24 D.120

51617以下程序段运行后x的值为( C )。 int a[]={1,2,3},b[]={4,3,3}; int *p,*q; int i,x; p=a; q=b;

for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2;

A. 2 B. 4 C.6 D.不确定

51700若定义如下结构,则能打印出字母M的语句是( B )。 struct person{ char name[9]; int age; };

struct person class[10]={\ A. printf(\ B. printf(\C.printf(\ D.printf(\51701以下程序段的运行结果是( D )。 union { int n;

char str[2]; }t; t.n=80;

t.str[0]='a';

t.str[1]=0; printf(\