`
igf80igf
  • 浏览: 18824 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

c 试题

阅读更多

c 试题
2010年06月02日
  .1 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是
  A) a=b=c=100; B) d++; C) c+b; D) d=(c=22)-(b++);
  答案:C
  3.2 以下选项中不是C语句的是
  A) {int i; i++; printf("%d\n", i); } B) ; C) a=5,c=10 D) { ; } 答案:C
  3.3 以下合法的C语言赋值语句是
  A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) --i; 答案:D
  3.4 以下程序的输出结果是
  A) 0 B) 1 C) 3 D)不确定的值 main() { int x=10,y=3; printf("%d\n", y=x/y); } 答案:C
  3.5 若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是
  A) read(a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%D%D%D",&a,&b,&c); D) scanf("%d%d%d",&a,&b,&c);
  答案:D
  3.6 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予
  33,以下不正确的输入形式是
  A) 10 22 33 B) 10.0,22.0,33.0 C) 10.0 22.0 33.0 D) 10 22
  33 scanf("%f %f %f", &a, &b, &c);
  答案:B
  3.7 若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是
  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;
  答案:C
  3.8 若变量已正确定义,以下程序段的输出结果是
  A) 输出格式说明与输出项不匹配,输出无定值 B) 5.17000 C) 5.168000 D) 5.169000 
  x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(float)1000); 
  答案:D
  3.9 若有以下程序段,c3中的值是
  A) 0 B) 1/2 C) 0.5 D) 1 
  int c1=1,c2=2,c3; c3=c1/c2; 
  答案:A
  3.10 若有以下程序段,其输出结果是
  A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10 
  int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c); 
  答案:B
  3.11 当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是
  A) a=98,b=765,c=4321
  B) a=10,b=432,c=8765
  C) a=98,b=765.000000,c=4321.000000
  D) a=98,b=765,c=4321.0 
  main() { int a; float b,c; scanf("-?O",&a,&b,&c); printf("\na=%d,b=%f,c=%f\n",a,b,c); } 
  答案:C
  3.12 以下程序的输出结果是
  A) a=%2,b=%5
  B) a=2,b=5
  C) a=%%d,b=%%d
  D) a=%d,b=%d 
  main() { int a=2,b=5; printf("a=%%d,b=%%d\n",a,b); } 
  答案:D
  3.13 若int类型占两个字节,则以下程序段的输出是 A) -1,-1 B) -1,32767 C) -1,32768 D) -1,65535 
  int a=-1; printf("%d,%u\n",a,a); 
  答案:D
  3.14 以下程序段的输出是 A) *496 * B) * 496* C) *000496* D)输出格式符不合法 
  int x=496; printf("*%-06d*\n",x); 
  答案:A
  3.15 以下程序段的输出是 A) |3.1415| B) | 3.0| C) | 3| D) | 3.| 
  float a=3.1415; printf("|%6.0f|\n",a); 
  答案:C
  3.16 以下程序段的输出是 A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678| printf("|.5f|\n",12345.678); 
  答案:C
  3.17 以下程序段的输出是 A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666; printf("*0.2f*\n",a); 
  答案:C
  3.18 若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是 A) scanf("%f",c); B) scanf("%8.4f",&c); C) scanf("%6.2f",&c); D) scanf("%8",&c); 283.1900 表示Enter键 
  答案:由于印刷错误,本题没有正确答案。改正意见: 把选项A改为:scanf("%f",&c);或者把选项D改为:scanf("",&c);则可分别选择A或者D为正确答案。
  3.19 若变量已正确说明,要求用以下语句给a赋予
  3.12、给b赋予9.0,则正确的输入形式是(□代表空格) A) 3.12□□9.0 B) a=□□3.12b=□□□9 C) a=3.12,b=9 D) a=3.12□□,b=9□□□□ scanf("a=%f,b=%f",&a,&b); 表示Enter键 答案:C
  3.20 以下程序的输出结果是
  A) 9 8 B) 8 9 C) 6 6 D) 以上三个都不对 
  #include "math.h" main() { double a=-3.0, b=2; printf("%3.0f %3.0f\n",pow(b,fabs(a)),pow(fabs(a),b)); } 
  答案:B
  二、填空题 
  3.21 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。 (1)____(2)____(3)____ int i=-200,j=2500; printf("(1) %d %d",i,j); printf("(2) i=%d, j=%d\n",i,j); printf("(3) i=%d\n j=%d\n",i,j); 
  答案: -200 2500 i=-200, j=2500 i=-200 j=2500
  3.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf("%d",&i); scanf("%d",&j); scanf("%d",&k); 当执行第一个输入语句,从键盘输入: 12.3 表示Enter键则变量i、j、k的值分别是____、____、____。 
  答案:12、0、0
  3.23 复合语句在语法上被认为是____。空语句的形式是____。
  答案:一条语句、 ;
  3.24 C语句的最后用____结束。 答案:;
  3.25 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式____、_____、____。 int k; float a; double x; scanf("%d%f%lf",&k,&a,&x); printf("k=%d,a=%f,x=%f\n",k,a,x); 
  答案: (1) 100 25.81 1.89234 (2) 100 25.811.89234 (3) 100 25.81 1.89234
  3.26 以下程序段的输出结果是____。 int x=0177; printf("x==,x=m,x=$%6o,x=%6x,x=%6u\n",x,x,x,x,x); 
  答案:x=127,x= 127,x= 177,x= 7f,x= 127
  3.27 以下程序段的输出结果是____。 int x=0177; printf("x=%-3d,x=%-6d,x=$%-06d,x=$d,x=%d\n",x,x,x,x,x); 
  答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=d 
  3.28 以下程序段的输出结果是____。 double a=513.789215; printf("a=%8.6f,a=%8.2f,a=.8f,a=.8lf\n",a,a,a,a); 
  答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500
  第二章 C程序设计的初步知识
  一、选择题
  2.1 以下选项中正确的整型常量是
  A)12. B)-20 C)1,000 D)4 5 6
  答案:B
  2.2 以下选项中正确的实型常量是
  A)0 B)3. 1415 C)0.329×10(2)(10的2次方) D).871
  答案:D
  2.3 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2
  答案:B
  2.4 以下选项中不合法的用户标识符是
  A)abc.c B)file C)Main D)PRINTF
  答案:A
  2.5 以下选项中不合法的用户标识符是
  A)_123 B)printf C)A$ D)Dim 答案:C 2.6 C语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)**
  答案:A
  2.7 可在C程序中用作用户标识符的一组标识符是
  A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG
  答案:B
  2.8 若变量已正确定义并赋值,符合C语言语法的表达式是
  A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
  答案:B
  2.9 以下叙述中正确的是
  A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。
  B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。
  C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
  D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。
  答案:B
  2.10 以下叙述中正确的是
  A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。
  B)C程序由主函数组成。
  C)C程序由函数组成。
  D)C程序由函数和过程组成。
  答案:C
  2.11 TURBO C中int类型变量所占字节数是
  A)1 B)2 C)3 D)
  4 答案:B
  2.12 不合法的八进制数是
  A)0 B)028 C)077 D)01
  答案:B
  2.13 不合法的十六进制数是 A)oxff B)0Xabc C)0x11 D)0x19
  答案:A
  二、填空题 
  2.14 若k为int整型变量且赋值11。请写出运算k++后表达式的值A)_____和变量的值B)_____。
  答案:11、
  12 2.15 若x为double型变量,请写出运算x=3.2,++x后表达式的值A)_____和变量的值B)_____。
  答案:4.2、4.2
  2.16 函数体由符号____开始,用符号____结束。函数体的前面是____部分,其后是____部分。
  答案:{、}、定义、执行
  2.17 C语言中的标识符可分为____、____、和预定义标识符三类。
  答案:关键字、用户标识符
  2.18 在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。 答案:int、float、double
  2.19 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。
  答案:float a1=1.0,a2=1.0;
  2.20 C程序中定义的变量,代表内存中的一个____。
  答案:存储单元
  2.21 表达式3.5+1/2的计算结果是____。
  答案:3.5
  2.22 对以下数学式,写出三个等价的C语言表达式____、____、____。 a×b ―― c 答案:a*b/c、a/c*b、b/c*a 2.23 表达式s=10应当读做“____”。
  答案:将10赋给变量s
  2.24 计算机中内存储器的最小存储单位称____,其中能容纳的数是____。 答案:位、0或1
  2.25 通常一个字节包含____个二进制位。在一个字节中能存放的最大(十进制)整数是____,它的二进制数的形式是____;最小(十进制)整数是____,它的二进制数的形式是____。
  答案:8、
  255、1111 1111、-128、1000 0000
  2.26 当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是____、最小(十进制)整数是____,它的二进制数的形式是____。
  答案:65535、-32768、1000 0000 0000 0000
  2.27 在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。
  答案:十、八、十六
  一、选择题 
  1.下述标识符中,()是合法的用户标识符。 
  A.A#C        B.getch        C.void        D.ab* 
  2.在C语言中,字符型数据在内存中是以()形式存放的。 
  A.原码        B.BCD码        C.反码        D.ASCII码 
  3.以下选项中不合法的用户标识符是()。 
  A.abc.c        B.file        C.Main        D.PRONTF 
  4.以下选项中不合法的用户标识符是()。 
  A.123        B.printf        C.A$        D.Dim 
  5.可以在C语言程序中用做用户标识符的一组标识符是()。 
  A.void        B.as-b3        C.for        D.2c 
  define        -123           -abc         Do 
  WORD          If             cas          SIG 
  6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 
  (1)A.001        B.table_1        C.0_t        D.k% 
  Int           t*.1             W10          point 
  (2)A.Fast_      B.void           C.pbl        D. 
  Fast+Big      abs              fabs         beep 
  (3)A.xy_        B.longdouble     C.*p         D.CHAR 
  变量1        signed           history      Float 
  7.()是构成C语言的基本单位。 
  A.函数        B.过程        C.子程序        D.子例程 
  8.若有说明:char s1=’\067’;char s2="1";char s3=’1’;则s1中(1),s2中(2),s3中(3)。 
  (1).A.包含3个字符            B.包含2个字符 
   C.包含1个字符            D.无定值,说明不合
  2).A.包含1个字符            B.包含2个字符
   C.包含3个字符            D.无定值,说明不合法
  (3).A.包含1个字符            B.包含2个字符
   C.包含3个字符          D.无定值,说明不合法
  9.若x为int型变量,则执行以下语句后,x的值为
  x=6;
  x+=x-=x*x
  A.36        B.-60        C.60        D.-24
  10.在C语言中,char 型数据在内存中是以()形式存储的。
  A.原码        B.补码        C.ASCII码        D.反码
  11.以下运算符中优先级最低的算符为(),优先级最高的为()。
  A.&&        B.&        C.|=        D.||            E.?:        F.!=
  12.若有运算符 >、*=、   %   sizeof
  B.   %   sizeof
  C.*=   >      语言的程序一行写不下时,可以
  A.用逗号换行                B.用分号换行
  C.在任意一空格处换行        D.用回车符换转
  16.下述标识符中,()是合法的用户标识符。
  A.A#C        B.getch
  C.void       D.ab*
  17.在C语言中,字符型数据在内存中是以()形式存放。
  13.若有以下类型说明语句
  char w; int x; float y; double z;
  则表达式 w*x+z-y 的结果是()类型。
  A.float        B.char        C.int        D.double
  14.若 w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。
  w=5;  x=4;
  y=w++*w++*w++;
  z=--x*=--x*--x;
  (1)A.8        B.7        C.6        D.24
  A.4        B.3        C.2        D.1
  A.150      B.125      C.210      D.336
  A.64       B.1        C.6        D.24
  15.C语言的程序一行写不下时,可以
  A.用逗号换行                B.用分号换行
  C.在任意一空格处换行        D.用回车符换行
  16.下述标识符中,()是合法的用户标识符。
  A.A#C        B.getch
  C.void       D.ab*
  17.在C语言中,字符型数据在内存中是以()形式存放。
  A.原码        B.BCD
  C.反码        D.ASCII码
  18.()是非法的C语言转义字符。
  A.’\b’        B.’\0xf’
  C.’\037’      D.’\’’
  19.语句 char s=’\092’;的作用是
  A.s包含1个字符                B.说明不合法, s的值不定。
  C.使 s包含4个字符             D.使 s包含3个字符
  20.在C语言中,int,char,和short三种类型数据所占用的内存
  A.均为2个字节                    B.由用户自己定义
  C.由所用机器的机器字长决定        D.是任意的
  21.高性能int类型的数据长度为2个字节,则 unsigned int 类型数据的取值范围是
  A.0~255            B.0~65535
  C.-32768~32767     D.-256~255
  22.以下()是不正确的转义字符。
  A.’\\’        B.’\’
  C.’081’       D.’\0
  23.一个C语言的程序是由()组成
  A.主程序            B.子程序
  C.函数             D.过程
  24.一个C语言的程序总是从()开始的。
  A.主过程            B.主函数
  C.子程序            D.主程序
  25.一个C语言的程序是由
  A.一个主程序和若干个子程序组成            B.函数组成
  C.若干过程组成                            D.若干子程序组成
  26.以下述叙不正确的是
  A.一个C源程序可以由一个或多个函数组成
  B.一个C源程序必须包含一个main函数
  C.C程序的基本组成单位是函数
  D.在C程序中注释说明只能位于一条语句的后面
  27.C语言中规定:在一个源程序中main函数的位置
  A.必须在最开始                B.必须在系统调用的库函数的后面
  C.可以任意                    D.必须在最后
  28.一个C程序的执行是从
  A.本程序的main函数开始,到main函数结束
  B.本程序文件的第一个函数开始,到本程序的最后一个函数结束
  C.本程序的main函数开始,到本程序的最后一个函数结束
  D.本程序文件的第一个函数开始,到本程序main函数结束
  29.以下述叙正确的是
  A.在C程序中,main函数必须位于程序的最前面
  B.C程序的每行中只能写一条语句
  C.C语言本身没有输入输出语句
  D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
  二、填空题
  1.将下列给出的常量分别归类到:整型常量、浮点常量和字符型常量
  (1)0x7a        (2)078        (3)6a        (4)57L
  (5)’m’         (6)"ab6"      (7)-32       (8)3.4,256
  (9)0e0         (10).e0       (11)-3.1e-5  (12)2e0
  (13)0.012e003  (14)’\"’      (15)’xy’     (16)" "
  (17)"\nab\t"   (18)’\"’      (19)’\07’    
  2.指出下列标识符中哪些是非法的
  (1)a_Char        (2)b22c        (3)286pc        (4)-am
  (5)_7b           (6)ab#         (7)Max_1        (8)__Star
  (9)*itm          (10)To-2       (11)for         (12)"tt
  3.C源程序的基本单位是____。
  4.一个C源程序中至少应包含一个_____。
  5.在一个C源程序中,注释部分二侧的分界符分别为___和___。
  6.在C语言中,输入操作是由库函数____完成的,输出操作是由库函数____完成的。
  答案:
  一、选择题
  1、 B        2.D        3.A        4.C        5.A
  6. (1)A,(2)C (3)D       7. C       8. (10C (2)D (3)A
  9. B        10.C        11.C, F    12. D
  13. D        14. (1)A,(2)D, (3)B,(4) B
  15. C        16. B        17.D        18. B
  19. B        20. C        21. B        22.C
  23. C        24. B        25.B        26. D
  27. C        28. A        29. C
  二、填空题
  1、整型常量有(1)  (4)
  浮点型常量有: (9)  (12)  (13)  (14)
  字符型常量有: (5)  (6)  (16)  (17)  (18)  (19)  (20)
  2、非法标识符有: 3)  (4)  (6)  (9)  (10)  (12)
  3、函数
  4、主函数
  5、(1)/*  (2)*/
  6、(1)scanf   (2)printf
  下面是编程经典32 题
  【程序1】程序源代码:
  main()
  {
  int i,j,k;
  printf("\n");
  for(i=1;i调试好的.
  程序2代码:
  #include "stdio.h"
  void main()
  { long int i;
  double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
  scanf("%ld",&i);
  bonus1=100000*0.1;
  bonus2=bonus1+100000*0.075;
  bonus4=bonus2+200000*0.05;
  bonus6=bonus4+200000*0.03;
  bonus10=bonus6+400000*0.015;
  if (i2)/*如果是闰年且月份大于2,总数天数应该加1*/
  sum++;
  printf ("It is the %dth day.",sum);
  }
  【程序5】
  题目:输入三个整数x,y,z,请把这三个数由小到大输出。
  1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
  #include "stdio.h"
  void main()
  {
  int x,y,z,t;
  printf("请输入3个整数:\n");
  scanf("%d,%d,%d",&x,&y,&z);
  if (x>y)
  {t=x;x=y;y=x;}
  if (x>z)
  {t=x;x=z;z=t;}
  if (y>z)
  {t=y;y=z;z=t;}
  printf("你输入3个数从小到大的顺序为:%d,%d,%d\n",x,y,z);
  }
  程序6】
  题目:用*号输出字母C的图案。
  1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
  不要说简单哦,慢慢来,熟能生巧嘛~~~~~~~~
  #include "stdio.h"
  void main ()
  {
  printf ("Hello C---world!\n");
  printf (" *****\n");
  printf (" *\n");
  printf (" *\n");
  printf (" *****\n");
  }
  下面这一题我运行的时候处出现几个汉字外,并没有像题目说的那样Very Beautiful!.同志们看看你们的结果是什么.
  程序7】
  题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
  1.程序分析:字符共有256个。不同字符,图形不一样。
  #include "stdio.h"
  void main ()
  {
  char a=176,b=219;
  printf("%c%c%c%c%c\n",b,a,a,a,b);
  printf("%c%c%c%c%c\n",a,b,a,b,a);
  printf("%c%c%c%c%c\n",a,a,b,a,a);
  printf("%c%c%c%c%c\n",a,b,a,b,a);
  printf("%c%c%c%c%c\n",b,a,a,a,b);
  }
  【程序8】
  题目:输出9*9口诀。
  1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
  #include "stdio.h"
  void main ()
  {
  int i,j,result;
  printf ("\n");
  for (i=1;i=3)
  分析到这我们做题目就不会有多大的难度了 :
  11题程序为:
  main()
  {
  long int f1,f2;
  int i;
  f1=1;f2=1;
  for (i=1;ik,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
  重复执行第一步。
  (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
  #include "stdio.h"
  void main()
  {int n,i;
  printf("\nplease input a number :\n");
  scanf("%d",&n);
  printf("%d=",n);
  for(i=2;i=90分的同学用A表示,60-89分之间的用B表示,
  60分以下的用C表示。
  1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
  #include "stdio.h"
  void main()
  {int chji;
  char biaosi;
  printf("Please input a chji:\n");
  scanf("%d",&chji);
  biaosi=chji>=90?'A'chji>=60?'B':'C');
  printf("%d belongs to %c\n",chji,biaosi);
  }
  【程序16】
  题目:输入两个正整数m和n,求其最大公约数和最小公倍数
  第16题
  #include
  #include
  #include
  #include "math.h"
  main()
  {
  int a,b,c=1,i,temp;
  printf("输入2个正整数:");
  scanf("%d%d",&a,&b);
  if(a>b)
  {
  temp=a;
  a=b;
  b=temp;
  }
  for(i=2;i='a'&&c='A'&&c='0'&&c0)
  {
  i=(j+1)*2;
  j=i;
  day--;
  }
  printf("the total is %d\n",i);
  }
  【程序22】
  题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
  比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
  三队赛手的名单。
  1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
  则表明此数不是素数,反之是素数。   
  #include
  void main ()
  {
  char i,j,k;/*i是a的对手,j是b的,k是c的*/
  for (i='x';i<='z';i++)
  for (j='x';j<='z';j++)
  {if (i!=j)
  for (k='x';k<='z';k++)
  {if (i!=k&&j!=k)
  {if (i!='x'&&k!='x'&&k!='z')
  printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
  }
  }
  }
  }
  【程序23】
  题目:打印出如下图案(菱形)
  *
  ***
  ******
  ********
  ******
  ***
  *
  1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重
  for循环,第一层控制行,第二层控制列。
  这个题用数组:
  #include
  void main ()
  {
  char lingxing[][7]={{' ',' ',' ','*'},{' ',' ','*','*','*'},{' ','*','*','*','*','*'},
  {'*','*','*','*','*','*','*'},{' ','*','*','*','*','*'},{' ',' ','*','*','*'},{' ',' ',' ','*'}};
  int i,j;
  for (i=0;i<7;i++)
  { for (j=0;j<7;j++)
  printf("%c",lingxing[j]);
  printf("\n");
  }
  }
  还可以这样:#include
  void main ()
  {
  int i,j,k;
  for (i=0;i<=3;i++)
  {
  for (j=0;j=2-i;j++)
  printf(" ");
  for (k=0;k<=2*i;k++)
  printf("*");
  printf("\n");
  }
  for (i=0;i<=2;i++)
  {
  for (j=0;j<=i;j++)
  printf(" ");
  for (k=0;k<=4-2*i;k++)
  printf("*");
  printf("\n");
  }
  }
  用函数调用也可以,自己试试.
  【程序24】
  题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
  1.程序分析:请抓住分子与分母的变化规律。
  #include
  void main ()
  {int n,t,number=20;
  float a=2,b=1,s=0;
  for (n=1;n<=number;n++)
  {
  s+=a/b;
  t=a;a+=b;b=t;//这一步是关键
  }
  printf("sum is %9.6f\n",s);
  }
  【程序25】
  题目:求1+2!+3!+...+20!的和
  1.程序分析:此程序只是把累加变成了累乘。
  #include
  void main ()
  {
  float n,s=0,t=1;
  for (n=1;n<=20;n++)
  {
  t*=n;
  s+=t;
  }
  printf("1+2!...+20!=%e\n",s);
  }
  还要注意溢出,大家说一下怎样判断.
  还有下面的这个题<
  程序26】
  题目:利用递归方法求5!。
  1.程序分析:递归公式:fn=fn_1*4!
  #include
  void main ()
  {
  int i;
  printf("请输入求递归的数:\n");
  scanf("%d",&i);
  int fact (int );
  printf("%d!=%d\n",i,fact(i));
  }
  int fact(int j)
  {
  int sum;
  if (j==0)
  sum=1;
  else
  sum=j*fact(j-1);
  return sum;
  }
  考虑一下怎样判断溢出呢?
  【程序27】
  题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
  #include
  char a[5];
  void f(int n)
  {
  if (n<5)
  {
  f(n+1);//注意这里是重点。好好理解哦!
  printf("%c",a[n]);
  }
  }
  void main ()
  {
  printf("Input the string(lenth is 5):");
  scanf("%s",a);
  printf("After is :");
  f(0);
  }
  【程序28】
  题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
  3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
  问第一个人,他说是10岁。请问第五个人多大?
  28 题~
  #include
  age (int n)
  {
  int c;
  if (n==1)
  c=10;
  else
  c=age(n-1)+2;
  return (c);
  }
  void main ()
  {
  printf("%d",age(5));
  }
  程序29】
  题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
  #include
  main( )
  {
  long a,b,c,d,e,x;
  scanf("%ld",&x);
  a=x/10000;/*分解出万位*/
  b=x%10000/1000;/*分解出千位*/
  c=x%1000/100;/*分解出百位*/
  d=x%100/10;/*分解出十位*/
  e=x%10;/*分解出个位*/
  if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
  else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
  else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
  else if (e!=0) printf(" there are 1,%ld\n",e);
  }
  【程序30】
  题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
  #include
  main( )
  {
  long a,b,c,d,e,x;
  scanf("%ld",&x);
  a=x/10000;/*分解出万位*/
  b=x%10000/1000;/*分解出千位*/
  c=x%1000/100;/*分解出百位*/
  d=x%100/10;/*分解出十位*/
  e=x%10;/*分解出个位*/
  if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
  else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
  else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
  else if (e!=0) printf(" there are 1,%ld\n",e);
  }
  【程序30】
  题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
  #include
  main( )
  {
  long ge,shi,qian,wan,x;
  scanf("%ld",&x);
  wan=x/10000;
  qian=x%10000/1000;
  shi=x%100/10;
  ge=x%10;
  if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
  printf("this number is a huiwen\n");
  else
  printf("this number is not a huiwen\n");
  }
  程序31】
  题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
  判断第二个字母。
  #include
  #include "conio.h" //getch 的头文件。
  void main ()
  {
  char letter;
  printf("Please input the first letter of someday\n");
  while ((letter=getch())!='Y')
  {switch (letter)
  {
  case 'S'rintf("please input second letter\n");
  if ((letter=getch())='a')
  printf("saturday\n");
  else
  if((letter=getch())='u')
  printf("sunday\n");
  else printf("data error\n");
  break;
  case 'F'rintf("friday\n");
  break;
  case 'M'rintf("monday\n");
  break;
  case 'T'rintf("please input second letter\n");
  if((letter=getch())='h')
  printf("thursday\n");
  else
  if ((letter=getch())='u')
  printf("tuesday\n");
  else printf("data error\n");
  break;
  case 'W'rintf("wednesday\n");
  break;
  defaultrintf("data error\n");
  }
  }
  }
  【程序32】
  题目:Press any key to change color, do you want to try it. Please hurry up!
  这个题目在TC中可以运行,在VC中运行不行,谁知道可以告诉我.谢谢!
  2.程序源代码:
  #include
  void main(void)
  {
  int color;
  for (color = 0; color < 8; color++)
  {
  textbackground(color);/*设置文本的背景颜色*/
  cprintf("This is color %d\r\n", color);
  cprintf("Press any key to continue\r\n");
  getch();/*输入字符看不见*/
  }
  }
  33题目:求100之内的素数
  #include
  #include "math.h"
  void main ()
  {
  int m,i,k,h=0,leap=1;
  printf("\n");
  for (m=1;m<=100;m++)
  {
  k=sqrt(m
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics