C语言

C语言试题

时间:2024-08-06 12:05:05 C语言 我要投稿

C语言试题大全

  引导语:c语言相关的试题都会考察什么内容呢?以下是小编整理的C语言试题大全,欢迎参考阅读!

C语言试题大全

  一、填空题(10分,第1小题4分,其余每空1分)

  1.设有下列登记表,请采用最佳方式定义一种数据类型来表示这些数据的集合。

  其中,配偶姓名用spouseName表示,子女人数用children表示。

  2.C语言中构造数据类型包括     、        、         。

  3.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。

  4.char*p[10];这条语句的含义是:                                       。

  二、判断下列问题描述正确与否,正确的打“√”,错误的打“×”。(4分,每题1分)

  1.如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。( )

  2.在C语言中,可以用typedef定义一种新的数据类型。( )

  3在C语言中,实参与其对应的形参各占独立的存储单元。( )

  4.在C语言中,函数的定义可以嵌套。( )

  三、选择题:(10分,每题2分)

  1.若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。

  A.数组的首地址

  B.数组的第一个元素值

  C.数组中全部元素的值

  D.数组元素的个数

  2.判断两个字符串s1和s2相等,应当使用( )。

  A.if (s1 == s2)

  B. if (s1 = s2)

  C.if (!strcmp(s1,s2))

  D. if (strcmp(s1,s2))

  3.在while(x)语句中的x与下面条件表达式等价的是: 。

  A. x!=0

  B. x==1

  C. x!=1

  D. x==0

  4.二维数组a有m行n列,则在a[i][j]之前的元素个数为( )。

  A. j*n+i

  B. i*n+j

  C. i*n+j-1

  D. i*n+j+1

  5.设有声明语句:int a=1,b=0;则执行以下语句后输出为:。

  switch (a)

  {

  case 1:

  switch (b)

   {

     case 0:printf("**0**");

             break;

     case 1:printf("**1**");

             break;

   }

  case2: printf("**2**");

       break;

  }

  A.**0**

  B.**0****2**

  C.**0****1****2**

  D.有语法错误

  四、写出下列程序的运行结果。(6分,每题2分)

  1.

  #include

  void Fun(int *y)

  {

  printf("*y = %d ", *y);

  *y = 20;

  printf("*y = %d ", *y);

  }

  main()

  {

  int x = 10;

  printf("x = %d ", x);

  Fun(&x);

  printf("x = %d ", x);

  }

  运行结果是:

  2.

  #include

  int Fun(int x)

  {

  static int y = 0;

  y += x;

  return y;

  }

  main()

  {

  int x = 10, y = 0, k;

  for(k=0; k<2; k++)

  {

  y = Fun(x);

  printf("y = %d ", y);

   }

   }

  运行结果是:

  3.#include

  main ( )

  {

  char a[] ="programming" , b[] = "language" ;

  char *p1, *p2 ;

  int i;

  p1 = a;

  p2 = b;

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

   {

     if (*(p1+i) ==*(p2+i))

     printf("%c",*(p1+i)) ;

    }

  printf(" ");

  }

  运行结果是:

  五、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(10分,每空2分)

  1. 下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。读入5个数据后,程序结束运行。

  #include

  main()

  {

  int i, n;

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

  {

    printf("Pleaseenter n:");

    scanf("%d",&n);

    if(n <= 0) _____________;

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

    }

   printf("Programis over! ");

  }

  2. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。

  #include

  main()

  {

   intx = 1;

   intfind = 0;

     for (x=1; ________; x++)

   {

       if (x%5==1 && x%6==5&& x%7==4 && x%11==10)

   {

          printf(" x =%d ", x);

          ____________;

   }

   }

  }

  3. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。

  unsigned int MyStrlen(char str[])

  {

   unsigned int len = 0, i;

   for (i=0; str[i]!=; i++)

   {

   len;

   }

   return len;

  }

  六、在下面这个程序中,要求其实现的功能是对用户输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序。下面给出的是一个有错误的程序,请找出其中的错误,并改正之。(10分)

  #include

  #define END-1;

  long Factorial(int x);

  main()

  {

  int x;

   while(1);

   {

      printf("inputx:);

       scanf("%d",x);

      if(x <= END.

          break

       else

          printf("%d!= %d ", x, Factorial(x));

   }

  }

  long Factorial(int x)

  {

   int i;

  int result;

   for(i=1, i<=x, i++)

   result*= i;

  }

  七、编程(40分,第1和2小题各10分,第3小题20分)

  1.编程计算1!+2!+3!+……+10!的值。

  2. 从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。

  3.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。

【C语言试题】相关文章:

C语言试题11-01

C语言试题08-02

C语言程序试题04-26

C语言考点试题08-19

C语言试题及答案07-26

C语言练习试题07-01

C语言试题训练08-07

C语言模拟试题练习08-11

标准c语言笔试题09-07

C语言笔试题及答案08-25