满分:2 分
11. 下面四个选项中、均是正确的数值常量或字符常量的选项是( D) A. 0.0 0f 8.9e '&' B. \C. '3' 011 0xFFOO 0a D. +001 0xabcd 2e2 50. 满分:2 分
12. 以下程序的输出结果是( C) main()
{int a=100,x =10,y=20,okl=5,ok2=0; if (x B. 0 C. -1 D. 值不确定 满分:2 分 13. 若有说明: char *language[ ]={\\VA\则language[2]的值是( A) A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 满分:2 分 14. 以下正确的说法是( C) A. 用户若需调用标准库函数,调用前必须重新定义 B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统根本不允许用户重新定义标准库函数 D. 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件 满分:2 分 15. 下面程序的运行结果是( B) #include D. k=0 满分:2 分 16. 下面程序的运行结果是 ( C) main() {int a[6],i; for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5; printf(\A. —40404 B. —40403 C. 一40443 D. 一40440 满分:2 分 17. 变量的指针,其含义是指该变量的 ( B) A. 值 B. 地址 C. 名 D. 一个标志 满分:2 分 18. 下面程序的输出是( D) typedef union {long x; int y; char z; }MYTYPE; MYTYPE them; main() {printf(\A. 32 B. 16 C. 8 D. 4 满分:2 分 19. 若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为( B) A. 7 B. 8 C. 9 D. 10 满分:2 分 20. 以下正确的叙述是( D) A. 在C程序中,每行中只能写一条语句 B. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数,都能被准确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 满分:2 分 21. 若有以下程序段: int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t;} ...... 则该程序段的功能是( D) A. 对数组a进行插入排序(升序) B. 对数组a进行插入排序(降序) C. 对数组a进行选择排序(升序) D. 对数组a进行选择排序(降序) 满分:2 分 22. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(C ) A. extern B. register C. auto D. static 满分:2 分 23. 以下正确的描述是( C) A. C语言的预处理功能是指完成宏替换和包含文件的调用 B. 预处理指令只能位于C源程序文件的首部 C. 凡是C源程序中行首以\标识的控制行都是预处理指令 D. C语言的编译预处理就是对源程序进行初步的语法检查 满分:2 分 24. sizeof(float)是( B) A. 一个整型表达式 B. 一种函数调用 C. 一个不合法的表达式 D. 一个不合法的表达式 满分:2 分 25. 有定义:int a[5][4], (*p)[4]=a;,数组a的首地址为100,*(p+2)+3等于( D) A. 116 B. 118 C. 120 D. 122 满分:2 分 26. 以下不正确的语句为( B) A. if(x>y); B. if (x= y) &&(x! = 0) x+= y; C. if(x!= y)scanf(\D. if(x< y){x++ ;y++;} 满分:2 分 27. 有字符数组a[80]和b[80],则正确的输出形式是(C ) A. puts(a,b); B. printf(\C. putchar(a,b); D. puts(a),puts(b); 满分:2 分 28. 设变量a b c d 和y都已经正确定义并赋值,若有以下if 语句: if(a=b B. y=0 a=b 且 c!=d C. y=0 a 29. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( D) A. K%2 B. K%2==1 C. (K%2)!=0 D. !K%2==1 满分:2 分 30. 以下正确的叙述是(B ) A. C语言允许main函数带形参,且形参个数和形参名均可由用户指定 B. C语言允许main函数带形参,形参名只能是argc和argv C. 当main函数带有形参时,传给形参的值只能从命令行中得到 D. 若有说明:main(int argc,char *argv),则形参argc的值必须大于1 满分:2 分 31. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为(D ) int a[3][4]; f(a); A. f(int array[][6]) B. f(int array[3][]) C. f(int array[][4] D. f(int array[2][5]) 满分:2 分 32. 建立函数的目的之一是(C ) A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅 D. 减少程序文件所占内存 满分:2 分 33. 下面程序应能对两个整型变量的值进行交换。以下正确的说法是(A ) main( ) {int a=10,b=20; printf(\swap(&a,&b); prinif(\swap(int p,int q) {int t; t=p;p=q;q=t;} A. 该程序完全正确 B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可 C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执 行语句不变)即可 D. 以上说法都不正确 满分:2 分 34. 下面是对s的初始化,其中不正确的是(D ) A. char s[5」={\B. char s[5]={'a','b','c'}; C. char s[5]=\D. char s[5]=\ 满分:2 分 35. 有定义:int a[5],*p=a;,则不能表示元素a[4]地址的是(B ) A. p+4 B. &a+4 C. &a[0]+4 D. a+4 满分:2 分 二、多选题(共 5 道试题,共 10 分。) V 1. 在函数调用过程中,下列说法正确的是( DE) A. 形式参数和实在参数各占一个独立的存储单元 B. 形式参数和实在参数存储空间都是在函数调用时分配的 C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变 D. 函数调用结束时,临时存储区被撤消 E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配 满分:2 分 2. 下列符号中可以用作自定义函数名的是( BCD) A. int B. go_to C. INT D. Getchar E. typedef 满分:2 分 3. 在定义函数时,函数的存储类型可以( ABCD) A. 是static B. 是auto C. 是register D. 是extern E. 省略 满分:2 分 4. 在下面C语言的函数说明语句中,正确的是(A E) A. int fun(int , int); B. int fun(int x,y); C. int fun(x,y); D. int fun(int x; int y); E. int fun(int x,int y); 满分:2 分 5. 有定义:int a[5][4],*p=a[0];,则能正确引用a[2][3]元素地址的有( ADE ) A. a[2]+3 B. *((p+2)+3) C. *(p[2]+3) D. *(a+2)+3 E. p+2*4+3 满分:2 分 三、判断题(共 10 道试题,共 20 分。) V 1. 若有定义:long int j, *p;,则操作j=p;是合法操作。A A. 错误 B. 正确 满分:2 分 2. 动态变量都存储在内存动态存储区中。A A. 错误 B. 正确 满分:2 分 3. C语言采用解释方式将源程序转换为二进制的目标代码。A