您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C语言程序设计练习题C
C语言程序设计练习题C一、单项选择题1.以下不能定义为用户标识符是A)MainB)_0C)_intD)sizeof2.以下叙述中正确的是A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号{和}只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分3.以下选项中合法的字符常量是A)BB)'\010'C)68D)D4.以下合法的赋值语句是A)x=y=100B)d--;C)x+y;D)c=int(a+b);5.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A)INPUTx、y、z;B)scanf(%d%d%d,&x,&y,&z);C)scanf(%d%d%d,x,y,z);D)read(%d%d%d,&x,&y,&z);6.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是abs(x-y)10B)x-y-10&&x-y10@(x-y)-10||!(y-x)10D)(x-y)*(x-y)1007.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是A)for(i=1,p=1;i=5;i++)p*=i;B)for(i=1;i=5;i++){p=1;p*=i;}C)i=1;p=1;while(i=5){p*=i;i++;}D)i=1;p=1;do{p*=i;i++;}while(i=5);8.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是A)p+1B)*(p+3)C)*(p+1)+3D)*(p[0]+2])9.设有定义语句要求依次输出x数组6个元素中的值,不能完成此操作的语句是for(i=0;i6;i++)printf(%2d,*(p++));for(i=0;i6;i++)printf(%2d,*(p+i));C)for(i=0;i6;i++)printf(%2d,*p++);D)for(i=0;i6;i++)printf(%2d,(*p)++);10.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则称为函数的直接递归调用B)称为函数的间接递归调用称为函数的循环调用D)C语言中不允许这样的递归调用11.以下叙述中正确的是局部变量说明为static存储数,其生存期将得到延长全局变量说明为static存储类,其作用域将被扩大任何存储类的变量在未赋初值时,其值都是不确定的形参可以使用的存储类说明符与局部变量完全相同12.程序中对fun函数有如下说明void*fun();此说明的含义是:fun了数无返回值fun函数的返回值可以是任意的数据类型fun函数的返回值是无值型的指针类型指针fun指向一个函数,该函数无返回值13.有定义语句:intx,y;要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A)1112回车B)11,12回车C)11,12回车D)11,回车12回车14.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+0.5/100.0;B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;15.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;16.已定义ch为字符型变量,以下赋值语句中错误的是A)ch='\';B)ch=62+3;C)ch=NULL;D)ch='\xaa';17.有以下函数定义:voidfun(intn,doublex){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A)fun(inty,doublem);B)k=fun(10,12.5);C)fun(x,n);D)voidfun(n,x);18.以下不能正确定义二维数组的选项是A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};C)inta[2][2]={{1},2,3};D)inta[2][]={{1,2},{3,4}};19.以下能正确定义一维数组的选项是A)intnum[];B)#defineN100intnum[N];C)intnum[0..100];D)intN=100;intnum[N];20.已定义函数fun(int*p){return*p;}该函数的返回值是A)不确定的值B)形参p中存放的值C)形参p所指存储单元中的值D)形参p的地址值二、读程序写结果1.有以下程序{inta=666,b=888;printf(%d\n,a,b);程序运行后的输出结果是2.有以下程序{chara,b,c,d;scanf(%c,%c,%d,%d,&a,&b,&c,&d);printf(c,%c,%c,%c\n,a,b,c,d);若运行时从键盘上输入:6,5,65,66回车。则输出结果是3.有以下程序{chara='a',b;print(%c,,++a);printf(%c\n,b=a++);程序运行后的输出结果是4.有以下程序={China,Beijing},*p=str;printf(%s\n,p+10);程序运行后的输出结果是5.有以下程序main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf(%d,%d,%d,%d\n,*p,*q,a,b);程序运行后的输出结果是6.有以下程序=Yes\n/No,*ps=s;puts(ps+4);*(ps+4)=0;程序运行后的输出结果是7.有以下程序inta=3,b=4,c=5,d=2;if(ab)if(bc)printf(%d,d+++1);elseprintf(%d,++d+1);printf(%d\n,d);程序运行后的输出结果是8.有以下程序main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf(%d%d%3.1f%3.1f\n,a,c,f,x);}程序运行后的输出结果是9.有以下程序main(){ints=0,a=1,n;scanf(%d,&n);do{s+=1;a=a-2;}while(a!=n);printf(%d\n,s);}若要使程序的输出值为2,则应该从键盘给n输入的值是10.已有定义如下:structnode{intdata;structnode*next;}*p;以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。p=(structnode*)malloc(_________);11.分析以下程序,指出哪条语句导致程序陷入无限循环?(){inti=0,x=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;};printf(%d\n,s);12.语句:x++;++x;x=x+1;x=l+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)__________。13.设有以下程序:main(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=*pl=&m;b=(*p1)/(*p2)+7;printf(a=%d\n,a);printf(b=%d\n,b);}执行该程序后,a的值为________,b的值为________。14.有以下程序main(){ints=0,a=1,n;scanf(%d,&n);do{s+=1;a=a-2;}while(a!=n);printf(%d\n,s);}}若要使程序的输出值为2,则应该从键盘给n输入的值是多少?15.要求以下程序的功能是计算:s=1+1/2+1/3+……+1/10main(){intn;floats;s=1.0;for(n=10;n1;n--)s=s+1/n;printf(%6.4f\n,s);}程序运行后输出结果错误,指出导致错误结果的程序行。三、程序填空1.通过函数求f(x)的累加和,其中f(x)=x2+1{printf(Thesum=%d\n,SunFun(10));}SunFun(intn)intx,s=0;for(x=0;x=n;x++)s+=F(______);return______;s2.以下程序中,函数SumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。M2int*sum)for(i=0;iN;i++){k=0;for(j=1;jM;j++)if(a[k][i]a[j][i])k=j;s+=_______;}*sum=s;},s;SumColumMin(___,____);printf(%d\n,s);3.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。#includestdio.h#includestring.hmain(){chars[80],d[80];inti,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(________){d[j]=s[i];j++;}d[j]='\0';puts(d);四、编程题1.编写函数fun,函数fun的功能是:输入一行字符,将此字符串中最长的单词输出。例如,输入一行字符iamastudent,输出最长的单词:student2.编写函数intfun(intx),该函数的功能是判断x是否出现在它的平方数的右边。例如,5出现在5**2=25的右边,则即是一个满足要求的x。若满足要求,函数fun返回1,否则返回0。x不大于100。C语言程序设计试题C答案一、选择题1.D2.A3.B4.B5.B6.C7.B8.D9.D10.B11.A12.C13.A14.C15.B16.A17.C18.D19.B20.C二、读程序写结果1.6662.c,6,5,A3.b,b4.Bejing5.8,7,7,86./NoYes7.28.1651.56.59.-310.sizeof(int)+sizeof(char*)11.for(;;)12.x+=1;13.a的值为____6____,b的值为___8_____。14.-315.s=s+1/n三、程序填空1.通过函数求f(x)的累加和,其中f(x)=x2+1printf(Thesum=%d\n,SunFun(10));}SunFun(intn)intx,s=0;for(x=0;x=n;x++)s+=F(______);xreturn______;sx*x+12.以下程序中,函数SumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。int*sum){inti,j,k,s=0;for(i=0;iN;i++){k=0;for(j=1;jM;j++)if(a[k][i]a[j][i])k=j;s+=_______;a[k][i]}*sum=s;{intx[M][N]={3,2,5,1,4,1,8,3},s;SumColumMin(___,____);x,&sprintf(%d\n,s);3.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。#inclu
本文标题:C语言程序设计练习题C
链接地址:https://www.777doc.com/doc-2908289 .html