| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7086 人关注过本帖, 1 人收藏
标题:发一些C习题 大家来做做~!
只看楼主 加入收藏
Cc丶
Rank: 2
等 级:论坛游民
帖 子:71
专家分:53
注 册:2010-7-9
结帖率:100%
收藏(1)
 问题点数:0 回复次数:19 
发一些C习题 大家来做做~!
RT



习题  RX(慢慢看~嘎嘎!):
  第一章、 程序设计基本概念
一. 选择题
1. 一个C程序可以包含任意多个不同名的函数,但有且仅有一个(),一个C程序总是从它开始执行。
 (A)过程        (B)主函数     (C)函数   (D)include
2. ()是C程序的基本构成单位
   (A)函数       (B)函数和过程  (C)超文本过程     (D)子程序
3. 下列说法正确的是()
(A) 一个函数的函数体必须要有变量定义和执行部分,二者缺一不可
(B) 一个函数的函数体必须要有执行部分,可以没有变量定义
(C) 一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数
(D) 以上都不对
4. 下列说法正确的是()
(A)  main函数必须放在C程序的开头
(B)  main函数必须放在C程序的最后
(C)  main函数可以放在C程序的中间部分,即在一些函数之前在另一个函数之后,但在执行C程序时是从程序开头执行的
(D)  main函数可以放在C程序的中间部分,即在一些函数之前在另一些函数之后,但在执行C程序时是从 main函数开始的
5. 下列说法正确的是()
(A) 在执行C程序时不是从 main函数开始的
(B) C程序书写格式严格限制,一行内必须写一个语句
(C) C程序书写格式自由,一个语句可以分写在多行上
(D) C程序书写格式严格限制,一行内必须写一个语句,并要有行号
6. 在C语言中,每个语句和数据定义是用()结束
(A)句号    (B)逗号     (C)分号      (D)括号
7. 下列字符串是标识符的是()
(A)_HJ      (B)9_student   (C)long    (D)LINE 1
8. 以下说法正确的是()
(A) C语言程序总是从第一个定义的函数开始执行
(B) 在C语言程序中,要调用的函数必须在 main()函数中定义
(C) C语言程序总是从 main()函数开始执行
(D) C语言程序中的 main()函数必须放在程序的开始部分
9. ()不是C语言提供的合法关键字()
(A)switch      (B)print      (C)case      (D)default
10. C语言提供的合法关键字是()
(A)continue     (B)procedure    (C)begin     (D)append
二. 填空题
1. 一个函数由两部分组成,它们是()和()
2. 函数体一般包括()和()
3. 函数体的范围是()
4. C语言是通过()来进行输入和输出的
5. 在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个()
6. C语言的关键字都用(){大写或小字}
7. 主函数名后面的一对圆括号中间可以为空,但一对圆括号不能()

第二章、  C程序设计的初步知识
一. 选择题
1. C语言中不能用来表示整常数的进制是()
(A)十进制     (B)十六进制     (C)八进制     (D)二进制
2. 在C语言中,反斜杠字符是()
(A)\n         (B)\t          (C)\v          (D)\\
3. 在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码
(A)大32          (B)大64        (C)小32      (D)小1
4. 设d为字符变量,下列表达式不正确的是()
(A)d=97      (B)d=’a’    (C)d=”a”     (D)d=’g’
5. 10+’a’+1.5-567.345/’b’的结果是()
(A)long    (B)double    (C)int     (D)unsigned float
6. 在C语言中,运算对象必须是整型数的运算符是()
(A)%      (B)/       (C)%和/        (D)**
7. 为表示关系x>=y>=z,应使用C语言表达式()
(A)(y<=x)&&(y>=z)  (B)(x>=y)AND(y>=z)    (C)(x>=y>=z)    (D)(x>=y)&(y>=z)
8. 若欲表示在if后a不等于0的关系,则能正确表示这一关系的表达式为()
(A)a<>0     (B)!a       (C)a=0      (D)a
9. 下列常数中,合法的C常量是()
(A)”x-y”       (B)’105’     (C)’Be’      (D)7ff
10. 下列常数中,合法的C常量是()
(A)-0.    (B)’105’    (C)  ‘AB’   (D)3+5
11. 下列常数中,合法的C常量是()
(A)’\n’   (B)e-310   (C)’DEF’   (D)’1234’
12. 下列常数中,不合法的C常量是()
(A)-0x2a1  (B)lg3   (C)’[‘   (D)”CHINA”
13. 下列常数中,不合法的C常量是()
(A)-0x3b1   (B)123e+2.3   (C)’}’    (D)6e+7
14. 下列符号中,可以作为变量名的是()
(A)+a    (B)12345e    (C)a3B      (D)5e+0
15. 写出下面程序的输出结果()
 main()
{int x,y,z;
 x=y=1;
 z=x++-1;
printf(“%d,%d\t”,x,z);
z+=-x+++(++y||++z);
printf(“%d,%d”,x,z);}
(A)2,0 3,-1   (B)2,1 3,0    (C)2,0 2,1     (D)2,1 0 ,1
16. 写出下面程序的输出结果()
 main()
{int x=40,y=4,z=4;
 x = y = =z;
 printf(“%d”,x);
 x = x = = (y-z);
 printf(“%d”,x);}
(A)4  0    (B)4  1    (C)1  1     (D)1   0
17. 写出下面程序的输出结果()
 main()
{int I,j;
 I=16; j=(I++)+I;printf(“%d”,j);
 I=15;printf(“%d  %d”,++I,I);}
(A)32 16 15   (B)33 15 15   (C)34 15 16    (D)34 16 15
18. 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值为()
(A)1     (B)2    (C)2.0    (D)2.5
19. 下列程序的执行结果是()
#define sum 10+20
 main()
{ int b=0,c=0;
  b=5;
  c=sum*b;
  printf(“%d”,c);
}
(A)100   (B)110    (C)70    (D)150
20. 表达式(double)(20/3)的值为()
(A)6     (B)6.0     (C)2     (D)3
二. 填空题
1. 如果int I=3;则k=(I++)+(I++)+(I++),则k =(   ),  I=(    );
2. 如果 int I=3;则k=(I++)+(++I)+(I++),则k=(   ), I=(    );
3. 如果 int I=3;则k=(++I)+(++I)+(I++),则k=(   ),I=(    );
4. 如果 int I=3;则k=(++I)+(++I)+(++I),则k=(   ),I=(    );
5. 已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为()
 main()
{char c=’A’; int I=10;
 c = c+10;
 I = c%I;
 Printf(“%c,%d\n”,c,I); }
6. C语言的数据类型有四大类,其分别为(),(),(),()。
7. C语言的数据类型中构造类型包括三种,它们是(),(),()。
8. C语言基本数据类型包括(),(),(),()。
9. 在C语言中,常量有不同的类型,包括(),(),()和()。
10. 符号常量是指()。
11. 整型常量和实型常量也称为(),它们有正负值之分。
12. C语言中,习惯上符号常量名用(),变量用()。{大写或小写}
13. C语言在定义变量的同时说明变量的(),系统在编译时就能根据变量定义及其()为它分配相应大小的存储空间。
14. 在C语言中,用来标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符序列称为()
15. 整型变量可分为(),(),(),()四种,分别用(),(),(),()表示。
16. 在一个整常量后面加一个字母()或(),则认为是long int 型常量。
17. 在C语言中,实数有两种表示形式,即()和()。
18. 下面的程序
  main()
{printf(“_ _ _ ab _ c\t _de\rfg\n”);
 printf(“h\ti\b\b\j _ _ _k”);}
运行结果是()
19. 在C语言中,系统在每一个字符串的结尾自动加一个”字符串结束标志符”即()以便系统据此判断字符串是否结束。
20. 表达式10+’a’+1.5-0.5*’B’的结果是()
21. 表达式10+’a’+1.5-567.345/’b’的结果是()型数据
22. 在TURBO C中,单精度实数的数值范围约在()之间。
23. 下面的程序:
 main()
{float x;int I;
x=3.6; I=(int)x;
printf(“x=%f,I=%d”,x,I);}
运行结果为()
24. 在C语言中,表达式的类型有(),(),(),(),(),()。
25. 分析下面的程序:
 main()
{int a,b,c;
 a=b=c=1;
 a+=b;
 b+=c;
 c+=a;
 printf(“(1)%d\n”,a>b?a:b);
 printf(“(2)%d\n”,a>c?a--:c++);
 (a>=b>=c)?printf(“AA”):printf(“CC”);
 printf(“\n a= %d,b= %d,c= %d\n”,a,b,c);}
运行结果为()
26. 用C语言描述下列命题
(1) a小于b或小于c
(2) a和b都大于c
(3) a或b中有一个小于c
(4) a是奇数
27. 若x=3,y=2,z=1,求下列表达式的值:
(1) x<y?y:x
(2) x<y?x++:y++
(3) z+=x<y?x++:y++
28. sizeof用于计算出各个数据类型使用多少内存空间,若有语句:I=sizeof(int);j= sizeof(char),则I=();j=()
29. 若I= sizeof(float);j= sizeof(double),则I=(  ),j=(  ).
30. 在C语言中,可以利用(),将一个表达式的值转换成指定的类型。
第三章、 顺序结构
一.选择题
1. C语言中调用printf函数进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,多余的输出项将();如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。
(A)不予输出  (B)输出空格  (C)照样输出  (D)输出不定值或0
2. 在scanf函数的格式控制中,格式说明的类型与输入项的类型应该一一对应匹配。如果类型不匹配,系统将()。
(A)不予接收  (B)并不给出出错信息,但不可能得到正确数据  (C)能接收到正确输入  (D)给出出错信息,不予接收输入
3. 以下程序的输出结果是()
 main()
{
 int I=011,j=11,k=0x11;
 printf(“%d,%d,%d\n”,I,j,k);
}
(A)9,11,17  (B)9,11,11  (C)11,11,11  (D)11,11,16
4. 以下程序的输出结果是()
#include<stdio.h>
 main()
{printf(“%d\n”,NULL);}
(A)不确定的值(因变量无定义)  (B)0  (C)-1  (D)1
5. 以下程序的输出结果是()
 main()
{char c1=’6’, c2=’0’;
 printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);}
(A)输出出错信息  (B)6,0,6,102  (C)6,0,7,6  (D)6,0,5,7
6. 有如下定义:int x= 10, y= 5, z;则语句 printf(“%d\n”,z=(x+=y,x/y));的输出结果是()
(A)1  (B)0  (C)4  (D)3
7. 以下程序的输出结果是()
 main()
{int a = -1 ,b = 4, k;
 k = ( ++a <= 0) && !(b -- <= 0);
 printf(“%d %d %d\n”,k,a,b);}
(A)1 0 4  (B)0 0 4  (C)1 0 3  (D)0 0 3
8. 若有定义:int x,y; char a,b,c;并有以下输入数据(此处,<cr>代表换行符)
1 2<cr>
A B C<cr>
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:
(A)scanf(“x=%dy=%d”,&x,&y);a=getchar();b=getchar();c=getchar();
(B)scanf(“%dy%d”,&x,&y);a=getchar();b=getchar();c=getchar();
(C)scanf(“%d%d%c%c%c%c%c%c”,&x,&y,&a,&a,&b,&b,&c,&c);
(D)scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);
9. 若已定义int a = 25, b = 14, c = 19 ;以下三项运算符(?:)所构成的语句的执行结果是()
a++ <= 25 && b-- <= 2 && c++ ?
 printf(“***a=%d,b=%d,c=%d\n”,a,b,c) : printf(“###a=%d,b=%d,c=%d\n”,a,b,c)
 (A)(***a=25,b=14,c=19)        (B) (***a=26,b=13,c=19)
 (C)  (###a=25,b=14,c=19)         (D) (###a=26,b=13,c=19)
二.填空题
1. C语言中的语句可分为五类,即()、()、()、()、()。
2. 由一次函数调用加一个分号构成一个()语句。
3. printf是C语言提供的标准输出函数,它的作用是()。
4. printf函数的”格式控制”包括两部分,它们是()和()。
5. 如果想输出字符”%”,则应该在”格式控制”字符串中用()表示。
6. 符号’&’是()运算符,&a是指()。
7. scanf函数的”格式控制”后面应当是(),而不是()。
8. C语言中的空语句就是()。
9. 返回语句的功能是从()返回()。
10. 复合语句是由一对()括起来的若干语句组成的。
11. 下列程序的输出结果是()
#include<stdio.h>
 main()
{char b[]=”ABCDEFG”;
 char *chp=&b[7];
 while(-- chp>&b[0])
     putchar(*chp);
 putchar(‘\n’);}
12. 下列程序的输出结果是()
 main()
{int x =2,y,z;
 x* = 3+2; printf(“%d\n”,x);
 x* = y = z = 4; printf(“%d\n”,x);
 x = y = z ; printf(“%d\n”,x);
 x = (y = z); printf(“%d\n”,x);}
13. 下列程序的输出结果是()
 main()
{printf(“%d”,1<4&&4<7):
 printf(“%d”,1<4&&7<4);
 printf(“%d”,(2<5));
 printf(“%d”,!(1<3)||(2<5));
 printf(“%d”,!(4<=6)&&(3<=7));}
14. 下列程序的输出结果是()
 main()
{int x,y;
 x=16; y=(x++)+x; printf(“%d\n”,y);
 x=15; printf(“%d,%d\n”,++x,x);
 x=20;y=x-- + x; printf(“%d\n”,y);
 x=13;printf(“%d,%d”,x++,x);}
15. 阅读程序
 main()
{ char str1[]="people and computer",str2[10];
  char *p1=str1,*p2=str2;
  scanf("%s",p2);
  printf("%s",p2);
  printf("%s\n",p1);}
运行上面的程序,输入字符串PEOPLE AND COMPUTER ,则程序的输出结果是()。
三. 编程题
1. 从键盘输入一个大写字母,要求改用小写字母输出;
2. 编写程序,判断某一年是否闰年;
3. 编写求方程ax2 + bx + c的解 x 的程序;


第四章、 选择结构

1. 下列运算符中优先级最高的是()。
(A)>  (B)+  (C)&&  (D)!=
2. 逻辑运算符运算对象的数据类型()。
(A)只能是0和1 (B)只能是.T.或.F. (C)只能是整型或字符型 (D)任何类型的数据
3. 能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
(A)(X<=-10)||(x>=-5)&&(x<=0)||(x>=100)    (B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)
(C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)(D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
4. 以下程序的运行结果是()。
 main()
{int c,x,y;
 x=1; y=1; c=0;
 c=x++ || y++ ;
 printf(“\n%d %d %d\n”,x,y,c);}
(A)1 1 0  (B) 2 1 1  (C)2 2 1  (D) 0 0 1
5. 以下程序的运行结果是()。
 main()
{int c,x,y;
 x=0; y=0; c=0;
 c=x++ && y++;
 printf(“\n%d %d %d\n”,x,y,c);}
(A)1 0 0 (B)1 1 0 (C)0 1 1  (D)0 0 1
6. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
 main()
{int x;
 scanf(“%d”,&x);
 if(x++>5) printf(“%d”,x);
 else printf(“%d\n”,x--);}
(A)7和5  (B)6和3  (C)7和4  (D)6和4
7. 写出下面程序的运行结果()。
 main()
{ int x=1, y=1 ,z=0;
  if(z<0)
  if(y>0) x=3;
  else x=5;
  printf(“%d\t”,x);
  if(z=y<0) x=3;
  else if(y= = 0) x=5;
   else x=7;
  printf(“%d\t”,x);
  printf(“%d\t”,z);}
(A)1 7 0  (B)3 7 0  (C)5 5 0  (D)1 5 1
8. 写出下面程序的运行结果()。
 main()
{int x,y=1,z=0;
 if(y!=0) x=5;
 printf(“x=%d\t”,x); if(y = = 0) x=3; else x=5;
 printf(“x=%d\t\n”,x);
 x=1;
 if(z<0)
   if(y>0)  x=3; else x=5; printf(“x=%d\t\n”,x);
 if(z=y<0)  x=3;
 else if(y = = 0) x=5;
     else x=7;
 printf(“x = %d\t”,x);
 printf(“z = %d\t\n”,z);
 if(x=z=y) x=3;
 printf(“x=%d\t”,x);
 printf(“z=%d\t\n”,z);}
(A)x=5   x=5 (B)x=5 x=5  (C)x=5  x=5  (D)x=5   x=5
     x=1             x=1           x=5            x=1
     x=7   z=0       x=5 z=0        x=7  z=0       x=7  z=0
     x=3   z=1       x=3 z=0        x=3  z=1       x=3  z=0
9. 若有以下函数关系
x < 0时y = 2x
x > 0时y=x
x = 0时y=x+1
下面程序段能正确表示以上关系的是()。
(A)y = 2x;   (B)y = 2x;    (C)if(x >= 0)      (D)y= x+1;
     if(x!=0)        if(x<=0)          if(x>0) y=x;     if(x<=0)
      if(x>0) y=x;     if(x= =0) y=x+1;  else  y=x+1;     if(x<0) y=2x;
      else y=x+1;    else y=x;        else y=2x;          else y=x;
10. 若有以下变量定义:
float x;int a,b;
则正确的switch语句是()。
(A)switch(x)         (B)switch(x)        (C)switch(a+b)      (D)switch(a+b)
  {case 1.0:printf(“ok”);  {case 1,2:printf(“ok”);  {case 1:printf(“ok”);   {case 1:printf(“ok”);
   case 2.0:printf(“this”); case .3:printf(“this”);  case 2*a:printf(“this”); case 1+2:printf(“this”);
  }                    }                   }                  }
二. 填空题
1.以下两条if语句合并成一条if语句为()。
 if(a <= b) x=1;
 else y=2;
 if(a>b) printf(“****y=%d\n”,y);
 else printf(“####x=%d\n”,x);
2.以下程序的功能是计算一元二次方程ax2+bx+c=0的根,补足程序中空缺的语句。
#include<math.h>
 main()
{float a,b,c,_abs,_derta,_doublea,part1,part2;
 printf(“enter a ,b,c:”);
 scanf(“%f%f%f”,&a,&b,&c);
 if(     )
   if(    ) printf(“no answer due to input error\n”);
   else printf(“the single root is %f\n”,-c/b);
 else
  { _derta = b*b – 4*a*c;
    _doublea = 2*a;
   part1 = -b/(2*a);
     _abs = abs(_derta);
     part2 = sqrt(_abs)/_doublea;
     if(    )
       printf(“complex root\n real part=%f image part = %f\n”,part1,part2);
     else
       printf(“real roots\n root1 = %f root2 = %f\n”,part1+part2,part1- part2);
     }
}
3.以下程序段的运行结果是()。
 int x=1 ,y=0;
 switch(x)
 {case 1:
       switch(y)
             {
              case 0: printf(“x=1 y=0\n”);break;
              case 1:printf(“x=1\n”);break;
             }
  case ‘2’:printf(“x=2\n”);
 }
 4.根据以下if语句写出与其功能相同的switch语句。
 (x的值在0-100之间)
 if语句:
   if(x<60)  m=1;
     else if(x<70) m=2;
         else if(x<80)  m=3;
             else if(x<90) m=4;
                 else if(x<100)  m=5;
 switch语句:
   switch(    )
     {
      (       ) m=1:break;
      case 6:m=2;break;
      case 7:m=3;break;
      case 8:m=4;break;
      (      ) m=5;
     }
三. 编程题
1. 编写一程序,要求由键盘输入三个数,计算以这三个数为边长的三角形面积。
2. 输入圆的半径r和一个整型数k,当k = 1时,计算圆的面积;当 k= 2时,计算圆的周长;当 k = 3时,既要求出圆的面积也要求出圆的周长。编程实现以上功能。


第五章、 循环结构
一. 选择题
1.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的()不能丢,它表示do-while循环的结束。
(A)0  (B)1  (C);  (D),
2.for语句中的表达式可以部分或全部省略,但两个()不可省略。但当三个表达式均省略后,因缺少判断条件,循环会无限制地执行下去,形成死循环。
(A)0  (B)1  (C);  (D),
3.程序段如下:
int k=1;
while(! k= = 0){k = k+1; printf(“%d\n”,k);}
则以下说法中正确的是()
(A)while循环执行2次(B)无限循环(C)循环体语句一次也不执行(D)执行一次
4.程序段如下:
int k=0;
while(k ++ <= 2); printf(“last = %d\n”,k);
则正确的执行结果是last = ( )
(A)2  (B)3  (C)4  (D)无结果
5.执行下面的程序后,a 的值为(  
 main()
{ int a , b;
 for( a=1 , b=1 ; a<=100; a++)
   { if(b>=20) break;
   if(b%3 = = 1)
     { b+=3;
       continue;
     }
  b-=5;
  }
}
(A)7  (B)8  (C)9  (D)10
6.分析下列程序
 main()
{ int n[3], I, j,k;
  for(I=0; I<3;I++)
   n[I]=0;
 k=2;
 for(I=0;I<k;I++)
   for(j=0;j<k;j++)
     n[j]=n[I]+1;
 printf(“%d\n”,n[1]);
}
(A)2  (B)1  (C)0  (D)3
7.下面程序的输出结果是(  
 main()
{ int n = 0;
  while(n++ <=1)
   printf(“%d\t”,n);
 printf(“%d\n”,n);
}
(A)1 2 3  (B)0 1 2  (C)1 1 2  (D)1 2 2
8.当输入为”quert?”时,下面程序的执行结果是(  
 main()
{ char c;
  c=getchar();
 while((c=getchar())!=’?’) putchar(++c);
}
(A)Quert  (B)vfsu  (C)quert?  (D)rvfsu?
9.当输入为”quert?”时,下面程序的执行结果是(  
 main()
{while(putchar(getchar())!=’?’);}
(A)quert  (B)Rvfsu  (C)quert?  (D)rvfsu?
10.当输入为”quert?”时,下面程序的执行结果是(  
 main()
{char c;
 c=getchar();
 while(c!=’?’)
  {
   putchar( c );
   c=getchar();
  }
}
(A)quert  (B)Rvfsu  (C)quert?  (D)rvfsu?
二. 填空题
1. 将for(表达式1;表达式2;表达式3)语句改写为等价的while语句为(  
2. break语句的功能是(  )
3. break语句只能用于(   )语句和(  )语句
4. continue语句的作用是(  ),即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
三. 编程题
1. 求100-200间的全部素数
2. 编一程序,将2000年到3000年中所有的闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。


第六章、 数组
一. 选择题
1.若有语句int a[8];则下述对a 的描述正确的是(  )。
(A)定义了一个名称为a的一维整型数组,共有8个元素(B)定义了一个数组a,数组a共有9个元素(C)说明数组a的第8个元素为整型变量(D)以上可选答案都不对
2.在C语言中,引用数组元素时,其数组下标的数据类型允许是(  )。
(A)整型常量(B)整型表达式(C)整型常量或整型表达式(D)任何类型的表达式
3.下述对C语言字符数组的描述正确的是(  )。
(A)任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占用存储空间(B)一维数组的元素在引用时其下标大小没有限制
(C)任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间(D)一维数组的第一个元素是其下标为1的元素
4.下述对C语言字符数组的描述中正确的是(  )。
(A)任何一个一维数组的元素在引用时,其下标可以是整型、实型或字符型常量
(B)一维数组的元素实质上就是一个变量,代表内存中的一个存储单元
(C)如果要引用数组中的每一个元素,则直接使用该数组名称即可
(D)以上都不对
5.以下对一维整型数组a的正确说明是(  )。
(A)int a(10);  (B)int n=10,a[n];  (C) int n;                  (D) #define SIZE 10
                                  scanf(“%d”,&n);            int a[SIZE];
                                  int a[n];
6.以下能对一维数组a进行正确初始化的语句是(  
(A)int a[10]=(0,0,0,0,0);(B)int a[10]={};(C)int a[]={0};(D)int a[10]=(10*1);
7.若有说明:int a[3][4];则对a数组元素的正确引用是(  
(A)a[2][4] (B)a[1,3] (C)a[1+1][0] (D)a(2)(1)
8.以下能对二维数组a进行正确初始化的语句是(  
(A)int a[2][]={{1,0,1},{5,2,3}};(B)int a[][3]={{1,2,3},{4,5,6}};
(C)int a[2][4]={{1,2,3},{4,5},{6}};(D)int a[][3]={{1,0,1}{},{1,1}};
9.若有说明:int a[3][4]={0};则下面正确的叙述是(  
(A)只有元素a[0][0]可得到初值0(B)此说明语句不正确
(C)数组a中各元素都可得到初值,但其值不一定为0
(D)数组a中每个元素均可得到初值0
10.以下各组选项中,均能正确定义二维实型数组a的选项是(  
(A)float a[3][4]; float a[][4]; float a[3][]={{1},{0}};
(B)float a(3,4); float a[3][4]; float a[][]={{0};{0}};
(C)float a[3][4]; static float a[][4]={{0},{0}};
(D)float a[3][4]; float a[3][];
11.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(  
(假设a[0][0]位于数组的第一个位置上。)
(A)i*m+j(B)j*m+i(C)i*m+j-1(D)i*m+j+1
12.对以下说明语句的正确理解是(  
int a[10] = {6,7,8,9,10};
(A)将5个初值依次赋给a[1]至a[5]   (B)将5个初值依次赋给a[0]至a[4]
(C)将5个初值依次赋给a[6]至a[10](D)因为数组长度与初值的个数不相同,语句有错
13.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(  
(A)2 (B)3 (C)4 (D)不确定
14.定义如下变量和数组:
int I;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是(  
for(I=0;I<3;I++)
printf(“%d”,x[I][2-I]);
(A)1 5 9(B)1 4 7(C)3 5 7(D)3 6 9
15下面程序的运行结果是(  
 main()
{int a[6][6],I,j;
  for(I=1;I<6;I++)
    for(j=1;j<6;j++)
       a[I]][j]=(I/j) * (j/I)
  for(I=1;I<6;I++)
    {for(j=1;j<6;j++)
       printf(“%2d”,a[I][j]);
     printf(“\n”);}
}
(A)1 1 1 1 1  (B)0 0 0 0 1  (C)1 0 0 0 0  (D)1 0 0 0 1
     1 1 1 1 1        0 0 0 1 0        0 1 0 0 0       0 1 0 1 0
     1 1 1 1 1        0 0 1 0 0        0 0 1 0 0       0 0 1 0 0
     1 1 1 1 1        0 1 0 0 0        0 0 0 1 0       0 1 0 1 0
     1 1 1 1 1        1 0 0 0 0        0 0 0 0 1       1 0 0 0 1
16.下面程序的运行结果是(  
 main()
{int a[6];
  for(I=1;I<6;I++)
     {a[I]=9*(I-2+4*(I>3))%5;
      printf(“%2d”,a[I]);
     }
}
(A)-4 0 4 0 4(B)-4 0 4 0 3(C)-4 0 4 4 3(D)-4 0 4 4 0
17.下列定义正确的是(  
(A)static int a[]={1,2,3,4,5}(B)int b[2]={2,5,7}(C)int a(10)(D)int 4e[4]
18.若有说明:int a[][4]={0,0};则下列叙述不正确的是(  
(A)数组a的每个元素都可得到初值0(B)二维数组a的第一维的大小为1
(C)因为对二维数组a的初值个数除以第二维的大小,商为0,所以数组a的行数为1
(D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值
19.设有char str[10],下列语句正确的是(  
(A)scanf(“%s”,&str);(B)printf(“%c”,str);(C)printf(“%s”,str[0]);(D)printf(“%s”,str);
20.以下语句定义正确的是(  
(A)int a[1][4]={1,2,3,4,5};(B)float x[3][]={{1},{2},{3}};
(C)long b[2][3]={{1},{1,2},{1,2,3}};(D)double y[][3]={0};
21下列的说法正确的是(  
(A)在C语言中,可以使用动态内存分配技术,定义元素个数可变的数组
(B)在C语言中,数组元素的个数可以不确定,允许随机变动
(C)在C语言中,数组元素的数据类型可以不一致
(D)在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数
22.假设array是一个有十个元素的整型数组,则下列写法中正确的是(  
(A)array[0]=10(B)array=0(C)array[10]=0(D)array[-1]=0
23.若用数组名作为函数调用的实参,传递给形参的是(  
(A)数组的首地址(B)数组的第一个元素的值
(C)数组中全部元素的值(D)数组元素的个数
24.若使用一维数组名作函数实参,则以下正确的说法是(  
(A)在被调函数中,与该实参相对应的形参必须是指针型变量
(B)实参数组类型与形参类型可以不匹配
(C)在被调函数中,不需要考虑形参数组的大小
(D)实参数组名与形参数组名必须一致
25.下述对C语言字符数组的描述错误的是(  
(A)字符数组可以存放字符串(B)字符数组中的字符串可以整体输入、输出
(C)可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
(D)不可以用关系运算符对字符数组中的字符串进行比较
26.设有char str1[10], str2[10],c1; 则下列语句正确的是(  
(A)str1 = {“china”}; str2 = str1;(B)c1=”ab”;
(C)str1 = {“china”}; str2 = {“people”}; strcpy(str1,str2);(D)c1=’a’;
27.以下能正确进行字符串赋值、赋初值的语句组是(  
(A)char s[5] = {‘a’,’b’,’c’,’d’,’e’};(B)char *s; s=”abcde”;
(C)char s[5] = “abcde”;(D)char s[5]; s = “abcd”;
28.下列语句的执行结果是(  
static char str[10] = “china”;printf(“%d”,strlen(str));
(A)10 (B)6 (C)5 (D)0
29合法的数组定义是(  
(A)int a[] = “language”;(B)int a[5]={0,1,2,3,4,5};(C)char a=”string”;(D)char a[]={“0,1,2,3,4,5”};
30.若有以下程序片段:
char str[] = “ab\n\012\\\””;printf(“%d”,strlen(str));则输出结果是()
(A)3  (B)4  (C)6  (D)12  
31.库函数strcpy用以复制字符串。若有以下定义和语句:
char str1[] = “string”, str2[8], *str3, *str4=”string” ;
则对库函数strcpy的不正确调用是(  
(A)strcpy(str1,”hello1”);(B)strcpy(str2,”hello2”);(C)strcpy(str3,”hello3”);(D)strcpy(str4,”hello4”);
32.下面程序段的运行结果是(  
char a[7] = “abcdef “;    char b[4] =”ABC”;    strcpy(a,b);    printf(“%c”,a[5]);
(A)为空格(B)\0(C)e(D)f
33.有下面的程序段
char a[3],b[] = “China”;    a = b;    printf(“%s”, a);   
(A)运行后将输出China(B)运行后将输出Ch(C)输出Chi(D)编译出错
二. 填空题
1.数组名命名规则和变量名相同,遵循(  )命名规则。
2.对于一维数组的定义”类型说明符  数组名[常量表达式]”其中常量表达式可以包括(  )和(  ),不能包含(  )。
3.对于数组a[m][n]来说,使用数组的某个元素时,行下标最大值是(),列下标最大值是()。
4.在C语言中,将字符串作为(  )处理。
5.在C语言中,数组的首地址是( )。
6. main()
{int k,*p;
 static int a[4]={1,2,3,4};
 p = a;
 for ( k = 0 ; k < 3 ; k++)
  printf(“%d,”, *p++);
}程序的运行结果是(  
7.程序
 main()
{int k,*p;
 static int a[4]={1,2,3,4};
 p = a;
 for( k = 0; k < 3 ; k ++ )
  printf(“%d,”,*++p);
}则运行结果是(  
8.下面程序的功能是将字符串s中所有的字符c删除。补足所缺语
#include <stdio.h>
 main()
{
 char s[80];
 int i , j;
 gets(s);
 for (i = j = 0; s[i] != ‘\0’;i++)
  if(s[i] != ‘c’)  (      );
 s[j] = ‘\0’;
 puts(s);
}
9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。补足所缺语句。
#include <stdio.h>
 main()
{
 char s[80], c1, c2 = ‘ ‘;
 int i = 0, num = 0;
 gets(s);
 while(s[i] != ‘\0’)
 { c1 = s[i];
  if(i = = 0 ) c2 = ‘ ‘;
  else c2 = s[i – 1];
  if (       )  num + + ;
  i ++;
 }
 printf(“There are %d words.\n”,num);
}


第七章、 函数
一. 选择题
1. 关于建立函数的目的以下说法正确的是__________。
(A) 提高程序的执行效率(B) 提高程序的可读性(C) 减少程序的篇幅(D) 减少程序文件所占内存
2. 以下说法正确的是__________。
(A) 用户若需调用标准库函数,调用前必须重新定义
(B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
(C) 系统根本不允许用户重新定义标准库函数
(D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文
    件包括到用户源文件中,系统自动去调用.
3. 以下函数形式正确的是__________。
(A) double fun(int x,int y)
    { int z=x+y;return z; }  
(B) fun(int x,y)
    { int z;
      return z; }
(C) fun(x,y)
    { int x,y; double z;
      z=x+y; return z; }
(D) double fun(int x,int y);
    { double z;
      z=x+y;return z; }
4. 关于C语言以下说法正确的是__________。
(A) 实参和与其对应的形参各占用独立的存储单元
(B) 实参和与其对应的形参共占用一个存储单元
(C) 只有当实参和与其对应的形参同名时才共占用存储单元
(D) 形参是虚拟的,不占用存储单元
5. 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数__________。
(A) 没有返回值(B) 返回若干个系统默认值(C) 能返回一个用户所希望的函数值
(D) 有返回值,但返回一个不确定的值
6. 按照C语言的规定以下说法不正确的是__________。
(A) 形参可以是常量、变量或表达式 (B) 实参可以为任意类型
(C) 实参可以是常量、变量或表达式,在传递给形参时,要求实参必须有确定的值
(D) 形参与其对应的实参类型要求可以不一致
7. 以下说法正确的是__________。
(A) 定义函数时,形参的类型说明可以放在函数体内,也可以放在函数体外
(B) return后边的值不能为表达式
(C) 如果函数值的类型与返回值类型不一致,以函数值类型为准
(D) 如果形参与实参的类型不一致,以实参类型为准
8. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是__________。
(A) 地址传递    (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参(D) 由用户指定传递方式
9. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是_______。
(A) float型    (B) int型        (C) long型    (D) double型
10. C语言规定,函数返回值的类型是由__________。
(A) return语句中的表达式类型所决定    (B) 调用该函数时的主调函数类型所决定
(C) 调用该函数时系统临时决定        (D) 在定义该函数时所指定的函数类型决定
11. 下面函数调用语句含有实参的个数为__________。
    func((a,b,c,d),(e,f,g));
(A) 1    (B) 2    (C) 4    (D) 以上都不对
12. 以下描述正确的是__________。
(A) 函数调用可以出现在执行语句或表达式中        (B) 函数调用不能做为一个函数的实参
(C) 函数调用可以做为一个函数的形参            (D) 以上都不正确
13. 在C语言程序中,以下描述正确的是__________。
(A) 函数的定义可以嵌套,但函数的调用不可以嵌套
(B) 函数的定义不可以嵌套,但函数的调用可以嵌套
(C) 函数的定义和函数的调用均不可以嵌套
(D) 函数的定义和函数的调用均可以嵌套
14. 如果在一个函数的复合语句中定义了一个变量,则该变量_________。
(A) 只在该复合语句中有效,在该复合语句外无效    (B) 在该函数中任何位置都有效
(C) 在本程序的原文件范围内均有效                (D) 此定义方法错误,其变量为非法变量
15. 以下程序的正确运行结果是__________。
    #define MAX 10
    int a[MAX],i;
     main( )
    { printf("\n");sub1();sub3(a);sub2();sub3(a); }
      sub2()
       { int a[MAX],i,max;
         max=5;
         for(i=0;i<max;i++) a[i]=i;
       }
      sub1()
       { for(i=0;i<MAX;i++) a[i]=i+i;
       }
      sub3(int a[])
       { int i;
         for(i=0;i<MAX;i++) printf("%d",a[i]);
         printf("\n");
       }
    }
(A) 0 2 4 6 8 10 12 14 16 18
    0 1 2 3 4
(B) 0 1 2 3 4
    0 2 4 6 8 10 12 14 16 18
(C) 0 1 2 3 4 5 6 7 8 9
    0 1 2 3 4
(D) 0 2 4 6 8 10 12 14 16 18
  0 2 4 6 8 10 12 14 16 18
16. 以下程序的输出结果是__________。
     main( )
    {
      int k=4,m=1,p;
      p=func(k,m);
      printf("%d,",p);
      p=func(k,m);
      printf("%d",p);
    }
    func(int a,int b)
    {
      static int m,k=2;
      k+=m+1;
      m=k+a+b;
      return(m);
    }
(A) 8,17        (B) 8,16        (C) 8,20        (D) 8,8
17. 以下程序的输出结果是__________。
    main()
   { int i=1, j=3;
     printf("%d,",i++);
     { int i=0; i+=j*2;
       printf("%d,%d,",i,j); }
     printf("%d,%d\n",i,j); }
(A) 1,6,3,1,3        (B) 1,6,3,2,3        (C) 1,6,3,6,3        (D) 1,7,3,2,3
18. 以下程序的输出结果是__________。
    main()
   { int a[]={1,2,3,4},i,x=0;
     for(i=0; i<4; i++) { sub(a,&x); printf("%d",x); }
     printf("\n");
   }
   sub(int*s, int *y)
   { static int t=3;
     *y=s[t]; t--;
   }
(A) 1234        (B) 4321        (C) 0000        (D) 444412.
19. 以下程序的输出结果是__________。
   void fun(int *s)
   { static int j=0;
     do
       s[j]+=s[j+1];
     while(++j<2);
   }
    main( )
   { int k,a[10]={1,2,3,4,5};
     for(k=1; k<3; k++) fun(a);
     for(k=0; k<5; k++) printf("%d",a[k]);
   }
(A) 34756       (B) 23445        (C) 35745        (D) 12345
20. 以下程序的输出结果是__________。
   f(int a)
   { int b=0;
     static int c=3;
     a=c++,b++;
     return(a);
   }
    main( )
   { int a=2,i,k;
     for(i=0; i<2; i++) k=f(a++);
     printf("%d\n",k);
   }
(A) 3        (B) 6        (C) 5        (D) 4
21. 以下程序的输出结果是__________。
   int m=13;
   int fun2(int x,int y)
   { int m=3;
     return(x*y-m);
   }
    main( )
   { int a=7,b=5;
     printf("%d\n",fun2(a,b)/m);
   }
(A) 1       (B) 2            (C) 7        (D) 10
22. C语言中,形参缺省的存储类说明是__________。
(A) auto()        (B) static(静态)        (C) register(寄存器)        (D) extern(外部)
23. 以下叙述中不正确的是__________。
(A) 一个变量的作用域完全取决于变量定义语句的位置
(B) 全局变量可以在函数以外的任何部位进行定义
(C) 局部变量的生存期只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
(D) 一个变量说明为static存储类是为了限制其他编译单位的引用
二. 填空题
1. 以下程序的输出结果是__________。
     main( )
    { int a=3,b=2,c=1;
      c-=++b;      b*=a+c;
      { int b=5,c=12;
        c/=b*2;        a-=c;
        printf("%d,%d,%d,",a,b,c);
        a+=--c;
      }
      printf("%d,%d,%d\n",a,b,c);
    }
2. 以下程序的输出结果是 __________。
   void fun( )
   { static int a;
     a+=2;
     printf("%d",a); }
    main( )
   { int cc;
     for(cc=1; cc<=4; cc++) fun();
     printf("\n");
   }
3. 以下程序的输出结果是__________。
   unsigned funct(unsigned num)
   { unsigned int k=1;
     do
     { k*=num%10; num/=10; }
     while(num);
     return k;
   }
    main()
   { unsigned int n=26;
     printf("funct result is:%d\n",funct(n));
   }
4. 以下程序的输出结果是__________。
   double sub(double x,double y,double z)
   { y-=1.0;     z=z+x;     return z;   }
    main()
   { double a=2.5,b=9.0;
     printf("function running result is:%6.1f\n",sub(b-a,a,a));
   }
5. 下面pi函数的功能是,根据以下公式返回满足精度ε要求的π的值。
    根据以下算法要求补足所缺语句。
    π/2=1+1/3+1/3?2/5+1/3?2/5?3/7+1/3?2/5?3/7?4/9+…
    double pi(double eps)
    { double s=0.0,t=1.0;
      int n;
      for(__________; t>eps; n++)
      { s+=t;        t=n*t/(2*n+1);      }
      return (2.0* __________);
}
第八章、 编译预处理
1. 执行下面的程序后,a的值是__________。
   #define SQR(X) X*X
    main()
   { int a=10,k=2,m=1;
     a/=SQR(k+m)/SQR(k+m);
     printf("%d\n",a);
   }
(A) 10    (B) 1        (C) 9     (D) 0
2. 执行下面的程序后,a的值是__________。
   #define SQR(X) X/X
    main()
   { int a=10,k=2,m=1;
     a/=SQR(k+m)/SQR(k+m);
     printf("%d\n",a);
   }
(A) 10    (B) 3        (C) 9   (D) Divide error
3. 下面__________不是C语言所提供的预处理功能。
(A) 宏定义    (B) 文件包含        (C) 条件编译        (D) 字符预处理
4. 在宏定义#define MAX 30中,用宏名代替一个_________。
(A) 常量        (B) 字符串        (C) 整数        (D) 长整数
5. 程序
   #define NUM 30+4
    main()
   { printf("NUM*20=%d",NUM*20); }
   的执行结果为__________。
(A) NUM*20=110    (B) NUM*20=680    (C) NUM*20=604    (D) 以上都不对
6. 以下说法正确的是__________。
(A) 宏定义是C语句,所以要在行末加分号
(B) 可以使用#undef命令来终止宏定义的作用域
(C) 在进行宏定义时,宏定义不能层层置换
(D) 对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换
7. 下面的说法不正确的是__________。
(A) 函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的字符替换
(B) 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递
(C) 对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏没有类型
(D) 调用函数只可得到一个返回值,而用宏可以设法得到几个结果
8. 下面的说法不正确的是__________。
(A) 使用宏的次数较多时,宏展开后源程序长度增长。而函数调用不会使源程序变长
(B) 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时不分配内存单元,不进行值传递
(C) 宏替换占用编译时间
(D) 函数调用占用编译时间
9. 对于文件包含处理,在编译时__________。
(A) 把用#include 命令指定的文件与本文件用link命令进行联接
(B) 把用#include 命令指定的文件与本文件用project命令进行联接
(C) 把用#include 命令指定的文件与本文件进行宏替换
(D) 把用#include 命令指定的文件与本文件作为一个源文件进行编译
10. 以下叙述中正确的是__________。
(A) 用#include包含的头文件的后缀不可以是".a"
(B) 若一些源程序中包含某个头文件;当该头文件有错时,只需对该头文件进行修改,包含此头文件所有源程序不必重新进行编译
(C) 宏命令行可以看做是一行C语句
(D) C编译中的预处理是在编译之前进行的
11. 将大写字母变为小写字母的宏定义为__________。
(A) #define TOLOWER(ch)    (ch>='A')&&(ch<='Z')? ch+26:ch?
(B) #define TOLOWER(ch)    ((ch)>='A')&&((ch)<='Z')? (ch)+'a'-'A':(ch)
(C) #define TOLOWER(ch)    ((ch)>='A')||(ch)<='Z')? (ch)'a'-'A':(ch)
(D) #define TOLOWER(ch)    (ch>='A')||(ch<='Z')? ch+26:ch
12. 若要使指针变量p指向一个double类型的动态存储单元,在下划线处应填入__________。
    double *p;
    p=__________malloc(sizeof(double));
(A) double    (B) double*    (C) (*double)            (D) (double *)
二.填空题
1. 程序
   #define FUN This is a C program  
    main()
   { printf("First:This is FUN!\n");
     printf("Second:%s!","FUN"); }
   的执行结果是__________。
2. #define命令出现在程序中函数的外面,宏名的有效范围为________。
3. 可以使用__________命令来终止宏定义的作用域。
4. __________处理是指一个源文件可以将另外一个源文件的全部内容包
   含进来。

收到的鲜花
  • sunyh19992010-07-11 17:29 送鲜花  6朵   附言:好文章
搜索更多相关主题的帖子: 习题 
2010-07-11 16:45
Cc丶
Rank: 2
等 级:论坛游民
帖 子:71
专家分:53
注 册:2010-7-9
收藏
得分:0 

第九章、 指针
一. 选择题
1. 指针S所指字符串的长度为__________。
   char *s="\t\\Name\\Address\n";
(A) 说明不合法       (B) 19      (C) 18      (D) 15
2. 变量i的值为3,i的地址为1000,若欲使p为指向i的指针变量,则下列赋
   值正确的是__________。
(A) &i=3       (B) *p=3      (C) *p=1000       (D) p=&i
3. 下列说法中不正确的是__________。
(A) 指针是一个变量   (B) 指针中存放的是地址值
(C) 指针可以进行加、减等算术运算   (D) 指针变量不占用存储空间
4. 已知下列函数定义
    setw(int *b,int m,int n,int dat)
    { int k;
      for(k=0;k<m*n;k++)
      { *b=dat;b++;}
    }
    则调用此函数的正确写法是(假设变量a的说明为 int a[50])
    _____。
(A) setw(*a,5,8,1);   (B) setw(&a,5,8,1);   (C) setw((int *)a,5,8,1);   (D) setw(a,5,8,1);
5. 分析下面程序
   #include <stdio.h>
    main()
   { int i;
     int *int_ptr;
     int_ptr=&i;
     *int_ptr=5;
     printf("i=%d",i);
   }
   程序的执行结果是__________。
(A) i=0       (B) i为不定值      (C) 程序有错误       (D) i=5
6. 分析下面程序
   #include <stdio.h>
    main()
   { int *p1,*p2,*p;
     int a=5,b=8;
     p1=&a;p2=&b;
     if(a<b) {p=p1;p1=p2;p2=p;}
     printf("%d,%d",*p1,*p2);
     printf("%d,%d",a,b);}
   程序的输出结果为: __________。
(A) 8,5  5,8       (B) 5,8  8,5      (C) 5,8  5,8       (D) 8,5  8,5
7. 分析下面函数
   swap(int *p1,*p2)
   { int *p;
     *p=*p1;*p1=*p2;*p2=*p;
   }
   则该程序功能为: __________。
(A) 交换*p1和*p2的值            (B) 正确,但无法改变*p1和*p2的值
(C) 交换*p1和*p2的地址            (D) 可能造成系统故障,因为使用了空指针
8. 若有定义和语句:
   int ** pp,*p,a=10,b=20;
   pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);
   则输出结果是__________。
(A) 10,20       (B) 10,20      (C) 20,10       (D) 20,20
二. 填空题
1. 下列程序的输出结果是(__________)。
    int ast(int x,int y,int *cp,int *dp)
    { *cp=x+y;
      *dp=x-y;
    }
     main()
    { int a,b,c,d;
      a=4;b=3;
      ast(a,b,&c,&d);
      printf("%d %d\n",c,d); }
2. 一个专门用来存放另一个变量地址的变量叫__________。
3. 写出下列程序的执行结果
   swap(p1,p2)
   int *p1,*p2;
   { int p;
     p=*p1;
     *p1=*p2;
     *p2=p;
   }
     main()
   { int a,b;
     int *p1,*p2;
     scanf("%d%d",&a,&b);
     p1=&a;p2=&b;
     if(a<b) swap(p1,p2);
     printf("\na=%d,b=%d\n",a,b); }
   若a=6,b=9,则程序的运行结果为__________。

第十章、 结构体、共用体
一.选择题
1. 下列描述说明正确的是__________。
(A) typedef int INTEGER; INTEGER j,k;        (B) typedef int char ; char j,k;
(C) typedef a[3] ARRAY; ARRAY b;        (D) 以上描述均不正确
2. 下列描述说明正确的是__________。
(A) 定义结构体时,它的每个成员的数据类型可以不同        (B) 不同结构体的成员名不能相同
(C) 结构体定义时,其成员的数据类型不能是结构体本身
(D) 结构体定义时各成员项之间可用分号也可用逗号隔开
3. 下列描述说明正确的是__________。
(A) 定义结构体时,系统按照各成员项的大小分配相应的存储空间
(B) 定义结构体时,系统按照成员项中占用空间最大的成员项分配存储空间
(C) 结构体定义时,结构体本身并不占用存储空间,即系统并不给结构体分配存储空间
(D) 以上说法均不正确
4. 下列描述说明正确的是__________。
(A) 结构体变量说明时,系统按照结构体定义时所需空间的大小实际分配存储空间
(B) 结构体变量说明时,系统按照成员项中占用空间最大的成员项分配存储空间
(C) 结构体说明时,系统并不给结构体分配存储空间
(D) 以上说法均不正确
5. 下列描述说明错误的是__________。
(A) 结构体变量各的成员项各自占用各自的存储空间,而共用体各成员项共同占用同一存储空间
(B) 结构体定义时并不分配存储空间,只有在结构体变量说明时,系统才分配存储空间
(C) 结构体变量占用空间的大小为各成员项占用空间大小之和,而共用体占用空间大小为其成员项中占用空间最大的成员项所需存储空间大小
(D) 以上说法均不正确
6. 下列描述说明错误的是__________。
(A) 结构体变量的名称为该结构体变量的存储首地址
(B) 结构体数组的名称为该结构体数组的存储首地址
(C) 结构体变量本身的地址即各成员项存储空间的开始地址
(D) 结构体数组中不同元素的同名成员项具有相同的数据类型
7. 以下程序的输出结果是__________。
    #include <stdio.h>
     main()
    { struct stru
      { int a,b;
        char c[6]; };
      printf("%d\n",sizeof(struct stru));
    }
(A) 2    (B) 4    (C) 8    (D) 10
8. 已知结构体com类型的变量a,其初始化赋值如下:
    static struct com a={"20",5,1.7691}:
    则以下结构体com的类型定义正确的是__________。
(A) com struct { char name( ); int kodo;float shuki; }        
(B) struct com { char name[];int kodo;double shuki; }
(C) struct com { int name; int kodo;float shuki; }
(D) com struct { int name;int kodo;float shuki; }
9. 设有如下定义:
    struct sample
    { int a;
      int b;};
    struct st
    { int a;float b;
      struct sample *p; }
    st1,*pst;
    若有pst=&st1;,则以下引用正确是__________。
(A) (*pst).p.a        (B) (*pst)->p.a        (C) pst->p->a        (D) pst.p->a
10. 若有以下说明,则能打出Yun的语句是__________。
    struct sampl
    { char name[10];
      int number; };
    struct sampl test[3]={{"WangBing",10},{"LiYun",20},
                            {"LiuHua",30}};
(A) printf("%s\n",test[1].name+2);        (B) printf("%s\n",test[1].name[2]);
(C) printf("%s\n",test[2].name+2);        (D) printf("%s\n",test[2].name[2]);
11. 若有以下说明和语句,则值为6的表达式是__________。
    struct st
    { int n;
      struct st *next;
    };
    struct st a[3],*p;
    a[0].n=5; a[0].next=&a[1];
    a[1].n=7; a[1].next=&a[2];
    a[2].n=9; a[0].next='\0';
    p=&a[0];
(A) p++->n        (B) p->n++        (C) (*p).n++        (D) ++p->n
二.填空题
1. 以下程序的运行结果是__________。
    main()
   {
     static struct s1 {char c[4],*s;}
     s1={"abc","def"};
     static struct s2 {char *cp;struct s1 ss1;}
     s2={"ghi",{"jkl","mno"}};
     printf("%c,%c\n",s1.c[0],*s1.s);
     printf("%s,%s\n",s1.c,s1.s);
     printf("%s,%s\n",s2.cp,s2.ss1.s);
     printf("%s,%s\n",++s2.cp,++s2.ss1.s);
   }
第十一章、 位运算
一.选择题
1. 交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算
   符__________。
(A) ~ (B) &    (C) ^    (D) |
2. 以下程序的运行结果是__________。
    main()
   {
     char x=040;
     printf("%d\n",x=x<<1);
   }  
(A) 100        (B) 160        (C) 120        (D) 64
3. 以下程序的运行结果是__________。
    main()
   {
     int x=35;
     char z='A';
     printf("%d\n",(x&15)&&(z<'a'));
   }
(A) 0        (B) 1         (C) 2        (D) 3Z
4. 以下程序中c的二进制值是__________。
   char a=3,b=6,c;
   c=a^b<<2;
(A) 00011011        (B) 00010100        (C) 00011100        (D) 00011000
5. 以下程序的运行结果是__________。
    main()
   {
     int a=5,b=6,c=7,d=8,m=2,n=2;
     printf("%d\n",(m=a>b)&(n=c>d));
   }
(A) 0        (B) 1        (C) 2        (D) 3
二.填空题
1. 位运算是指__________。
2. 在二进制中,表示数值的方法有__________。
3. 按位与的用途有__________。
4. 异或运算的应用有__________。
5. 如果a=3,b=4,下列语句的执行结果是____________。
   a=a^b;b=b^a;a=a^b;printf("a=%d,b=%d",a,b);
6. 对一个数进行左移操作相当于对该数__________。
7. 对一个数进行右移操作相当于对该数__________。
8. 设变量a的二进制数是00101101,若想通过运算a^b使a的高4位取反,低
   4位不变,则b的二进制数应是__________。
9. 若a为任意整数,能将变量a清零的表达式是__________。
10. 能将两个字节变量x的高8位置全1,低字节保持不变的表达式是____。
  
第十二章、 文件
一. 选择题
1. 标准库函数fgets(str,n,file)的功能是___________。
(A) 从文件file中读取长度为n的字符串存入指针str所指的内存
(B) 从文件file中读取长度不超过n-1的字符串存入指针str所指的内存
(C) 从文件file中读取n个字符串存入指针str所指的内存
(D) 从文件file中读取长度为n-1的字符串存入指针str所指的内存
2. 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)
   的返回值是_________。
(A) EOF        (B) –1    (C) 非零值    (D) NULL
3. 缺省状态下,系统的标准输入文件(设备)是指__________。
(A) 键盘    (B) 显示器    (C) 软盘    (D) 硬盘
4. 缺省状态下,系统的标准输出文件(设备)是指__________。
(A) 键盘    (B) 显示器    (C) 软盘    (D) 硬盘
5. 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则
   文件打开时的方式字符串应是__________。
(A) "ab+"            (B) "wb+"    (C) "rb+"         (D) "ab"
6. fscanf函数的正确调用形式是 __________。
(A) fscanf(fp,格式字符串,输出表列);            (B) fscanf(格式字符串,输出表列,fp);
(C) fscanf(格式字符串,文件指针,输出表列);    (D) fscanf(文件指针,格式字符串,输入表列);
7. fwrite函数的一般调用形式是 __________。
(A) fwrite(buffer,count,fp,size);        (B) fwrite(fp,size,count,buffer);
(C) fwrite(fp,count,size,buffer);        (D) fwrite(buffer,size,count,fp);
8. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须
   是__________。
(A) 只写            (B) 追加        (C) 读或读写        (D) 答案B和C都正确
9. 若调用fputc函数输出字符成功,则其返回值是__________。
(A) EOF        (B) 1        (C) 0    (D) 输出的字符
10. 函数调用语句:fseek(fp,-20L,SEEK_END);的含义是__________。
(A) 将文件位置指针移到距离文件头20个字节处
(B) 将文件位置指针从当前位置向后移动20个字节
(C) 将文件位置指针从文件末尾处向后退20个字节
(D) 将文件位置指针移到离当前位置20个字节处
11. 利用fseek函数可实现的操作是 __________。
(A) 改变文件的位置指针        (B) 辅助实现文件的顺序读写
(C) 辅助实现文件的随机读写    (D) 以上答案均正确
12. fseek函数的正确调用形式是 __________。
(A) fseek(文件类型指针,起始点,位移量);        (B) fseek(fp,位移量,起始点);
(C) fseek(位移量,起始点,fp);                    (D) fseek(起始点,位移量,文件类型指针);
13. 函数rewind的作用是 __________。
(A) 使位置指针重新返回到文件的开头        (B) 将位置指针指向文件中所要求的特定位置
(C) 使位置指针指向文件的末尾                (D) 使位置指针自动移至下一个字符位置
14. 函数ftell(fp)的作用是 __________。
(A) 得到文件当前位置指针的位置        (B) 移动流式文件的位置指针
(C) 初始化流式文件的位置指针            (D) 以上答案均正确
15. 在执行fopen函数时,若执行不成功,则函数的返回值是__________。
(A) TURE        (B) –1        (C) 1    (D) NULL
16. 以下fread函数的调用形式中,参数类型正确的是__________。
(A) fread(char *buf,int size, int count,FILE fp)    (B) fread(FILE fp,int * buf,int size,int count)
(C) fread(FILE fp,int size,int count,char * buf)    (D) fread(int count,char *buf,int size, FILE fp)
二.填空题
1. 在C程序中,文件可以用__________方式存取,也可以用__________   方式存取。
2. 在C程序中,数据可以用__________和__________两种代码形式存放。
3. 在C语言中,文件的存取是以___________为单位的,这种文件被称作__________文件。
4. rewind()函数的作用是__________。
5. 在C语言中,能实现改变文件的位置指针的函数是__________。
6. 在C语言中,对文件的存取是以__________为单位,即以__________为单位。
7. 定义FILE *fp,这里fp是一个__________。
8. 在C语言中,文件的打开使用函数__________。
9. 函数调用语句:fgets(buf,n,fp);从fp指向的文件中读入__________个字符放到buf字符数组中。
    函数返回值为__________。
10. 设有以下结构体类型:
    struct st
    { char name[8];
      int num;
      float s[4];
    }student[50];
    并且结构体数组student中的元素都已有值,若要将这些元素写到硬    盘文件fp中,请将以下    fwrite语句补充完整:    fwrite(student,_________________________,1,fp)
11. feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数返回值为__________,否则为_____。
附录:参考答案
第一章 程序设计基本概念
一. 选择题
1-5  B A C D C    6 – 10 C A C B A  
二. 填空题
1. 函数的说明部分,函数体
2. 变量的定义部分,执行部分
3. 最外层的一对大括弧内的部分
4. 输入和输出函数
5. 函数
6. 小写
7. 省
                                                                                                                                                      
第二章 C程序设计的初步知识
一. 选择题
1-5 D D A C B   6-10 A A D A A  11- 15 A B B C A  16-20 D A C B B
二. 填空题
1.   9,6     2.    12,6   3.  15,6    4.    18,6    5. K,5
6.基本数据类型,构造类型,指针,空类型     7.数组,结构体,共用体
8.整型,字符型,实型,枚举类型             9.整型,实型,字符,字符串
10.用一个标识符代表一个常量                11.数值型常量
12.大写,小写       13.数据类型,数据类型    14.标识符
15.基本型,短整型,长整型,无符号型,int,short,long,unsigned
16.L,l  17. 十进制形式,指数形式
18.fg_ab_ c_ _ de
  .h_ _ _ _ _ _j_ _ _k      19.’\0’   20 75.5   21.double   22.-1038- 1038
23.x=3.600000  ,I= 3     24.赋值,算术,逻辑,条件,关系,逗豆
25.(1)2                                26.a<b||a<c
  .(2)3                                  .a>c&&b>c
     CC                                .a<c||b<c
     a=2,b=2,c=4                         .a%2= = 1
27.(1)3  (2)2   (3)3    28. 2,1       29  4,8       30.强制类型转换
第三章 顺序结构
一. 选择题
1-5 A B A B B  6-9 D C C D
二. 填空题
1.控制语句、空语句、复合语句、表达式语句、函数调用语句
2.函数调用  3.在终端设备上按照指定的格式进行输出    4.格式说明和普通字符  5.%%
6.地址,a的地址  7.变量地址,变量名  8.分号  9.包含它的函数,调用函数  10.花括弧
11.GFEDCB  12.10<cr>40<cr>4<cr>4<cr>(<cr>表示回车换行符)
13.10110  14.32<cr>16,15<cr>40<cr>13,13  15.PEOPLEpeople and computer
第四章 选择结构

一. 选择题
1-5 B D B B A  6-10 A A A C D
二. 填空题
1.if(a<=b) {x=1;printf(“####x=%d\n”,x);
  else   {y=2;printf(“****y=%d\n”,y);}
2.a= = 0     b= = 0  _derta < 0      
3.x=1   y= 0
  x=2      
4.x/10
  case 0:case 1: case 2: case 3:case 4: case 5:
                      case 9:

第五章 循环结构
一. 选择题
1-5  C C B C B    6-10  D A B C A
二. 填空题
1表达式1;
 while(表达式2)
 表达式3;
2.终止包含它的最内层循环的执行。或从switch-case语句中跳出,执行后面的语句。
3.switch-case语句          循环
4.结束本次循环执行。
第六章 数组
一. 选择题
1-5 A C A B D  6-10  C C B D C  11-15 D B B C C  16-20  C A D D D  21-25 D A A A B
26-30 D B C D C  31-33 C D D
二. 填空题
1.标志符   2.常量或符号常量    变量 3.m-1,n-1  4.字符数组  5.数组名
6.  1,2,3     7.   2,3,4     8.s[j++] = s[i]     9. c1 != ‘ ‘ && c2 = = ‘ ‘
第七章 函数
一. 选择题
1-5 B B A A D 6-10  A C B B D 11-15 B A B A D 16-20 A B B C D 21-23 B A B
二. 填空题
1.   2,5,1,2,3,-2       2.    2468   3. funct result is:12   4.function running result is:9.0
5. n=1   s
第八章 编译预处理
一. 选择题
1-5 BBDBA   6-10 BBDDD  11-12 BD
二. 填空题
1.First:This is FUN!Second:FUN!     2.从定义命令之后到本源文件结束   3.#undef
4.文件包含
第九章 指针
一. 选择题
1-5 DDDDD  6-8 ADD
二. 填空题
1.   7 1            2.指针变量             3.a=9,b=6
第十章 结构体、共用体

1-5 AACAD    6-11ADBCAD
二.填空题
1.a,d
 abc,def
 ghi,mno
 hi,no


第十一章 位运算
一.选择题
1-5 C D B A A
二.填空题
1.进行二进制位的计算
2.原码、反码、补码
3.清零、取一个数中某些指定位、保留某一数位
4.使特定位翻转、与0异或,保留原值、交换两个值,不用临时变量
5.a=4,b=3   6.乘2    7.除2     8.11110000   9. a=a&0  10. x=x|0xff00

第十二章 文件
一.选择题
1-5 BCABB  6-10 DDCDC 11-16 DBAADA
二. 填空题
1.顺序,随机   2.二进制,ASCII   3.字符,流式     4.使文件位置指针回到文件的开头
5.fseek()函数  6.字符,字节  7.指向FILE类型结构体的指针变量   8.fopen()
9.n-1 buf的首地址  10.  50*sizeof(struct st)     11.  1 0

全国高等学校计算机等级考试(江西考区)
2003年上半年二级c笔试试卷A
(本试卷答卷时间为120分钟,满分100分)
注意事项
一、自已的学校、准考证号和姓名写在答卷纸和答题卡的对应栏内。考试结束后把答题卡和答卷纸放在桌上。教师收卷后才可离开考场。
一、用HB铅笔把自已的准考证号、试题答案的选项填入答题卡对应栏内。
三、本试卷中的选择题,每题有四个可选答案,其中只有一个正确,从提供的答案中选择合适的答案字母标号(A,B,C,D)填入答题卡的对应栏内。试题四的答案写在答卷纸上。
l、计算机基础部分〈30分〉
试题一、选择题(每个选项1分,共30分〉。考生从提供的答案中选择一个正确的,并把所选答案的字母填入答题卡对应栏内。
1.二进制数101101对应的十六进制数为(   1   ),它所对应的十进制数为〈   2   
(1)A.2D    B .2E     C .2A     D .2B
(2)A.90    B .45     C .26     D .15
2.操作系统属于〈  3  
(3)A.系统软件     B .应用软件    C .程序与文档    D .调试程序
3.如果按字长来划分,微型机可以分为8位机、16位机、32位机。所谓32位机是指该计算机所用的CPU( 4 ),微型机的主机通常是指〈 5 〉
(4)A.同时能处理32位二进制数          B .具有32位容量的高速缓存
 C .只能处理32位二进制定点数        D .有32个寄存器
(5)A.CPU         B .CPU和内存        C .CPU、内存与外存         D .CPU、内存与硬盘
4.运算器的主要功能是(  6  )
(6)A.算术运算     B .逻辑运算     C .算术、逻辑运算     D .函数运算
5.下列字符中ASCII码值最小的是(  7  )
〈7〉A. A     B . a     C . K     D . M
6.在局域网中,运行网络操作系统的设备是(  8  )
〈8〉A.网卡    B .网络服务器    C .集线器    D .网桥
7.控制面板的作用是(9)
(9)A.控制所有程序的执行B .对系统进行设置C .设置开始菜单D .设置硬件接口
8.Windows 98的文件名中,最多可以使用(  10  )个英文字符,Windows 98支持一些新的硬件标准,如:USB表示(  11  ) , 在Windows 98中,复选框的作用是(  12  )
〈10〉A.127     B .4      C .5     D .255
(11)A.统一系列块   B .美国商业标准   C .通用串行总线   D .统一标准板
(12)A.可选一个或多个选项    B .自动重复某种操作
  C .给出帮助信息         D .必须选择多项操作
9.Windows 98的文件夹系统采用(  13  )结构。
(13)  A.网状     B .环型     C .树型     D .星型
10.鼠标是Windows 98环境下的一种重要的(  14  )工具。
(14) A.画图     B .指示     C .输入     D .输出
11.Windows 98系统光盘中带有(  15  )
〈15〉  A.上网使用的浏览器     B .所有常用的汉字输入法
    C .所有常用的字处理软件D .各种数据库管理系统
12.在Word编辑状态中,要将光标直接定位到文件末尾,可用(16)键。
(16)A.Ctrl+PageUp   B .Ctrl+PageDown  C .Ctrl+Home   D .Ctrl+End
13.在Word中,如果用户同时编辑了多个文档,现需要一次将它们全部保存起来应执行(  17  )操作。
(17)  A."文件"菜单中的"保存"命令   
   B ."文件"菜单中的"另存为"命令
   C .按住Shift键,并选择"文件"菜单中的"全部保存"命令
   D .按住Ctrl键,并选择"文件"菜单中的"全部保存"命令
14.在默认的Word编辑状态中,执行两次"剪切"操作,则剪贴板中(  18  )。
(18)A.仅有第一次被剪切的内容    B .仅有第二次被剪切的内容
  C .有两次被剪切的内容       D .无内容
15.在Word2000中,下列有关文档分页的叙述,错误的是(19〉
〈19〉A.分页符也能打印出来
   B .可以自动分页,也可以人工分页
   C .将插入点置于人工分页符上,按Del可以删除该分页符
   D .分页符标志着前一页的结束,新一页的开始
16.在word的编辑状态中,设置了一个由多个行和列组成的空表格,将插入点定在某个单元格内,用鼠标单击"表格"菜单中的"选定行"命令,再用鼠标单击"表格"命令菜单中的"选定列"命令,则表格中被"选择"的部分是〈  20  
(20)A.插入点所在的行     B .插入点所在的列     C.一个单元格     D .整个表格
17.默认方式下,Excel 2000工作表的列以(  20  )标记。
〈20 A.数字+字母    B .数字    C .字母+数字    D .字母
18.在工作表Sheetl中,若Al为20,B1为40,在Cl输入公式=A1+B1,则
C1的值为(22)
(22)  A.35      B .45      C .6O      D .70
19.在Excel 2000中,加上填充色是指(  23  )
(23)A.单元格边框的颜色 B .单元格中字体的颜色 C .单元格区域中的颜色 D .不是指颜色
20.以下〈  24  〉不是PowerPoint2000的视图方式。
(24) A.页面视图    B .普通视图    C .幻灯片浏览视图    D .大纲视图
21.在PowerPoint的"自定义动画"设置中,(  25  )是正确的。
(25)A.只能用鼠标来控制,不能用时间来设置控制
  B .只能用时间来控制,不能用鼠标来设置控制
  C .既能用鼠标来设置控制,也能用时间设置控制
  D .鼠标和时间都不能设置控制
22.在播放PowerPoint演示文稿时,〈  26  
(26)A.只能按幻灯片编号的顺序播放     B .只能按顺序播放
  C .可以按任意顺序播放            D .不能倒回去播放
23.静止压缩图像标准是〈  27  
(27)  A.JPG      B .MPEG-l      C .MPEG-2      D .JPEG
24.计算机病毒具有灵活性、隐蔽性、传染性、激发性及破坏性,其中(  28  )是其本质的特征。
〈28〉A.灵活性     B .传染性     C .激发性     D .隐蔽性
25.己知接入Internet网的计算机用户名为Xinhua,而连接的服务商主机名为public.tpt.,相应的E-mail地址应为〈29〉
(29)A.Xinhua@public.tpt.      B .Xinhua.public.tpt.
C .Xinhua.public.@tpt.       D .Public.tpt.
26.计算机中PCI是指〈30〉
(30)A.外设部件互连标准〈技术〉     B .接口电路     C .接口软件     D .显示接口卡
II、程序设计语言部分〈70分〉
试题二、语言基础选择题(每个选项1分,共25分)。考生从提供的答案中选择一个正确的,并把所选答案的字母填入答题卡对应栏内。
1.C语言程序是由( 30 )组成的。
(31)A.子程序     B .过程     C .函数     D .主程序和子程序
2.以下关于C语言标识符的描述中,正确的是( 32 )
〈32〉A.标识符可以由汉字组成      B .标识符只能以字母开头
   C .关键字可以作为用户标识符 D .Area与area是不同的标识符
3.C语言中,以下( 33 )不是正确的常量。
〈33〉A.543210L      B .05078      C .-Ox41     D .12345
4.(34)不是C语言提供的合法的数据类型关键字。
〈34〉A.integer      B .float      C .signed      D .char
5.属于非法转义字符的是(35)
(35)A.'\d'     B .'\Oxf'     C .'\037'     D .'\f'
6.若int a,b,c;,则表达式(a=2,b=5,b++,a+b)的值是〈36〉
(36)A.7      B .8      C .6      D .2
7.以下非法的赋值语句是〈37〉
(37)A.x=j>0;     B .j++;      C .++(i+1);     D .n=(i=2,++i);
8.C语言的一个源程序中定义的外部变量的作用域为(38)
〈38〉A.本文件的全部范围         B .本程序的全部范围
   C .本函数的全部范围        D .从定义该变量的位置开始至本文件结束
9.判断char类型的变量cl是否为数字字符的正确表达式为〈39〉
(39)A.(cl>=0)&&(c1<=9)           B .(c1>='0')&&(c1<=’9’)
  C .'0'<=c1<=’9'             D .(c1>='0')||(cl<='9’)
10.若int x=lO;,则表达式x+(char)1/2.0值的类型是〈40〉
〈40〉A.int       B .double          C .float         D .unsigned
11.使下列程序段输出”123,456,78”由键盘输入数据,正确的输入是(41)
int i,j,k;
scanf(”%d,%3d%d”,&i,&j,&k);
printf(”%d,%d,%d\n”,i,j,k);
(41)A.12345678        B .123,456,78         C .123,45678        D .123,*45678
12.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为〈42〉
(42)A.a           B .!a           C .a<>O         D .a=0
13.下面关于C语言用户变量的定义与使用中,不正确的描述是〈43〉
(43)A.变量应先定义后使用
  B .变量按所定义的类型存放数据
  C .系统在编译时为变量分配相应的存储单元
  D .通过类型转换可更改变量存储单元的大小
14.下面程序段的输出是〈44〉
int **pp,*p,a=2,b=3;
pp=&p;p=&a;p=&b;
printf(“%d,%d\n”,*p,**pp);
〈44〉A.2,2         B .2,3         C .3,2         D .3,3
15.执行语句for(i=10;i>O;i--);后,变量i的值为〈45〉
(45)A.1O       B .9        C .O         D .1
16.下面不正确的语句为〈46〉
(46)A.if((a=b;)>O)t=a;       B .if((a=b)>O) t=a;
  C .if(a>b);              D .if(a<b){a++;b++;}
17.若对两个数组a和b进行初始化
char a[]='ABCDEF";
char b []={'A','B','C','D','E','F'};则下列叙述正确的是(47)
(47)A.a与b数组完全相同       B .a与b数组长度相同
  C .a与b数组都存放字符串  D .数组a比数组b长度长
18.若int  x=10;,则表达式(x&&1535)&(x|55&100)的正确结果是〈48〉
(48)A.0          B .l           C .1O            D .11
19.有关下述语句输出的判断中,正确的是〈49〉
char x='\xeO-1';printf(“%d”,x);
(49)A.赋值非法        B .输出值不确定       C .输出值为-2       D .输出值为224
20.在C语言中,逻辑值"真"用(50)来表示。
(50)A.大于0的数         B .true          C .非零整数          D .非零的数
21.下列关于switch和break语句的论述中,正确的是(51〉
(51)A.break语句是switch语句中的一部分
  B .在switch语句中可以根据需要使用或不使用break语句
  C .在switch语句中必须使用break语句
  D .以上三个结论中有两个结论是正确的
22.在位运算中,操作数每右移一位,其结果相当于(52)
(52)A.操作数乘以2   B .操作数乘以4    C .操作数除以2      D .操作数除以4
23.执行下面语句后,变量z的二进制值是(53)char x=3,y=6,z ;z=x^y<<2;
〈53〉A.00010100    B .00011011    C .00011100    D .00011000
24.若定义int a[3][4];,则下列选项不能表示数组元素a[1][1]地址的
是〈54〉
(54)A.a[1]+1        B .&a[1][1]         C .*(a+1)[1]         D .*(a+5)
25.在函数调用f((m1 m2),(m3,m4,m5),m6)中,共有〈55〉个实参。
(55)A.3          B .4           C .5            D .6
试题三、程序阅读选择题〈每个选项2分,共30分〉。考生从提供的答案中选择一个正确的,并把所选答案的字母填入答题卡对应栏内。
1.下面程序的输出结果是(56)
#include 〈stdio.h〉
 main()
{int i,j ;
 i=j=2;
 if(i)
  if(j==2)
   {i++,j++,printf("\n%d,',i+j);}
  else
   {i--,j--,printf("\n%d,',i-j);}
 if(i)
  for (j=1;j<i-1;j++)
   if(j==i)
     printf("j=%d,",j);
   else
     printf("OK");
(56)A.4,OK          B .4,2           C .6,OK            D .6,2
2.下面程序运行的结果是(57〉
 main ()
{int i=1,vl=0,v2=0,v3=0;
for(i=5;i<15;i++)
{switch (i%3)
 { case l:vl++;
  case 2:v2++;break;
  default :v3++;
  }
}
printf("%d,%d,%d\n",v1,v2,v3);
(57)A. 0,1,O        B . 3,7,3          C . 3,6,3           D .   2,7,3
3(下面函数reverse的功能是将a所指数组中的内容进行逆置,程序运行后的输出结果是〈58〉
void reverse (int a[],int n)
{ int i,t ;
 for(i=0;i<n/2;i++)
 {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
 main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10};
 int i,s=0;
 reverse (b,8);
 for(i=6;I<10;i++) s+=b[i];
 printf("%d\n",s);
〈58〉A. 22         B . 10          C . 34          D .30
4.下面程序运行的结果是(59)
int a ;
fun (int i)
{ a+=2*i;
 return a ;
}
 main()
{ int a=10;
 printf("d,%d\n",fun(a),a);
〈59〉A. 22,1O           B . 22,22           C . 20,2O            D . 20,10
5.下面程序的功能是把数组元素中的最大值放入a[O]中,请在(60)处选择正确的答案。
 main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;
 for (i=0;i<10;i++,p++)
 if(〈60〉)  *a=*p;
 printf("%d",*a);
〈60〉A.p>a              B .*p>a[O]            C .*p>*a[O]             D .*p[O]>*a[O]
6.下面程序的输出结果是<60>
#include 〈stdio.h〉
float fun (int n)
{ static float f=1.0;
 f*=n;
 return f;
}
 main()
{ int i;
 float s ;
 for(i=1;i<=5;i++) s=fun(i);
 printf("%-8.2f\n",s);
}
(61)A.120.OO       B .24.OO          C .5.OO          D .720.00
7.下面程序运行的结果是(62)
#include <stdio.h>
 main()
{ static char a[]="Language",b[]="program";
 char *p1,*p2;
 int k;
 pl=a;p2=b;
 for (k=0;k〈=7;k++〉
  if(*(pl+k)==*(p2+k))
   printf("%c",*(p1+k));
}
〈62〉A.gae        B .ga          C .Language          D .有语法错
8.下面程序运行后,输出的结果是〈63〉
#include 〈stdio.h〉
 main()
{ int count,j,k,s1,s2,n=5;
 s1=s2=0;
 for (count=0,j=2,k=1;count〈n;++count,j+=2,k+=2〉;
 { sl+=j;
  s2+=k; }
 printf("s1=%d s2=%d",s1,s2);
(63)A.sl=2 s2=l       B .s1=3 s2=2    C .sl=3O s2=25     D .sl=12 s2=11
9.若float型数据占4个字节,int型数据占2个字节,char型数据占1个字节,下面程序运行的结果是〈64〉.
 main ()
{struct st_type
 { char name [10];
  float score[3];
 };
 union u_type
 { int i ;
  unsigned char ch;
  struct st_type student ;
 }t;
printf("%d\n",sizeof(t));
〈64〉A.25         B .12           C .3           D .22
10.下面程序运行后,输出的结果是〈65〉
#define M(x,y,z) x*y+z
 main()
{ int a=1,b=2,c=3;
 printf("%d\n",M(a+b,b+c,c+a));
<65>A.19         B .17          C .15         D .12
11.执行下面的程序正确的选项是〈66〉
 main()
{ int x=3,y=0,z=0;
 if(x=y+z) pintf("****");
 else      printf("####");
〈66〉A.可以通过编译但不能通过连接,因而不能运行
   B .有语法错误不能通过编译
   C .输出****
   D .输出####
12.下面程序运行后,输出的结果是〈67〉
#include 〈stdio.h〉
#include 〈string.h〉
 main()
{ char a[9]="1234567";
 char b[4]= "abc";
 strcpy(a,b);
 printf("%c",a[4]);
}
(67)A.c            B .\O           C .5           D .4
13.下面程序运行后,输出的结果是〈68〉
typedef union
{ long x[2];
 int y[4];
 char z[8];}MYTYPE;
MYTYPE them
 main()
{printf("%d\n",sizeof(them));
}
(68)A.8         B .16           C .24           D .32
14.下面的函数binary()是应用折半查找法从10个按升序排列的整数数组
中对关键字m进行查找,如果查找成功则返回其下标值,否则返回-1.请在
处选择正确的答案。
binary (int a[10],int m)
{ int low=0,high=9,mid ;
 while (low<=high)
 { mid=(low+high)/2;
  if(m<a[mid]) ( 69 )
  else if(m>a[mid])〈 70 〉;
  else return mid;
  }
return -1;
}
(69)A.high=mid-l    B .low=mid+1   C .high=mid+1     D .low=mid--1
(70)A.high=mid-l    B .low=mid+1   C .high=mid+1     D .low=mid—1
试题四、综合应用题(共15分)。考生把答案写在答卷纸对应栏内,所谓水仙花数是指一个3位的自然数,如果该数各个数位上数字的立方和等于该数本身,则这个数就称为水仙花数,例如153=1*1*1+5*5*5+3*3*3。
请编程输出所有的水仙花数,同时求出这些水仙花数的累加和。
屏幕输出格式如下:
153=l*1*1+5*5*5+3*3*3
370=3*3*3+7*7*7+0*0*0
……
407=4*4*4+O*O*O+7*7*7
==========
sum=xxxx(注:累加和)
=========
实验强化题
gc22.c程序是输入一个字符串, 将此字符串中最长的单词输出,程序在注释行附近有两个错误,请试调试改正。
 int  alph(char c)
{
if((c>='a'&&c<='z')|| (c>='A'&&c<='Z'))        return(1);
else        return(0);        /*   find 1   */
}
int longest(char str)
{      int len=0,i,length=0,flag=1,point,place;
      for(i=0;i<=strlen(str);i++)
       if(alph(str[i]))
       if(flag)
       {          flag=0;          point=i;       }
       else          len++;
       else          /*    Find 2    */
       {           flag=0;
          if(len>length)
          { length=len;
           place=point;
           len=0;
          }
       }
       return(place);
}
 main( )
{     int i;
     char line[100];
     printf("Enter string\n");
     gets(line);
     printf("the longest is:");
     for(i=longest(line);alph(line[i]);i++)
       printf("%c",line[i]);
     printf("\n");
}
2010-07-11 16:46
Cc丶
Rank: 2
等 级:论坛游民
帖 子:71
专家分:53
注 册:2010-7-9
收藏
得分:0 
tk22.c打印出杨辉三角形,在空白处将程序补充完整。
1
1  1
1 2  1
1 3  3  1
1 4  6  4  1
1 5  10 10 5  1
.
#define  N  11
 main( )
  {
int I,j,a[N][N];
for (I=1; I<N; I++)
  {  a[I][I]=1;
       (1)   
   }
for (I=3;I<N; I++)
  for (   (2)  )
    a[I][j]=a[I-1][j-1]+a[I-1][j];
  for (I=1;I<N;I++)
    {  for (j=1;j<=I;j++)
       printf("%6d",a[I][j]);
       printf("\n");
     }
     printf("\n");
   }

gc23.c    下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近。
    #define NULL 0
    struct stud
     {
       long  num;
       char name[10];
       float score;
       struct stud *next;
     };
   /*  …………… comment  ……………    */
    int n;
    struct stud  create()
     {
    struct stud *head,*p1,*p2;
    n=0;
p1=p2=(struct stud *)malloc(sizeof(struct stud));
scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);
      /*   ……………comment  ……………      */
    head=NULL;
    while(p1!=0)
      {
    n=n+1;
    if(n==1) head=p1;
    else p2->next=p1;
p1=(struct stud *)malloc(size(struct stud));
scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);
       }
      p2->next=NULL;
      return(head);
    }
tk23.c    下面的程序是完成从键盘上输入若干行长度不一的字符串把其存到一个文件名为ttt.txt的磁盘文件上去,再从该文件中输出这些数据到屏幕上, 将其中的小写字母转换成大写字母。请在下划线空白处将其补充完整。
  #include <stdio.h>
      main( )
      {
    int i,flag;
    char str[80],c;
    FILE  *fp;
    if((fp=fopen("TTT","w"))==NULL)
      {  printf("can't create file\n");
         exit(0);
      }
       for(flat=1;flag;)
    { printf("请输入字符串\n");
      gets(str);
      fprintf(fp,"%s",str);
      printf("是否继续输入?\n");
      if((c=getchar()=='N'||  (1)  )
        flag=0;
      getchar();
    }
      fseek(fp,0,0);
      while(fscanf(fp,"%s",str)!=EOF)
    { for(i=0;str[i]!='\0';i++)
      if((str[i]>='a'&&(str[i]<='z'))
        str[i]=_(2)  
      printf("%s",str);
      }
      fclose(fp);
     }
gc56.c程序用于将字符串中的小写字母转换为大写字母,程序中有两处错误,请调试改正不得增删语句.(20分)
#include<stdio.h>
void  main(void)
{
    char  s[255];
    scanf("%s",s);
    int i;
    for (i=0;s[i];i++)
        if(s[i]>='b' && s[i]<='z')
            s[i] = s[i] + 'a' + 'A';
    printf("%s",s);
}
tk56.c程序用于计算4×5的整型数组中最大元素所在行和列的位置。请将其补充完整。(20分)
#include <stdio.h>
void  main(void)
{
    int  a[4][5]={{4,8,9,10,12},
                {2,5,13,17,11},
                {81,76,34,57,33},
                {1,90,3,78,55}};
    int  max , max_row , max_col;
    int i,j;
    max=___________;
    max_row=0;
    max_col=0;
    for (i=0;i<4;i++)
        for (j=0;j<5;j++)
            if(____________)
            {
                max=a[i][j] ;
                max_row = i ;
                max_col = j;
            }
    printf("%d %d",max_row,max_col);
}
tk57.c用来输出两整数M和N之间的所有素数(质数)。所谓一个整数n为素数,是指n除了能被1和其本身n除尽外,不能被2到n-1中的任何整数除尽。如7为素数,而9不是素数。程序中,外循环变量i用于控制整数选择范围,内循环变量j用于判断某整数i是否为素数,若是,
则输出该素数,且通过变量s来控制每行输出5个素数。
#define M 4
#define N 30
 main()
{
 int i, j, k, s=0;
 for(i=M; i<= ________ ; i++)
    { for(j=2; j<_______ ; j++)
      if(i%j== 0  ) break;
      if(j>=i)
        { printf("%5d", i);
          s=s+1;
          if(   s%5==0  ) printf("\n");
        }
    }
 printf("\n");
}
gc57.c的功能是互换给定数组中的最大数和最小数。如将下面8个数:    5,3,1,4,2,8,9,6
变成:    5,3,9,4,2,8,1,6
   程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。
在**********之间有二处错误,请改正。
 main()
{
 int i;
 static int a[8]={5,3,1,4,2,8,9,6};
 void jhmaxmin();
 printf(" Original array: \n");
 for(i=0; i<8; i++)
    printf("%5d",a[i]);
 printf("\n");
 jhmaxmin(a,8);
 printf(" Array after swaping max and min: \n");
 for(i=0; i<8; i++)
    printf("%5d",a[i]);
 printf("\n");
}
void jhmaxmin(p,n)
***************************
int p, n;
{
 int t, *max, *min, *end, *q;
 end=p+n;
 max=min=p;
 for(q=p+1; q<end; q++)
   { if(*q>*max) max=q;
     if(*q<max) min=q;
   }
**************************
 t=*max; *max=*min; *min=t;
}
gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。
#include <stdio.h>
 main()
{
  static int a[10][10];
  int i,j,k;
  for (i=0;;i++)
  {
    for (k=0;k<_-i;k++) printf(" ");
    for (j=0;j<=i;j++)
    {
      if (j==0||j==i) a[i][j]=1;
      else ___________________________;
      printf(" ");
      printf("%4d",a[i][j]);
    };
    printf("\n");
    if (j>=10) break;
  }
}
sj101.c编写程序判断一个文本文件(Data101.txt)(该文件在考生目录夹下)是否是前后对称.(所谓对称指:文件的第一个字符等于最后一个字符,第二个字符等于倒数第二个字符,依次类推)
    要求:1. 直接在文件中进行判断,不能将文件内容先全部读入内存,再进行判断.
        2. 若对称,将整数600以二进制形式在考生目录夹下写入二进制文件"sj101.c";否则,将整数800以二进制形式写入"res".
//这是我自己写的,仅供参考
#include <stdio.h>
 main()
{int i=0,j=0;
char c1,c2,ch;
FILE *fp;
if((fp=fopen("data101.txt","rb"))==NULL)
{ printf("cannot open file\n"); exit(0);}
do
{ ch=fgetc(fp);
 j++;}
while(ch!=EOF);
rewind(fp);
j--;
while(i<j)
{
 c1=fgetc(fp); i++;
 fseek(fp,-i,SEEK_END);
 c2=fgetc(fp); j--;
 if(c1!=c2) break;
 fseek(fp,i,SEEK_SET);
}
if(i>=j-1) DecToBinary(600,"sj101.c");    //symmetry
else DecToBinary(800,"res");    //no symmetry
}
void DecToBinary(int num,char filename[])
{
if((fp=fopen(filename,"wb"))==NULL)
{ printf("cannot open file:%s \n",filename); exit(0);}
putw(num,fp);   
}
tk130.c  若一个整数x除了能被1和其本身x除尽外,不能被2到x-1中的任何整数除尽,则此数即为素数(或质数)。例如7是素数,而9不是素数。下面程序的功能是:将任意输入的一个大偶数n分解为两个素数之和,并给出各种分解方法。例如n=10时,分解后的结果为 10=3+7 和 10=5+5。请填空(替换掉下划线部分)。
   程序中,函数check用来判断一个整数x是否是素数,若是,返回1,否则返回0 。
  #include "stdio.h"
   main( )
  {
   int  n,  i;
   int check( int  x );
   do {
       printf( " Input n: " );
       scanf( " %d" , &n );
      } while( n % 2 != 0 );
   for( i=3; i<= n/2 ; i++ )
     if( check ( i )  && _____________ )
        printf( " %d = %d + %d \n ", n, i, n-i );
  }
  int  check ( int  x )
  {
   int  i;
   for( i=2; i< x ; i++ )
     if( ___________ )  return ( 0 );
   return ( 1 );
  }
gc130.c 下面程序中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。请改正函数sub中的两个错误。不要改动 main 函数。
   #include "stdio.h"
   #include "conio.h"
   #include "string.h"
   void  sub( char *s,  char  *t )
   {
    int  i, d;
    d=strlen( s );
    for( i=1; i< d ; i++ )
      t[i]=s[d-1-i] ;
    for( i=0; i<d; i++ )
      t[d+i]=s[i] ;
    t[2*d]='/0' ;
   }
   main( )
  {
   char s[100], t[100];
   clrscr( ) ;
   printf( " \n Please  enter  string  S : " );
   scanf("%s" , s );
   sub(s,t) ;
   printf( " \n The  result  is :  %s \n ", t );
  }

gc154.c程序的功能是从键盘输入一行字符,
分别统计其中的字母、数字、空格和其它字符的个数。但该程序中有2处错误,请调试并改正。
#include <stdio.h>
 main()
{ int c;
  int letter=0,digit=0,space=0,other=0;
  printf("Please input a string:\n");
  while (c=getchar()!='\n')
    if (c>='a'&&c<='z'||c>='A'&&c<='Z')
       letter++;
    else if (c>='0'&&c<='9')
       digit++;
    else if (c=' ')
       space++;
    else
       other++;
  printf("letter=%d, ",letter);
  printf("digit=%d, ",digit);
  printf("space=%d, ",space);
  printf("other=%d\n",other);
}

sj155.c   有一分数序列:2.0/1.0,3.0/2.0,5.0/3.0, 8.0/5.0,13.0/8.0,...,编程求出这一序列的前100项之和,并且要求用putw函数将和的整数部分以二进制方式写到考生目录夹下名为sj155.c的文件中。
//此为我编写,供参考
 main()
{int n,i;FILE *fp;
 double sum,mole,deno,temp;
 printf("Input n:");
 scanf("%d",&n);
 sum=0;
 mole=2;deno=1; //mole为分子,deno为分母
 for(i=0;i<n;i++)
 {sum=sum+mole/deno;
 temp = mole+deno;
  deno = mole;
  mole = temp;
 }
if((fp=fopen(filename,"wb"))==NULL)
{ printf("cannot open file:%s \n",filename); exit(0);}
putw( (int)sum , fp );     
}
gc163.c的功能是实现求1000以内的自然数中的完数及其个数(所谓完数,指它恰好等于除它本身之外的因子之和,如:6=1+2+3,28=1+2+4+7+14),并显示结果。但该程序中有2处错误,请调试并改正。
#include <stdio.h>
void  main(void)
{
  int i,k,m,n,s,p;
  int a[100];
  printf("\n10000以内的自然数中的完数有:");
  for (i=2;i<=10000;i++)
      { s=0;
    m=0;
    for (k=1;k<=i/2;k++)
       { if (i%k==0)
           { s=s+k;
         a[m]=k;
         m=m+1;
           }
       }
    if (s=i)
       { p=p+1;
         printf("\n%d=%d",s,a[0]);
         n=1;
         while (n<m)
           { printf("+%d",a[n]); n=n+1; }
       }
      }
  printf("\n总个数为: %d\n",p);
}

sj163.c编程求 66**77 (66的77次方)除以119的余数,并且要求用putw函数将余数以二进制方式在考生目录夹下写到名为sj163.dat的文件中。
//循环实现,较好
for(product=1,I=0;I<77;I++)
    product=product*66;
product%=119;
………
//或调用math.h中的pow(66,77)函数,但不推荐。

gc165.c 程序中的函数find_str()用来返回字符串s2在字符串s1中第一次出现的首地址;如果字符串s2不是s1的子串,则该函数返回空指针NULL。
#include <stdio.h>
#include <string.h>
char *find_str(char *s1,char *s2)
{
  int i,j,ls2;
  ls2=strlen(s2);
  for(i=0;i<=strlen(s1)-ls2;i++)
  {
    for(j=0;j<ls2;j++) if(s1[j+i]!=s2[j])break;
    /* ..............   comment one  .............. */
    if(j==ls2)return(s1+j);
  }
  return NULL;
}

void  main()
{
  char *a="dos6.22 windows98 office2000",*b="windows",c;
  /* ..............   comment two  .............. */
  c=find_str(a,b);
  if(c!=NULL)printf("%s\n",c);
  else printf("未找到字符串%s\n",b);
}
tk165.c 程序首先定义了一个结构体变量(包括年、月、日),然后从键盘上输入任意的一天(包括年月日),最后计算该日在当年中是第几天,此时当然要考虑闰年问题。
struct datetype{
  int year;
  int month;
  int day;
}date;
 main()
{int i,day_sum;
static int day_tab[13]
={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年、月、日:\n");
scanf("%d,%d,%d",&date.year, &date.month, &date.day);
day_sum=0;
for(i=1;i<date.month;i++)day_sum+=day_tab[i];
  _______(1)_________;
if((date.year % 4 == 0 && date.year % 100 != 0 || date.year % 400 ==0)  && ______(2)_______ )
      day_sum+=1;
printf("%d月%d日是%d年的第%d天\n",
  date.month,date.day,date.year,day_sum);
}
gc166.c程序的功能是:计算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。
   例如,当输入的正整数为237时,
         s的值为12,t的值为42。
#include "stdio.h"
 main()
{
    int n, yw, s=0, t=0;
    scanf("%d", &n);
    while(n!=0)
      {
       yw=n%10;
       s=s+yw;
       t=t*yw;
       n=n%10;
      }
     printf("s=%d, t=%d\n", s, t);
}

tk166.c程序中,函数fun的功能是:将s所指字符串中下标为偶数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。例如,当s所指字符串中的内容为“ABCDEFGHIJK”,在t所指数组中的内容应是“BDFHJ”。
  #include <conio.h>
  #include <stdio.h>
  #include <string.h>
  void fun(char *s, char t[])
  {
   int i, j, n;
   n=strlen(s);
   for(i=0, j=0; i<n; i++)
      if( ____________ )  
        { t[j]=s[i]; j++; }
   t[j]= ______ ;
  }
    main()
  {
   char s[80], t[80];
   clrscr();
   printf("\n Please enter string s: ");
   scanf("%s", s);
   fun(s, t);
   printf("\n The result is: %s\n", t);
  }
sj171.c有一递推数列,满足条件:f(0)=0,f(1)=1,f(2)=2,…,f(n+1)=2f(n)+f(n-1)f(n-2)(n>=2)编写程序求f(8)的值,并将结果以二进制形式在考生目录下写入文件“sj171.c”。
//递归程序
f(int n)
{  if(n=0) return 0;
  if(n=1) return 1;
 if(n=2) return 2;
 return  f(n+1)=2f(n)+f(n-1)f(n-2);
}
 main()
{    int result;
  result=f(8);
  ……..
}
gc227.c 中函数fun的功能是:使输入的一个字符串按反序存放,并在主函数中输出。
#include <string.h>
#include <stdio.h>
 main()
{char str[100];
 printf("Input string:");
 scanf("%s",str);
 fun(str);
 printf("The result:%s\n",str);
}
fun(str)
char str[];
 {char t;
  int i,j;
  for(i=0,j=strlen(str);i<strlen(str)/2;i++,j++)
  {t=str[i];str[i]=str[j-1];str[j+1]=t;}
 }
gc228.c 代码功能为:使用指针将数组a中10个整数按相反的顺序存放。
void inv(x,n)
int *x,n;
{int *p,t,*i,*j,m=(n-1)/2;
i=x;
j=n;
p=x+m;
for(;i<=p;i++,j--)
{t=*i;*i=*j;*j=t;}
return;
}
 main()
{int a[10],i;
 printf("input 10 number");
 for(i=0;i<10;i++)
  scanf("%d",&a[i]);
 printf("The original array:\n");
 for(i=0;i<10;i++)
  printf("%d,",a[i]);
printf("\n");
inv(a,n);
printf("The array has been inverted:\n");
for(i=0;i<10;i++)
 printf("%d,",a[i]);
 printf("\n");
 }
sj228.c在主函数中从文件sj228.c中读入10个不等长的字符串,编写函数对它们排序,然后在主函数中输出排好序的字符串,并将结果写入文件out.dat中。
//思路是这样的,没调试,可能有一点问题。
#define N 30
#include "stdio.h"
#include "string.h"
void sort(char *ch[],int n)
{
 int i,j,k;
 char *temp;
 for(i=0;i<n-1;i++)
 {
  k=i;
  for(j=i+1;j<n;j++)//以长度为标准排序。
   if( strlen(ch[k]) > strlen(ch[j]) ) k=j;
  if(k!=i)
  {temp=ch[i];ch[i]=ch[k];ch[k]=temp;}
 }
}

 main()
{int i=0,j=0;
char *ch[10];
FILE *fp;
void sort(char *ch[],int n);
if((fp=fopen("sj228.c","rb"))==NULL)
{ printf("cannot open file:sj228.c \n"); exit(0);}
for(i=0;i<10;i++)
 fgets(ch[i],N,fp);
sort(ch,10);
if((fp=fopen("out.dat","w"))==NULL)
{
 printf("cannot open file:out.dat \n");
 exit(0);
}
for(i=0;i<10;i++)
 fputs(ch[i],fp);
}
tk234.c中函数fun的功能是:将a所指字符串中字符的倒序,和b所指字符串中的倒序, 按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。        (类gc130.c)
例如,当a所指字符串中的内容为"abcdefg", b所指字符串中的内容为"1234"时,则c所指数组中的内容应该为"g4f3e2d1cba";而当a所指字符串中的内容为"1234",b所指字符串中的内容为"abcdefg"时,则c所指数组中的内容应该为"4g3f2e1dcba"。
#include <stdio.h>
#include <string.h>
#include <conio.h>
void myswap( char *s )
{
char *sp, *st, ch;
sp = s;
st = s + strlen(s) - 1;
while ( sp <= st )
{ ch = *sp; *sp = *st; *st = ch; sp++; st--; }
}
void fun( char *a, char *b, char *c )
{
char s1[100], s2[100] , *sa, *sb;
strcpy( s1,a );
strcpy( s2, b );
myswap ( s1 );myswap( s2 );
sa = s1 ; sb = s2 ;
while (___________ )
{ if ( *sa ){ *c = *sa; c++; sa++; }
if ( *sb ){ *c = *sb; c++; sb++; }
}
___________;
}

 main()
{
char s1[100], s2[100], t[200];
clrscr();
printf("\nEnter s1 string : ");scanf("%s",s1);
printf("\nEnter s2 string : ");scanf("%s",s2);
fun( s1, s2, t );
printf("\nThe result is : %s\n", t );
}
gc234.c中函数fun的功能是:求S的值。
S= ((2*2)/3) * ((4*4)/(3*5)) * ... *
((2*k*2*k)/((2*k-1)*(2*k+1)) )
请改正函数fun中的两个错误。
#include "stdio.h"
#include "dos.h"
fun( int k )
{ int n;
 float s, w, p, q;
 n = 1; s = 1.0;
 while ( n <= k )
 {
  w = 2.0 * n;
  p = w - 1.0;
  q = w + 1.0;
  s = s * w *w/p/q;
  n++;
 }
 return s
}
 main ( )
{ clrscr( );
 printf("%f\n", fun (10));
}
gc273.c功能是:一个偶数总能表示为两个素数之和。
请改正程序的两个错误。
#include "stdio.h"
#include "math.h"
 main()
{ int a,b,c,d;
  scanf("%d",a);
  for(b=3;b<=a/2;b+=2)
    { for(c=2;c<=sqrt(b);c++)
    if(b%c==0) break;
      if(c>sqrt(b))
    d=a+b;
      else
    break;
      for(c=2;c<=sqrt(d);c++)
    if(d%c==0) break;
      if(c>sqrt(d))
    printf("%d=%d+%d\n",a,b,d);
    }
}
tk273.c中函数fun的功能是:将字符串s1中出现在字符串s2中的字符删除。例如:s1为"abcaa63akdfk"。调用fun(s1,s2)后,s1为"bc63df"。
 main()
{ char s1[300]="abcaa63akdfk",s2[300]="ayk5";
  fun(s1,s2);
    printf("%s\n",s1);
    }
    fun(char *s1, char  *s2)
    { char *p1=s1,*p2;
      while (*s1)
     { p2=s2;
       while (*p2&&(________!=*p2)) p2++;
         if (*p2=='\0') *p1++=*s1;
       s1++;
     }
      *p1='\_____';
  }
tk274.c本程序通过调用函数invert()将数组a中的元素头尾倒置过来。例如:若倒置前数组a中原来的元素为1,3,5,2,4和6,则头尾倒置后数组a的元素变为6,4,2,5,3和1。
假设数组a的初值就是1,3,5,2,4,6这六个数,在程序运行时输入。
#include <stdio.h>
#define N 6
void invert(s,i,j)
int *s,i,j;
{
  int t;
  if(i<j)
  {
    t=*(s+i);
    *(s+i)=*(s+j);
    *(s+j)=t;
    invert(s,_____(1)_____,j-1);
  }
}
 main()
{
  int a[N],i;
  for(i=0;i<N;i++)scanf("%d",a+i);
  _____(2)_____ ;
  for(i=0;i<N;i++)printf("%d  ",a[i]);
  printf("\n");
}
gc274.c本程序用于输出如下所示的图形。
                  1
                121
              12321
            1234321
          123454321
        12345654321
      1234567654321
    123456787654321
  12345678987654321
1234567890987654321
  12345678987654321
    123456787654321
      1234567654321
        12345654321
          123454321
            1234321
              12321
                121
                  1

#include <stdio.h>
#include <math.h>
 main()
{
  int i,j,n;
  char s[20]="1234567890987654321";
  printf("\n\n");
  /* ...........comment 1................*/
  n=10;
  for(i=-n/2; i<=n/2; i++)
  {
    for(j=0;j<=15+abs(i); j++)printf("%c",' ');
    /* ...........comment 2................*/
    for(j=0;j<=n/2-abs(i);j++)printf("%c",s[j]);
    for(j=n/2-abs(i); j<19;j++)printf("%c",s[j]);
    printf("\n");
  }
}
gc279.c的功能:函数prn_star(m,left)输出正菱形图案,其中参数m 代表图案的行数(为一奇数),left代表图案距屏幕左边的列数。    函数prt_str(m,left)中有两处错误代码,请指出并改正之。
#include  <stdio.h>
void prn_star(m,left)
int m,left;
{ int i,j,p;
  for (i=1;i<m;i++)
    { if (i<=m) p=i;
      else p=m+1-i;
      for (j=1;j<=left+(m-(2*p-1))/2;j++)
    printf(" ");
      for (j=1;j<=2*p-1;j++)
        printf("o");
      printf("\n");
    }
}
 main()
{ int m,left;
  printf("请输入正菱形图案的行数:");
  scanf("%d",&m);
  printf("请输入正菱形图案距屏幕左边的列数:");
  scanf("%d",&left);
  prn_star(m,left);
}
gc280.c功能为:M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时,此人出圈,直到圈中只剩下一个人为止。请按退出次序输出出圈人原来的编号以及留在圈中的最后一个人原来的编号。程序中有两处错误代码,请指出并改正之。
#include<stdio.h>
#define M 10  /*number of person*/
#define N  2  /*eliminate a person for N compartment*/
void  main() {
  int i,j,k,n;
  static a[M];
  int b[M];
  /*eliminate persons from array a to array b */
  for (n=0,j=k=M-1;n<k;--n) {
    for (i=0;i<N;++i)
      while (1) {
    if (++j>k)
      j=0;
    if (!a[j])
      continue;
      }
    b[n]=j+1;  /*record No. of eliminated person*/
    a[j]=-1;
  }
   /*output*/
   for (i=0;i<k;++i)
     printf("%d  ",b[i]);
   for (i=0;i<M;++i)
     if (!a[i])
       printf("%d\n",i+1);
}
sj280.c编写程序:从磁盘文件data280.txt(该文件在考生目录夹下)中读入一行字符,将其中所有大写字母改为小写字母,然后输出到考生文件夹下的磁盘文件out.dat中。

gc304.c中的函数fun()的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为:"abc12"时,则t中的字符串应为:"abc1221cba"。        (类gc130.c)
#include <stdio.h>
#include <string.h>
void fun (char *s, char *t)
{
  int i, st;
  st = strlen(s);
  /* ..............   comment one  .............. */
  for(i=0; i < st; i++)
    t[st] = s[i];
  for (i=0; i < st; i++)
    t[st+i] = s[st-i-1];
  /* ..............   comment two  .............. */
  t[st] = '\0';
}
void  main( )
{
  char s[100], t[100];
  printf("\nPlease enter string s: ");
  gets(s);
  fun(s, t);
  printf("The result is: %s\n", t);
}
tk305.c程序中,函数fun的功能是:将s所指字符串中下标为偶数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。
例如,当s所指字符串中的内容为“ABCDEFGHIJK”,在t所指数组中的内容应是“BDFHJ”。  
  #include <conio.h>
  #include <stdio.h>
  #include <string.h>
  void fun(char *s, char t[])
  {
   int i, j, n;
   n=strlen(s);
   for(i=0, j=0; i<n; i++)
      if( ____________ )  
        { t[j]=s[i]; j++; }
   t[j]= ______ ;
  }
   main()
  {
   char s[80], t[80];
   clrscr();
   printf("\n Please enter string s: ");
   scanf("%s", s);
   fun(s, t);
   printf("\n The result is: %s\n", t);
  }
gc305.c程序的功能是:对由n个一位数数字组成的数字串,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!
 main()
{
   int number[20],n,m,i;
   printf("the number lenth is:");
      scanf("%d",&n);
   printf("back m:");
      scanf("%d",&m);
   for(i=0;i<n-1;i++)
   scanf("%d",&number[i]);
   scanf("%d",&number[n-1]);
   move(number,n,m);
   for(i=0;i<n-1;i++)
   printf("%d,",number[i]);
   printf("%d",number[n-1]);
   }
   move(array,n,m)
   int n,m,array[20];
   {
     int *p,array_end;
     array_end=*(array+n-1);
     for(p=array+n-1;p>array;p--)
    *p=*(p+1);
    array=array_end;
     m--;
     if(m>0) move(array,n,m);
   }
gc306.c输出如下图案。
          AAAAAAA
          #BBBBBB
          ##CCCCC
          ###DDDD
          ####EEE   
程序中有2处错误,请指出改正之。
#include <stdio.h>   
     main()
    { int i,j;
      char ch='A';
      for (i=0; i<7;i++)
        { for (j=1;j<=i;j++)
             printf("#");
          for ( j=1;j<7;j++)
             printf("%c",ch);
          printf("\n");
          ch++;
        }
    }
gc307.c功能为:使用指针将数组中元素按升序排序。程序中有两处错误代码,请指出并改正之。
#include<stdio.h>
 main()
{
  int k,m,change,a[10];
  int *p1;
  int **p2=p1;
  p1=a;
  printf("Please input datas one by one:\n");
  for (k=0;k<10;k++)
     scanf("%d",p1+k);
  for (k=0;k<9;k++)
    {
      for (m=0;m<9+k;m++)
      {
    if ((*p2)[m]>(*p2)[m+1])
           {
         change=(*p2)[m];
         (*p2)[m]=(*p2)[m+1];
         (*p2)[m+1]=change;
           }
      }
    }
  for (k=0;k<10;k++)
     printf("%d",*(*p2+k));
  return(1);
}
sj307.c编写程序:从磁盘文件data307.txt中读入一行字符,将其中所有大写字母输出到磁盘文件sj307.c中。

tk342.c的功能是:假设a数组中的数据巳按由小到大的顺序存放,以下程序可把a数组中相同的数据删得只剩一个,然后以每行4个数据的格式输出a数组。请填空。
#define M 10
 main()
 {int a[M],i,j,n;
  for(i=0;i<M;i++)
    scanf("%d",a+i);
  n=i=M-1;
  while(i>=0)
    { if(*(a+i)==*(a+i-1))
        {for(j=___________;j<=n;j++)
            *(a+j-1)=*(___________);
         n--;
        }
        i--;}
 for(i=1;i<=n+1;i++)
   {printf("%4d",*(a+i-1));
    if(i%4==0)
     printf("\n");}
     printf("\n");
 }

gc342.c的功能是:计算字符串中子串出现的次数请改正。
#include "string.h"
 #include "stdio.h"
  main()
 { char str1[20],str2[20],*p1,*p2;
   int sum=0;
   printf("please input two strings\n");
   scanf("%s%s",str1,str2);
   p1=str1;p2=str2;
   while(*p1!='\0')
     {
       if(*p1==*p2)
      {while(*p1==*p2||*p2!='\0')
       {p1++;
        p2++;}
      }
       else
      p2++;
       if(*p2=='\0')
      sum++;
       p2=str2;
     }
   printf("%d\n",sum);
   getch();
   }
gc367.c通过接受键盘输入的月数量,再根据当前的月份,可以计算出某一年的月份。例如,当前的月份是10,加输入的月数量5,月份是3;加输入的月数量 –13,月份是9。程序中输出的月份以英文字符显示。CURRENT为当前月份。程序有两处错误,请找出并修正。
#define  CURRENT 11
#include <stdio.h>
 main()
{
    int month,monthnum;
    char *ch;
    char *month_name(int);
    printf("Input Month Number:");
    scanf("%d",&monthnum);
    /*------------Found Mistake Below------------*/
    if(monthnum>=0)
    month=(CURRENT-1+monthnum)%12+1;
    else
 month=(12+(CURRENT-1+monthnum))%12+1;
    ch=month_name(month);
    printf("Current month is %d\n",CURRENT);
    printf("Add %d Months is: %s\n",month,ch);
}
/*------------Found Mistake Below------------*/
char *month_name(int n)
{
    char *name[]
={"Jan","Feb","Mar","Apr","May","Jun",
"Jul","Aug","Sep","Oct","Nov","Dec"};
    return(name[n]);
}
tk367.c中有整形数组a[ ]。通过调用子程序inv(),对a[ ]数组中的元素,反向交换存储位置。请在括号[  ]处补充完整程序,并删除[  ],运行测试,实现上述要求。
void inv(int x[],int n)
{
int temp,i,j,m=[       ];
for(i=0;i<=m;i++)
    { j=n-i-1;
    temp=x[i];
    [       ];
    x[j]=temp;
  }
return;
}
 main()
{
int a[10]={4,5,6,7,8,9,10,11,12,88};
int i;
printf("The original array:\n");
for(i=0;i<10;i++)
    printf("%3d",a[i]);
printf("\n");
inv(a,10);
printf("The reverse array:\n");
for(i=0;i<10;i++)
    printf("%3d",a[i]);
printf("\n");
}
gc370.c完成从双向链表中删除值为num的一个结点的功能。链表中每个结点包含数据域(info),后继元素指针域(next)和前趋元素指针域(pre)。链表的头尾指针分别放在指针数组a的二个元素中。程序中有3处错误,请改正。
#include <stdio.h>
struct student
{     int info;
     struct student * pre;
     struct student * next;
};
void del(struct student *a[2],int num )
 {     struct student *p,*q;
     struct student *head,*tail;
     head=a[0];
     tail=a[1];
     if(head==NULL) printf("\n List null!\n");
else
{
 p=head;
 while(num!=p->info&&p->next==!NULL)
 {q=p; p=p->next;
    if (num==p->info)
    {
   if (p==head)
  { head=p->next; head->pre=NULL; }
   else if (p==tail) {q->next=NULL; tail=q; }
   else { p=p->next; q=p; p->pre=p; }
    }
    else    printf("%d not been found!\n",num);
    }
 }
  a[0]=head;
  a[1]=NULL;
 }
gc393.c程序通过接受键盘输入的字符串,通过调用函数trimspace(),实现去掉字符串的前空格和尾空格。程序有两处错误,请找出并修正。
#include<string.h>
main()
{
char str[100];
void trimspace(char *);
gets(str);
trimspace(str);
puts(str);
}
    /*------------Found Mistake Below------------*/
void trimspace(char *p)
{
char *q;
if(*p!='\0')
    q=strlen(p);
else
    return;
    /*------------Found Mistake Below------------*/
for(;*q==' ';q--);
*q='\0';
for(q=p;*q==' ';q++);
strcpy(p,q);
return;
}
gc394.c中函数str1的功能是输入一个英文句子(字符串),将其中每个单词的最后一个字母改写成大写,然后输出此句子。(这里的"单词"是指由空格隔开的字符串)。例如:若输入:"this is a book ",则应输出:"thiS iS A booK "请改正函数str1中的两个错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include "stdio.h"
#include "ctype.h"
#include "conio.h"
void str1(char *p)
{ int k=0;
 for(;*p;p++)
  if(k)
    {
      if(p==' ')
      { k=0;
       *p=toupper(*(p-1));
       }
     }
  else k=1;
 }
 void main()
 { char str[100];
  int d;
   clrscr();
   printf("\n please input a string:");
   gets(str);
   str1(str);
   printf("\nafter changing:\n %s",str);
 }
gc397.c功能为:设数组a[10]包括10个整型元素,求出a[10]中各相邻二个元素之和,并将这些和存储在数组b[10]中,最后按每行三个输出。程序中有三处错误代码,请改正.注意,不得改变程序结构。
#include <stdio.h>
main()
{
    int a[10],b[10],i;
    for(i=0;i<=10;i++)
    {
        scanf("%d",a[i]);
    }
    for(i=1;i<10;i++)
    {
              b[i]=a[i]+a[i-1];
    }
    for(i=1;i<10;i++)
    {
         printf("%3d",b[i]);
        if ( (i/3)==0) printf("\n");
    }
}

sj397.c编写程序:求所有能被7整除且至少有一位是5的四位数的和,将和写入磁盘文件sj397.c中。  注意:和可能超过32767。
//请自行编写

gc398.c功能为:输入一个大写字母,打印出一个菱形。该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母A出现在第一行和最末行为止。程序中有三处错误代码,请指出并改正之。
  例如:输入字母D,打印出如下图形:
              A
            BBB
         CCCCC
      DDDDDDD
         CCCCC
            BBB
       A
#include <stdlib.h>
main(){
  int i,j,k;
  char ch;
  scanf("%c",&ch);
  k=ch-'A'+1;
  for (i=1;i<=k;i++){
    for (j=40;j>=i;j--)
      printf("%c",' ');
    for (j=1;j<=i-1;j++)
      printf("%c",'A'+i-1);
    printf("\n");
  }
  k=ch-'A';
  for (i=k;i>=1;i--){
    for (i=40;i>=i;i--)
      printf("%c",' ');
    for (j=1;j<2*i-1;j++)
      printf("%c",'A'+i-1);
    printf("\n");
  }
}
tk404.c找出xx[10]中最大的5个数,并按降序存入数组yy[5]中,要求不得改变数组xx[10]。程序采用以下算法:
1、kk数组的元素数值作为同下标xx数组元素的入选标记,初始化为零;
2、通过五次循环,每次找到一个最大的数;
3、上次循环已入选的大数,对应的kk数组元素赋值为1,下次不参加比较;
请在括号[  ]处补充完整程序,并删除[  ],运行测试,实现上述要求。
#include<stdio.h>
main()
{
int i,j,p;
int kk[10]={0};
float max,yy[5];
float xx[10]={31.6,0.3,0,-1.4,3,-2,21.3,-21,12.7,11.4};
for(i=0;i<5;i++)
     {
     j=0;
     while(kk[j]!=0)
        j++;
     max=xx[j];
     [            ]
     for(j=1;j<10;j++)
        if(kk[j]==0&&max<[     ])
            {
            max=xx[j];
            p=j;
            }
     kk[p]=1;
     yy[i]=max;
     }
    for(i=0;i<5;i++)
        printf("%5.2f   ",yy[i]);
    printf("\n");
}
gc405.c中,函数fun的功能是:'根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
  例如,
若输入2   
则输出:    
1 2   
2 4   
若输入4
则输出:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
程序有两处错误,请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <conio.h>
#define M 10
int a[M][M]={0};
fun(int **a, int m)
{ int j,k;
for (j=0;j<m;j++)
for (k=1;k<m;k++)
a[j][k]=(k+1)*(j+1);
}
main()
{ int i,j,n;
clrscr();
printf("Enter n:");scanf("%d",&n);
fun(a,n);
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
  printf("%4d",a[i][j] );
  printf("\n");
}

}
2010-07-11 16:46
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
好帖,顶一个

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-11 17:26
wxb326640789
Rank: 1
来 自:平顶山
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-12
收藏
得分:0 
有答案没
2010-07-11 17:45
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
楼主真有意思,哈哈
2010-07-11 20:28
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:0 
看了头都晕了
2010-07-11 21:01
z376355859
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-6-17
收藏
得分:0 
答案都没  做了怎么知道对错啊
2010-07-11 23:28
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
LZ很不错……赞个……

我很懒,但我讨厌别人说我懒……
2010-07-12 00:22
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
图标弄错了,不好意思……

我很懒,但我讨厌别人说我懒……
2010-07-12 00:23
快速回复:发一些C习题 大家来做做~!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067732 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved