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

下载本文档

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

文档简介

C语言试题库单项选择C语言概述一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN函数结束。B、本程序文献的第一个函数开始,到本程序文献的最后一个函数结束。C、本程序的MAIN函数开始,到本程序的最后一个函数结束。D、本程序文献的第一个函数开始,到本程序的MAIN函数结束。以下叙述对的的是在C程序中,MAIN函数必须位于程序的最前面。C程序的每行中只能写一条语句。C语言自身没有输入输出语句。在对一个C程序进行编译的过程中,可发现注释中的拼写错误。C语言规定,在一个源程序中,MAIN主函数的位置是在:必须在最前面。必须在系统调用的库函数的后面可以在任意位置。必须在最后面一个C程序是由:一个主程序和若干子程序组成函数组成若干过程组成若干子程序组成以下叙述不对的的是:一个C源程序可由一个或多个函数组成一个C源程序必须包含一个MAIN函数C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面数据类型、运算符与表达式若x,i,j,k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32)A、4B、16C、32D、52下列四组选项中,均不是C语言键字的选项是A、define,IF,typeB、getc,char,printfC、include,scanf,caseif,struct,type下面四个选项中,均是不合法的用户标记符的选项是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(5)已知各变量的类型说明如下: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)简朴C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,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);选择结构程序设计(1)能对的表达“当x的值在[1,10]和[200,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)(2)以下程序的运营结果是#include“stdio.h”main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){inta=5,b=0,c=0;if(a+b+c)printf(“***\n”);elseprintf(“$$$\n”);}以上程序。有语法错误不能通过编译可以通过编译但不能直接通过连接输出***输出$$$(4)以下程序的运营结果是。main(){intm=5;if(m++>5)printf(“%d\n”,m);elseprintf(“%d\n”,m——);}4567为了避免在嵌套的条件语句中if-else中产生二义性,c语言规定:else子句总是与相配对。A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if循环控制(1)设有程序段intk=10while(k=0)k=k-1则下面描叙对的的是。while(k=0)k=k-1;循环是无限循环循环体语句一次也不执行循环体语句执行一次(2)下面程序段的运营结果是。intn=0;while(n++<=2);printf(“%d”,n);234有语法错(3)C语言中while和do-while循环的重要区别是。do-while的循环体至少无条件执行一次while的循环控制条件比do-while的循环控制条件严格do-while允许从外部转到循环体内do-while允许从外部转到循环体内(4)以下能对的计算1*2*3*…*10的程序段是。do{i=1;s=1;s=s*i;i++;}while(I<=10);do{i=1;s=0;s=s*i;i++;}while(I<=10);C)i=1;s=1;do{s=s*i;i++;}while(I<=10);D)i=1;s=0;do{s=s*i;i++;}while(I<=10);数组(1)在c语言中,引用数组元素时,其数组下标的数据类型允许是____。整型常量整型表达式整型常量或整型表达式任何类型的表达式(2)以下能对二维数组a进行对的初始化的语句是____。inta[2][]={{1,0,1},{5,2,3,}};inta[][3]={{1,2,3},{4,5,6}};inta[2][4]={1,2,3,},{4,5},{6}};inta[][3]={{1,0,1},{},{1,1}};)(3)若有说明:inta[3][4]={0};则下面对的的叙述是____。只有元素a[0][0]可得到初值0此说明语句不对的数组a中各元素都可得到初值,但其值不一定为0数组a中每个元素均可得到初值0(4)下面程序___(每行程序前面的数字表达行号)。1main()2{3floata[10]={0};4inti5for(i=0;i<3;i++)scanf(“%d”,&a[i];6for(i=1;i<10;i++)a[0]=a[0]+a{i};7printf(“%f\n”,a[0]);8}没有错误第3行有错误第5行有错误第7行有错误(5)若二维数组a有m列,则计算机一元素a[i][j]在数组中位置的公式为____。(假设a[0][0]位于数组的第一个位置上。)i*m+jj*m+ii*m+j-1i*m+j+1函数(1)以下对的的函数定义形式是。A)doublefun(intx,inty)doublefun(intx;inty)doublefun(intx,inty)doublefun(intx,y);(2)以下对的的函数形式是。doublefun(intx,inty){z=x+y;returnz;}fun(intx,y){intz;returnz;}fun(x,y){intx,y;doublez;z=x+y;returnz;}doublefun(intx,inty){doublez;z=x+y;returnz;}(3)C语言规定,简朴变量做实参时,它和相应形参之间的数据传递方式是A)地址传递 B)单向值传递C)由实参传给形参,再由形参传回给实参D)传递方式(4)C语言允许函数值型缺省定义,此时该函数值隐含的类型是。A)float型B)int型C)long型D)double型(5)下面函数调用语句具有实参的个数为。func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)5编译预解决命令(1)请读程序:#defineADD(x)x+xmain(){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运营结果是。sum=9sum=10sum=12sum=18(2)以下程序的运营结果是。#defineMIN(x,y)(x)<(y)?(x)+(y)main(){intI=10,j=15,k;k=10*MIN(I,j);printf(“%d\n”,k);}A)10B)15C)100D)150(3)在宏定义#definePI3.14159中,用宏名PI代替一个。常量单精度数双精度数字符串(4)若有宏定义如下:#defineX5#defineYX+1#defineZY*x/2则执行以下printf语句后,输出结果是。inta;a=Y;printf(“%d\n”,Z);printf(“%d\n”,--a);A)7B)12C)12D)76655(5)若有以下宏定义:#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中存放的是地址值,因此不能执行*P=40;语句Q没有指向具体的存储单元,所以*Q没有实际意义Q虽然指向了具体的存储单元,但该单元中没有拟定值,所以不能执行*P=*Q;语句(2)已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量K,下面不能对的执行的赋值语句是.A)k=*ptr1+*ptr2;B)ptr2=K;C)ptr1=ptr2;D)k=*ptr1*(*ptr2);(3)变量的指针,其含义是指该变量的________.A)值B)地址C)名D)一个标志(4)若有语句int*point,a=4;和ponit=&a;下面均代表地址的一组选项是_________.a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point(5)下面能对的进行字符串赋值操作的是________.chars[5]={“ABCDE”};chars[5]={‘A’,’B’,’C’,’D’,’E’};char*S;s=”ABCDE”;char*S;scanf(“%s”,s);若有以下定义,则对A数组元素的对的引用是_______.A)*&a[5]B)*a+2C)*(P+5)D)*(a+2)若有以下定义,则对a数组元素地址的对的引用是_______>p+5*a+1&a+1&a[0]若有定义:inta[2][3];则对a数组的第I行第J列(假设I,J已对的说明并赋值)元素值的对的引用为_______.A)*(*(a+I)+J)B)(a+I)[j]C)*(a+I+j)D)*(a+I)+j(9)若有定义:inta[2][3];则对a数组的第i行第j列(假设i,j已对的说明并赋值)元素地址的对的引用为________.A)*(a[i]+j)B)(a+i)C)*(a+j)a[i]+j(10)若有以下定义和语句,则对a数组元素地址的对的引用为_________.Inta[2][3],(*p)[3]P=a;A)*(p+2)p[2]p[1]+1(p+1)+2结构体与共用体以下对结构体类型变量的定义中不对的的是_________.A)#defineSTUDENTstructstudentSTUDENT{intnum;floatage;}std1;B)structstudent{intnum;floatage;}std1;C)struct{intnum;floatage;}std1;D)struct{intnum;floatage;}student;structstudentstd1;设有以下语句structstu{inta;floatb;}stutype;则下面叙述对的的是__________.A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名设有以下定义:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,对的的赋值语句是_________p=&data.n;*p=data.n;p=(structsk*)&data.n;p=(structsk*)data.n;设有以下语句:structst{intn;structst*next;}staticstructsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];则以下表达式的值为6的是_______.p++->np->n++(*p).n++++p->n位运算(1)以下运算符中优先级最低的是优先级最高的是。A)&&B)&C)||D)|(2)若有运算符<<,sixeof,^,&=则它们按优先级按由高到低的对的排列顺序是。A)sizeof,&=,<<,^B)sizeof,<<,^,&=C)^,<<,sizeof,&=D)<<,^,&=,sizeof(3)在C语言中,规定运算数必须是整型的运算符是。A)^B)%C)!D)>(4)在C语言中,规定运算数必须是整型或字符型的运算符是。A)&&B)&C)!D)||(5)sozeof(float)是。A)一种函数调用B)一种不合法的表达形式C)一个整型表达式D)一个浮点表达式文献(!)系统的标准输入文献是指。A)键盘B)显示器C)软盘D)硬盘(2)以下可作为函数fopen中第一个参数的对的格式是。c:user\text.txtc:\user\text.txt"c:\user\text.txt""c:\\user\text.txt"(3)若执行fopen函数时发生错误,则函数的返回值是.A)地址值B)0C)1D)EOF(4)若要用fopen函数打开一个新的二进制文献,该文献要既能读又能写,则文献方式字符串应是。A)"ab+"B)"wb+"C)"rb+"D)"ab"(5)当顺利执行了文献关闭操作时,fclose函数的返回值是。A)-1B)TUREC)0D)1填空C语言概述C源程序的基本单位是()一个C源程序至少应涉及一个()在一个C源程序中,注释部分两侧的分界符分别为()和()在C语言中,输入操作是由库函数()完毕的,输出操作是由库函数()完毕的。数据类型、运算符与表达式在C语言中(以16位机为例),一个char型数据在内存中所占的字节数为(),一个int型数据在内存中所占的字节数为()。在C语言中,实型变量分为两种类型,它们是()和()。若a是int型变量,则计算表达式a=25/3%3后,a的值为()。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\n”,x,y,x+y);printf(“10squaredis:%d\n”,10*10);}(2)以下程序的输出结果是()。#include<studo.h>main(){inta=325;doublex=3.1415926;printf(“a=%+06dx=%+e\n”,a,x,);}(3)假设变量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型变量,请写出描述“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;Do{k*=n%10;n/=10}while(n);(2)下面程序段中循环体的执行次数是()。A=10;B=0;Do{b+=2;a-=2+b;}while(a>=0);(3)下面程序段的运营结果是()。X=2’Do{printf(“*”);x--;}while(!x==0);(4)下面程序段的运营结果是()。I=1;a=0;s=1;Do{a=a+s*i;s=-s;i++;}while(i<=10)Printf(“a=%d,a”);(5)鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。For(x=1;x<=29;x++){y=30-x;if()printf(“%d,%d\n”,x,y);}数组(1)在C语言中,二维数组的定义方式为:类型说明符数组名()();(2)在C语言中,二维数组元素在内存中的存放顺序是()。(3)若有定义:doublex[3][5];则x数组中行下标的下限为(),列下标的上限为()。(4)若二维数组a有m列,则计算机任一元素a[i][j]在数组中位置的公式为:().(假设a[0][0]位于数组的第一个位置上。)(5)若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(),a[2][1]得到初值是()。函数(1)C语言规定,可执行程序的开始执行点是()。(2)在C语言中,一个函数一般由两个部分组成,它们是()和()。(3)下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是();改正后为()。Voidadd(floata,floatb){floatc;c=a+b;returnc’}(4)以下程序的运营结果是()。main(){increment();increment();increment();}increment();{intx=0;x+=1;printf(“%d”,x);}(5)以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELLDONE!!”,否则显示计算后的值。已有函数调用语句Check(ponse,value);请填空。VoidCheck(intponse,value){intval;val=();printf(“计算后的值:%d”,val);if()printf(“\NwellDNOE!!!\n”);elseprintf)”\nSorrythecorrectansweris%d\n”,val);}编译预解决命令(1)设有以下宏定义:#defineWIDTH80#defineLENGTHWIDTH+40则执行赋值语句:v=LENGTH*20;(V为int型变量)后,v的值是()。(2)设有以下宏定义:#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(K为int型变量)后,k的值是()。(3)下面程序的运营结果是()。#defineDOUBLE(r)r*rmain(){intx=1,y=2,t;t=DOBLE(x+y);printf(“%d\n”,t);}(4)下面程序的运营结果是()。#defineMUL(z)(z)*(z)main(){printf(“%d\n”,MUL(1+2)+3);}(5)下面程序的运营结果是()。#definePOWER(x)((x)*(x))main(){intI=1;while(I<=4)printf(“%d\t”,POWER(I++));printf(“\n”);}指针(1)下面程序段的运营结果是()chars[80],*sp=”HELLO!”;sp=strcpy(s,sp);s[0]=’h’;puts(sp);(2)下面程序段的运营结果是()char[a]=””,*p;intI=0;p=a;while(*p){if(I%2==0)p=’*’;p++;I++;}puts(a);(3)若有以下语句和定义:inta[4]={0,1,2,3,},*p;p=&a[1];则++(*p)的值是()(4)若有定义:inta[2][3]={2,4,6,8,10,12};则(&a[0][0]+282+1的值是(),*(a[1]+2)的值是()。结构体与共用体(1)以下程序用以输出结构体变量bt所占内存单元的字节数,请在()内填上适当的内容。Structps{doubleI;chararr[20];}main(){structpsbt;ptintf(“btsize:%d\n:,());(2)设有三人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名和年龄,请在()内填上对的的内容。Staticstructman{charname[20]intage;}person[]{“li—ming”,18,“wang—hua”,19,“zhang—ping”,20};main(){inti,j,max,min;max=min=person[0].age;for(i=1;i<3;i++)if(person[i].age>max)();elseif(person[i].age<min)();for(i=0;i<3;i++)if(person[i].age!=max()person[i].age!=min){printf(“%s%d\n”,person[i].name,person[i].age);break;}}(3)若以定义:structnum{inta;intb;floatf;}n={1,3,5.0};structnum*pn=&n;则表达式pn->b/n.a*++pn->b的值是(),表达式(*pn).a+pn->f的值是()。(4)以下程序的功能是计算并打印复数的差。请在()内填入对的的内容。Structcomp{floatre;floatim;}structcomp*m(x,y)structcomp*x,*y;{();z=(structcomp*)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”,t->re,t->im);}(5)以下程序的运营结果是()structks{inta;int*b;}s[4],*p;main(){intn=1,i;printf(“\n”);for(i=0;i<4;i++){s[i].a=n;s[i].b=&s[i.a;n=n+2;}p=&s[0];p++;printf(“%d,%d\n”,(++p)>a,(p++)->a);}位运算(1)在C语言中,&运算符作为单目运算符时表达的是()运算;作为双目运算符时表达的是()运算。(2)与表达式a&=b等价的另一书写形式是()。(3)设有chara,b;若要通过a&b运算屏蔽掉a中的其它位,只保存第2和第8位(右起为第1位),则b的二进制数是().(4)测试char型变量a第六位是否为1的表达式是()(设最右位是第一位)。(5)设二进制数x的值是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数为()。文献(1)在C程序中,文献可以用()方式存取,也可以用()方式存取。(2)在C程序中,数据可以用()和()两种代码形式存放。(3)在C程序中,文献的存取是以()为单位的,这种文献被称作()文献。(4)函数调用语句:fgets(buf,n,fp);从fp指向的文献中读入()个字符放到buf字符数组中。函数值为()。(5)feof(fp)函数用来判断文献是否结束,假如碰到文献结束,函数值为(),否则为()。判断C语言概述数据类型、运算符与表达式C语言所提供的基本数据类型涉及:整型、实型和字符型。在C程序中,逗号运算符的优先级最低。当从键盘输入数据时,对整型变量只能输入整型数据,对实型变量只能输入实型数据。C语言中的标记符只能由字母、数字和下划线三种字符组成。在C语言中,char型的数据在内存中的存储形式是原码形式。简朴C程序设计当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f)。整型变量的输出格式控制符只有%d一种。putchar函数可以向终端输出一个字符串。pirntf函数中用到格式符%5s,其中数字5表达输出的字符串占5列,假如字符串长度大于5,则输出按原字符长度从左向右所有输出。输入项可以是一个实型常量,如scanf(“%f”,2.3)。选择结构程序设计逻辑运算符两侧的运算对象可以是任何基本类型的数据。C语言中只提供了三种逻辑运算符:&&,||,和!。若a=6,b=4,c=3则表达式a&&b+c||b-c的值是0。关系运算式的结果都是逻辑值。若a=1,b=2,则表达式a>b?a:b+1的值是3。循环控制设有以下程序段:intx=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);则运营该程序段后输出为:0for循环只能应用于循环次数已经拟定的情况。goto语句只能用于退出多层循环。switch语句中不能出现continue语句。只能用continue语句终止本次循环。数组两个字符串中所包含的字符个数相同时,才干比较字符串。字符数组可以存放字符串。不能用关系运算符对字符数组中的字符串进行比较。假如定义了一个指向数组的指针,则该指针可以相称于数组名使用。假如没有给一个整型数组的元素赋初值,则其元素的缺省初值所有为0。函数C语言中,用户若需调用标准库函数,在调用前必须重新定义。C语言中不允许用户重新定义标准库函数。在C程序中,函数的定义和调用都不允许嵌套。假如用数组名作为函数调用的实际参数,则传递给形参的是数组的首地址。形式能参数也是一种局部变量。编译预解决命令预解决命令行都必须以#号开始。宏替换不占用运营时间,只占编译时间。C程序在执行过程中对预解决命令进行解决。宏名必须用大写字母表达。在文献包含预解决命令的使用形式中,当#include后的文献名用<>括起来时,表达在当前目录搜索被包含文献。指针若有定义:int(*p)[4],则标记符p表达的是一个指向整型变量的指针。若有定义:int*p[4],则标记符p表达的是一个指针数组名。指针值就是地址值。若有定义int(*p)(),指针p可以表达函数返回值的类型。C语言允许main函数带形参,但形参名只能是argv和arvc。结构体与共用体当定义一个结构体变量时,系统分派给它的内存是各成员所需内存量的总和。C语言中,结构体变量在程序执行期间只有部提成员驻留在内存中。一个共用体类型定义中不能出现结构体类型的成员。用typedef只是将已存在的类型用一个新的标记符来代表,而不能增长新类型。用typedef可以定义各种类型名,但不能用来定义变量。位运算文献运用fseek函数可以实现文献的随机读写的操作。函数rewind的作用是使位置指针重新返回文献的开头。在C程序中,文献可以用随机读写的方式存取,也可以用顺序读写的方式存取。函数ftell(fp)的作用是得到流式文献中的当前位置。fgetc函数的作用是从指定文献读入一个字符,该文献的打开方式必须是只读的。程序设计C语言概述数据类型、运算符与表达式简朴C程序设计选择结构程序设计(1)编程实现:输入一个整数,判断它能否被子3,5,7整除,并输出以下信息之一:1)能同时被3,5,7整除;2)能被其中两数(要指出哪两个)整除;3)能被其中一个数(要指出哪一个)整除;4)不能被3,5,7任一个整除。(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)若有说明:inta[2][3]={{1,2,3},{4,5,6}};现要将a的行和列的元素互换后存到另一个二维数组b中。试编程。函数(1)已有变量定义和函数调用语句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(intarr[][4]){}编译预解决命令(1)输入两个整数,求它相除的余数。用带参的宏来编程实现。(2)试用义一个带参的宏swap(x,y),以实现两个整数之间的互换,并运用它将一维数组a和b的值进行互换。指针(1)编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串。请用指针完毕。(2)设有一数列,包含10个数,已按升序排好。现规定编一程序,它可以把从指定位置开始的N个数按逆序重新排列并输出新的完整数列。进行逆序解决时要赤使用指针方法。试编程。(例如:原数列为2,4,6,8,10,12,14,16,18,20,若规定把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20。)结构体与共用体(1)试运用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表。(2)请定义枚举类型,用枚举元素代表人民币的面值。涉及1,2,5分;1,2,5角;1,2,5,10,50,100元。位运算(1)请编程序:从终端读入16进制无符号整数M,调用函数rightrot将M中的原始数据循环右移N位。并输出移位前后的内容。(2)请编写函数getbits从一个16位的单元中取出以n1开始至n2结束的某几位,起始位和结束位都从左向右计算。同时编写主函数调用getbits进行验证。文献(1)请编写程序:从键盘输入一个字符串,将其中的小写字母所有转换成大写字母,输出到磁盘文献“upper.txt”中保存。输入的字符串以“!”结束。然后再将文献upper.txt中的内容读出显示在屏幕上。(2)设文献student.dat中存放着一年级学生的基本情况,这些情况由以下结构体来描述:strucstudent{longintnum;/*学号*/charname[10];/*姓名*/intage;/*年龄*/charsex;/*性别*/charspeciality[20];/*专业*/charaddr[40];/*地址*/};请编写程序,输出学号在970101—971035之间的学生学号、姓名、年龄和性别。参考答案一、名词解释二、单项选择题第一章C语言概述(1)A(2)C(3)D(4)C(5)B第二章数据类型、运算符与表达式(1)C(2)A(3)C(4)C(5)A第三章简朴C程序设计(1)D(2)D(3)D(4)A(5)B第四章选择结构程序设计(1)C(2)B(3)D(4)C(5)B第五章循环控制CCACC第六章数组CBDCD第七章函数ADBBB第八章编译预解决BBDDB第九章指针DBBDCDDADC第十章结构体与共用体DCDCD第十一章位运算(1)<1>C<2>B(2)B(3)B(4)B(5)C第十二章文献ABCDC三、填空题第一章C语言概述函数主函数(或:main函数)<1>/*<2>*/<1>scanf<2>printf第二章数据类型、运算符与表达式(1)<1>1<2>2(2)<1>单精度型(或:float型)<2>双精度型(或double型)(3)<1>10<2>6(4)<1>字母<2>数字<3>下划线(5)整型(或:int型)第三章简朴C程序设计(1)x=1y=2*sum*=310Squaredis:100(2)a=+00325---x=+3.14159e+00(此处“-“代表空格)(3)<1>b<2>b<3>b(4)<1>32766<2>-1<3>65535(5)-14第四章选择结构程序设计0非0的数字x<z||y<z<1>0<2>11第五章循环控制363**a=-52*i+4*y==90第六章数组<1>常量表达式<2>常量表达式按行主顺序存放<1>0<2>4i*m+j+1<1>0<2>6第七章函数程序中的main()函数<1>函数说明部分<2>函数体<1>voidadd(floata,floatb)<2>floatadd(floata,floatb)111<1>(int)((value*10+5)/10)<2>ponse==val第八章编译预解决8802400512212第九章指针hELLO!*2*4*6*8*2<1>12<2>12第十章结构体与共用体sizeof(structps)<1>max=person[i].age<2>min=person[i].age<3>&&<1>12<2>6.0<1>structcomp*z<2>z<3>&a,&b7,3第十一章位运算(1)<1>取地址<2>按位与(2)a=a&b(3)10000010(4)a&040或a&0x20或a&32(5)00001111第十二章文献(1)<1>顺序(或随机)<2>随机(或顺序)(2)<1>二进制<2>ASCII(3)<1>字符<2>流式(4)<1>n-1<2>buf的首地址(5)50*sizeof(structst)四、判断数据类型、运算符与表达式错对错对错简朴C程序设计错错错对错对对错对对错错错错对数组错对对对对函数错错错对对编译预解决命令对对错错错指针错对对错错结构体与共用体对错错对错文献错对对对错五、编程题第一章C语言概述第二章数据类型、运算符与表达式第三章简朴C程序设计第四章选择结构程序设计(1)main(){intx;scanf(“%d”,&x);if((x%3==0)&&(x%5==0)&&(x%7==0))printf(“%dcanbedividedby3,5,7\n”,x);elseif((x%3==0)&&(x%5==0))printf(“%dcanbedividedby3,5\n”,x);elseif((x%3==0)&&(x%7==0))printf(“%dcanbedividedby3,7\n”,x);elseif((x%5==0)&&(x%7==0))printf(“%dcanbedividedby5,7\n”,x);elseif(x%3==0)printf(:%dcanbedividedby3\n”,x);elseif(x%5==0)printf“%dcanbedividedby5\n”,x);elseif(x%7==0)printf(%dcanbedividedby7\n”,x);elseprintf(“%dcannotbedivided3,5,7\n”,x);}(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{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=sum\5;printf(“No.%dave=%5.2f\n”,i,ave);}}第六章数组(1)#defineM50main(){inta[M],c[5],i,n=0,x;printf(“Enter0or1or2or3or4,toendwith–1\n”);scanf(“%d”,&x);while(x!=-1){if(x>=0&&x<=4){a[n]x;n++;}}for(i=o;i<=5;i++)c[i]=0;for(i=0;i<n;I++)c[a[i]]++;printf(“Theresultis:\n”);for(i=;i<=4;i++)printf(“%d:%d\n”,c[i]);printf(“\n”);}(2)main(){inta[5][4]={3,6,2,1,3,9,0,2,1,5,6,7,4,0,0,0,0};inti,j;for(i=0;I<4;I++)for(j=0;j<4;j++)a[4][j]+=a[i][j];printf(“Theresultis:\n”);for(i=0;i<4;i++)printf(“%3d”,a[4][i]);}第七章函数(1)sum(intn){inti,k=0;for(i=0;i<=n;i++)k+=i;returnk;}(2)max(intarr[][4]){intI,j,max;max=arr[0][0];for(I=0;I<2;I++)for(j=o;j<4;j++)if(arr[i][j]>max)max=arr[i][j];return(max);}第八章编译预解决(1)#defineMOD(a,b)(a%b)main(){inta,b;printf(“inputtwointegera,b:”);scanf(“%d,%d”,&a,&b);printf(“amodbis:%d\n”,MOD(a,b));}(2)#defineswap(x,y){intt;t=x;x=y;y=t;}main(){inti,a[10],b[10];for(i=0;I<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)scanf(“%d”,&b[i]);for(i=o;i<10;i++)swap(a[i],b[i]);for(i=0;i<10;i++)printf(“%d”,a[i]”);printf(“\n”);for(i=0;i<10;i++)printf(“%d”,b[i]);}第九章指针(1)#include“stdio.h”main(){staticcharx[]=“computer”;char*p;for9p=x;p<x+7;p+=2)putchar(*p);printf(“\n”);}(2)#include<stdio.h>main(){intb[10],position,mun,k,*q1,*q2,temp;printf(“Input10sortedmunbers:\n”);for(k=0;k<10;k++)scanf(“%d”,&b[k]);printf(“\nInputtheposition:\n”);scanf(‘%d”,&position);printf(“Inputthenumber

温馨提示

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

评论

0/150

提交评论