C语言笔试复习题

时间:2021-03-16 14:16:07 综合指导 我要投稿

C语言笔试复习题

  标签: 分类: 计算机等级考试

C语言笔试复习题

  杂谈

  一、判断对错

  1. 3_a_b是合法的标识符。

  2.设有定义float a; 则变量a在内存中占2个字节。

  3.C语言在执行过程中,不检查数组下标是否越界。

  4.局部静态变量在编译时赋初值。

  5.若有以下定义:#define C R 37.6921;则C R是称为宏名的标识符。

  6.若有定义int *fun(int x ,int y){??..}则fun函数是用指针做参数的函数。

  7.若有定义int a[2][3]={{1,3},{2,4}};则a[1][2]的值为4。

  8.if语句嵌套时,每个else总是与它上面最近的并且没有与其它else匹配的.if配对。

  9.循环语句for(k=0;k=10;k++);最多执行10次。

  10.函数定义时,出现在函数首部括号中的参数称为实参。

  二、指出下列错误:

  1. 有如下程序来求 1+1/2+1/3+1/4+1/5的和。

  main()

  {int i,n;

  float t,s;

  n=5;s=0;

  for(i=1;i<=n;i++){t=1/I;s=s+t;}

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

  }

  2. 以下程序调用exc函数对两个整数进行交换。

  void exp(int *a, int *b){int *t; t=*a; *a=*b; *b=t;}

  main()

  { int x, y , *px, *py;

  px=&x; py=&y; scanf(“%d%d”,px,py);

  exc(px,py);

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

  3. 欲对数组a的各个元素赋值:

  main()

  {int a[5], i;

  for(i=0;i<5;i++)< p="">

  scanf(“%d”,*(a+i));??.}

  4. 欲使指针s指向字符串“abcd”的首字符:

  main()

  { char *s;

  *s=”abcd”; ??}

  5. 有如下程序,欲实现将数组元素a[1][1]的值放在变量i中: int a[2][3]={{1,2,3},{4,5,6}};

  int I;

  i=*(*a+1);

  四、阅读和分析程序并回答问题

  1、main() 问题:左侧hcf函数的功能是求两个正整数的最大公约数, {int a, b, c; 并返回相应的值。请填空。

  scanf(“%d%d”,&a,&b);

  c=hcf(a,b);

  printf(“%d\n”,c);}

  hct(int m, int n)

  {int r;

  r=m%n; while( A )

  {m=n;n=r;r=m%n;} B ;}

  2、#include “stdio.h” 问题:A写出画线处语句的功能。 main() B若输入abc12dec34程序的运行结果是什么?

  {char s[80];

  int i, j; gets(s);

  for(i=j=0;s[i]!=’\0’;i++)

  if(s[i]!=’c’) s[j++]=s[i];

  s[j]=’\0’;

  puts(s);

  }

  3、main() 问题:A写出程序运行结果。

  {int x[10]={2,4,6,8,10,12,14,16,18,20},*p,**k; p=x;

  k=&p;

  *(x+2)=100; p=p+2; *(p+2)=200;

  printf(“%d\n”,**k);

  }

  三、1、已知:x=3,y=2, 则表达式x*=y+8 的值是( )。

  A 3 B 2 C 30 D 10

  2、若有说明:int i,j=7,*p=&i; 则与i=j;等价的语句是( )

  A i=*p B *p=*&j; C i=&j; D i=**p;

  3、若有以下定义和语句:int **pp, *p, a=10, b=20;

  pp=&p; p=&a; p=&b; printf(“%d,%d\n”, *p, **pp); 则输出结果是:

  A 10,20 B 10,10

  C 20,10 D 20,20

  4、若有以下说明,则对a数组元素的正确引用是( )。 int a[5], *p=a;

  A a[5] B *p+2 C *(a-2) D *p

  5、下面程序片段的输出结果是()。

  int n=10;

  while(n>7)

  {n--; printf(“%d”,n); }

  A 10 9 8 B 9 8 7 C 10 9 8 7 D 9 8 7 6

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

  main()

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

  int i;

  i=8; p=a+i;

  printf(“%c\n”,*(p-c));

  }

  7、若有以下定义,且0≤i<5,错误的赋值是()。

  int *s[5], a[5][10], *p,i;

  A p=a B s[i]=a[i] C p=a[i] D s[i]=&a[2][0]

  8、一个C程序开始执行的位置是()。

  A 程序开头 B 预编译 C 变量定义 D main 函数

  9、设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值是()。

  A -1 B 0 C 1 D 2

  10、若有定义char a; int b; float c; double d; 则表达式a*b+c-d的值的类型是()。

  A float B int C char D double

  五、按要求编写程序(本大题共6小题,每小题5分,共30分)

  1、从键盘输入一个正整数n,求出n!(n!=1*2*3??*n)。

  2、求一个3×4数组最大元素及其在数组中的位置。

  3、输出斐波那契数列的前20项。

  4、有数组int a[10]={8,-9,11,-4,0, 45, -55, 78, -34, 55};

  要求:使用指针,将其中最大值和最小值互换,输出处理后的数组。

  5、输入两个字符串,把一个字符串连接到另一个字符串后面, 形成一个完整的字符串并输出。要求:不能用strcat()函数。

  6、写一个函数求一个整型数组中所有元素的平均值。

  要求:在主函数中输入数据、调用函数、输出平均值。

【C语言笔试复习题】相关文章:

2017年c语言面试笔试题09-03

c语言指针面试常见问题04-04

面试笔试题03-22

保利面试笔试03-22

笔试的面试技巧11-21

中兴笔试面试经验08-23

华为笔试网络题08-22

华为笔试题2017答案07-20

参加笔试有哪些技巧04-09

中国铝业笔试指导04-09