c语言复习资料例题答案_第1页
c语言复习资料例题答案_第2页
c语言复习资料例题答案_第3页
c语言复习资料例题答案_第4页
c语言复习资料例题答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

二、类型及表达式一)合法的标志符:例题:是合法的用户自定义标识符的(D)A)ah-spksB)doubleC)<ctrl>D)_myapple以下正确的C语言标识符是(C)A)%xB)a+bC)a123D)test!以下不能定义为用户标识符的是(C)A)VoidB)b_2C)intD)name二)合法的整型常量例题:以下选项中可作为C语言合法整数的是(D)A)11010BB)0583C)x2b2D)0xafb三)合法的实型常量例题:以下选项中可作为C语言合法常量的是(A)A)-80.B)-080C)-8e1.0D)-80.0e四)合法的字符型常量例题:设有说明语句:chara=’\123’;则变量a(A)A)包含1个字符B)包含2个字符C)3个字符D)说明不合法C语言中,“\x5d”在内存中占用的字节数是(A)A)2B)5C)4D)1字符串“\t\x42\\bcd\n”的长度是(A)。A)7B)10C)12D)13五)各种基本类型变量所占的字节数例题:下列式中,值不为4的表达式是(C)A)sizeof(unsignedlong)B)sizeof(long)C)sizeof(unsignedint)D)sizeof(float)六)合法的表达式例题:设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是(BC)A)a=5++B)a=b=c++C)a%=2D)b=a+1=2七)表达式的值例题:设整型变量a的值为2,下列表达式值为1的是(C)A)a%3B)a/3C)--aD)a++下列表达式的值为0的是(A)A)7/8B)7%8C)7/8.0D)7<8设floatm=4.0,n=4.0;使m为10.0的表达式是(D)A)m-=n*2.5B)m/=n+9C)m*=n-6D)m+=n+2逗号表达式(a=4*5,a*2),a+15的值是(A)A)35B)40C)55D)20八)++、--运算例题:当i=4,j=5时,表达式3-(i++)*4+(--j)的值如何,i,j的值多少?表达式值为-9,i=5,j=4九)表达式的类型例题:下列式中,最终运算结果的数据类型不是双精度的表达式的是(A)A)(int)(3+3.0)B)1e-3C)(double)(3)D)(int)3.0+3.0二、顺序结构例题:putchar函数可以向终端输出一个(D)A)整数B)实数C)字符串D)字符二)printf和scanf语句的使用方法:例题:设有语句scanf(%d,%d”,&m,&n);要使m、n的值依次是2、3,正确是输入是(B)A)23B)2,3C)2;3D)2设变量定义为inta,b;执行下列语句时,输入(B),则a和b的值都是10scanf(“%d,%d”,&a,&b);A)1010B)10,10C)a=10b=10D)a=10,b=10有以下程序main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789例题:有如下程序段:inta=3,b=15;floatf=7.5;printf(“%.1f”,(float)a+b/2+(int)f%3);执行该程序段后,运算结果为:(B)A)11.5B)11.0C)11D)12.0三、选择结构一)关系表达式、逻辑表达式和条件表达式例题:在C程序中,用(B)表示逻辑”真”。A)1B)非0的数C)非1的数D)大于0的数若有定义:intx=2,y=3,z=4;则表达式!(x+y)+z-1&&y+z%2的值为(C)A)4B)0C)1D)2设inta=0,b=0,c=0;c=++a||b++;则a、b、c值分别为(d)A)010B)111C)110D)101执行语句:inta=1,b=0,c;c=a>0||++b;后,b的值为(a)A)0B)1C)2D)不确定设intx,y,z=4;x=y=++z;x=(y>z)?x+2:x++;则x的值是(C)A)4B)5C)6D)7为表示关系x>y>=z,则正确的c语言表达方式为(C)。A)(x>y>=z)B)(x>y)and(y>=z)C)(y<x)&&(y>=z)D)(x>y)&(y>=z)若变量ch为char类型,能正确判断出ch为大写字母的表达式是(D)A)’A’<=CH<=‘Z’B)(ch>=’A’)||(ch<=’Z’)C)(‘A’<=ch)and(‘Z’>=ch)D)(ch>=’A’)&&(ch<=’Z’)二)if语句例题:1.有以下程序

main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(%d,%d,%d,%d\n,a,b,c,d);}程序输出(D)A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错2.以下程序运行后的输出结果是4599main(){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);}三)switch语句(1)switch的执行过程(2)break的用法例题:1.#include<stdio.h>main(){intx=1,y=1,a=0,b=0;switch(x){case1:switch(y){case0:a++;case1:b++;case2:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}输出结果:a=1,b=32.#include<stdio.h>输入:3210main(){charc;while((c=getchar())!=’\n’){switch(c-‘1’){case0:case1:putchar(c+2);case2:putchar(c+3);break;case3:putchar(c+4);default:putchar(c+1);break;}printf(“\n”);}}输出结果:645341四)算法输入出租车里程S,输出应付车费F。S和F的关系如下:#include<stdio.h>voidmain(){floatS,F;scanf(“%f”,&S);if(S<=3)F=8;elseF=8+(S-3)*2;printf(“F=%f\n”,F);}四、循环结构一)循环条件均以条件为真(非0)进行循环,以条件为假(0)结束循环)例题:以下叙述正确的是(D)do-while语句构成的循环不能用其它语句构成的循环来代替do-while语句构成的循环只能用break语句退出do-while语句构成的循环,在while后的表达式为非零时结束循环do-while语句构成的循环,在while后的表达式为零时结束循环设有程序段:intk=10;while(k=0)k=k-1;则循环体执行的次数为(C)A)10次B)9次C)0次D)1次下列(D)循环不是无限循环A)for(y=0;x=1;++y);B)for(;;x=0);C)while(x=1){x=1;}D)for(y=0,x=1;x>++y;x++)二)三种循环的执行流程例题:设变量y值为3,执行下列循环语句后,变量y的值的是(C)doy++;while(y++<4);A)3B)4C)5D)6执行语句for(I=1;I++<4;);后变量I的值是(C)A)3B)4C)5D)0三)循环嵌套的执行次数例题:1.#include“stdio.h”voidmain(){intI,j;for(I=0;I<=3;I++){for(j=0;j<I;j++)printf(”%d”,I);printf(“*\n”);}}输出结果:*1*22*333*四)break和continue的用法例题:1.有以下程序voidmain(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}输出结果:42.#include<stdio.h>voidmain(){intI,m=0,n=0,k=0;for(I=5;I<=7;I++)switch(i/6){case0:m++;n++;case6:n++;break;default:k++;n++;}printf(“%d,%d,%d\n”,m,n,k);}输出结果:1,4,2算法略五、数组一)数组语法数组定义为inta[10][10];,则数组a有(A)个数组元素。A)100B)81C)20D)121以下一维数组a的正确定义是(D)A)inta(10);B)intn=10,a[n];C)intn;D)#defineN10Scanf(“%d”,&n);inta[N];Inta[n];设有语句”inta[]={3,4,5,9,8,7};”则表达式a[1]-a[4]的值是(C)A)-6B)6C)-4D)2以下不能正确定义二维数组的是(D)A)inta[2][2]={{4},{5}};B)inta[][2]={4,5,6,7};C)inta[2][2]={{4},5,6};D)inta[2][]={{4,5},.{6,7}};二)字符串例题:以下程序的输出结果是(B)#include<stdio.h>#include<string.h>main(){charst[20]=”2000\0\t\\”;printf(“%d,%d\n”,strlen(st),sizeof(st));}A)7,7B)4,20C)10,20D)20,20要将字符串a连接到字符串b后面,使用下面(D)语句A)strcpy(a,b);B)strcat(a,b);C)strcpy(b,a);D)strcat(b,a)三)算法例题:已知字符串chars[50]=”Iamstudent.”,请编写程序将字符a插入到student之前,结果为“Iamastudent”。程序如下:#include<stdio.h>#include<string.h>voidmain(){cars[50]=”Iamstudent.”;intj,len;len=strlen(s);s[len+1]=’\0’for(j=len-1;j>=3;j--)s[j+1]=s[j];s[3]=’\0’puts(s);}有一个3×4的矩阵,要求编程以求出其中值最大的那个元素,以及它所在的行号和列号。程序如下:#include<stdio.h>voidmain(){inti,j,row,col,max;staticinta[3][4]={{3,5,1,8},{6,4,11,7},{9,3,10,2}};max=a[0][0];for(i=0;i<_3_;i++)/*$BLANK1$*/for(j=0;j<4;j++)if(a[i][j]>max)/*$BLANK2$*/{max=_a[i][j]__;/*$BLANK3$*/row=i;col=j;}printf("max=%d,row=%d,col=%d\n",max,row,col);}六、函数一)函数语法例题:在C程序中,若对函数类型未加说明,则函数的隐含类型为(A)A)intB)doubleC)voidD)charC语言中的函数(D)A)可以嵌套定义B)不可以嵌套调用C)可以嵌套定义,但不能递归调用D)嵌套调用和递归调用都可以。有以下函数定义:voidfun(intn,doublex){…………}下面函数调用正确的是(A)A)fun(x,n)B)k=fun(10,12.5)C)fun(intx,doubley)D)voidfun(n,x)有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是(C)A)10234B)12344C)12334D)12234有以下程序voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序运行后的输出结果是(A)A)6B)7C)5D)8以下程序运行后的输出结果是:43344343二)递归函数例题:【程序1】#include”stdio.h”intfun(intn){if(n<10)returnn;elsereturn(n%10)*fun(n/10);}main(){printf(“%d”,fun(218));}运行结果:16【程序2】#include<stdio.h>longfun(intn){longs;if(n==1||n==2)s=2;elses=n+fun(n-1);returns;}voidmain(){printf(“\n%ld”,fun(5));}运行结果:14三)变量的作用域和存储类型(见课件)例题:C语言auto型变量是(A)A)存储在动态存储区中B)存储在静态存储区中C)存储在外存储器中D)存储在计算机CPU的寄存器中【程序1】intw=2;intf(intx){inty=1;staticintz=3;y++;z++;return(x+y+z);}main(){intk;for(k=0;k<3;k++)printf(“%4d”,f(w++));}运行结果:81012【程序2】以下程序运行后的输出结果是:fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i<3;i++)printf("%d%d",i,fun(a));printf("\n");}运行结果:010111212七、指针例题:设有定义:ints[]={1,3,5,7,9},*p=&s[0];则值为7的表达式是(C)A)*p+3B)*p+4C)*(p+3)D)*(p+4)若有以下定义,则值为4的表达式是(A)inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;A)p+=3,*(p++)B)p+=3,*++pC)p+=4,*p++D)p+=4,++*p若有定义及赋值:inta[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;则引用a中的值是5的元素的表达式为(C)A)a[4]B)*(p+4)C)*(a+5)D)*p[5]设intx[]={1,2,3,4,5,6},*p=x;则值为3的表达式是(A)A)p+=2,*p++B)p+=2,*++pC)p+=3D)p+=2,++*p若有定义及赋值:inta[5][5],(*p)[5];p=a;则下列各式中表示地址的表达式为(C)A)a[3][3]B)*(*(p+1))C)a[2]+2D)*(*(a+3)+1)设有一下语句inta[4][2]={1,2,3,4,5,6,7,8};则*(*(a+2)+1)(D)A)3B)4C)5D)6四)字符串及字符串数组涵义例题:不正确的赋值或赋初值方式是(B)A)charstr[]=”Hell02006”B)charstr[20];str=”Hell02006”;C)char*p=”Hell02006”D)char*p;p=”Hell02006”下列语句中合法的数组定义是(D)A)chara[3][]={‘abc’,’12’,”fox”}B)chara[][3]={‘abc’,’12’,”cd”}C)chara[3][]={‘a’,”12”,”fox”}D)chara[][3]={“a”,”12”,”cd”}以下语句或语句组中,能正确进行字符串赋值的是(D)A)char*sp;*sp="right!";B)chars[10];s="right!";C)chars[10];*s="right!";D)char*sp="right!";八、宏定义、结构体与共用体一)宏定义例题:运行程序:#defineTap(X)2*X+1main(){inta=6,k=2,m=1;a+=Tap(k+m);printf(“%d\n”,a);}则输出结果是(A)A)12B)13C)7D)6对于以下宏定义#defineM(x)x*x#defineN(x,y)M(x)+M(y)宏调用N(2,2+5)执行后,值为(A)A)21B)16C)9D)19二)结构体例题:设有结构体及其数组和指针变量的定义语句struct{intx;}y[2],*p=y;则下列表达式中不正确的表示结构体成员的是(B)A)(*p).xB)(p+1).xC)y[0].xD)(&y[1])->x设有定义structst{intx;floaty;}time,*t;t=&time;则对于time中成员x的正确引用是(C)A)w.time.xB)t.xC)(*t).xD)time->x三)共用体例题:若定义unionex{intI;floatf;chara[10];}x;则sizeof(x)的值是(C)A)4B)6C)10D)16设有下列结构型变量w的定义,则表达式”sizeof(w)”的值是(C)struct{longnum;charname[15];union{floaty;shortz;}yz;}w;A)19B)20C)23D)25四)typedef例题:以下语句中,指针p的data域正确的引用方式为(B)typedefstructnode{intdata;structnodelchile,rchild;}Btree;Btree*p;A)p.dataB)p->dataC)(*p)->dataD)p[data]设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是(C)A)以上的说明形式非法B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构

温馨提示

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

评论

0/150

提交评论