B、7 C、8 D、12
(27)下列程序的运行结果是( ) main() {int a=4,y;
y=fn(a,++a); printf(“%d”,y);} int fn(x,c) {int b;
if(x else if(x==c)b=0; else b=-1 ; return(b); } A、4 B、-1 C、1 D、0 (28)有如下程序:int x=-20; printf(\);,其输出结果将是( ) A、19 B、20 C、21 D、-1 (29)对于类型相同的指针变量,不能进行的运算是( ) A、+ B、- C、= D、== (30)已知: union u_type { int i; char ch; float a; }temp; 现在windows环境下,执行\(\)\的结果是( ) A、266 B、256 C、10 D、1 (31)以下程序的运行结果是( ) #include \.h\ main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a+5,*q=NULL; q=p+5; - 26 - printf(\,*p,*q); } A、运行后报错 B、6 11 C、6 12 D、5 5 (32)以下程序的输出结果是( ) main() {int a=0,b=1,c=0,d=20; if (a) d=d-10; else if (!b) if (!c) d=15; else d=25; printf(\); } A、d=10 B、d=15 C、d=20 D、d=25 (33)下面四组字符串中,都可以用作C语言程序标识符的是( ) A、 print _maf mx_2d aMb6 B、 I\\am scanf mx_ MB C、 sign 3mf a.f A&B D、 if ty_pe x1# 5XY (34)下列程序的输出结果是( ) int f() { static int i=0; int s=1; s+=i;i++; return s;} main() { int i , a=0; for(i=0;i<6;i++)a+=f(); printf(“%d\\n”,a);} - 27 - A、21 B、24 C、25 D、15 (35)设有定义:#define STR \则以下叙述正确的是( ) A、宏名STR代替的是数值常量12345 B、宏定义以分号结束,编译时会产生错误信息 C、宏名STR代替的是字符串\ D、宏名STR代替的是字符串常量\ (36)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为( ) #include \ #include \ func (char str [ ]) { int num =0; while (*(str +num )!=’\\0’)num ++; return(num ); } main() { char str [10],*p=str ; gets(p); printf(\(p)); } A、8 B、7 C、6 D、5 (37)下列程序的输出结果是( ) struct st { int x;int *y;}*p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main() { p=aa; printf(“%d ”,++(*p->y)); printf(“%d ”,(++p)->x); printf(“%d ”,++p->x);} A、20 20 10 B、21 60 50 C、11 60 61 D、31 70 60 (38)以下函数的功能是( ) char *fun(char *str1,char*str2) { while((*str1)&&(*str2++=*str1++)); return str2; } A、求字符串的长度 B、比较两个字符串的大小 - 28 - C、将字符串str1复制到字符串str2中 D、将字符串str1接续到字符串str2中 (39)以下程序的输出结果是( ) #include void func(char **m) { ++*m; printf(\); } void main() { static char *a[]={\ char **n; n=a; func(n); } A、first B、irst C、second D、其他 (40)以下语句的输出结果为( )。 for(k=0;k<5;++k) { if(k==3) continue; printf(\); } A、012 B、0124 C、01234 D、没有输出结果 (41)下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( ) #include \ main() {int i,ch, n[10]; for(i=0;i<10;++i) n[i]=0; while((ch=getchar())!=‘\\n’) if(ch>=‘0’ && ch<=‘9’) ________; for(i=0;i<10;++i) printf(\数字%d出现的次数是:%d\\n\); } A、n[ch-‘0’]++ B、n[ch]++ C、i++ D、n[i]++ (42)以下程序的输出结果是( ) #include \ - 29 - int *fun() { int a[4],k; for(k=0;k<4;k++)a[k]=k; return(a); } void main() { int *p,j; p=NULL; p=fun(); for(j=0;j<4;j++){printf(\);p++;} } A、0000 B、0123 C、1111 D、输出不确定值 (43)若有如下结构体定义,下列scanf用法不正确的是( ) struct pupil { char name[20]; int age; int sex; }pup[5],*p; p=pup; A、scanf(\); B、scanf(\); C、scanf(\(p->sex)); D、scanf(\); (44)与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( ) A、if (x>0)y=1; else if(x<0)y=-1; else y=0; B、if(x) if(x>0)y=1; else if(x<0)y=-1; C、y=-1 if(x) if(x>0)y=1; else if(x==0)y=0; else y=-1; D、y=0; if(x>=0) if(x>0)y=1; else y=-1; - 30 -