大一下学期计算机题库_第1页
大一下学期计算机题库_第2页
大一下学期计算机题库_第3页
大一下学期计算机题库_第4页
大一下学期计算机题库_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教材:习题10一、选择题要调用数学处理函数时,在#include命令行中应包含(C)。''stdio.h''B.‘'string.h''C.‘'math.h''D.‘'ctype.h''对于以下递归函数f,调用f(4),其返回值为(A)。intf(intn){if(n)returnf(n-1)+n;elsereturnn;}A.10B.4C.0D.以上都不是2.执行下列程序:#defineMA(x,y)(x*y)i=5;i=MA(i,i+1)-7;变量i的值应为(B)。A.30B.19C.23D.1宏定义"#defineDIV(a,b)a/b"经DIV(x+5,y-5)引用,替换展开后是(A)。A.x+5/y-5B.(x+y/y-5)C.(x+5)/(y-5)D.(x+5)/(y-5);定义带参数的宏“#defineJH(a,b,t)t=a;a=b;b=”,对两个参数a、b的值进行交换,下列表述中正确的是(C)。A.不定义参数a和b将导致编译错误B.不定义参数a、b、t将导致编译错误C.不定义参数t将导致编译错误D.不必定义参数a、b、t类型执行下面程序,正确的输出是(A)。Intx=5,y=7;voidswap(){intz;z=x;x=y;y=z;}intmain(void){intx=3,y=8;swap();printf("%d,%d\n",x,y);}A.3,8B.8,3C.5,7D.7,5下面说法中正确的是(A)。若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑变量生命周期问题静态全局变量使用过多,可那会导致动态存储区(堆栈)溢出、填空题C语言的编译预处理功能主要包扌舌条件编译、宏定义和文件包含执行完下列语句段后,i值为5。inti;intf(intx){return((x>0)?f(x-1)+f(x-2):1);}i=f(3);下列程序段A与B功能等价,请填写程序段B中相应的语句。程序段A:intf(intn){if(n<=1)returnn;Elsereturnf(n-1)+f(n-2);}程序B:Intf(intn){intt,tO,t1;t0=0;t1=1;t=n;while(n>1){t=tO;tO=t1;t1=t;n--;}returnt;}下面程序用于计算f(k,n)=1Ak+2Ak+...+nAk,其中power(m,n)求m^n。请填写程序中相应语句#include<stdio.h>intpower(intm,intn){inti;intp=1;for(i=1;i<=n;i++)intp=pm;returnp;}intf(intk,intn){inti;ints=0:for(i=1;i<=n;i++)

s=s+power(i,k);returns;}intmain(void){intk,n;scanf("%d%d",&k,&n);printf("f(%d,%d)=%ld",k,n,f(k,n));return0;}下列递归程序的输出结果为。#include<stdio.h>intfib(intg){switch(g){case0:return0;case1:case2:return2;}printf("g=%d,",g);returnfib(g-1)+fib(g-2);}intmain(void){intk;k=fib(4);printf("k=%ld\n",k);return0;}下列语句的运算结果为。#defineF(x)x-2#defineD(x)x*F(x)printf("%d,%d",D(3),D(D(3)));第6章数据类型和表达式一、选择题1、C语言中最简单的数据类型包括(B)。A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型2、下列选项中,值为1的表达式是(B)。A、1-‘0'BA、1-‘0'B、1-‘\0'C、'1‘-0D、'\0'-‘0'3、下列程序的输出结果是(D)Intmain(void){Intk=11;Printf(“k=%d,k=%o,k=%x\n”,k,k,k);Return0;}A、k=11,k=12,k=11B、k=11,k=13,k=13C、k=11,k=013,k=0xbD、k=11,k=13,k=b4、设有定义"inta=1,b=2,c=3,d=4,m=2,n=2;",则执行表达式"(m二a>b)&&(n=c>d)"后,n的值为(B)oA、1B、2C、3D、05、以下选项中,非法的字符常量是(C)oA、‘t'B、'\65'C、“n”D、‘\t'7、设变量x为float型且已赋值,贝9以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是(C)oA、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;9、已有定义“intx=3,y=4,z=5;“,则表达式”!(x+y)+z-1&&y+z/2“的值是(D)A、6B、0C、2D、110、已知字符“A“的ASCII代码值是65,字符变量cl的值是”A“,c2的值是”D“。执行语句”printf(“%d,%d”,c1,c2-2);“后,输出结果是(C)A、A,BB、A,68C、65,66D、65,6811、在以下一组运算符中,优先级最高的运算符是(C)A、<=B、=C、%D、&&12、若有定义“charc1='b',c2='e';:则语句”printf(“%d,%c\n”,c2-c1,c2-‘a'+'A');“的输出结果是(B)。A、2,MB、3,EC、2,ED、格式控制不一致,结果不确定13、若有定义“chara;intb;floatc;doubled;",则表达式a*b+d-c值的类型为(D)。A、floatB、intC、charD、double二、填空题1、已定义“charc='‘;inta=1,b;"(c为空格字符),执行"b二!c&&a;"后b的值为(0)。2、若变量s为int型,且其值大于0,则表达式s%2+(s+1)%2的值为(1)。3、假定x和y为double型,则表达式x=2,y=x+3/2的值为(3.000000)。5、设有“intw二'A',x=14,y=15;",则执行"w=((x||y)&&(w<'a'));“后w的值为(1)。7、下列程序的输出结果是(004)。Intmain(viod){inta=-1,b=4,k;K=(++a<0)&&!(b--<=0);Printf(“%d%d%d\n",k,a,b);Return0;}8、下列程序的运行结果是(m=4k=4i=5k=5)。Intk=0;Voidfun(intm){m+=k;k+=m;printf(“m=%dk=%d”,m,k++);}Intmain(void){inti=4;Fun(i++);printf(“i=%dk=%d\n”,I,k);Return0;}13、设有定义floatx=123.4567;则执行”printf(“%f\n”,(int)(x*100+0.5)/100.0);”语句后的输出结果是(123.460000)。14、以下程序的输出结果是(252137)。Intmain(void){inta,b,c;a=25;b=025;c=0x25;printf(“%d%d%d\n”,a,b,c);return0;}15、下列程序运行时如果从键盘上输入“ABCdef<回车〉“,则输出结果是(abcDEF)。Intmain(void){charch;While((ch=getchar())!='\n'){if(ch>='A'&&ch<='Z')ch=ch+32;Elseif(ch>='a'&&ch<='z')ch=ch-32;Printf(“%c”,ch);}Printf(“\n”);Return0;}题库整理一、选择题执行下面的程序之后变量a的值为__A__intmain(void){inta,b;for(a=1,b=1;a<=100;a++){if(b>10)break;if(b%3==1){b+=3;continue;}b-=3;}return0;}A.5B.6C.7D.8下列程序段的输出结果是___B___intmain(void){inti,j,x=0;

for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);D.x=12return0;}D.x=12A.x=4B.x=8C.x=6以下程序段的输出结果是___A___intmain(void){inti=0,s=0;do{if(j%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);return0;}

A.16B.12C.28D.21A.16B.12C.28D.21以下程序段的输出结果是___A___for(inti=1;i<=5;i++){if(i%2)printf("<");elsecontinue;printf(">");}printf("$");A.<><><>$B.<<<$C..<><>$D.<<<>>>$8•若ij已定以为int类型,贝【J在以下程序段中内循环体的总的执行次数是___A___for(i=5;i;i--)for(j=0;j<4;j++){...}A.20B.25C.24D.30以下程序段的输出结果是___B___inti,j;for(j=10;j<11;j++)for(i=9;i==j-1;i++)printf("%d",j);A.11B.10C.9D.1011以下程序段的输出结果是___B___intx=23;do{printf("%d",x--);}while(!x);A.321B.23C.22D.死循环在下列给出的表达式中,与while(E)中的(E)不等价的表达式是___C___A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)若变量已正确定义,要求程序段完成求5!的计算,以下不能完成此操作的是___B___for(i=1,p=1;i<=5;i++)p*=i;for(i=1;i<=5;i++){p=1;p*=i;}i=1;p=1;while(i<=5){p*=i;i++;}i=1;p=1;do{p*=i;i++;}while(i<=5);二、填空题以下程序的功能是:键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请在划线处填空。intmain(void){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;

while(___x>=0___){if(x>amax)amax=x;if(___x<amin)amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);return0;}以下程序运行后的输出结果是___52inti=10,j=0;do{j=j+i;i--;}while(i>2);8921printf("%d\n",j);8921以下程序运行后从键盘上输入1298,则输出结果为intmain(void){intn1,n2;scanf("%d",&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf("%d",n1);}

return0;}有下列程序段,且变量已正确定义和赋值。for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);完成下面程序段的填空,使该程序段的功能与上述完全相同s=1.0;k=1;while(__k<=n_){s=s+1.0/(k*(k+1));k++;}printf("s=%f\n\n",s);7.下面程序的功能是输出以下形式的金字塔图案。7.下面程序的功能是输出以下形式的金字塔图案。请填空。*********intmain(void)inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=__2*i-1___;j++)printf("*");___printf(_"\n");}return0;}18下面程序段的功能是:输出100以内能被3整除且个位数为6的所有整数。请填空。inti,j;for(i=0;___i<10;i++){j=i*10+6;If(__j%3!=0)continue;printf("%d",j);}11.下列程序求Sn=a+aa+aaa+...+aa...aa(n个a)的值,其中a是一个数字。例如若a=2,n=5时,Sn=2+22+222+2222+22222其值应为24690。请填空。intmain(void){inta,n,count=1,sn=0,tn=0;printf(''请输入a和n:\n'');scanf("%d%d",&a,&n);while(count<=n){___tn=tn+a___;sn=sn+tn;___tn=tn*10;count++;}printf(''结果二%d\n'',sn);return0;}运行下面程序时,从键盘上输入“HELLO#”,输出结果是_LIPPSintmain(void){charch;while((ch=getchar())!='#'){if(ch>='A'&&ch<='Z'){ch=ch+4;if(ch>'Z')ch+='A'-'Z';}putchar(ch);}return0;}下面程序的功能是计算1至10之间的奇数之和及偶数之和。请填空。intmain(void){inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a+=i;第2章用C语言编写程序一,选择题1・C语言中,运算对象必须是整型数的运算符(A)。%B・\匚%和\D./以下能正确地定义整型变量a,b和c并为它们赋初值5的语句是(D)。A.inta=b=c=5;B.inta,b,c=5;C.a=5,b=5,c=5;D.inta=5,b=5,c=5;3•如下程序的执行结果是(C)。intmain(void){inti,sum=0;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);A.a=20,b=10,c=20A.a=20,b=10,c=20B.a=30,b=10,c=20A.a=20,b=10,c=20A.a=20,b=10,c=20B.a=30,b=10,c=20return0;A.6B.3return0;A.6B.3}C.死循环D.0下列两条语句"intc1=1,c2=2,c3=1・0/c2*c1;”执行后变量c3的值是(A)。A.0B.0.5C.1D.25•下列条件语句中,功能与其他语句不同的是(D)。if(a)printf("%d\n",x);elseprintf("%d\n",y);if(a==0)printf("%d\n",y);elseprintf("%d\n",x);if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);if(a==0)printf("%d\n",x);elseprintf("%d\n",y);6•下列程序的运行结果是(C)。intmain(void){inta,b,c;a=20,b=30,c=10;if(a<b)a=b;if(a>=b)b=c;c=a;printf("a=%d,b=%d,c=%d",a,b,c);return0;}C.a=30,b=10,c=30D.a=30,b=10,c=20二、填空题以下程序的输出结果是3,2inta=2,b=3;{a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);return0;}设有inti,j,k;则执行"for(i=0;j=10;i<=j;i++;j--)k=i+j;"循环后k的值为10。设有"intx=1,y=2",则表达式1・0+x/y的值为1.0。4•下列程序的功能试计算s=1+12+123+1234。请填空。intmain(void){intt=0.s=0,i;for(i=1;i<=5;i++){t=i+t*10;s=s+t;}printf("s=%d\n",s);return0;}若s的当前值为0,执行循环语句"for(i=1;i〈=10;i=i+3)s=s+i;”后,i的值为13。6•以下for语句的循环次数是3次。for(x=0;x<=4;x++)x=x+1;若从键盘输入58,则以下程序段的输出结果是585858。intmain(void){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);return0;}下列程序段的输出结果是2.000000,4。intmain(void){floata;intb=5;a=5/2;b=b/2*a;printf("%f,%d\n",a,b);return0;}以下程序的功能是输入三个数,输出三个数中的最大值。请填空。return0;}return0;}return0;}return0;}#include<stdio,h>intmain(void){intx,y,z,u,v;scanf("%d%d%d",&x,&y,&z);if(x>y)u=x;elseu=y;if(u>z)v=u;elsev=z;printf("%d\n",v);return0;}_b=i+1__;c+=b;}printf("偶数之和二%d\n",a);printf("奇数之和=%d\n",_c-11_);习题11return0;return0;}下面程序的运行结果是(B)。#include<stdio.h>intmain(void){intx[5]={2,4,6,8,10},*p,**pp;p=x;pp=&p;printf(“%d”,*(p++));printf(“%d\n”,**pp);return0;}A.44B.24C.22D.46对于以下变量的定义,正确的赋值是(D)。int*p[3],a[3];A.p=aB.*p=a[0]C.p=&a[0]D.p[0]=&a[0]下列程序的输出是(D)。#include<stdio.h>intmain(void){inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf(“%d\n”,p[3][2]);return0;}A.上述程序有错误B.6C.8D.12下列程序的输出结果是(C)。#include<stdio.h>#include<string.h>char*fun(char*t){char*p=t;return(p+strlen(t)/2);}intmain(void){char*str=”abcdefgh”;str=fun(str);puts(str);设有如下定义的链表,则赋值为7的表达式是(D)。structst{intn;structst*next;}a[3]={5,&a[1],7,&a[2],9,NULL};*p=&a;A.p->nB.(p->n)++C.(++p)->nD.p->next->n二、填空题下面程序可以逐行输出由Ianguage数组元素所指向的5个字符串。请填写程序中相应语句。#incIude<stdio.h>intmain(void){char*Ianguage[]={“BASTC”,”FORTARN”,”PROLOG”,”JAVA”,”C++”};char**q;intk;for(k=0;k<5;k++){q=&language[k];printf(“%s\n”,*q);}return0;}下面的程序输入10个成绩,查找最高分并输出。请填写程序中相应的语句。#incIude<stdio.h>returnpos;returnpos;}returnpos;returnpos;}int*GetMax(intscore[],intn);intmain(void){inti,score[10],*p;for(i=0;i<10;i++)scanf(“%d”,&score[i]);p=GetMax(score,10)printf(“Max:%d\n”,*p);return0;}int*GetMax(intscore[],intn){inti,temp,pos=0;temp=score[0];for(i=0;i<n;i++)if(score[i]>temp){temp=score[i];pos=i;}下列函数用于将链表中各结点的数据依次输出。请填写程序中相应语句。voidprint(structstudent*head){structstudent*p;p=head;if(head!=NULL)do{printf(“%ld\n”,p->data);p二p->next;}while(p!=NULL);}已建立学生"英语”课程的成绩链表(成绩存于score域中,学号存于num域中),下列函数用于输出不及格学生的学号和成绩,及补考学生人数。请填写程序中相应语句。voidrequire(structstudent*head){structstudent*p;longx;if(head!=NULL){p二head;while(P!=NULL){if(p->score<60){printf(“%7d%6lf\n”,p->num,p->score);x++;p=p->next;}printf(“%ld\n”,x);}}1•若程序中有下面的说明和定义,则会发生的情况是—一。structabc{intx;chary;}structabcs1,s2;A.编译出错程序将顺利编译,连接,执行能顺利通过编译,连接,但不能执行能顺利通过编译,但连接出错有定义"structex{intx;floaty;charz;}example;",下面的描述中不正确的是一B一。A.struct是定义结构类型的关键字example是结构类型名x,y,z都是结构成员名structex是结构类型名设有如下定义:structss{charname[10];intage;charsex;}std[3],*p=std;下面输入语句中错误的是一B—。A.scanf(“%d",&(*p).age);B.scanf(“%s",&);C.scanf(“%c",&std[0].sex);D.scanf(“%c",&.(p->sex));4•下列程序的输出结果是一B一。structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf(“%s\n",(*p).name);}intmain(void){structstustudents[3]={{9801,"Zhang“,20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);A.ZhangB.ZhaoC.WangD.185.下列程序的输出结果是一B一。structstu{charnum[10];floatscore[3];};intmain(void){structstus[3]={{“20021”,90,95,85},{20022”,95,80,75},{20023”,100,95,90}};structstu*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);A.260.00B.270.00C.280.00D.285.00已有定义和赋值语句“struct{intday;charmouth;intyear;}a,*b;b=&a;”,可用a.day引用结构成员day,请写出通过b引用结构成员a.day的两种形式(*b).day___b->day.以下程序的运行结果是__6.intmain(void){structcmplx{intx;inty;}cnum[2]={1,3,2,7};printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1],x);return0;};设有三个人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名和年龄。请填空。staticstructman{charname[20];intage;}person[]={"li-ming”,18,"wang-hua",19,"zhang-ping”,20};intmain(void){inti,j,max,min;max=min=person[0].age;for(i=1;i<3;i++)if(person[i].age>max)max=person[i].age;elseif(person[i].age<min)min_=person[i].age;for(i=0;i<3;i++)if(person[i].age!=max&&person[i].age!=min)}printf("%s%d\n",person[i].name,person[i].age);break;}return0;}以下程序的运行结果是21___.#include<stdio.h>intmain(void){structS{inta,b;}data[2]={10,100,20,200};structSp=data[1];

printf("%d)\n",++(p.a));return0;}第3章分支结构一、选择题1•若变量x、y都为int型数,以下表达式中不能正确表示数学关系|x-y|<10是(C)A.abs(x-y)<10C.(x-y)<-10||!(y-x)>10B.x-y>-10&&x-y<10D.(x-y)*(x-y)<1003.下列程序段的输出结果是(A)intmain(void){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);return0;}A.011122.B.012C.012020D.1204•下列程序段的输出结果是(C)intmain(void){intm,k=0,s=0;for(m=1;m<=4;m++){switch(m%4){case0:case1:s+=m;break;case2:case3:s-=m;break;k+=s;printf("%d",k);return0;}C.-4D.-12A.10B.-26•下面程序运行时如果输入“-123362<回车>”,则输出结果是(B)intmain(void)C.-4D.-12{intt,a,b,i;for(i=1;1<=3;i++){

scanf("%d%d",&a,&b);if(a>b)t=a-b;elseif(a==b)t=1;elset=b-a;printf("%d",t);}return0;C.134}C.134A.304B.314D.3167■下列程序运行时输人"7mazon<回车>”,则输出结果是(A)intmain(void){charc;inti;for(i=1;i<=5;i++){c=getchar();if(c>='a'&&c<='u')c+=5;elseif(c>='y'&&c<='z')c='a'+c-'v';putchar(c);}reyurn0;}D.rfetsA.7rfetB.7rfetsC.rfetD.rfets9■下列程序段的输出结果是(A)intmain(void){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)f(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=-1;printf("%d\n",x);TOC\o"1-5"\h\zreturn0;}D.不确定A.-1B.0D.不确定的值10■下列程序段运行后x的值是(B)inta=0,b=0,c=0,x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A.34B.4C.35D.3二、填空题2•以下程序段的输出结果是130intmain(void){inti,m=0,n=0,k=0;for(i=9;i<=11;i++)switch(i/10){case0:m++;n++;break;case1:n++;break;default:k++;n++;printf("%d%d%d\n",m,n,k):return0;}3.以下程序段的输出结果是200intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf("%d,%d\n",x,y);4•下列程序段的输出结果1inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);6•以下程序段的输出结果是厶」intmain(void){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("%d%d\n",a,b);return0;}7.以下程序段的输出结果是虫intmain(void){intn=0,m=1,x=2;'if(!n)x-=1;TOC\o"1-5"\h\zif(m)x-=2;if(x)x-=3;printf("%d\n",x);return0;}8•列程序段的输出结果是身4599intmain(void){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<c&&b<c)t=b;b=a;a=t;printf("%d%d%d\n",a,b,c);return0;}9•下列程序段的输出结果是10200inta=10,b=20,c;c=(a%b<1)||(a/b>1);printf("%d%d%d\n",a,b,c);10•下列程序段的输出结果是3intmain(void){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);return0;}第8章指针一、选择题1、若有定义”inta[10]={1,2,3,4,5,6,7,8,9,10},*p二a;”,则值为6的表达式是(C)。A、*p+6B、*(p+6)C、*p+=5D、p+52、若有定义”intn1=0,n2,*p=&n2,*q=&n1;”,则与赋值语句”n2二n1”等价的是(A)。A、*p=*qB、p=qC、*p=&n1D、p=*q3、设有定义“inta[10]={123456789,10}”,*p=&a[3],b;”,则执行语句“b二p[5];”后变量b的值为(D)。A、5B、6C、8D、94、以下程序的输出结果是(B)。intmain(void){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a{3},*q=p+2;printf(“%d\n”,*p+*q);return0;}A、16B、10C、8D、65、下列叙述中错误的是(C)。A、改变函数形参的值,不会改变对应实参的值B、函数可以返回地址值C、可以给指针变量赋一个整数作为地址值D、当在程序的开头包含头文件stdio.h时可以给指针变量赋NULL6、以下程序的输出结果是(A)。voidfun(int*x,int*y){printf(“%d%”,*x,*y)*x=3;*y=4;}intmain(void){intx=1,y=2fun(&y,&x);printf(“%d%d”,x,y);return0;}A、2143B、1212C、1234D、21127、以下程序输出的结果是(A)。voidfun(char*a,char*b){a=b;(*a)++;}intmain(void){charc1=A',c2=a',*p1,*p2;p1=&c1;p2&c2;fun(p1,*p2);printf(“%c%c\n”,c1,c2);return0;}A、AbB、aaC、AaD、Bb10、以下程序的输出结果是(D)。intmain(void){chara[]}=”programming”,b[]=”language”;char*p1=a,*p2=b;inti;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf(“%c”,*(p1+i);return0;}A、gmB、rgC、orD、ga12、以下函数的功能是(A)。viodfun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}A、将pl所指字符串复制到p2所指内存空间B、将pl所指字符串的地址赋给指针p2C、对p1和p2两个指针所指字符串进行比较D、检查p1和p2两个指针所指字符串中是否有'\0'14、以下程序的输出结果是(D)intmain(viod){char*p1,*p2,str[50]=”ABCDEFG”;p1=”abcd”;p2=”efgh”;strcpy(str+1,p2+1;strcpy(str+3,p1+3);printf(“%s”,str);return0;}A、AfghdEFGB、AbfhdC、AfghdD、Afgd15、以下程序的输出结果是(C)。include<string.h>intmain(void){charp[20]={“a”,”b”,”c”,”d”},q[]=”abc”,r[]=”abcde”;strcpy(p+strlen(q),r);strcat(p,q);printf(“%d%d\n”,sizeof(p),strlen(p));return0;}A、209B、99C、2011D、1111二、填空题3、下面程序的输出结果是(6)。intmain(void){inta[]={2,4,6},*prt=&a[0],x=8,y,z;for(y=0;y<3,y++)z=(*(prt+y)<x)?*(prt+y):x;printf(“%d\n”,z);return0;}4、以下函数的功能是删除字符串s中的所有数字字符。请填空。voiddele(char*s){intn=0,i;for(i=0;s[i];i++)if(s[i]v'O'或s[i]>'9‘)s[n++]=s[i];s[n}='\0';}5、以下函数用来在w数组中插入元素x,w数组中的数已按由小到大的顺序存放,n所指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。请填空。voidfun(char*w,charx,int*n){inti,p=0;w[*n]=x;TOC\o"1-5"\h\zwhile(x>w[p]p++;for(i=*n;i>p;i--)w[i]=w[i-1];w[p]=x;++*n;}8、下列程序中的函数strepy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如:若t所指字符串为"efgh",调用strcpy2后,s所指字符串为"efghefgh"。请填空。voidstrcpy2(char*s,char*t){char*p=t;while(*s++=*t++);s=s-1;while(*s++=*p++);}intmain(void){charstr1[100]=“abcd”,str2[]=”efgh”strcpy2(str1,str2);printf(“%s\n”,str1);return0;}9、下列程序运行时如果从键盘上输入字符串“qwerty”和“abed”,则程序的输出结果是(10)。intstrle(ehara[],eharb[]){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}return(num);}intmain(void){eharstr1[81],str2[81],*p1=str1,*p2=str2;gets(p1);gets(p2);printf(“%d\n”,strle(p1,p2));retrun0;}11、下面程序运行后输入g,输出(13gramming!)。intmain(void){inti;ehars[]=”programming!”,eh;printf(“%d\t”,sizeof(a));ch=getchar();for(i=0;i<strlen(s);i++){if(s[i]==ch){strcpy(s,s+i);puts(s);break;}}return0;}14、以下程序运行后输入"3”abcde<回车>",贝9输出结果是(cdeab)voidmove(char*str,intn){chartemp;inti;temp=str[n-1];for(i=n-1;i>0;i--)str[i]=str(i-1);str[0]=temp;intmain(void){chars[50];intn,i,z;scanf(“%d,%s,&n,s);z=strlen(s);for(i=1;i<=n;i++)move(s,z)printf(“%s\n”,s);return0;}第1章引言一、选择题

I•下列叙述中错误的是DA•计算机不能直接执行c语言编写的源程序C程序经C编译程序编泽后,生成扩展名为Obj的文件是一个二进制文件扩展名为Obj的文件,经连接程序生成扩展名为exe的文件是一个二进制文件扩展名为obj和exe的二进制文件都可以直接运行2•下列叙述中正确的是CA•C语言程序将从源程序中第一个函数开始执行B•可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束main可作为用户标识符,用以命名任意一个数作为主函数3,下列叙述中正确的是CA•用C程序实现的算法必须要有输入和输出操作B•用C程序实现的算法可以没有输出但必须要有输入用C程序实现的算法可以没有输入但必须要输出用C程序实现的算法可以既没有输入也没有输出4•下列叙述中错误的是A用户所定义的标识符允许用关腱字用户所定义的标识符应尽量做到“见名知意"用户所定义的标识符必须以字母或下划线开头用户定义的标识符中,大、小写字代表不同标识5.下列不合法的用户标识符是CA.j2_KEYB.DOubleC.A.j2_KEYB.DOubleC.4d_aD._8以下选项中合法的用户标识符是BlongB._2TestC.3DmaxD.A.dat结构化程序由三种基本结构组成,三种基本结构组成的算法A可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D•只能完成一些简单的任务下列叙述中错误的是___D_A•C语言源程序经编译后生成扩展名为Obj的目标程序c程序经过编泽、连接步骤之后才能形成一个真正可执行的二进制机器指令文件用C语言编写的程序为源程序,它以ASCII代码形式在放在一个文本文件中C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令二、填空1、结构化程宇设计所规定的三种基本控制结构是顺序结构循环结构分支结构2•在c程序中,可用{}括起许多语句称为—复合—语句3、C程序的基本组成单位是___语句___4•c语言中的标识符只能由三种字符组成它们是_数字、__字母__和__下划线_5.c语言的直接可执行文件通过___编译__和链接生成的。第七章数组1、假定int类型变量占用两个字节,已有定义"intx[10]={0,2,4};”,则数组x在内存中所占字节数是(D)A、3B、6C、10D、202、以下能正确定义数组并正确赋初值的语句是(D)A、intN=5,b[N][N];B.inta[1][2]={{1},{3}};C、intc[2][]={{1,2},{3,4}};D.intd[3][2]={{1,2},{34}};3、下述对C语言字符数组的描述中错误的是(C)A•字符数组可以存放字符串字符数组中的字符串可以整体输入、输出可以在赋值语句中通过赋值运算符“二”对字符数组整体赋值D•不可以用关系运算符对字符数组中的字符串进行比较4、设有数组定义“chararray[]="China";",则数组array所占的空间为(C)A、4个字节B、5个字节C、6个字节D、7个字节5、有定义“charx[]abcdefg";chary□二{'a','b','c','d','e','f','g};",则正确的叙述为(C)A、数组x和数组y等价B、数组x和数组y的长度相同C、数组x的长度大于数组y的长度D、数组x的长度小于数组y的长度6、下列能正确定义字符串的语句是(D)。A、charstr[]={'\064'};B、charstr="kx43";C、charstr="";D、charstr[]="\0";7、以下程序的输出结果是(A)intmain(void){staticinta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);return0;}A、18B、19C、20D、218、以下程序的输出结果是(C)intmain(void){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++)printf("%d",m[k][i]);return0;}A、456B、258C、369D、7899、以下程序的输出结果是(B)intmain(void){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);return0;}A、42B、45C、56D、6010、下列程序的运行结果是(B)intmain(void){inta[3][3]={{1,2,3},{4,6,2},{9,3,6}},s=0;inti,j,k=1;for(i=0;i<3;i++){for(j=0;j<3;j++)a[i][j]=a[i][j]/k;k++;}for(i=0;i<3;i++)s+=a[i][i];printf("%d",s);return0;}A、3B、6C、7D、1411、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输人。请填空。intmain(void){floatx[1000],sum=0.0,ave,a;intn=0,i;printf("Entermark:\n");scanf("$f",&a);while(a>=0.0&&n<1000){sum+=a;x[n]=a;n++;scanf("%f",&a);ave=sum/n;printf(“output:\n");printf("ave=%f\n",ave);for(i=0;i<n;i++)if(x[i]<ave)printf("%f\n",x[i]);return0;}12、下列程序的输出结果是58。intmain(voia)inta[a][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};{inti,j,s=0;for(i=0;i<4;i++);{for(j=0;j<4;j++);{if(a[i][j]<0)continue;if(a[i][j]==0)break;s+=a[i][j];}printf(“%d\n",s);return0;}13、以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。43726915810intmain(void){intx[4][4],n=0,i,j;for(j=0;j<4;j++)for(i=3;i>=j;i--){n++;x[i][j]=n;}for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%3d",x[i][j]);printf("\n");}return0;14、下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。intmain(void){chara[]="clanguage",t;inti,j,k;k=strlen(a);for(i=0;i<二k-2;i+=2)for(j二i+2;j<二k;j二j+2)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}puts(a);return0;}15、以下程序的输出结果是24。intmain(void){intp[7]={11,13,14,15,16,17,18};inti=0,j=0;while(i<7&&p[i]%2==1)j+=p[i++];printf("%d\n",j);return0;}16、以下程序的输出结果是92。intmain(void){inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};inti=0,j=0,s=0;while(i++<4){if(i==2||i==4)continue;j=0;do{s+=a[i][j];j++;}while(j<4);}printf("%d\n",s);return0;}17、以下程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论