1、一 单选题1. 若要求表示 a不等于 0的关系,错误的表达式是( ) a0 标准答案: a0 2. C语言中,逻辑真表示为( ) TRUEy或Y1非零值本题分值: 4.0 用户得分: 0.0 用户解答: 非零值 标准答案: 1 3. 下面程序#include main()int y=10;do y-;while(-y);printf(%d ,y-);的运行结果是( ) 1-180本题分值: 4.0 用户得分: 0.0 用户解答: -1 标准答案: 0 4. 若有以下定义, int k=7,x=12, 则能使值为 3的表达式是( ) x%=k%=5x%=k-k%5x%=(k-k%5)(x%=k)
2、-(k%=5)本题分值: 4.0 用户得分: 4.0 用户解答: (x%=k)-(k%=5) 标准答案: (x%=k)-(k%=5) 5. 下面程序的运行结果是( )#includemain()int i,b,k=0;for(i=1;i=0) k+;printf(%d,%d,k,b); 3,-18,-13,08,-2本题分值: 4.0 用户未作答 标准答案: 8,-2 6. 以下对 C语言描述中正确的是( ) C语言源程序中可以有重名的函数C语言源程序中要求每行只能书写一条语句C语言源程序中,注释可以出现在任何位置最小的 C源程序中没有任何内容本题分值: 4.0 用户未作答 标准答案: C 语
3、言源程序中,注释可以出现在任何位置 7. 以下叙述中不正确的是( ) 预处理命令都必须以#开始在 C程序中凡是以#开始的语句行都是预处理命令行C程序在执行过程中对预处理命令行进行处理以下是正确的宏定义 #define IBM_PC本题分值: 4.0 用户未作答 标准答案: C 程序在执行过程中对预处理命令行进行处理 8. 设有以下程序:#inlude main()int * *k,*j,i=100;j=k=printf(“%d”, * *k);上述程序的输出结果是( ) 运行错误100i的地址j的地址本题分值: 4.0 用户未作答 标准答案: 100 9. 设有以下结构体定义:struct e
4、mproyerchar name8;int age;char sex;staff;则下面的叙述不正确的是( ) struct是结构体类型的关键字struct emproyer是用户定义的结构体类型staff是用户定义的结构体类型名nameage和 sex都是结构体成员名本题分值: 4.0 用户未作答 标准答案: staff 是用户定义的结构体类型名 10. 若数组 a有 m列,则 alij之前的数组元素个数为( ) (i-1)*(i-1)i*m+j+1i*m+j-1i*m+j本题分值: 4.0 用户未作答 标准答案: i*m+j 11. 以下关于运算符优先顺序的描述中正确的是( ) 关系运算符
5、括起时,寻找被包含文件的方式是( ) 仅仅搜索当前目录仅仅搜索源程序所在目录直接按系统设定的标准方式搜索目录先在源程序所在目录搜索,再按系统设定的标准方式搜索本题分值: 4.0 用户未作答 标准答案: 直接按系统设定的标准方式搜索目录 13. C语言规定:在一个源程序中,main 函数的位置( ) 必须在最开始必须在系统调用的库函数的后面可以任意必须在最后本题分值: 4.0 用户未作答 标准答案: 可以任意 14. 若已定义 int a;下面对(1)(2)两个语句(1)int *p= (2)*p=a;的正确解释是( ) 语句(1)和(2)中的*p 含义相同,都表示给指针变量 p赋值(1)和(2
6、)语句的执行结果,都是把变量 a的地址赋给指针变量 p(1)在对 p进行说明的同时进行初始化,使 p指向 a (2)将变量 a的值赋给指针变量 p(1)在对 p进行说明的同时进行初始化,使 p指向 a (2)将变量 a的值赋给*p本题分值: 4.0 用户未作答 标准答案: (1)在对 p进行说明的同时进行初始化,使 p指向 a (2)将变量 a的值赋给*p 15. 以下叙述正确的是( ) 在 C程序中,main 函数必须位于程序的最前面在 C程序的每一行只能写一条语句C语言本身没有输入输出语句在对一个 C程序进行编译的过程中,可发现注释中的拼写错误 本题分值: 4.0 用户未作答 标准答案:
7、C 语言本身没有输入输出语句 16. 已有以下数组定义和 f函数调用语句,int a34;f(a); 则在 f函数的说明中,对形参数组 array的错误定义方式为( ) f(int array6)f(int array3)f(int array4)f(int array25)本题分值: 4.0 用户未作答 标准答案: f(int array3) 17. 以下对 C语言函数的有关描述中,正确的是 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参C函数既可以嵌套定义又可以递归调用函数必须有返回值,否则不能使用函数C程序中有调用关系的所有函数必须放在同一个源程序文件中本题分值: 4.0
8、用户未作答 标准答案: 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 18. 若调用一个函数,且此函数中没有 return语句,则正确的说法是该函数( ) 返回若干个系统默认值返回一个用户所希望的函数值返回一个不确定的值没有返回值本题分值: 4.0 用户未作答 标准答案: 返回一个不确定的值 19. 已有定义 int k=2;int *p1,*p2;且 p1,p2均指向变量 k,下面不能正确执行的赋值语句是( ) k=*p1+*p2p2=kp1=p2k=*p1*(*p2)本题分值: 4.0 用户未作答 标准答案: p2=k 20. 下面是对 s的初始化,其中不正确的是( ) c
9、har s5=abcchar s5=a,b,cchar s5=char s5=abcde本题分值: 4.0 用户未作答 标准答案: char s5=abcde 21. 执行语句 for(i=1;i+0|E3)%5;printf(%2d,ai); 4 0 4 0 4-4 0 4 0 3-4 0 4 4 3-4 0 4 4 0本题分值: 4.0 用户未作答 标准答案: -4 0 4 4 3 7. C语言中调用 printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,多余的输出项将( );如果格式说明的个数多于输出项的个数,则对于多余的格式
10、将输出不定值(或 0) 不予输出输出空格照样输出输出不定值或 0本题分值: 4.0 用户未作答 标准答案: 不予输出 8. 在位运算中,操作数每左移 2位,相当于( ) 操作数*2操作数/2操作数*4操作数/4本题分值: 4.0 用户未作答 标准答案: 操作数*4 9. 函数 ftell的作用是( ) 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示出错时返回值为 0以上叙述都不正确本题分值: 4.0 用户未作答 标准答案: 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示 10. 在一个 C源程序文件中,若要定义一
11、个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) externregisterautostatic本题分值: 4.0 用户未作答 标准答案: static 11. printf函数中用到格式符%5s,其中数字 5表示输出的字符串占用 5列。如果字符串长度大于 5,则输出按方式( ) 从左起输出该字符串,右补空格按原字符串长从左向右全部输出右对齐输出该字符串,左补空格输出错误信息本题分值: 4.0 用户未作答 标准答案: 按原字符串长从左向右全部输出 12. 写出下面程序的输出结果( )main()int x;x=-3+4*5-6;printf(%d,x);x=3+4
12、%5-6;printf(%d,x);x=-3*4%6/5;printf(%d,x);x=(7+6)%5/2;printf(%d,x); 11 1 0 111 -3 2 112 -3 2 111 1 2 1本题分值: 4.0 用户未作答 标准答案: 11 1 0 1 13. 若希望当 A的值为奇数时,表达式的值为“真”,A 的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( ) A%2= =1!(A%2= =0)!(A%2)A%2本题分值: 4.0 用户未作答 标准答案: !(A%2) 14. 在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用括起时,寻找被包
13、含文件的方式是( ) 直接按照系统设定的标准方式搜索目录先在源程序所在目录搜索,再按照系统设定的标准方式搜索仅仅搜索源程序所在目录仅仅搜索当前目录本题分值: 4.0 用户未作答 标准答案: 先在源程序所在目录搜索,再按照系统设定的标准方式搜索 15. 已知函数的调用形式:fread(buffer, size, count, fp); 其中 buffer代表 一个整型变量,代表要读入的数据项总数一个文件指针变量,指向要读的文件一个储存区,存放要读的数据项一个指针变量,它存放数据缓冲区的地址本题分值: 4.0 用户未作答 标准答案: 一个指针变量,它存放数据缓冲区的地址 16. 以下叙述中不正确的
14、是( ) 预处理命令都必须以#开始在 C程序中凡是以#开始的语句行都是预处理命令行C程序在执行过程中对预处理命令行进行处理以下是正确的宏定义 #define IBM_PC本题分值: 4.0 用户未作答 标准答案: C 程序在执行过程中对预处理命令行进行处理 17. 有程序:main()int a=5,b=1,c=0;if (a=b+c) printf(* );else printf($ );该程序( ) 有语法错误不能通过编译可以通过编译,但不能通过连接输出:*输出:$本题分值: 4.0 用户未作答 标准答案: 输出:* 18. 定义如下变量和数组:int k,a33=1,2,3,4,5,6,
15、7,8,9;则下面语句的输出结果是( )。for(k=0;k printf(%2d,ai); 4 0 4 0 4-4 0 4 0 3-4 0 4 4 3-4 0 4 4 0本题分值: 4.0 用户未作答 标准答案: -4 0 4 4 3 16. 以下有关宏替换的叙述不正确的是( ) 宏替换不占用运行时间宏名无类型宏替换只是字符替换宏名必须用大写字母表示本题分值: 4.0 用户未作答 标准答案: 宏名必须用大写字母表示 17. 若使用一位数组名作为函数实参,则以下正确的说法是( ) 必须在主调函数中说明此数组的大小实参数组类型与形参数组类型可以不匹配在被调函数中,不需要考虑形参数组的大小实参数组
16、名与形参数组名必须一致本题分值: 4.0 用户未作答 标准答案: 在被调函数中,不需要考虑形参数组的大小 18. 定义如下变量和数组:int k,a33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是( )。for(k=0;k=%;表达式 3)可理解为 for (表达式 1;1;表达式 3) 错对本题分值: 4.0 用户未作答 标准答案: 对 4. 若有说明 int c; 则 while(c=getchar();是错误的 C语句. 错对本题分值: 4.0 用户未作答 标准答案: 错1. 下面对 typedef不正确的叙述是 用 typedef可以定义各种类型名,但不能用来定义变量用
17、 typedef可以增加新的基本数据类型用 typedef只是将已存在的类型用一个新的标识符表示使用 typedef有利于程序的通用和移植本题分值: 4.0 用户未作答 标准答案: 用 typedef可以增加新的基本数据类型 2. 下面程序 main()int x=4,y=0,z;x*=3+2; printf(“%d”,x);x*=y= =(z=4);printf(“%d”,x);的输出结果是( ) 14 4020 020 414 4本题分值: 4.0 用户未作答 标准答案: 20 0 3. 若有定义 typedef char STRING255; STRING s; 则 s是 字符指针数组变
18、量字符指针变量字符变量字符数组变量本题分值: 4.0 用户未作答 标准答案: 字符数组变量 4. 写出下面程序的输出结果( )main()int x;x=-3+4*5-6;printf(%d,x);x=3+4%5-6;printf(%d,x);x=-3*4%6/5;printf(%d,x);x=(7+6)%5/2;printf(%d,x); 11 1 0 111 -3 2 112 -3 2 111 1 2 1本题分值: 4.0 用户未作答 标准答案: 11 1 0 1 5. 若有以下定义, int k=7,x=12, 则能使值为 3的表达式是( ) x%=k%=5x%=k-k%5x%=(k-k
19、%5)(x%=k)-(k%=5)本题分值: 4.0 用户未作答 标准答案: (x%=k)-(k%=5) 6. 函数 ftell的作用是( ) 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示出错时返回值为 0以上叙述都不正确本题分值: 4.0 用户未作答 标准答案: 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示 7. 在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用括起时,寻找被包含文件的方式是( ) 直接按照系统设定的标准方式搜索目录先在源程序所在目录搜索,再按照系统设定的标准方式搜索仅
20、仅搜索源程序所在目录仅仅搜索当前目录本题分值: 4.0 用户未作答 标准答案: 先在源程序所在目录搜索,再按照系统设定的标准方式搜索 8. 系统的标准输入文件是指( ) 键盘显示器软盘硬盘本题分值: 4.0 用户未作答 标准答案: 键盘 9. 以下关于运算符优先顺序的描述中正确的是( ) 关系运算符=%if (a=b+c) printf(* );else printf($ );该程序( ) 有语法错误不能通过编译可以通过编译,但不能通过连接输出:*输出:$本题分值: 4.0 用户未作答 标准答案: 输出:* 19. 下面程序的运行结果是( )#include main()int a6,i;fo
21、r(i=1;i3)%5;printf(%2d,ai); 4 0 4 0 4-4 0 4 0 3-4 0 4 4 3-4 0 4 4 0本题分值: 4.0 用户未作答 标准答案: -4 0 4 4 3 20. printf函数中用到格式符%5s,其中数字 5表示输出的字符串占用 5列。如果字符串长度大于 5,则输出按方式( ) 从左起输出该字符串,右补空格按原字符串长从左向右全部输出右对齐输出该字符串,左补空格输出错误信息本题分值: 4.0 用户未作答 标准答案: 按原字符串长从左向右全部输出 21. 以下程序的运行结果是( )typedef union long a2;int b4;char
22、c8;TY; TY our; main() printf(%d ,sizeof(our); 3216824本题分值: 4.0 用户未作答 标准答案: 8 二 判断题1. C语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量 错对本题分值: 4.0 用户未作答 标准答案: 对 2. 使用 continue和 break语句,都可以使得 C程序中断执行 错对本题分值: 4.0 用户未作答 标准答案: 错 3. 已有定义 int i,j;float x;为将-10 赋给 i,12赋给 j,410.34赋给 x;则对应以下 scanf函数 scanf(%o%x%e,调用语句的数据输入形式是-12ucu4.1034e2(u代表空格) 错对本题分值: 4.0 用户未作答 标准答案: 对 4. 若有说明 int c; 则 while(c=getchar();是错误的 C语句.