考研计算机复试(C语言复试笔试题)(精华题选)

1.以下选择中,正确的赋值语句是(C)

  A.a=1,b=2    B.j++

  C.a=b=5;     D.y=(int)x

  解析:选项A、B、D都无分号

    变量 = 表达式;//赋值语句是一定带分号的

    int a=b=c=5;//本语句错误

    {

      int a,b,c;

      a = b = c = 5;

    }//正确赋值语句

2.运算符优先级:

  !、算术、关系、&&、||、按位、逻辑、?:、赋值、逗号

3.假设所有变量均为整型,表达式a=2,b=5,a>b?a++:b++,a+b的值是(8

  解析:首先保证一个问号表达式(语法分析,尽可能令语法无二义性,且完备)

    题中表达式等价于(a=2,b=5,a>b)?a++:(b++,a+b)

    根据逗号表达式,(式1,式2,...,式n),从左往右逐个计算,表达式值为最后一个式的值,优先级最低。

    根据问号表达式,(式1?式2:式3),?式1为"真"时,只执行式1,为"假"时,只执行式2。

    (a=2,b=5,a>b)?a++:(b++,a+b)

4.转义字符输出:

  printf("%%");//输出一个%

  printf("%%%d", 99);//输出%99

5.若int a=1,b=2,c=3,d; d=a*b+c?100:99;则d的值为(100

6.若int d=22?33:44,55;则d的值为(44

  解析:算术 > 问号 > 赋值 > 逗号

    d=a*b+c?100:99;等价于d=(a*b+c?100:99);

    d=22?33:44,55;等价于(d=22?33:44),55;

7.char arr[] = 'a';(错误

  解析:无法从char转换为char[]

8.若对函数类型未加显示说明,则函数的隐含说明类型为(E)

  A.static  B.extern  C.void  D.register   E.int   F.无法确定

9.在C语言中,函数的隐含存储类别是(B)

  A.static  B.extern  C.void  D.register   E.int   F.无法确定

10.在C语言中,全局变量的存储类别是(B)

  A.static  B.extern  C.void  D.register   E.int   F.无法确定

11.若有定义char *p; 则赋值语句*p=getchar();是(错误

  解析:指针p没有被初始化。

12.若有定义int a[m][n],(*p)[n]; p = a;则第i行第j列元素为(A、B、C)

  A.a[i][j]  B.*(p[i]+j)  C.*(*(p+i)+j)

  解析:

    二维数组的第i行首地址为a+i、*(a+i)、&a[i][0]

    二维数组的第i行第j列的地址为*(a+i)+j、&a[i][j]

    二维数组各个元素位置理解:1.纵横;2.顺排,一维数组

      顺排(一维数组)第i个元素地址:*a+i

13.以下程序的运行结果为(211)

  int x=1,y=1,c=0;
  c=x++||y++;
  printf("%d%d%d",x,y,c);

   解析:++ 优先级大于 || 优先级大于 =,其中||(逻辑或)的执行操作是:当||左侧表达式为“真”时,将不会执行右侧表达式。

14.若执行以下程序,则输出(508080)

 

  int x=30,y=50,z=80;
  if(x>y||x<z&&y>z)z=x;x=y;y=z;
  printf("%d%d%d",x,y,z);

  解析:>优先级大于&&优先级大于||,它们的结合性都是从左到右

    根据编译器语法分析,x>y||x<z&&y>z等价于(((x>y)||(x<z))&&(y>z))即(0||1)&&(y>z)即(1&&0)为"假"

    由于if(0)z=x;带了分号,故不执行z=x;

    因此继续执行x=y;y=z;

15.C语言中,一维数组的定义方式为:类型说明符 数组名[(A)];一位数组的引用方式为:数组名[(B)]

  A.常量表达式  B.整型常量或整型表达式

  C.整型常量   D.整型表达式

  解析:常量表达式包括:常量和符号常量(例如#define N 99)

  • 14
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
考研c语言复试面试题主要涉及基本知识点和算法思想。 首先,考官可能会询问C语言的基础知识,如变量的定义、常量和运算符的使用等。在回答中,我会着重强调C语言的数据类型、变量的存储和作用域、内存管理等重点内容。 其次,考官可能会针对C语言的特性和应用进行提问。例如,对指针的理解和使用、内存动态分配的方法和原理、结构体和联合体的巧用等。对于这些问题,我会结合实际应用场景,说明在C语言中如何高效地进行编程和问题解决。 另外,考官还可能会考察C语言的算法思想和常见的算法题。例如,对于排序算法,我会简单介绍几种常见的排序方法,如快速排序、归并排序等,并指出它们的时间复杂度和适用场景。如果遇到其他算法问题,我会尽力给出解题思路和步骤,以展示我在算法方面的理解和应用能力。 最后,我会总结回答,强调对C语言的理解程度和自己学习过程中的收获。我会强调在平时的学习和实践中,我通过阅读相关文献资料、参与编程竞赛等方式持续提升自己的C语言编程技能和算法思想,并且对于未来研究方向中与C语言相关的问题有着浓厚的兴趣。 通过对上述内容的准备和回答,我相信能够给考官留下深入学习和研究C语言的印象,展示自己在这方面的能力和潜力,从而在考研C语言复试中取得良好的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值