C语言考前复习 有答案的 考前必看

C语言考前复习 有答案的 考前必看

ID:39549277

大小:106.00 KB

页数:29页

时间:2019-07-06

上传者:U-2437
C语言考前复习 有答案的 考前必看_第1页
C语言考前复习 有答案的 考前必看_第2页
C语言考前复习 有答案的 考前必看_第3页
C语言考前复习 有答案的 考前必看_第4页
C语言考前复习 有答案的 考前必看_第5页
资源描述:

《C语言考前复习 有答案的 考前必看》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

分章节练习题第一、二章数据类型、运算符与表达式一、单选题1、下列属于字符型常量的是C。A、’AA’B、“B”C、‘a’D、’x93L’2、C语言中,字符(char)型数据在微机内存中的存储形式是__D_。A、反码B、补码C、EBCDIC码D、ASCII码3、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是___C_____。A、a=a+b,b=a-b,a=a-b;B、t=a,a=b,b=t;C、a=t;t=b;b=a;D、t=b;b=a;a=t;4、判断char型变量c是否为大写字母的最简单且正确的表达式是__D____。A、’A’<=c<=’Z’B、(c>=’A’)&(c<=’Z’)C、(’A’<=c)AND(‘Z’>=c)D、(c>=’A’)&&(c<=’Z’)5、运算符||代表B。A、按位或B、逻辑或C、按位异或D、按位取反6、下列符号中,不可以作为变量名的是__D_______.A、_varB、VAR10C、varxD、2def7、运算符&代表A。A、按位与B、逻辑与C、按位异或D、按位取反8、表达式18/4*sqrt(4.0)/8值的数据类型为___B_________.A、 int       B、 float        C、 char      D、不确定 二、填空题1.C++程序执行过程生成的3种文件及扩展名为_源代码文件.cpp_____、_.目标代码文件".obj"___和_目标代码文件".obj"__。2.表达式x=x+1表示成增量表达式为_____x++;___。3.若y是int型变量,且y=6,则表达式(y%2+(y+1)/2)的值为_____3____。4.若要在程序文件中使用数学标准函数,则必须在开始的#include命令中使用______头文件。5.表达式0x13^0x17的值是_4___。6.定义一个整型常量VALUE,其值为40的定义语句为_#defineVALUE40。7.与3x3+xy3+y3对应的C++表达式是_3*y*y*y+x*y*y*y+y*y*y8.C的整数可以用十进制、__八进制________、和__十六进制_______三种进位制表示。9.C语言的基本数据类型有___整型________、___浮点型(实型)________和___字符型________。10.表达式3.5+1/2的计算结果是__3.5__。11.C和C++程序总是从__main()开始执行。12.若k为int型变量且赋值11。请写出运算k++后表达式的值为__11__,k变量的值_12__。13.若要在一个C在程序文件中用cin和cout进行输入输出操作,则必须在开始的#include命令中使用_______头文件。第三章输入和输出一、单选题 1、printf函数中用到格式符%5s,如果字符串长度大于5,则输出方式为__B_。A、从左起输出该字串,右补空格B、按原字符长从左向右全部输出C、右对齐输出该字串,左补空格D、输出错误信息2、C++中,有以下定义:inta,b;若要从键盘输入变量a,b的值,则正确的输入语句是__A__。A、cin>>a>>b;B、cin<>a>>b;D、cout<main(){intx,y;for(x=1,y=1;x<=15;x++){if(y>20)break;if(y%3==1){y+=3;continue;}y-=10;} printf(“%d,%d ”,x,y);}A8,22B7,20C6,22D5,202、break语句的正确的用法是__B_。A、无论在任何情况下,都中断程序的执行,退出到系统下一层。B、在多重循环中,只能退出最靠近的那一层循环语句。C、跳出多重循环。D、只能修改控制变量。3、下面程序的运行结果是__B_。main(){intx=4,y=5;if((x>y)&&(++x>0))cout<<(x+y);cout<12?x+10:x-12;printf("%d ",y);}A、0B、22C、12D、108、C语言中whi1e和do-while循环的主要区别是__A___。 A、do-while的循环体至少无条件执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句9、continue语句的正确的用法是A。A、跳过该循环体中剩余的语句而强行开始下一次循环。B、在多重循环中,只能退出最靠近的那一层循环语句。C、跳出多重循环。D、无论在任何情况下,都中断程序的执行,退出到系统下一层。10、有如下程序:   voidmain()   {intn=9;   while(n>6){n--;printf("%d",n);}   }   该程序的输出结果是___B____。   A、987   B、876  C、8765   D、9876二、填空题1、结构化程序设计的三种基本结构是:__顺序结构________、__循环结构________和__条件结构________。2、执行if(x||!x)printf(”ABC”);elseprintf(”XYZ”);屏幕上显示的是_____ABC___________。三、程序填空题1、程序打印如下形式的图形 **********voidmain(){for(inti=1;i<=4;i++){for(intj=1;j<6-i;j++)printf(”*”);printf(“ ”);}}2、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。voidmain(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0){if(x>amax)amax=x;if(xvoidmain(){charch;scanf(“%c”,&ch);ch=(_ch<='Z'&&ch>='A'_)?ch+32:ch;printf(“char=%c ”,ch);}4、下列程序求100之内的自然数中偶数之和。#includevoidmain(){inti=1,s;s=0;while(i<100){if(i%2==0)s+=i;i++;}printf(“s=%d ”,s); }5、6、下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。#include<stdio.h>voidmain(){  inti,j;for(i=1;__i<100______;i++)if(_i%3=0&&i%10=6)printf("%d",i); }第五章函数一、单选题1、以下说法正确的是_C______。   A、C语言程序总是从第一个函数开始执行   B、在C语言程序中,要调用函数必须在main()函数中定义   C、C语言程序总是从main()函数开始执行   D、C语言程序中的main()函数必须放在程序的开始部分2、以下对C语言函数的描述中,正确的是A。A、C程序由一个或一个以上的函数组成 B、函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中调用关系的所有函数必须放在同一个程序文件中3、下列函数形式正确的是(D)A、doublefun(intx,inty)B、fun(intx,y)C、fun(x,y)D、doublefun(intx,inty){z=x+y;{intz;{intx,y{doublez;returnz;}returnz;}doublez=x+y;z=x+y;returnz;}returnz;}4、有宏定义#definef(x)x*x,则宏调用f(3+4)的结果为(B)。A、49B、19C、22D、3+45、一个函数无返回值时,函数的类型应定义为__A_。A、voidB、任意C、intD、无6、以下函数定义形式正确的是__C___。A、doublefun(x,y);B、doublefun(intx;inty);C、doublefun(intx,inty);D、doublefun(intx,y);7、某程序中对myfun函数有此说明:voidmyfun();此说明的含义是A。A、myfun函数无返回值B、myfun函数的返回值可以是任意的数据类型C、myfun函数的返回值是无值型的指针类型D、指针myfun指向一个函数,该函数无返回值 二、填空题1、在函数外定义的变量称为__全局______变量。2、函数的返回值是通过函数中的__return__语句获得的。3、把flag定义为静态双精度实型变量的语句是__staticdoubleflag;___________。4、函数fun的功能是求x的y次方(y>=1),请填空。doublefun(doublex,inty){__inti____________;doublez;for(i=1,z=1;_i<=y_________;i++)z=z*x;_returnz____________;}四、改错题:下面的程序完成数值1到N之间的奇数之和。在main()函数中输入N值,并输出求和结果。在sum()函数中完成奇数累加,并把累加结果作为函数值返回。请更改程序中的五个错误。注意:不得增行或删行,也不得更改程序结构。#includeintsum(intm){ inti,s=0;for(i=m;i>=1;i++--)if(i%2==1)s=s+i;returns;}voidmain(){intn;printf(”请输入N的值:”);scanf(”%d”,&n);printf(”奇数之和为%d”,sum(n));}第六章数组一、单选题1、下列说法正确的是B。A、在2000,2001,2002…2007这几个连续的地址单元中可存放8个数据。B、在2000,2001,2002…2007这几个连续的地址单元中可存放8个字符。C、在2000,2001,2002…2007这几个连续的地址单元中可存放字符串”ABCDEFGH”。D、在2000,2001,2002…2007这几个连续的地址单元中可存放8个整数。 2、在下面的一维数组定义中,哪一个有语法错误__C_____。A、inta[]={1,2,3};B、inta[10]={0};C、inta[];D、inta[5];3、调用函数strlen(“abcdtef g”)的返回值是。AA、9B、7C、6D、44、设有数组定义:chararray[]="China";则数组array所占的空间为__C_。A、4个字节    B、5个字节    C、6个字节    D、7个字节5、要使字符串变量str具有初值"ABCDEFGH",正确的定义语句是__D_。A、charstr[8]={'A','B','C','D','E','F','G','H'};B、charstr[8]="ABCDEFGH";C、charstr[]={'A','B','C','D','E','F','G','H'};D、charstr[]="ABCDEFGH";6、以下能正确进行字符串赋值的是C。A、chars[5]={‘a’,’e’,’I’,’o’,’u’};B、chars[5];s=”good”;C、chars[5]=”abcd”;D、chars[5];s[]=”good”;7、设有如下定义,则正确的叙述为C。charx[]={“abcdefg”};chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};A、数组x和数组Y等价B、数组x和数组y的元素个数相同 C、数组x的元素个数大于数组y的元素个数D、数组x的元素个数小于数组y的元素个数8、有定义:charch,s[30];inta,b;下列输入语句正确的是__C_____。A、scanf(“%d%f”,&a,&b);B、scanf(“%s%c”,&s,&ch);C、scanf(“%c%s”,&ch,s);D、scanf(“%d%c”,a,ch);9、有以下程序:voidmain(){charp[]={‘a’,’b’,’c’},q[]=”abc”;printf(“%d%d”,sizeof(p),sizeof(q));}程序运行后的输出结果是(C)。A、44B、33C、34D、4310、(多选)在VC中,要定义一个int型一维数组art,并使其各元素具有初值89,-23,0,0,0,正确的定义语句有(ACD).A.intart[5]={89,-23};B.intart[]={89,-23};C.intart[5]={89,-23,0,0,0};D.intart[]={89,-23,0,0,0};11、(多选)要定义一个int型二维数组bat,并使其各元素具有初值1234230030000000 正确的定义语句有(BCD)A.intbat[][4]={{1,2,3,4},{2,3},{3}};B.intbat[4][4]={{1,2,3,4},{2,3,0,0},{3,0,0,0},{0,0,0,0}};C.intbat[][4]={{1,2,3,4},{2,3},{3},{0}};D.intbat[4][4]={{1,2,3,4},{2,3},{3}};12、(多选)要使字符串数组STR含有"ABCD","EFG"和"XY"三个字符串,正确的定义语句有(BCD).A.charSTR[][4]={"ABCD","EFG","XY"};B.charSTR[][5]={"ABCD","EFG","XY"};C.charSTR[][6]={"ABCD","EFG","XY"};D.charSTR[][7]={{'A','B','C','D',''},"EFG","XY"};13、若用数组名作为函数调用的实参,传递给形参的是A。A、数组的首地址    B、数组第一个元素的值   C、数组中全部元素的值   D、数组元素的个数二、填空题1、已知数组T为一有10个单元的整型数组,下面的语句试图按相反的顺序显示输出T中的10个元素的相反数;请补充完整下面的语句:for(intj=9;j>=0;j--)cout<<_-T[j]_________;2、已知数组T为一有10个单元的整型数组,下面的语句试图求出这10个单元的合计值,并用s保存这个值;请补充完整下面的语句:ints=_0______________;for(intj=0;j<10;j++)__s+=T[j]_____; 3、已知数组d定义为doubled[5][3];则d是一个(5)行(3)列的二维数组,总共有(15)个元素,最大行下标是(4),最大列下标是(2).4、已知数组e定义为inte[][4]={{1,2,3,4},{5,6,7,8}};,则e是一个(2)行(4)列的二维数组,总共有(8)个元素,最大行下标是(1),最大列下标是(3),其首行的每个元素的值分别是(1234).5、已知数组f定义为doublef[][3]={{1,2},{5},{6,7,8}};,则e是一个(3)行(3)列的二维数组,总共有(9)个元素,按行列出的各元素的值是(1,2,05,0,06,7,8).6、要使g成为具有如下初始值的二维int型数组:1000012000123001234012345最简单的定义g的语句是(intg[][5]={{1},{1,2},{1,2,3},{1,2,3,4},{1,2,3,4}});7、下面的语句按行显示输出5行3列数组m的所有元素,请补充完整:for(inti=0;i<5;i++){cout<sum(int[],int);voidmain(){inta[5]={2,3,6,8,10};inttotal;total=_sum(a,5)_________;cout<<"数组元素之和为:"<<__total_<s[m])n=m;returnn; }5、下面程序是用递归函数fib(n)计算斐波那契(Fibonacci)数列第n项。斐波那契数列为:0,1,1,2,3,5┄┄intfib(intn){if(n==0)return(0);if(n==1)return(1);if(n>1)return(fib(n-1)+fib(n-2));}第七章指针一、单选题1、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是__D_____。   A、a,point,*&a  B、&*a,&a,*point   C、*&point,*point,&a   D、&a,&*point,point2、程序中对fun函数有如下说明:void*fun();此说明的含义是__C___。A、fun函数无返回值B、fun函数的返回值可以是任意的数据类型C、fun函数的返回值是无值型的指针类型D、指针fun指向一个函数,该函数无返回值3、已知:int*p,a,b;p=&a;则语句“b=*p;”中的运算符“*”的含义是C。A、指针定义B、乘法运算符C、取指针所指变量内容D、取变量地址 4、C语言的语句char*line[5];是指A。A、line是一个数组,其数组的每一个元素是指向字符的指针。B、line是一个指针,指向一个数组,数组的元素是为字符型。C、A和B均不对,但它是C语言正确的语句。D、C语言不允许这样的语句。5、若有定义:intx,*pb;则以下正确的赋值表达式是____A____。A、pb=&xB、pb=xC、*pb=&xD、*pb=*x6、说明语句“float(*p)(int);”的含义是__C_。A、p是一个指向一维数组的指针变量B、p是指针变量,指向一个整型数据C、p是一个指向函数的指针,该函数的返回值是一个浮点型,且有一个整型数据作参数D、以上都不对7、设变量定义为inta[3]={1,4,7,8},*p=&a[2];,则*p的值是A。A、&a[2]B、4C、7D、18、要使指针变量p指向2维数组A的第一个元素(0行0列元素),正确的赋值表达式是D。A、p=A或p=A[0][0]B、p=A[0]或p=A[0][0]C、p=A[0]或p=&A[0][0]D、p=A或p=&A[0][0]9、下列说法正确的是C。A、空指针也称为void指针,是一种不指向任何数据的指针。B、空指针也称为无类型指针,是一种可指向任何类型数据的指针。C、除了void指针外,任何非空指针都指向某种既定类型的数据。 D、void指针也称为无类型指针,是一种不指向任何数据的指针。10、若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为C。A、p+1         B、a+1         C、a++       D、++p11、已知:intx;inty[10];下列___A___是合法的。A、&xB、&(x+3)C、&5D、&y12、已知一运行正常的程序中有这样两个语句:int*p1,*p2=&a;p1=b;由此可知,变量a和b的类型分别是C。A、int和intB、int*和intC、int和int*D、int*和int*13、(多选)已知变量ld定义为:longld;在下面关于指针p的定义中,不能通过p修改ld的有(BD)。A.long*p=&ld;B.longconst*p=&ld;C.long*constp=&ld;D.constlong*p=&ld;14、要使指针变量p指向2维数组A的第一个元素(0行0列元素),正确的赋值表达式是(D)。A.p=A或p=A[0][0]B.p=A[0]或p=A[0][0]C.p=A[0]或p=&A[0][0]D.p=A或p=&A[0][0] 15、已知函数f1的原形是:voidf1(int*a,char*b);,变量v1,v2的定义是:intv1;charv2[]=”ABCDW”;,把v1和v2分别作为第一参数和第二参数来调用函数f1,正确的调用语句是(B)。A.f1(v1,v2);B.f1(&v1,v2);C.f1(v1,&v2);D.f1(&v1,&v2);16、已知函数f1的原形是:voidf1(int*a,longb);变量v1,v2的定义是:intv1;longv2;把v1和v2分别作为第一参数和第二参数来调用函数f1,正确的调用语句是(B)。A.f1(v1,v2);B.f1(&v1,v2);C.f1(v1,&v2);D.f1(&v1,&v2);17、设有下列定义:staticintx,*p=&x,*q;scanf(“%d,%d”,p,q);若输入3,4,则x的值为__A___。A、3B、4C、0D、无法确定二、填空题1、若正常执行了如下语句:intm[]={1,2,3,4,5,6,7,8},*p1=m+3,*p2=&m[6],*p3;p3=p1+3;cout<__________头文件。12、已知变量ld定义为:longld;,现需要一个指向ld的指针p,但又禁止通过p修改ld,则p应定义为long*constp=ld。13、P为一指针变量,取p所指向单元的数据作为表达式的值,然后使p指向下一个单元的表达式是(*p++)。14、P1,p2都是字符指针,p1指向字符串“ABCDEFGIJKLMN”,p2-p1的差为9,则执行语句cout<0cout<#includechar*fun(charstr[]){inti;for(i=0;*str[];i++)if((‘a’<=str[i])||&&(str[i]<=’z’))str[i]+=-=32;return*strstr;}main(){charstr[81];printf(“ Pleaseenterastring:”);gets{str[81]};printf(“ Theresultstringis: %s”,fun(str));} 四、程序填空题1、main()函数利用函数swap()来交换main函数中的两个变量的值。voidswap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}voidmain(){intx=10,y=10;swap(&x,&y);printf(“%d,%d ”,x,y);}2、下面的程序的功能是:利用指针统计一个字符串中,字母、空格、数字、及其它字符的个数,请填空。#includevoidmain(){intalpha,space,digit,other;char*p,s[80];alpha=space=digit=other=0;printf(“inputstring: ”);scanf(“%s”,s);for(p=s;*p!=’’;p++) if((*p>=’A’)&&(*p<=’Z’)||(*p>=’a’)&&(*p<=”z’))alpha++;elseif((*p==’’||*p==’t’))space++;elseif(*p>=’0’&&*p<=’9’)digit++;elseother++;printf(“alpha:%dspace:%ddigit:%dother:%d ”,alpha,space,digit,other);}第八章结构、联合、枚举一、单选题1、有以下语句:  structSS  {intno;charname[10;}PERSON;  则下面叙述中错误的是__C_。A、struct是结构体类型的关键字  B、structSS是结构体类型  C、PERSON是结构体类型名  D、name是结构体成员名第十六章文件 C语言能够处理的数据文件类型是__B_____。A、文本文件和数据文件B、文本文件和二进制文件C、数据文件和二进制文件D、以上都不正确在stdio.h中,EOF的值是-1。程序填空题磁盘上有文本文件“testfile.txt”,统计该文件的行数和字符数。#include#include#includevoidmain(){FILE*fpin;charch;intn=0;intm=0;if((fpin=fopen("e:\testfile.txt",r))==NULL){printf("cannotopenthisfile. ");exit(0);}ch=fgetc(fpin);while(ch!=EOF){putchar(ch); n++;if(ch==' ')m++;ch=fgetc(fpin);}fclose(fpin);cout<<"字符数有:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭