1.以下哪个直接量是十进制的124?
  • A . 0124
  • B . 0174
  • C . 0x124
  • D . 124d

正确答案:B你错选为D
解析: A、这是8进制,相当于10进制的84    B、8进制   C、这是16进制,相当于10进制的292   D、C语言没有这种后缀

2.设有如下定义,则对data中的a成员的正确引用是(      )。

struct sk{ int a; float b; } data, *p=&data;

  • A.(*p).data.a
  • B.(*p).a
  • C.p->data.a
  • D.p.data.a

正确答案:B 你错选为A

2.对于以下结构定义,(*p)->str++中的++加在(      )。

struct { int len; char *str } *p;

  • A.指针str上
  • B.指针p上
  • C.str指向的内容上
  • D.语法错误
正确答案:D你错选为A  (p是一个指针,指向这个结构类型,但是没有赋初值,没卵子用)

3.下面程序的输出结果是(      )

#include<stdio.h>

void fun (int *x, int *y){

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

*x=3;*y=4;

}

int main(void){

int x=1,y=2;

fun(&x,&y);

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

return 0;

}

  • A.2 1 3 4
  • B.1 2 1 2
  • C.1 2 3 4
  • D.2 1 1 2

正确答案:C 你错选为 B (可以通过指针直接修改指针指向的变量,还有一类传入的是变量的值,注意区分)

4.下列叙述中错误的是______。

A.计算机不能直接执行用C语言编写的源程序
B.C程序经C编译后,生成后缀为.obj的文件是一个二进制文件
C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D.后缀为.obj和.exe的二进制文件都可以直接运行

D   [解析] C语言是一种“高级语言”。由高级语言编写的程序称为“源程序”。C语言源程序经过编译后生成一个后缀为.obj的二进制文件(称为目标文件),最后还要由“连接程序”(Link)软件把此.obj文件与C语言提供的各种库函数连接起来,生成一个后缀为.obj的可执行文件。在DOS状态下,只需打人此文件的名字(不必打入后缀.obj)就可以运行。后缀为.obj的文件不可以直接执行。

5.以下语句是否可以通过编译

if(1<=n<=10);

可以通过编译,但是不能达到应有的效果。

5.以下正确的函数定义形式是(      )。

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

正确答案:A     注意区别函数定义(首部)和函数原型声明

  1. 另外C语言中只有可执行语句才会被转换成二进制的机器指令,非执行语句不会被转换;
  2. 看清楚分号和逗号;
  3. for语句中的表达式1只执行1次;
  4. for后面只能有一句语句,如果必要,可以用大括号括起一堆语句表示一个复合语句;
  5. 关注for循环后面有没有分号;
  6. switch语句,当表达式的值与之相匹配时,不但执行相应的语句段,还按顺序执行后面的所有语句段;
  7. 函数首部后面不能加分号,它和函数体一起构成完整的函数定义;
  8. 把调用其他函数的函数称为主调函数,被调用的函数称为被调函数;
  9. 自定义函数中return 表达式;只能返回一个值。一般情况下,表达式的类型和函数的类型一致,如果两者不一致,以函数类型为准;
  10. 函数声明是一条C语句,而函数定义时的函数首部不是语句,不能跟分号;
  11. 函数定义的时候如果省略不写默认定义为int,所以在不返回结果的函数定义里,void不能省略;
  12. 程序设计语言必须具有数据表达和数据处理(称为控制)的能力;
  13. C语言允许定义作用于复合语句中的局部变量,其有效范围被局限于复合语句中,局部变量一般定义在函数或复合语句的开始处,标准C规定其不能定义在中间位置;
  14. 当函数局部变量和复合语句的局部变量同名时,以复合语句为准;
  15. main也是有效的变量名;
  16. 字符输入的时候注意空格,由于空格本身也是字符,要关注它是不是也被都进去了;
  17. !这个逻辑运算符优先级高于一般的算术运算符;
  18. 区别”a”和’a’,前者是字符串常量,包括’a’和’\0’两个字符,用一维字符数组存放;后者是字符常量,只有一个字符,可以赋给字符变量;
  19. *(p++),先取*p的值作为表达式的值,再将指针p+1,运算后p不再指向原来的那个变量;
  20. 只能将一个指针的值(不是指向的变量的值)赋给另一个相同类型的指针;
  21. 不能用数值作为指针变量的初值,但可以将一个指针初始化0/NULL空指针;
  22. 如果将某个变量的地址作为函数的实参,相应的形参就是指针;
  23. 在定义嵌套的结构类型,必须先定义成员的结构类型,再定义主结构类型;
  24. 结构变量的初始化采用初始化表的方法,打括号内各个数据项间用逗号隔开,将大括号内的数据项按顺序对应地赋给结构变量内各个成员,且要求类型一致;