专升本C语言历年考试题及答案一、单项选择题1.___D___是合法的用户自定义标识符。A、b-bB、floatC、frD、_isw2.若变量已正确定义并赋值,表达式___B___不符合C语言语法。A、a*b/c;B、3.14%2C、2,bD、a/b/c3.___C__是不正确的字符常量。A、'n'B、'1'C、aD、'101'4.在C程序中,用___B__表示逻辑值“真”。A、1B、非0的数C、非1的数D、大于0的数5.__C____把x、y定义成float类型变量,并赋同一初值3.14。A、floatx,y=3.14;B、floatx,y=2*3.14;C、floatx=3.14,y=x=3.14;D、floatx=y=3.14;6.若变量已正确定义,表达式___C___的值不是2。A、2&3B、11C、a==2D、1^37.若变量已正确定义,语句“if(ab)k=0;elsek=1;”和__C____等价。A、k=(ab)?1:0;B、k=ab;C、k=a=b;D、a=b?0:1;8.设变量定义为“inta,b;”,执行下列语句时,输入_D____,则a和b的值都是10。scanf(a=%d,b=%d,&a,&b);A、1010B、10,10C、a=10b=10D、a=10,b=109.下列程序的输出结果是__D___。fun(inta,intb,intc){c=a*b;}voidmain(){intc;fun(2,3,c);printf(”%dn”,c);}A、0B、1C、6D、无法确定10.在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。A、intB、doubleC、voidD、char11.表达式strlen(”hello”)的值是___B____。A、4B、5C、6D、712.设变量定义为“inta[4];”,则表达式__D____不符合C语言语法。A、*aB、a[0]C、aD、a++13.设变量定义为“intx,*p=&x;”,则&*p相当于__A___。A、pB、*pC、xD、*&x14.若变量已正确定义,_A___不能使指针p成为空指针。A、p=EOFB、p=0C、p=’’D、p=NULL15.对于以下的变量定义,表达式__D____不符合C语言语法。structnode{intlen;char*pk;}x={2,right},*p=&x;A、p-pkB、*p.pkC、*p-pkD、*x.pk16.有如下程序intrunc(inta,intb){return(a+b);}main0{intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}(D)A)12B)13C)14D)1517.对于基类型相同的两个指针变量之间,不能进行的运算是(C)A)B)=C)+D)-18.有如下程序longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main0{printf(“%d\n”,fib(3));(B)A}2B}4C}6D}819.有如下定义structperson{charname[9];intage;};strictpersonclass[10]={“Johu”,17,Paul”,19Mary”,18,Adam16,};M的语句是(D)A)prinft(“%c\n”,class[3].mane);B)pfintf(“%c\n”,class[3].name[1]);C)prinft(“%c\n”,class[2].name[1]);D)printf(“%^c\n”,class[2].name[0]);20.以下所列的C语言常量中,错误的是(B)A)0xFFB)1.2e0.5C)2LD)‘\72’21.有以下程序段intk=0while(k=1)k++;while循环执行的次数是(A)A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次22.以下程序的输出结果是(C)A)0B)29C)31D)无定值fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(“%d”,a);}23.下列程序段的输出结果是(A)A)2143B)1212C)1234D)2112voidfun(int*x,int*y){printf(“%d%d”,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf(“%d%d”,x,y);}24.当调用函数时,实参是一个数组名,则向函数传送的是(B)A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值25.以下程序的输出结果是(A)A)1B)2C)3D)4longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf(“%ld\n”,fun(3));}26.以下程序的输出结果是(B)A)16B)2C)9D)1#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(“d\n”,a);}27.以下函数返回a所指数组中最小的值所在的下标值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;iN;I++)if(a[i]A[P])__________;return(p);}(D)A)i=pB)a[p]=a[i]C)p=jD)p=i二、填空题1.表示“x≥y≥z”的C表达式是___x=y&&y=z____。2.下列程序段的输出是__1____。printf(%on,0101^1);3.下列程序段的输出是__6,90____。intk;floats;for(k=0,s=0;k7;k++)s+=k/2;printf(%d,%fn,k,s);4.下列程序段的输出是__5,25_____。#definef(a,b,x)a*x+bprintf(%d,%dn,f(3,2,1),f(6,5,f(3,2,1)));5.下列程序段的输出是_*#*#____。main(){intk;for(k=1;k5;k++){if(k%2)printf(*);elsecontinue;printf(#);}}6.下列程序段的输出是__58___。#includestdio.hintf(intx){staticy=1;y++;x+=y;returnx;}voidmain(){intk;k=f(3);printf(%d%dn,k,f(k));}7.下列程序段的输出是___5__。int*p,*q,k=5,j=6;q=&k;p=q;q=&j;printf(%d,*p);8.函数voidf(chars[],chart[]){intk=0;while(s[k]=t[k])k++;}等价于voidf(char*s,char*t){while(_*s++=*t++____);}9.下列程序段的输出是_ne,s____。char*a[2]={one,two},**p=a;printf(%s,,*(p++)+1);printf(%cn,**p-1);10.下列程序编译后生成t.exe,运行tinputoutputzoooil的输出结果是__zoo___。voidmain(intargc,char*argv[]){intk;char*p=argv[1];for(k=2;kargc;k++)if(strcmp(argv[k],p)0)p=argv[k];printf(%sn,p);}11.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:Afterswap5,3。voidmain(){inta=3,b=5;swap(&a,&b);printf(Afterswap%d,%d,a,b);}swap(int*p,int*q){intt;t=*p;;*p=*q;*q=t;}专升本C语言历年考试题及答案一、单项选择题1.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。A、”.c”B、“.obj”C、“.exe”D、“.bas”2.以下选项中不正确的整型常量是_C____。A、12LB、-10C、1,900D、123U3.表达式___C___的值是0。A、3%5B、3/5.0C、3/5D、354.表达式!(x0||y0)等价于__D___。A、!x0||!y0B、!(x0)||!(y0)C、!x0&&!y0D、!(x0)&&!(y0)5.若变量已正确定义并赋值,表达式__D____不符合C语言语法。A、4&&3B、+aC、a=b=5D、int(3.14)6.若变量已正确定义,执行语句scanf(%d%d%d,&k1,&k2,&k3);时,___B___是正确的输入。A、2030,40B、203040C、20,3040D、20,30,407.执行语句printf(”__D____”,2);将得到出错信息。A、%dB、%oC、%xD、%f8.设变量定义为“ints[]=hello\nworld\n;”,则数组s中有__B____个元素。A、12B、13C、14D、159.设变量定义为“inta[2]={1,3},*p=&a[0]+1;”,则*p的值是___B__。A、2B、3C、4D、&a[0]+110.若变量已正确定义并赋值,表达式-k++等价于__A____。A、-(k++)B、(-k)++C、-(k+1)D、-(++k)11.在C语言程序中,在函数内部定义的变量称为__D____。A、全局变量B、全程变量C、外部变量D、内部变量12.若x是整型变量,表达式(x=10.0/4.0)的值是__D___。A、2.5B、2.0C、3D、213.对于以下的变量定义,表达式__A____是正确的。structnode{chars[10];intk;}p[4];A、p-k=2B、p[0].s=“abc”C、p[0]-k=2D、p-s=‘a’14.下列运算符中,优先级从高到低依次为__D___。A、&&,!,||B、||,&&,!C、&&,||,!D、!,&&,||15.下列程序段的输出结果是__B___。int*p,*q,k=1,j=10;p=&j;q=&k;p=q;(*p)++;printf(%d,*q);A、1B、2C、10D、1116.以下各选项企图说明一种新的类型名,其中正确的是水量(C)A)typedefv1int;B)typedefv2=int;C)typedefv1intv3;D)typedefv4:int;17.以下选项中,非法的字符常量是(C)A)‘\t’B)‘\17’C)“n”D)‘\xaa’18.以下程序的输出结果是(C)main(){inti,a[10];for(i=9;i=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}A)258B)741C)852D)36919.以下程序的输出结果是(B)main(){charst[20]=“hello\0\t\\\”;printf(%d%d\n”,strlen(st),sizeof(st));}A)99B)520C)1320D)202020.以下程序的输出结果是(D)main(){inta,b;for(a=1,b=1;a=100;a++){if(b=10)break;if(b%3==1){b+=3;continue;}}printf(“%d\n”,a);}A)101B)6C)5D)421.以下程序的输出结果是(D)unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=