C语言

计算机考试C语言笔试试题附答案

时间:2024-09-24 21:17:06 C语言 我要投稿
  • 相关推荐

计算机考试C语言笔试试题附答案

  吹嘘自己有知识的人,等于在宣扬自己的无知。以下是小编为大家搜索整理计算机考试C语言笔试试题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

计算机考试C语言笔试试题附答案

  一、选择题(1-30每小题1分,31-45每小题2分,共60分)

  下列各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。答在试卷上不得分。

  (1) 二进制数101110转换为等值的八进制数是 (  ) 。

  A.45

  B.56

  C.67

  D.78

  (2) CPU是由(  )组成的。

  A.内存储器和控制器

  B.控制器和运算器

  C.内存储器和运算器

  D.内存储器、控制器和运算器

  (3) DOS是为IBM PC系列微型计算机及其兼容机所配置的 (  ) 磁盘操作系统。

  A.多用户多任务

  B.单用户单任务

  C.分时

  D.分布式

  (4) 启动MS-DOS操作系统后, (  ) 已驻留内存。

  A.COMMAND.COM

  B.DISKCOPY.COM

  C.FORMAT.COM

  D.CCCC.EXE

  (5) 设驱动器B中软盘上的目录结构如下图所示。

  设当前目录为F2,则把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是 (  ) 。

  A.COPY PROG.BAS B:

  B.COPY A:PROG.BAS B:\

  C.COPY A:\PROG.BAS B:\F3

  D.COPY A:PROG.BAS B:\F3\

  (6) 下面四组DOS命令中,意义完全相同的一组是 (  ) 。

  A.COPY和DISKCOPY

  B.COMP和DISKCOMP

  C.DEL和RD

  D.RENAME和REN

  (7) 防止软盘感染病毒的有效方法是 (  ) 。

  A.不要把软盘和有毒软盘放在一起

  B.在写保护缺口上贴上胶条

  C.保持机房清洁

  D.定期对软盘格式化

  (8) 双面高密度5英寸软磁盘的容量是 (  ) 。

  A.360KB

  B.720KB

  C.1.2MB

  D.1.44MB

  (9) 在FOXBASE中,可以使用的两类变量是 (  ) 。

  A.内存变量和字段变量

  B.全局变量和局部变量

  C.字段变量和简单变量

  D.内存变量和自动变量

  (10) 建立一个新子目录的DOS命令是 (  ) 。

  A.CREATE

  B.RD

  C.MD

  D.CD

  (11) 在C语言中,如果下面的变量都是int类型,则输出的结果是 (  ) 。

  sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;

  printf("%d\n",pad);

  A.7

  B.6

  C.5

  D.4

  (12) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { int i=010 , j = 10;

  printf("%d,%d\n",+ +i , j - -); }

  A.11,10

  B.9,10

  C.010,9

  D.10,9

  (13) 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 (  ) 。

  # include

  main()

  { char c1=’A’, c2=’Y’;

  printf("%d,%d\n",c1,c2); }

  A.因输出格式不合法,输出错误信息

  B.65,90

  C.A,Y

  D.65,89

  (14) 指针s所指字符串的长度为 (  ) 。

  char *s="\\"Name\\Address\n";

  A.19

  B.15

  C.18

  D.说明不合法

  (15) 设有说明int(*ptr)[m];其中的标识符ptr是 (  ) 。

  A.M个指向整型变量的指针

  B.指向M个整型变量的函数指针

  C.一个指向具有M个整型元素的一维数组的指针

  D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量

  (16) 语句while(!E);中的条件!E等价于 (  ) 。

  A.E = = 0

  B.E!=1

  C.E!=0

  D.~E

  (17) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { printf("%d\n",NULL); }

  A.不确定的(因变量无定义)

  B.0

  C.-1

  D.1

  (18) 以下函数调用语句中含有 (  ) 个实参。

  func((exp1,exp2),(exp3,exp4,exp5));

  A.1

  B.2

  C.4

  D.5

  (19) 设有以下语句:

  char a=3,b=6,c;

  c=a^b<<2;

  则c的二进制值是 (  ) 。

  A.00011011

  B.00010100

  C.00011100

  D.00011000

  (20) 下面的程序中 (  ) 有错误(每行程序前面的数字是行号)。

  1 #include

  2 main()

  3 {

  4 float a[3]={0,0};

  5 int i;

  6 for(i=0;i<3;i + + ) scanf("%d",&a[i]);

  7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i];

  8 printf("%f\n",a[0]);

  9 }

  A.没有

  B.第4行

  C.第6行

  D.第8行

  (21) 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是 (  ) 。

  A.3

  B.0

  C.9

  D.-12

  (22) 以下的for循环 (  ) 。

  for(x=0,y=0; (y!=123)&&(x<4); x + + );

  A.是无限循环

  B.循环次数不定

  C.执行4次

  D.执行3次

  (23) 设有语句char a=’\72’;则变量a (  ) 。

  A.包含1个字符

  B.包含2个字符

  C.包含3个字符

  D.说明不合法

  (24) 以下程序的输出结果是 (  ) 。

  # include

  # include

  main()

  { int a=1,b=4,c=2;

  float x=10..5 , y=4.0 , z;

  z=(a+

  B./c+sqrt((double)y)*1.2/c+x;

  pritnf("%f\n",z); }

  A.14.000000

  B.015.400000

  C.13.700000

  D.14.900000

  (25) sizeof(double)是 (  ) 。

  A.一种函数调用

  B.一个双精度型表达式

  C.一个整型表达式

  D.一个不合法的表达式

  (26) C语言中 (  ) 。

  A.不能使用do-while语句构成的循环

  B.do-while语句构成的循环必须用break语句才能退出

  C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

  D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环

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

  # include

  # include

  main()

  { char str[12]={’s’,’t’,’r’,’i’,’n’,’g’};

  printf("%d\n",strlen(str)); }

  A.6

  B.7

  C.11

  D.12

  (28) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { int a=2,c=5;

  printf("a=%%d,b=%%d\n",a,

  C.; }

  A.a=%2,b=%5

  B.a=2,b=5

  C.a=%%d,b=%%d

  D.a=%d,b=%d

  (29) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { int a ,b,d=241;

  a=d/100%9;

  b=(-1)&&(-1);

  printf("%d,%d\n",a,

  B.; }

  A.6,1

  B.2,1

  C.6,0

  D.2,0

  (30) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { int i;

  for ( i=1;i<=5;i + + ) {if ( i%2 ) printf("*");

  else continue; printf("#");}

  printf("$\n"); }

  A.*#*#*#$

  B.#*#*#*$

  C.*#*#$

  D.#*#*$

  (31) 以下for语句构成的循环执行了 (  ) 次。

  # include

  # define N 2

  # define M N+1

  # define NUM (M+1)*M/2

  main()

  { int i , n=0;

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

  {n + + ; printf("%d",n); }

  printf("\n"); }

  A.5

  B.6

  C.8

  D.9

  (32) 设有以下语句,则 (  ) 不是对a数组元素的正确引用,其中0≤i<10。

  int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;

  A.a[p-a]

  B.*(&a[i])

  C.p[i]

  D.*(*(a+i))

  (33) 有以下程序:

  # include

  # define N 6

  main()

  { char c[N]; int i=0;

  for ( ;i  for ( i=0 ; i  输入以下三行,每行输入都是在第一列上 开始,代表一个回车符:

  a

  b

  cdef

  程序的输出结果是 (  ) 。

  A.abcdef

  B.a

  C.a

  D.a

  b b b

  c cd cdef

  d

  e

  f

  (34) 以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。

  # include

  findmax ( s , t , k )

  int *s , t , *k;

  { int p; for(p=0,*k=p;p   if ( s[p] > s[*k] )(  ); }

  main()

  { int a[10] , i , k ;

  for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]);

  findmax ( a,10,&k );

  printf ( "%d,%d\n" , k , a[k] ); }

  A.k=p

  B.*k=p-s

  C.k=p-s

  D.*k=p

  (35) 有以下程序:

  #include

  union pw

  { int i; char ch[2]; } a;

  main()

  { a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }

  程序的输出结果是 (  ) 。(注意: ch[0]在低字节,ch[1]在高字节。)

  A.13

  B.14

  C.208

  D.209

  (36) 有以下程序:

  # include

  main()

  { int c;

  while((c=getchar())!=’\n’)

  { switch(c-’2’)

  { case 0:

  case 1: putchar(c+4);

  case 2: putchar(c+4);break;

  case 3: putchar(c+3);

  case 4: putchar(c+2);break; } }

  printf("\n"); }

  从第一列开始输入以下数据,代表一个回车符。

  2743

  程序的输出结果是 (  ) 。

  A.668977

  B.668966

  C.6677877

  D.6688766

  (37) 以下程序的输出结果为 (  ) 。

  main()

  { char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};

  char **p; int i;

  p=alpha;

  for(i=0;i<4;i + + ) printf("%s",p[i]); printf("\n"); }

  A.ABCDEFGHIJKL

  B.ABCD

  C.ABCDEFGHIJKLMNOP

  D.AEIM

  (38) 以下程序的输出结果是 (  ) 。

  # include

  # define FUDGE(y) 2.84+y

  # define PR(

  A.printf("%d",(int)(

  A.)

  # define PRINT1(

  A.PR(

  A.;putchar(’\n’)

  main()

  {int x=2; PRINT1(FUDGE(5)*x); }

  A.11

  B.12

  C.13

  D.15

  (39) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { int i=1,j=3;

  printf("%d",i + + );

  { int i=0; i+=j*2; printf("%d,%d",i,j); }

  printf("%d,%d\n",i,j); }

  A.1,6,3,1,3

  B.1,6,3,2,3

  C.1,6,3,6,3

  D.1,7,3,2,3

  (40) 以下程序的输出结果是 (  ) 。

  # include

  main()

  { int k=4,m=1,p;

  p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}

  func(a,

  B.

  int a,b;

  { static int m=0,i=2;

  i+=m+1; m=i+a+b; return(m); }

  A.8,17

  B.8,16

  C.8,20

  D.8,8

  (41) 设有以下语句:

  char str[4][12]={"aaa","bbbb","ccccc","dddddd"},

  *strp[4];

  int i;

  for(i=0;i<4;i + + )strp[i]=str[i];

  (  )不是对字符串的正确引用,其中0≤k<4。

  A.strp

  B.str[k]

  C.strp[k]

  D.*strp

  (42) 设有以下语句:

  char str1[]="string",str2[8],*str3,*str4="string";

  则 (  ) 不是对库函数strcpy的正确调用,此库函数用业复制字符串。

  A.strcpy(str1,"HELLO1");

  B.strcpy(str2,"HELLO2");

  C.strcpy(str3,"HELLO3");

  D.strcpy(str4,"HELLO4");

  (43) C语言中形参的缺省存储类别是 (  ) 。

  A.自动(auto)

  B.静态(statiC)

  C.寄存器(register)

  D.外部(extern)

  (44) 设有以下语句:

  struct st {int n; struct st *next;};

  static struct st a[3]={5,&a[1],7,&a[2],9,’\0’},*p;

  p=&a[0];

  则表达式 (  ) 的值是6。

  A.p + + ->n

  B.p->n + +

  C.(*p).n + +

  D.+ + p->n

  (45) 以下四个程序中, (  ) 不能对两个整型变量的值进行交换。

  A.# include

  main()

  { int a=10,b=20; swap(&a,&

  B.;

  printf("%d %d\n",a,

  B.;

  }

  swap(p,q)

  int *p,*q;

  {

  int *t;

  t=(int )malloc(sizeof(int));

  t=p;*p=*q;*q=*t; }

  B.# include

  main()

  {

  int a=10,b=20;

  swap(&a,&

  B.;

  printf("%d %d\n",a,

  B.;

  }

  swap(p,q)

  int p,q;

  {

  int *t;

  t=*p;*p=*q;*q=t;

  }

  C.# include

  main()

  {

  int *a,*b;

  *a=10,*b=20;

  swap(a,

  B.;

  printf("%d %d\n",*a,*

  B.;

  }

  swap(p,q)

  int *p,*q;

  {

  int t;

  t=*p;*p=*q;*q=t;

  }

  D.# include

  main()

  {

  int a=10,b=20;

  int x=&a,y=&b;

  swap(x,y);

  printf("%d %d\n",a,

  B.;

  }

  swap(p,q)

  int *p,*q;

  {

  int t;

  t=*p;*p=*q;*q=t;

  }

  二、填空题(每空2分,共40分)

  请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分。

  (1) 结构化程序设计所规定的三种基本控制结构是 【1】 结构.选择结构和循环结构。

  (2) 在七位ASCII码中,除了表示数字、英文大小写字母外,还有 【2】 个其它符号。

  (3) 把B盘BAS子目录下第三个字符为A,且没有扩展名的全部文件拷贝到C盘ABC子目录下的命令是 【3】 。

  (4) 微机中ROM的中文意义是 【4】 存储器。

  (5) 启动MS-DOS系统后,能自动执行的批处理文件是 【5】 .BAT。

  (6) 设当前盘为C盘,删除B盘FOX子目录中扩展名为.TXT的所有文件的命令是 【6】 。

  (7) 十进制数53转换为十六进制数为 【7】 。

  (8) 数据库管理系统常见的数据模型有层次、网状和 【8】 三种。

  (9) 买来一张新盘后,在存入文件前,必须进行 【9】 处理。

  (10) 在微机中,字符的比较就是对它们的 【10】 码进行比较。

  (11) 以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。

  #include

  main(argc,argv)

  int argc; char *argv[];

  { FILE *f1,*f2; char ch;

  if(argc< 【11】 )

  { printf("Parameters missing!\n"); exit(0); }

  if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))

  { printf("Can not open file!\n"); exit(0);}

  while( 【12】 )fputc(fgetc(f1),f2);

  fclose(f1); fclose(f2); }

  (12) 以下程序中的trap函数是一个用梯形法求定积分的通用函数。梯形法求定积分的公式为:

  n-1 a-b

  s=((f(a)+f(b))/2+∑ f(a+i*h))*h , h=|----|

  i=1 n

  其中,n为积分小区间数。以下程序调用trap函数求定积分,被积函数是:

  f(x)=x*x+3*x+2,且n=1000,a=0,b=4。

  #include

  3include

  double trap(fun,a,b)

  double (*fun)(),a,b;

  { double t,h;

  int i,n=1000;

  t=0.5*((*fun)(a)+(*fun)(b)); h=fabs(a-b)/(double)(n);

  for(i=1;i<=n-1;i + + ) t=t+ 【13】 ;

  t=t*h; return(t); }

  double mypoly(x)

  double x;

  { return(x*x+3.0*x+2.0); }

  main()

  { double y,(*pf)(); pf= 【14】 ;

  y=trap(pf,0.0,4.0); printf("%f\n",y); }

  (13) 以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。

  #include

  main()

  { int i,a[10],*p=a,sum=0;

  printf("Enter 10 num:\n");

  for(i=0;i<10;i + + ) scanf("%d",&a[i]);

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

  if(isprime(*(p+ 【15】 )) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); }

  printf("\nThe sum=%d\n",sum); }

  isprime(x)

  int x;

  { int i; for(i=2;i<=x/2;i + + )

  if(x%i = = 0) return (0); 【16】 ; }

  (14) 以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。

  #include

  #define N 10

  invert(s,i,j)

  int *s,i,j;

  { int t; if(i  main()

  { int a[N],i;

  for(i=0;i   invert(a,0,N-1);

  for(i=0;i   printf("\n"); }

  (15) 以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data 域不放数据,表空的条件是ph->next = = NULL).

  #include

  struct list { int data;struct list *next;};

  【19】 creatlist()

  { struct list *p,*q,*ph; int a;

  ph=(struct list *) malloc(sizeof(struct list));

  p=q=ph; printf("Input an integer number,enter –1 to end:\n");

  scanf("%d",&a):

  while(a!=-1)

  { p=(struct list *)malloc(sizeof(struct list));

  p->data=a; q->next=p; 【20】 =p; scanf("%d",&a); }

  p->next=’\0’; return(ph); }

  main()

  { struct list *head; head=creatlist();}

  参考答案

  选择题([1]——[30]每个选项1分,[31]——[45]每个选项2分,共60分)

  (1)B (2)B (3)B (4)A (5)C (6)D (7)B (8)C (9)A (10)C

  (11)C (12)B (13)D (14)B (15)C (16)A (17)B (18)B (19)A (20)C

  (21)D (22)C (23)A (24)C (25)C (26)D (27)A (28)D (29)B (30)A

  (31)C (32)D (33)C (34)D (35)A (36)A (37)C (38)B (39)B (40)A

  (41)A (42)C (43)A (44)D (45)C

  二` 填空题(每空2分,共40分)

  (1)顺序

  (2)66

  (3) COPY B:\BAS\??A*.C:\ABC(或COPY B:\BAS\??A*.,C:\ABC)

  (4)只读

  (5)AUTOEXEC

  (6)DEL B:\FOX\*.TXT

  (7)35

  (8)关系

  (9)格式化(或初始化、FORMAT)

  (10)ASCII

  (11)3

  (12)!feof(f1)或feof(f1)==0

  (13)(*fun)(a+i*h)

  (14) mypoly

  (15)I

  (16)return 1 或 return (1)

  (17)i+1

  (18) I

  (19) struct list *

  (20) q

【计算机考试C语言笔试试题附答案】相关文章:

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

C语言考试试题及答案06-12

标准c语言笔试题09-07

C语言试题及答案07-26

2015年计算机二级考试C语言模拟试题(四)附答案10-11

c语言常见笔试题总结10-28

C语言笔试题100道08-14

2024年C语言考试题及答案09-20

C语言模拟试题及答案09-19

2017计算机二级C语言基础测试题附答案10-19