C. a>10 && a<15 D. !(a<=10) && !(a>=15) 12.下列表达式没有错误的是________。 int x,*p;
A)5.0%2 B)x+1=5 C)&p D)&(x+1) 13.任何复杂的程序,都是由________构成的。
A)分支结构、顺序结构、过程结构 B)循环结构、分支结构、过程结构 C)顺序结构、循环结构、分支结构 D)循环结构、分支结构 14.在C语言类型说明中,int、char、short等类型的长度是________。 A)由用户自己定义的 B)与机器字长有关的 C)固定的 D)任意的 15.字符串\在内存占用的字节数是( )。
A. 3 B. 4 C. 6 D. 8 16.下列为字符常量的是________。
A)HE B)\C)'Z' D)She 17、以下说法正确的是( )
A.'x'+101是一个错误的表达式 B.C语言不允许类型的混合运算
C.强制类型转换时,类型说明符必须加括号
D.(int)x+y 和(int)(x+y)是完全等价的表达式 18.以下有关宏替换的叙述错误的是________。
A)宏名必须用大写字母表示 B)宏替换不占用运行时间 C)宏名不具有类型 D)宏替换只是字符替换 19.能表示x为偶数的表达式是________。
A)x %2==0 B)x%2==1 C)x%2 D)x%2!=0 20.C语言中运算对象必须是整型的运算符是________。 A) % B) / C)= D) <= 21.以下说法中正确的是________。
A)C程序总是从第一个定义的函数开始执行
B)在C程序中,要调用的函数必须在main函数中定义 C)C程序总是从main函数开始执行的
D)C程序中的main函数必须放在程序的开始部分 22.以下函数原型声明正确的是________。
A)float add(int x, int y) ; B)int add(int x;int y) ; C)char add( x,y) ; D)int add(char x[ ] [ ]) ;
23.函数形参与实参之间的传递是“值传递”,以下叙述正确的是________。 A)实参和与其对应的形参共用一个存储单元 B)实参和与其对应的形参各占用独立的存储单元
C)当实参和与其对应的形参同名时才共用一个存储单元 D)形参是形式的,不占用存储单元 24.以下叙述错误的是________。 A)C语言本身没有输入输出语句
B)一个可执行的C源程序必须包含一个main函数 C)C程序中,注释说明只能位于一条语句的后面 D)C程序的基本组成单位是函数 25.以下说法正确的是________。
A)C语言源程序无论包含了多少函数,总是从main函数开始执行。 B)main是由C语言提供的,并不需要用户自己编写。
C)调用C语言标准库函数时,程序中要用到include命令,它也是C语言的一种语句。 D)在C语言中,要调用的函数必须在main函数中定义。 26.以下函数的类型是________。 int sum(double x, double y) {
double s; s=x+y; return s; }
A)字符型 B)不确定 C)整型 D)实型 27.以下叙述不正确的是________。
A)一个C源程序文件必须包含一个main( )函数
B)一个C源程序文件可由一个函数组成 C)一个C源程序文件必须包含一个头文件 D)一个C源程序文件可由多个函数组成
28.C语言规定:在一个源程序中,main函数的位置 。
A)必须在最后
B)必须在系统调用的库函数的后面。
C)必须在最开始。。 D)可以任意 29.以下叙述正确的是________。
A)函数的定义和函数的调用均不可以嵌套 B)函数的定义和函数的调用均可以嵌套
C)函数的定义可以嵌套,但函数的调用均不可以嵌套 D)函数的定义不可以嵌套,但函数的调用均可以嵌套 30.若0<=i<10,则下列________是对数组元素的错误引用。 int a[ ]={1,2,3,4,5,6,7,8,9,0},*p, i; p=a;
A)*(a+ i) B)a[p-a] C)p+ i D)*(&a[i]) 31.下列关于#include命令的叙述中,错误的是____________。
A)#include命令中,文件名可以用双引号或尖括号括起来 B)一个被包含文件中又可以包含另一个被包含文件 C)一个#include命令中可以指定多个被包含文件 D)一个#include命令中只能指定一个被包含文件
32.语句if (!i ) i++; 中的条件表达式 !i 等价于________。
A)i==0 B)i!=1 C)i!=0 D)-i 33.C语言中规定,if语句的嵌套结构中,else总是与________配对。
A)与最近的if 配套 B)与第一个if 配套
C)按缩进位置相同的if配套 D)与最近的且尚未配对的if 配套 34.以下有关switch语句的正确说法是________。
A)break语句是语句中必须的一部分
B)在switch 语句中可以根据需要使用或不使用break语句 C)break语句在switch 语句中不可以使用
D)在switch 语句中的每一个case都要用break语句 35.当执行以下程序时,________。 #include void main() {
int a; while(a=5)
printf(\ }
A)循环体将执行5次 B)循环体将执行0次 C)循环体将执行无限次 D)系统会当机。 36.设有程序段
int k = 10 ;
while ( k = 0 ) k = k - 1 ; 以下描述正确的是 。
A) 循环体语句一次也不执行。 B) 循环是无限循环。
C) while 循环语句执行十次。 D) 循环体语句执行一次。
37.t为int类型,进入下面的循环之前t的值为0,以下叙述正确的是________。 while( t=l ) { …… }
A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对
38.若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量x,则在另一文件中可以使用的引用说明是________。
A)extern float x; B)float x;
C)extern auto float x; D)extern static float x; 39.C语言的编译系统对宏命令的处理是________。
A)在程序连接时进行的 B)在对源程序中的其它语句编译之前进行的 C)在程序运行时进行的 D)和C程序中的其它语句同时进行的 40.下列对字符串的定义中,错误的是___ __ 。
A)char str[5]= \ B)char str[ ]= \C)char *str =\D)char str[ ]={ 'a', 'b', 'c', 'd', 'e', '\\0'} 41.下列数组定义正确的是________。
A)int a[5],b[2,3]; B)char no(30); C)char x[]; D)int x[5]={1,2,3}; 42.以下对二维数组a的声明正确的是________。
A)int a [3][ ]; B)int a (3,4); C)int a [1][4]; D)int a (3)(4); 43.若有定义char x[ ]= \;则 。 A)x数组与y数组的长度相同 B)x数组长度大于y的长度 C)x 数组长度小于y数组长度 D)x数组等价与y 数组 44.若有说明:int a[10] ; 则对a 数组元素的正确引用是 。
A) a [10 ]
B)a[10 - 10]
C)a ( 5 )
D)a[3.5]
45.若有说明:int a[3][4]; 则对数组元素的非法引用是 。 A)a[0][2*1] B) a[0][4] C) a[4-2][0] D) a[1][3] 46.对以下说明的正确理解是 。 int a[10] = {6, 7, 8, 9, 10}
A) 将5个初值依此赋给a [1] 至a[5]
B)将5个初值依此赋给a [0] 至a [4]
C)将5个初值依此赋给a [6] 至a[10] D) 因长度与初值个数不同,故语句错误 47.若有定义:int x,*pb;则正确的赋值表达式是________。
A)pb=&x B)pb=x C)*pb=&x D)*pb=*x
30.已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为________。 A)p[0] B)*p C)&*a D)*&a
48.在C语言中,引用数组元素时,其数组下标的数据类型允许是________。 A)整型常量 B)整型表达式
C)整型常量或整型表达式 D)任何类型的表达式
49.设有定义语句“char s[]=”123”;”,则表达式“s[3]”的值是________。 A)’1’ B)’3’ C)’\\0’ D)语法出错 50.若有定义:int b[5];则以下对b 数组元素的正确引用是________。 A)*&b[5] B)b+2
C)*(*(b+2)) D)*(b+2)