大学C语言期末考试练习题含答案.docx
《大学C语言期末考试练习题含答案.docx》由会员分享,可在线阅读,更多相关《大学C语言期末考试练习题含答案.docx(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、大学C语言期末考试练习题含答案 大学C语言期末考试练习题(带详解答案)一、单项选择题1(A)是构成C语言程序的基本单位。 A、函数B、过程C、子程序D、子例程2C语言程序从C开始执行。 A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。 A)C程序的工作过程是编辑、编译、连接、
2、运行B)C语言不区分大小写。 C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。 A.-a1B.aiC.a2_iD.intt58题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-”,选项B中“”与“”不满足(1); 选项D中的int为关键字,不满足(3)6下列C语言用户标识符中合法的是(B)。 A)3axB)xC)caseD)-e2E)union选项A中的标识符以数字开头不满足(2); 选项C,E均为为关键字,不满足(3); 选项D中的“-”不满足(1
3、); 7下列四组选项中,正确的C语言标识符是(C)。 A)%xB)a+bC)a123D)123选项A中的“%”,选项B中“+”不满足(1); 选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print_3ddb8aBcB、Iamone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy-bookline#His.age选项B中的“”,”$”,选项D中“”,”#”,”.”,”-”不满足(1); 选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型B、整型、
4、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。 A)2.5B)2C)1D)3详见教材P5253.%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1; (-5)%2=-1; (-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=211如果inta=3,b=4; 则条件表达式“ab)min=b;if(minc)min=c;printf(“min=%d“,min);运行结果为: min=-34详见教材p89选择结构本题考点是选择结构3种基
5、本形式的第一种一共包含了两个选择结构(两个if语句)定义变量,并赋值此时a=12,b=-34,c=56,min=0将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。 若minb成立,则执行min=b;若minc成立,则执行min=c;输出min中的值12大于-34,第一个if语句的表达式成立,因此执行min=b;执行后min中的值被更新为-34.-34小于56,第二个if语句的表达式不成立,因此不执行min=c;最后输出min中的值,为-34.3.#includemain()intx=2,y=-1,z=5;if(x-1,表达式xb)t=a;a=b;b=t;if(ac)
6、t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(“%5.2f,%5.2f,%5.2f“,a,b,c);运行结果为:1.00,2.00,7.00详见教材p72数据的输出形式本题包含了3个if语句,每个if语句后的都不可省略,因为每个中都包含了多条语句若表达式ab成立,则执行t=a;a=b;b=t;若表达式ac成立,则执行t=a;a=c;c=t;若表达式bc成立,则执行t=b;b=c;c=t;输出a,b,c中的值,要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐3小于7,因此表达式ab不成立,因此不执行t=a;a=b;b=t;3大于1,因此表达式ac成立,则
7、执行t=a;a=b;b=t;。第一句,将a中的3拷贝,粘贴到t中; 第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3; 第三句。将t中的3拷贝到c中,覆盖掉c中先前的1.执行完复合语句后实现了a,c元素的值的互换,a为1,c为3,t为3,。 7大于c中的3,因此bc成立,执行则执行t=b;b=c;c=t;,过程同上,执行后b为3,c为7,t为7此时输出a,b,c中的值为1.00,2.00,7.005#includemain()floatc=3.0,d=4.0;if(cd)c=5.0;elseif(c=d)c=6.0;elsec=7.0;printf(“%.1fn”,c);运行结果为:7.0此
8、题为if.else.语句的嵌套,第二if.else.作为第一个if.else.语句else部分的复合语句。 若表达式cd成立,则执行c=5.0;否则(表达式cd不成立)若表达式c=d成立,则执行c=6.0;否则,执行c=7.0;输出c中的值3.0小于4.0,因此表达式cd不成立,执行第二个ifelse。 3.0不等于4.0,因此表达式c=d不成立,执行c=7.0,将7.0赋给c,覆盖掉c中的3.0,此时c中的值为7.0输出此时的c中的值6.#includemain()intm;scanf(“%d“,&m);if(m=0)if(m%2=0)printf(“%disapositiveevenn“,
9、m);elseprintf(“%disapositiveoddn“,m);elseif(m%2=0)printf(“%disanegativeevenn“,m);elseprintf(“%disanegativeoddn“,m);若键入9,则运行结果为:-9isanegativeodd7.#includemain()intnum=0; while(num0);printf(“n“);从键盘输入23,则运行结果为:32详见教材p117循环结构; p60复合的赋值运算符dowhile(表达式);先无条件执行循环体,再判断循环条件。注意while(表达式)后有分号定义整型变量num,c;为num赋一
10、个整型值; 执行c=num%10;printf(“%d“,c);直到循环条件(num/=10)0不成立; 输出换行已知为num赋值23第1次执行循环体执行c=num%10=23%10=3;执行printf(“%d“,c);输出3判断循环条件num/=10等价于num=num/10;因此num=23/10=2,2大于0,因此循环条件(num/=10)0成立,继续执行循环体。执行完第1次循环时,num为2,c为3第2次执行循环体执行c=2%10=2;执行printf(“%d“,c);再输出2判断循环条件num=2/10=0,0等于0,因此循环条件(num/=10)0不成立。结束循环10#inclu
11、demain()ints=0,a=5,n;scanf(“%d“,&n);dos+=1;a=a-2;while(a!=n);printf(“%d,%dn“,s,a);若输入的值1,运行结果为: 2,1详见教材p117循环结构; p60复合的赋值运算符执行s+=1;a=a-2;直到循环条件a!=n不成立; 已知为n赋值1,s为0,a为5第1次执行循环体执行s+=1;等价于s=s+1=0+1执行a=a-2;a=5-2=3判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体。 执行完第1次循环时,s为1,a为3第2次执行循环体执行s+=1;等价于s=s+1=1+1=2执行a=a-2;a=
12、3-2=1判断循环条件,1等于1,因此循环条件a!=n不成立,结束循环。 执行完第2次循环时,s为2,a为1输出此时s,a中的值,结果为2,111#include“stdio.h“main()charc;c=getchar();while(c!=?)putchar(c);c=getchar();如果从键盘输入abcde?fgh(回车)运行结果为:abcde12#includemain()charc;while(c=getchar()!=$)if(A0;y-)if(y%3=0)printf(%d”,-y);运行结果为: 852详见教材p53,自增自减符号此题表达式1被省略,表达式2(循环条件)为
13、y0,表达式3为y-初值y为9,循环条件(即表达式2)y0成立,进入循环体第1次循环执行if语句。9%3=0,if语句的条件表达式成立,执行printf(%d”,-y),即y先自减1变为8,然后在输出,因此屏幕上输出8转向表达式3,执行y-,y=y-1=8-1=7。循环条件y0成立,进入第2次循环第2次循环执行if语句。7%3不为0,if语句的条件表达式不成立,不执行printf(%d”,-y)转向表达式3,执行y-,y=y-1=7-1=6。循环条件y0成立,进入第3次循环第3次循环执行if语句。6%3=0,if语句的条件表达式成立,执行printf(%d”,-y),即y先自减1变为5,然后在
14、输出,因此屏幕上输出5转向表达式3,执行y-,y=y-1=5-1=4。循环条件y0成立,进入第4次循环第4次循环执行if语句。4%3不为0,if语句的条件表达式不成立,不执行printf(%d”,-y)转向表达式3,执行y-,y=4-1=3。循环条件y0成立,进入第5次循环第5次循环执行if语句。3%3=0,if语句的条件表达式成立,执行printf(%d”,-y),即y先自减1变为2,然后在输出,因此屏幕上输出2转向表达式3,执行y-,y=y-1=2-1=1。循环条件y0成立,进入第5次循环第6次循环执行if语句。1%3不为0,if语句的条件表达式不成立,不执行printf(%d”,-y)转
15、向表达式3,执行y-,y=1-1=0。循环条件y0不成立,循环结束。 18.#includemain()inti,sum=0;i=1;dosum=sum+i;i+;while(i=10,y=0;i-)ai=10-i;printf(“%d%d%d”,a2,a5,a8);运行结果为: 852详见p143-146.例题6.1一定看懂!首先定义整型变量i,整型数组a,a的长度为10,即a中包含10个整型元素(整型变量)执行for循环语句初值i=9,使得循环条件i=0成立,执行循环体第1次循环执行ai=10-i等价于a9=10-9=1计算表达式3,即i-,i为8,使得循环条件i=0成立,继续执行循环体第
16、2次循环执行ai=10-i等价于a8=10-8=2计算表达式3,即i-,i为7,使得循环条件i=0成立,继续执行循环体第3次循环执行ai=10-i等价于a7=10-7=3计算表达式3,即i-,i为6,使得循环条件i=0成立,继续执行循环体第4次循环执行ai=10-i等价于a6=10-6=4计算表达式3,即i-,i为5,使得循环条件i=0成立,继续执行循环体第5次循环执行ai=10-i等价于a5=10-5=5计算表达式3,即i-,i为4,使得循环条件i=0成立,继续执行循环体第6次循环执行ai=10-i等价于a4=10-4=6计算表达式3,即i-,i为3,使得循环条件i=0成立,继续执行循环体第
17、7次循环执行ai=10-i等价于a3=10-3=7计算表达式3,即i-,i为2,使得循环条件i=0成立,继续执行循环体第8次循环执行ai=10-i等价于a2=10-2=8计算表达式3,即i-,i为1,使得循环条件i=0成立,继续执行循环体第9次循环执行ai=10-i等价于a1=10-1=9计算表达式3,即i-,i为0,使得循环条件i=0成立,继续执行循环体第10次循环执行ai=10-i等价于a0=10-0=10计算表达式3,即i-,i为-1,使得循环条件i=0不成立,跳出循环体2.#includemain()inti,a6;for(i=0;i=0;i-)printf(“%3d“,ai);运行结
18、果为: 543210首先定义整型变量i,整型数组a,a的长度为6,即a中包含6个整型元素(整型变量)执行第一个for循环语句初值i=0,使得循环条件i=0成立,继续执行循环体第2次循环执行printf(“%3d“,ai);即输出a4的值计算表达式3,即i-,i为3,使得循环条件i=0成立,继续执行循环体第3次循环执行printf(“%3d“,ai);即输出a3的值计算表达式3,即i-,i为2,使得循环条件i=0成立,继续执行循环体第4次循环执行printf(“%3d“,ai);即输出a2的值计算表达式3,即i-,i为1,使得循环条件i=0成立,继续执行循环体第5次循环执行printf(“%3d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言 期末考试 练习题 答案
限制150内