C语言测试错题解析

来源:互联网 发布:阿里云异地登录 编辑:程序博客网 时间:2024/05/01 13:26

3.分析下面程序的执行结果( C

main( ){

int a = -2;

        while(a++);

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

}   

A. -1     B.0     C.1      D.死循环

       本题应注意while语句执行完后的分号“ ;”,因为a的自增是放在后面的,所以先算 while(a)的值,a = -2,非0所以为真,执行空循环,a自增1后等于-1;同理a再执行一次空循环后等于0;此时条件为假,所以结束循环,a随后自增1后,值等于1,故选C。


4.关于函数叙述错误的是(AD

A.函数的声明可以在另一个函数内  (此选项错误,函数不能嵌套声明、定义等)

B.函数的定义(或实现)不可以在另一个函数内

C.声明函数时必须指定函数形参的个数和类型

D.函数的声明必须指定形参名     (此选项错误,函数的声明不一定要指定形参名)


5.在C语言中,要求运算数必须是整型的运算符是 (D)

A./       B.++     C.!=      D.%


7.若有说明:int n = 2,*p = &n,*q = p;则以下非法的赋值语句是(C)   (此题需细心!)

A.n = *q     B.p = q     C.p = n       D.*p = *q      


13.以下程序的输出结果是(C)  (此题是最最不应该答错的类型,应当非常注意宏定义的数值)

#define M 5

#define N M+M  // N = 5 + 5

main()

{

int  K;

  k = N * N * 5;//  k = 5 + 5 * 5 + 5 * 5   应当注意宏定义是直接替换

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

}

A.500   B.125   C.55     D.100

0 0
原创粉丝点击