zoukankan      html  css  js  c++  java
  • c语言面试基础题

    1. 一、选择题

      1. 以下叙述正确的是_C_。

      A. 在C程序中main函数必须位于程序的最前面

      B. C程序的每行中只能写一条语句

      C. C语言本身没有输入输出语句

      D. 在对一个C程序进行编译的过程中,可发现注释中的错误

      2. 下列四组字符串中都可以用作C语言程序标识符的一组是( A ) 。

      A. print _3d oodb aBc

      B. i\am one_half start$it 3pai

      C. Pxq My->book line# His.age

      D. str_l Cpp pow while

      3. 逗号表达式”(a=3*5,a*4),a+15″的值是__C__。

      A. 15

      B. 60

      C. 30

      D. 不确定

      4. 语句 printf(“%d”,(a=2)&&(b= -2);的输出结果是___D____

      A. 无输出

      B. 结果不确定

      C. 0

      D. 1

      5. 若变量已正确说明为float类型,要通过语句scanf(“%f%f %f “,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是B

      A. 10<回车> 22<回车> 33<回车>

      B. 10.0,22.0,33.0<回车>

      C. 10.0<回车> 22.0 33.0<回车>

      D. 10 22<回车> 33<回车>

      6. 下列程序的运行结果是:C

      main()

      {int y=-5;

      while (y++) ;

      printf(“y=%d\n”,y);

      }

      A. y=0

      B. y= -1

      C. y=1

      D. while构成无限循环

      7. 以下函数调用语句不正确的是:D

      A. x=(int) power(b);

      B. x=power (a+b);

      C. x=power(a);

      D. x=float power( a );

      8. 以下不正确定义一维数组的选项是( D )

      A. int num[3];

      B. #define N 100 int num[N];

      C. int num[2*3];

      D. int N=100; int num[N];

      9. 以下程序的输出结果是 ( B )

      main( )

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

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

      for(j=0;j<i;j++) s+=a[j];

      printf (“%d\n”,s);

      }

      A. 18

      B. 19

      C. 20

      D. 21

      10. 有下面的程序段

      char a[3],b[]=”china”;

      a=b;

      printf(“%s”,a);

      则( D )

      A. 运行后将输出china

      B. 运行后将输出ch

      C. 运行后将输出chi

      D. 编译出错

      11. 在C语言中,以下说法正确的是:A

      A. 普通实参和与其对应的形参各占用独立的存储单元

      B. 实参和与其对应的形参共占用一个存储单元

      C. 只有当实参和与其对应的形参同名时才共占用存储单元

      D. 形参在函数调用前它就占用存储单元

      12. 以下叙述中不正确的是__D____

      A. 在不同的函数中可以使用相同名字的变量

      B. 函数中的形式参数是局部变量

      C. 在一个函数内定义的变量只在本函数范围内有效

      D. 在一个函数内的复合语句中定义的变量在本函数范围内有效

      13. 以下程序的输出结果是 A

      main()

      {int a=10,b=20;

      int *p=&a;

      *p=100;

      printf(“a=%d”,*p+1);

      }

      A. 101

      B. 11

      C. 20

      D. 无 结果

      14. 以下程序运行后的输出结果是: A

      main()

      { char s[ ]=”9876″,*p;

      for ( p=s ; p<s+2 ;p++)

      printf(“%s “, p);

      }

      A. 9876 876

      B. 9876

      C. 876

      D. 无 结果

      15. 下列关于C语言的叙述错误的是_A___

      A. 大写字母和小写字母的意义相同

      B. 不同类型的变量可以在一个表达式中

      C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

      D. 同一个运算符号在不同的场合可以有不同的含义

      16. 以下选项中不属于C语言的类型的是__D____

      A. signed short int

      B. unsigned long int

      C. unsigned int

      D. long short

      17. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( B )

      A. 不定值

      B. 4

      C. 3

      D. 1

      18. 设 int x=1, y= 1; 表达式(!x||y–)的值是 B

      A. 0

      B. 1

      C. 2

      D. -1

      19. 以下程序的运行结果是:B

      main()

      {int m=6;

      if(m–>5) printf(“%d\n”,m);

      else printf(“%d\n”,m–);

      }

      A. 4

      B. 5

      C. 6

      D. 7

      20. 下面程序段的运行结果是:B

      int n=2;

      while(n>=0)

      n=n-1;

      printf(“%d”,n);

      A. -2

      B. -1

      C. 0

      D. 有语法错误

      21. 有函数int max(int a,int b),则以下调用语句正确的是:C

      A. int max(a,b);

      B. int max(3,4);

      C. max(a,b);

      D. max( );

      22. 有以下程序:

      main( )

      { intaa[4]={0,2,3,4};

      int i,s=1;

      for(i=1;i<4;i++) s*=aa;

      printf(“%d\n”,s);

      }

      程序运行后的输出结果是( D )

      A. 0

      B. 6

      C. 12

      D. 24

      23. 以下不能正确定义二维数组的是( D )

      A. int a[2][3];

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

      C. int a[ ][3]={1,2,3};

      D. int a[2][3]={{1},{2},{3,4}};

      24. 把字串b连接到字串a后面,应当使用( C )

      A. strcpy(a,b);

      B. strcpy(b,a);

      C. strcat(a,b);

      D. strcat(b,a);

      25. 若调用一个函数,且此函数中没有return语句,则关于该函数正确的说法是 A

      A. 没有返回值

      B. 返回若干个系统默认值

      C. 能返回一个用户所希望的函数值

      D. 返回一个不确定的值

      26. 如果使用一个宏 tri(x+y+z) 来表示算式(x+y+z)*(x+y+z)*(x+y+z),则应如何定义 C

      A. #define tri(x) x*x*x

      B. #define tri(x) (x*x*x)

      C. #define tri(x) (x)*(x)*(x)

      D. #define tri(x) (x+y+z)*(x+y+z)*(x+y+z)

      27. 以下程序的输出结果是 C

      main()

      {int a[5]={1,2,3,4,5};

      int *p=a;

      printf(“a=%d”,*(p+3));

      }

      A. 2

      B. 3

      C. 4

      D. 5

      28. 以下程序的输出结果为( A )

      main( )

      { void sub (int *, int *);

      int x=100, y=200;

      sub (&x, &y);

      printf(“ %d , %d \n ” , x , y);

      }

      void sub( int *px , int *py)

      { *px=10; *py=20; }

      A. 10,20

      B. 20,10

      C. 100,200

      D. 200,100

      二、操作题

      1. 将1–1000中所有21的倍数存到一个一维数组中,并输出该数组的所有数据。要求将该程序以文件名test1.ctest1.cpp保存到K盘根目录

      参考答案:

      #include <stdio.h>

      #define N 1000

      main()

      {

      int i,j=0,n,sz[N]={0};

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

      {

      if(i%21==0)

      sz[j++]=i;

      }

      n=j;

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

      printf(“%d\t”,sz[j]);

      printf(“\n”);

      }

      2. 写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数,若是则输出“yes”,否则输出“no” 。要求将该程序以文件名test2.ctest2.cpp保存到K盘根目录

      参考答案:

      #include <stdio.h>

      main()

      {

      int m,flag;

      printf(“请输入一个正整数m\n”);

      scanf(“%d”,&m);

      int ifou(int);

      flag=ifou(m);

      if(flag) printf(“yes\n”);

      else printf(“no\n”);

      }

      int ifou(int k)

      {if(k%2==0) return 1;

      else return 0;

      }

      3. 输入一个M*N二维数组,求该二维数组所有靠外侧的元素之和。要求M和N用#define 进行定义。要求将该程序以文件名test1.ctest1.cpp保存到K盘根目录

      参考答案:

      #define M 4

      #define N 3

      #include <stdio.h>

      main()

      {

      int i,j;

      int aa

      [N],sum=0;

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

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

      {scanf(“%d”,&aa[j]);

      if(i==0||i==(M-1)||j==1||j==(N-1))

      sum=sum+aa[j];

      }

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

      {

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

      printf(“%d\t”,aa[j]);

      printf(“\n”);

      }

      printf(“外侧元素之和为%d\n”,sum);

      }

      4. 写一个函数计算两个正整数的最小公倍数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印这两个正整数的最小公倍数。要求将该程序以文件名test2.ctest2.cpp保存到K盘根目录。

      参考答案:

      #include <stdio.h>

      void main()

      {

      int m,n;

      int zxgbs;

      int mmin(int,int);

      scanf(“%d%d”,&m,&n);

      zxgbs=mmin(m,n);

      printf(“%d和%d的最小公倍数为%d\n”,m,n,zxgbs);

      }

      int mmin(int m,int n)

      {int i;

      for(i=(m>n?m:n);i>=1;i–)

      if(m%i==0&&n%i==0)break;

      returnm*n/i;

      }

    同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

    新一篇:飞漫软件MiniGUI面试题,主要是C和C++方面的,请在一个小时内完成。
    旧一篇:c语言笔试模拟题以及答案

    共有2 条 关于 “c语言六月笔试考试模拟及答案”的评论

    • 1
      靖观棋变

      17. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )

  • 相关阅读:
    Java中try-catch-finally的一点理解
    子类继承父类的私有属性
    Java中的String[] args
    Java类和类成员的访问权限修饰符
    JAVA中抽象类与接口的区别
    Java C# .net 和 C C++ 跨平台的区别
    Java中的instanceof关键字
    深入理解JAVA的多态性[转]
    Linux文件系统的目录结构
    硬盘分区
  • 原文地址:https://www.cnblogs.com/hao02171990/p/3008967.html
Copyright © 2011-2022 走看看