您好,欢迎访问三七文档
函数与指针练习1、以下叙述中正确的是A)函数名允许用数字开头B)函数调用时,不必区分函数名称的大小写C)调用函数时,函数名必须与被调用的函数名完全一致D)在函数体中只能出现一次return语句2、函数调用语句:fun((exp1,exp2),(exp1,exp2,exp3));含有的实参个数是A)2B)4C)5D)13、有以下程序#includestdio.hmain(){intfindmax(int,int,int),m;┋m=findmax(a,b,c);┋}intfindmax(intx,inty,intz){…}则以下叙述正确的是A)在main函数中声明了findmax函数B)在main函数中定义了findmax函数C)在main函数中两次调用了findmax函数D)在main函数内、外重复定义了findmax函数4、以下叙述中正确的是A)用户自己定义的函数只能调用库函数B)实用的C语言源程序总是由一个或多个函数组成C)不同函数的形式参数不能使用相同名称的标识符D)在C语言的函数内部,可以定义局部嵌套函数5、以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。#includestdio.hvoidf(intb[],intn,intflag){inti,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(flag?b[i]b[j]:b[i]b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main(){inta[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0);f(a,5,1);for(i=0;i10;i++)printf(%d,,a[i]);}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,6、有以下程序#includestdio.hintk=5;voidf(int*s){*s=k;}main(){intm=3,*p=&m;f(p);printf(%d,%d,m,*p);}程序的运行结果是A)5,5B)3,3C)3,5D)5,37、以下关于C语言函数参数传递方式的叙述正确的是A)数据只能从实参单向传递给形参B)数据可以在实参和形参之间双向传递C)数据只能从形参单向传递给实参D)C语言的函数参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用8、有以下程序#includestdio.hvoidfun(intx,inty,int*z){*z=y-x;}main(){inta,b,c;fun(10,5,&a);fun(7,a,&b);fun(a,b,&c);printf(%d,%d,%d\n,a,b,c);}程序运行后的输出结果是A)-5,-12,-7B)5,2,3C)-5,-12,-17D)5,-2,-79、有以下程序:#includestdio.hvoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i10;i+=2)fun(c[i],c[i+1]);for(i=0;i10;i++)printf(%d,,c[i]);printf(\n);}程序的运行结果是()。A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,10、有以下程序#includestdio.hvoidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf(%d,%d,,*p,*q);fun(&x,&y);printf(%d,%d\n,*p,*q);}程序运行后的输出结果是A)3,5,3,5B)3,5,5,3C)5,3,3,5D)5,3,5,311、有以下程序#includestdio.hvoidfun(inta,intb,intc){a=b;b=c;c=a;}main(){inta=10,b=20,c=30;fun(a,b,c);printf(%d,%d,%d\n,c,b,a);}程序运行后的输出结果是A)10,20,30B)30,20,10C)20,30,10D)0,0,012、有以下程序#includestdio.hvoidfun(intx,inty,int*c,int*d){*c=x+y;*d=x-y;}main(){inta=4,b=3,c=0,d=0;fun(a,b,&c,&d);printf(%d%d\n,c,d);}程序的输出结果是A)00B)43C)34D)7113、有以下程序#includestdio.hvoidfun(int*p,int*q){intt;t=*p;*p=*q;*q=t;*q=*p;}main(){inta=0,b=9;fun(&a,&b);printf(%d%d\n,a,b);}程序的输出结果是A)90B)00C)99D)0914、若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是A)intfun(double,int);B)intfun(double*,int*);C)intfun(double*x,intn);D)intfun(doublex,int*n);15、有以下程序#includestdio.hvoidfun(int*s,intt,int*k){intp;for(p=0,*k=p;pt;p++)if(s[p]s[*k])*k=p;}main(){inta[10]={11,12,13,14,15,16,20,18,19,10},k;fun(a,10,&k);printf(%d,%d\n,k,a[k]);}程序运行后的输出结果是A)6,20B)10,9C)7,20D)10,1016、在一个C源程序文件中所定义的全局变量,其作用域为()。A)由具体定义位置和extern说明来决定范围B)所在程序的全部范围C)所在函数的全部范围D)所在文件的全部范围17、有以下程序#includestdio.hintd=1;voidfun(intp){intd=5;d+=p++;printf(%d,d);}main(){inta=3;fun(a);d+=a++;printf(%d\n,d);}程序的输出结果是A)84B)96C)94D)8518、有以下程序#includestdio.hinta=1,b=2;voidfun1(inta,intb){printf(%d%d,a,b);}voidfun2(){a=3;b=4;}main(){fun1(5,6);fun2();printf(%d%d\n,a,b);}程序运行后的输出结果是A)5612B)3456C)1256D)563419、有以下程序#includestdio.hintb=2;intfun(int*k){b=*k+b;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i4;i++){b=fun(&a[i])+b;printf(%d,b);}printf(\n);}程序运行后的输出结果是A)810B)1028C)1012D)101620、有以下程序#includestdio.hintfun(intA){intb=0;staticintc=3;a=(c++,b++);return(a);}main(){inta=2,i,k;for(i=0;i2;i++)k=fun(a++);printf(%d\n,k);}程序的输出结果是A)4B)0C)1D)221、以下关于地址和指针的叙述中正确的是A)可以取变量的地址赋值给同类型的指针变量B)可以取常量的地址赋值给同类型的指针变量C)可以取一个指针变量的地址赋给本指针变量,这样就使得指针变量指向自身D)所有指针变量如果未赋初值,则自动赋空值NULL22、以下关于指针的叙述正确是A)所有类型的指针变量所占内存的大小是一样的B)指针变量所占内存的大小与其类型有关,char型指针变量只占1个字节,double型指针变量占8个字节C)指针变量可直接指向任何类型的变量,而不会出现编译或运行错误D)指针变量既可以直接指向结构体,也可直接指向结构体中某个成员,而不会出现编译或运行错误23、以下定义语句中正确的是A)inta=b=0;B)charA=65+1,b='b';C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;24、设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是()。A)int*p=(float)x;B)float*p=&x;C)floatp=&x;D)float*p=1024;25、若有定义语句:doublex,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是()。A)scanf(%lf%le,px,py);B)scanf(%f%f&x,&y);C)scanf(%f%f,x,y);D)scanf(%lf%lf,x,y);26、有以下程序#includestdio.hvoidf(int*q){inti=0;for(;i5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i5;i++)printf(%d,,a[i]);}程序运行后的输出结果是A)6,2,3,4,5,B)2,2,3,4,5,C)1,2,3,4,5,D)2,3,4,5,6,27、有以下程序#includestdio.hmain(){charch[]=uvwxyz,*pc;pc=ch;printf(%c\n,*(pc+5));}程序运行后的输出结果是A)zB)0C)元素ch[5]的地址D)字符y的地址28、若有以下程序段charstr[4][12]={aaa,bbbb,ccccc,dddddd},*strp[4];inti;for(i=0;i4;i++)strp[i]=str[i];则以下错误引用字符串的选项是(其中0≤k4)A)strpB)str[k]C)strp[k]D)*strp29、有以下程序:#includestdio.hvoidfun(inta[],intn){inti,t;for(i=0;in/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i8;i++)printf(%d,k[i]);printf(\n);}程序的运行结果是()。A)321678B)876543C)1098765D)34567828、有以下程序#includestdio.h#includestdlib.hvoidfun(int*p1,int*p2,int*s){s=(int*)malloc(sizeof(int));*s=*p1+*(p2++);}main(){inta[2]={1,2},b[2]={10,20},*s=a;fun(a,b,s);printf(%d\n,*s);}程序运行后的输出结果是A)11B)10C)1D)229、有以下程序#includestdio.hintfun(chars[]){char*p=s;while(*p!=0)p++;return(p-s);}main(){printf(%d\n,fun
本文标题:函数与指针选择题
链接地址:https://www.777doc.com/doc-2641249 .html