2022年武汉理工大学继续教育《C语言程序设计》在线作业答案 .pdf
一、单选 (共计 100 分,每题 2.5 分) 1 、 若 已 定 义int a=11; 执 行 以 下 语 句 后 的 输 出 结 果 是 ()。printf(a=%d,a=%o,a=%xn,a,a,a) ; A. a=11, a=11, a=b B. a=11, a=13, a=b C. a=11, a=13, a=c D. a=11, a=12, a=13 2、A. B. C. D. 3、以下程序运行后,文件test.txt 的内容是() 。 #include main() FILE *fp; char str10=first,second; fp = fopen(test.txt, w); if(fp!=NULL) fprintf(fp,%s,str0); fclose(fp); fp = fopen(test.txt, w); if(fp ! =NULL) fprintf(fp,%s,str1); fclose(fp); A. first B. second C. first second D. second first 4、若有以下定义:struct node int data; struct node *next; struct node *head,*p; 已建立如下图所示的链表: p head data next datanext . dataNULL能删除指针p 所指向结点的程序段是() 。A. p = p-next; head-next=p-next; free(p); B. free(p); p = p-next; head-next=p-next; C. head-next = p-next; free(p); D. free(p); head-next = p-next; 5、若有定义: int a10=0,1,2,3,4,5,6,7,8,9, *p=a; , 则()表达式是错误的。A. a2 B. p+ C. p2 D. a+ 6、下面叙述错误的是() 。A. C源程序可由一个或多个函数组成B. C. D. 注释说明部分只能位于C 源程序的最前面7、 ()为合法的常量。A. B. C. D. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 8、以下程序的运行结果是() 。void main() int s = 0, i = 0; while(i=0;j-) pic(3-j, ); pic(i+2*j, *); putchar(n); pic(int len,char c) int k; for(k=1;k=len;k+) putchar(c); A. B. C. D. 10、 设有以下程序段:int a=1, b=10, c=1, x; x=a&b|+c; printf( %d, %dn,x,c); 执行后输出的结果是()A. 0,0 B. 0,1 C. 1,0 D. 1,1 11、以下条件语句中(其中 s1 和 s2 分别表示C 语言的语句 ), ()与其他三条语句不等价。A. if(a) s1; else s2; B. if(a = 0) s2; else s1; C. if(a != 0) s1; else s2; D. if(a = 0) s1; else s2; 12、若已定义int arr10; 则不能正确引用arr 数组元素的是() 。A. arr0 B. arr1 C. arr10-1 D. arr7+3 13、若有定义 :int *p,k=4; p=&k; 以下均代表地址的是() 。A. k, p B. &k, &p C. &k, p D. k, *p 14、以下程序的运行结果是() 。 main() int a3=1,2,3; int *num3; int *p,i; for(i=0;i3;i+) numi=&ai; p=num; printf(%d,*p); A. 1 B. 3 C. &a0 D. num 15、 以下程序中的循环执行了() 次。 #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i,n=0; for(i=0;iNUM;i+) n+; printf(%dn,n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - A. 5 B. 6 C. 8 D. 9 16、若有定义: int x,a,b; 语句 x=(a=2,b=3,a+b); 运行后, x、a、b 的值依次为() 。A. 2 3 5 B. 3 2 5 C. 5 2 3 D. 5 3 2 17、以下程序运行后,a 的值是() 。main() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; A. 101 B. 100 C. 8 D. 7 18、下面叙述正确的是() 。A. 宏展开不占用运行时间,只占用编译时间B. 预处理命令也是C 语句,必须以分号结束C. 一个源程序只能有一个预编译处理命令行D. 宏名必须用大写字母表示19、若有定义int m=4321,n=123,k=21; 语句 printf(%4d+%3d+%2d,m,n,k); 执行后的输出结果是() 。A. 4321432143211231231232121 B. 432112321 C. 4321+123+21 D. 432+123+021 20、 ()语句符合C 语言语法。A. B. C. D. 21、已有如下定义和输入语句,char c1,c2;int x; scanf(%c%d%c,&c1,&x,&c2); 若要求 x、c1、c2 的值分别为9、K和H,正确的数据输入是() 。A. K9H B. K 9 H C. K9 H D. 9KH 22、A. B. C. D. 23、若有定义 :struct studentint num; char sex; int age;stu1;下列叙述不正确的是() 。A. student 是结构体类型名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - B. struct student 是结构体类型名C. stu1 是用户定义的结构体类型变量名D. num,sex,age 都是结构体变量stu1 的成员24、有以下程序:main() int c; while(c=getchar()!= n) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; printf(n); 当输入: 247,程序的输出结果是() 。A. 689 B. 6689 C. 66778 D. 66887 25、A. B. C. D. 26、下面叙述错误的是() 。A. B. C. 预处理命令行必须以分号结束D. C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率27、A. B. C. D. 28、对二维数组的正确定义是()A. B. C. D. 29、在 C语言中,运算符和的功能分别是()A. 关系运算和赋值运算B. 关系运算和赋值运算C. 都是关系运算D. 都是赋值运算30、下面叙述错误的是()A. 数组中每一个元素都属于同一个数据类型B. C语言数组名称是数组在内存中的首地址C. C语言数组长度在定义数组时可不作确定D. C语言规定可逐个引用数组元素但不能一次引用整个数组31、以下程序段运行后s 的值是() 。int a33=1,2,3,4,5,1,2,3,4; int i,j,s=1; for(i=0;i3;i+) for(j=i+1;j3;j+) s+=aij; A. 6 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - B. 120 C. 7 D. 240 32、若有定义: int a=6,b=7,k=0,t=1; 语句(k=ab) & (t=a=b); 运行后, k、t 的值分别是() 。A. 0 0 B. 1 1 C. 0 1 D. 1 0 33、以下在任何情况下计算平方数时都不会引起二义性的宏定义是() 。A. B. C. D. 34、 若有下面定义 ,能打印出字母L的语句是 () 。struct class char name8; int age; ; struct class s12=Zheng,16,Lin,18,Yang,19,Guo,20; A. printf(%cn,s1.name0); B. printf(%cn,s2.name0); C. printf(%cn,s1.name); D. printf(%cn,s2.name); 35、设已定义float a=2.0,b=3.0; 使 a 值为 5.0 的表达式是() 。A. a+= b B. a*=b+2.0 C. a/=b+2.0 D. a-=b+2.0 36、以下叙述中正确的是()A. C源程序中注释部分可以出现在程序中任意合适的地方B. C. C源程序编译时注释部分的错误将被发现D. 构成 C 源程序的基本单位是函数,所有函数名都可以由用户命名37、 ()是正确的数组定义。A. int n=10,xn; B. int x10; C. int N=10;int xN; D. int n;scanf(%d,&n); int xn; 38、以下程序段运行后变量k 的值为() 。 int m=7,n=2,k;k=(mn)=b|bc 的值为() 。A. 变量 i 的值B. 变量 j 的值C. 0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - D. 1 40 、 执 行 下 面 程 序 段 后 , 输 出 字 符B的 个 数 是 ()x=0; while(x=5) printf( B); x+=2; A. 0 个B. 3 个C. 5个D. 6个一、单选 (共计 100 分,每题 2.5 分) 1、A. 0,0 B. 10,3 C. 13,7 D. 7,13 2、 以下程序的运行结果是() 。 void main() int n=9; switch(n-) default: printf(%d ,n+); case 8: case 7: printf(%d ,n); break; case 6: printf(%d ,n+);case 5: printf(%d ,n); A. 8 B. 7 C. 8 9 D. 8 7 3、x 的值在 -20 至-5 之间为“真” ,否则为“假”的正确逻辑表达式为() 。A. -20 x-20 & x-20) & !(x-5) D. -5x-20 4、若有定义: int x=10,y=8,a; 则执行语句a=(-x=y)? x: y);后,变量a 的值是() 。A. 8 B. 9 C. 10 D. 0 5、以下程序段运行后s 的值是() 。int a33=1,2,3,4,5,1,2,3,4; int i,j,s=1; for(i=0;i3;i+) for(j=i+1;jdata); p+; B. while(p) printf(%d, p.data); p=p-next; C. for( ; p!=NULL; p+) printf(%d, p-data); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - D. for( ; p; p=p-next) printf(%d, (*p).data); 7、 若有定义: int a=6,b=7,k=0,t=1; 语句(k=ab) & (t=a=b); 运行后,k、 t 的值分别是 () 。A. 0 0 B. 1 1 C. 0 1 D. 1 0 8、 以下程序的可执行文件名为abc.exe。#include #include void main(int argc,char *argv) if(argc!=2) printf(Input errorn); exit(1); printf(I love %sn,argv1); 在 DOS命令行输入: abc right,则输出结果是() 。A. Input error B. I love abc C. I love right D. I love 9、以下程序的运行结果是() 。void main() int s = 0, i = 0; while(i 8) i+; if(i%2=0) continue; s+=i; printf(%dn,s); A. 36 B. 7 C. 16 D. 12 10、以下在任何情况下计算平方数时都不会引起二义性的宏定义是() 。A. B. C. D. 11、 以下程序中的循环执行了() 次。 #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i,n=0; for(i=0;iNUM;i+) n+; printf(%dn,n); A. 5 B. 6 C. 8 D. 9 12、A. B. C. D. 13、C 语言整型数据在内存中的代码是用()表示的。A. 原码B. 反码C. 补码D. BCD码14、以下程序运行后,文件test.txt 的内容是() 。 #include main() FILE *fp; char str10=first,second; fp = fopen(test.txt, w); if(fp!=NULL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - fprintf(fp,%s,str0); fclose(fp); fp = fopen(test.txt, w); if(fp ! =NULL) fprintf(fp,%s,str1); fclose(fp); A. first B. second C. first second D. second first 15、以下程序段运行后x 的值为() 。 int a8=1,2,3,4,5,6,7,8,i,x=0; for(i=0;i=0;i-) ai=ai*j; j=j*3; for(i=0;i=c C. c-b|a+b&(b*c-a-c) D. (b*c-a-c)&(b*c-a-b) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 22 、 对 于 以 下 程 序 , 说法 正 确 的 是 () 。#include main() FILE *fp; fp=fopen(quiz.txt, w); if(fp!=NULL) fprintf(fp,%sn, success!); fclose(fp); printf(ok!); A. 程序运行后,当前工作目录下存在quiz.txt 文件 ,其中的内容是 ok! B. 程序运行后,当前工作目录下存在quiz.txt 文件 ,其中的内容是success! C. 程序运行之前,当前工作目录下一定不存在quiz.txt 文件D. 程序运行之前,当前工作目录下一定存在quiz.txt 文件23、在对无符号数的位运算中,操作数左移三位相当于() 。A. 操作数除以6 B. 操作数乘以6 C. 操作数除以8 D. 操作数乘以24 、 若 已 定 义int a=11; 执 行 以 下 语 句 后 的 输 出 结 果 是 ()。printf(a=%d,a=%o,a=%xn,a,a,a) ; A. a=11, a=11, a=b B. a=11, a=13, a=b C. a=11, a=13, a=c D. a=11, a=12, a=13 25、A. B. C. D. 26、若有定义int m=4321,n=123,k=21; 语句 printf(%4d+%3d+%2d,m,n,k); 执行后的输出结果是() 。A. 4321432143211231231232121 B. 432112321 C. 4321+123+21 D. 432+123+021 27 、 执 行 下 面 程 序 段 后 , 输 出 字 符B的 个 数 是 ()x=0; while(x=5) printf( B); x+=2; A. 0 个B. 3 个C. 5个D. 6个28、若有定义: int a=3; 语句 a+=a-=a*a; 运行后, a 的值为() 。A. 0 B. -3 C. -12 D. -6 29、在 C 语言中,若定义二维数组a23 ,设 a00 在数组中位置为1,则 a11 在数组中位置是() 。A. 3 B. 4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - C. 5 D. 6 30、当顺利执行了文件关闭操作时,fclose 函数的返回值是() 。A. 1 B. 0 C. -1 D. 一个非 0 值31、以下程序的运行结果是() 。 main() int a3=1,2,3; int *num3; int *p,i; for(i=0;i3;i+) numi=&ai; p=num; printf(%d,*p); A. 1 B. 3 C. &a0 D. num 32、只能向终端输出一个字符的是() 。A. printf() 函数B. scanf()函数C. getchar()函数D. putchar()函数33、构成 C源程序的基本单位是()A. 语句B. 变量C. 运算符D. 函数34、C 语言函数体由()括起来。A. B. C. D. 35、若有定义 : int i,x=0; 语句 for(i=1;i=3;i+) x+=2;与下列()程序段不等价。A. i=1;for( ;i=3;i+) x+=2; B. i=1;for( ; ;i+) x+=2; C. for(i=1;i=3; ) x+=2; i+; D. i=1;for( ;i=3; ) x+=2; i+; 36、若有定义: int x; char c=A; 则正确的赋值表达式是() 。 (说明: A的 ASCII码的十进制值为 65,a的 ASCII码的十进制值为97)A. x=c+32 B. x=c+ABC C. x=c+CBA D. x=ABC 37、A. 计算文件wj.txt 的起始地址B. 计算文件wj.txt 的终止地址C. 计算文件wj.txt 的长度D. 将文件指针定位到文件末尾名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 38、若有定义: float x=3.5,y=3.6; 则表达式()的值为 6。A. (int)x+(int)y B. x+y C. (int)(x+y) D. int(x+y) 39、A. 4 B. 5 C. 8 D. 9 40、A. B. C. D. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -