《电大本科C语言程序设计A期末考试复习资料》由会员分享,可在线阅读,更多相关《电大本科C语言程序设计A期末考试复习资料(9页珍藏版)》请在金锄头文库上搜索。
1、本科C语言程序设计 A复习资料一、单选题1. .在每个c语言程序中都必须包含有这样一个函数,该函数 的函数名为(A) oA. main B. MAIN C. name D. function2. .每个C语言程序文件的编译错误分为(B)类。A. 1 B. 2 C. 3 D. 43. 字符串a+b=12n的长度为(B)。A. 6 B. 7 C. 8 D. 94. 在switch语句的每个 case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。A. for B. while C. do D. if5. 在下面的do-while循环语句中,其循环体语句被执行的次数
2、为(C)。int i=0; do i+; while(i0 & x=10)的相反表达式为(A)oA . x10 B. x10C . x=0 | x0 & x1013 .当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。A . for B . while C . do-while D . switch14 .假定i的初值为0,则在循环语句while(in) s+=i*i;i+;中循环体被执行的总次数为(B)oA . n-1 B . n C , n+1 D . n/215 .假定一个二维数组的定义语句为“ int a34=3,4,2,8,6; 工则元素 a12的值为(C)。A . 2 B
3、 . 4 C , 6 D , 816 .在下列选项中,不正确的函数原型格式为( QoA. int Function(int a); B.void Function (char);C. int Function(a);D.void int(double* a);17 .假定p是一个指向float型数据的指针,则p+1所指数据 的地址比p所指数据的地址大(C)个字节。A . 1 B . 2 C , 4 D , 818 .假定有定义为“ int m=7, *p;,则给p赋值的正确表达式为(B)。A . p=m B . p=&m C . *p=&m D . p=*m19 .假定指针变量 p定义为int
4、 *p=malloc(sizeof(int); ” 要释放p所指向的动态存储空间,应调用的函数为(A)。A . free(p)B . delete(p)C , free(*p)D. free(&p)20 . C语言中的系统函数fopen()是(D) 一个数据文件的函 数。A .读取 B .写入 C .关闭 D .打开21. C语言源程序文件的缺省扩展名为(D) oA. cpp B. exe C. obj D. C22 .设x和y均为逻辑值,则x & y为真的条件是(A)。A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假23. 在下列的符号常量定义中,正确的定义格式为( QoA. #
5、define M1 B. const int M2 20C. #define M3 10 D. const char mark24. for循环语句能够被改写为(D)语句。A. 复合 B. if C. switch D. while25. 在下面的一维数组定义中,错误的定义格式为( QoA. int a=1, 2, 3 B. int a10=0C. int a D. int a526 .下面的函数原型声明中存在语法错误的是( QoA. AA(int a , int b) B. AA(int, int)C. AA(int a; int b;) D. AA(int a, int)27.假定a为一个
6、数组名,则下面存在错误的表达式为的(B)A. ai B. *a+ C. *a D. *(a+1)28. 假定有定义为int a10, x, *pa=a; ,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为(D)。A. x=pa3 B. x=*(a+3)C. x=a3 D. x=*pa+329 . char类型的长度为(A)个字节。A. 1 B. 2 C. 3 D. 430 .向一个二进制文件中写入信息的函数为(D)。A. fgets() B. fputs()C. fread() D. fwrite()31.由C语言目标文件连接而成的可执行文件的缺省扩展名为(B)。A. cpp B. ex
7、e C. obj D. c32. 设有两条语句为int a=12; a+=a*a;,则执行结束后, a的值为(C)。A. 12 B.144 C.156 D. 28833. 带有随机函数调用的表达式rand()%20的值在(C)区间内。A.119 B.120 C.019 D.02034. for循环语句for(i=0; i0|y=5)的相反表达式为(B)。A.x=O|y!=5 B.xO|y!=5 D.xO&y=543. 循环体至少被执行一次的循环语句为(C) oA.for B.while C.do-while D.任一种循环44. 假定n的值为5,则表达式n+的值为(B)。A.6 B.5 C.4
8、 D.745. 假定一个二维数组的定义为int a34=3,4,2,8, 6号,则元素a2O值为(A) oA.0 B.2 C.4 D.646. 假定一个函数原型为char *func(int n),则该函数的返回类 型为(D)。A. int B. int* c.char D.char*47. 假定a为一个字符数组名,则元素 ai的指针访问方式为(B)。 A.a+i B.*(a+i) C.&a+i D.*a+i48. 假定有语句为int *p=calloc(10+20, sizeof(int),贝1J p 所指向的动态数组中所包含的元素个数为(C)。A.10 B.20 c.30 D.4049.
9、十进制数50表示成符合C语言规定的八进制数为(D)。A. 20 B.32 C.62 D.06250. 若要以读和写两种操作方式打开一个二进制文件,当文件不存 在时返回打开失败信息,则选用的打开方式字符串为(C)。A.r+ B.ab+ C. rh+ D.wb+二、填空题1 .在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为(#include )2 .用于从键盘上为变量输入值的标准输入函数的函数名为(scanf)3 .假定一个枚举类型的定义为enum RAab , ac, ad, ae;,则ac的值为(1)4 . double 类型的长度为(8)5 .执行int x
10、=45, y=13; printf(%d , x/y);语句序列后得到的 输出结果为(3)6 .把表达式x=x+y转换成复合赋值表达式为(x+=y)7 .假定x的值为5,则执行a=(!x)?10:20);语句后a的值为(20)8 .假定一维字符指针数组的定义为char* a8;,则该数组占用的存储空间的字节数为(32)9 .假定二维数组的定义为double aMN;则数组元素的行下标取值范围在(0M-1)之间10 .空字符串的长度为(0)11 .在所有函数定义之外定义的变量,若没有被初始化则系统隐含 对它所赋的初值为(0)12 .若p指向x,则(*p)与x的表示是等价的。13 .直接访问表达式
11、(*fp).score所对应的间接访问表达式为 (fp-score)14 . 一个函数定义由函数头_和函数体两部分组成。15 .执行“ printf(%c,F-2);”语句后得到的输出结果为反。16 . int类型的长度为J o17 .表达式(float)25/4 的值为 6.25 。18 .若x=5,y=10 ,贝U x=y的逻辑值为1 (或真)。19 .作为语句标号使用的case和default只能用于switch 或开关 或分情况语句的定义体中。20 .在程序中执行到return 或返回语句时,将结束所在函数的 执行过程,返回到调用该函数的位置。21 .假定二维数组的定义为char aMN; ,则该数组所含