程序员考试(C语言)

时间:2023-02-12 21:15:23

 很经典的一些题目,有兴趣的人可以做做!我给我学生考

理解C语言的奥秘!理解计算机是如何运算的,理解程序逻辑思维!

如果一个变量是一个水果框的话,那么一维数组就是一排型号相同的水果框,二维数组就是相同型号的水果框放成多排,结构体就是水果摊,不同型号的水果框在一起。

 

第56题,请大家讨论一下!

 

 

              选择题

请选择正确答案并填写在答题卡上,不填写答题卡上的答案无效。每一道题目,所有答案都选对则该题得分,所选答案错误或不能选出所有正确答案,则该题不得分。

 

 1、以下选项中属于C语言的数据类型是()。(选择一项)

     A、复数型;

   B、逻辑型;

     C、双精度型

     D、集合型。

 

 2、执行下列C语言程序时输入:123 456 789,输出的结果是()。(选择一项)

 main(){

       char s[100];

       int c,i;

       scanf(“%c”,&c);

       scanf(“%d”,&i);

       scanf(“%s”,s);

       printf(“%c,%d,%s/n”,c,i,s);

}

 A123,456,789

 B1,456,789

 C1,23,456,789

 D1,23,456

 

 3、观察如下C语言程序,该程序的输出结果是(c)。(选择一项)

void main(){

        int a=1,b;

              b=a-1;

        if(b<a-2)

           printf(“%d/n”,b-1);

        else

           if(b>a+2)

               printf(“%d/n”,b);

           else

               printf(“%d/n”,a);

}

A0

B-1

C1

D、都不对。

 

 4、观察如下C语言程序,该程序的输出结果是(a)。(选择一项)

main(){

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

     switch(x){

             case 0:b++;

             case 1:a++;

             case 2:a++;b++;

     }

     printf(“a=%d,b=%d/n”,a,b);

}

A、 a=2,b=1

B、     a=1,b=1

C、     a=1,b=0

D、a=2,b=2

                    

 5、观察如下C语言程序,执行后输出的结果是()。(选择一项)

    void main(){

                 int i=0,s=0;

         do{

            if(i%2){

                  i=i+2;

                  }

              i++;

              s=s+i;

            }

         while(i<3);

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

}

结果是_____5________________.

 

6 观察以下的C语言程序

#include<stdio.h>

foid main(){

Int i,j,num=0;

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

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

         num=num+j

printf(“/nThe value of num is %d”,num);

}

程序执行后,num的值应该是( a  )。(选择一项,2分)

A  2

B  4

C  0

D  3

 

7、观察下面的C语言代码,在VC中编译后输出结果是(  a )。(选择一项,1.5分)

      #include<stdio.h>

       void main(){

          int temp=10;

          printf(“%d”,temp++);

           temp++;

           printf(“%d”,++temp;);

       }

A  1013

B  1112

C  1113

D  1012

 

8 C语言中,合法的数组定义是( d )。(选择一项,1.5分)

A  int a[]=”tring”;

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

C  char a=”tring”;

D  char a[]={0,1,2,3,4,5};

 

9 执行下面C语言程序:

   main(){

       char s[12]=”abcde”;

       scanf(“%s”,s);

       strcat(s,”fgh”);

       printf(“%s/n”,s);

   }

如果输入123,则输出结果是(  )。(选择一项,2分)

A  123fgh

B  123defgh

C  ab123fgh

D  abcde123fgh

 

10 设指针x指向的整型变量值为28,则printf(“%d/n”,++*x);的输出是( c )。(选择一项,2分)

A  27

B  28

C  29

D  表示不合法,报错

 

11 C语言中,根据下面的定义

   struct person{char name[9];int age;};

   struct person class[10]={“John”,17,

                            “Paul”,19,

                            “Mary”,18

                            “Adam”,16};

   能打印出字母M的语句是( d )。(选择一项,2分)

A  prinft(“%c/n”,class[3].name);

B  prinft(“%c/n”,class[3].name[1]);

C  prinft(“%c/n”,class[2].name[1]);

D  prinft(“%c/n”,class[2].name[0]);

 

12C语言中,有初始化数组:intb[]={1,2,3,4,5};

b[2]的值是(d)。

A null

B 1

C 2

D 3

 

13C语言中的函数返回值类型是由(c )决定的。

A  retum语句中的表达式类型

B 调用该函数的主调函数类型

C 定义函数时所指定的函数类型

D 调用函数时临时指定

 

14 C语言中,已知有学生记录描述为:

       Struct student{

           Int no ; char name [20];char sex

          Struct  {

           Int year;int month ;int day;

            }birth;

       } s;

设结构变量s中的“birth”应是” 1985 10 1 “,则下面正确的赋值方式是(C )。

A birth.year=1985

  Birth.mont6h=10

  Birth.day=1

B s.year=1985

  s.month=10

  s.day=1

C s.birth.year=1985

  s.birth.month=10

  s.birth.day=1

D year=1985

  Month=10

  Day=1

 

15 C   语言中,设有以下变量定义,并已赋确定的值:

Char w;   int x;       float y;    double z;

则表达式w+x+z/y 值的数据类型为(d)。

Achar         B)int       C)float    D)double

 

16、下面语句中(b)是C语言正确的赋值语句。

Aint a=1;b=2;                          B) double x=5.5;int y=int(x);

C) int a=b=5;                              D) intx++;

 

17 C语言中,执行下面的程序时,欲将252.5分别赋给ab,正确的输入方式是(d

Int a;

Float b;

Scanf(“a=%d,b=%f”,&a,&b);

A)25 2.5         B)25, 2.5         C)a=25 b=2.5        D)a=25,b=2.5

 

18、阅读下面初始化数组程序段:

Char a[]=”ABCDEF”;

Char b[]={‘A’,’B’,’C’,’D’,’E’,’F’};

则下面叙述正确的是(B)。

Aab完全相同                    Ba数组长度比b数组长

Cab不相同,a是指针数组Dab只是长度相等。

 

19 C语言中,设有static char str[]=”Nan Jing”;

则执行printf(“%d/n”,strlen(strcpy(str,”China”)));后的输出结果为(b)。

A8              B5              C6              D9

 

20 C语言中,设有函数调用语句:

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

则函数func中有(c)个形参。

A1              B)5                C)2                D)不合法

 

21、若已定义X是整形变量,pb是基类型为整形的指针变量,则正确的赋值表达式是(c)。

A*pb=&x;          B)pb=x;          C)pb=&x;       D)*pb=*x;

 

22、设有以下结构体定义

Struct example{

              Int x;

              Int y;

}v1;

则下面引用或定义中正确的是()。

Aexample s=10;                       B)struct example v2={10,5}

C) struct v2;v2.x=10;                  D)example v2;v2.x=10;

 

23 以下C语言程序输出结果是(  )。

#include<stdio.h>

#include<string.h>

Main(){

       Char a[ ]=“wourld”,b[ ]=“hi”;

          Int n=strcmp(b,a);

            Printf(“%d/n”,n);

}

A -1

B 0

C 1

D 2

 

24C语言允许函数值类型缺省定义,此时函数值隐含的类型是( )。

A float

B long

C int

D double

 

25 下面C语言程序的输出结果是( )。

Main(){

       Struct complx{

                 Int x,y

          }a[2]={1327}

            Printf(“%d/n”,a[0].y/a[1].x);

}

 

A 3

B 2

C 1

D 0

 

26、以下程序功能是:从键盘输入若干学生的成绩统计并输出最高成绩和最低成绩,当输入负数时结束,补齐代码。

Main(){

             float x,amax,amin;

             scanf(“%f”, .&x);amax=amin=x;

             while(    x>=0         )

          {

                 if(x > amax  )aman=x

                 if(    x<amin      )amin=x;

                 Scanf(“%f”,&x);

              }

printf(“/n anax=%f/n anin=%f/n”,amax,amin);

}

 

27、以下程序的输出结果是( )?

INT d=1

Void fun (int p){

int d=5;p++;printf(“%d/n,d”);

}

Main(){

int a=3;fun(a);printf(“%d/n”,d)

}

结果是________5___________1________.

 

28、下面的函数用以求yx次方,请补全所缺语句

Double fun (double y,int x)

{   int i;

double  z=1.0;

for(i=1;i_____<=x____;i++)

z=____z*y________;

return z;

}

 

29、关于C语言,以下叙述不正确的是( D

A.一个C源的程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.程序的基本组成单位是函数

D.在C语言中,注释说明只能位于是一条语句后面

 

30C语言中。若有说明语句:char c=‘/72’,则变量c (  )

 A.包含1个字符

      B.包含2个字符

      C.包含3个字符

      D.说明不合法,c的值不确定

 

31、在c语言中,根据定义和数据的输入方式,输入语句的正确形式为(  )

      已有定义:float f1,f2;

       数据的输入方式:4.52

                  3.5

      A.scanf (“%f ,%f ”&f 1,&f 2);

      B.scanf (“%f %f ”,&f 1,&f 2);

C.scanf (“%3.2f ,%2.1f ”,&f 1,&f 2);

      D. scanf("%3.2f%2.1f",&f1,&f2);

 

32C语言中,已知int x=10,y=20, z=30:以下语句执行后x,y,z的值是( 

      If(x>y)z=x;  x=y ; y=z;

A.      x=10,y=20,z=30

B.      x=20,y=30,z=10

C.      x=20,y=30,z=30

D.     x=20,y=30,z=20

 

33、下面C语言程序的运行结果是( 

 #include<stdio.h>

      Main(){

          int x,i;

          for(i=1;i<=100:i++){

          x=i:

        if(x%2==0)

         if(x%3==0)

          if(x%7==0)

              printf(“%d”,x);

          }

}

A.3981

B.4284

C.2668

D.2870

 

34、判断char型变量c1是否为小写字母的正确表达方式( 

      A.(’a’>=c1|| (‘z’<=c1)

      B.(c1>=’a’)&&(c1<=’z’)

      C.(c1>=a)&&(c1<=z)

      D.’a’<=c1<=’z’

 

35C语言中,若有说明:int a[10];则对a数组元素的正确引用是( 

      A.a[10]

      B.a[3.5]

      C.a(5)

      D.a[10-10]

 

36C语言中,运行以下程序

main(){

int x;

scanf(“%d”,&x);

if(x>60)  printf(“%d”,x);

if(x>40)  printf(“%d”,x);

if(x>30)  printf(“%d”,x);

}

若从键盘输入58,则输出结果是(

A585858    B5858   C58    D)报错

 

37C语言中,以下程序段的输出结果是(

int a=100,x=10,y=20,ok1=5,ok2=0;

if(x<y)

if(y!=0)

     if(!ok1)

         a=1;

     else

     if(ok2)

         a=0;

     a= -1;

printf(“%d/n”,a);

A) 1            B)  -1            C) 0               D)值不确定

 

38C语言中,若定义-int m=7,n=12;

则能得到值为3的表达式是( )。 (选择一项,15分)

A  n%=m%=5

B  n%=m-m%5

C  n%= m-m%=5

D  (n%=m)-(m%=5

 

39C语言中,s1s2已正确定义并分别指向两个字符串。若要求:当s1所指的字符串大于s2所指的字符串时,执行语句S;则下列先项中,正确的是( )。(选择一项,2分)

A  if(s1>s2)S;

B  if(strcmp(s1,s2))S;

C  if(strcmp( s2,s1)>0)S;

D  if(strcmp(s2,s1))S;

 

40C语言中,合法的数组定义是( )。(选择一项,1.5分)

A  int a[]=“tring”;

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

C  char a=tring;

D  char a[]={0,1,2,3,4};

 

41、在C语言中,某程序员在一个show函数中定义了一个静态局部变量i,下列关于该静态变量的说法不正确的是( )。(选择一项,2分)

Void show(){

    Static int I;

    Printf(“%d,i++);

}

A   该变量的生存期为整个程序

B   该变量的作用域只能在定义该变量的show函数内使用

C   该变量由于未赋值,其值是不定的

D   如果给该变量赋值为1,每次调用show函数时,输出的结果都是1

 

42、在C语言中,以下程序执行后的输结果是( )。(选择一项,2分)

Main(){

    Int x[8]={8,7,6,5,4,3},*s;

    S=x+3;

    Printf(“%d/n”,s[2]);

}

A   随机值

B   3

C   4

D   5

 

43C语言中,设有枚举类型定义:

enum{sun,mon,tue,wed,thu,fri,sat}day;

day=wed;

现在要输出字符串wed,则下列语句中错误的是( )。(选择一项,2分)

A   printf(“%s/n”,day);

B  if(day= =wed)printf(“wed”);

C  if(day= =3)printf(“wed”);

D  switch(day){

        Case sun:printf(“sun”);break;

        Case wed:printf(“wed”);break;

        Case sat:printf(“sat”);break;

 

44、在C语言中,设xy均为ing型变量,则执行下面的循环后,y的值为()。

fory=1,x=1;y<=50;y++{

ifx==10

break

ifx%2==1

{

x+=5

continue

}

x-=3
}

A8
B4
C2
D6

45C语言中,若有定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为()

A  float

B  double

C  char

D  int

 

46、根据C语言标识符的命名规则,以下哪个标识符是合法的()

A  2xy

B  a*b

C  %num

D  _one

 

47、有如下C语言程序:

      Main(){

         Int x=1,a=0,b=0;

         Switch(x){

            Case0:b++

            Case1:a++

            Case2:a++;b++;

             }

           Printf(“a=%d=%d/n”,a,b);

}

该程序的输出结果是()

A a=1,b=1

B a=2,b=1

Ca=1,b=0

Da=2,b=2

 

48、下列语句中,可以;输出26个大写英文字母的是()

A for(a`A`;a<=`Z`; printf (“%c,a++))

B for(a=`A`;a<=`Z`;a++)printf(“%c”,a++);

C for(a=`A`;a<=`Z`; printf(“%c”,a++));

D for(a=`A`;a<=`Z`;++a)printf(“%c,++a);

 

49、以下C语言程序中,WHILERF循环的循环     次数是()

#inclde<stdio.h>

Main(){

int  i=0;

while(i<10){

if(i<1)continue;

if(i=5)break;

i++;

}

……

}

A 死循环

B 1

C 6

D 10

 

50C语言中,下面四个选项中,均是C语言合法标志的选项是( )。

A)3B sizeof   DO            B)Key cl_c2  _FOR

C)425  T3-al $IF                  D)void  AL 5B

 

51、下面( )是合法的C语言赋值语句i。

A)int  A,B;A=5==B                B)  int  A,B  A=5  B=5

C)  INT  A=5;B=5                  D)  int  A,B;A=B=5;

 

52C语言中,设int  i;char c;float f;

则以下表达式中结果为整数的是()。

A)i+f          B)i*c           C)c+f           D)i+c+f

 

53C语言中,定义数组int a[100];  则在下列给出的数组元素中,非法的是( )。

a[0]           B)a[1]           C)a[99]         D)[100]

 

54、执行下面程序:在C语言中执行后的输出结果是( )

 Main()

{  int i;

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

   switch(i)

   {    case 1;printf(“%d”,i);

        case 2;printf(“%d”;i);

        default:printf(“%d”,i);

   {

{

A)011122           B)012            C)012020        D)120

 

55、下面程序ide输出结果是( )

Mail( ){

Int a[]{1,2,3,4,5,6,7,8,9,0,}

int *p=a;

printf(“%d/n”,*p+9);

{

A)0    B)1        C9         D)10

 

56C     语言中,设有如下说明,则下面叙述中正确的是( )

struct  ET{

  long a;

  int b;

  char c[2];

}ones;

A) 以上的说明形式非法  B)ones 是一个结构体类型

C)ET是一个结构体类型 D)ones 是一个外部结构变量

  

57、当调用函数时,实参是1个数组名,则函数传达的是(

   A  数组的长度

   B  数组的首地址

   C  数组每1个元素的地址

   D  数组每个元素中的值

 

58C语言可执行程序的开始执行点是(

   A  程序中的第1条可执行语言

   B  程序中的第1个函数

   C  程序中的main()函数

   D  包含文件中的第1个函数