C语言题集及答案

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

C语言题集及答案

本卷共有4道大一、单项选择题(25道小题,共50分)1、以下说法中正确的是(C)(2分)A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性3、以下选项中,不合法常量的是(B)(2分)A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e04、C语言中最简单的数据类型包括(B)(2分)A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分)A、10>=a>=0B、a>=0anda<=10C、a>=0||a<=10D、a>=0&&a<=106、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6C、5.500000D、6.0000007、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分)A、INPUTx、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值9、若有以下程序段:intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5C、1D、210、设charch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分)A、AB、aC、ZD、z11、执行程序段inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d%d%dn”,k,a,b);后的输出结果是(D)。 (2分)A、104B、103C、003D、00412、设intx=1,y=1;表达式(!x||y--)的值是(B)。(2分)A、0B、1C、2D、-1n13、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分)A、1B、30C、1-2D、死循环14、程序段for(i=2;i==0;)printf(“%d”,i--);的循环次数是(A)。(2分)A、无限次B、0次C、1次D、2次15、语句intk=1;while(k++<10);执行后,变量k的值是(B)。(2分)A、10B、11C、9D、无限循环,值不定16、程序inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%dn”,sum);的执行结果是(C)。(2分)A、6B、3C、不确定D、017、以下对二维整形数组a的正确说明是(C)。(2分)A、inta[3][];B、floata(3,4);C、doublea[1][4];D、floata(3)(4)18、若已定义chars[10];在下面表达式中不能表示s[1]的地址的是(B)。(2分)A、s+1B、s++C、&s[0]+1D、&s[1]19、对两个字符数组a和b进行初始化chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是(D) 。(2分)A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长20、有说明:char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};则表达式*language[1]>*language[2]比较的是(D) A、字符B和字符PB、字符串FORTRAN和字符串BASICC、字符F和字符BD、字符串BASIC和字符串PASCAL21、C语言程序由函数组成,它的(B)。(2分)A、主函数必须在其它函数之前,函数内可以嵌套定义函数B、主函数可以在其它函数之后,函数内不可以嵌套定义函数C、主函数必须在其它函数之前,函数内不可以嵌套定义函数D、主函数必须在其它函数之后,函数内可以嵌套定义函数22、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是(D)。(2分)A、externB、registerC、autoD、static23、已知:inta[]={1,2,3,4,5,6},*p=a;则值为3的表达式是(A)。.(2分)A、p+=2,*(p++)B、p+=2,*++pC、p+=3,*p++D、p+=2,++*p24、设有说明语句“structstu{inta;floatb;}stutype;”,则叙述不正确的是(C)(2分)A、struct是结构体类型的关键字。B、structstu是用户定义的结构体类型。C、stutype是用户定义的结构体变量名。D、a和b都是结构体变量。25、下列关于文件指针的描述中,错误的是(D)(2分)A、文件指针是由文件类型FILE定义的。B、文件指针是指向内存某个单元的地址值。C、文件指针是用来对文件操作的标识。D、文件指针在一个程序中只能有一个。n26、以下叙述中正确的是(B)(2分)A、C语言的源程序不必通过编译就可以直接运行B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令C、C源程序经编译形成的二进制代码可以直接运行D、C语言中的函数不可以单独进行编译27、以下叙述中正确的是(C)(2分)A、用C语言实现的算法必须要有输入和输出操作B、用C语言实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出28、C语言中,下列字符常量合法的是(A)(2分)A、't'B、"A"C、65D、A29、下列关于赋值运算符的表述中,错误的是(C)(2分)A、赋值运算符优先级高于逗号运算符B、赋值运算符的结合性是从左至右C、赋值运算符是双目运算符D、赋值运算符可在表达式中连用30、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6C、5.500000D、6.00000031、以下不是关键字的是(C)(2分)A、continueB、charC、IfD、default32、设x,y为浮点型变量,合法赋值语句是(A)(2分)A、x=8+y;B、(float)3;C、y=(x%2)/10;D、*x=10;33、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分)A、ch='';B、ch=62+3;C、ch='';D、ch='xaa';34、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);35、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与(B)配对。(2分)A、缩排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if36、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(A)。(2分)A、(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B、(x>=1)||(x<=100)||(x>=200)||(x<=300)C、(x>=1)&&(x<=100)||(x>=200)&&(x<=300)D、(x>=1)||(x<=100)&&(x>=200)||(x<=300)37、若w,x,y,z,m均为int型变量,则执行语句w=1;x=2;y=3;z=4;m=(w3;j--){if(j%3)j--;--j;--j;printf(“%d”,j);}的执行结果是(A)。(2分A、74B、47C、56D、1340、以下描述正确的是(C)。(2分)A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。D、do-while循环中,根据情况可以省略while41、以下正确的定义语句是(D)。(2分)A、inta[1][4]={1,2,3,4,5};B、floatx[3][]={{1},{2},{3}};C、longb[2][3]={{1},{1,2},{1,2,3}};D、doubley[][3]={0};42、下面描述正确的是(D)。(2分)A、字符串所包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串"stop"与"stop"相等D、字符串“That”小于字符串"The"43、在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)。(2分)A、整型常量B、整型表达式C、整型常量或整型表达式D、任何类型的表达式44、若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B)。(2分)A、2B、3C、4D、无确定值45、已知intf(int);和intg(int);是函数f和g的原形。下列语句中,将函数f作为函数参数的有(A)。 (2分)A、f(3);B、p=f(3);C、g(f(3));D、f(g(3));46、函数调用结束后,形式参数(C)。(2分)A、继续占用相同大小的内存B、占用的内存减小C、释放内存D、不确定47、已知:inta,*p=&a;则下列函数调用中错误的是(D)。(2分)Ascanf("%d",&aB、scanf("%d",p);C、printf("%d",a);D、printf("%d",p);48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C)(2分)A、1,0B、1,1C、0,1D、0,049、语句“fseek(fp,100L,2);”的功能是(C)(2分)A、将fp所指向文件的位置指针移至距文件首100个字节。B、将fp所指向文件的位置指针移至距文件尾100个字节。C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。D、将fp所指向文件的位置指针移至距当前位置 指针的文件尾方向100个字节。50、以下叙述错误的是(D)(2分)A、一个C程序总是从main函数开始执行的;B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;C、每个语句和数据定义的最后必须有一个分号;D、C语言本身有输入输出语句。n51、若有以下类型说明语句:charw;intx;floaty;doublez;则表达式w*x+z-y的结果类型是(D)(2分)A、floatB、charC、intD、double52、下面不正确的字符串常量是(A)(2分)A、'abc'B、"12'12"C、"0"D、""53、已知各变量的类型说明如下:intk,a,b=1;unsignedlongw=5;则以下不符合C语言语法的表达式是(A)(2分)A、k=b+2=wB、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)54、执行下列语句intx=10,y=3;printf("%dn",y=x/y);后的输出是(C)(2分)A、0B、1C、3D、不确定的值55、若执行以下程序段:inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c);其输出结果是(B)(2分)A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-1056、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);57、以下错误的if语句是(C)。(2分)A、if(x>y)z=x;B、if(x==y)z=0;C、if(x!=y)printf("%d",x)elseprintf("%d",y);D、if(x=1)||(x<=0)B、x>=1|x<=0C、x>=1&&x<=0D、(x>=1)&&(x<=0)78、若a=-14,b=3,则条件表达式ab)&&(n=c>d)后n的值为(B)。(2分)A、1B、2C、3D、480、对for(表达式1;;表达式3)可以理解为(B)。(2分)A、for(表达式1;0;表达式3)nB、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)81、若I为整型变量,则for(I=2;I==1)printf(“%d”,I--);的循环执行次数是(B)。(2分)A、无限次B、0次C、1次D、2次82、程序inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%dn”,sum);的执行结果是(C)。(2分)A、6B、3C、不确定D、083、若有说明:inta[3][4];则对a数组元素的正确引用是(C)。(2分)A、a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1)84、下面是对数组a的初始化,其中不正确的是(D)。(2分)A、a[5]={"ABCD"}B、a[5]={'A','B','C','D'}C、a[5]=""D、a[5]="ABCDE"85、判断字符串a是否大于b,应当使用(D)。(2分)A、if(a>b)B、if(strcmp(a,b))C、if(strcmp(b,a)>0)D、if(strcmp(a,b)>0)86、若已定义chars[2][40]={"china","English"};则在下面表达式中能表示字符‘E’的地址的是(B)。(2分)A、&s[2][1]B、s[1]C、&s[1]D、&(s[1]+1)87、关于局部变量,下列说法正确的是(D)。(2分)A、定义该变量的程序文件中的函数都可以访问。B、定义该变量的函数中的定义处以下的任何语句都可以访问。C、定义该变量的复合语句的定义处以下的任何语句都可以访问。D、局部变量可用于函数之间传递数据。88、程序chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);的输出结果是(A)。(2分)A、非法B、a[4]的地址C、5D、389、C语言结构体类型变量在程序执行期间(B)(2分)A、所有成员一直驻留在内存中。B、只有一个成员驻留在内存中。C、部分成员驻留在内存中。D、没有成员驻留在内存中。90、下列正确定义一个文件指针pm的语句是(C)(2分)A、FILEpm;B、file*pm;C、FILE*pm;D、filepm;91、以下叙述中正确的是(B)(2分)A、C语言的源程序不必通过编译就可以直接运行B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令C、C源程序经编译形成的二进制代码可以直接运行D、C语言中的函数不可以单独进行编译92、结构化程序由三种基本结构组成,由这三种基本结构组成的算法(A)(2分)A、可以完成任何复杂的任务B、只能完成部分复杂的任务C、只能完成符合结构化的任务D、只能完成一些简单的任务93、以下正确的叙述是(D)(2分)A、在C程序中,每行中只能写一条语句B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C、在C程序中,无论是整数还是实数,都能被准确无误地表示D、在C程序中,%是只能用于整数运算的运算符n94、以下叙述中正确的是(C)(2分)A、在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B、C程序由主函数组成C、C程序由函数组成D、C程序由函数和过程组成95、设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为(C)(2分)A、4B、16C、32D、5296、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(C)(2分)A、10>=a>=0B、a>=0anda<=10C、a>=0||a<=10D、a>=0&&a<=1097、执行以下程序段:intx=496;printf(“*%-6d*n”,x);的输出是(A)(2分)A、*496*B、*496*C、*000496*D、输出格式不合法98、执行下列语句inta;printf("%dn",(a=3*5,a*4,a+5));后,a的值是(B)(2分)A、65B、20C、15D、1099、若有以下定义和语句:intu=010,v=0x10,w=10;printf("%d,%d,%dn,u,v,w);则输出结果是(A)(2分)A、8,16,10B、10,10,10C、8,8,10D、8,10,10100、以下关于运算符优先顺序的描述中正确的是(C)。(2分)A、关系运算符<算术运算符<赋值运算符<逻辑与运算符B、逻辑与运算符<关系运算符<算术运算符<赋值运算符C、赋值运算符<逻辑与运算符<关系运算符<算术运算符D、算术运算符<关系运算符<赋值运算符<逻辑与运算符101、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为(C)。(2分)A、不定值B、4C、3D、1103、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分)A、1B、30C、1-2D、死循环104、C语言中while和do-while循环的主要区别是(A)。(2分)A、do—while的循环体至少无条件执行一次B、while的循环控制条件比do—while的循环控制条件严格C、do—while允许从外部转到循环体内D、do-while的循环体不能是复合语句105、对于程序段intk=0;while(k=1)k++;while循环执行的次数是(C)。(2分)A、无限次B、有语法错,不能执行C、一次也不执行D、执行1次106、若I为整型变量,则for(I=2;I==1)printf(“%d”,I--);的循环执行次数是(A)。(2分)A、无限次B、0次C、1次D、2次107、以下正确的定义语句是(D)。(2分)A、inta[1][4]={1,2,3,4,5};B、floatx[3][]={{1},{2},{3}};C、longb[2][3]={{1},{1,2},{1,2,3}};D、doubley[][3]={0};108、若有chara[80],b[80];则正确的是(D)。(2分)nA、puts(a,b);B、printf("%s,%s",a[],b[]);C、putchar(a,b);D、puts(a);puts(b);109、若已定义chars[10];在下面表达式中不能表示s[1]的地址的是(B)。(2分)A、s+1B、s++C、&s[0]+1D、&s[1]110、若有说明:inta[3][4];则数组a中各元素(C)。(2分)A、可在程序的运行阶段得到初值0B、可在程序的编译阶段得到初值0C、不能得到确定的初值D、可在程序的编译或运行阶段得到初值0111、函数调用语句fun((exp1,exp2),(exp3,exp4,exp5))中实参的个数是(B)。(2分)A、1B、2C、4D、5112、有程序chars[]=”ABCD”,*P;for(p=s+1;p='a')||(c<='z')C、('a'<=c)and('z'>=c)D、(c>='a')&&(c<='z')118、若所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)(2分)A、7B、8C、6D、2119、若执行以下语句:inta;floatb,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“na=%d,b=%f,c=%fn”,a,b,c);在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是(C)(2分)A、a=98,b=765,c=4321B、a=10,b=432,c=8765C、a=98,b=765.000000,c=4321.000000D、a=98,b=765.0,c=4321.0120、有以下语句intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%dn",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是(A)(2分)A、10,A,10B、10,a,10C、10,a,0D、10,A,0121、执行下列语句intx=10,y=10;printf("%d%dn",x--,--y);后的输出是(D)(2分)A、1010B、99C、910D、109122、下列表达式中,(C)不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。A、x%2==0B、!x%2!=0C、(x/2*2-x)==0D、!(x%2)123、已知:intn,i=1,j=2;执行语句n=iy&&x!=y);B、if(x==y)x+=y;C、if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D、if(x=Y)&&(Y>=z)B、(x>=Y)AND(y>=z)C、(x>=Y>=z)D、(x>=Y)&(Y>=z)147、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是(C)(2分)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;148以下语句charc='a';if('a'>B、<D、:155、若执行以下程序段:inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c);其输出结果是(B)(2分)A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-10156、程序段chara[7]=”abcdef”;charb[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);输出结果是(D)。(2分)A、一个空格B、C、eD、f157在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是(C)类型。(2分)A、voidB、doubleC、intD、char158、对于某个函数调用,不用给出被调用函数的原形的情况是(C)。(2分)A、被调用函数是无参函数B、被调用函数是无返回值的函数C、函数的定义在调用处之前D、函获得的定义在别的程序文件中159若有定义:inta[5];则对数组中首元素的地址可以表示为(C)。(2分)5、若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分)A、2.500000B、2.750000C、3.500000D、0.000000 160、以下运算符中,运算对象必须是整型的是(A)(2分)A、/B、%=C、!=D、〈= 7、若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:(B)(2分)A、10<回车>22<回车>33<回车>B、10.0,22.0,33.0<回车>C、10.0<回车>22.033.0<回车>D、1022<回车>33<回车> 161、若有定义:inta=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是(D)。(2分)A、①和②B、②和③C、①和③D、③和④ 162、在C语言中,一位数组的定义方式为:类型说明符数组名(C)。(2分)A、[常量表达]B、整型表达式C、[整型常量]或[整型表达式]D、[整型常量] 163、若用数组名作为函数调用的实参,传递给形参的是(A)。(2分)A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数 164、能正确进行字符串赋值的是(B)。(2分)A、chars[5]={'a','e','i','o','u'};B、chars[5];s="good";C、chars[5]="abcdef";D、chars[5];s[]="good";165、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为(D)。(2分)A、该数组的长度B、该数组的元素个数C、该数组中各元素的值D、该数组的首地址166、已知:inta[10],*p=a;则下面说法不正确的是(C)。(2分)A、p指向数组元素a[0]B、数组名a表示数组中第一个元素的地址C、inta[10],*p=&a[0];与上述语句等价D、以上均不对167、下列关于文件指针的描述中,错误的是(D)(2分)A、文件指针是由文件类型FILE定义的。nB、文件指针是指向内存某个单元的地址值。C、文件指针是用来对文件操作的标识。D、文件指针在一个程序中只能有一个。168C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的(B)(2分)A、适应性B、移植性C、兼容性D、操作性169、以下叙述不正确的是(D)(2分)A、在C程序中,逗号运算符的优先级最低B、在C程序中,APH和aph是两个不同的变量C、若a和b类型相同,在执行了赋值表达式a=b后b的值将放入a中,而b的值不变 D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值170、逻辑运算符两侧运算对象的数据类型可以是(D)。(2分)A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据171、设inta=3,b=4,c=5,则下面表达式中,值为0的表达式是(D)。(2分)A、'a'&&'b'B、a<=bC、a||b+c&&b-cD、!((aaC、*m.aD、xy.an210、下列打开文件的方式中,对二进制文件操作的是(D)(2分)A、rB、aC、w+D、rb+211、以下不是关键字的是(D)(2分)A、continueB、charC、IfD、default 212、下面有关for循环的正确描述是(D)。(2分)A、for循环只能用于循环次数已经确定的情况。B、for循环是先执行循环体语句,后判断表达式。 C、在for循环中,不能用break语句跳出循环体。D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。214、已知:chars[100];inti=10;则在下列引用数组元素的语句中,错误的表示是(D)。(2分)A、s[i+10]B、*(s+i)C、*(i+s)D、*((s++)+i 一、单项选择题(25道小题,共50分)1、C语言规定,在一个源程序中,main函数的位置(B)(2分)A、必须在最开始B、必须在系统调用的库函数的后面 C、可以任意D、必须在最后 2、以下叙述中正确的是(C)(2分)A、用C语言实现的算法必须要有输入和输出操作B、用C语言实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出 3、以下叙述不正确的是(D)(2分)A、在C程序中,逗号运算符的优先级最低B、在C程序中,APH和aph是两个不同的变量 C、若a和b类型相同,在执行了赋值表达式a=b后b的值将放入a中,而b的值不变D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值4、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)(2分)A、必须为字母B、必须为下划线 C、必须为字母或下划线D、可以是字母,数字和下划线中任一字符 5、在C语言中,int型数据在内存中是以(B)形式存储的。(2分)A、原码B、补码 C、ASCII码D、反码 6、已有定义:intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是(D)(2分)A、6nB、0 C、2D、1 7、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(D)(2分)A、scanf("%f",c)B、scanf("%8.4f",&c); C、scanf("%6.2f",&c);D、scanf("%8f",&c); 8、执行下列语句:doubled;floatf;longL;inti;i=f=L=d=20/3;printf("%d%ld%f%fn",i,L,f,d);输出结果是(小数点后只写一位)(A)(2分)A、666.06.0B、666.76.7 C、666.06.7D、666.76.0 9、若有以下程序段:intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5 C、1D、2 10、下述表达式中,(A)可以正确表示x≤0或x≥1的关系。(2分)A、(x>=1)||(x<=0)B、x>=1|x<=0 C、x>=1&&x<=0D、(x>=1)&&(x<=0) 11、以下语句charc='a';if('a'='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分)A、AB、a C、ZD、z 36、以下错误的if语句是(C)。(2分)A、if(x>y)z=x;B、if(x==y)z=0; C、if(x!=y)printf("%d",x)elseprintf("%d",y);D、if(xa C、*m.aD、xy.a 48、下列正确定义一个文件指针pm的语句是(C)(2分)A、FILEpm;B、file*pm; C、FILE*pm;nD、filepm; 49、C语言规定,在一个源程序中,main函数的位置(B)(2分)A、必须在最开始B、必须在系统调用的库函数的后面 C、可以任意D、必须在最后 50、以下叙述中正确的是(C)(2分)A、用C语言实现的算法必须要有输入和输出操作B、用C语言实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出 51、以下选项中,不合法常量的是(B)(2分)A、1.234e04B、1.234e0.4 C、1.234e+4D、1.234e0 52、C语言中最简单的数据类型包括(B)(2分)A、整型、实型、逻辑型B、整型、实型、字符型 C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型 53、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C)(2分)A、1B、2 C、2.0D、2.5 54、执行下列语句intx=10,y=3;printf("%dn",y=x/y);后的输出是(C)(2分)A、0B、1 C、3D、不确定的值 55、执行下列语句intx=10,y=10;printf("%d%dn",x--,--y);后的输出是(D)(2分)A、1010B、99 C、910D、109 56、执行下列语句intk=2,i=2,m;m=(k+=i*=k);printf("%d,%dn",m,i);后的输出结果是(C)(2分)A、8,6B、8,3 C、6,4D、7,4 57、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是(C)。A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B、(x>=1)||(x<=10)||(x>=200)n||(x<=210)C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)58、语句printf("%d",(a=2)&&(b=-2);的输出结果是(B)。(2分)A、无输出B、结果不确定 C、-1D、1 59、下面有关for循环的正确描述是(D)。(2分)A、for循环只能用于循环次数已经确定的情况。B、for循环是先执行循环体语句,后判断表达式。 C、在for循环中,不能用break语句跳出循环体。D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。60、若i、j均为整型变量,则for(i=0,j=-1;j=1;i++,j++)printf(“%d,%dn”,i,j);(B)。(2分)A、循环体只执行一次B、循环体一次也不执行 C、判断循环结束的条件不合法D、是无限循环 61、语句intk=1;while(k++<10);执行后,变量k的值是(D)。(2分)A、10B、11 C、9D、无限循环,值不定 62、对于程序段intk=0;while(k=1)k++;while循环执行的次数是(A)。(2分)A、无限次B、有语法错,不能执行 C、一次也不执行D、执行1次 63、若有说明:inta[3][4];则对a数组元素的正确引用是(C)。(2分)A、a[2][4]B、a[1,3] C、a[1+1][0]D、a(2)(1) 64、若二维数组a有m列,则在a[i][j]前面的元素个数为(B)。(2分)A、j*m+iB、i*m+j C、i*m+j-1D、i*m+j+1 65、以下不正确的定义语句是(B)。(2分)A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5]={0,1,3,5,7,9}; C、charc1[]={‘1’,’2’,’3’,’4’,’5’};D、charc2[]={‘x10’,’xa’,’x8’}; n66、一个C程序的执行是从(A)。(2分)A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束67、有函数fun(floatx){floaty;y=3*x-4;returny;},其函数值的类型是(A)。(2分)A、intB、不确定 C、voidD、float 68、若有定义:inta[5];则对数组中首元素的地址可以表示为(A)。(2分)A、&aB、a+1 C、aD、&a[1] 69、C语言结构体类型变量在程序执行期间(A)(2分)A、所有成员一直驻留在内存中。B、只有一个成员驻留在内存中。 C、部分成员驻留在内存中。D、没有成员驻留在内存中。 70、下列关于文件指针的描述中,错误的是(D)(2分)A、文件指针是由文件类型FILE定义的。B、文件指针是指向内存某个单元的地址值。 C、文件指针是用来对文件操作的标识。D、文件指针在一个程序中只能有一个。 71、C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的(B)(2分)A、适应性B、移植性C、兼容性D、操作性72、结构化程序由三种基本结构组成,由这三种基本结构组成的算法(A)(2分)A、可以完成任何复杂的任务B、只能完成部分复杂的任务C、只能完成符合结构化的任务D、只能完成一些简单的任务73、以下叙述不正确的是(D)(2分)A、在C程序中,逗号运算符的优先级最低B、在C程序中,APH和aph是两个不同的变量C、若a和b类型相同,在执行了赋值表达式a=b后b的值将放入a中,而b的值不变D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值74、下列关于赋值运算符的表述中,错误的是(B)(2分)A、赋值运算符优先级高于逗号运算符B、赋值运算符的结合性是从左至右C、赋值运算符是双目运算符D、赋值运算符可在表达式中连用75、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)(2分)nA、-3B、9C、-12D、676、设intx=1,y=1;表达式(!x||y)的值是(B)(2分)A、0B、1C、2D、-177、设x,y为浮点型变量,合法赋值语句是(A)(2分)A、x=8+y;B、(float)3;C、y=(x%2)/10;D、*x=10;78、设有定义:intx=10,y=3,z;则执行语句printf("%dn",z=(x%y,x/y));后输出结果是(D)A、1B、0C、4D、379、在下列选项中,不正确的赋值语句是(D)(2分)A、++t;B、n1=(n2=(n3=0));C、k=i==j;D、a=b+c=1;80、逻辑运算符两侧运算对象的数据类型可以是(D)。(2分)A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据81、设inta=3,b=4,c=5,则下面表达式中,值为0的表达式是(D)。(2分)A、'a'&&'b'B、a<=bC、a||b+c&&b-cD、!((a,则输出结果是(A)(2分)A、10,A,10B、10,a,10 C、10,a,0D、10,A,0 101、对if语句中表达式的类型,下面正确的描述是(D)。(2分)A、必须是关系表达式B、必须是关系表达式或逻辑表达式 C、必须是关系表达式或算术表达式D、可以是任意表达式 102n、设ch是char型变量,其值为'A',则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分)A、AB、a C、ZD、z 103、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为(D)。(2分)A、不定值B、4 C、3D、1 104、程序段for(i=2;i==0;)printf(“%d”,i--);的循环次数是(B)。(2分)A、无限次B、0次 C、1次D、2次 105、执行语句for(i=1;i++<4;);后变量i的值是(C)。(2分)A、3B、4 C、5D、不定 106、若I为整型变量,则for(I=2;I==1)printf(“%d”,I--);的循环执行次数是(B)。(2分)A、无限次B、0次 C、1次D、2次 107、以下对一维整形数组a进行正确初始化的语句是(D)。(2分)A、inta[10]=(0,0,0,0,0);B、inta[10]={}; C、inta[]={0};D、inta[10]={10*1}; 108、以下能对二维整形数组a进行正确初始化的语句是(D)。(2分)A、inta[2][3]={0};B、inta[][3]={{1,2},{0}}; C、inta[2][3]={{1,2},{3,4},{5,6}};D、inta[][3]={1,2,3,4,5,6}; 109、若使用一维数组名作函数实参,则以下正确的说法是(A)。(2分)A、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配 C、在被调函数中,不需要考虑形参数组的大小D、实参数组名与形参数组名必须一致 110、若有函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是(A)。(2分)nA、3B、4 C、5D、6 111、已知:int*p,a;则语句“p=&a;”中的运算符“&”的含义是(D)。(2分)A、位与运算B、逻辑与运算 C、取指针内容D、取变量地址 112、当说明一个结构体变量时系统分配给它的内存是(A)(2分)A、各成员所需内存量的总和。B、第一个成员所需内存量。 C、成员中占内存量最大者所需的容量。D、最后一个成员所需内存量。 113、下列关于文件打开方式“w”和“a”的描述中,错误的是(D)(2分)A、它们都可以向文件写入数据。B、以“w”方式打开的文件从头写入数据。 C、以“a”方式打开的文件从尾写入数据。D、它们都不清除原文件内容。 114、下列说法中正确的是(C)(2分)A、C语言程序书写时,不区分大小写字母B、C语言程序书写时,一行只能够写一个语句C、C语言程序书写时,一个语句可分成几行书写D、C语言程序书写时,每行必须有分号115、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性116、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)(2分)A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母,数字和下划线中任一字符117、在C语言中,字符型数据在内存中是以(D)形式存放的。(2分)A、原码B、BCD码C、反码D、ASCII码118、若有运算符>、*=、%,则它们按优先级(由低至高)的正确排列顺序为(B)(2分)A、*=、>、%B、>、*=、%C、>、%、*=D、*=、%、>119、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是(A)A、x/y*zB、x*(1/(y*z))C、x/y*1/zD、x/y/z120、若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是(C)A、a=b=c=100;B、d++;C、c+b;D、d=(c=22)-(b++);n8、执行以下语句intx=102,y=012;printf("%2d,%2dn",x,y);后输出结果是(C)(2分)A、10,01B、002,12C、102,10D、02,10121、执行下列语句intk=2,i=2,m;m=(k+=i*=k);printf("%d,%dn",m,i);后的输出结果是(C)A、8,6B、8,3C、6,4D、7,4122、下述表达式中,(A)可以正确表示x≤0或x≥1的关系。(2分)A、(x>=1)||(x<=0)B、x>=1|x<=0C、x>=1&&x<=0D、(x>=1)&&(x<=0)123、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(C)。(2分)A、(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B、(x>=1)||(x<=100)||(x>=200)||(x<=300)C、(x>=1)&&(x<=100)||(x>=200)&&(x<=300)D、(x>=1)||(x<=100)&&(x>=200)||(x<=300)124、下面(B)是错误的if语句(设intx,a,b;)(2分)A、if(a=b)x++;B、if(a=>B、<D、:134、下列关于文件指针的描述中,错误的是(D)(2分)A、文件指针是由文件类型FILE定义的。B、文件指针是指向内存某个单元的地址值。C、文件指针是用来对文件操作的标识。D、文件指针在一个程序中只能有一个。135、若变量已正确定义并赋值,下面符合C语言语法的表达式是(B)(2分)A、a:=b+1B、a=b=c+2 C、int18.5%3D、a=a+7=c+b 136、优先级最高的为(C)。(2分)A、&&B、?: C、!=D、|| 137、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(D)(2分)A、scanf("%f",c)B、scanf("%8.4f",&c); C、scanf("%6.2f",&c);D、scanf("%8f",&c); 138、已定义ch为字符型变量,以下赋值语句中错误的是(A)(2分)A、ch='';B、ch=62+3; C、ch='';D、ch='xaa'; 139、逻辑运算符两侧运算对象的数据类型可以是(D)。(2分)A、只能是0或1B、只能是0或非0正数 C、只能是整型或字符型数据D、可以是任何类型的数据 140、执行程序段inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d%d%dn”,k,a,b);后的输出结果是(D)。(2分)A、104B、103 C、003D、004 141、执行程序段intk=4,a=3,b=2,c=1;printf(“n%dn”,k3;j--){if(j%3)j--;--j;--j;printf(“%d”,j);}的执行结果是(A)。(2分)A、74B、47 C、56D、13 145、语句intk=1;while(k++<10);执行后,变量k的值是(C)。(2分)A、10B、11 C、9D、无限循环,值不定 146、判断字符串a是否大于b,应当使用(D)。(2分)A、if(a>b)B、if(strcmp(a,b)) C、if(strcmp(b,a)>0)D、if(strcmp(a,b)>0) 147、若用数组名作为函数调用的实参,传递给形参的是(A)。(2分)A、数组的首地址B、数组第一个元素的值 C、数组中全部元素的值D、数组元素的个数 148、一个C语言程序是由(B)。(2分)A、一个主程序和若干子程序组成B、函数组成 C、若干过程组成D、若干子程序组成 149、已知:chars[100];inti=10;则在下列引用数组元素的语句中,错误的表示是(C)。(2分)A、s[i+10]B、*(s+i) C、*(i+s)D、*((s++)+i) 150、C语言结构体类型变量在程序执行期间(A)(2分)A、所有成员一直驻留在内存中。B、只有一个成员驻留在内存中。 C、部分成员驻留在内存中。nD、没有成员驻留在内存中。 151、语句“fseek(fp,-100L,1);”的功能是(A)(2分)A、将fp所指向文件的位置指针移至距文件首100个字节。B、将fp所指向文件的位置指针移至距文件尾100个字节。C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。D、将fp所指向文件的位置指针移至距当前位置指针的文件尾方向100个字节。152、以下叙述中正确的是(C)(2分)A、在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B、C程序由主函数组成 C、C程序由函数组成D、C程序由函数和过程组成 153、优先级最高的为(C)。(2分)A、&&B、?: C、!=D、|| 154、假设所有变量均为整型,则表达式(a=2,b=5,a+b)的值是(A)(2分)A、7B、8 C、6D、2 155、以下选项中非法的表达式是(D)(2分)A、0<=x<100B、i=j==0 C、(char)(65+3)D、x+1=x+1 156、若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:(B)A、10<回车>22<回车>33<回车>B、10.0,22.0,33.0<回车> C、10.0<回车>22.033.0<回车>D、1022<回车>33<回车> 157、若有以下定义和语句:charc1='b',c2='e';printf("%d,%cn",c2-c1,c2-'a'+"A");则输出结果是(B)A、2,MB、3,E C、2,ED、输出项与对应的格式控制不一致,输出结果不确定 158、执行语句intx=5,a=0,b=0;if(x=a+b)printf("****n");elseprintf("####n");后,结论是(D)。(2分)A、有语法错,不能通过编译B、能通过编译,但不能连接 C、输出****D、输出#### n159、设有intk=10;while(k=0)k=k-1;则下面描述中正确的是(C)。(2分)A、while循环执行10次B、循环是无限循环 C、循环体语句一次也不执行D、循环体语句执行一次 160、下面有关for循环的正确描述是(D)。(2分)A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体D、for循环体语句中,可以包含多条语句,但要用花括号括起来161、执行语句x=y=0;while(x<15)y++,x+=++y;printf(“%d,%d”,y,x);的结果是(A)。(2分)A、20,7B、6,12 C、20,8D、8,20 162、a和b为int型变量,则执行a=1;b=10;do{b-=a;a++;}while(b--<0);后b的值为(A)。A、9B、-2 C、-1D、8 163、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是(D)。(2分)A、用户指定传递方式B、无传递 C、单向值传递D、地址传递 164、若二维数组a有m列,则计算任一元素a[I][j]在数组中位置的公式为(A)。(2分)A、i*m+jB、j*m+i C、i*m+j-1D、i*m+j+1 165、对以说明语句inta[10]={6,7,8,9,10};的正确理解是(B)。(2分)A、将5个初值依次赋给a[1]至a[5]B、将5个初值依次赋给a[0]至a[4] C、将5个初值依次赋给a[6]至a[10]D、因为数组长度与初值的个数不同,所以此语句不正确166、在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是(C)类型。(2分)A、voidB、double C、intD、char 167、程序inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(“%dn”,*p+9);的输出结果是(C)。A、0nB、1 C、10D、9 168、设有说明语句“structstu{inta;floatb;}stutype;”,则叙述不正确的是(C)(2分)A、stuct是结构体类型的关键字。B、structstu是用户定义的结构体类型。 C、stutype是用户定义的结构体类型名。D、a和b都是结构体成员名。 169C语言程序的注释是(A)(2分)A、由"/*"开头,"*/"结尾B、由"/*"开头,"/*"结尾 C、由"//"开头D、由"/*"或"//"开头 170、下列关于赋值运算符的表述中,错误的是(B)(2分)A、赋值运算符优先级高于逗号运算符B、赋值运算符的结合性是从左至右 C、赋值运算符是双目运算符D、赋值运算符可在表达式中连用 171、以下选项中正确的实型常量是(B)(2分)A、0B、3.1415 C、0.03x10D、.32 172、下列表达式中,(B)不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。(2分)A、x%2==0B、!x%2!=0 C、(x/2*2-x)==0D、!(x%2) 173、设有intk=10;while(k=0)k=k-1;则下面描述中正确的是(C)。(2分)A、while循环执行10次B、循环是无限循环 C、循环体语句一次也不执行D、循环体语句执行一次 174、若i、j均为整型变量,则for(i=0,j=-1;j=1;i++,j++)printf(“%d,%dn”,i,j);(D)。(2分)A、循环体只执行一次B、循环体一次也不执行 C、判断循环结束的条件不合法D、是无限循环 175、以下描述正确的是(C)。(2分)A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。nD、do-while循环中,根据情况可以省略while 176、以下对二维整形数组a的正确说明是(C)。A、inta[3][];B、floata(3,4); C、doublea[1][4];D、floata(3)(4) 177、以下能对二维整形数组a进行正确初始化的语句是(D)。A、inta[2][3]={0};B、inta[][3]={{1,2},{0}}; C、inta[2][3]={{1,2},{3,4},{5,6}};D、inta[][3]={1,2,3,4,5,6}; 178、在C语言中,一位数组的定义方式为:类型说明符数组名(D)。(2分)A、[常量表达]B、整型表达式 C、[整型常量]或[整型表达式]D、[整型常量] 179、实际参数不能是(D)。(2分)A、常量B、变量 C、表达式D、不确定值 180、设有程序:int*var,ab;ab=10;var=&ab;ab+=*var+10;执行程序段后,ab值为(B)。(2分)A、40B、30 C、20D、10 181、已有定义“structxy{inta;doubleb;}m;”,变量m的成员a的正确表示是(A)(2分)A、m.aB、m->a C、*m.aD、xy.a 182、以下叙述中正确的是(B)(2分)A、C语言的源程序不必通过编译就可以直接运行B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令C、C源程序经编译形成的二进制代码可以直接运行D、C语言中的函数不可以单独进行编译 183、以下所列的C语言常量中,错误的是(B)(2分)A、0xFFB、1.2e0.5 C、2LD、'72' 184、若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分)A、2.500000nB、2.750000 C、3.500000D、0.000000 185、若执行以下语句:inta;floatb,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“na=%d,b=%f,c=%fn”,a,b,c);在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是(C)(2分)A、a=98,b=765,c=4321B、a=10,b=432,c=8765 C、a=98,b=765.000000,c=4321.000000D、a=98,b=765.0,c=4321.0 186、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d%d%d",&i,&j,&k); C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k); 187、若变量已正确定义,执行以下语句:x=5.16894;printf(“%fn”,(int)(x*1000+0.5)/(float)1000);的输出结果是(D)A、输出格式说明与输出项不匹配,输出无定值B、5.17000 C、5.168000D、5.169000 188、若w,x,y,z,m均为int型变量,则执行语句w=1;x=2;y=3;z=4;m=(w3;j--){if(j%3)j--;--j;--j;printf(“%d”,j);}的执行结果是(A)。(2分)A、74B、47 C、56D、13 190、程序inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%dn”,sum);的执行结果是(C)。(2分)A、6B、3 C、不确定D、0 191、不能正确为字符数组输入数据的是(A)。(2分)A、chars[5];scanf("%s",&s);B、chars[5];scanf("%s",s); C、chars[5];scanf("%s",&s[0]);nD、chars[5];gets(s); 192、有说明:char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};则表达式*language[1]>*language[2]比较的是(A)。(2分)A、字符B和字符PB、字符串FORTRAN和字符串BASIC C、字符F和字符BD、字符串BASIC和字符串PASCAL 193、下面的函数是无参函数的是(A)。(2分)A、main()B、intmax(intx,inty) C、return(z)D、scanf("%d",&a) 194、以下正确的说法是(A)。(2分)A、定义函数时,形参的类型说明可以放在函数体内B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类型不一致,以实参类型为准 195、当说明一个共用体变量时系统分配给它的内存是(C)(2分)A、各成员所需内存量的总和。B、第一个成员所需内存量。 C、成员中占内存量最大者所需的容量。D、最后一个成员所需内存量。 196、下列正确定义一个文件指针pm的语句是(C)A、FILEpm;B、file*pm; C、FILE*pm;D、filepm; 197、以下运算符中优先级最低的算符为(B)A、&&B、?: C、!=D、|| 198、正确的标识符是:(D)A、?aB、a=2 C、a.3D、a_3 199、以下不是关键字的是(C)(2分)A、continueB、char C、IfD、default 200、设有定义:intx=10,y=3,z;则执行语句printf("%dn",z=(x%y,x/y));后输出结果是(D)A、1nB、0 C、4D、3 201、执行下列语句inta;printf("%dn",(a=3*5,a*4,a+5));后,a的值是(C)(2分)A、65B、20 C、15D、10 202、若w=1,x=2,y=3,z=4,则条件表达式wb)&&(n=c>d)后n的值为(B)。A、1B、2 C、3D、4 204、对于程序段intk=0;while(k=1)k++;while循环执行的次数是(A)。(2分)A、无限次B、有语法错,不能执行 C、一次也不执行D、执行1次 205、while构成的循环intks=0;while(ks=2)ks++;执行的次数是(A)。(2分)A、无限次B、有语法错误,不能执行 C、一次也不执行D、执行一次 206、若已定义chars[10];在下面表达式中不能表示s[1]的地址的是(D)。(2分)A、s+1B、s++ C、&s[0]+1D、&s[1] 207、对于某个函数调用,不用给出被调用函数的原形的情况是(C)。(2分)A、被调用函数是无参函数B、被调用函数是无返回值的函数 C、函数的定义在调用处之前D、函获得的定义在别的程序文件中 208、变量的指针,其含义是指该变量的(B)。(2分)A、值B、地址 C、名D、一个标志 209、下列打开文件的方式中,对二进制文件操作的是(D)nA、rB、a C、w+D、rb+ 210、在C语言中,逻辑表达式的操作数为非0是,则表示为(A)A、真B、假 C、0D、1 211、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6 C、5.500000D、6.000000 212、若执行以下程序段:inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c);其输出结果是(B)(2分)A、0,0,-10B、0,0,5 C、-10,3,-10D、3,3,-10 213、对于程序inta,b;scanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++;printf("%d,%d",a,b);正确的判断是(A)。(2分)A、有语法错误不能通过编译B、若输入4,5则输出5,6 C、若输入5,4则输出4,5D、若输入5,4则输出5,5 214、下面有关for循环的正确描述是(D)。(2分)A、for循环只能用于循环次数已经确定的情况。B、for循环是先执行循环体语句,后判断表达式。 C、在for循环中,不能用break语句跳出循环体。D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。215、下列循环语句会进入死循环的是(C)。(2分)A、i=0;do{i++;}while(i==100);B、for(i=0;i<100;i+=3.14); C、for(i=0;;i+=2);D、k=1;do{k--;}while(k); 216、for(x=0,y=0;(y!=123)&&(x<4);x++);循环是(C)。(2分)A、无限循环B、循环次数不定 C、执行4次D、执行3次 217、以下正确的定义语句是()。(2分)A、inta[1][4]={1,2,3,4,5};B、floatx[3][]={{1},{2},{3}}; nC、longb[2][3]={{1},{1,2},{1,2,3}};D、doubley[][3]={0}; 218、程序段intk,a[3][3]={1,2,3,4,5,6,7,8,9};for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);输出结果是(C)。(2分)A、357B、369 C、159D、147 219、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是(D)。(2分)A、用户指定传递方式B、无传递 C、单向值传递D、地址传递 220、若有说明:inta[3][4]={0};则下面正确的叙述是(D)。(2分)A、只有元素a[0][0]可得到初值0B、此说明语句不正确 C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值0 221、以下不正确的说法是(C)。(2分)A、C语言规定实参可以是常量、变量或表达式B、形参可以是常量、变量或表达式 C、实参可以是任意类型D、形参应与其对应得实参类型一致 222、在定义语句int*f();中,标识符f代表的是(D)。(2分)A、一个用于指向整型数据的指针变量B、一个用于指向一维数组的行指针 C、一个用于指向函数的指针变量D、一个返回值为指针型的函数名 223、已知:inta,*p=&a;则下列函数调用中错误的是(B)。(2分)A、scanf("%d",&a);B、scanf("%d",p); C、printf("%d",a);D、printf("%d",p); 224、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C)(2分)A、1,0B、1,1 C、0,1D、0,0 225、若要用fopen函数打开一个新的二进制文件,该文件既能读也能写,则文件打开方式为(B)(2分)A、ab+B、wb+ C、rb+D、abn二,填空题(10道小题,共20分)1、一个C源程序中至少应包含一个[main]函数。2、a是整型变量,则执行表达式a=25/3%3后a的值为。[2]3、intm=5,y=2;则表达式y+=y-=m*=y的值为。[-16]4、执行下列语句:inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%dn",a,b);的输出结果分别是[2,1]5、条件表达式的格式为表达式1?表达式2:表达式3,若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较[高]的类型6、当运行以下程序时,从键盘键入right?(代表回车),则下面程序的运行结果是。#includemain(){charc;while((c=getchar())!='?')putchar(++c)}[sjhiu?]7、C语言中的数组必须先[定义],然后使用。8、如果需要从被调用函数返回一个函数值,被调用函数必须包含【return】语句。9、已知:floatf1=3.2,f2,*pf1=&f1;f2=f1,则*f2的值为。[3.2]10、以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1="A",c2="a",*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf(“&c&cn”,c1,c2);}运行后的输出结果是。[&c&c]11、字符串常量“123”在内存中的字节数是。[8字节]12、已有定义:intx=3;则表达式:x=x+1.78的值是。【4】13、inta=24;printf("%o",a);输出结果是。【30】14、当a=3,b=2,c=1时,表达式f=a>b>c的值是。【0】15、下面程序的运行结果是。【x=1,y=20】#includemain(){inti,x,y;i=x=y=0;do{++i;if(i%2!=0){x=x+i;i++;}ny=y+i++;}while(i<=7);printf("x=%d,y=%dn",x,y);}16、以下语句charstr[10]={"China"};printf("%d",strlen(str))的输出结果是。[5]17、为了便于区别全局变量和局部变量,通常将全局变量的首字母。[用大写字母表示]18、已知:intb=5,*p=&b;并且b的地址为4000,则“printf("%d,%d",p,*p);”的输出结果是。【4000,5】19、程序main(){inta[2][3]={{1,2,3},{4,5,6}};intm,*ptr;ptr=&a[0][0];m=(*ptr)*(*(ptr+2))*(*(ptr+4));printf("%dn",m);}的运行结果是。【15】20、引用C语言标准库函数,一般要用【文件包含】预处理命令将其头文件包含进来。21、在C语言程序中,符号常量的定义要使用【宏定义】预处理命令。22、逻辑运算符!是[自右至左]结合性。23、下面的程序的运行结果是。【s=254】#includemain(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf("s=%d",s);}24[strcat](字符数组名1,字符数组名2)把字符数组2中的字符串连接到字符数组1中字符串的后面,并删去字符串1后的串标志“”。25、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是[整形]。 26、数组在内存中占用一段连续的存储空间,它的首地址由【数组名】表示27若有定义:inta[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是【12】28、在一个C源程序中,注释部分二侧的分界符为。【/*和*/】29、在C语言程序中,转义字符“n”的功能是[换行]。30、当a=5,b=4,c=2时,表达式a>b!=c的值是。【1】32、在C语言程序中,用关键字定义字符型变量。33若m是一个三位数,则百位数字为34、执行下列语句:floata;intb;a=b=24.5/5;printf(“%f,%d”,a,b);输出结果是【4.000000,4】35、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为,n的值为n36、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是。[1]37、当运行以下程序时,从键盘输入-10(表示回车),则下面程序的运行结果是。[m=4,n=2]#includemain(){inta,b,m,n;m=n=1;scanf("%d%d",&a,&b);do{if(a>0){m=2*n;b++;}else{n=m+n;a+=2;b++;}}while(a==b);printf("m=%dn=%d",m,n);}38、C语言规定了以字符[‘’]作为字符串结束标志。39、如果一函数只允许同一程序文件中的函数调用,则应在该函数定义前加上[static]修饰。40、对数组元素的引用方法有下标法和[指针法]两种。41、对于“inta[4];”可理解为数组a有4个元素,每个元素都是整型数据,那么,对于“int*a[4];”的理解就是数组a 有4个元素,每个元素都是[指针变量]。42、在C语言中,八进制整型常量以【0】作为前缀。43、已有定义:intx=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是。【8】44、下面程序段的运行结果是【a=-5】。inti=1,a=0,s=1;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("a=%d",a);45、要使指针变量与变量之间建立联系,可以用运算符[*]来定义一个指针变量46、设inta[10],*p=a;则对a[3]的引用可以是p[3]或[*(p+3)]。47、C语言程序是由[函数]构成的。48、在C语言程序中,用关键字【float】定义单精度实型变量。49、若m是一个三位数,则十位数字为[m/10-m/100*10]。50、inta=24;printf("%x",a);输出结果是。[18]51、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式。[xmain(){inti,x,y;i=x=y=0;do{++i;if(i%2!=0){x=x+i;i++;}ny=y+i++;}while(i<=7);printf("x=%d,y=%dn",x,y);}53、形式参数也是【局部】变量。54、以下程序#includefun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf("%d,%dn",c,d);return0;}输出结果是。【80,-20】55、程序main(){inta[2][3]={{1,2,3},{4,5,6}};intm,*ptr;ptr=&a[0][0];m=(*ptr)*(*(ptr+2))*(*(ptr+4));printf("%dn",m);}的运行结果是【15】56、运算符%、*=、||、==中,优先级最低的是。【*=】57、在C语言中,"x"在内存中占【2】字节。58、设y为int型变量,请写出描述“y是偶数”的表达式。【y%2==0】59、下面程序段中循环体的执行次数是[3次]。a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);60、程序的输出值是。[10]#includevoidf(int*p){*p=10;}int*p;voidmain()n{f(p);printf("%d",(*p)++);}61、在C语言的赋值表达式中,赋值号左边必须是[变量]。62、当a=3,b=2,c=1时,表达式f=a>b>c的值是。【0】63、以下程序的输出结果是。[5,2,3]#includeintsub(intx,inty,int*z){*z=x-y;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%dn",a,b,c);return0;}64、下面程序的输出是。[k=2a=3b=2]#includemain(intargc,charargv[]){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0';}while(s[k+1]);printf("k=%da=%db=%dn",k,a,b);return0;}65、运算符的结合性有[2]种。66、己有定义:floatf=13.8;,则表达式:(int)f%3的值是。[1]67、判断char型变量ch是否为大写字母的正确表达式是。[ch>=’A’&&ch<=’Z’]n68、下面程序段的运行结果是。[a=-5]inti=1,a=0,s=1;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("a=%d",a);69、C语言中的字符数组中的一个元素存放[1]个字符。70、已知:inta[5],*p=a;则p指向数组元素a[0],那么p+1指向[a[1]]。71、设有如下定义:inta[5]={0,1,2,3,4},*p1=&a[1],*p2=&a[4];则p2-p1的值为。[6]72、己有定义:floatf=13.8;,则表达式:(int)f%3的值是。[1]73、下面程序段的运行结果是。[a=-5]inti=1,a=0,s=1;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("a=%d",a);74、已知:inta[5],*p=a;则p指向数组元素a[0],那么p+1指向[a[6]]。75、引用C语言标准库函数,一般要用[文件包含]预处理命令将其头文件包含进来。76、在C语言中,运算符++和—的运算量必须是【变量】。77、逻辑运算符!是【自右至左】结合性。78、下面的程序的运行结果是。【s=25】#includemain(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf("s=%d",s);}79、局部变量只在该[函数]有效。80、设char*s=”ta17bc”;则指针变量s指向的字符串所占的字节数是【2】个81、以下程序的输出结果是。【10】main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf(“%dn”,*(p+3));}82、在C语言中,八进制整型常量以【0】作为前缀。83、表达式3.6/6+1/2+55%10的值是。【5.6】85、C语言的三种逻辑运算符中优先级最高的为【逻辑非!】。86、[全局变量]可以被本文件中的其他函数所共用。87、以下程序#includefun(intx,inty,int*cp,int*dp){n*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf("%d,%dn",c,d);return0;}输出结果是。【80,-20】88、inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为。【3.5】89、下面程序的运行结果是。[1,-2]y=2;a=1;while(y--!=-1){do{a*=y;a++;}while(y--);}printf("%d,%d",a,y);90、用数组元素作为函数的实参时,与用变量做实参一样,是[值]传递。91、以下程序的输出结果是。【5,2,3】#includeintsub(intx,inty,int*z){*z=x-y;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%dn",a,b,c);return0;}92、程序main(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,13};int(*ptr)[4];intsum=0,i,j;ptr=a;for(i=0;i<3;i++)for(j=0;j<2;j++)sum+=*(*(ptr+i)+j);printf("%dn",sum);}n的运行结果是。【60】93、字符串常量“123”在内存中的字节数是。【4】94、当a=3,b=2,c=1时,表达式f=a>b>c的值是。【0】95、按序排列的同类型变量的集合称为【结构体变量】96、C语言中按函数在程序中出现的位置来分,函数的调用有函数语句、函数参数和【函数表达式】三种方式。97、请定义一个指向字符类型数据的指针变量p,。【char*p】98、请定义一个指向指针数据的指针变量p,其基类型是字符型。[char**p]99、doubled1=1.2,d2=2.4;将表达式d1+2*d2强制转换为整型值的语句是。100、下面的程序的运行结果是。[s=254]#includemain(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf("s=%d",s);}101、如果被调用函数的实参列表包含多个实参,则各参数间用[逗号]隔开。(使用汉字填102、下列程序段的输出结果是。【1,234】voidfun(int*x,int*y){printf(“%d,%d”,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&x,&y);printf(“%d%d”,x,y);}103、设inta[10],*p=a;则对a[3]的引用可以是p[3]或【*(p+3)】。104、doubled1=1.2,d2=2.4;将表达式d1+2*d2强制转换为整型值的语句是。[(int)(d1+2*d2);]105、定义一个整型数组a[10],则下标最大的数组元素为[a[9]]。106、要使指针变量与变量之间建立联系,用运算符[*]来建立指针变量与变量之间的联系。107、下列程序的输出结果是[0]。voidfun(int*n){while((*n)--);printf(“%d”,++(*n));}main(){inta=100;fun(&a);}n108、charc=’10’;则变量c中包含字符的个数为[1]。109、intm=5,y=2;则表达式y+=y-=m*=y的值为。[-16]110、以下程序#includefun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf("%d,%dn",c,d);return0;}输出结果是。【80,-20】111、若有以下定义和语句:inta[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是【1】112、运算符=的结合性是【自右至左】。113、若x为整型变量,执行语句x='b'-'A';后,x的值为[33]。114、inta=24;printf("%o",a);输出结果是。115、程序voidfun(char*c,intd){*c=*c+1;d=d+1;printf(“%c,%c,”,*c,d);}main(){chara=’A’,b=’a’;fun(&b,a);printf(“%c,%cn”,a,b);}运行后的输出结果是。[b,A,B,b]116、设main函数的说明为:main(intargc,char*argv[]),且有命令行为:FILE1123(代表回车),则argc 的值是。[4]117、x是整型变量,表达式:(x=8,x%=x+5)的值是。[8]118、执行下列语句:inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%dn",a,b);的输出结果分别是。[2,1]119、条件“22&&x<3||x<-10]。120、设有如下定义:inta[5]={0,2,4,6,8},*p1=&a[1],*p2=&a[4];则*p2-*p1的值为。【6】n121、x是整型变量,表达式:(x=8,x%=x+5)的值是。【8】122、下面程序的运行结果是。【x=1,y=20】#includemain(){inti,x,y;i=x=y=0;do{++i;if(i%2!=0){x=x+i;i++;}y=y+i++;}while(i<=7);printf("x=%d,y=%dn",x,y);}123、请定义一个指向字符类型数据的指针变量p,。[char*p;]10、已知:inta[5],*p=a;若“printf("%d",p);”的输出结果是200,那么:“printf("%d",p+1);”的输出结果是。[202]124、把al、a2定义为长整型变量的定义语句是。[longa1,a2;]125、若已有定义语句:intk=7;,赋值表达式:k+=k%=k-3的值是。[6]126、逻辑运算符!是[从右至左]结合性。_127、以下程序的输出结果是。【efgh】main(){char*p="abcdefgh",*r;long*q;q=(long*)p;q++;r=(char*)q;printf("%sn",r);}128、程序#includevoidprtv(int*x){printf("%dn",++*x);}main(){inta=25;prtv(&a);}的运行结果为[26]129、a是整型变量,则执行表达式a=25/3%3后a的值为。[2]130、用来存放[字符数据]的数组称为字符数组。131、【全局变量】可以被本文件中的其他函数所共用。132、程序main(){intvar,*p;nvar=100;p=&var;var=*p+10;printf("%d",var);}的运行结果为。【110】133、若有定义:inta[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是【12】134、访问变量的方式有直接访问和【间接访问】。135、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是【整形】。136、已知:inta[2][3]={1,2,3,4,5,6},*p=&a[0][0];则*(p+1)的值为。【4】137、有如下程序main(){charch[2][5]={“6937”,”8254”},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’’;j+=2)s=10*s+p[i][j]-‘0’;printf(“%dn”,s);}该程序的输出结果是。【6385】138、引用C语言标准库函数,一般要用【文件包含】预处理命令将其头文件包含进来。139、若m是一个三位数,则个位数字为。【m%10】140、下面程序段的运行结果是。[a=-5]inti=1,a=0,s=1;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("a=%d",a);141、若有以下定义和语句:inta[4]={1,2,3,4},*p;p=&a[2];则*--p的值是[2]142、若有定义:doublex[3][5];则x数组中列下标的上限为。[4]143、当被调用函数的定义出现在主调函数的[前面],可以不加以声明。144、以下程序运行后的输出结果是。【9876876】main(){chars[]=“9876”,*p;for(p=s;pmain(){inti,x,y;i=x=y=0;do{++i;if(i%2!=0){x=x+i;i++;}y=y+i++;}while(i<=7);printf("x=%d,y=%dn",x,y);}147、C程序的执行从【main】函数开始,调用其他函数后流程返回该函数,并在该函数中结束整个程序的运行。148、下列程序的运行结果是。[36]voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(“%d%d”,a,b);}149、下面程序的运行结果是。[1,-2]y=2;a=1;while(y--!=-1){do{a*=y;a++;}while(y--);}printf("%d,%d",a,y);150、程序main(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,13};int(*ptr)[4];intsum=0,i,j;ptr=a;for(i=0;i<3;i++)for(j=0;j<2;j++)sum+=*(*(ptr+i)+j);printf("%dn",sum);}的运行结果是。[60]151、如果在所有函数定义之前,在函数的【前面】已作了函数声明,则在各个主调函数中不必对所调用的函数再做声明。152、以下程序的输出结果是【7】#includen#includemain(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf("%dn",strlen(b2));}153、程序#includevoidprtv(int*x){printf("%dn",++*x);}main(){inta=25;prtv(&a);}的运行结果为。【26】154、在C语言中的标识符只能由3种字符组成,它们是。【字母、数字、下划线】155、下面程序段的运行结果是。【a=-5】inti=1,a=0,s=1;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("a=%d",a);156、形式参数也是[局部变量]变量。157、要使指针变量与变量之间建立联系,可以用运算符【*】来定义一个指针变量。158、对于“inta[4];”可理解为数组a有4个元素,每个元素都是整型数据,那么,对于“int*a[4];”的理解就是数组a有4个元素,每个元素都是【指针变量】。159、intx=12,n=5;则执行表达式x%=(n%=2)后x的值为。【0】160、下面的程序的运行结果是。【254】#includemain(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf("s=%d",s);}161、执行下列语句:floata;intb;b=a=24.5/5;printf(“%f,%d”,a,b);输出结果是。【4.900000,4】162、在C语言中,二维数组元素的内存中的存放顺序是【按行存放】163、在C程序中,指针变量能够赋【变量的地址】值或空值164、已有定义:doublex=3.5;,则表达式:x=(int)x+1的值是。[4.0]165、局部变量只在【该该函数中】有效。166、若有以下定义和语句:inta[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是[2]167、已知:inta=10,*p=&a;则“printf("%d,%dn",a,*p);”的输出结果是。[10,10]168、在C语言程序中,符号常量的定义要使用[宏定义]预处理命令。169、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是。【1】170、下面程序段的运行结果是。【231】nfor(a=1,i=-1;i<1;i++){a++;printf("%d",a);}printf("%d",i);171、用来存放【字符数据】的数组称为字符数组。172、C语言中每个变量和函数有两个属性:数据类型和数据的【结构】类别。173、已知:下面程序段中第一个printf语句的输出是200,则第二个printf语句的输出是。【200】inta[3][4],*p=*a;printf("%d",a);printf("'%d",p);174、下面程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-‘a’+’A’;s++;}}main(){charstr1[100]=“abcddfefdbd”,c=’d’;ss(str1,c);printf(“%sn”,str1);}运行后的输出结果是。【abcDDfefDbD】175、若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为。[5.5]176、如果一函数直接或间接地调用自身,这样的调用称为[递归调用]。177、以下程序的输出结果是。[7]main(){intx=0;sub(&x,8,1);printf("%dn",x);}sub(int*a,intn,intk){if(k<=n)sub(a,n/2,2*k);*a+=k;}178、ints=6;则表达式s%2+(s+1)%2的值为。[1]179、inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为。180、以下程序的输出结果是[9]#include#includefut(int**s,intp[2][3]){**s=p[1][1];}intmain(intargc,charargv[])n{inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%dn",*p);return0;}181、在C语言中,十六进制整型常量以[0x]作为前缀。182、函数内部可以在复合语句中定义变量,这些变量在[该函数中]的范围内有效。183、对数组元素的引用方法有下标法和【指针法】两种。三、判断题(10道小题,共10分)1、C语言具有简洁明了的特点。(1分)正确2、预处理命令的前面必须加一个“#”号。(1分)正确3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(1分)正确4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(1分)正确5、continue不是结束本次循环,而是终止整个循环的执行。(1分)错误6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分)错误7、.函数的实参传递到形参有两种方式值传递和地址传递(1分)正确8、直接访问就是直接利用变量的地址进行存取直接访问(1分)正确9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。(1分)正确10、文件指针和位置指针都是随着文件的读写操作在不断改变。(1分)错误11、C语言标准格式输入函数scanf()的参数表中要使用变量的地址值。(1分)正确12、浮点型常量的指数表示中,e是可以省略的。(1分)错误13、任何表达式语句都是表达式加分号组成的。(1分)正确14、在switch语句中,每一个的case常量表达式的值可以相同。(1分)错误15、do-while循环的while后的分号可以省略。(1分)错误n16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志''。正确17、C语言函数返回类型的默认定义类型是void(1分)错误18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分)正确19、枚举类型中的元素都具有一个整型值。(1分)正确20、C语言是一种具有某些低级语言特征的高级语言。(1分)正确21、case语句后如没有break,顺序向下执行。(1分)正确22、do-while循环至少要执行一次循环语句。(1分)正确23、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。(1分)正确24、函数形参的存储单元是动态分配的(1分)正确25、int(*p)[4]它表示p是一个指针数组,它包含4个指针变量元素(1分)错误26、结构体变量可以作数组元素。(1分)正确27、随机操作只适用于文本文件。(1分)错误28、表达式语句和表达式没有什么区别。(1分)错误29、条件运算符?和:是一对运算符,不能分开单独使用。(1分)正确30、函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。(1分)正确31、函数的实参可以是常量,变量或表达式(1分)正确32、如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素(1分)正确33、文件指针用于指向文件,文件只有被打开后才有对应的文件指针。(1分)正确34、C语言标准输入操作中,gets()函数一次只可读取一个字符。(1分)错误35、在C语言中,逗号既可以作为运算符,也可以作为分隔符。(1分)正确36、C语言的书写格式不会影响程序的可读性。(1分)错误37、条件表达式不能取代一般if的语句。(1分)n错误38、break则是结束整个循环过程,不再判断执行循环的条件是否成立。(1分)正确39、C语言允许用字符串的方式对数组作初始化赋值。(1分)正确40、如果函数定义出现在函数调用之前,可以不必加函数原型声明(1分)正确41、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分)正确42、C语言程序中可以有多个函数,但只能有一个主函数。(1分)正确43、变量的两个值:本身值和地址值都是可以改变的。(1分)错误44、if(a=5)是允许的。(1分)正确45、C语言的三种循环不可以互相嵌套。(1分)错误46、在对数组全部元素赋初值时,可以省略行数,但不能省略列数(1分)正确47、函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值(1分)正确48、指向结构体变量的指针可以作函数参数,实现传址调用。(1分)正确49、输入操作称为写操作,将输入流中的信息存到内存时,使用写函数。(1分)错误50、增1减1运算符的前缀运算和后缀运算的表达式值是相同的。(1分)错误51、在C语言中能逐个地使用下标变量,也能一次引用整个数组。(1分)错误52、函数返回值的类型是由在定义函数时所指定的函数类型(1分)正确53、结构体成员的类型必须是基本数据类型。(1分)错误54、随机操作只适用于二进制文件。(1分)错误55、逻辑表达式的值只能为1或0。(1分)正确56、表达式语句和表达式没有什么区别。(1分)错误57、continue只能用于循环体中。(1分)正确58、凡在函数中未指定存储类别的局部变量,其默认的存储类别为static(1分)错误59、一个变量的地址称为该变量的指针(1分)n正确60、变量被定义后,它不仅有一个确定的地址值,而且还会有一个确定的本身值。(1分)错误61、一个数组是由连续的一块内存单元组成的,指针变量就是这块连续内存单元的首地址错误62、结构体数组中可以包含不同结构体类型的结构体变量。(1分)错误63、以“r”方式打开一个文件时,文件指针指向文件首。(1分)正确64、C语言程序实现与其他高级语言一样也要经过编辑、编译连接和运行这样的三步曲。(1分)正确65、变量被定义后,它的作用域和寿命就被确定了,并且不可改变。(1分)正确。66、break可用于循环体中,不可用于switch语句中。](1分)错误67、使用statick定义的变量属于静态变量(1分)正确68、指针变量,只能作为函数的形参,不可以作函数的实参(1分)正确69、文件指针用于指向文件,文件只有被打开后才有对应的文件指针。(1分)正确70、C语言是一种非结构化程序设计语言。(1分)错误71、在C语言程序中,凡是没有出现存储类说明符的变量都是自动类的。(1分)正确72、在switch语句中,多个case可以共用一组执行语句。(1分)正确73、do-while语句先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。(1分)正确74、结构体成员必须是不同数据类型的变量。(1分)错误75、输入操作称为写操作,将输入流中的信息存到内存时,使用写函数。(1分)错误76、下划线是标识符中的合法字符。(1分)正确77、表达式语句和表达式没有什么区别。(1分)错误78、数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。(1分)正确*79、函数的形参可以是常量,变量或表达式(1分)正确n80、指针变量可以存放指针(地址)、数值和字符(1分)错误81、fseek函数一般用于文本文件。(1分)错误82、C语言程序只能有一个文件。(1分)错误83、在同一个作用域中不可定义同名变量,在不同的作用域中可以定义同名变量。(1分)正确84、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。正确85、.函数的实参传递到形参有两种方式值传递和地址传递(1分)正确86、内存中的每个存储单元都有一个惟一的地址(1分)正确87、枚举类型中的元素都具有一个整型值。(1分)正确88、文件是否打开是可以判断的。(1分)正确89、C语言的应用比较广泛,不仅可用来编写应用软件,而且可用来编写系统软件。(1分)正确90、C语言程序中,出现非法字符时会发出错误信息。(1分)正确91、C语言的书写格式不会影响程序的可读性。(1分)错误92、在多层循环中,一个break语句只向外跳一层。(1分)正确93、局部变量如果没有指定初值,则其初值不确定(1分)正确94、指针数组的每个元素都是一个指针变量(1分)正确95、以“a”方式打开一个文件时,文件指针指向文件首。(1分)错误96、共用体变量不可以进行初始化。(1分)错误97、文件的读函数是从输入文件中读取信息,并存放在内存中。(1分)正确98、C语言程序在书写上只能是一条语句写一行。(1分)错误99、寄存器类变量的作用域和寿命与自动类变量的相同。(1分)正确100、在一个函数内部调用另一个函数的调用方式称为嵌套调用(1分)正确101、内存单元的地址与内存单元中的数据是两个完全相同的概念(1分)错误n102、结构体类型本身不占用内存空间,结构体变量占用内存空间。(1分)正确103、C语言中,字符串常量存放在字符数组中要有一个结束符,该结束符是0。(1分)错误104、char*s="CLanguage";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s(1分)正确105、结构体成员的类型必须是基本数据类型。(1分)错误106、分号是C语言中语句的结束符,不可用作分隔符。(1分)错误107、double型变量在内存中占的字节数比int型变量在内存中占的字节数多。(1分)正确108、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。(1分)正确109、C语言标准输出操作中,putchar()函数可以输出显示一个字符串。(1分)错误110、函数形参的存储单元是动态分配的(1分)正确111、结构体名在定义结构体时不可省略。(1分)错误112、变量的类型通常指存储类和数据类型两种。(1分)正确113、局部变量如果没有指定初值,则其初值为0(1分)错误114、在C语言中,逗号既可以作为运算符,也可以作为分隔符。(1分)正确115、C语言的三种循环不可以互相嵌套。(1分)错误116、有指针变量p和数组a,指针变量和数组都可以实现本身的值的改变,如p++和a++错误117、fseek函数一般用于文本文件。(1分)错误118、不允许把一个数值或字符赋予指针变量(1分)正确119、变量的两个值:本身值和地址值都是可以改变的。(1分)错误120、两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数(1分)正确121、枚举类型中的元素都具有一个整型值。(1分)正确121、C语言规定:定义符号常量时必须用大写字母。(1分)错误122、for循环的三个表达式可以任意省略,while,do-while也是如此。(1分)n错误123、函数的实参可以是常量,变量或表达式(1分)正确124、指针变量和它指向的变量之间的关系,可以用指针运算符“*”表示(1分)正确125、C语言标准格式输出函数printf()的参数表是由若干个表达式组成。(1分)正确126、fseek函数一般用于二进制文件。(1分)正确127、一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。(1分)错误128、C语言标准输入操作中,gets()函数一次只可读取一个字符。(1分)错误129、结构体变量可以作数组元素。(1分)正确130、内部静态类变量的作用域和寿命与自动类变量的相同。(1分)错误131、字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串(1分)正确C语言上机考试编程题答案夕原露香1、求1+2+3+……….+100。(循环)答案#includevoidmain(){inti,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}2、求1*2*3*……….*10。(循环)答案voidmain(){inti=0,j=1;forn(i=2;i<=10;i++){j*=i;}printf("%d",j);return0;}3、输入三个数字,输出他们的最大值。(if)答案#includevoidmain(){inta,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d",d);getch();/*暂停看运行结果*/}intmax(intx,inty,intz){intu;if(x>=y&&x>=z)u=x;elseif(y>=x&&y>=z)u=y;elseu=z;return(u);4.用起泡法对十个数据排序(数组实现)答案#includemain(){  inti,j,t;  staticinta[10]={5,7,4,2,3,6,1,0,9,8};  for(j=0;j<9;j++)  {  for(i=0;i<9-j;i++)      {  if(a>a)          {t=a;a=a;a=t;          }      }  }for(i=0;i<10;i++)printf("%2d",a);}5、输入十个数字,逆序输出。(数组实现)答案#includemain(){intna[10],i=0;for(i=0;i<=9;i++)scanf("%f",&a);printf("n");for(i=9;i>=0;i--)printf("%f",a);}6输入两个数,交换他们的值并输出。(元素交换)答案#includeintmain(){    intm,n,temp;scanf("%d%d",&m,&n);if(mvoidmain(){inti=1;for(i;i<=9;i++){  intj=1;  for(j;j<=i;j++)  {  printf("%d*%d=%d",i,j,i*j);  }  printf("n");}}8.输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。输出转变后的这行字符。答案#include"stdio.h"voidmain(){    charna[n];    inti;    scanf("%s",a);    printf("大写为:");    for(i=0;i<=n;i++)    {      if(a<='z'&&a>='a')      a=a-32;      printf("%c",a);    }    printf("n小写为:");    for(i=0;i<=3;i++)    {    a=a+32;        printf("%c",a);    }}9、编写一个简单计算器程序,要求能够完成两个数的+,-,*,/四种运算。输出运算式及运算结果。(switch)6.2#include"stdio.h"main(){charc;inti=0,j=0,k=0,l=0;while((c=getchar())!=’n’){if(c>=65&&c<=90||c>=97&&c<=122)i++;elseif(c>=48&&c<=57)j++;elseif(c==32)k++;elsel++;}printf("i=%d,j=%d,k=%d,l=%dn",i,j,k,l);}6.6#include"math.h"main(){intx=100,a,b,c;while(x>=100&&x<1000){a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;if(x==(pow(a,3)+pow(b,3)+pow(c,3)))printf("%5d",x);x++;}}6.7main(){intm,i,j,s;for(m=6;m<10000;m++){s=1;for(i=2;ivoidmain(){charc;while((c=getchar())!='n'){c=c+4;if(c>'Z'+4||c>'z')c=c-26;}printf("%c",c);}printf("n");}12,P111  5.5  5.6(switch)5.5#includemain(){intnx,y;printf("输入x:");scanf("%d",&x);if(x<1)                        {y=x;printf("x=%3d,y=x=%dn",x,y);}elseif(x<10)                {y=2*x-1;printf("x=%3d,y=2*x-1=%dn",x,y);}else                    {y=3*x-11;printf("x=%3d,y=3*x-11=%dn",x,y);}}5.6#includemain(){floatscore;chargrade;case2:printf("请输入学生成绩:");scanf("%f",&score);while(score>100||(score<0){printf("n输入有误,请重新输入:");scanf("%f",&score);}switch((int)(score/10)){case10:case9:grade=’A’;break;case8:grade=’B’;break;case7:grade=’C’;break;case6:grade=’D’;break;case5:case4:case3:case1:case0:ngrade=’E’;}printf("成绩是%5.1f,相应的等级是%c。n",score,grade);}13,P108  例5.5(一元二次方程求根)  例5.6(求闰年)5.5#includevoidmain(){intyear,leap;scanf("%d",&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf("%dis",year);elseprintf("%disnot",year);printf("aleapyear.n")}5.614,P31  例2.17  例2.182.17输出50个学生中成绩高于80分者的学号和成绩2.18输出2000——2500年每一年是否闰年#include    voidmain()    {        intyear;        year=2000;      go:if(((year%4==0)&&(year%100!=0))||(year%400==0))          printf("%disrunnian",year);        if(year<=2500)          year=year++;          if(year>2500)          gotoend;              gotogo;        end:  getch();      }n1、求100之内自然数中最大的能被17整除的数。2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。3、计算并输出200-400之间不能被3整除的整数的和。4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。5、求100之内自然数中偶数之和。6、输入5个数,求和并输出。要求编写求和的函数。7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。9、编写程序,将一个一维数组的元素逆序存放并输出。例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j12、计算并输出1-200之间不能被5整除的整数的和。13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。14、输入5个数,求它们中最大值和平均值并输出。15、输出所有200-400之间能被3整除且个位数字为6的整数。16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。17、计算并输出200-400之间不能被7整除的整数的和。18.计算并输出200-400之间不能被5整除的整数的和。19、从键盘输入10个数,统计非正数的个数,并计算非正数的和20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。21、打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?23、有0~200之间能被3整除且个位数字为6的整数24、输入一个正整数,输出它的阶乘。25、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。26、编写程序,使用循环结构输出下列图形:********************27、输入一串字符,逆序输出。要求使用数组实现。28、求1-1/2+1/3-1/4+...+1/99-1/100的值。29、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。30、求两个正整数的最大公约数。31、求100之内自然数中奇数之和。32、输出所有200-400之间能被3整除且个位数字为7的整数。33、编程计算1*2*3+4*5*6+...+97*98*99的值。n34、输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。要求编写函数f求平方。35、计算并输出1-200之间不能被3整除的整数的和。36、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。37、输入一个华氏温度,输出摄氏温度,计算公式为c=5/9*(F-32)。要求结果保留两位小数。38、输入任意三个数,按从大到小的顺序输出。39、用1元人民币兑换5分、2分、1分的硬币共50枚,每种硬币至少一枚,问共有多少种兑换方案?输出每一种方案中三种硬币的数量。40、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。41、从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。例如,输入abcdefg,2,3,输出bcd。42、输入一个不多于5位的正整数,判断它是几位数,并逆序输出各位数字43,输出Fibonacci数列的前40项44,判断某一年是否是闰年45,起泡法(选择法)对十个数排序46,判断某个数是否为素数1,求100之内自然数中最大的能被17整除的数。#includevoidmain(){inti;for(i=100;i>0;i--)if(i%17==0)break;printf("%dn",i);}2,已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。#includevoidmain(){inta,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++)if(a*100+b*10+c+c*100+b*10+a==1333)printf("%d,%d,%dn",a,b,c);}}}3,计算并输出200-400之间不能被3整除的整数的和n#includevoidmain(){inti,sum=0;for(i=200;i<=400;i++)if(i%3!=0)sum=sum+i;printf("%dn",sum);}4,从键盘输入10个数,统计非负数的个数,并计算非负数的和。#includevoidmain(){inti,n=0,sum=0;inta[10]={0,1,2,3,4,5,-6,-7,-8,-9};for(i=0;i<10;i++)if(a[i]>=0){sum=sum+a[i];n++;}printf("非负个数是%d,sum=%dn",n,sum);}5,求100之内自然数中偶数之和#includevoidmain(){inti,sum=0;for(i=0;i<=100;i++)if(i%2==0)sum=sum+i;printf("sum=%dn",sum);}6,输入5个数,求和并输出。要求编写求和的函数。#includevoidmain(){intb(intx[],intn);intsum=0;inta[5]={1,2,3,4,5};sum=b(a,5);printf("sum=%dn",sum);}intb(intx[],intn){inti,sum=0;nfor(i=0;i<5;i++)sum=sum+x[i];returnsum;}7,编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值#includevoidmain(){inti,sum=0;for(i=1;i<=99;i=i+2)sum=sum+i*(i+1)*(i+2);printf("%dn",sum);}8,编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出#includevoidmain(){inti;charb[11]={'I','','a','m','','a','m','','a','n','!'};for(i=0;i<11;i++)if(b[i]=='a')b[i]='*';for(i=0;i<11;i++)printf("%c",b[i]);printf("n");}9,编写程序,将一个一维数组的元素逆序存放并输出。例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。#includevoidmain(){inti;inta[5]={1,2,3,4,5};for(i=0;i<2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i<5;i++)printf("%d",b[i]);printf("n");}10,求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。n#includevoidmain(){inti,j,sum=0;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=0;j<3;j++)if(i!=j)sum=sum+a[i][j];printf("%d",sum);printf("n");}11,编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j#includevoidmain(){inta=6;if(a>0)printf("zn");if(a<0)printf("fn");if(a%2==0)printf("on");if(a%2!=0)printf("jn");}12计算并输出1-200之间不能被5整除的整数的和,#includevoidmain(){inti,sum=0;for(i=1;i<=200;i++)if(i%5!=0)sum=sum+i;printf("%dn",sum);}13,从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值#includevoidmain(){inti,a=2,n=10;longintsum=0,st=0;for(i=1;i<=5;i++){st=st+a;nsum=sum+st;a=a*10;}printf("2+22+..=%ldn",sum);}14,输入5个数,求它们中最大值和平均值并输出#includevoidmain(){inta[5]={1,2,3,4,5};intj,max,sum=0;floataverage;max=a[0];for(j=0;j<5;j++){sum=sum+a[j];if(maxvoidmain(){inti;for(i=200;i<=400;i++)if((i%3==0)&&((i-6)%10==0))printf("%dn",i);printf("n");}16编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。,#includevoidmain(){inti,j;chara[20]="abcdefa";for(i=0;i<20;i++)printf("%c",a[i]);printf("n");nfor(i=0;i<20;i++)if(a[i]=='a')for(j=i;j<20;j++){a[j]=a[j+1];a[19]='';}for(i=0;i<20;i++)printf("%c",a[i]);printf("n");}17,计算并输出200-400之间不能被7整除的整数的和#includevoidmain(){inti,sum=0;for(i=200;i<=400;i++)if(i%7!=0)sum=sum+i;printf("sum=%dn",sum);}18计算并输出200-400之间不能被5整除的整数的和#includevoidmain(){inti,sum=0;for(i=200;i<=400;i++)if(i%5!=0)sum=sum+i;printf("sum=%dn",sum);}19,从键盘输入10个数,统计非正数的个数,并计算非正数的和#includevoidmain(){inti,n=0,sum=0;inta[10]={0,1,2,3,4,5,-6,-7,-8,-9};for(i=0;i<10;i++)if(a[i]<=0){sum=sum+a[i];n++;}printf("非正个数是%d,sum=%dn",n,sum);}20,输入一串字符,将其中的大写字母变成对应的小写字母并输出。n#includevoidmain(){inti;chara[20]="IajJIAikaksKDF!";for(i=0;i<20;i++)printf("%c",a[i]);printf("n");for(i=0;i<20;i++)if(a[i]>'A'&&a[i]<'Z')a[i]=a[i]+32;for(i=0;i<20;i++)printf("%c",a[i]);printf("n");}21,打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。#includevoidmain(){inta,b,c,s;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++)if(a*100+b*10+c==a*a*a+b*b*b*b+c*c*c){s=a*100+b*10+c;printf("%dn",s);}}}}22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。,#includevoidmain(){inti;floath=100.0,sum=0;h=h/2;for(i=2;i<=10;i++){sum=sum+2*h;h=h/2;}nprintf("%f,%fn",sum,h);}23,输出所有0~200之间能被3整除且个位数字为6的整数#includevoidmain(){inti;for(i=0;i<=200;i++)if((i%3==0)&&((i-6)%10==0))printf("%dn",i);printf("n");}24,输入一个正整数,输出它的阶乘。#includevoidmain(){inti,J=1,n=10;for(i=1;i<=10;i++)J=J*i;printf("%d的阶乘是:%dn",n,J);}25,编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志#includevoidmain(){inti,m=0,n=0,k=0,j=0;chara[20]={'a','A','b','B','','1','2','%','&','*'};for(i=0;i<10;i++){if(a[i]>=’0’&&a[i]<=’9’)m++;elseif(a[i]>='A'&&a[i]<='Z')n++;elseif(a[i]>='a'&&a[i]<='z')k++;elsej++;}printf("%d,%d,%d,%dn",m,n,k,j);}26,编写程序,使用循环结构输出下列图形:n********************#includevoidmain(){inti,j,k;for(i=0;i<5;i++){for(j=0;j<4-i;j++)printf("");for(k=0;k<4;k++)printf("*");printf("n");}printf("n");}27,输入一串字符,逆序输出。要求使用数组实现#includevoidmain(){inti,j,t;chara[10]={'a','b','c','d','e','f','g','h','j','k'};for(j=0;j<10;j++)printf("%c",a[j]);printf("n");for(i=0;i<5;i++){t=a[i];a[i]=a[9-i];a[9-i]=t;}for(j=0;j<10;j++)printf("%c",a[j]);printf("n");}28,求1-1/2+1/3-1/4+...+1/99-1/100的值#includevoidmain(){intn,s=1;floatsum=1.0;for(n=2;n<=100;n++)n{s=-s;sum=sum+1.0/n*s;}printf("1-1/2+1/3-1/4+...+1/99-1/100=%fn",sum);}29输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数#includevoidmain(){inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};inti,j;floataverage,sum=0.0;printf("三个学生的总分和平均成绩依次为:n");for(i=0;i<3;i++){sum=0.0;for(j=0;j<4;j++)sum=sum+a[i][j];average=sum/4;printf("%.2f,%.2fn",sum,average);}30,求两个正整数的最大公约数。#includevoidmain(){intm,n,m1,n1,t,k;m=4;n=6;if(mvoidmain(){inti,sum=0;for(i=0;i<=100;i++)if(i%2!=0)sum=sum+i;printf("sum=%dn",sum);}32输出所有200-400之间能被3整除且个位数字为7的整数。#includevoidmain(){inti;for(i=200;i<=400;i++)if((i%3==0)&&((i-7)%10==0))printf("%dn",i);printf("n");}33,编程计算1*2*3+4*5*6+...+97*98*99的值。#includevoidmain(){inti,n,sum=0;for(i=1;i<=94;i=i+3)sum=sum+i*(i+1)*(i+2);printf("%dn",sum);}34,输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。要求编写函数f求平方。#includevoidmain(){intf(intx);intn,sum;n=5;sum=f(n);printf("%d的平方和是:%dn",n,sum);}intf(intx){intj,z=0;for(j=1;j<=x;j++)z=z+j*j;nreturnz;}35、计算并输出1-200之间不能被3整除的整数的和。#includevoidmain(){inti,sum=0;for(i=1;i<=200;i++)if(i%3!=0)sum=sum+i;printf("%dn",sum);}36,输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。#includevoidmain(){inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};inti,j;floataverage,sum=0.0;printf("三个学生的总分和平均成绩依次为:n");for(i=0;i<3;i++){sum=0.0;for(j=0;j<4;j++)sum=sum+a[i][j];average=sum/4;printf("%.1f,%.1fn",sum,average);}}37,输入一个华氏温度,输出摄氏温度,计算公式为c=5/9*(F-32)。要求结果保留两位小数。#includevoidmain(){floatF,c;F=50.0;c=5.0/9*(F-32);printf("%.2fn",c);}38输入任意三个数,按从大到小的顺序输出。#includevoidmain(){inta,b,c,t;na=3;b=4;c=2;if(amain(){floatx=1.0;floata=0.01,b=0.02,c=0.05;inti,j,k;intcount=0;printf("1分,2分,5分张数依次为:n");for(i=1;i<100;i++)for(j=1;j<50;j++)for(k=1;k<20;k++)if((i*a+j*b+k*c)==1){printf("%d%d%dn",i,j,k);count++;}printf("共有%d种方案n",count);}40,从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。#includevoidmain(){intr=5;floatpi=3.14159;floatc,s;s=pi*r*r;nc=2*pi*r;printf("面积=%.2f,周长=%.2fn",s,c);}41,从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。例如,输入abcdefg,2,3,输出bcd。#includevoidmain(){inti,m=2,n=3;chara[]="abcdefg";for(i=m-1;ivoidmain(){inta,b,c,d,e;longx;x=12345;a=x/10000;b=x%10000/1000;c=x%1000/100;d=x%100/10;e=x%10;if(a!=0)printf("它是5位数,%d,%d,%d,%d,%dn",e,d,c,b,a);elseif(b!=0)printf("它是4位数,%d,%d,%d,%dn",e,d,c,b);elseif(c!=0)printf("它是3位数,%d,%d,%dn",e,d,c);elseif(d!=0)printf("它是2位数,%d,%dn",e,d);elseprintf("它是1位数,%dn",e);}43输出Fibonacci数列的前40项#includevoidmain(){inta[40]={1,1};inti;printf("%d%d",a[0],a[1]);for(i=2;i<40;i++){na[i]=a[i-1]+a[i-2];printf("%12d",a[i]);}}44/*判断某一年是否是闰年*/#includevoidmain(){intyear,leap;scanf("%d",&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf("%disaleapyearn",year);elseprintf("%disnotaleapyearn",year);}45起泡法(选择法)对十个数排序#includevoidmain(){inti,j,t;inta[10];printf("请输入10个数:n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){nt=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%d",a[i]);printf("n");46/*判断m是否是素数*/#include#includevoidmain(){inti,k,m;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprimenumbern",m);elseprintf("%disnotaprimenumbern",m);}}四、编程题(2道小题,共20分)1、求100之内自然数中最大的能被17整除的数。#includevoidmain(){inti;for(i=100;i>0;i--)if(i%17==0)break;printf("%dn",i);}2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。#includevoidmain(){inta,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++)if(a*100+b*10+c+c*100+b*10+a==1333)printf("%d,%d,%dn",a,b,c);n}}}3、计算并输出200-400之间不能被3整除的整数的和。#includevoidmain(){inti,sum=0;for(i=200;i<=400;i++)if(i%3!=0)sum=sum+i;printf("%dn",sum);}4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。#includevoidmain(){inti,n=0,sum=0;inta[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]>=0){sum=sum+a[i];n++;}printf("非负个数是%d,sum=%dn",n,sum);}5、求100之内自然数中偶数之和。#includevoidmain(){inti,sum=0;for(i=0;i<=100;i++)if(i%2==0)sum=sum+i;printf("sum=%dn",sum);}6、输入5个数,求和并输出。要求编写求和的函数。#includevoidmain(){intb(intx[],intn);intsum=0;inta[5];printf(“请输入5个数:”);for(i=0;i<5;i++)scanf(“%d”,&a[i]);nsum=b(a,5);printf("sum=%dn",sum);}intb(intx[],intn){inti,sum=0;for(i=0;i<5;i++)sum=sum+x[i];returnsum;}7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。#includevoidmain(){inti,sum=0;for(i=1;i<=99;i=i+2)sum=sum+i*(i+1)*(i+2);printf("%dn",sum);}8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。#include#includevoidmain(){inti,n;charb[20];printf("请输入字符串:");gets(b);n=strlen(b);for(i=0;ivoidmain(){inti;inta[5];printf(“请输入5个数:”);for(i=0;i<5;i++)scanf(“%d”,&a[i]);for(i=0;i<2;i++){t=a[i];na[i]=a[4-i];a[4-i]=t;}for(i=0;i<5;i++)printf("%d",b[i]);printf("n");}10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。#includevoidmain(){inti,j,sum=0;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=0;j<3;j++)if(i!=j)sum=sum+a[i][j];printf("%d",sum);printf("n");}11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j#includevoidmain(){inta;printf(“请输入一个数:”);scanf(“%d”,&a);if(a>0)printf("zn");if(a<0)printf("fn");if(a%2==0)printf("on");if(a%2!=0)printf("jn");}12、计算并输出1-200之间不能被5整除的整数的和。#includevoidmain(){inti,sum=0;for(i=1;i<=200;i++)if(i%5!=0)sum=sum+i;printf("%dn",sum);n}13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。#includevoidmain(){inti,a,n;longintsum=0,st=0;printf("请输a和n:");scanf("%d%d",&a,&n);for(i=1;i<=n;i++){st=st+a;sum=sum+st;a=a*10;}printf("%ldn",sum);}14、输入5个数,求它们中最大值和平均值并输出。#includevoidmain(){inta[5];inti,j,max,sum=0;floataverage;printf("请输入5个数:");for(i=0;i<5;i++)scanf("%d",&a[i]);max=a[0];for(j=0;j<5;j++){sum=sum+a[j];if(maxvoidmain(){inti;for(i=200;i<=400;i++)if((i%3==0)&&((i-6)%10==0))printf("%dn",i);printf("n");}16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。n#includevoidmain(){inti,j,n1,n2;chara[20];printf("请输入字符串:");gets(a);n1=strlen(a);for(i=0;ivoidmain(){inti,sum=0;for(i=200;i<=400;i++)if(i%7!=0)sum=sum+i;printf("sum=%dn",sum);}18.计算并输出200-400之间不能被5整除的整数的和。#includevoidmain(){inti,sum=0;for(i=200;i<=400;i++)if(i%5!=0)sum=sum+i;printf("sum=%dn",sum);}19、从键盘输入10个数,统计非正数的个数,并计算非正数的和#includevoidmain(){inti,n=0,sum=0;inta[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]<=0)n{sum=sum+a[i];n++;}printf("非正个数是%d,sum=%dn",n,sum);}20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。#include#includevoidmain(){inti,n;chara[20];printf("请输入字符串:");gets(a);n=strlen(a);for(i=0;i='A'&&a[i]<='Z')a[i]=a[i]+32;for(i=0;ivoidmain(){inta,b,c,s;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++)if(a*100+b*10+c==a*a*a+b*b*b*b+c*c*c){s=a*100+b*10+c;printf("%dn",s);}}}}22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?#includevoidmain(){inti;nfloath=100.0,sum=0;h=h/2;for(i=2;i<=10;i++){sum=sum+2*h;h=h/2;}printf("%f,%fn",sum,h);}23、输出所有0-200之间能被3整除且个位数字为6的整数。#includevoidmain(){inti;for(i=0;i<=200;i++)if((i%3==0)&&((i-6)%10==0))printf("%dn",i);printf("n");}24、输入一个正整数,输出它的阶乘。#includevoidmain(){inti,J=1,n=10;printf(“请输入一个正整数:”);scanf(“%d”,&n);for(i=1;i<=n;i++)J=J*i;printf("%d的阶乘是:%dn",n,J);}25、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。#include#includevoidmain(){inti,x,m=0,n=0,k=0,j=0;chara[20];printf("请输入字符串:");gets(a);x=strlen(a);for(i=0;i='0'&&a[i]<='9')m++;nelseif(a[i]>='A'&&a[i]<='Z')n++;elseif(a[i]>='a'&&a[i]<='z')k++;elsej++;}printf("%d,%d,%d,%dn",m,n,k,j);}26、编写程序,使用循环结构输出下列图形:********************#includevoidmain(){inti,j,k;for(i=0;i<5;i++){for(j=0;j<4-i;j++)printf("");for(k=0;k<4;k++)printf("*");printf("n");}printf("n");}27、输入一串字符,逆序输出。要求使用数组实现。#include#includevoidmain(){inti,j,t,n;chara[10];printf("请输入字符串:");gets(a);n=strlen(a);for(i=0;ivoidmain(){intn,s=1;floatsum=1.0;for(n=2;n<=100;n++){s=-s;sum=sum+1.0/n*s;}printf("1-1/2+1/3-1/4+...+1/99-1/100=%fn",sum);}29、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。#includevoidmain(){inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};inti,j;floataverage,sum=0.0;printf("三个学生的总分和平均成绩依次为:n");for(i=0;i<3;i++){sum=0.0;for(j=0;j<4;j++)sum=sum+a[i][j];average=sum/4;printf("%.2f,%.2fn",sum,average);}}30、求两个正整数的最大公约数。#includevoidmain(){intm,n,m1,n1,t,k;printf(“请输入两个正整数:”);scanf(“%d%d”,&m,&n);if(mvoidmain(){inti,sum=0;for(i=0;i<=100;i++)if(i%2!=0)sum=sum+i;printf("sum=%dn",sum);}32、输出所有200-400之间能被3整除且个位数字为7的整数。#includevoidmain(){inti;for(i=200;i<=400;i++)if((i%3==0)&&((i-7)%10==0))printf("%dn",i);printf("n");}33、编程计算1*2*3+4*5*6+...+97*98*99的值。#includevoidmain(){inti,n,sum=0;for(i=1;i<=94;i=i+3)sum=sum+i*(i+1)*(i+2);printf("%dn",sum);}34、输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。要求编写函数f求平方。#includevoidmain(){intf(intx);nintn,sum;printf("请输n值:");scanf("%d",&n);sum=f(n);printf("%dn",sum);}intf(intx){intj,z=0;for(j=1;j<=x;j++)z=z+j*j;returnz;}35、计算并输出1-200之间不能被3整除的整数的和。#includevoidmain(){inti,sum=0;for(i=1;i<=200;i++)if(i%3!=0)sum=sum+i;printf("%dn",sum);}36、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。#includevoidmain(){inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};inti,j;floataverage,sum=0.0;printf("三个学生的总分和平均成绩依次为:n");for(i=0;i<3;i++){sum=0.0;for(j=0;j<4;j++)sum=sum+a[i][j];average=sum/4;printf("%.1f,%.1fn",sum,average);}}37、n输入一个华氏温度,输出摄氏温度,计算公式为c=5/9*(F-32)。要求结果保留两位小数。#includevoidmain(){floatF,c;printf(“请输入一个华氏温度:”);scanf(“%f”,&F);c=5.0/9*(F-32);printf("%.2fn",c);}38、输入任意三个数,按从大到小的顺序输出。#includevoidmain(){inta,b,c,t;printf(“请输入任意三个数:”);scanf(“%d%d%d”,&a,&b,&c);if(amain(){floatx=1.0;floata=0.01,b=0.02,c=0.05;inti,j,k;intcount=0;printf("1分,2分,5分张数依次为:n");nfor(i=1;i<100;i++)for(j=1;j<50;j++)for(k=1;k<20;k++)if((i*a+j*b+k*c)==1){printf("%d%d%dn",i,j,k);count++;}printf("共有%d种方案n",count);}40、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。#includevoidmain(){intr;floatpi=3.14159;floatc,s;printf(“请输入半径r:”);scanf(“%d”,&r);s=pi*r*r;c=2*pi*r;printf("面积=%.2f,周长=%.2fn",s,c);}41、从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。例如,输入abcdefg,2,3,输出bcd。#include#includevoidmain(){inti,m,n;chara[20];printf("请输入字符串:");gets(a);n=strlen(a);printf("请输入两个正整数:");scanf("%d%d",&m,&n);for(i=m-1;ivoidmain(){inta,b,c,d,e;longx;printf(“请输入一个不多于5位的正整数:”);scanf(“%d”,&x);na=x/10000;b=x%10000/1000;c=x%1000/100;d=x%100/10;e=x%10;if(a!=0)printf("它是5位数,%d,%d,%d,%d,%dn",e,d,c,b,a);elseif(b!=0)printf("它是4位数,%d,%d,%d,%dn",e,d,c,b);elseif(c!=0)printf("它是3位数,%d,%d,%dn",e,d,c);elseif(d!=0)printf("它是2位数,%d,%dn",e,d);elseprintf("它是1位数,%dn",e);}43,输出Fibonacci数列的前40项#includevoidmain(){inta[40]={1,1};inti;printf("%12d%12d",a[0],a[1]);for(i=2;i<40;i++){if(i%4==0)printf("n");a[i]=a[i-1]+a[i-2];printf("%12d",a[i]);}printf("n");}44,判断某一年是否是闰年#includevoidmain(){intyear,leap;printf(“请输入一个年份:”);scanf("%d",&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elsenleap=0;}elseleap=1;}elseleap=0;if(leap)printf("%disaleapyearn",year);elseprintf("%disnotaleapyearn",year);}45,起泡法(选择法)对十个数排序#includevoidmain(){inti,j,t;inta[10];printf("请输入10个数:n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%d",a[i]);printf("n");}46,判断某个数是否为素数.#include#includevoidmain(){inti,m;floatk;printf("请输入一个正整数:");scanf("%d",&m);nk=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprimenumbern",m);elseprintf("%disnotaprimenumbern",m);}47,编程计算1!+2!+3!+…+10的值。#includevoidmain(){inti,j,sum1=1,sum=0;for(i=1;i<=10;i++){for(j=1;j<=i;j++)sum1=sum1*j;sum=sum+sum1;}printf("1!+2!+3!+…+10!=%ldn",sum);}48,求以下数列前十五项的和:2/1,3/2,5/3,8/5,13/8,21/13…。#includevoidmain(){intn;floata=2.0,sum=0.0,b=1.0,t;for(n=1;n<=15;n++){sum=sum+a/b;t=a;a=a+b;b=t;}printf("%fn",sum);}49,从键盘输入圆柱体高与底面半径,计算并输出圆柱体表面积与体积,要求结果保留两位小数。#includevoidmain(){inth,r;floatpi=3.14159,s,v;printf(“请输入圆柱体半径r和高h:”);scanf(“%d%d”,&r,&h);s=2*pi*r*r+2*pi*r*h;v=pi*r*r*h;printf("s=%.2f,v=%.2fn",s,v);}50,n从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。例如,输入1234,输出10;输入-1234,输出10。#include#includevoidmain(){inti1,i2,i3,i4,n,sum;inta;printf("请输入一个整数:");scanf("%d",&a);n=abs(a);i1=n/1000;i2=n%1000/100;i3=n%100/10;i4=n%10;sum=i1+i2+i3+i4;printf("sum=%dn",sum);}51,已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。#includevoidmain(){floatx,y,r=0.0225;inti,n;printf("请输入存款本金x和存款年数n:");scanf("%f%d",&x,&n);y=x;for(i=1;i<=n;i++)y=y*(1+r);printf("%fn",y);}52,编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一样,如abcba。#include#includevoidmain(){inti,n;chara[20];printf("请输入字符串:");gets(a);n=strlen(a);for(i=0;i=n)printf("是回文.n");}水仙花数题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:main(){inti,j,k,n;printf("'waterflower'numberis:");for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n%10; if(i*i*i+j*j*j+k*k*k==n)   printf("%dn",n); }}比较大小题目:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,      然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。2.程序源代码:main(){intx,y,z,t;scanf("%d%d%d",&x,&y,&z);if(x>y){t=x;x=y;y=t;}n/*交换x,y的值*/if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/printf("smalltobig:%d%d%dn",x,y,z);}百钱买百鸡问题公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?main(){intcocks,hens,chicks;cocks=0;while(cocks<=19) { hens=0; while(hens<=33)   {   chicks=100-cocks-hens;
   if(5*cocks+3*hens+chicks/3==100&&chicks%3==0) printf("%d,%d,%dn",cocks,hens,chicks);   hens=hens+1;   } cocks=cocks+1; }
查看更多

相关文章

您可能关注的文档