计算机等级考试二级C语言超级经典400道题目(6)

251、若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c[4][5], (*cp)[5]; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)、D、2

  252、若有以下定义和语句: char *s1="12345",*s2="1234"; printf("%d/n",strlen(strcpy(s1,s2))); 则输出结果是 A) 4 B)5 C)9 D)10、A、2

  253、若有以下定义和语句: int u=010,v=0x10,w=10; printf("%d,%d,%d/n,u,v,w); 则输出结果是: A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10、A、2

  254、若有以下定义: char s[20]="programming",*ps=s; 则不能代表字符o的表达式是 A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps、A、2

  255、若有以下的说明和语句: main() {int t[3][2], *pt[3],k; for(k=0; k、C、2

  256、若有以下定义: float x;int a,b; 则正确的switch 语句是 A)switch(x) B)switch(x) { case1、0:printf("*/n"); { case1,2:printf("*/n"); case2、0:printf("**/n"); case3:printf("**/n"); } } C)switch(a+b) D)switch (a+b); { case 1:printf("/n"); { case 1:printf(、"*/n"); case 1+2:printf("**/n"); case 2:printf("**/n"); } }、C、2

  257、若有以下程序段,w和k都是整型变量: ┆ w=k; LB: if(w==0) go to LE; w--; printf("*"); goto LB; LE: ┆ 则不能与上面程序段等价的循环语句是 A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*"); C)w=k; D)w=k; while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);、C、2

  258、若有以下程序片段: char str[]="ab/n/012///""; printf(%dd",strlen(str)); 上面程序片段的输出结果是 A)3 B)4 C)6 D)12、C、2

  259、若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p); C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);、D、2

  260、若有说明和语句: int a=5; a++; 此处表达式a++的值是 A) 7 B) 6 C) 5 D) 4、C、2

  261、若有下面的程序片段: int a[12]={0}, *p[3], **pp, i; for(i=0; i、C、2

  262、若有下面的说明和定义,则sizeof(struct aa) 的值是 struct aa { int r1;double r2; float r3; union uu{char u1[5]; long u2[2]; } ua; } mya; A)30 B)29 C)24 D)22、D、2

  263、若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); { case 1、0: printf("*/n"); { case 1 printf("*/n"); case 2、0: printf("**/n"); case 2 printf("**/n"); } } C) switch(b) D) switch(a+b); { case 1: printf("*/n"); { case 1: printf("*/n"); default: printf("/n"); case 2: printf("**/n"); case 1+2: printf("**/n"); default: printf("/n"); } }、D、2

  264、若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上 A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]、D、2

  265、若变量a、i已正确定义,且i已正确赋值,合法的语句是 A) a==i B) ++i; C) a=a++=5; D) a=int(i);、B、2

  266、若k是int型变量,且有下面的程序片段: k=-3 if(k<=0) printf("####") else printf("&&&&"); 输出结果是: A)#### B)&&&& C) ####&&&& D)有语法错误,无输出结果、D、2

  267、若x是int型变量,且有下面的程序片段: for(x=3;x、D、2

  268、若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是____ A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x、A、2

  269、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for(j=0;j、A、2

  270、请选出以下语句的输出结果 printf("%d/n",strlen("/t/"/065/xff/n")); A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出、A、2

  271、请选出正确的程序段 A) int *p; B) int *s, k; scanf("%d",p); *s=100; … … C) int *s, k; D) int *s, k; char *p, c; char *p, e; s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; … *s=1; …、C、2

  272、若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) { case 1:y=a+b;break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; } }、D、2

  273、请选出以下程序的输出结果 #include fun(s, n1, n2) int *s, n1, n2; { int i, j, t; i=n1; j=n2; while(i、C、2

  274、请读程序片段: #include main() { int a, b; for(a=1;b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } printf("%d/n",a); } 程序的输出结果是: A) 7 B) 8 C) 9 D) 10 、B、2

  275、请选出以下程序的输出结果 #include main() { int a[ ]={ 1,2,3,4 },i; int x=0; for(i=0; i、C、2

  276、请选出以下程序的输出结果 #include sub(x,y,z) int x, y, *z; { *z=y-x; } main() { int a, b, c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d/n", a,b,c); } A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7、B、2

  277、请选出以下程序段的输出结果 #include main() { char sl[10], s2[10], s3[10], s4[10]; scanf("%s%s",s1,s2); gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4); } 输入数据如下:(此处代表回车符) aaaa bbbb cccc dddd A) aaaa B) aaaa bbbb bbbb cccc cccc dddd dddd C) aaaa D) aaaa bbbb bbbb cccc cccc dddd dddd eeee、A、2

  278、请读程序: #include main() { float x,y; scan("%f",&x); if(x<5、0)&&(x!=2、0)) y=1、0/(x+2、0); else if (x(表示回车),则上面程序的输出结果是 A) 0、000000 B) 0、250000 C) 0、500000 D) 1、00000、C、2

  279、请读程序: #include void fun(float *pl, float *p2, float *s) { s=( float * )calloc( 1, sizeof(float)); *s=*p1+ *(p2++); } main() { float a[2]={1、1, 2、2}, b[2]={10、0, 20、0}, *s=a; fun(a, b, s) printf("%f/n",*s); } 上面程序的输出结果是 A) 11、100000 B) 12、100000 C) 21、100000 D) 1、100000、D、2

  280、请读程序: #include #include void fun( char *w, int m) { char s, *p1, *p2; p1=w; p2=w+m-1; while (p1、C、2

  281、请读程序: #include #include main() {char *s1="AbCdEf", *s2="aB"; s1++; s2++; printf("%d/n",strcmp(s1,s2)); } 输出结果是: A)正数 B)负数 C)零 D)不确定的值、A、2

  282、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d/n",x - -); } A) 7和5 B) 6和3 C) 7和4 D) 6和4、A、2

  283、能正确表示a和b同时为正或同时为负的逻辑表达式是 A) (a>=0‖b>=0)&&(a<0‖b=0&&b>=0)&&(a<0&&b0)&&(a+b<=0) D) a*b>0、D、2

  284、请读程序: #include #include main() { float x,y,z; scan("%f%f",&x,&y); z=x/y; while(1) { if(fabs(z)>1、0) { x=y; y=z; z=x/y; } else break } printf("%f/n",y); } 若运行时从键盘上输入3、6 2、4(表示回车),则输出的结果是 A) 1、500000 B) 1、600000 C) 2、000000 D) 2、400000 、B、2

  285、请读程序: #include #include void fun( char *s) { char a[10]; strcpy( a, "STRING"); s=a; } main() { char *p; fun(p); x=f(a, 3); printf("%s/n",p); } 上面程序的输出结果是(└┘表示空格) A) STRING└┘└┘└┘└┘ B) STRING C) STRING└┘└┘└┘ D) 不确定的 、D、2

  286、请读程序: #include char fun(char *c) {if( *c<='Z' && *c>='A') *c-='A'-'a'; return *c; } main() { char s[81], *p=s; gets(s); while(*p) {*p=fun(p); putchar(*p); p++;} putchar('/n'); } 若从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door、B、2

  287、请读程序: #include int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i、A、2

  288、请读程序: #include main() { int mun=0; while(num<=2) { num++; printf("%d/n",num);} } 输出结果是 A) 1 B) 1 C) 1 D) 1 2 2 2 3 3 4 、C、2

  289、请读程序: #include main() { int x=1, y=0, a=0, b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++; b++; break; } printf("a=%d, b=%d/n",a,b); } 上面程序的输出结果是 A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 、A、2

  290、请读程序: #include void fun( int *s) {static int j=0; do s[j]+=s[j+1]; while(++j、C、2

  291、假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 的表达式是 A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1、0/a/b/c、D、2

  292、假定x和y为 double型,则表达式x=2,y=x+3/2的值是 A) 3、500000 B) 3 C) 2、000000 D) 3、000000、D、2

  293、假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w、D、2

  294、合法的数组定义是 A)int a[]="string"; B)int a[5]={0,1,2,3,4,5}; C)char s="string"; D)char a[]={0,1,2,3,4,5};、D、2

  295、假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do { b-=a; a++; } while (b--、D、2

  296、当执行以下程序段时 A 循环体将执行一次 B 循环体将执行两次 C 循环体将执行无限次 D 系统将提示有语法错误 x=-1; do { x=x*x;} while(!x);、A、2

  297、当执行下面程序且输入:ABC时,输出的结果是____ #include #include main() { char ss[10]="12345"; gets(ss);printf("%s/n",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789、A、2

  298、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是____ A) c=b=a; B) (a=c) ‖(b=c) ; C) (a=c) &&(b=c); C) a=c=b;、C、2

  299、不能把字符串:Hello!赋给数组b的语句是 A) char b[10]={'H','e','l','l','o','!'}; B) char b[10];b="Hello!"; C) char b[10];strcpy(b,"Hello!"); D) char b[10]="Hello!";、B、2

  300、t为int类型,进人下面的循环之前,t的值为0 while( t=l ) { …… } 则以下叙述中正确的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对、B、2

 

你可能感兴趣的:(C语言)