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 )