C程序设计基础-复习题_第1页
C程序设计基础-复习题_第2页
C程序设计基础-复习题_第3页
C程序设计基础-复习题_第4页
C程序设计基础-复习题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计基础_复习题C程序设计基础_复习题C程序设计基础_复习题xxx公司C程序设计基础_复习题文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度c语言规定,任何非0的数像1

-1等都被认为是真,而0被认为是假

1>1为假试题一、单选题已知intk,m=1;执行语句k=-m++;后,k的值是_____。【知识点:难度:正确答案:A】A.-1B.0C.1D.-2已知定义intm;floatk;正确的语句是。【知识点:难度:正确答案:D】A.(intk)%mB.int(k)%mC.int(k%m)D.(int)k%m当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是______。【知识点:难度:正确答案:B】A.m=k=nB.(m=k)&&(n=m)C.(m=k)||(n=k)D.(n=m)&&(m=k)已知intx=5;表达式6>x>1值是_____。【知识点:难度:正确答案:A】A.0B.1C.5D.表达式语法错表达式6>x>1,先判断6>x为0,再判断0>1,所以值为0。(6>x为1,再判断1>1,所以值为0。)下列程序段执行后c值为_____。【知识点:难度:正确答案:D】intk=7,c=0; while(--k)if(k%3)continue;elsec++;A.5B.4C.3D.2已知字母a的ASCII码为十进制数97,且ch为字符型变量,则执行语句ch=‘a’+‘D’-‘A’;后,ch中的值为_____。【知识点:难度:正确答案:C】A.dB.cC.100D.不确定设m,n已正确定义,执行语句{for(m=0,n=10;m<n;m+=3,n--);}以后,m,n的值是________。【知识点:难度:正确答案:C】A.6,7B.7,6C.9,7D.7,9已知char*t[]={”How”,”are”,”you!”};则t是_______。【知识点:难度:正确答案:B】A.指向char变量的指针B.指向字符指针的指针常量C.指向”How”的指针变量D.指向’H’的指针假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序段是______。【知识点:难度:正确答案:C】A.chars[5]={"ABCDE"};puts(s)B.chars[5]={‘A’,’B’,’C’,’D’,’E’};puts(s);C.char*s;s="ABCDE";puts(s);D.char*s;scanf(“%s”,s);puts(s);以下程序有错,错误原因是______。【知识点:难度:正确答案:D】main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;......}A.p和q的类型不一致,不能执行*p=*q;语句B.*p中存放的是地址值,因此不能执行*p=40;语句C.q没有指向具体的存储单元,所以*q没有实际意义D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果若有定义:inta=2,b=5,c=8;则表达式c|=(~a&&b)^!(a&b)的值为_____。【知识点:难度:4正确答案:B】A.14B.8C.1D.0设inta=5,b=7,表达式(++a==b--)++a:--b的值是_______。【知识点:难度:2正确答案:C】A.7B.6C.5D.4设a=3,b=2,那么表达式(a=b=7,b=a!=7)的值是。【知识点:难度:2正确答案:D】A.1B.2C.7D.0逗号(,)也可以是运算符,逗号表达式最右边的子表达式的值即为逗号表达式的值。而b=a!=7的值为0逗号运算符只取最右边的子表达式的值,但每个子表达式都要运行设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行语句(m=a>b)&&(n=c>d);后n的值是_____。【知识点:难度:3正确答案:A】A.2B.1C.0D.3&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,下列程序段的输出结果是_____。【知识点:难度:3正确答案:B】intk=2,s=0;switch(k){case2:s++;k++;case1:s++;case3:s+=1;switch(s){case2:s+=2;break;default:k++;break;}default:s+=3;}printf("%d#%d#",s,k);A.1#3#B.6#4#C.3#2#D.3#4#下列程序的输出结果是_____。【知识点:难度:2正确答案:C】intf(intx){staticintk;return++k+x;}main(){intk;for(k=1;k<4;k++)printf("%d#",f(k));}A.2#5#B.3#6#C.2#4#6#D.不确定下列程序的输出结果是_____。【知识点:难度:2正确答案:D】main(){charx=040;printf("%o\n",x<<1);}A.oB.40C.1000000D.100下列程序段的输出是__________。【知识点:难度:3正确答案:A】main(){intx=-9,y=5,z=8;if(x=y)if(x>0)z=0;

elsez+=1;printf("z=%d\n",z);}A.z=0B.z=1C.z=8D.z=9esle子句与其之前最近的不完整if配对。

C语言中等号“=”为赋值运算符,不用于判断相等,判断相等应用“==”,因此

执行x=y后,x=5,if(5)相当于if(

true),

执行if(x>0)z=0,所以z=0下列程序段的输出是__________。【知识点:难度:3正确答案:B】#defineSQ(a,b)(a*a-2*a*b+b*b)main(){intk=4;printf("%d",SQ(k,k-1));}A.1#define定义一个宏(不是一个函数),用于字符串的替换,注意替换不是用数值去替换,也不会自动加括号,因此SQ(k,k-1)=k*k-2*k*k-1+k-1*k-1=-k*k-2SQ(4,3)=-4*4-2=-18B.-18C.-15D.-8若运行以下程序时,从键盘输入Hello_Everyone!<CR>(<CR>表示回车),则下面程序的运行结果是_________。【知识点:难度:2正确答案:C】main(){ charc; intv1=0,v2=0; do{ switch(c=getchar()) {case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O': case'u':case'U':v1+=1; default:v1+=1;v2+=1;} }while(c!='\n');printf("%d,%d\n",v1,v2);}A.6,10B.21,10C.22,10D.6,9下列程序段输出_____。【知识点:难度:4正确答案:D】main(){ charstr[2][5]={"abcd"};strcpy(str[0],"You");strcpy(str[1],"Me");str[0][3]='&';printf("%s\n",*str);}A.You&MeB.abcdC.abc&D.You&对于函数f,调用f(12345)的输出是_____。【知识点:难度:3正确答案:A】voidf(intn){if(n<10)

printf("%1d",n);

else{f(n/10);

printf("%1d",n%10);}}A.12345B.54321C.11111D.5432下列程序段的输出结果是_____.【知识点:难度:2正确答案:B】voidfun(char*fname,char*st){ FILE*myf;inti; myf=fopen(fname,"w"); for(i=0;i<strlen(st);i++)fputc(st[i],myf); fclose(myf);}voidmain(){ fun("test_","C_");fun("test_","is_fun");}A.C_is_funB.is_funC.test_is_funD.C_试题二、程序阅读题以下程序的输出结果是_______。【知识点:难度:3正确答案:C】main(){ charch[2][5]={"1234","5678"},*p[2]; inti,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>′\0′;j+=2) s=10*s+p[i][j]-′0′; printf("%d\n",s);}A.1537B.2468C.1357D.2648运行下列程序的输出结果是__________。【知识点:难度:3正确答案:D】structst{ intx; int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){ p=aa;printf("%d,",++p->x);printf("%d,",++p->x);printf("%d",++(*p->y));}A.60,60,21B.51,51,21C.60,70,31D.51,52,11下列程序的输出结果是__________。【知识点:难度:4正确答案:A】voidfun(intm,int*a,int*n){ inti,j=0;for(i=1;i<=m;i++)if(i%3==0&&i%7==0) a[j++]=i;*n=j;}voidmain(){ intaa[50],n,k;fun(50,aa,&n);for(k=0;k<n;k++)printf("%d#",aa[k]);}A.21#42#B.3#7#C.3#7#21#42#D.3#7#9#49#运行下面程序的输出结果是__________。【知识点:难度:3正确答案:B】intx,y;intf(intn){ staticintx=0;x++; if(!(n%3)) printf("%d",n); else y++; returnx;}voidmain(){inti;x=1;y=5;for(i=0;i<7;i++)x=f(i);printf("#%d#%d\n",x,y);}A.1245#7#10B.036#7#9C.1245#1#9D.036#1#10如果已经有了有关的定义,则下列程序的输出结果为_______。【知识点:难度:4正确答案:C】main(){ inti,n=7;charb[7],*a[]={"January","February","March","April","May","June","July"};f(a,n);for(i=0;i<n;i++)if(strlen(a[i])>=i)b[i]=*(a[i]+i);b[i]='\0';printf("%s\n",b);}voidf(char*a[],intn){ inti,j; char*temp;for(i=1;i<n;i++) for(j=0;j<n-i;j++)if(strcmp(a[j],a[j+1])>0)swap(&a[j],&a[j+1]);}voidswap(char**s1,char**s2){ char*temp; temp=*s1;*s1=*s2;*s2=temp;}A.JeriB.JuyichayC.AenyD.JFMAMJJ试题三、程序(段)填空题下面的程序输入n(1<=n<=10),打印出n行杨辉三角。第m行有m个整数,其中第i个整数是m选i的组合数:Ci,m。每个数右对齐占4位,相邻行交错显示,呈金字塔状。例如,输入6以后,输出的金字塔是:【知识点:难度:3正确答案:(1)A(2)B(3)G】11112113311464115101051/*1*/#include""/*2*/main()/*3*/{/*4*/ inti,j,n,a[10][10];/*5*/ scanf("%d",&n);/*6*/ for(i=0;i<n;i++)/*求每行两端数据*//*7*/ a[i][0]=a[i][i]=1;/*8*/ for(i=0;i<____(1)____;i++)/*9*/ for(j=1;j<____(2)____;j++)/*求每行的内部数据*//*10*/ a[i][j]=a[i-1][j-1]+a[i-1][j];/*11*/ printf("\n");/*12*/ for(i=0;i<n;i++)/*13*/ {/*14*/ for(j=0;j<__(3)___;j++)printf("");/*打印前导空格*//*15*/ for(j=0;j<=i;j++)/*打印一行数据*//*16*/ printf("%4d",a[i][j]);/*17*/ printf("\n");/*换行*//*18*/ }/*19*/}nB.iC.n-1D.i-1E.n-iF.n-i-1G.n-i+1H.i-nI.i-n+1一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到R对(R为给定的正整数)。下面的程序输入一个正整数R,输出“至少到第几个月时,兔子总对数才能达到R对。”例如:输入30,输出“至少第9个月才有30对兔子。”【知识点:难度:3正确答案:(1)F(2)A(3)C】/*1*/#include""/*2*/main()/*3*/{/*4*/ intmonth=1,R,R1=1,R2=0,R3=0;/*5*/ scanf("%d",&R);/*6*/ while(R1+R2+R3<R)/*兔子数量未达到给定的量,继续计算下个月的值*//*7*/ {month++;/*8*/ R3=___(1)___;/*9*/R2=___(2)___;/*10*/R1=___(3)___;/*11*/ }/*12*/ printf("至少第%d个月才有%d对兔子。\n",month,R1+R2+R3);/*13*/}R1B.R2C.R3D.R1+R2E.R1+R3F.R2+R3G.R3-R1H.R3-R2I.R2-R1给定一个整数序列(整数允许是负数,但至少有一个非负整数):a1,a2,...,ai,...,aj,...,an

温馨提示

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

评论

0/150

提交评论