首页 > 就业 > 笔试

计算机C语言笔试题目及答案

计算机C语言笔试题目及答案



计算机C语言笔试题目及答案

  想考计算机C语言笔试的同学要注意了,接下来是yjbys小编为大家精心搜集的计算机C语言笔试题目及答案,供大家参考借鉴。

  一、 填空题(本大题共25小题,每小题2分,共50分)

  1.以下C语言提供的合法的数据类型说明关键字为 d 。

  A. Float B. Signed C .interger D. char

  2.C语言中的标识符只能由字母、数字、下画线组成,且第一个字符 c 。

  A必须为字母B必须为下画线C必须为字母或下画线D可以是字母、数字或下画线中任何一种。

  3.设有以下语句:

  char a=3,b=6,c;

  c=a^b<<2;

  则 c 的二进制值是 a 。

  A. 00011011

  B. 00010100

  C. 00011100

  D. 00011000

  4.假定w,x,y,z,m均为int型变量,有如下程序段

  w=1; x=2; y=3; z=4;

  m=(w>x)?w:x;

  m=(m

  m=(m

  则程序运行后,m的值是 d 。

  A 4 B 3 C 1 D 2

  5.若执行以下程序时从键盘上输入9,则输出结果是 b 。

  main()

  {

  int n;

  scanf(“%d”,&n);

  if(n++<10)

  printf(“%d”\n,n--)

  }

  A 11 B 10 C 9 D 8

  6.以下程序段的输出结果是 d 。

  int x=3;

  do

  {

  printf(“%d”,x=2);

  }while(!(--x));

  A 1 B 30 C 1-2 D死循环

  7. C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是 b 。

  A.地址传递B.值传递C.由实参传递给形参,再由形参传递给实参D.由用户指定传递方式

  8. 已知一个函数的定义如下: d 。

  double fun (int x, double y)

  {……}

  则该函数正确的函数原型声明为:

  A.double fun(int x,double)B.fun (int x, int y)C.double fun( int ,double);D.fun(x,y);

  9.已知整型变量K的值为5,下面程序段执行的结果是 c 。

  switch(k)

  {

  case1: putchar(‘A’);

  case2: putchar(‘B’);

  case3: putchar(‘C’);

  case4: putchar(‘D’);

  default:putchar(‘E’);

  }

  A CDE B C C E D ABCD

  10.以下程序的执行次数是 c 。

  main()

  {

  int i,j ;

  for(i=0,j=1;i<=j+1;i+=2,j--)

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

  }

  A 3 B 2 C 1 D 0

  11.下列叙述中错误的是 b 。

  A 主函数中定义的变量在整个程序 中都是有效的

  B 复合语句中定义的变量只在该复合语句中有效

  C 其他函数中定义的变量在主函数中不能使用

  D 形参是局部变量

  12.若运行时输入100,写出以下程序的运行结果。

  main()

  {

  int a;

  scanf("%d",&a);

  printf("%s",(a%2!=0 ?"No":"Yes"));

  }_

  Yes运行结果:A No B Yes C s D No:Yes

  运行结果: b

  13.下面正确的二维数组定义是 b 。

  A int a[2][]={{1,2},{2,4}};B int a[][2]={1,2,3,4,};C int a[2][2]={{1},{2},{3}};

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

  14.若有

  char a[]=”china”;

  则 d 不可输出该字符串。

  A puts(a); B printf(“%s”,a)

  C int i; for(i=0;i<5;i++) printf(%c”,a[i]); D putchar(a);

  15.对于字符串的操作,下列说法中正确的是 c 。

  A 可用赋值表达式对字符数组赋值,如char str[20]; str=”aaaa”;

  B 若有字符数组a和b,且a>b,则strcmp(a,b)为非负数

  C 可用strcpy函数进行字符串的复制完成字符数组的'赋值

  D 字符串“aaaa”在内存中占用4个字节长度

  16.已有定义 int k=2;int *ptrl1, *ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是 b 。

  A.k=*ptrl+*ptr2 B ptr2=k C.ptl1=ptr2 D k=*ptr1*(*ptr2)

  17.若定义:

  int a[9], *p=a;

  并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是 b 。

  A.p+1 B a+1 C ++p D a++

  18.若有以下定义和语句:

  #include

  main(0

  {char *s1=”12345”,*s2=”1234”;

  printf(“%d\n”,strlen(strcpy(s1,s2)));

  }则输出的结果是 c 。

  A.9 B 5 C 4 D 10

  19.以下定义和语句:

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

  p[0]=a[1];

  则*(p[0]+1)所代表的数组元素是 c 。

  A.a[0][1] B a[1][0] C a[1][1] D a[1][2]

  20.以下程序的输出结果是 b 。

  main()

  { char str[][10]={“China”, “BEijing”},*p=str;

  printf(“%s\n”,p+10);

  }

  A. China B Beijing C ng D ing

  21.回答本题的运行结果为 a 。

  已知 int x=3,y,*p,*q;

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

  p=&x; y=*p, q=a+2;

  printf(“%d%d%d%d”,x,y,*p,*q);

  A.3 3 3 3 B 1 2 3 4

  C.1 2 2 3 D 2 2 2 2

  22.在switch()语句中case 后面可以是 c 。

  A.关系表达式 B 逻辑表达式 C 常量表达式 D算术表达式

  23.表达式5>3&&2||8<4-!1值是 a 。

  A.1 B 2 C 3 D 0

  24.下列运算符中,优先顺序的级别最低的是 d 。

  A.! B && C+ D ||

  25.已有定义int k=2;int *ptrl,*ptr2;且ptr1和prt2 均已指向变量k,下面有能正确执行的赋值语句是 b 。

  A.k=*ptr1+*ptr2 B.ptr2=k C.ptr1=ptr2 D.k=*ptrl*(*ptr2)

  二、填空题:(本大题共5小题,每小题2分,共10分)

  1.C语言中,唯一的三目运算符是 表达式1?表达式2:表达式3 ,而&&是 双 目运算符。

  2.函数的递归可分直接递归和间接递归,它由递推和 回归 两部分组成。

  3.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 3 6 7 。

  4.C语言提供了两个与地址相关的运算符分别是 & && 。

  5.C语言数组的下标总是从 0 开始,不可以为负数;构成数组各元素具有相同的 变量 。

  三、程序分析题(本大题共4小题,前三小题每题 4分,最后一小题8分,共20分)

  1.以下程序的输出结果为 a 。

  main()

  {

  char c=’z’;

  printf(“%c”,c-25);

  }

  2.分析下列程序的运行结果

  main()

  {

  int k=4,m=1,p;/*静态变量应用*/

  p=fl1(k,m);

  printf("%-10d",p);

  p=fl1(k,m);

  printf("%-10d",p);

  }

  fl1(a,b)

  int a,b;

  {

  static int m,i=2;

  i*=m+2;

  m=i+a+b;

  return(m);

  }_

  运行结果为:9 49 (9空格)。

  3.通过指针变量给所指向的变量赋值。请将编号①②空白处补充完整。

  void main()

  {

  int int *p1, *p2, a, b;

  ① p1=&a;

  ② p2=&b;

  scanf(“%d%d”,p1,p2);

  printf(“%d%d”,a,b);

  }

  4.下列程序的作用是将一个数组中的数据逆序输出,请将编号①②③④空白处补充完整。

  #include

  main()

  {

  int n[10];

  int i,j,tmp;

  printf(“please 10 numbers:\n”)

  for(i=0;i<10;i++) scanf(“%d”,&n[i]);

  printf(“Origin number:\n”);

  for ①(i=9;i>=0;i--);

  printf(“%d”,n[i]);

  i=0;j=9;

  while ② ;

  {

  tmp=n[i];

  n[i]=n[j];

  n[j]=tmp;

  ③ ;

  ④ ;

  }

  printf(“Reversing bumbers:\n”);

  i=0;

  while(i<10)

  {

  printf(“%d”,n[i]);

  i++;

  }

  }

  四、按要求编写程序(本大题共2小题,每小10题分,共20分)

  1.利用冒泡法对60个学生的成绩进行排序。

  2.编和求 ,公式如下:

  ,其中arctan(x)用如下形式的级数计算:

  直到某级数绝对值不小于 为止。(提示: 和x均为double型)

  1.(从低到高的排序)

  #include

  #include

  void fun(int a[], int n);

  void main(void)

  {

  int a[60], i;

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

  {

  scanf("%d",&a[i]);

  }

  fun(a,60);

  }

  void fun(int a[], int n)

  {

  int i,j,t;

  for(i=0; i

  {

  for (j=0; j

  {

  if (a[j] > a[j+1])

  {

  t=a[j];

  a[j] = a[j+1];

  a[j+1] = t;

  }

  }

  }

  for (i=0; i

  {

  printf("%d ", a[i]);

  }

  printf("\n");

  }

  2.(网上找的不确定)

  #include

  #include

  #include

  #include

  void main ()

  {

  int x,y;

  long i,m=0;

  double d,r=32767;

  float pi,n=5000000;

  srand()(time(0));

  for(i=0;i

  {

  x=rand()();

  y=rand()();

  d=sqrt(x*x+y*y);

  if (d

  {

  m=m+1;

  }

  }

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

  pi=4*m/n;

  printf("pi=%f\n",pi);

  }

相关内容

热门阅读
随机推荐