1、C语言程序的基本单位是 ( ) A)字符 B)程序行 C)语句 D)函数 2、计算机能直接执行的程序是 ( ) A)源程序 B)目标程序 C)汇编程序 D)可执行程序 3、以下叙述中错误的是 ( ) A)计算机不能直接执行用C语言编写的源程序
B)C程序经C编译程序编译后,生成后缀为.Obj的文件是一个二进制文件 C)后缀为.Obj的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件 D)后缀为.obj 和.exe 的二进制文件都可以直接运行
4、对于一个正常运行的C程序,以下叙述中正确的是 ( ) A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最a后一个函数中结束 D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束 5、下列选项中不属于结构化程序设计原则的是 ( ) A)可封装 B)自顶向下 C)模块化 D)逐步求精 6、结构化程序设计所规定的三种基本控制结构是 ( ) A)输入、处理、输出 B)顺序、选择、循环 C)树形、网形、环形 D)主程序、子程序、函数
7、算法具有五个特性,以下选项中不属于算法特性的是 ( ) A)有穷性 B)简洁性 C)可行性 D)确定性 8、以下关于C语言的叙述中正确的是 ( ) A)C语言中的注释不可以夹在变量名或关键字的中间 B)C语言中的变量可以在使用之前的任何位置进行定义 C)在C语言算术的书写中,运算符两侧的运算数类型必须一致 D)C语言的数值常量中夹带空格不影响常量值的正确表示
9、以下选项中,能用作用户标识符的是 ( ) A)return B)6_a C)_0_ D)int
10、以下选项中合法的标识符是 ( ) A)#33 B)a>b C)_11 D)1_ _ 11、以下不能定义为用户标识符的是 ( ) A)Main B)_0 C)_int D)sizeof 12、若有定义:double a=22;int i=0,k=18;则不符合C语言规定的赋值语句是
( )
A)a=a++,i++ B)i=(a+k)<=(i+k) C)i=a%11 D)i=!a 13、表达式 strlen(\"China\") 的值是 ( ) A)4
B)5
C)6
D)7
14、表达式 strlen(\"c\") 的值是 ( ) A)0
B)1 C)2
D)3
15、若已定义x和y是double类型变量,则表达式x=1,y=x+3/2的值是( ) A)1 B)2 C)2.0 D)2.5 16、若有定义语句: int x=10;,则表达式x-=x+x的值是 ( ) A)-20 B)-10 C)0 D)10 17、若有定义语句: int x=168; ,则表达式x=x%100/10的值为 ( ) A)6 B)6.8 C)1 D)8
18、下述程序段输出结果是 ( )
int x=6;double y=3.141593;printf(\"%d%5.3f\;
A)63.141 B)6 3.141 C)6,3.141 D)63.1410 19、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是 ( ) A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1
20、若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是 ( ) A)scanf(\"%f%f\ B) scanf(\"%f%f\C)scanf(\"%lf%le\ D) scanf(\"%lf%lf\
21、以下运算符优先级最高的是 ( ) A)<= B)!= C)&& D)? :
22、以下运算符优先级最高的是 ( ) A)+ B)| C)|| D)+= 23、以下是if语句的基本形式: if(表达式)语句
其中“表达式” ( ) A)必须是关系表达式 B)必须是逻辑表达式 C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式 24、以下程序的运行结果是 ( ) #include A)0 B)1 C)2 D)3 25、若i、j已定义为int类型,则以下程序段中内循环体执行printf语句的总执行次数是 ( ) for (i=5;i>0;i--) for (j=0;j<4;j++) printf(\"OK.\\n\"); A)20 B)24 C)25 D)30 26、以下错误的定义语句是 ( ) A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4}; 27、以下不能对二维数组a进行正确初始化的语句是 ( ) A)int a[2][3]={0}; B)int a[][3]={{1,2},{3}}; C)int a[][3]={1,2,3,4,5,6}; D)int a[2][3]={{1,2},{3,4},{5,6}}; 28、以下叙述中正确的是 ( ) A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 29、以下叙述中错误的是 ( ) A)在程序中凡是以“#”开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的 30、以下关于宏的叙述中正确的是 ( ) A)宏名必须用大写字母表示 B)宏定义必须位于源程序中所有语句之前 C)宏替换没有数据类型限制 D)宏调用比函数调用耗费时间 31、在文件包含预处理语句(# include)的使用形式中,当之后的文件名用“” (双引号)括起时,寻找被包含文件的方式是 ( ) A)直接按系统设定的标准方式搜索目录 B)先在源程序所在目录搜索,再按系统设定的标准方式搜索 C)仅仅搜索源程序所在目录 D)仅仅搜索当前目录 32、已定义a为int型变量,则对指针变量p的正确定义和初始化的是 ( ) A)int *p=a; B)int *p=*a; C)int p=&a; D)int *p=&a; 33、设有定义double a[10],*s=a; ,以下能够代表数组元素a[3]的是 ( ) A)(*s)[3] B)*(s+3) C)*s[3] D)*s+3 34、有如下程序段: int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值是 ( ) A) 12 B)11 C)10 D)编译出错 35、若有定义语句: int c[3][5],*p,*q[3];且0<=i<3,则错误的赋值是 ( ) A)p=c; B)q[i]=c[i]; C)p=c[i]; D)p=&c[1]; 36、若有以下定义: int x[10],*pt=x; 则对x数组元素的正确应用是 ( ) A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3 37、若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x 数组元 ( )