一. 单选题(共100 题)

1. (单选题)C语言的源程序通常的扩展名是(          )

A. .cppB. .cC. .objD. .exe

 正确答案: B

2. (单选题)以下合法的数组定义是(    )。

A. int a[]="Language";B. char a[]="C Program Language.";C. char a="C Program";D. int a[5]={0,1,2,3,4,5};

 正确答案: B

3. (单选题)以下关于预处理命令的描述正确的是(    )。

A. 预处理指令也是C语句。B. 一个包含文件中不可以再包含其他的文件。C. 在C源程序中,凡是行首以#标识的控制行都是预处理命令D. 预处理是指完成宏替换和文件包含中指定的文件的调用。

 正确答案: C

4. (单选题)

以下程序运行时从键盘输入3.6,2.4,输出结果是(  )。

#include

void main()

 float x,y,z;

    scanf("%f,%f",&x,&y);

    z=x/y;

    while(1)

    {  if(fabs(z)>1.0)

      { 

 x=y;

 y=x;

 z=x/y;

 }

     else  break;

   }

   printf("%f",y);

}

A. 2.4B. 1.5C. 1.6D. 2

 正确答案: A

5. (单选题)下列浮点数的形式表示错误的是(     )

A. 10.6B. 12E2.0C. 100000D. .5

 正确答案: B

6. (单选题)

以下程序的输出结果是(  )。

#include

void main()

unsigned int a,b;

  a=4|3;

  b=4&3;

  printf("%d,%d",a,b);

}

A. 1,1B. 43,0C. 0,7D. 7,0

 正确答案: D

7. (单选题)表达式19&23的值是(    )。

A. 0xf8B. 0x13C. 0x17D. 0xec

 正确答案: D

8. (单选题)

以下程序的输出结果是(    )。

#include

int func(int a,int b)

return(a+b);

}

void main()

int x=6,y=7,z=8,r;

  r=func(func(x,y),z--);

  printf("%d\n",r);

}

A. 20B. 31C. 15D. 21

 正确答案: D

9. (单选题)

若有以下定义和语句:

union data

int i;

  char c;

  float f;

}a;

int n;

    则以下语句正确的是(    )。

A. a=5;B. printf("%d\n ",a.i);C. a={2, 'a',1.2};D. n=a;

 正确答案: B

10. (单选题)一个C程序的执行是从(       )

A. main函数开始,直到最后一个函数结束B. 第一个函数开始,直到最后一个函数结束C. main函数开始,直到main函数结束D. 第一条语句开始,直到最后一条语句结 

 正确答案: C

11. (单选题)以下数据类型中不是构造类型的是(    )。

A. 共用型B. 结构型C. 数组型D. 指针型

 正确答案: D

12. (单选题)表达式0x13|0x17的值是(    )。

A. 0xC8B. 0xE8C. 0x13D. 0x17

 正确答案: D

13. (单选题)

经过下述赋值后,变量x的数据类型是(    )。

float x=21.0;

int y;

      y=(int)x;

A. floatB. doubleC. intD. char

 正确答案: A

14. (单选题)以下选项中不合法的实型常量是( )

A. -62000B. 0.123C. 5D. E3

 正确答案: D

15. (单选题)有如下枚举类型定义:

enum language { English=6, French,Chinese=1,Japanse,Italian};

    则枚举量Italian的值为(    )。

A. 10B. 3C. 4D. 5

 正确答案: B

16. (单选题)能正确定义整型变量a和b,并为它们赋初值5的语句是(            )

A. a=b=5;B. int a=5,b=5;C. int a=b=5;D. int a,b=5;

 正确答案: B

17. (单选题)

以下程序的输出结果为(    )。

#include

#define POWER(x,y) pow(x,y)

#define TWO 2

#define ADD(y) y++

void main()

int a=3;

  printf("%f\n",POWER(ADD(a),TWO-1));

         }

A. 4.000000B. 3.000000C. 9.000000D. 6.000000

 正确答案: B

18. (单选题)

设有以下宏定义:

#define N 4

#define Y(n) ((N+1)+1)

    则执行语句:z=2*(N+Y(5+1)); 后,z的值为(    )。

A. 54B. 出错C. 60D. 48

 正确答案: C

19. (单选题)两个指针p和q,分别指向单链表的两个结点,p是q的前驱结点的条件是(    )。

A. p->next==q->nextB. p->next==qC. q->next==pD. p==q

 正确答案: B

20. (单选题)假设a、b均为字符数组,则以下正确的输入语句是(    )。

A. gets("a");gets("b");B. gets(a,b);C. scanf("%s %s",&a,&b);D. scanf("%s %s",a,b);

 正确答案: D

21. (单选题)只有当形参和与其对用的实参同名时才共享存储单元

A. 调用该函数时的实参的数据类型B. 任意指定的数据类型C. 函数返回值的数据类型D. 函数形参的数据类型

 正确答案: C

22. (单选题)下列描述正确的是(    )。

A. 两个字符串所包含的字符个数相同时,才能比较字符串B. 字符个数多的字符串比字符个数少的字符串大C. 字符串"That"小于字符串"The"D. 字符串 "STOP   " 与 "STOP" 相等

 正确答案: C

23. (单选题)若采用链式存储结构存储线性逻辑关系的数据元素时,要求内存中存储单元的地址( )。

A. 连续或不连续都可以B. 一定是不连续的C. 部分地址必须是连续的D. 必须是连续的 

 正确答案: A

24. (单选题)ypedef int integer;的作用是(    )。

A. 定义了一个长整型变量B. 定义了一个整型变量C. 建立了一种新的数据类型D. 说明了一个新的数据类型说明符

 正确答案: D

25. (单选题)

如果c是大于1的正整数,与以下程序段功能相等的赋值语句是(  )。

s=a;

for(b=1;b<=c;b++)

   s=s+1;

A. s=b+c;B. s=s+c;C. s=a+b;D. s=a+c;

 正确答案: D

26. (单选题)下列叙述不正确的是(    )。

A. 使用#include <文件名>的形式比使用#include "文件名"形式节省编译时间。B. #include <…>格式中的文件名之前可以包括路径。C. #include "C:\\user\\file.h"是正确的包含命令,它表示文件file.h存放在C盘的user目录下。D. #include命令可以包含一个含有函数定义的C语言源程序文件。

 正确答案: C

27. (单选题)

下列程序段运行后的结果是(  )。

#include

int main()

{  

      int  a = 2, b = -1, c = 2;

      if(a < b)

            if(b < 0) 

                  c = 0;

      else  c++;

      printf("%d\n",c);      

      return 0;

}

A. 0B. 2C. 3D. 4

 正确答案: B

28. (单选题)

以下程序的输出结果是(    )。

#include

double f(int n)

int i;

  double s=0;

  for(i=1;i<=n;i++)

   s+=1/i;

  return s;

}

void main()

int i,m=3;

  float a=0.0;

  for(i=0;i<=m;i++)

    a=a+f(i);

  printf("%f\n",a);

}

A. 3.000000B. 5.5000000C. 4.000000D. 8.25

 正确答案: A

29. (单选题)

以下程序的输出结果是(      )。

#include

void main()

int x=1,y=0,a=0,b=0; 

  switch(x) 

 { 

case 1:switch(y)

          { 

   case 0:a++;break;

   case 1:b++;break;

          } 

   case 2:a++;b++;break;

  } 

  printf("a=%d,b=%d",a,b);

}

A. a=1,b=1B. a=1,b=2C. a=2,b=1D. a=2,b=2

 正确答案: C

30. (单选题)希望当num的值为奇数时,表达式的值为“真”;

num的值为偶数时,表达式的值为“假”。

则以下不能满足该要求的表达式是(    )。

A. num%2==1B. !(num%2)C. !(num%2==0)D. num%2

 正确答案: B

31. (单选题)

在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是( )。

注:双向链表的结点结构为(prior,data,next)。

A. q->prior=p->prior;q->next=q;p->prior=q;p->prior=q;B. p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;C. q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;D. p->prior=q;q->next=p;p->prior->next=q;q->prior=q;

 正确答案: C

32. (单选题)结构化程序设计由3种基本结构组成,3种基本结构组成的算法(        )。

A. 可以完成任何复杂的任务B. 只能完成部分复杂的任务C. 能完成符合结构化的任务D. 只能完成一些简单的任务

 正确答案: A

33. (单选题)C程序是由(       )构成的

A. 若干过程B. 一个或多个函数C. 若干子程序D. 一个主程序与若干子程序

 正确答案: B

34. (单选题)

以下程序正确的说法是(  )。

#include

void main()

  int x=0,y=0;

  if(x=y) printf("*****\n");

  else     printf("#####\n");

}

A. 输出#####B. 有语法错误不能通过编译C. 可以通过编译,但不能通过连接,因此不能运行D. 输出*****

 正确答案: A

35. (单选题)输入“12345,xyz<回车>”,下列程序的输出结果是(          )。

#include

void main()

int a;

char c;

scanf("%3d%3c",&a,&c);

printf("%d,%c",a,c);

       }

A. 12,4B. 12,34C. 123,4D. 1234

 正确答案: C

36. (单选题)使用fseek()函数可以实现的操作是(    )。

A. 改变文件位置指针的当前位置B. 文件的顺序读写C. 文件的随机读写D. 以上都不是

 正确答案: A

37. (单选题)

若定义以下变量和数组:

int i;

int a[3][3]={1,2,3,4,5,6,7,8,9};

则下列语句的输出结果是(    )。

for(i=0;i<3;i++)

printf("%d  ",a[i][2-i]);

A. 3 5 7B. 1 5 9C. 3 6 9D. 1 4 7

 正确答案: A

38. (单选题)下列叙述中,不正确的是(         )

A. 分号是C语句的必要组成部分B. C语句的注释可以写在语句的后面C. 主函数的名字不一定用main表示D. 函数是C程序的基本单位

 正确答案: C

39. (单选题)C语言中,while语句和do-while语句的主要区别是(    )

A. do-while的循环体不能是复合语句B. do-while的循环体至少无条件执行一次C. while的循环控制条件比do-while的循环控制条件严格D. do-while允许从外部转到循环体内

 正确答案: B

40. (单选题)若 x 为 float 型变量,则以下语句(          )。x=213.82631; printf("%-4.2f\n",x);

A. 输出为213.83B. 输出格式描述符的域宽不够,不能输出C. 输出为213.82D. 输出为-213.82

 正确答案: A

41. (单选题)构成C语言源程序的基本单位是(         )

A. 过程B. 函数C. 子程序D. 命令

 正确答案: B

42. (单选题)语句  if(x!=0)  y=1; 

        else        y=2;

与(    )等价。

A. if(x)    y=1; 

else    y=2;

B. if(x)  y=2; 

else  y=1;

C. if(!x)   y=1; 

else    y=2;

D. if(x=0)  y=2; 

else      y=1;

 正确答案: A

43. (单选题)已知int a[3][2]={3,2,1};则表达式“a[0][0]/a[0][1]/a[1][0]”的值是(    )。

A. 0.16667B. 错误的表达式C. 1D. 0

 正确答案: C

44. (单选题)

下列程序的输出结果是(    )。

#include

void f(int x,int y,int z)

z=x+y;

}

void main()

int a;

  f(5,6,a);

  printf("%d\n",a);

}

A. 12B. 11C. 1D. 不确定的值

 正确答案: D

45. (单选题)以下叙述不正确的是(         )

A. 注释说明被计算机编译系统忽略B. 注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用C. 注释符“/”和“*”之间不能有空格D. 在C程序中,注释说明只能位于一条语句的后面

 正确答案: D

46. (单选题)

有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩余2阶,若每步跨5阶,则最后剩余4阶,若每步跨6阶,则最后剩余5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶。

请补充while语句后的判断条件。

         #include

         void main()

int i=1;

    while(         )

        ++i;

    printf("阶梯共有%d阶.\n",i);

}

A. !((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==1))B. !((i%2==0)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0))C. !((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0))D. (i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)

 正确答案: C

47. (单选题)在宏定义#define PI 3.1415926中,用宏名PI代替一个(    )。

A. 字符串B. 单精度数C. 双精度数常量D. 常量

 正确答案: A

48. (单选题)静态链表中的游标表示的是(  )。

A. 逻辑上下一个结点在数组中的下标B. 内存地址C. 数组下标D. 逻辑上下一个结点的实际地址

 正确答案: A

49. (单选题)头指针为H的循环单链表中尾结点r的特点是(    )。

A. r=H->next;B. r=H;C. r->next=H;D. r->next= H->next;

 正确答案: C

50. (单选题)

以下程序执行后的输出结果是(    )。

    #include

    void main()

   {

    int i,j,s=0;

    int a[4][4]={1,2,3,4,0,2,4,6,3,6,9,12,3,2,1,0};

    for(j=0;j<4;j++)

   {

      i=j;

      if(i>2) i=3-j;

      s+=a[i][j];

   }

   printf("%d\n",s);

   }

A. 18B. 16C. 12D. 11

 正确答案: B

51. (单选题)

分析以下程序的运行结果。 

  #include  

  void main()

  {  

    int k=2;     

    switch(k)    

    {  

        case 1:printf("%d\n",k++);   break;   

        case 2:printf("%d ",k++);   

        case 3:printf("%d\n",k++);  break;    

        case 4:printf("%d\n",k++);     

        default:printf("Full!\n");     

     } 

  } 

A. 3 4B. 3 3C. 2 3D. 2 2

 正确答案: C

52. (单选题)以下叙述正确的是(    )。

A. 全局变量的作用域一定比局部变量的作用域范围大B. 静态类型变量的生存期贯穿于整个程序的运行期间C. 函数的形参都属于全局变量D. 未在定义语句中赋值的auto变量和static变量的初值都是随机值

 正确答案: B

53. (单选题)使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(          )。

A. a=25 b=25(空格分开)B. 25 25(空格分开)C. 25,25D. a=25,b=25

 正确答案: D

54. (单选题)

有如下程序:有如下程序:

#include

void main()

char a,b,c,d;

scanf("%c,%c,%d,%d",&a,&b,&c,&d);

printf("%c, %c, %c, %c ",a,b,c,d);

}

     若运行时从键盘输入:6,5,65,66<回车>,则输出结果是(  )。

A. 6,5,A,BB. 6,5,65,66C. 6,5,6,5D. 6,5,6,6

 正确答案: A

55. (单选题)在说明一个共用体变量时,系统分配给它的存储空间是(    )。

A. 该共用体中所有成员变量所需存储空间的总和B. 该共用体中最后一个成员变量所需存储空间C. 该共用体中占用最大存储空间的成员变量所需存储空间 D. 该共用体中第一个成员变量所需存储空间

 正确答案: C

56. (单选题)

以下程序的执行结果是(  )。

#include

long ff(int n)

if (n>3) 

    return (ff(n-1)+ff(n-2));

  else return(3);

}

void main()

printf("%d\n",ff(4));

}

A. 6B. 5C. 7D. 8

 正确答案: A

57. (单选题)以下关于for语句的说法不正确的是(    )

A. for循环是先判断表达式,后执行循环体语句B. for循环只能用于循环次数已经确定的情况C. for循环中,可以用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来。

 正确答案: B

58. (单选题)一个单链表中,在指针p所指向的结点之后插入指针s所指向的结点,正确的操作是( )。

A. p->next=s->next;p->next=s;B. p->next=s;p->next=s->next;C. p->next=s;s->next=p->next;D. s->next=p->next;p->next=s;

 正确答案: D

59. (单选题)

下列程序段运行后x的值是(  )。

int a = 0, b = 0, c = 0, x = 35;

if (!a)    x--;

else if (b);

if (c)    x = 3;

else     x = 4;

A. 34B. 35C. 4D. 3

 正确答案: C

60. (单选题)以下能对二维数组a进行正确初始化的是(    )。

A. int a[][3]={{1,2,3},{4,5,6}};B. int a[2][4]={1,2,3},{{4,5},{6}};C. int a[2][]={{1,0,1},{5,2,3}};D. int a[][3]={{1,0,1},{},{1,1}};

 正确答案: A

61. (单选题)

在C语言中,一维数组的定义方式为:类型说明符 数组名(  )。

A. [常量表达式]B. [整型表达式]C. [整型常量]或[整型常量表达式]D. [整型常量]

 正确答案: C

62. (单选题)已知int x=5,y=5,z=5;则执行语句x%=y+z;后,x的值是(          

A. 6B. 1C. 0D. 5

 正确答案: D

63. (单选题)以下关于typedef的叙述不正确的是(    )。

A. 用typedef可以说明各种类型名,但不能用来定义变量B. 用typedef可以增加新类型C. 用typedef只是将已存在的类型用一个新的名称来代表D. 用typedef便于程序的通用和移植

 正确答案: B

64. (单选题)

若定义int i; 则以下for语句的执行结果是(    )。

 for(i=1;i<10;i++)

 { 

     if(i%3) i++;

     ++i;

     printf("%d",i);

 }

A. 35811B. 369C. 258D. 2468

 正确答案: B

65. (单选题)下列合法的转义字符是(       )

A. '\"'B. '\ee'C. '\018D. 'xab'

 正确答案: A

66. (单选题)

以下程序段的输出结果是(    )。

#include

void main()

{

  int a=3;

  do

  {

  printf("%d",a--);

  }while(!a);

}

A. 32B. 不输出任何内容C. 3D. 321

 正确答案: C

67. (单选题)

若定义int i;则以下循环语句的循环执行次数是(    )。

for(i=2;i==0;) 

   printf("%d",i--);

A. 1B. 2C. 0D. 无限次

 正确答案: C

68. (单选题)下面程序段的运行结果是      。x=y=0;while(x<15)    y++,x+=++y;printf("%d,%d",y,x);

A. 20,7B. 6,12C. 20,8D. 8,20

 正确答案: D

69. (单选题)在C语言中引用数组元素时,其数组下标的数据类型允许是(    )。

A. 整型常量B. 整型常量或整型表达式C. 整型表达式D. 任何类型的表达式

 正确答案: B

70. (单选题)若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是(          )

A. 2B. 2.5C. 2.0D. 1

 正确答案: C

71. (单选题)

以下程序的运行结果是(    )。

#define S(x) 4*x*x+1

void main()

int i=6,j=8;

  printf("%d",S(i+j));

}

A. 81B. 785C. 73D. 没有正确答案

 正确答案: A

72. (单选题)下列属于C语言中合法标识符的是(          )

A. ex-1B. _cookC. 951aD. if

 正确答案: B

73. (单选题)在C程序中,main函数的位置(         )

A. 可以任意B. 必须作为最后一个函数C. 必须作为第一个函数D. 必须放在它所调用的函数之后

 正确答案: A

74. (单选题)

以下程序的输出结果是(    )。

#include

#include

void main()

char str[10]="Ch\nina";

printf("%d",strlen(str));

}

A. 6B. 5C. 7D. 10

 正确答案: A

75. (单选题)以下说法正确的是(    )

A. 用do-while语句构成的循环,在while后的表达式为0时结束循环B. do-while语句构成的循环不能用其他语句构成的循环来代替C. do-while语句构成的循环只能用break语句退出D. 用do-while语句构成的循环,在while后的表达式为非0时结束循环

 正确答案: A

76. (单选题)

以下程序的输出结果为(    )。

#include

void main()

int a=30;

  printf("%d",(a/3>0)?a/10:a%3);

}

A. 0B. 1C. 10D. 3

 正确答案: D

77. (单选题)C语言属于(          )

A. 机器语言B. 汇编语言C. 高级语言D. 低级语言

 正确答案: C

78. (单选题)下面四组选项中,均是C语言关键字的选项是(       )

A. auto     enum     includeB. switch    typedef    continueC. signed    union    scanfD. if   struct   type

 正确答案: B

79. (单选题)以下说法不正确的是(    )。

A. 在不同的函数中可以有相同名字的变量B. 在一个函数内的复合语句中定义的变量在本函数内有效C. 在一个函数内定义的变量只能在本函数内有效D. 函数的形式参数是局部变量

 正确答案: B

80. (单选题)

以下程序的执行结果是(   )。

#include

int k=1;

void fun(int m)

 m+=k;

   k+=m;

  { 

char k='B';

    printf("%d,",k-'A');

  }

  printf("%d,%d",m,k);

}

void main()

int i=4;

  fun(i);

  printf("%d,%d",i,k);

}

A. 2,5,64,6B. 1,5,64,6C. 1,6,64,6D. 1,5,63,6

 正确答案: B

81. (单选题)对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。

A. head==NULLB. head→next==NULLC. head→next==headD. head!=NULL

 正确答案: B

82. (单选题)

以下程序运行时,输入的x值在(    )范围时才会有输出结果。

#include

void main()

{

int x;

  scanf("%d",&x);

  if(x<5);

  else if(x!=20)

  printf("%d",x);

}

A. 大于等于5且不等于20的整数B. 不等于20的整数C. 小于5的整数D. 大于等于5且等于20的整数

 正确答案: A

83. (单选题)表达式(k=3*2,k+4),k*3的值是(          )

A. 18B. 14C. 30D. 10

 正确答案: A

84. (单选题)在单链表中,增加头结点的目的是(    )。

A. 链表判空、插入第一个结点以及删除第一个结点等运算方便B. 使单链表至少有一个结点C. 标志表中首结点的位置D. 说明该单链表是线性表的链式存储结构

 正确答案: A

85. (单选题)已知函数的调用形式:fread(buffer,size,count,fp);其中的buffer代表的是(    )。

A. 一个存储区,存放要读入的数据项。B. 一个指针,指向要存放读入数据的地址C. 一个整型变量,代表要读入的数据项总和。D. 一个文件指针,指向要读入的文件

 正确答案: B

86. (单选题)以下程序段的输出结果是(    )。

  int n=10;

  while(n>7)

  { 

 printf("%d,",n);

      n--;

   }

A. 9,8,7,B. 9,8,7,6,C. 10,9,8,D. 10,9,8,7,

 正确答案: C

87. (单选题)下列不合法的字符常量是(        )

A. '2'B.

'ab'

C. '\n'D. '\101'

 正确答案: B

88. (单选题)

若a为实型变量,则以下程序段的输出结果是(         )。

a=2.389;

printf("%.2f",a);

A. 2.389B. 0.38C. 2.4D. 2.39

 正确答案: D

89. (单选题)putchar( )函数可以向终端输出一个(        )。

A. 字符串B. 字符或字符型变量值C. 实型变量值D. 浮点型变量值

 正确答案: B

90. (单选题)下列条件语句中,功能与其他语句不同的是(    )。

A. if(a==0)     printf("%d\n",x); 

else            printf("%d\n",y);

B. if(a)    printf("%d\n",x); 

else    printf("%d\n",y);

C. if(a==0)    printf("%d\n",y); 

else           printf("%d\n",x);

D. if(a!=0)    printf("%d\n",x);

else         printf("%d\n",y);

 正确答案: A

91. (单选题)

以下程序的输出结果是(    )。

#include

int f(int a)

int b=0;

  static int c=3;

  a=c++,b++;

  return a;

}

void main()

int a,i,t;

  a=3;

  for(i=0;i<3;i++)

    t=f(a++);

  printf("%d\n",t);

}

A. 3B. 5C. 4D. 6

 正确答案: B

92. (单选题)以为了避免嵌套的条件分支语句if-else二义性,C语言规定,C程序中的else总是与(    )组成配对关系。

A. 缩排位置相同的ifB. 在其之前未配对的最近的ifC. 在其之前未配对的ifD. 同一行上的if

 正确答案: B

93. (单选题)以下可以实现“输入一个字符到变量ch”的语句是(            )。

A. scanf("%c",ch);B. ch=getchar( );C. getchar(ch);

 正确答案: B

94. (单选题)若变量x,y均定义为int型,z定义为double型,下列不合法的scanf语句是(        )

A. scanf("%d%d%lf",&x,&y,&z);B. scanf("%d,%x,%lf",&x,&y,&z);C. scanf("%x,%o,%6.2f",&x,&y,&z);D.  scanf("%x,%o",&x,&y);

 正确答案: C

95. (单选题)

以下程序的输出结果是(    )。

#include

void main()

int i=5;

  for(;i<15;)

  { 

 i++;

    if(i%4==0)    printf("%2d",i);

    else          continue;

  }

}

A. 812B. 81216C. 1216D. 8

 正确答案: A

96. (单选题)链表不具有的特点是( )。

A. 插入、删除不需要移动元素B. 可随机访问任意元素C. 所需空间与链表长度成正比D. 不必事先估计存储空间

 正确答案: B

97. (单选题)设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(  )最节省时间。

A. 带尾指针的单循环链表B. 单循环链表C. 带头结点的双循环链表D. 单链表

 正确答案: C

98. (单选题)执行语句“x=(a=5,b=a--)”后,x,a,b的值分别是(            )

A. 5,4,4B. 5,5,4C. 5,4,5D. 4,5,4

 正确答案: C

99. (单选题)以下说法正确的是(    )。

A. 实参和与其对应的形参各占用独立的存储单元B. 实参和与其对应的形参共享一个存储单元C. 形参是虚拟的,不占用存储单元D. 只有当形参和与其对用的实参同名时才共享存储单元

 正确答案: A

100. (单选题) 下列属于C语言关键字的是(         )

A. typedefB. ENUMC. IntD. unien

 正确答案: A

二. 判断题(共44 题)

1. (判断题)格式化输入函数scanf的返回值是输入数据的个数。

A. 对B. 错

 正确答案: 对

2. (判断题)“#define”和“printf”都不是C语句。

A. 对B. 错

 正确答案: 对

3. (判断题)凡在函数中未指定存储类别的变量,其隐含的存储类别是void类型。

A. 对B. 错

 正确答案: 错

4. (判断题)if(a=5) 是允许的。

A. 对B. 错

 正确答案: 对

5. (判断题)while、If、double均是C语言的关键字。

A. 对B. 错

 正确答案: 错

6. (判断题)

以下程序的输出结果是n=4

#include

void main()

{

int i,n=0;

  for(i=2;i<5;i++)

  {

do {

  if(i%3) continue;

         n++;

      } while(!i);

      n++;

   } printf("n=%d",n);

}

A. 对B. 错

 正确答案: 对

7. (判断题)在C语言中,每个语句必须以分号结束。

A. 对B. 错

 正确答案: 对

8. (判断题)宏替换不占用运行时间。

A. 对B. 错

 正确答案: 对

9. (判断题)-6.2e4是不合法的实型常量。

A. 对B. 错

 正确答案: 错

10. (判断题)程序调试是指对程序进行编译。

A. 对B. 错

 正确答案: 错

11. (判断题)对 C 的源程序进行编译是指将C源程序翻译成目标程序。

A. 对B. 错

 正确答案: 对

12. (判断题)以下程序中for循环的执行次数是6次。

#define M 2

#define N M+1

#define NUM (N+1)*N/2

void main()

int i;

  for(i=1;i<=NUM;i++)

  printf("%d\n",i);

}

A. 对B. 错

 正确答案: 对

13. (判断题)当接受用户输入的含空格的字符串时,应使用getc函数。

A. 对B. 错

 正确答案: 错

14. (判断题)在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

A. 对B. 错

 正确答案: 对

15. (判断题)中的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

A. 对B. 错

 正确答案: 错

16. (判断题)若x为int类型,则表达式x=1,x+5,x++的值是1。

A. 对B. 错

 正确答案: 对

17. (判断题)为提高程序的运行速度,在函数中对于自动变量和形参可用register型的变量。

A. 对B. 错

 正确答案: 对

18. (判断题)用于直接中断最内层循环的语句是break。

A. 对B. 错

 正确答案: 对

19. (判断题)

下面程序段循环一次也不执行。

int x=10; 

while(x=0) 

   x=x-1;

A. 对B. 错

 正确答案: 对

20. (判断题)

执行以下程序段后,x的值为0,y的值为1。

int x, y;

if (x = 0)  y = 0;

else        y = 1;

A. 对B. 错

 正确答案: 对

21. (判断题)for语句中的表达式可以部分或全部省略,但是两个分号不能省略。

A. 对B. 错

 正确答案: 对

22. (判断题)构成数组的各个元素可以有不同的数据类型。

A. 对B. 错

 正确答案: 错

23. (判断题)C语言本身没有输入输出语句。

A. 对B. 错

 正确答案: 对

24. (判断题)一个字符数组就是一个字符串。

A. 对B. 错

 正确答案: 错

25. (判断题)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

A. 对B. 错

 正确答案: 对

26. (判断题)数组名实际是该数组首元素的起始地址。

A. 对B. 错

 正确答案: 对

27. (判断题)

以下程序的输出结果是15。

#define T(x,y) (x)<(y)?(x):(y)

void main()

int i=10,j=15,k;

  k=10*T(i,j);

  printf("%d",k);

}

A. 对B. 错

 正确答案: 对

28. (判断题)在C语言的源程序函数中,函数体中可以没有任何语句。

A. 对B. 错

 正确答案: 对

29. (判断题)8E2是不合法的整型常量。

A. 对B. 错

 正确答案: 对

30. (判断题)数组适合于随机存储,而链表不适合。

A. 对B. 错

 正确答案: 对

31. (判断题)语句while(!y)中的!y等价于y!=0。

A. 对B. 错

 正确答案: 错

32. (判断题)若调用一个函数,且此函数中没有return语句,则该函数没有返回值 。

A. 对B. 错

 正确答案: 错

33. (判断题)数组比链表的插入与删除运算更方便。

A. 对B. 错

 正确答案: 错

34. (判断题)调用strlen("abcd\0ed\0g")的返回值为4。

A. 对B. 错

 正确答案: 对

35. (判断题)

if-else语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就执行语句2。

if (表达式)   语句1

else            语句2

A. 对B. 错

 正确答案: 对

36. (判断题)

下列函数调用语句中含有5个实参。

fun((a1,a2),(a3,a4,a5));

A. 对B. 错

 正确答案: 错

37. (判断题)C语言允许直接访问内存地址。

A. 对B. 错

 正确答案: 对

38. (判断题)1C_fun是合法的标识符。

A. 对B. 错

 正确答案: 错

39. (判断题)

C语言的每条可执行语句最终都将被转换成二进制的机器指令。

A. 对B. 错

 正确答案: 错

40. (判断题)C语言中的函数可以嵌套调用,但不可以嵌套定义。

A. 对B. 错

 正确答案: 对

41. (判断题)

if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。

if (表达式)   语句1

else            语句2

A. 对B. 错

 正确答案: 错

42. (判断题)若有int x=8,y=5,z;则执行语句“z=x/y+0.4”后,z的值为1。

A. 对B. 错

 正确答案: 对

43. (判断题)已知带头结点的双向循环链表L,判断其为空表的条件是L->next==L && L->prior==L。

A. 对B. 错

 正确答案: 对

44. (判断题)此条枚举类型的定义是正确的。

enum a{one=9,two=-1,three};

A. 对B. 错

 正确答案: 对

三. 简答题(共23 题)

1. (简答题)

进制转换。

题目描述

题目内容:编写程序,输入一个八进制数(不超过3位),输出该数对应的十进制数。

输入样例:17

输出样例:17(8)=15(10)

输入样例:111

输出样例:111(8)=73(10)

测试用例

用例1

分数: 10

错误提示:

用例2

分数: 10

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 int num,ge,shi,bai;

 scanf("%d",&num);

 bai=num/100;

 shi=num%100/10;

 ge=num%10;

 printf("%d(8)=%d(10)",num,ge+shi*8+bai*8*8);

 return 0;

}

2. (简答题)

时间换算。题目描述

题目内容:编写程序,实现输入的时间,屏幕显示一秒后的时间。显示格式为HH:MM:SS。

          程序需要处理以下三种特殊情况:

         (1)若秒数加1后为60,则秒数恢复到0,分钟数增加1;

         (2)若分钟数加1后为60,则分钟数恢复到0,小时数增加1;

     (3)若小时数加1后为24,则小时数恢复到0。

输入样例:18:1:2

输出样例:18:01:03

输入样例:20:12:59

输出样例:20:13:00

输入样例:23:59:59

输出样例:00:00:00

测试用例

用例1

分数: 10

错误提示: 

用例2

分数: 10

错误提示: 

用例3

分数: 10

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

  int main()

 {

         int HH, MM, SS;

         scanf("%d:%d:%d",&HH,&MM,&SS);

         SS++;

         if (SS >= 60){

         SS = 0;

            MM ++;

         }

          if (MM >= 60){

         MM = 0;

            HH ++;

          }

          if (HH >= 24){

            HH = 0;

         MM = 0;

            SS = 0;

          }

          printf("%02d:%02d:%02d\n",HH,MM,SS);

 }

3. (简答题)

组合数。题目内容:本题要求编写程序,根据公式Cnm= 算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

输入格式:输入在一行中给出两个正整数m和n(m≤n),以英文,分隔。

输出格式:输出组合数计算结果,题目保证结果在类型范围内。

输入样例:2,7

输出样例:21

时间限制:500ms内存限制:32000kb

我的答案:

正确答案:

#include

double factorial(int n);

int main(){

 int n,m,result;

 scanf("%d,%d", &m, &n);

 result=factorial(n)/(factorial(m)*factorial(n-m));

 printf("%d", result);

 return 0;

}

double factorial(int n){

 if(n<=1)

  return 1;

 return n*factorial(n-1);

}

4. (简答题)

爬楼梯。题目内容:可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,有的时候一次爬两个台阶,有的时候一次爬三个台阶。如果这个楼梯有n个台阶,小明一共有多少种爬法呢?n值从键盘输入。

输入格式:输入一个整数n,(1<=n<46)。

输出格式:输出当楼梯阶数是n时的上楼方式总数。

输入样例:1

输出样例:1

输入样例:4

输出样例:7

输入样例:24

输出样例:1389537

时间限制:500ms内存限制:32000kb

我的答案:

正确答案:

#include

int f(int n){

    n++;

    int i;

    int table[n];

    for(i=0;i

        table[i]=0;

    table[1]=1;

    table[2]=2;

    table[3]=4;

    for(i=4;i

        table[i]=table[i-1]+table[i-2]+table[i-3];

    }

    return table[n-1];

}

int main(){

    int n;

    scanf("%d", &n);

    if(n>=1&&n<46){

     printf("%d",f(n));

 }

    return 0;

}

5. (简答题)

求解梯形的面积题目描述

题目内容:从键盘上输入一个梯形的上底a、下底b和高h,输出梯形的面积。

输入样例:2,4,3

输出样例:9.000000

输入样例:2.4,2.6,3.8

输出样例:9.500000

测试用例

用例1

分数: 10

错误提示: 

用例2

分数: 10

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 float width_up,width_butt,height;

 float result;

 scanf("%f,%f,%f",&width_up,&width_butt,&height);

 result = ((width_up + width_butt) * height)/2;

 printf("%f",result);

 } 

6. (简答题)

追查车号。

题目描述

题目内容:一辆卡车违反交通规则,撞人逃逸。现场三人目击事件,但都没有记住车号,只记下车的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号正好是一个整数的平方。请根据以上线索求出车号。

输出格式:The number is ****。

测试用例

用例1

分数: 20

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

#include

int main(){

int i,j,k,l;

for(i=0;i<10;i++){

j=i;

for(k=0;k<10;k++){

l=k;

if(i==k){

continue;

}else{

double nums=sqrt(i*1000+j*100+k*10+l);

if((int)nums==nums){

int plateNum=(i*1000+j*100+k*10+l);

printf("The number is %d.",plateNum);

break;

}else{

continue;

}

}

}

}

return 0;

}

7. (简答题)

正向建立单链表。题目描述

题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。

输入格式:一行内输入若干个正整数,之间用空格隔开,并以-1结束。

输出格式:一行内输出建立的单链表数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。

输入样例:2 4 6 8 10 -1

输出样例:--2--4--6--8--10

测试用例

用例1

分数: 25

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include "stdio.h"

#include "stdlib.h"

typedef struct Node { 

 int data; 

 struct Node *next; 

 } LList;

int main()

{

    LList * header = NULL;

   struct Node * p;

    while (1)

    {

        int input;

        scanf("%d", &input);

        if (input == -1) break;

        if (!header)

        {

            header = (struct Node *)malloc(sizeof(struct Node));

            p = header;

            header->data = input;

            header->next = NULL;

        }

        else

        {

            p->next = (struct Node *)malloc(sizeof(struct Node));

            p = p->next;

            p->data = input;

            p->next = NULL;

        }

    }

    p = header;

    struct Node * preP = NULL;

    p = header;

    int i = 0;

    while (p)

    {

        printf("--%d", p->data);

        p = p->next;

    }

    return 0;

}

8. (简答题)

最大公约数与最小公倍数。题目内容:编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。

输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开)

输出格式:输出这两个整数的最大公约数和最小公倍数(两结果之间用英文,隔开)

输入样例:24,36

输出样例:12,72

输入样例:-48,128

输出样例:16,-384

时间限制:500ms内存限制:32000kb

我的答案:

正确答案:

#include

int gcd(int a,int b)

{

 if(a<0)

 a=-a;

 if(b<0)

 b=-b;

    return b==0?a:gcd(b,a%b);

}

int lcm(int a,int b,int p)

{

 return (a*b)/p;

}

int main()

{

 int a,b;

 int p,q;

 scanf("%d,%d",&a,&b);

 

 p = gcd(a,b);

 q = lcm(a,b,p);

 printf("%d,%d",p,q); 

}

9. (简答题)

2.特征数判断。

题目内容:编写程序,判断输入的正整数是否既是5又是7的整倍数。

输入样例:-9

输出样例:Data error!

输入样例:33

输出样例:No!

输入样例:35

输出样例:Yes!

输入样例:0

输出样例:Data error!

测试用例

用例1

分数: 5

错误提示:

用例2

分数: 10

错误提示:

用例3

分数: 10

错误提示:

用例4

分数: 5

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

10. (简答题)

三天打鱼两天晒网。题目描述

题目内容:中国有句俗语:“三天打鱼两天晒网”,某人从1990年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天是在“打鱼”还是在“晒网”?

输入样例:1990-1-3

输出样例:他在打鱼

输入样例:2018-11-11

输出样例:他在晒网

测试用例

用例1

分数: 15

错误提示: 

用例2

分数: 15

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

struct date{

    int year;

    int month;

    int day;

};

int days(struct date day);

int main()

{

    struct date today,term;

    int yearday=0,year,day;

    scanf("%d-%d-%d",&today.year,&today.month,&today.day);

    term.month=12;              

    term.day=31;                

    for(yearday=0,year=1990;year

    {

        term.year=year;

        yearday+=days(term);    

    }

    yearday%=5;

    yearday+=days(today);       

    day=yearday%5;               

    if(day>0&&day<4) printf("他在打鱼");  

    else printf("他在晒网");

}

int days(struct date day)

{

    static int day_tab[2][13]=

            {{0,31,28,31,30,31,30,31,31,30,31,30,31},      

             {0,31,29,31,30,31,30,31,31,30,31,30,31},

    };

    int i,lp;

    lp=(day.year%4==0&&day.year%100!=0)||(day.year%400==0);

    

    for(i=1;i

        day.day+=day_tab[lp][i];

    return day.day;

}

11. (简答题)

图形打印。

题目描述

题目内容:编写程序,打印以下图形(行n的值由键盘输入)。

                  *******

                   ******

                    *****

                     ****

                      ***

                       **

                        *

输入样例:5

输出样例:       *****

                  ***

                   **

                    *

输入样例:9

输出样例:         *********

                   ********

                    *******

                     ******

                      *****

                       ****

                        ***

                          *

测试用例

用例1

分数: 10

错误提示:

用例2

分数: 10

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

#include

int main()

{

 

    int a,i,j,k;

    scanf("%d",&a);

    for(j=1;j<=a;j++)

    {   if(j!=1)

        for (i=1;i<=j-1;i++)       

            printf(" ");

 

        for(k=1;k<=a-j+1;k++)       

            printf("*");

         

        printf("\n");  

    }

 

    getch();

 

    return 0;

}

12. (简答题)

逆序打印。题目描述

题目内容:输入一个三位的正整数,按逆序打印出该数的各位数字。输入样例:369

输出样例:963

输入样例:680

输出样例:086

测试用例

用例1

分数: 10

错误提示: 

用例2

分数: 10

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 int num;

 cin>>num;

 while(num>0)

 {

  cout<

  num/=10;

 }

 } 

13. (简答题)

100以内的素数。题目内容:求100以内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。

输入格式:没有输入数据。

输出格式:输出100以内的素数,每行输出10个

                 提示:可使用输出语句printf("%6d",m);来控制素数之间的输出间隔。

输出样例:

     2     3     5     7    11    13    17    19    23    29

    31    37    41    43    47    53    59    61    67    71

    73    79    83    89    97

时间限制:500ms内存限制:32000kb

我的答案:

正确答案:

#include

#include

int prime(int m) 

{

 int i;

 if(m<2)

 return 0;

 if(m==2)

 return 1;

 for (i=2; i<=(int)sqrt((double)m); i++)

 if (m%i==0) 

 return 0;

 return 1;

}

int main()

{

 int m,j=0;

 for (m=1; m<=100; m++)

 if(prime(m))

 {   

  printf("%6d",m);

  j++;

  if(j%10==0) 

  printf("\n");

 }

 return 0;

14. (简答题)

特征四位数。

题目描述

题目内容:已知四位数3025具有一个特殊性质:它的前两位数字30与后两位数字25之和是55,而55的平方正好等于3025。编程找出所有具有这种性质的四位数。

输出格式:每一个四位数自占一行

测试用例

用例1

分数: 20

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 int i,n,m;

 for(i=1000;i<10000;i++)

 {

  m=i%100;

  n=i/100;

  if((n+m)*(n+m)==i)

  printf("%d\n",i);

 }

 return 0;

}

15. (简答题)

三色球题目描述

题目内容:一个袋子中有红、黄、兰3个球,依次从袋子中拿出所有的球。编写一个程序,输出所有的拿法。

输出格式:每一种方案自成一行,方案中球的颜色分别用red,yellow,blue来表示,中间用英文句号 .  隔开。

输出样例:其中的两种方案输出结果

                  red.yellow.blue.

                  red.blue.yellow.

测试用例

用例1

分数: 30

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 printf("red.yellow.blue.\n");

    printf("red.blue.yellow.\n");

    printf("yellow.red.blue.\n");

    printf("yellow.blue.red.\n");

    printf("blue.red.yellow.\n");

    printf("blue.yellow.red.\n");

}

16. (简答题)

逆置单链表。题目描述

题目内容:一个单链表L=(a1 , a2 , … , an-1 , an),其逆单链表定义为L’=( an , an-1 , … , a2 , a1),编写算法将单链表L逆置,要求逆单链表仍占用原单链表的空间。

输入格式:一行内输入原单链表中的数据(若干个正整数,之间用空格隔开,并以-1结束)

输出格式:一行内输出建立的原单链表数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。

                  下一行内输出逆置后的单链表数据结果,之间用两个分隔符 -- 隔开。

输入样例:2 4 6 8 10 -1

输出样例:--2--4--6--8--10

                  --10--8--6--4--2

测试用例

用例1

分数: 30

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

#include

typedef struct node {

 int data;

 struct node *next;

}Node;

//创建链表

Node *CreatList(void)

{

 int val, i;

 Node *phead, *p, *q;

 phead = NULL;

  while(1)

 { 

  scanf("%d", &val);

  if(val==-1)

   break;

  p = (Node *)malloc(sizeof(Node));

  p->data = val;

  if(NULL == phead)

   q = phead = p;

  else

  q->next = p;

    q = p;

 }

 p->next = NULL;

 return phead;

}

//链表的逆置

Node *ReverseList(Node *phead)

{

 Node *p, *q, *r;

 p = phead;

 q=r=NULL;

 while(p)

 {

  q = p->next;

  p->next = r;

  r = p;

  p = q;

 }

 return r;

}

//输出链表

void ShowList(Node *phead)

{

 Node *p;

 p = phead;

 while(p)

17. (简答题)

天数判断。

题目描述

题目内容:编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。

输入样例:2019-3

输出样例:31

输入样例:2019-9

输出样例:30

输入样例:2019-2

输出样例:28

输入样例:2004-2

输出样例:29

测试用例

用例1

分数: 5

错误提示:

用例2

分数: 5

错误提示:

用例3

分数: 10

错误提示:

用例4

分数: 10

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

    int m,y;

    int days[12] = {31, 28, 31,30,31,30,31,31,30,31,30,31};

    scanf("%d-%d",&y,&m);

    if(m == 2)

    {

        if(y%400==0 || (y%4==0 && y%100!=0))//闰年。

            printf("29\n");

        else printf("28\n");

    }

    else 

        printf("%d\n", days[m-1]);

    return 0;

}

18. (简答题)

求和S。

题目描述

题目内容:求s=1+(1+2)+…+(1+2+3+…+n)的值,其中n由键盘输入。

输入样例:3

输出样例:10

输入样例:8

输出样例:120

输入样例:0

输出样例:Error!

输入样例:-1

输出样例:Error!

测试用例

用例1

分数: 10

错误提示:

用例2

分数: 10

错误提示:

用例3

分数: 5

错误提示:

用例4

分数: 5

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

19. (简答题)

链表合并。题目描述

题目内容:已知单链表LA=(a1,a2,…,am)和LB=(b1,b2,…,bn),编写程序按以下规则将它们合并成一个单链表LC,要求新表 LC利用原表的存储空间。

          LC=(a1,b1,…,am,bm,bm+1,…,bn),m<=n

或者

      LC=(a1,b1,…,bn,an,an+1,…,am),m>n

输入格式:一行内输入单链表LA中的数据(若干个正整数,之间用空格隔开,并以-1结束)

                  一行内输入单链表LB的数据(若干个正整数,之间用空格隔开,并以-1结束)

输出格式:一行内输出合并后单链表LC的数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。

输入样例:1 3 5 7 -1

                  2 4 6 -1

输出样例:--1--2--3--4--5--6--7

测试用例

用例1

分数: 20

错误提示: 

用例2

分数: 20

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

#include

typedef int ElemType;

typedef struct linknode

  {

  ElemType data;

  struct linknode *next;

  }LNode, *LinkList;

//创建链表

LinkList Create(void)

  {

  LinkList head,current;

  ElemType d;

  LNode *s;

  current=head=(LinkList)malloc (sizeof(LNode)); //head节点

  current->data=0;

  while (1)

    {

     scanf("%d",&d);

     if(d==-1)

     break;

    s=(LinkList)malloc (sizeof(LNode)); //为新节点分配内存空间

    s->data=d; 

    current->next=s;

    current=s;

    d=getchar();

    }

  current->next=NULL;  //最后尾指针为NULL

  return head;

  }

//输出链表

void List(LinkList L)

  {

    LinkList p;

    p=L->next;  //

    while (p!=NULL)

      {

        printf ("--%d",p->data);

        p=p->next;

      }

  }

//合并链表

void CoalitionLinkList(LinkList L1,LinkList L2)

  {

     LinkList p1=L1->next;

     LinkList p2=L2->next;

20. (简答题)

求解矩形的面积 题目描述

题目内容:编写一个程序,从键盘读入一个矩形的两个边的值(整数),输出矩形面积。输入样例:3,5

输出样例:15

测试用例

用例1

分数: 10

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 int width,height;

 int result;

 scanf("%d,%d",&width,&height);

 result = width*height;

 printf("%d",result);

 } 

21. (简答题)

星期推算。

题目描述

题目内容:假设今天是星期日,编写一个程序,求2019天后是星期几。

输出样例:星期*(星期一、星期二、星期三、星期四、星期五、星期六、星期日)

测试用例

用例1

分数: 20

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 int a;

 int b = 2019;

 a = (b % 7);

 if(a == 0)

 printf("星期日");

 if(a == 1)

 printf("星期一");

 if(a == 2)

 printf("星期二");

 if(a == 3)

 printf("星期三");

 if(a == 4)

 printf("星期四");

 if(a == 5)

 printf("星期五");

 if(a == 6)

 printf("星期六");

 return 0; 

}

22. (简答题)

温度转换。题目描述

题目内容:编写程序,计算并输出华氏温度为80F所对应的摄氏温度C。

                  转换公式为:C=5*(F-32)/9

输出样例:**.******测试用例

用例1

分数: 20

错误提示: 

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main()

{

 float f,c;

 cin>>f;

 c = 5*(f-32)/9;

 cout<

 } 

23. (简答题)

时刻转换。

题目描述

题目内容:编写一个程序,从键盘输入某个分钟数,将其转换成用小时和分钟表示,并将表示结果输出。

输入样例:320

输出样例:320(m)=5(h):20(m)

输入样例:68

输出样例:68(m)=1(h):08(m)

输入样例:55

输出样例:55(m)=0(h):55(m)

测试用例

用例1

分数: 10

错误提示:

用例2

分数: 5

错误提示:

用例3

分数: 5

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include

int main(){

    int num;

 int a,b;

    scanf("%d", &num);

    

  a=num/60;

  b=num%60;

     printf("%d(m)=%d(h):%d(m)",num,a,b);

}

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: