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

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

33

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

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

34

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

while(pa)

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 D. 42332415

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++)

35

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; 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

36