Bootstrap

C语言题目_其他

一. 单选题(共100 题)

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

  • A. .cpp
  • B. .c
  • C. .obj
  • D. .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<math.h>

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.4
  • B. 1.5
  • C. 1.6
  • D. 2

 正确答案: A

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

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

 正确答案: B

6. (单选题)

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

#include<stdio.h>

void main()

unsigned int a,b;

  a=4|3;

  b=4&3;

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

}

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

 正确答案: D

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

  • A. 0xf8
  • B. 0x13
  • C. 0x17
  • D. 0xec

 正确答案: D

8. (单选题)

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

#include<stdio.h>

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. 20
  • B. 31
  • C. 15
  • D. 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. 0xC8
  • B. 0xE8
  • C. 0x13
  • D. 0x17

 正确答案: D

13. (单选题)

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

float x=21.0;

int y;

      y=(int)x;

  • A. float
  • B. double
  • C. int
  • D. char

 正确答案: A

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

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

 正确答案: D

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

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

    则枚举量Italian的值为(    )。

  • A. 10
  • B. 3
  • C. 4
  • D. 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 <math.h>

#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.000000
  • B. 3.000000
  • C. 9.000000
  • D. 6.000000

 正确答案: B

18. (单选题)

设有以下宏定义:

#define N 4

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

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

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

 正确答案: C

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

  • A. p->next==q->next
  • B. p->next==q
  • C. q->next==p
  • D. 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<stdio.h>

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. 0
  • B. 2
  • C. 3
  • D. 4

 正确答案: B

28. (单选题)

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

#include<stdio.h>

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.000000
  • B. 5.5000000
  • C. 4.000000
  • D. 8.25

 正确答案: A

29. (单选题)

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

#include<stdio.h>

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=1
  • B. a=1,b=2
  • C. a=2,b=1
  • D. a=2,b=2

 正确答案: C

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

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

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

  • A. num%2==1
  • B. !(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<stdio.h>

void main()

  int x=0,y=0;

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

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

}

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

 正确答案: A

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

#include<stdio.h>

void main()

int a;

char c;

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

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

       }

  • A. 12,4
  • B. 12,34
  • C. 123,4
  • D. 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 7
  • B. 1 5 9
  • C. 3 6 9
  • D. 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.83
  • B. 输出格式描述符的域宽不够,不能输出
  • C. 输出为213.82
  • D. 输出为-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.16667
  • B. 错误的表达式
  • C. 1
  • D. 0

 正确答案: C

44. (单选题)

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

#include<stdio.h>

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

z=x+y;

}

void main()

int a;

  f(5,6,a);

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

}

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

 正确答案: D

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

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

 正确答案: D

46. (单选题)

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

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

         #include<stdio.h>

         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<stdio.h>

    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. 18
  • B. 16
  • C. 12
  • D. 11

 正确答案: B

51. (单选题)

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

  #include <stdio.h> 

  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 4
  • B. 3 3
  • C. 2 3
  • D. 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,25
  • D. a=25,b=25

 正确答案: D

54. (单选题)

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

#include<stdio.h>

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,B
  • B. 6,5,65,66
  • C. 6,5,6,5
  • D. 6,5,6,6

 正确答案: A

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

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

 正确答案: C

56. (单选题)

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

#include<stdio.h>

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. 6
  • B. 5
  • C. 7
  • D. 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. 34
  • B. 35
  • C. 4
  • D. 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. 6
  • B. 1
  • C. 0
  • D. 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. 35811
  • B. 369
  • C. 258
  • D. 2468

 正确答案: B

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

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

 正确答案: A

66. (单选题)

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

#include<stdio.h>

void main()

{

  int a=3;

  do

  {

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

  }while(!a);

}

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

 正确答案: C

67. (单选题)

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

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

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

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

 正确答案: C

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

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

 正确答案: D

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

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

 正确答案: B

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

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

 正确答案: C

71. (单选题)

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

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

void main()

int i=6,j=8;

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

}

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

 正确答案: A

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

  • A. ex-1
  • B. _cook
  • C. 951a
  • D. if

 正确答案: B

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

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

 正确答案: A

74. (单选题)

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

#include<stdio.h>

#include<string.h>

void main()

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

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

}

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

 正确答案: A

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

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

 正确答案: A

76. (单选题)

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

#include<stdio.h>

void main()

int a=30;

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

}

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

 正确答案: D

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

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

 正确答案: C

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

  • A. auto     enum     include
  • B. switch    typedef    continue
  • C. signed    union    scanf
  • D. if   struct   type

 正确答案: B

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

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

 正确答案: B

80. (单选题)

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

#include<stdio.h>

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,6
  • B. 1,5,64,6
  • C. 1,6,64,6
  • D. 1,5,63,6

 正确答案: B

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

  • A. head==NULL
  • B. head→next==NULL
  • C. head→next==head
  • D. head!=NULL

 正确答案: B

82. (单选题)

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

#include<stdio.h>

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. 18
  • B. 14
  • C. 30
  • D. 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.389
  • B. 0.38
  • C. 2.4
  • D. 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<stdio.h>

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. 3
  • B. 5
  • C. 4
  • D. 6

 正确答案: B

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

  • A. 缩排位置相同的if
  • B. 在其之前未配对的最近的if
  • C. 在其之前未配对的if
  • D. 同一行上的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<stdio.h>

void main()

int i=5;

  for(;i<15;)

  { 

 i++;

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

    else          continue;

  }

}

  • A. 812
  • B. 81216
  • C. 1216
  • D. 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,4
  • B. 5,5,4
  • C. 5,4,5
  • D. 4,5,4

 正确答案: C

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

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

 正确答案: A

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

  • A. typedef
  • B. ENUM
  • C. Int
  • D. 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<stdio.h>

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<stdio.h>

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 <stdio.h>

  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 <stdio.h>

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<stdio.h>

int f(int n){

    n++;

    int i;

    int table[n];

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

        table[i]=0;

    table[1]=1;

    table[2]=2;

    table[3]=4;

    for(i=4;i<n;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<stdio.h>

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<stdio.h>

#include <math.h>

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<stdio.h>

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<stdio.h>

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<today.year;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.month;i++)            

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

    return day.day;

}

11. (简答题)

图形打印。

题目描述

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

                  *******

                   ******

                    *****

                     ****

                      ***

                       **

                        *

输入样例:5

输出样例:       *****

                  ***

                   **

                    *

输入样例:9

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

                   ********

                    *******

                     ******

                      *****

                       ****

                        ***

                          *

测试用例

用例1

分数: 10

错误提示:

用例2

分数: 10

错误提示:

题目运行时间限制: 500ms

题目运行内存限制: 32000kb

我的答案:

正确答案:

#include<stdio.h>

#include<conio.h>

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<iostream.h>

int main()

{

 int num;

 cin>>num;

 while(num>0)

 {

  cout<<num%10;

  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 <stdio.h>

#include <math.h>

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<stdio.h>

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 <stdio.h>

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 <stdio.h>

#include <stdlib.h>

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 <stdio.h>

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<stdlib.h>

#include <stdio.h>

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<stdio.h>

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<stdio.h>

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<iostream.h>

int main()

{

 float f,c;

 cin>>f;

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

 cout<<c;

 } 

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<stdio.h>

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);

}

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;