C语言试题库完整版_第1页
C语言试题库完整版_第2页
C语言试题库完整版_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言试题库一、单项选择第一章C语言概述一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN函数结束。B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。C、本程序的MAIN函数开始,到本程序的最后一个函数结束。D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。B、C程序的每行中只能写一条语句。C、C语言本身没有输入输出语句。D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(1) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。B、必须在系统调用的库函数的后面C、

2、可以在任意位置。D、必须在最后面(2) 一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(3) 以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x,i,j,k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32)A、4B、16C、32D、52(4) 下列四组选项中,均不是C语言键字的选项是A、define,IF,typeB、getc,char,printfC、in

3、clude,scanf,caseE、if,struct,type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0,_AC、b-a,goto,intD、_123,temp,INT若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3已知各变量的类型说明如下:intk,a,b;unsingedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简

4、单C程序设计putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值若x,y均定义为int型,z定义为double型,以下合法的scanf函数调用语句是A、scanf("%d%lx,%leT,&x,&y,&z);B、scanf(“2d*%d%f,&x,&y,&z);C、scanf("%x%*d%b,&x,&y,&z);D、scanf("%x%o%6.2f,&x,&y,&z);当输入数据的形式为:25,13,10回车时,以下程

5、序的输出结果为main()intx,y,z;scanf("%d%d%'d,&x,&y,&z);printf(“x+y+z=%d,x+y+z);A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、inta=b=c=5;B、inta,b,c=5;C、a=5,b=5,c=5;D、a=b=c=5;若有以下定义,则正确的赋值语句是inta,b;floatx;A、a=1,b=2;B、b+;C、a=b=5;D、b=int(x);第四章选择结构程序设计能正确表示“当x的值在1,10和20

6、0,210的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)(x<=10)(x.>=200)(x<=210)C、(x>=1)&&(x<=10)(x.>=200)&&(x<=210)D、(x>=1)(x<=10)&&(x.>=200)(x<=210)(1) 以下程序的运行结果是#include"stdio.h”main()i

7、nta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d,a,b);A、6,1B、2,1C、6,0D、2,0(2) 请阅读以下程序:main()inta=5,b=0,c=0;if(a+b+c)printf(n"*)*elseprintf("$r$);以上程序。B) A)有语法错误不能通过编译可以通过编译但不能直接通过连接输出*输出$(3) 以下程序的运行结果是。main()(intm=5;if(m+>5)printf(#'%血);elseprintf("r%d,);A) 4567为了避

8、免在嵌套的条件语句中if-else中产生二义性,c语言规定:else子句总是与相配对。(1) 缩排位置相同的if其之前最近的if其之后最近的if同一行上的if第五章循环控制设有程序段intk=10while(k=0)k=k-1则下面描叙正确的是。A) while(k=0)k=k-1;循环是无限循环循环体语句一次也不执行循环体语句执行一次(2) 下面程序段的运行结果是。A) intn=0;while(n+<=2);printf("d',n);234有语法错(3) C语言中while和do-while循环的主要区别是。(4) do-while的循环体至少无条件执行一次whi

9、le的循环控制条件比do-while的循环控制条件严格do-while允许从外部转到循环体内do-while允许从外部转到循环体内以下能正确计算1*2*3*-*10的程序段是。A) do(i=1;s=1;s=s*i;i+;while(I<=10);do(i=1;s=0;s=s*i;i+;while(I<=10);i=1;s=1;B) do(s=s*i;i+;while(I<=10);i=1;s=0;do(s=s*i;i+;while(I<=10);第六章数组A) 在c语言中,引用数组元素时,其数组下标的数据类型允许是整型常量整型表达式整型常量或整型表达式任何类型的表达式

10、(1) 以下能对二维数组a进行正确初始化的语句是。A) inta2=1,0,1,5,2,3,;inta3=1,2,3,4,5,6;inta24=1,2,3,4,5,6;inta3=1,0,1,1,1;)(2) 若有说明:inta34=0;则下面正确的叙述是。A) 只有元素a00可得到初值0B) 此说明语句不正确C) 数组a中各元素都可得到初值,但其值不一定为0D) 数组a中每个元素均可得到初值0(3) 下面程序(每行程序前面的数字表示行号)。1 main()floata10=0;intifor(i=0;i<3;i+)scanf("%d',&ai;for(i=1;

11、i<10;i+)a0=a0+ai;printf("n%f,a0);A) 没有错误B) 第3行有错误C) 第5行有错误D) 第7行有错误(4) 若二维数组a有m列,则计算机一元素aij在数组中位置的公式为。(假设a00位于数组的第一个位置上。)A) i*m+jB) j*m+iC) i*m+j-1i*m+j+1第七章函数(1) 以下正确的函数定义形式是。(2) doublefun(intx,inty)doublefun(intx;inty)doublefun(intx,inty)doublefun(intx,y);以下正确的函数形式是。A) doublefun(intx,inty)

12、B) z=x+y;returnz;fun(intx,y)intz;C) returnz;fun(x,y)intx,y;doublez;D) z=x+y;returnz;doublefun(intx,inty)doublez;(3) z=x+y;returnz;C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是地址传递单向值传递由实参传给形参,再由形参传回给实参传递方式C语言允许函数值型缺省定义,此时该函数值隐含的类型是float型int型long型double型下面函数调用语句含有实参的个数为。func(exp1,exp2),(exp3,exp4,exp5);1245第八章编译预处

13、理命令(1) 请读程序:#defineADD(x)x+xmain()intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf("sum=%cf,sum);上面程序的运行结果是。(2) sum=9sum=10sum=12sum=18以下程序的运行结果是。#defineMIN(x,y)(x)<(y)?(x)+(y)main()intI=10,j=15,k;k=10*MIN(I,j);printf("r%d,k);1015100150在宏定义#definePI3.14159中,用宏名PI代替一个常量单精度数双精度数字符串(4)若有宏定义如下:#defi

14、neX5#defineYX+1#defineZY*x/2则执行以下printf语句后,输出结果是。A) inta;a=Y;printf("%d,Z);printf(a%)d-a);7B)12C)12D)7(5) 6655若有以下宏定义:#defineN2#defineY(n)(N+1)*n)则执行语句z=2*(N+Y(5);后的结果是语句有错误z=34z=70z无定值第九章指针以下程有错误,错误原因是main()int*p,I;char*q,ch;P=&I;q=&ch;*p=40;*p=*q;p和q的类型不一致,不能执行*P=*Q;语句P中存放的是地址值,因此不能执行

15、*P=40;语句Q没有指向具体的存储单元,所以*Q没有实际意义Q虽然指向了具体的存储单元,但该单元中没有确定值,所以不能执行*P=*Q;语句(1) 已有定义intk=2;int*ptr1,*ptr2;且ptrl和ptr2均已指向变量K,下面不能正确执行的赋值语句是.(2) k=*ptr1+*ptr2;B)ptr2=K;C)ptr1=ptr2;D)k=*ptr1*(*ptr2);变量的指针,其含义是指该变量的.A) 值B)地址C)名D)一个标志(3) 若有语句int*point,a=4;和ponit=&a;下面均代表地址的一组选项是,A) a,point,*&aB) &*

16、a,&a,*pointC) *&point,*point,&a(4) &a,&*point,point下面能正确进行字符串赋值操作的是A) chars5="ABCDE;B) chars5='A','B','C','D','E'C) char*S;s=”ABCDE;(5) char*S;scanf("%s,s);若有以下定义,则对A数组元素的正确引用是.A) *&a5B) *a+2C) *(P+5)*(a+2)若有以下定义,则对a数组元素地址的正确引

17、用是A)B)C)D)p+5*a+1&a+1&a0(8)若有定义:inta23;则对a数组的第I行第J列(假设I,J已正确说明并赋值)元素值的正确引用为.A) *(*(a+I)+J)B) (a+I)田C) *(a+I+j)*(a+I)+j(9)若有定义:inta23;则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为.A) *(ai+j)B) (a+i)C) *(a+j)ai+j(10)若有以下定义和语句,则对a数组元素地址的正确引用为Inta23,(*p)3P=a;A) *(p+2)B) p2C) p1+1(p+1)+2第十章结构体与共用体(1) 以下对

18、结构体类型变量的定义中不正确的是A) #defineSTUDENTstructstudentSTUDENTintnum;floatage;std1;B) structstudentintnum;floatage;std1;C) structintnum;floatage;std1;D) structintnum;floatage;student;structstudentstd1;(2) 设有以下语句structstuinta;floatb;stutype;则下面叙述正确的是.A) struct是结构体类型的关键字B) structstu是用户定义的结构体类型C) stutype是用户定义的结

19、构体类型名D) a和b都是结构体成员名(3) 设有以下定义:structskintn;floatx;data,*p;A) 若要使p指向data中的n域,正确的赋值语句是p=&data.n;*p=data.n;p=(structsk*)&data.n;p=(structsk*)data.n;(4) 设有以下语句:structst(intn;structst*next;staticstructsta3=5,&a1,7,&a2,9,0',*p;'p=&a0;则以下表达式的值为6的是.p+->np->n+(*p).n+p->n第

20、十一章位运算以下运算符中优先级最低的是优先级最高的是。(2) &&&|若有运算符<<,sixeof,A,&=则它们按优先级按由高到低的正确排列次序是sizeof,&=,<<,asizeof,<<,A,&=A,<<,sizeof,&=<<,A,&=,sizeof在C语言中,要求运算数必须是整型的运算符是。A) a%!(3) >在C语言中,要求运算数必须是整型或字符型的运算符是。A) &&&!(4) |sozeof(float)是。一种函数调用一

21、种不合法的表示形式一个整型表达式一个浮点表达式第十二章文件(!)系统的标准输入文件是指。A) 键盘显示器软盘硬盘(2) 以下可作为函数fopen中第一个参数的正确格式是。A) c:usertext.txtc:usertext.txt"c:usertext.txt""c:usertext.txt"(3) 若执行fopen函数时发生错误,贝炳数的返回值是.A) 地址值01EOF(4) 若要用fopen函数打开一个新的二进制文件,该文件要既能读又能写,则文件方式字符串应是。A) "ab+""wb+""rb+&q

22、uot;"ab"(5) 当顺利执行了文件关闭操作时,fclose函数的返回值是。-1TURE01二、填空第一章C语言概述(1) C源程序的基本单位是()(2) 一个C源程序至少应包括一个()(3) 在一个C源程序中,注释部分两侧的分界符分别为()和()(4) 在C语言中,输入操作是由库函数()完成的,输出操作是由库函数()完成的。第二章数据类型、运算符与表达式在C语言中(以16位机为例),一个char型数据在内存中所占的字节数为(),一个int型数据在内存中所占的字节数为()。(2) 在C语言中,实型变量分为两种类型,它们是()和()。若a是int型变量,则计算表达式a=2

23、5/3%3后,a的值为()。(4) C语言中的标识符只能由三种字符组成,它们是(),()和()表达式8/4*(int)2.5/(int)(1.25*3.7+2.3)值的数据类型为()。第三章简单C程序设计(1) 以下程序的输出结果是()。main()(intx=1,y=2;printf("x=%dy=%d*sum*=%d,x,y,x+y);printf("10squaredisr%d,10*10);(2) 以下程序的输出结果是()。#include<studo.h>main()(inta=325;doublex=3.1415926;printf("a=

24、%+06dx=%+e,a,x,);假设变量a和b均为整型,以下语句可以下借助任何变量把a、b中的值进行交换。请填空。a+=();b=a-();a-=();(4)设x,y和z都是int型变量,m为long型变量,则在16位微型机上执行下面的赋值语句后,x值为(),y值为(),z值为()。y=(x=32767,x=-1);z=m=0xFFFF(5)若x为int型变量,则执行以下语句后x的值是()x=7;x+=x-=x+x;第四章选择结构程序设计(1) 当a=3,b=2,c=1时,表达式f=a>b>c的值是()。(2) 在C语言中表示逻辑“真”值用()。(3) 设x,y,z均为int型变

25、量,请写出描述"x或y中有一个小于z”的表达式().(4) 当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后;n的值为(),m的值为()。(5) 有inta=3,b=4,c=5;则表达式a|b+c&&b=c的值为()。(1) 第五章循环控制执行下面程序段后,K值是()。K=1;n=263;(2) Do(k*=n%10;n/=10while(n);下面程序段中循环体的执行次数是()。A=10;B=0;(3) Do(b+=2;a-=2+b;while(a>=0);下面程序段的运行结果是()。X=2

26、9;(4) Do(printf("*");x-;while(!x=0);下面程序段的运行结果是()。I=1;a=0;s=1;Do(a=a+s*i;s=-s;i+;while(i<=10)(5) Printf("a=%d,a");鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。For(x=1;x<=29;x+)y=30-x;if()printf("%d,n%d,x,y);第六章数组(1) 在C语言中,二维数组的定义方式为:类型说明符数组名()();(2) 在C语言中,二维数组元素在内存中的存放顺序是()。(3)

27、若有定义:doublex35;则x数组中行下标的下限为(),列下标的上限为()。若二维数组a有m列,则计算机任一元素ai田在数组中位置的公式为:().(假设a00位于数组的第一个位置上。)若有定义:inta34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是(),a21得到初值是()。(1) 第七章函数C语言规定,可执行程序的开始执行点是()。(2) 在C语言中,一个函数一般由两个部分组成,它们是()和()。下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是();改正后为()。(3) Voidadd(floata,floatb)floatc;c=a+b

28、;returnc'以下程序的运行结果是()。main()increment();increment();increment();increment();intx=0;x+=1;printf("d',x);以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示WELLDONE!",否则显示计算后的值。已有函数调用语句Check(ponse,value);请填空。VoidCheck(intponse,value)intval;val=();printf(计算后的值:d,val);if()printf("n”

29、);elseprintf)"n",val);第八章编译预处理命令设有以下宏定义:#defineWIDTH80#defineLENGTHWIDTH+40则执行赋值语句:v=LENGTH*20;(V为int型变量)后,v的值是()。设有以下宏定义:#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(K为int型变量)后,k的值是()。(1) 下面程序的运行结果是()。#defineDOUBLE(r)r*rmain()intx=1,y=2,t;t=DOBLE(x+y);printf("r%d,t);(2)

30、下面程序的运行结果是()。#defineMUL(z)(z)*(z)main()printf("i%d,MUL(1+2)+3);(3) 下面程序的运行结果是()。#definePOWER(x)(x)*(x)main()intI=1;while(I<=4)printf(t”",3WER(I+);printf(n冰');第九章指针(1) 下面程序段的运行结果是()chars80,*sp="HELLO!";sp=strcpy(s,sp);s0='h;puts(sp);(2) 下面程序段的运行结果是()chara=”123456789”,*p

31、;intI=0;p=a;while(*p)if(I%2=0)p='*;p+;I+;puts(a);(3) 若有以下语句和定义:inta4=0,1,2,3,*p;p=&a1;则+(*p)的值是()(4) 若有定义:inta23=2,4,6,8,10,12;则(&a00+282+1的值是(),*(a1+2)的值是()。(1) 第十章结构体与共用体以下程序用以输出结构体变量bt所占内存单元的字节数,请在()内填上适当的内容。StructpsdoubleI;chararr20;main()structpsbt;ptintf("btsize:%ic|();(2) 设有三

32、人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名和年龄,请在()内填上正确的内容。Staticstructmancharname20intage;person"liming",18,"wanghua”,19,"zhangping",20;main()inti,j,max,min;max=min=person0.age;for(i=1;i<3;i+)if(personi.age>max)();elseif(personi.age<min)();for(i=0;i<3;i+)if(personi.age!=m

33、ax()personi.age!=min)printf("%sr%d,,personi.age);break;若以定义:structnuminta;intb;floatf;n=1,3,5.0;structnum*pn=&n;则表达式pn->b/n.a*+pn->b的值是(),表达式(*pn).a+pn->f的值是()。(4)以下程序的功能是计算并打印复数的差。请在()内填入正确的内容。Structcompfloatre;floatim;structcomp*m(x,y)structcomp*x,*y;();z=(structcomp*

34、)malloc(sizeof(structcomp);z->re=x->re-y->re;z->im=x->im-y->im;return();main()structcomp*t;structxompa,b;a. re=1;a.im=2;b. re=3;b.im=4;t=m();printf("z.re=%f,z.im=%f>re,t->ipt);(5) 以下程序的运行结果是(structks(inta;int*b;s4,*p;main()(intn=1,i;printf(n"");for(i=0;i<4;i

35、+)(si.a=n;si.b=&si.a;n=n+2;P=&s0;P+;printf("%d,%'d,(+p)>a,(p+->a);第十一章位运算(1)在C语言中,&运算符作为单目运算符时表示的是(的是()运算。(2)与表达式a&=b等价的另一书写形式是()。设有chara,b;若要通过a&b运算屏蔽掉a中的其它位,则b的二进制数是().(4)测试char型变量a第六位是否为1的表达式是()运算;作为双目运算符时表示只保留第2和第8位(右起为第1位),)(设最右位是第一位)文件可以用(数据可以用(文件的存取是以()方式存取,

36、也可以用()方式存取。)和()两种代码形式存放。)为单位的,这种文件被称作()文件。)个字符放到buf字符数组中。在C程序中,在C程序中,在C程序中,函数调用语句:fgets(buf,n,fp);从fp指向的文件中读入(函数值为()。feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为(),否则为()。(5)(5)设二进制数x的值是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数为(第十二章文件(1)(2)(3)(4)三、判断第一章C语言概述第二章数据类型、运算符与表达式(1)C语言所提供的基本数据类型包括:整型、实型和字符型。(2)在

37、C程序中,逗号运算符的优先级最低。(3)当从键盘输入数据时,对整型变量只能输入整型数据,对实型变量只能输入实型数据。(4) C语言中的标识符只能由字母、数字和下划线三种字符组成。(5) 在C语言中,char型的数据在内存中的存储形式是原码形式。第三章简单C程序设计(1)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f”,&f)(2)整型变量的输出格式控制符只有%d一种。(3)putchar函数可以向终端输出一个字符串。(4) pirntf函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则输出按原字符长度从左向右

38、全部输出。输入项可以是一个实型常量,如scanf("f,2罚第四章选择结构程序设计(1)逻辑运算符两侧的运算对象可以是任何基本类型的数据。(2) C语言中只提供了三种逻辑运算符:&&,|,和!。(3) 若a=6,b=4,c=3则表达式a&&b+c|b-c的值是0。(4) 关系运算式的结果都是逻辑值。(5) 若a=1,b=2,则表达式a>b?a:b+1的值是3。第五章循环控制(1) 设有以下程序段:intx=0,s=0;while(!x!=0)s+=+x;printf("%d',s);则运行该程序段后输出为:0(2) for循环只

39、能应用于循环次数已经确定的情况。(3)goto语句只能用于退出多层循环。(4)switch语句中不能出现continue语句。(5)只能用continue语句终止本次循环。第六章数组(D两个字符串中所包含的字符个数相同时,才能比较字符串。(2) 字符数组可以存放字符串。(3) 不能用关系运算符对字符数组中的字符串进行比较。(4) 如果定义了一个指向数组的指针,则该指针可以相当于数组名使用。(5) 如果没有给一个整型数组的元素赋初值,则其元素的缺省初值全部为0。第七章函数(1) C语言中,用户若需调用标准库函数,在调用前必须重新定义。(2) C语言中不允许用户重新定义标准库函数。(3) 在C程序

40、中,函数的定义和调用都不允许嵌套。(4) 如果用数组名作为函数调用的实际参数,则传递给形参的是数组的首地址。(5) 形式能参数也是一种局部变量。第八章编译预处理命令(1) 预处理命令行都必须以#号开始。(2) 宏替换不占用运行时间,只占编译时间。(3)C程序在执行过程中对预处理命令进行处理。(4)宏名必须用大写字母表示。include后的文件名用<>括起来时,表示在(5)在文件包含预处理命令的使用形式中,当#当前目录搜索被包含文件。第九章指针(1)若有定义:int(*p)4,贝U标识符p表示的是一个指向整型变量的指针。(2)若有定义:int*p4,贝U标识符p表示的是一个指针数组名

41、。(3)指针值就是地址值。(4)若有定义int(*p)(),指针p可以表示函数返回值的类型。(5)C语言允许main函数带形参,但形参名只能是argv和arvc。第十章结构体与共用体(1)当定义一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和。(2) C语言中,结构体变量在程序执行期间只有部分成员驻留在内存中。(3) 一个共用体类型定义中不能出现结构体类型的成员。(4) 用typedef只是将已存在的类型用一个新的标识符来代表,而不能增加新类型。(5) 用typedef可以定义各种类型名,但不能用来定义变量。第十一章位运算第十二章文件(1) 利用fseek函数可以实现文件的随机读写

42、的操作。(2) 函数rewind的作用是使位置指针重新返回文件的开头。(3) 在C程序中,文件可以用随机读写的方式存取,也可以用顺序读写的方式存取。(4) 函数ftell(fp)的作用是得到流式文件中的当前位置。(5) fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是只读的。四、程序设计第一章C语言概述第二章数据类型、运算符与表达式第三章简单C程序设计第四章选择结构程序设计(1) 编程实现:输入一个整数,判断它能否被子3,5,7整除,并输出以下信息之一:1) 能同时被3,5,7整除;能被其中两数(要指出哪两个)整除;能被其中一个数(要指出哪一个)整除;不能被3,5,7任一个

43、整除。(2) 用switch编程实现:-1(x<0)y=0(x=0)1(x.0)第五章循环控制(1) 每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的倍,直至购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱?(2) 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。(1) 第六章数组从键盘输入若干整数(数据个数应少于50),其值在0至4的范围内,用一1作为输入结束的标志。统计每个整数的个数。试编程。(2) 若有说明:inta23=1,2,3,4,5,6;现要将a的行和列的元素互换后存到另一个二维数组b中。试编程。(1) 第七章函数已有变

44、量定义和函数调用语句inta,b;b=sum(a);函数sum()用以求k,和数作为函数值返回。若a值为10,经函数sum的计算后,b的值是55。请编写sum函数。Sum(intn)(2) a是一个2*4的整型数组,且各元素均已赋值,函数max_value可求出其中的最大元素值max,并将此值返回主调函数。今有函数调用语句max=max_value(a);请编写max_value函数。Max_value(intarr4)第八章编译预处理命令(1) 输入两个整数,求它相除的余数。用带参的宏来编程实现。(2) 试用义一个带参的宏swap(x,y),以实现两个整数之间的交换,并利用它将一维数组a和b

45、的值进行交换。第九章指针(1) 编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串。请用指针完成。设有一数列,包含10个数,已按升序排好。现要求编一程序,它能够把从指定位置开始的N个数按逆序重新排列并输出新的完整数列。进行逆序处理时要赤使用指针方法。试编程。(例如:原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20。)第十章结构体与共用体试利用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成

46、绩表。(1) 请定义枚举类型,用枚举元素代表人民币的面值。包括1,2,5分;1,2,5角;1,2,5,10,50,100元。第十一章位运算(1) 请编程序:从终端读入16进制无符号整数M,调用函数rightrot将M中的原始数据循环右移N位。并输出移位前后的内容。请编写函数getbits从一个16位的单元中取出以n1开始至n2结束的某几位,起始位和结束位都从左向右计算。同时编写主函数调用getbits进行验证。第十二章文件(1)请编写程序:从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,输出到磁盘文件"upper.txt"中保存。输入的字符串以"!&qu

47、ot;结束。然后再将文件upper.txt中的内容读出显示在屏幕上。(2)设文件student.dat中存放着一年级学生的基本情况,这些情况由以下结构体来描述:strucstudent(longintnum;/*学号*/charname10;/*姓名*/intage;/*年龄*/charsex;/*性别*/charspeciality20;/*专业*/charaddr40;/*地址*/;请编写程序,输出学号在970101971035之间的学生学号、姓名、年龄和性别。五、参考答案一、名词解释二、单项选择题第一章C语言概述(1) A(2) C(3) D(4) CB第二章数据类型、运算符与表达式(1

48、) C(2) A(3) C(4) CA第三章简单C程序设计(1) D(2) D(3) D(4) AB第四章选择结构程序设计(1) C(2) B(3) D(4) CB第五章循环控制CCAC(5)C第六章数组CBDCD第七章函数ADBBB第八章编译预处理BBDDB第九章指针DBBDCDD(8)AD(10)C第十章结构体与共用体C(5)D第十一章位运算<1>C<2>BBBB(5)C第十二章文件A(2)BCD(5)C三、填空题第一章C语言概述函数主函数(或:main函数)<1>/*<2>*/<1>scanf<2>printf第二章

49、数据类型、运算符与表达式<1>1<2>2<1>单精度型(或:float型)<2>双精度型(或double型)<1>10<2>6<1>字母<2>数字<3>下划线整型(或:int型)第三章简单C程序设计x=1y=2*sum*=310Squaredis:100a=+00325-x=+3.14159e+00(此处-'“代表空格)<1>b<2>b<3>b<1>32766<2>-1<3>65535(5)-14第四章选择结

50、构程序设计(1)0非0的数字x<z|y<z<1>0<2>11第五章循环控制(1)363*a=-52*i+4*y=90第六章数组<1>常量表达式<2>常量表达式按行主顺序存放<1>0<2>4i*m+j+1<1>0<2>6第七章函数(1)程序中的main()函数<1>函数说明部分<2>函数体<1>voidadd(floata,floatb)<2>floatadd(floata,floatb)111<1>(int)(value*10+

51、5)/10)<2>ponse=val第八章编译预处理8802400512212第九章指针(1)hELLO!(2)*2*4*6*82<1>12<2>12第十章结构体与共用体sizeof(structps)<2>min=personi.age<3>&&<2>z<3>&a,&b<1>max=personi.age<1>12<2>6.0<1>structcomp*z7,3第十一章位运算<1>取地址<2>按位与a=a&

52、amp;b10000010a&040或a&0x20或a&32(5)00001111第十二章文件(1)<1>顺序(或随机)<2>随机(或顺序)<2>ASCII<2>流式<2>buf的首地址<1>二进制<1>字符<1>n-150*sizeof(structst)四、判断第二章数据类型、运算符与表达式(1)错(2)对(3)错(2) 对(5)错第三章简单C程序设计(1)错(2)错(3)错(4)对(5)错第四章(1)对(2)对(3)错(4)对(5)对第五章(1)错(2)错(3)错(4)

53、错(5)对第六章数组(1)错(2)对(3)对(4)对(5)对第七章函数(2)错(3)错(4)对(5)对第八章编译预处理命令(1)对(2)对(3)错(4)错(5)错第九章指针(1)错(2)对(3)对(4)错(5)错第十章结构体与共用体(1)对(2)错(3)错(4)对(5)错第十二章文件(1)错(2)对(3)对(4)对(5)错五、编程题第一章C语言概述第二章数据类型、运算符与表达式第三章简单C程序设计第四章选择结构程序设计(1)main()(intx;scanf("%d',&x);if(x%3=0)&&(x%5=0)&&(x%7=0)pri

54、ntf("%dcanbedividedby3,5,7,x);elseif(x%3=0)&&(x%5=0)printf("%dcanbedividedby3;5,x);elseif(x%3=0)&&(x%7=0)printf("%dcanbedividedbyn,'7,x);elseif(x%5=0)&&(x%7=0)printf("dn”,x);elseif(x%3=0)n,x);elseif(x%5=0)printf"%dcanbedividedby"5,x);elseif(x

55、%7=0)n,x);elseprintf("%dcannotbedivided3,5'7x);(2)main()(floatx;inty;printf(ninputx:");scanf("%f",&x);switch(x<0)(case1;y=-1;break;case0;switch(x=0)(case1;y=0;break;default:y=1;printf(ny=%d”,y);第五章循环控制(1)#include<stdio.h>main()(intday=0,buy=2;floatsum=0.0,ave;do(

56、sum+=0.8*buy;day+;buy*=2;while(buy<=100);ave=sum/day;printf("%f,ave;(2)#include<stdio.h>main()(inti,j;float(i=1;i<=6;i+)(sum=0;for(j=1;j<=5;j+)(scanf(%f,&g);sum+=g;ave=sum5;printf("No.%dave=%5i2f,i,ave);第六章数组(1)#defineM50main()(intaM,c5,i,n=0,x;printf("Enter0or1or2o

57、r3or4,toendwithn");scanf("%d,&x);while(x!=-1)(if(x>=0&&x<=4)(anx;n+;for(i=o;i<=5;i+)ci=0;for(i=0;i<n;I+)cai+;printf("Theresultns:);for(i=;i<=4;i+)printf("%d:%)d,ci);printf(n"");(2)main()(inta54=(3,6,2,1,3,9,0,2,1,5,6,7,4,0,0,0,0;inti,j;for(i=0

58、;I<4;I+)for(j=0;j<4;j+)a4j+=aij;printf("Theresultiis:);for(i=0;i<4;i+)printf(“3d',a4i);第七章函数sum(intn)(inti,k=0;for(i=0;i<=n;i+)k+=i;returnk;max(intarr4)(intI,j,max;max=arr00;for(I=0;I<2;I+)for(j=o;j<4;j+)if(arrij>max)max=arrij;(1) return(max);第八章编译预处理#defineMOD(a,b)(a%b

59、)main()(inta,b;printf("inputtwointegera,b:");scanf("%d,%d,&a,&b);printf("amodbisj%d,MOD(a,b)(2) #defineswap(x,y)(intt;t=x;x=y;y=t;main()(inti,a10,b10;for(i=0;I<10;i+)scanf("%d,&ai);for(i=0;i<10;i+)scanf("%d',&bi);for(i=o;i<10;i+)swap(ai,bi);for(i=0;i<10;i+)printf("%d',ai");printf(n"");for(i=0;i<10;i+)printf("d',bi);第九章指针(1)#includemain()(staticcharx=acomputer";char*p;for9p=x;p<x+7;p+=2)putchar(*p);printf(n"");(2)#include<stdio.h>main()(intb10,posit

温馨提示

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

评论

0/150

提交评论