1、C 语言程序设计课程作业_A一、单选题 1. (4 分)设有以下定义 int k=7, x=12;,则能使值为 3 的表达式是( ) A. x%=(k%=5) B. x%=(k-k%5) C. x%=k D. (x%=k)-(k%=5) 答案 D 解析 C 语言程序设计/数据类型与运算/整型算术表达式 2. (4 分)以下程序的输出结果是? #include main() int x=020,y=0x20,z=20; printf(%d,%d,%d ,x,y,z); A. 20,20,20 B. 32,16,20 C. 16,32,20 D. 20,32,20 答案 C 解析 C 语言程序设计
2、/数据类型及运算 3. (4 分)C 语言中 while 和 do while 循环的主要区别是( ) A. do-while 的循环至少无条件执行一次 B. while 循环控制条件比 do-while 的循环控制条件严格 C. do-while 允许从外部转入到循环体内 D. do-while 的循环体不能是复合语句 答案 A 解析 C 语言程序设计/循环程序设计/while 语句与 do-while 语句 4. (4 分)执行语句 scanf(%d,%d,使 m 和 n 的值分别为 1 和 2,正确输入是( ) A. 1 B. 1 2 C. 1,2 D. 12,2 答案 C 解析 C 语
3、言程序设计/顺序程序设计/整型数据的格式输入 5. (4 分)sizeof(float)是( ) A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式 答案 B 解析 C 语言程序设计/数据类型与运算/实型变量存储 6. (4 分)下列选项中,不合法的 C 语言关键字是 A. auto B. default C. static D. var 答案 D 解析 C 语言程序设计/C 语言概述 7. (4 分)下面程序的运行结果是( )#include main()int a6,i;for(i=1;i3)%5;printf(%2d,ai); A. 4 0 4
4、0 4 B. -4 0 4 0 3 C. -4 0 4 4 3 D. -4 0 4 4 0 答案 C 解析 C 语言程序设计/数组/二维数组与循环语句结合 8. (4 分)设有下面的程序段,char s=china; char *p;p=s; 则下列正确的是 ( ) A. s 和 p 完全相同 B. 数组 s 中的内容和指针变量 p 中的内容相等 C. s 数组长度和 p 所指向的字符串长度相等 D. *p 与 s0相等 答案 D 解析 C 语言程序设计/指针/数组与指针 9. (4 分)若已定义 int a;下面对(1)(2)两个语句(1)int *p= (2)*p=a;的正确解释是( )
5、A. 语句(1)和(2)中的*p 含义相同 ,都表示给指针变量 p 赋值 B. (1)和(2)语句的执行结果,都是把变量 a 的地址赋给指针变量 p C. (1)在对 p 进行说明的同时进行初始化,使 p 指向 a (2)将变量 a 的值赋给指针变量p D. (1)在对 p 进行说明的同时进行初始化,使 p 指向 a (2)将变量 a 的值赋给*p 答案 D 解析 C 语言程序设计/指针/地址与指针 10. (4 分)下面四个选项中,均是不合法的用户标识符的选项是 ( ) A. A,P_0,do B. float,la0,_A C. b-a,goto,int D. _123,temp,INT
6、答案 C 解析 C 语言程序设计/数据类型与运算/标识符 11. (4 分)在 C 语言中,全局变量的隐含存储类别是 A. static B. extern C. void D. register 答案 B 解析 C 语言程序设计/函数 12. (4 分)若有以下定义:char s10=include,*p=s;则不能代表字符 u 的表达式是( ) A. s4 B. s+4 C. *(p+4) D. p+=4,*p 答案 B 解析 C 语言程序设计/指针/字符串指针的引用 13. (4 分)下面程序#include main()int y=10;do y-;while(-y);printf(%
7、d ,y-);的运行结果是( ) A. 1 B. -1 C. 8 D. 0 答案 D 解析 C 语言程序设计/循环程序设计/do-while 语句 14. (4 分)a 为 0111,b 为 0123,a、b 、c 均为无符号短整型变量,则语句 printf(%o,%o,%o,%o,c=a,c=a 则该函数的返回类型为 A. void B. double C. int D. float 答案 C 解析 C 语言程序设计/函数 16. (4 分)在 ASCII 码表中可以看到每个小写字母的 ASCII 码比它相应的大写字母的 ASCII 码( ) A. 大 32 B. 大 64 C. 小 32
8、D. 小 64 答案 A 解析 C 语言程序设计/数据类型与运算/字符常数比较 17. (4 分)执行以下程序后的输出结果是 ( )int w=3,z=7,x=10;printf(%d,x10?x+100:x-10);printf(%d,w+|z+);printf(%d,!wz);printf(%d,w A. 0111 B. 1111 C. 0101 D. 0100 答案 C 解析 C 语言程序设计/选择结构程序设计 /条件运算符 18. (4 分)程序的三种基本结构是( ) A. 顺序结构,循环结构, 递归结构 B. 顺序结构,循环结构, 选择结构 C. 选择结构 ,循环结构,递归结构 D.
9、 顺序结构,选择结构, 递归结构 答案 B 解析 C 语言程序设计/选择程序设计/程序结构 19. (4 分)设整型变量 a 值为 9,则下列表达式中使 b 的值不为 4 的表达式( ) A. b=a/2 B. b=a%2 C. b=8-(3,a-5) D. b=a5?4:2 答案 B 解析 C 语言程序设计/数据类型与运算/整型算术表达式 20. (4 分)已有定义 int k=2;int *p1,*p2;且 p1,p2 均指向变量 k,下面不能正确执行的赋值语句是 ( ) A. k=*p1+*p2 B. p2=k C. p1=p2 D. k=*p1*(*p2) 答案 B 解析 C 语言程序
10、设计/指针/指针变量的定义 21. (4 分)若有以下定义 int a5=1,2,3,4,5,*p,i;i=3;p=a;,则对数组元素地址的正确引用是( ) A. *t= =*s;)if (!*t) return 0; t+;s+;return (*s-*t);库函数 strcmp(char*s,char*t)是功能相等的程序段答案 正确 解析 C 语言程序设计/指针/指针作为函数参数 4. (4 分)C 语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量答案 正确 解析 C 语言程序设计/文件 一、单选题 1. (4 分)在 C 语言中, 反斜杠符是( ) A. n B. t C.
11、 v D. 答案 D 解析 C 语言程序设计/数据类型与运算/字符常数表示形式 2. (4 分)执行下列程序段后, int x=10,y=9;int a,b,c;a=(-x= =y+)?-x:+y;b=x+;c=y; 变量 a,b,c 的值分别是( ) A. a=9,b=9,c=9 B. a=8,b=8,c=10 C. a=9,b=10,c=9 D. a=8,b=8,c=9 答案 B 解析 C 语言程序设计/选择结构程序设计 /条件与算术运算符 3. (4 分)判断 char 型变量 c1 是否小写字母的正确表达式为 A. a=a)m=w A. 1 B. 2 C. 3 D. 4 答案 A 解析
12、 C 语言程序设计/选择结构程序设计 /条件运算符嵌套 5. (4 分)在 C 语言中运算符的优先级从高到低的排列顺序是 A. 关系运算符 算术运算符 赋值运算符 B. 算术运算符 赋值运算符 关系运算符 C. 赋值运算符 关系运算符 算术运算符 D. 算术运算符 关系运算符 赋值运算符 答案 D 解析 C 语言程序设计/数据类型及运算 6. (4 分)若有以下定义, int k=7,x=12, 则能使值为 3 的表达式是( ) A. x%=k%=5 B. x%=k-k%5 C. x%=(k-k%5) D. (x%=k)-(k%=5) 答案 D 解析 C 语言程序设计/数据类型与运算/算术表达
13、式 7. (4 分)设有以下定义 int k=7, x=12;,则能使值为 3 的表达式是( ) A. x%=(k%=5) B. x%=(k-k%5) C. x%=k D. (x%=k)-(k%=5) 答案 D 解析 C 语言程序设计/数据类型与运算/整型算术表达式 8. (4 分)设有以下程序片段:char s =Program!;char *p;p=s;则执行完上面的程序段后,*(p+8) 的值为( ) A. ! B. 0 C. m D. 不定值 答案 B 解析 C 语言程序设计/指针/字符串指针的引用 9. (4 分)C 语言中合法的字符常量是 A. B. ”H” C. He D. p
14、答案 A 解析 C 语言程序设计/数据类型及运算 10. (4 分)以下 read 函数的调用形式中,参数类型正确的是( ) A. read(int fd,char *buf,int count) B. read(int *buf,int fd,int count) C. read(int fd,int count,char *buf) D. read(int count,char *buf,int fd) 答案 A 解析 C 语言程序设计/文件/文件的读和写 11. (4 分)设有以下程序片段:char a =hello,*p;p=a;printf(%d,*(p+5);执行上面的程序片段后的
15、结果为( ) A. 111 B. 0 C. 104 D. 不确定的值 答案 B 解析 C 语言程序设计/指针/数组元素的引用 12. (4 分)以下程序 main()int x=10,y=10;printf(%d %d ,x-,-y);的输出结果是( ) A. 10 10 B. 9 9 C. 9 10 D. 10 9 答案 D 解析 C 语言程序设计/顺序程序设计/整型变量的输出格式和算术运算符 13. (4 分)以下函数的功能对应于 int fun(char *s,char *t) while (*s) s+; return(*s-*t); A. strlen(s)+strlen(t) B.
16、 strcmp(s,t) C. strcpy(s,t) D. strcat(s,t) 答案 B 解析 C 语言程序设计/循环控制 14. (4 分)C 语言规定, 函数返回值的类型是由 ( )所决定。 A. return 语句中的表达式类型 B. 调用该函数时的主调函数类型 C. 调用该函数是系统临时指定 D. 在定义该函数时所指定的函数类型 答案 D 解析 C 语言程序设计/函数/函数返回值 15. (4 分)表达式 a A. printf(Enter an integer(x):);scanf(%d,if(x+10?x+100:x-10);printf(%d,w+|z+);printf(%
17、d,!wz);printf(%d,w A. 0111 B. 1111 C. 0101 D. 0100 答案 C 解析 C 语言程序设计/选择结构程序设计 /条件运算符 13. (4 分)写出下面程序的输出结果 ( )main()int i,j;i=20;j=(+i)+i;printf(%d,j);i=13;printf(%d %d),i+,i); A. 42 14,13 B. 41 14,14 C. 42 13 13 D. 42 13 14 答案 C 解析 C 语言程序设计/顺序程序设计/整型变量的输出格式和算术运算符 14. (4 分)判断字符串 a 和 b 是否相等,应当使用( ) A.
18、if(a=b) B. if(a=b) C. if(strcmp(a,b) D. if(strcmp(a,b)=0) 答案 D 解析 C 语言程序设计/数组/字符串处理函数 15. (4 分)根据题目中已给出的数据输入和输出形式 ,main()int x;float y;printf(enter x,y:);输入语句;输出语句输入形式 :enter x,y:2 3.4 输出形式:x+y=5.40, 程序中输入输出语句的正确内容是( ) A. scanf(%d,%f,x=1;y=1;z=0;x=x|yprintf(%d,%d,x,x程序的运行结果是 1,1答案 错误 解析 C 语言程序设计/选择结
19、构程序设计 /逻辑表达式 2. (4 分)下列语句 newnext=head;head=new;可以完成建立 2 结点的单向链表的功能答案 正确 解析 C 语言程序设计/结构体与共同体/用指针处理链表 3. (4 分)C 语言中形参到实参传递是双向的答案 错误 解析 C 语言程序设计/函数 4. (4 分)对 for(表达式 1; ;表达式 3)可理解为 for (表达式 1;1;表达式 3)答案 正确 解析 C 语言程序设计/循环程序设计/for 语句 一、单选题 1. (4 分)设有说明:char *str10;则标识符 str 的意义是( ) A. str 是一个指向有 10 个元素的数
20、组的指针 B. str 是一个有 10 个元素的数组 ,数组元素的数据类型是指向 char 型的指针型 C. str 是一个指向 char 型函数的指针 D. str 是具有 10 个指针元素的一维指针数组,每个元素都只能指向整型变量 答案 B 解析 C 语言程序设计/指针/字符串指针 2. (4 分)不属于面向机器语言的是 ( ) A. 符号语言 B. 二进制语言 C. 汇编语言 D. C 语言 答案 D 解析 C 语言程序设计/C 语言概述/C 程序特点 3. (4 分)在 C 语言中, 每个语句和数据定义是用 ( )结束 A. 句号 B. 逗号 C. 分号 D. 括号 答案 C 解析 C
21、 语言程序设计/C 语言概述/C 程序的组成 4. (4 分)以下描述中正确的是( ) A. 由于 do-while 循环中循环体语句只能是一条可执行语句 ,所以循环体内不能使用复合语句 B. do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号 C. 在 do-while 循环体中, 一定要有能使 while 后面表达式的值变为零(假)的操作 D. do-while 循环中, 根据情况可以省略 while。 答案 C 解析 C 语言程序设计/循环程序设计/do-while 语句 5. (4 分)为了避免在嵌套的条件语句 if-else 中产生二义
22、性,C 语言规定 :else 子句总是与 配对( ) A. 缩排位置相同的 if B. 其之前最近的没有 else 配对的 if C. 其之后最近的 if D. 同一行上的 if 答案 B 解析 C 语言程序设计/选择结构程序设计 /if 语句嵌套 6. (4 分)下列字符串是标识符的是 ( ) A. _HJ B. 9_student C. long D. LINE 1 答案 A 解析 C 语言程序设计/C 语言概述/C 程序标识符 7. (4 分)执行语句 for(i=1;i+4;);后变量的值为( ) A. 3 B. 4 C. 5 D. 不定 答案 C 解析 C 语言程序设计/循环程序设计/for 语句 8. (4 分)若有 int w=1,x=2,y=3,z=4;则表达式 w A. 4 B. 3