1、1一、编程大题1.有一函数:当 x0 时,y=1 。编一程序,输入 x 的值,输出 y 的值。#includeint main()int x,y;scanf(“%d“,if (x=0)if (x0) y=1;else y=0;else y=-1;printf(“x=%d,y=%dn“,x,y);return 0;2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。#include int main() float a,b,c,t;scanf(“%f,%f,%f“,if(aint main()int a,b,c,max;printf(“请输入 a,b,cn“);scanf(“%d,
2、%d,%d“,max=a;if(maxvoid main()float r, l, s;float pi=3.1415926; printf(“表输入圆半径 r:“); scanf(“%f“, l=2*pi*r; s=pi*r*r; printf(“圆周长为:l=%6.2fn“, l); printf(“圆面积为:s=%6.2fn“, s); 5.有分段函数:当 x10 时,y=sqrt(x)。编一程序,输入 x 的值,输出 y 的值。#includeint main()int x,y;scanf(“%d“,if(xint main()int year,leap;printf(“enter y
3、ear:“); scanf(“%d“,if (year%4=0)if(year%100=0)if(year%400=0) leap=1;else leap=0;else leap=1;else leap=0;if (leap) printf(“%d is “,year);else printf(“%d is not “,year);printf(“a leap year.n“);return 0;7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)3#include int main()float c,f; printf(“请输入一个华
4、氏温度 :“);scanf(“%f“, c=(5.0/9.0)*(f-32); printf(“摄氏温度为:%5.2fn“,c);return 0; 8.有一函数:当 x=10 时,y=3x+11 。编一程序,输入 x 的值,输出 y 的值。#include #include void main()int x, y; printf(“输入 x:“);scanf(“%d“, if (x*p2) t=p1;p1=p2;p2=t; if(*p1*p3) t=p1;p1=p3;p3=t; if(*p2*p3) t=p2;p2=p3;p3=t; printf(“%d,%d,%dn“,*p1,*p2,*p
5、3); 10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。#include void main ( )4char ch; scanf(“%c“, ch=(ch=Afloat pi=3.1415926; printf(“表输入圆半径 r、圆柱高 h:“); scanf(“%f%f“, v=pi*r*r*h; s=2*pi*r*r+2*pi*r*h; printf(“圆柱体积为:v=%6.2fn“, v); printf(“圆柱表面积为:s=%6.2fn“, s); 12. 编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出
6、时要求有文字说明,取小数点后两位数字。#include void main()float r, h, v, s;float pi=3.1415926; printf(“表输入圆半径 r、圆柱高 h:“); scanf(“%f%f“, v=pi*r*r*h; s=2*pi*r*r+2*pi*r*h; printf(“圆柱体积为:v=%6.2fn“, v); printf(“圆柱表面积为:s=%6.2fn“, s); 13.有三个整数 a,b,c ,由键盘输入,输出其中最小者。#includeint main()int a,b,c,max;printf(“请输入 a,b,cn“);scanf(“%
7、d,%d,%d“,max=a;if(maxb)max=b;if(maxc)max=c;printf(“最小的数为%dn“,max);return 0;514.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include void main ( )char ch; scanf(“%c“, ch=(ch=Ascanf(“%f%f%f“, s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“%fn“,area); 16.编程求 2!+4!+6!+8!+10!的值,并输出结果。#includ
8、e int main()int n=1,sum=0,j,m=1,i; for(i=1;iint main()int day,x1,x2;day=9;6x2=1;while(day0)x1=(x2+1)*2;x2=x1;day-;printf(“total=%dn“,x1);return 0;18.输出所有的“水仙花数” ,所谓“水仙花数”是指一个 3 位数,其各位数字立方和等于该数本身。#includevoid main()int i,j,k,n; printf(“narcissus numbers are“);for(n=100;n#include int main()int n,m=0,k
9、,i;for(n=1;n=k+1) printf(“%d “,n); m=m+1; if(m%10=0) printf(“n“); printf(“n“);return 0;720.编程求 1!+3!+5!+7!+9!的值,并输出结果。#include int main()int n=1,sum=0,j,m=1,i; for(i=1;i#include int main() int sign=1; double pi=0,n=1,term=1;while(fabs(term)=1e-6) pi=pi+term;n=n+2; sign=-sign; term=sign/n; pi=pi*4; p
10、rintf(“pi=%10.8fn“,pi); return 0;22.一个球从 100m 高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第 10次落地时共经过多少米?#includeint main()int i;double m=100,sum=0;for(i=0;i8void main()int p,r,n,m,temp; printf(“请输入 n 和 m: “);scanf(“%d,%d,%d“, if(nint main()int n=1,sum=0,j,m=1,i; for(i=1;iint main()int i,n=20;double a=2,b=1,s
11、=0,t;for(i=1;iint main() int f1=1,f2=1,f3; int i;printf(“%12dn%12dn“,f1,f2);for(i=1; iint main() int m,s,i;for (m=2;mint main()int a,sn=0,tn=0,k,i=1,n;printf(“a,n=:“);scanf(“%d,%d“,10while(i#include int main()int n,m=0,k,i;for(n=101;n=k+1) printf(“%d “,n); m=m+1; if(m%10=0) printf(“n“); printf(“n“);
12、return 0;30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#includevoid main()char c;int letters=0,space=0,digit=0,other=0; printf(“n“);while(c=getchar()!=n) if(c=a printf(“enter array a:n“);for(i=0;i#includevoid main()int i,s=1;float n,t,a;t=1;a=0;n=1;printf(“input n:“,n);while(ivoid main()int a23=1,2,3,4,5,6;in
13、t b32,i,j; printf(“array a:n“);for (i=0;iint main() int i,j,m;for (i=1;ixi+1) t=xi+1;xi+1=xi;xi=t; main() int y10;int i; for(i=0;ivoid main()int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for (i=0;imax) max=aij;row=i;colum=j; printf(“max=%d,row=%d,colum=%dn“,max,row,colum);
14、 37.用冒泡排序法对输入的 10 个数进行升序排序,并存入数组中。int paixu(x) int x; int i,j,t; for(j=1;jxi+1) t=xi+1;xi+1=xi;xi=t; main() int y10;int i; for(i=0;iint main() int i,j,m;for (i=0;iint main() int i,j,m;for (i=1;iint main() int i,j,m;for (i=1;ivoid main()int max(int x,int y); int a,b,c;scanf(“%d,%d“, c=max(a,b); print
15、f(“max is %dn“,c);int max(int x,int y) if(xy) return(x); elsereturn(y); 45.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入。#includevoid main()int cm(int x,int y);int cd(int x,int y);int a,b,m,n;printf(“输入两个数:“);scanf(“%d %d“,m=cm(a,b);n=cd(a,b);17printf(“最大公约数是%dn 最小公倍数%dn“,n,m);int cm(int x,
16、int y)int k;k=xy? x:y;for(;k+)if(k%x=0return(k);int cd(int x,int y)int i,j,k;k=xy? y:x;for(i=1;i。已知字母 A 的 ASCII 值为 65,下列程序运行后的输出结果是main()char a,b;a=A+5-3;b=a+6-2;printf(“%d%c“,a,b);2.下列 isprime 函数的功能是判断形参 a 是否为素数,是素数,函数返回 1,否则返回 0。请填空。int isprime(int a)int i;for(i=2;i;3.设有定义:float x=123.4567;,则执行下列语
17、句后的输出结果是printf(“%fn“,(int)(x*100+0.5)/100.0);4.若有定义:int a=4,b=5,c=6;接着顺序执行下列语句后,变量 b 中的值是。c=(a-=(b-5);c=(a%3)+(b=1);若 a 的值为 1,则表达式!a|+a 的值是 。5.下列程序的功能是:求出数组 x 中各相临两个元素的和依次存放到数组 a 中,然后输出。请填空。main()int x10,a9,i;for(i=0;i;i;for(i=0;i7.下列程序中的数组 a 包括 10 个整数元素,从 a 中第二个元素起,分别将后项减前项之差存入数组 b,并按每行 4 个输出,请填空。m
18、ain()int a10,b10,i;for(i=0;i;for(i=1;i1.下列叙述中错误的是( )A.算法正确的程序最终一定会结束。B.算法正确的程序可以有零个输出。C.算法正确的程序可以有零个输入。D.算法正确的程序对于相同的输入一定有相同的结果。B2.下列叙述中错误的是( )A.C 程序必须由一个或一个以上的函数组成。B.函数调用可以作为一个独立的语句存在。C.若函数有返回值,必须通过 return 语句返回。D.函数形参的值也可以传回给对应的实参。D3.C 语言源程序名的后缀是( )A.exeB.cC.objD.cpB4.下列叙述中错误的是( )A.用户定义的标示符允许使用关键字。
19、B.用户定义的标示符应做到“见名知意” 。C.用户定义的标示符必须以字母或下划线开头。D.用户定义的标示符中大、小写字母代表不同标示。A5.下列关于函数的叙述正确的是( )A.每个函数都可以被其他的函数调用(包含 main 函数) 。B.每个函数都可以被单独编译。C.每个函数都可以单独运行。20D.在一个函数内部可以定义另一个函数。B6.下列不合法的用户标示符是( )A.j2_keyB._intC.4dD._8_C7.下列定义变量的语句中错误的是( )A.int _int;B.double int_;C.char for;D.float us$;D8.按照 C 语言规定的用户标示符命名规则,不
20、能出现在标示符中的是( )A.大写字母B.连字符C.数字字符D.下划线B9.对于一个正常运行的 C 程序,下列叙述正确的是( )A.程序的执行总是起止于 main 函数。B.程序的执行总是从第一个函数开始,结束于 main 函数C.程序的执行总是从 main 函数开始,在最后一个函数结束D.程序的执行总是从第一个函数开始,在最后一个函数结束A10.下列叙述正确的是( )A.C 语言程序从源程序中第一个函数开始执行B.可以在程序中由用户指定一个函数作为主函数,程序将从此开始执行C.C 语言规定必须用 main 作为主函数名,程序从此开始执行,在次结束D.main 可作为用户标示符,可以命名任意一
21、个函数作为主函数C11.下列叙述正确的是( )A.C 程序中的注释只能出现在程序的开始位置B.C 程序书写格式严格,要求一行只能写一个语句C.C 程序书写格式自由,一行可以写多条语句D.用 C 语言编写的程序只能放在一个程序文件中C12.下列不合法的数值常量是( )A.011B.1e1C.8.0e0.5D.0xabcC13.可在 C 程序中用作用户标识符的一组是( )A.and _200721B.date y-m-dC.hi dr.tomD.case big1A14.下列关于 long、int 和 short 类型数据占用内存大小的叙述正确的是( )A.均占 4 个字节B.根据数据的大小来决定
22、所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定D15.设变量已正确定义并赋值,以下正确的表达式是( )A.x=y*5=x+zB.int(15.8%3)C.x=y+z+3,+yD.x=25%5.0C16.设有定义:int k=1;float f=7;则下列选项中错误的表达式是( )A.k=k=kB.-k+C.k%int(f)D.k=f=mC17.表达式 3.6-5/2+1.2+5%2 的值是( )A.4.3B.4.8C.3.3D.3.8D18.下列叙述中错误的是( )A.C 程序中的#include 和#define 行均不是 C 语句B.除逗号运算符外,赋值运算符的优先级最低C
23、.C 程序中, j+;是赋值语句D.C 程序中, +、- 、* 、%是算术运算符,可用于整型数和实型数的运算D19.下列选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是( )A.x%2=1B.x/2C.x%2!=0D.x%2=0D20.下列叙述中错误的是( )A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式加上分号就构成赋值语句C2221.下列正确定义且赋初值的语句是( )A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5B22.若变量已正确定
24、义并赋值,下列合法的语句是( )A.x=y=5B.x=n%2.5C.x+n=iD.x=5=1+4A23.以下定义正确的是( )A.int a=b=0;B.char A=65+1,b=b;C.float a=1,“b=D.double a=0.0;b=1.1;B24.有下列程序:*main()*char a1=M,a2=m;*printf(“%cn“,(a1,a2);*下列叙述正确的是( )A.程序输出 MB.程序输出 mC.格式说明符不足,编译出错D.程序运行时产生出错信息B25.有下列程序:*main()*int x,y,z;*x=y=1;*z=x+,y+,+y;*printf(“%d,%d
25、,%dn“,x,y,z);*程序运行的结果是( )A.2,3,3B.2,3,2C.2,3,1D.2,2,1C26.设有定义:int k=0;下列选项的 4 个表达式中与其他 3 个表达式的值不同的是( )A.k+B.k=k+1C.+k238.k+1A27.在 C 语言中,以下说法不正确的是( )A.在 C 程序中,整数和实数都能被准确无误的表示出来B.在 C 程序中,任何一个变量名都代表存储器的一个位置C.静态变量的生存周期与整个程序的运行期相同D.C 语言中,任何变量都必须先声明才能进行引用A28.若有以下定义和语句:*int a=010,b=0x10,c=10;*printf(“%d,%d
26、,%dn“,a,b,c);*则输出结果是( )A.8,10,10B.10,10 ,10C.8,8,10D.8,16 ,10D29.设 C 语言中,float 类型数据占 4 个字节,则 double 类型数据占( )个字节A.1B.2C.8D.4C30.以下正确的实型常量( )A.E3.4B.-12345C.2.2e0.8D.4B31.设 int 类型的数据长度为 2 个字节,则 unsigned int 类型数据的取值范围是( )A.0255B.065535C.-3276832767D.-256255B32.设 a 和 b 均为 int 型变量,且 a=6,b=11,则能使值为 3 的表达式
27、是( )A.b%(a%4)B.b%(a-a%5)C.b%a-a%5D.(b%a)-(a%4)D33.已定义变量 a 为整型,则不能正确表示 99*printf(“%dn“,(m=ab)printf(“%dn“,*(p+3);A.67B.0C.字符C的地址D.字符CB63.若有以下定义,则对 a 数组元素的正确引用是( )int a5,*p=a;A.*printf(“%c,“,b+);printf(“%dn“,b-a);A.3,229B.50,2C.2,2D.2,50C65.下列不合法的字符常量是( )。A.018B.“C.D.xccA66.下列能正确定义字符串的语句是( )A.char str
28、=064;B.char str=“kx43“;C.char str=;D.char str=“0“;D67.下列合法的字符型常量是( )A.x13B.081C.65D.“n“A68.已知大写字母 A 的 ASC|码是 65,小写字母 a 的 ASC|码是 97。下列不能将变量 c 中的大字字母转换为对应小写字母的语句是( )A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(A+C)%26-aD69.已知字符A的 ASC|码值是 65,字符变量 c1 的值是A,c2 的值是D 。执行语句 printf(“%d,%d“,c1,c2-2);后,输出结果是( )A.A,BB.A,
29、68C.65,66D.65,68C70.下列正确的字符串常量是( )A.“B.abcC.Olympic GamesD.“D71.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,下列正确的程序段是( )A.while(ch=getchar()!=N) printf(“%c“,ch);30B.while(ch=getchar()!=N) printf(“%c“,ch);C.while(ch=getchar()=N) printf(“%c“,ch);D.while(ch=getchar()=N) printf(“%c“,ch);A72.有以下程序段char ch
30、;int k;ch=a;k=12;printf(“%c,%d,“,ch,ch,k);printf(“k=%dn“,k);已知字符 a 的 ASC|十进制代码为 97,则执行上述程序段后输出结果是( )A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=12D73.有定义语句:int b;char c10;,则正确的输入语句是( )A.scanf(“%d%s“,B.scanf(“%d%s“,C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,B74.设有定义:int a; float
31、b;,执行 scanf(“%2d%f“,语句时,若从键盘输入 876543.0,a 和 b的值分别是( )A.876 和 543.000000B.87 和 6.000000C.87 和 543.000000D.76 和 543.000000B75.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,语句为变量 a1 和 a2 赋数值 10和 20,为变量 c1 和 c2 赋字符 X 和 Y。下面的输入形式中正确的是 ( )(注:代表空格字符)。A.10X20YB.10X20YC.10X20YD.10X20YA76.有下列程序段:int j; float y;char name50;scanf(“%2d%f%s“,当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为( )A.55566.0B.566.0C.7777.0