c语言程序设计复习题_第1页
c语言程序设计复习题_第2页
c语言程序设计复习题_第3页
c语言程序设计复习题_第4页
c语言程序设计复习题_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计复习题第一章C语言概述

一、选择题:1、一个C程序执行是从(A)。A本程序main函数开始,到main函数结束B本程序文件第一个函数开始,到本程序文件最终一个函数结束C本程序main函数开始,到本程序文件最终一个函数结束D本程序文件第一个函数开始,到本程序main函数结束2、在C语言中,每个语句必须以(D)结束。A.回车符B.冒号C.逗号D.分号3、C语言要求:在一个源程序中,main函数位置(C)。A.必须在最开始B.必须在系统调用库函数后面C.能够任意D.必须在最终4、一个C语言程序是由(B)。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成5、以下说法中错误是(D)。A.主函数能够分为两个部分:主函数说明部分和主函数体B.主函数能够调用任何非主函数其余函数C.任何非主函数能够调用其余任何非主函数D.程序能够从任何非主函数开始执行6、用C语言编写源文件经过编译,若没有产生编译错误,则系统将(C)。A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保留源文件二、填空题:1、C语言只有(32)个关键字和(9)种控制语句。2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。3、C语言程序注释能够出现在程序中任何地方,它总是以(\*)符号作为开始标识,以(*/)符号作为结束标识。4、C语言中,输入操作是由库函数(scanf)完成,输出操作是由库函数(printf)完成。5、系统默认C语言源程序文件扩展名是(.c),经过编译后生成目标文件扩展名是(.obj),经过连接后生成可执行文件扩展名是(.exe)。6、C语言标识符只能由(字母、数字和下划线)三种字符组成。

第三章数据类型、运算符和表示式

一、选择题:1、以下选项中,不正确C语言浮点型常量是(C)。A.160.B.0.12C.2e4.2D.0.02、以下选项中,(D)是不正确C语言字符型常量。A.'a'B.'\x41'C.'\101'D."a"3、在C语言中,字符型数据在计算机内存中,以字符(C)形式存放。A.原码B.反码C.ASCII码D.BCD码4、若x、i、j和k都是int型变量,则计算x=(i=4,j=16,k=32);表示式后,x值是(C)。A.4B.16C.32D.525、算术运算符、赋值运算符和关系运算符运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算6、若有数学代数式3ae÷bc,则不正确C语言表示式是(C)。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*37、表示式!x||a==b等效于(D)。A.!((x||a)==b)B.(!x||a)==bC.!(x||(a==b))D.(!x)||(a==b)8、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n值是(A)。A.0,0B.0,1C.1,0D.1,19、设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a值是(B)。A.3B.0C.9D.-1210、在以下一组运算符中,优先级最低运算符是(D)。A.*B.!=C.+D.=11、设整型变量i值为2,表示式(++i)+(++i)+(++i)结果是(B)。A.6B.12C.15D.表示式犯错12、若已定义x和y为double类型,则表示式x=1,y=x+3/2值是(C)。A.1B.2C.2.0D.2.513、设a=1,b=2,c=3,d=4,则表示式:a<b?a:c<d?a:d结果为(D)。A.4B.3C.2D.114、设a为整型变量,不能正确表示数学关系:10<a<15C语言表示式是(A)。A.10<a<15B.a==11||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)15、设f是实型变量,以下表示式中不是逗号表示式是(D)。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)16、表示式18/4*sqrt(4.0)/8值数据类型是(C)。A.intB.floatC.doubleD.不确定17、已知字母AASCII码为十进制数65,且c2为字符型,则执行语句C2=’A’+’6’-‘3’;后c2中值是(A)。A.DB.68C.不确定值D.C18、以下用户标识符中,正当是(B)。A.intB.nitC.123D.a+b19、C语言中,要求运算对象只能为整数运算符是(A)。A.%B./C.>D.*20、若有说明语句:charc='\72';则变量c在内存占用字节数是(A)。A.1B.2C.3D.421、字符串"ABC"在内存占用字节数是(B)。A.3B.4C.6D.822、要为字符型变量a赋初值,以下语句中哪一个是正确(B)。A.chara="3";B.chara=’3’;C.chara=%;D.chara=*;23、以下不正确转义字符是(C)。A.\\B.\'C.074D.\0

二、填空题:1、C语言中逻辑值“真”是用(1)表示,逻辑值“假”是用(0)表示。2、若x和n都是int型变量,且x初值为12,n初值为5,则计算表示式x%=(n%=2)后x值为(0)。3、设c='w',a=1,b=2,d=-5,则表示式'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b==a=2值分别为(1、0、1、1)。4、 定义变量floatx=2.5,y=4.7;inta=7;,表示式x+a%3*(int)(x+y)%2/4值为(2.5)。5、判断变量a、b值均不为0逻辑表示式为(a!=0&&b!=0)。6、求解赋值表示式a=(b=10)%(c=6),a、b、c值依次为(4,10,6)。7、求解逗号表示式x=a=3,6*a后,x、a值依次为(3,3)。8、数学式a/(b*c)C语言表示式(a/b/c)。

三、编程题:(第4、5、6章)1、设长方形高为1.5,宽为2.3,编程求该长方形周长和面积。main(){floatx=1.5,y=2.3;printf(“areais%6.2f\n”,x*y);}2、编写一个程序,将大写字母A转换为小写字母a。main(){charc=’A’;printf(“%d”,c+32);}3.设计任意输入三个整数,求其和与平均值。main(){inta,b,c,sum;floatave;scanf(“%d%d%d”,&a,&b,&c);sum=a+b+c;ave=sum/3.0;printf(“sum=%d,ave=%.2f\n”,sum,ave);}4.设计输入任意两个数,交换两个数,并输出。voidmain(){floata,b,temp;printf("inputaandb:");scanf("%d,%d",&a,&b);temp=a;a=b;b=temp;printf("a=%d,b=%d\n",a,b);}

5.if分支结构程序设计(设计在100以内输入任意数,按五等级输出。)main(){floatscore;charcj;printf(“inputscore,maxis100:\n”);scanf(“%f”,&score);if(score>=90)cj=’A’;elseif(score>=80)cj=’B’;elseif(score>=70)cj=’C’;elseif(score>=60)cj=’D’;elsecj=’E’;printf(“Grade=%c\n”,cj);}采取switch结构一样实现上述程序功效。main(){floatt;charch;printf(“inputscore,maxas100:\n”);scanf(“%f”,&t);switch(t/10){case10:case9:ch=’A’;break;case8:ch=’B’;break;case7:ch=’C’;break;case6:ch=’D’;break;default:ch=’E’;}printf(“Grade=%d\n”,ch);}6.switch语句嵌套使用方法switch((s>0)&&(s<=10)){case1:switch((s>=3)&&(s<=6)){case1:x=2;break;case0:switch(s>1)||(s>8)){case1:x=3;break;case0:x=1;break;}}break;case0:x=0;break;}7、循环程序设计(1)判断1~10之间能被3整除数,并控制每5个字符输出一行。voidmain(){inti,s=0;for(i=1;i<=10;i++){if(i%3==0)continue;printf("%d",i);s++;if(s%5==0)printf("\n");}printf("\n%d",s);}(2)循环嵌套使用:给出运行结果。voidmain(){inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++){if(j%2)break;a++;}a++;}printf(“%d\n”,a);}(3)采取C语言编程实现求以下数列前n项和,并输出结果。答案:#include<stdio.h>voidmain(){inti,n;floats=0;scanf("n=%d",&n);for(i=1;i<=n;i++)s=s+1.0/((2*i-1)*(2*i+1));printf("\n%f",s);}(4)采取C语言编程实现求以下数列前n项和,并输出结果。答案:#include<stdio.h>voidmain(){inti,n,t=-1;floats=0;scanf("n=%d",&n);for(i=1;i<=n;i++){t=-t;s=s+1.0*t/((2*i-1);}printf("\n%f",s);}

第7章数组习题

1.单项选择题(1)inta[4]={5,3,8,9};其中a[3]值为(D)。A.5B.3C.8D.9(2)以下4个字符串函数中,(A)所在头文件与其余3个不一样。A.getsB.strcpyC.strlenD.strcmp(3)以下4个数组定义中,(D)是错误。A.inta[7];B.#defineN5longb[N];C.charc[5];D.intn,d[n];(4)对字符数组进行初始化,(B)形式是错误。A.charc1[]={'1','2','3'};B.charc2[]=123;C.charc3[]={'1','2','3','\0'};D.charc4[]="123";(5)在数组中,数组名表示(A)。A.数组第1个元素首地址B.数组第2个元素首地址C.数组全部元素首地址D.数组最终1个元素首地址(6)若有以下数组说明,则数值最小和最大元素下标分别是(B)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,12(7)若有以下说明,则数值为4表示式是(D)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c](8)正当数组定义是(D)。A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4};C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};(9)以下语句中,正确是(D)。A.chara[3][]={'abc','1'};B.chara[][3]={'abc','1'};C.chara[3][]={'a',"1"};D.chara[][3]={"a","1"};

2.填空题(1)C语言中,数组各元素必须具备相同(数据类型),元素下标下限为(0),下标必须是正整数、0、或者(符号常量)。但在程序执行过程中,不检验元素下标是否(越界)。(2)C语言中,数组在内存中占一片(连续)存放区,由(数组名)代表它首地址。数组名是一个常量(地址),不能对它进行赋值运算。(3)执行staticintb[5],a[][3]={1,2,3,4,5,6};后,b[4]=(0),a[1][2]=(6)。(4)依照以下说明,写出正确说明语句:men是一个有10个整型元素数组。step是一个有4个实型元素数组,元素值分别为1.9,-2.33,0,20.6。grid是一个二维数组,共有4行,10列整型元素。答案:intmen[10];floatstep[4]={1.9,-2.33,0,20.6};intgrid[4][10];(5)array是一个一维整型数组,有10个元素,前6个元素初值是9,4,7,49,32,-5,正确说明语句为:()。该数组下标取值范围是从___到___(从小到大)。用scanf函数输入数组第二个元素表示为:()。用赋值语句把39存入第一个元素表示为:()。把第六个和第四个元素之和存入第一个元素表示为:()。答案:intarray[10]={9,4,7,49,32,-5};09。scanf("%d",&array[1]);array[0]=39;array[0]=array[5]+array[3];(6)写出以下初始化数组元素个数:①intchn[3];数组chn长度为___。②floatisa[]={1.0,2.0,3.0,4.0,5.0};数组isa长度为___。③intdoom[8];数组doom长度为___。④floatpci[4][2];数组pci长度为___。⑤intast[3][3];数组ast长度为___。⑥intatt[3][4];数组att长度为___。⑦floatdell[][3]={{1,4,7},{2,5},{3,6,9}};数组dell长度为___。答案:3、5、8、8、9、12、9(7)若有以下整型a数组,数组元素和它们得值以下所表示:数组元素:a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]元素值:9、4、12、8、2、10、7、5、1、3①请写出对该数组说明,并赋以上初值。②该数组最小下标值为___,最大下标值为___。③写出下面各式值:a[a[9]]值为___;a[a[4]+a[8]]值为___。答案:inta[10]={9,4,12,8,2,10,7,5,1,3};0、9、8、8(8)字符串"ab\n\\012/\\\""长度为___。答案:10

3.判断题(×)(1)C允许对数组大小作动态定义,即可用变量定义数组大小。(×)(2)字符数组不要求它最终一个字符为‘\0’,甚至能够不包含‘\0’。(×)(3)数组定义inta[10];也能够写成inta(10);。(√)(4)在对全部数组元素赋初值时,能够不指定数组长度。(×)(5)定义s为5×6(5行6列)数组可写成floata[5,6];(√)(6)数组定义inta[10];表示数组名为a,此数组有10个元素。(×)(7)数组定义inta[10];表示数组名为a,此数组有10个元素,第10个元素为a[10]。(√)(8)staticcharc[]={“abook”};与staticcharc[]=“abook”;等价。(×)(9)staticcharc[]={'a','','b','o','o','k','\0'};与staticcharc[]={'a','','b','o','o','k'};等价。(×)(10)设已经有说明:staticcharc1[10],c2[10];下面程序片段是正当。c1={“book”};c2=c1;

4.程序填空题(1)以下程序以每行10个数据形式输出a数组,请填空。voidmain(){inta[50],i;printf("输入50个整数:");for(i=0;i<50;i++)scanf("%d",_______);for(i=1;i<=50;i++){if(_______)printf("%3d\n",_______);i++;}if(i<50)printf("%3d",_______)}答案:&a[i]、i%10==0、a[i-1]、a[i-1]

(2)阅读程序,写出运行结果#include<stdio.h>voidmain(){inta[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;for(i=0;i<6;i++){for(j=0;j<6;j++)if(a[i]==b[j])break;if(j<6)printf("%d",a[i]);}printf("\n");}答案:找到两数组中相同元素为4、25、27、16(3)设计一个程序实现将以下二维数组a行和列元素交换后,存到另一个二维数组b中。(要求采取for循环语句实现)答案:#include<stdio.h>voidmain(){inta[2][3]={1,2,3,4,5,6},b[3][2],i,j;printf(“输出转置前数组:\n”);for(i=0;i<2;i++){for(j=0;j<3;j++){printf(“%5d”,a[i][j]); b[j][i]=a[i][j];}//行列交换printf(“\n”);}printf(“输出转置后数组:\n”);for(i=0;i<3;i++){for(j=0;j<2;j++)printf(“%5d”,b[i][j]); printf(“\n”);}}第8章函数习题

1.单项选择题(1)C语言总是从(A)函数开始执行。A.mainB.处于最前C.处于最终D.随机选一个(2)函数在定义时,省略函数类型说明符,则该函数值类型为(A)。A.intB.floatC.longD.double(2)以下函数,真正地没有返回值(B)。A.inta(){inta=2;return(a);}B.voidb(){printf("c");}C.inta(){inta=2;returna;}D.以上都是(3)在C语言中,关于函数说法,以下正确是(A)。A.函数可嵌套定义,也可嵌套调用B.函数可嵌套定义,但不可嵌套调用C.函数不可嵌套定义,但可嵌套调用D.函数不可嵌套定义,也不可嵌套调用(4)函数调用能够在(D)。A.函数表示式中B.函数语句中C.函数参数中D.以上都是(5)被调函数返回给主调函数值称为(C)。A.形参B.实参C.返回值D.参数(6),能够不进行函数类型说明(D)。A.被调函数返回值是整型或字符型时B.被调函数定义在主调函数定义之前时C.在全部函数定义前,已在函数外预先说明了被调函数类型D.以上都是(7)被调函数经过语句(D),将值返回给主调函数。A.ifB.forC.whileD.return(8)被调函数调用结束后,返回到(D)。A.主调函数中该被调函数调用语句处B.主函数中该被调函数调用语句处C.主调函数中该被调函数调用语句前一语句D.主调函数中该被调函数调用语句后一语句(9)以下对C语言函数关于描述中,正确是(A)。A.在C中,调用函数时,只能把实参值传送给形参,形参值不能传送给实参B.C函数既能够嵌套定义又可递归调用C.函数必须有返回值,不然不能使用函数D.C程序中有调用关系全部函数必须放在同一个源程序文件中(10)C语言中函数隐含存放类型是(C)。A.autoB.staticC.externD.无存放类型(11)有一个函数原型为abc(floatx,floaty);则该函数返回类型为(C)。A.voidB.doubleC.intD.float

2.填空题(1)变量作用域主要取决于变量(),变量生存期既取决于变量(),又取决于变量()。答案:所处位置,所处位置,存放类型(2)说明变量时,若省略存放类型符,系统默认其为存放类别为(),该存放类别类型符为()。答案:动态,auto(3)静态型局部变量作用域是(),生存期是()。答案:它所在局部,整个程序(4)函数中形参和调用时实参都是数组名时,传递方式为(),都是变量时,传递方式为()。答案:址传递,值传递(5)函数形式参数作用域为(),全局外部变量和函数体内定义局部变量重名时,()变量优先。答案:该函数中,局部(6)若自定义函数要求返回一个值,则应在该函数体中有一条语句(),若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符()。答案:return,void(7)若函数形式参数是指针类型,则实参能够是()或()。答案:指针,数组名(8)函数参数为char*类型时,形参加实参结合传递方式为()。答案:址传递(9)函数实参为常量时,形参加实参结合传递方式为()。答案:值传递(10)下面这个函数功效是求两个整数积,并经过形参传回结果,请填空。voidmul(___x,___y,___result){___=x*y;}答案:int、int、int*、*result

3.判断题(×)(1)函数说明指是在程序中设定一个函数模块。(√)(2)形参只有在被调用时才分配存放空间。(×)(3)在C函数中,最好使用全局变量。(×)(4)在调用函数时,实参传值给形参,调用结束时,形参值传给实参。(√)(5)全部函数定义都是并行,相互独立。(×)(6)函数隐含存放类型是extern。(×)(7)形参能够是常量、变量或表示式。(×)(8)函数调用能够作为一个函数形参。(√)(9)C语言要求,实参应与其对应形参类型一致。(×)(10)定义函数时,形参类型说明能够放在函数体内。指针

一、选择题1、若有定义:intx,*pb;则以下正确表示式是(A)A、pb=&xB、pb=xC、*pb=&xD、*pb=*x2、以下程序输出结果是(B)#include<stdio.h>voidmain(){printf(“%d\n”,NULL);}A、因变量无定义输出不定值B、0C、-1D、13、以下程序输出结果是(B)#include<stdio.h>voidsub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(“%d,%d,%d\n”,a,b,c);}A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7

二、填空题1、若有定义:charch;(1)使指针p指向变量ch定义语句是(char*p=&ch;)。(2)若已定义char*p;,使指针p指向变量ch赋值语句是(p=&ch;)。(3)在(1)基础上,经过指针p给变量ch读入字符scanf调用语句是(scanf(“%c”,p);)。(4)在(1)基础上,经过指针p给变量ch赋字符’a’语句是(*p=’a’;)。(5)在(1)基础上,经过指针p用格式输出函数输出ch中字符语句是(printf(“%c”,*p);)。附加类型题:一、名词解释:1.数组2.变量3.常量4.指针5.函数6.全局变量7.

温馨提示

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

评论

0/150

提交评论