资源描述
第一部分习题篇第一章C语言概述一单选题1以下说法中正确的是(C)。A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言中的main()函数必须放在程序的开始部分2一个C语言程序是由(B)。A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成3C语言规定,在一个源程序中,main函数的位置(C)。A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后4以下叙述不正确的是(D)。A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释只能位于一条语句的后面5下列关于C语言的说法不正确的是(D)。A)C语言既有高级语言的功能,也具有低级语言的一些功能B)C语言中的一条执行语句都必须用分号结束C)注释可以出现在程序中任意合适的地方D)include命令行后面必须加分号6用C语言编写的代码程序(B)。A)可以立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行7用高级语言(如C语言)编写的程序称为(A)A)源程序B)目标程序C)可执行程序D)编译程序8一个函数的组成有(A)。A)函数首部和函数体B)函数名和函数的声明部分C)主函数和子函数D)声明部分和执行部分9在C语言中,用来表示“取地址”的符号是(B)。A)B)C)*D)10C语言是计算机高级语言,它适合于作为系统描述语言,它(A)。A)既可用来写系统软件,也可用来写应用软件B)只能写系统软件,不能用来写应用软件C)不能写系统软件,只能用来写应用软件D)既不能写系统软件,也不能写应用软件二填空题1C语言用函数作为程序的模块单位,便于实现程序的模块化。2C语言允许直接访问物理地址,能进行位操作。3用C语言编写的程序,每一个语句和数据定义的结尾必须要有一个分号。4每个C程序中必须有一个main()函数。5C程序中的函数体由括起来。6C程序中的“n”表示在程序运行中换行。7C程序中,“/*/”表示注释部分。8C程序中,一个函数由函数首部和函数体组成。9一个C程序总是从main()函数开始执行的,不论该函数在整个程序中的位置如何。10在纸上编好一个C源程序后,要经过编辑、编译、连接、运行这几个步骤进行上机运行。三判断题1C语言不具有低级语言的特性。(错)2C语言之所以也被称为中级语言,是因为它比高级语言的功能要少,而比低级语言的功能多。(错)3C语言与其他高级语言一样具有结构化的控制语句。(对)4C语言允许直接访问物理地址。(对)5每一个C程序必须有一个main函数。(对)6C程序的语句最后应有一个分号。(对)7C程序中的main函数必须放在整个程序的最前头。(错)8计算机高级语言对源程序进行翻译有两种方式:编译和解释。(对)四编程题1编写一个C程序,输出以下信息:*Iamastudent.*#include/*包含头文件,为了使用printf和scanf语句,注意句末无分号*/void main()printf(“*n”);/*n的作用相当于回车*/printf(“Iamastudent.n”);printf(“*n”);2编写一个C程序,输入a、b两个数,输出其的数。(只用一个主函数)#includevoid main()inta,b;printf(“Please input a,b:n”);scanf(“%d,%d”,&a,&b);/*注意输入两个数之间用逗号分隔*/if(ab)printf(“%d”,a);elseprintf(“%d”,b);3编写一个C程序,输入a、b、c三个数,输出其中最大数。(只用一个主函数)#includevoid main()int a,b,c,max;printf(“Please input a,b,c:n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(ab)max=b;/*max用于保存a,b中比较大的数*/if(maxc)max=c;/*将a,b中较大的数再和c比较*/printf(“Thelargestnumberis%d”,max);第二章数据与运算一单选题1C语言中最简单的数据类型包括(B)。A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型2C语言中运算对象必须是整型的运算符是(D)。A)*B)/C)D)3在C程序中,以下不正确的叙述是(D)。A)逗号运算符的优先级最低B)ABC和abc是两个不同的变量C)若a和b类型一样,在执行了赋值表达式a=b后,b中的值将放入a中,而b的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据4设有intx8,表达式x*1/3的值是(A)。A)2B)3C)8D)95若m,x,y,z都是整型变量,则计算表达式m=(x=5,y=10,z=25)执行后,m的值为(C)。A)5B)10C)25D)406设变量i是int类型,f是float型,d是double 型,执行表达式5i-f*d,其结果的数据类型为(B)。A)int型B)double 型C)float型D)非法表达式7设变量i是int类型,执行语句i=A+25后,正确的叙述是(C)。A)i的值是字符DB)i的值是字符A的ASCII值加上25C)i的值是字符A的ASCII值加上2D)非法表达式8下列是用户自定义标识符的是(B)。A)intB)_xyC)2xyD)3-xy9下面与x=y+完全等价的表达式是(A)。A)x=y,y=y+1B)x=x+1,y=xC)x=+yD)x+=y+110已知各变量的类型说明如下:int k,a,b;long w=8;floatx=256;以下不符合C语言语法的表达式是(A)。A)x5B)w=5C)k=(a=8,b=6,a-b)D)a+=a-=(b=2)*(a=5)11运行以下程序段时编译出错,其原因是(D)。char c1=a,c2=123;printf(%c,%dn,c1,c2);A)字符串要用123表示B)123只能赋值给字符数组C)c2是字符变量,不能用%d格式输出D)c2是字符变量,只能赋以字符常量12若定义float a;,现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用(A)。A)scanf(%6f,&a);B)scanf(%52f,a);C)scanf(%62f,&a);D)scanf(%f,a);13若定义double t;,则表达式t=1,t+5,+t的值为(B)。A)10B)20C)60D)7014已知各变量的类型说明如下,则C语言中错误的表达式是(A)。int k,a,b;unsigned long w=5;double x=142;A)x%(-3)B)w+=2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4*(a=3)15以下程序段的运行结果是(C)。int a=0,b=0,c=0;if(a&+b)c+;printf(%d,%dn,b,c);A)1,1B)1,0C)0,0D)0,1二填空题1在C语言中,一个float 型数据在在中所占的字节数为4,一个double 型数据在在中所占的字节数是8。2下面程序的输出结果是28。main()int a=2,b=3,c=4;a*=16+(b+)-(+c);printf(“%d”,a);3下面程序的输出结果是5。main()int x=17,y=26;printf(“%d”,y/=(x%=6);4执行下面程序段后,c3中的值是0。int c1=1,c2=2,c3;c3=10/c2*c1;5进行下列变量定义后,表达式a*b+d-c的类型是double 。char a;int b;float c;double d;6下面程序的输出结果是8,10。main()int x=010,y=10;printf(“%d,dn”,x,y);7下面程序的输出结果是12。main()int x=3,y=5;printf(“%dn”,x=(x-)*(-y);8已知字母A的ASCII码是十进制数65,设c为字符型变量,则表达式cA+5-2的值为D或68。9下面程序的输出结果是52。main()int x=065;printf(“%dn”,-x);/10下面程序的输出结果是25,21,37。main()int a,b,c;a=25;b=025;c=0x25printf(“%d,%d,%dn”,a,b,c);11下面程序的输出结果是48。main()int x=0110;printf(“%xn”,x);12下面程序的输出结果是20200.000000。main()char c;int n=100;float f=10;double x;x=f*=n/=(c=5);printf(“%d%fn”,n,x);13写出下面程序的运行结果。(请用表示空格)main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%cb%ctc%ctabcn”,c1,c2,c3);printf(“tb%c%cn”,c4,c5);程序的运行结果是:aabbccabcAN14下面程序的运行结果是9,11,9,10。main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%dn”,i,j,m,n);15以下程序的运行结果是11.50。#includevoid main()int i=5,j=9;float x=2.3,y=4.5;printf(%8.2fn,i%(int )(x+y)*j/2/3+y);三判断题1C语言中,字符常量可以用单引号或双引号括起来。(错)2C语言中,字符常量只能包含一个常量(字符)。(对)3在C语言中,字符串常量隐含处理成以0结尾。(对)4下面程序段的输出结果是9。(错)int a=9;printf(“%on”,a);(注意:%o中的o是字母o,不是数字0)5C语言中,用户所定义的标识符允许使用关键字。(错)6C语言中,用户所定义的标识符中,大、小字母代表不同标识。(对)7C语言中,符号常量的值在程序运行过程中可以改变。(错)8C语言中,不要求对程序中所用到的变量进行强制定义。(错)9C语言中,一个整数如果其值在32376832767围,认为它是int 型,只能赋值给int 型变量。(错)10设一个C系统的float 型有效数字是7位,则超过7位数的运算是不准确的。(对)四计算题1求下面表达式的值。1)x+a%3*(int )(x+y)%2/4设x=25,a=7,y=47第1步:(int )(x+y)=(int )(7.2)=7第2步:a%3*7%2/4=7%3*7%2/4=1*7%2/4=1/4=0第3步:x+0=x=2.5(计算机显示为2.500000)2)(float )(a+b)/2+(int )x%(int )y设a=2,b=3,x=35,y=25第1步:(float )(a+b)/2=(float )(2+3)/2=(float )(5)/2=5.0/2=2.5第2步:(int )x%(int )y=(int )(3.5)%(int )(2.5)=3%2=1第3步:2.5+1=3.5(计算机显示为3.500000)2写出下面赋值表达式运算后a的值,设原来a=12,n=5。1)a+=aa=a+a=12+12=242)a-=2a=a-2=12-2=103)a*=2+3a=a*(2+3)=12*5=604)a/=a+aa=a/(a+a)=12/24=0注意a是整型5)a%=(n%=2)已知:n=5a=06)a+=a-=a*=a从右向左解:a=a*a=144;a=a-a=0;a=a+a=0五编程题1要将“China”译成密码,规律是:用原来的字母后面第4个字母代替原来的字母。例如,“A”用字母“E”来替代。因此,“China”应译为“Glmre”。编程:用赋初值的方法使c1c2c3c4c5这五个变量的值分别为C、h、i、n、a,经过运算,这五个变量分别变为G、l、m、r、e,并输出。#includevoid main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“passwordis%c%c%c%c%cn”,c1,c2,c3,c4,c5);运行结果:passwordisGlmre也可以用循环和数组:#includevoid main()char c=“China”;printf(“password is“);for(int i=0;i=4,i+)printf(“%c”,ci+=4);printf(“n”);2请编程,要求用赋初值的方法使c1c2这两个变量的值分别为97和98,然后分别按整型和字符型输出。#includevoid main()char c1=97,c2=98;printf(“%d,%dn”,c1,c2);printf(“%c,%cn”,c1,c2);3编写程序,从键盘输入三个单精度数a、b、c,计算总和、平均值、x=a2+b2+c2的值,并计算x平方根的值。所有运行数据保留三位小数,第四位四舍五入。#include#includevoid main()double a,b,c,total,average,square,squareroot;printf(请输入三个单精度实数:);scanf(%f%f%f,&a,&b,&c);total=a+b+c;average=total/3.0;square=a*a+b*b+c*c;squareroot=sqrt(square);printf(三个数的和=%-15.3f,三个数的平均值=%-15.3fn,total,average);printf(三个数的平方和x=%.3f,x的平方根=%.3fn,square,squareroot);运行结果:请输入三个单精度实数:1.234.567.89三个数的和=13.680,三个数的平均值=4.560三个数的平方和x=84.559,x的平方根=9.1964输入三角形的三个边长,计算并输出三角形的面积。#include#includevoid main()float a,b,c,k,area;printf(请输入三角形三条边的边长:);scanf(%f%f%f,&a,&b,&c);if(a+b=c)|(a+c=b)|(b+c=a)printf(您输入的三条边无法构成三角形。n);elsek=(a+b+c)/2;area=sqrt(k*(k-a)*(k-b)*(k-c);/*函数sqrt(x)是求x的平方根*/printf(该三角形的面积是%6.2fn,area);5输入两个长整型数,输出它们(整数除的)商和余数。#includevoid main()long a1,a2,a3,a4;printf(请输入两个整数:);scanf(%ld%ld,&a1,&a2);a3=a1/a2;a4=a1%a2;printf(两数进行整数除的商是%ld,余数是%ldn,a3,a4);运行结果:请输入两个整数:654321789两数进行整数除的商是829,余数是2406输入两个整数,输出它们(实数除)的商,并输出商的第二位小数位(例如:15/80=1875,1875的第二位小数位是7)。#includevoid main()int a,b,c;float f;printf(请输入两个整数:);scanf(%d%d,&a,&b);f=1.0*a/b;c=(int )(f*100)%10;printf(两数进行实数除,商是%f,商的第二位小数位是%dn,f,c);运行结果:请输入两个整数:158两数进行实数除,商是1.875000,商的第二位小数位是77输入一个(unsigned 类型)无符号整数,分别输出它的低四位和高四位。#includevoid main()unsigned u,high4,low4;printf(请输入一个无符号整数:);scanf(%u,&u);low4=(u&0xf);/*u的低四位保留原值,其余位置0*/high4=(u&0xf000)12;/*u的高四位保留原值,其余位置0,并右移12位*/printf(%u的十六进制是%xn,u,u);printf(十六进制表示%u的低四位是%x,高四位是%xn,u,low4,high4);运行结果:请输入一个无符号整数:5433254332的十六进制是d43c十六进制表示54332的低四位是c,高四位是d8输入两个小写字母分别赋值给字符变量ch1与ch2,将它们转换成大写字母,并交换ch1与ch2的值,最后输出ch1与ch2的值。#includevoid main()char c1,c2,t;printf(请输入两个半角的小写英文字母:);c1=getchar ();c2=getchar ();c1-=32;c2-=a-A;/*与32等价*/t=c1;c1=c2;c2=t;printf(%c%cn,c1,c2);运行结果:请输入两个半角的小写英文字母:dbBD9输入秒数,将它转换,用小时、分钟、秒来表示。例如输入7278秒,则输出:2小时1分18秒。#includevoid main()int k;int hour,minute,second;printf(请输入秒数:);scanf(%d,&k);hour=k/3600;k%=3600;minute=k/60;second=k%60;printf(%d小时%d分钟%d秒。n,hour,minute,second);运行结果:请输入秒数:72782小时1分钟18秒。10输入两个复数的实部和虚部,输出这两个复数积的实部和虚部。两复数的积按下面的公式计算:(a+bi)(c+di)=(ac-bd)+(ad+bc)i。#includevoid main()float a,b,c,d,real,imag;printf(请输入第一个数的实部和虚部:);scanf(%f%f,&a,&b);printf(请输入第二个数的实部和虚部:);scanf(%f%f,&c,&d);real=a*c-b*d;imag=a*d+b*c;printf(两个复数积的实部和虚部分别是%f,%fn,real,imag);运行结果:请输入第一个数的实部和虚部:1.12.2请输入第二个数的实部和虚部:3.34.4两个复数积的实部和虚部分别是-6.050000,12.100000第三章C程序的基本控制结构一单选题1若变量已经正确定义为float 型,要通过语句scanf(“%f%f%f”,&a,&b,&c)。给a输入10.0,n输入20.0,c输入30.0,下列不正确的输入形式是(B)。A)102030B)10.0,20.0,30.0C)10.020.030.0D)1020302若有说明语句:char c=65;则变量c(D)。A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定3若w=1,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z的值是(A)。A)1B)2C)3D)44x、y、z被定义为int 型变量,若从键盘给它们输入数据,正确的输入语句是(B)。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);5有以下程序。#includevoid main()char a1=A,a2=a;printf(“%cn”,(a1,a2);以下叙述中正确的是(B)。A)程序输出大写字母AB)程序输出小写字母aC)格式说明符不足,编译出错D)程序运行时产生出错信息6以下程序的输出结果是(A)。#includevoid main()int a=2,b=3,c=0,d;d=!a&!b|!c;printf(“%dn”,d);A)1B)0C)非0的数D)-17以下程序的输出结果是(B)。#includevoid main()int a=6,b=5;printf(“%dn”,-a+b,-b+a);A)8B)9C)10D)118下面程序输出的结果是(D)。#includevoid main()int a=55,b=50,c=60,d;d=a20?b:c;switch(D)case40:printf(“%d,”,a);case50:printf(“%d,”,b);case60:printf(“%d,”,c);default:printf(“$n”);A)50,60B)50,$C)60,$D)50,60,$9如果从键盘输入数据666,下面程序输出的结果是(C)。#includevoid main()int x;scanf(“%d”,&x);if(x300)printf(“%d”,x);if(x200)printf(“%d”,x);if(x100)printf(“%d”,x);A)666B)666666C)666666666D)以上都不对10有如下程序。#includevoid main()int a=5,b=6,c=1;switch(C)case0:b+;case1:a+;case2:a+;b+;printf(“a=%d,b=%dn”,a,b);该程序的输出结果是(C)A)a=5,b=6B)a=6,b=7C)a=7,b=7D)a=7,b=811、下面的程序中:int i=9;while(i=0)i=i-1;则下列描述正确的是(C)A)while循环执行9次B)循环体语句执行一次C)循环体语句一次也不执行D)循环是无限循环(注意:i=0是赋值语句,不是对i中值和0进行比较,因此程序执行后i的值是0而不是9)12、下面的程序中:int i=-1;doi=i*i;while(!i);则下列描述正确的是(B)A)循环体一次也不执行B)循环体执行一次C)循环体执行两次D)是无限循环13、下面的程序中:int i=0;while(i=1)则下列描述正确的是(C)A)循环控制表达式不合法B)循环控制表达式为0C)循环控制表达式为1D)以上都不对14、下面的程序中:int x=0,total=0;while(!x!=0)total+=+x;printf(“%d”,total);则下列描述正确的是(D)A)程序段的控制表达式是非法B)程序段是无限循环C)运行程序段后输出0D)运行程序段后输出115、若变量已正确定义,要求以下程序段完成6!的运算,不能完成的程序段是(D)。A)B)i=1;i=1;x=1;x=1;while(i=6)dox=x*i;x=x*i;i+;i+;while(i=6);C)D)for(x=1,i=1;i=6;i+)for(i=1;i=6;i+)x=x*i;x=1;x=x*i;16、设n为整型变量,则for(n=10;n=0;n-)循环次数为(C)A)9B)10C)11D)1217、对表达式for(表达式1;表达式3)可以理解为(B)A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)18、下面的程序运行结果是(B)#includevoid main()int x=10;dox-;while(-x);printf(%dn,x-);A)-1B)0C)1D)8二填空题1下面程序的输出结果是16.00,请填空。#includevoid main()int a=9,b=2;float x=6.6,y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);2下面程序输出的结果是Z。#includevoid main()char c=A;printf(“%c”,c+25);3有以下程序。#includevoid main()char a,b,c,d;scanf(“%c,%c,%d,%d”,&a,&b,&c,&d);printf(“%c,%c,%c,%cn”,a,b,c,d);若从键盘上输入5,6,65,66。则输出结果是5,6,A,B。4已知字母A的ASCII值是65,运行下面程序时输入B35,输出结果是1F。#includemain()char a,b;a=getchar ();scanf(“%d”,&b);a=a-A+0;b=b*2;printf(“%c%cn”,a,b);5下面程序的输出结果是22。#includevoid main()int x=13,y=22;printf(“%d”,y/=(x%=6);6下列程序的功能是把从键盘上输入的整数取绝对值后输出。#includevoid main()int x;scanf(“%d”,&x);if(x0)x=-x;printf(“%dn”,x);7下面程序的输出结果是9。#includevoid main()int a=3,b=6,c=9;a=ab?a:b;a=ac?a:c;printf(“%d”,a);8从键盘用数字输入月份,然后用英文单词输出显示月份。#includevoid main()int month;char ch;while(1)printf(“n please inputmonth(1-12):”);scanf(“%d”,&month);switch(month)case1:printf(“Januaryn”);break;case2:printf(“Februaryn”);break;case3:printf(“Marchn”);break;case4:printf(“Apriln”);break;case5:printf(“Mayn”);break;case6:printf(“Junen”);break;case7:printf(“Julyn”);break;case8:printf(“Augustn”);break;case9:printf(“Septembern”);break;case10:printf(“Octobern”);break;case11:printf(“Novembern”);break;case12:printf(“Decembern”);break;default:printf(“inputdataerrorn”);getchar ();printf(“ncontinue?(Y/N):);ch=getchar ();if(ch!=y&ch!=Y)break;9下面程序的输出结果是!。#includevoid main()int x=1,y=0;switch(x)case1:switch(y)case0:printf(“!n”);break;case1:printf(“n”);break;break;case2:printf(“#n”);10下面程序的输出结果是27。#includevoid main()int sum=0,i;for(i=1;i=4;i+)switch(i)case0:case1:sum=sum+2;case2:case3:sum=sum+3;default:sum=sum+4;printf(“%d”,sum);11下面程序的输出结果是3,3,3。#includevoid main()int i=2,j=2,k=3;if(j+|k+)&i+)printf(“%d,%d,%dn”,i,j,k);12若从键盘输入15,则下面程序输出的结果是151515。#includevoid main()int x;scanf(“%d”,&x);if(x10)printf(“%d”,x);if(x8)printf(“%d”,x);if(x6)printf(“%d”,x);13、下面程序的输出结果是0。#includevoid main()int i,t=1;for(i=5;i=0;i-)t=t*i;printf(%dn,t);14、下面程序的输出结果是D。#includevoid main()char ch;while(ch=getchar ()!=n)if(ch=a&ch=z)ch=ch-32;printf(%c,ch);输入容:d15、下面的程序为大写字母转换为小写字母。#includevoid main()char ch;while(ch=getchar ()!=n)if(ch=A&ch=Z)ch=ch+32;printf(%cn,ch);16、输入某班级10名同学5门课程的成绩,分别统计每个学生5门课程的平均成绩。#includevoid main()int i,j;float grade,sum,average;for(i=1;i=10;i+)sum=0;for(j=1;j=5;j+)scanf(%f,&grade);sum=sum+grade;average=sum/5;printf(No.%daverage=%5.2fn,i,average);17、输入若干字符数据,分别统计其中A,B,C的个数。#includevoid main()char c;int k1=0,k2=0,k3=0;while(c=getchar ()!=n)switch(C)caseA:k1+;break;caseB:k2+;break;caseC:k3+;break;printf(A=%d,B=%d,C=%dn,k1,k2,k3);18、下面程序是将从键盘输入的小写字母转变成大写字母。#includevoid main()int c;while(c=getchar ()!=n)if(c=a&c=z)putchar (c-a+A);elseputchar (C);19、输出如下方阵。12345678910111213141516#includevoid main()int i,j,x;for(i=1;i=4;i+)for(j=1;j=4;j+)x=(i-1)*4+j;printf(%4d,x);printf(n);/*第一行输出j加0的值,第二行输出的是j加4,第三行输出的是j加8,第四行输出的是j加12,0、4、8、12由(i-1)*4求得*/三改错题1、下面程序的功能是判断某一年是否闰年。#includevoid main()int year,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”);错误语句:if(year%400!=0)正确语句:if(year%400=0)2下面的功能是输出一个4位整数的后两位数值,例如输入1234,输出34。#includevoid main()int x,y;printf(“n input a integer:”);scanf(“%d”,x);y=x%100;printf(“%dn”,y);错误语句:scanf(“%d”,x);正确语句:scanf(“%d”,&x);3输入三个整数,输出其中最大的数。#includevoid main()int a,b,c,temp,max;scanf(“%d,%d,%d”,&a,&b,&c);temp=(ab)?a:b;max=(tempc)?temp:c;printf(“max=%dn”,max);错误语句:max=(tempc)?temp:c;4下面程序判断输入的一个整数是否能被5和7同时整除,若能整除,输出“YES”,否则,输出“NO”。#includevoid main()int x;scanf(“%d”,&x);if(x%5=0|x%7=0)printf(“YES”);elseprintf(“NO”);错误语句:if(x%5=0|x%7=0)正确语句:if(x%5=0&x%7=0)5、求10到100之间能被3整除的数的个数。#includevoid main()int i,num;for(i=10;i100;i+)if(i%3=0)num+;printf(nThereare%dnumbers!,num);错误语句:int i,num;正确语句:int i,num=0;6、用/41-1/3+1/5-1/7+公式求的近似值,直到某一项的绝对值小于10-6为止。#include#includevoid main()int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)10-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(pi=%10.6fn,pi);错误语句:while(fabs(t)10-6)正确语句:while(fabs(t)1e-6)7、求Fibonacci数列前40个数。这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。#includevoid main()int f1,f2;int i;f1=1;f2=1;for(i=1;i=40;i+)printf(%15ld%15ld,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;错误语句:for(i=1;i=40;i+)正确语句:for(i=1;i=20;i+)四编程题1从键盘输入一个圆的半径,输出圆的面积。输出时要有文字说明,取小数点后2位。#includevoid main()float r,s;scanf(“%f”,&r);s=3.14*r*r;printf(“s=%.2f”,s);2输入一个整数,判断是奇数还是偶数。#includevoid main()int i;scanf(“%d”,&i);if(i%2=0)printf(“%d是一个偶数”,i);elseprintf(“%d是一个奇数”,i);3从键盘输入一个三角形的边长,输出三角形面积,取2位小数。当三角形不成立时输出“它不是一个三角形”。#include#includevoid main()float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if(a+bc&b+ca&c+ab)s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%.2fn”,area);elseprintf(“它不是一个三角形”);4从键盘输入一个字符,判断其是否是大写字母,如果是大写字母,则转换为小写字母,否则不转换。#includevoid main()char c;c=getchar ();if(c=A&c=Z)c=c+32;printf(“%c”,c);5从键盘输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中A对应的是90分(含90分)以上的成绩,B对应的是8089分的成绩,C对应的是7079的成绩分,D对应的是6069分的成绩,E对应的是小于60分的成绩。如果输入的数值小于0或大于100要有“输入成绩错误”的信息显示。#includevoid main()int score,c;scanf(“%d”,&score);c=score/10;switch(C)case0:case1:case2:case3:case4:case5:printf(“E”);break;case6:printf(“D”);break;case7:printf(“C”);break;case8:printf(“B”);break;case9:case10:printf(“A”);break;default:printf(“error”);6、编写程序,求123200。#includevoid main()int i,s;i=1;s=1;for(i=1;i=200;i+)s=s+i;printf(1+2+3+200=%dn,s);运行结果:201017、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前20项之和。#includevoid main()int i,temp;float f2=2,f1=1,sum=0;for(i=1;i=20;i+)sum=sum+f2/f1;temp=f2;f2=f2+f1;f1=temp;printf(sum=%9.6fn,sum);运行结果:32.6602598、求1!+2!+3!+4!+20!#includevoid main()int i;float sum=0,f=1;for(i=1;i=20;i+)f=f*i;sum=sum+f;printf(sum=%en,sum);运行结果:2.561327e+0189、用牛顿迭代法求方程4x3-8x2+6x-12=0在1.5附近的根。#include#includevoid main()float x=1.5,x0,y,f1;dox0=x;y=(4*x0-8)*x0+6)*x0-12;f1=(12*x0-16)*x0+6;(f1是导数)x=x0-y/f1;while(fabs(x-x0)=1e-6);printf(x=%10.2fn,x);运行结果:x=2.0010、编写程序,打印出以下图案。*#includevoid main()int i,j,k
展开阅读全文