《语言概述官练习题目.doc》由会员分享,可在线阅读,更多相关《语言概述官练习题目.doc(27页珍藏版)》请在三一办公上搜索。
1、习题一(C+语言概述)一、选择题1.C+语言是从早期的C语言逐渐发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是_。A.面向过程B.面向对象C.安全性D.复用性2.以下说法中正确的是_。A.C+程序运行时,总是从第一个定义的函数开始执行B.C+程序运行时,总是从main()函数开始执行C.C+源程序中的main()函数必须放在程序的开始部分D.一个C+函数中只允许一对花括号3.下列标识符中错误的一组是_。A.Name,char,a_bc,A-BB.abc_c,x5y,_USA,printC.read,Const,type,defineD.include,integer,Doub
2、le,short_int4.下面的单词中属于C+语言关键字的是_。A.inlcudeB.defineC.ENUMD.union5.下面属于C+语句的是_。A.coutaendlB./This is a statementC.x=x+1;D.#include 6.在一个C+程序文件中,main()函数的位置_。A.必须在开始B.必须在最后C. 可以任意D.必须在系统调用库函数之后7.C+源程序的基本结构是_。A.过程和块B.函数和类C.程序段和过程D.子程序和主程序8.下列四个叙述中,错误的是_。A.C+语言中的标识符必须全部由字母组成B.C+语言不提供输入输出语句C.C+程序中的注释可以出现在
3、程序的任何位置D.C+语言中的关键字必须小写二、填空题1.C+程序的开发过程包括_、_和_三个阶段。2.在编辑阶段,C+源程序的扩展名是_。3.C+源程序经过编译后生成的文件的扩展名是_。4.C+源程序经过编译和连接后生成的文件的扩展名是_。5.在Visual Studio 2005环境下,按程序运行界面划分,用C+开发的应用程序有_、_和_三种类型。6.在C+程序中,一条语句的结束符是_。7.用于输出表达式值的标准输出流对象是_,用于从键盘上为变量输入值的标准输入流对象是_。8.下面的程序用cin从键盘接收一个整数并存放在变量a中,用cout输出a的值,请将程序填完整。#include us
4、ing namespace std;int main()_ cina; cout_a=_a_endl; system(pause); return 0;三、编程题编程序计算立方体的表面积和体积,设一个立方体的三条边分别为a,b,c,若从键盘输入这三条边长,就可以计算立方体的表面积和体积。习题二(C+语言基础)一、选择题1.设char型占1字节,则unsigned char 所能表示的数据范围是_。A.0255B.-128127C.1256D.-1281282.将小写字母n赋值给字符变量one_char,正确的操作是_。A.one_char=nB. one_char=“n”C. one_char
5、=110D.one_char=N3.整型变量i定义后赋初值的结果是_。int i=2.8*6;A.12B.16C.17D.184.下列四组整型常量中,错误的一组是_。A.xcdf 017 0xe 123B.160 0xffff 011 0LC.01 32768u 0617 0x163D.0x48a 0205 0x0 -2565.下列属于C+合法的字符常量是_。A.97B.AC.tD.06.若整型变量x=2,则表达式x2的结果是_。A.2B.4C.6D.87.设int a=1,b=2;,则表达式(a+)+b与a+ +b的值分别为_。A.3,3B.3,4C.4,3D.4,48.在C+中,合法的长整
6、型常量是_。A.0LB.4962710C.04312765D.0xa34b7fe9.当用#define X 23.6f定义后,下列叙述正确的是_。A.X是实型常量B.X是实型变量C.X是一串字符D.语法错误10.当用const int B=9;定义后,下列叙述错误的是_。A.B是整型变量B.B是整型常量C.B不能在程序中再赋值D.B可以用作数组元素的下标11.要求运算量必须是整型的运算符是_。A.+B./C.%D.-12.在C+中,不同类型的数据混合运算时,先要转换成同一类型,然后进行计算。设一表达式中含有int、short、unsigned和char类型的常量和变量。这四种类型的转换顺序是_
7、。A.shortunsignedintcharB.charintshortunsignedC.charshortintunsignedD.charunsignedshortint13.a、b均为int型且b0,则表达式a/b*b+a%b的值为_。A.aB.bC.a被b除的整数部分D.a被b除商的整数部分14.a、b均为int型且b0,则表达式a-a/b*b的值为_。A.0B.aC.a被b除的余数部分D.a被b除商的整数部分15.下列表达式中,值为0的是_。A.3%5B.3/5.0C.3/5D.3516.下列语句中符合C+语法的语句是_。A.a=7+b+c=a+7B.a=7+b+=a+7C.a=
8、7+b,b+,a+7D.a=7=b,c=a+717.若变量已正确定义且k的值是4,执行表达式j=k后,j、k的值是_。A.j=4,k=4B.j=4,k=3C.j=3,k=4D.j=3,k=318.设int x=10,x+=3+x%(-3),则x=_。A.14B.15C.11D.1219.表达式(int)(3.0/2.0)的值是_。A.1.5B.1.0C.1D.020.设a为int型变量,则执行以下语句后,x的值为_。a=10;a+=a-=a-a;A.10B.20C.40D.3021.设变量t为int型,下列选项中,不正确的赋值语句是_。A.+tB.n1=(n2=(n3=0)C.k=i=1D.a
9、=b+c=122.设float m=4.0,n=4.0;使m为10.0的表达式是_。A.m-=n*2.5B.m/=n+9C.m*=n-6D.m+=n+223.C+语句中x*=y+2;还可以写成_。A.x=x*y+2B.x=2+y*xC.x=x*(y+2)D.x=y+2*x24.若变量已正确定义,要将a和b中的数进行交换,则下列不正确的语句组是_。A.a=a+b;b=a-b;a=a-b;B.t=a;a=b;b=t;C.a=t;t=b;b=a;D. t=b;b=a;a=t;25.设已定义int k=7,x=12;,下列表达式中,计算结果为0的是_。A.x%=(k%=5)B.x%=(k-k%5)C.
10、x%=k-k%5D.(x%=k)-(k%=5)26设int a=7,b=8;,则cout(a+b,a)”,”(b,a+b)输出的是_。A.7,15B.8,15C.15,7D.出错27下列表达式的值为false的是_。A.13&54)C.3&0&1D.!(58)|(28)28设int a=10,b=11,c=12;,表达式(a+b)c&b=c的值是_。A.2B.0C.-2D.129正确表示“大于10而小于20的数”的C+表达式是_。A.10x10|x10&x20D.!(x=20)30.设int a=3;,则表达式a1的运算结果和a的值分别是_。A.0和2B.0和3C.1和2D.1和331.为表示
11、关系xyz,应使用的C+表达式是_。A.(x=y)&(y=z)B.(x=y)AND(y=z)C.x=y=zD.(x=y)&(y=z)32.已知int x=43,y=0;char ch=A;,则表达式(x=y&ch0)&(b0)B.a&bC.(a0)|(b0)D.(a0)|(b0)34.当c的值不为0时,下列选项中能正确将c的值既赋给变量a又赋给变量b的是_。A.c=b=aB.(a=c)|(b=c)C.(a=c)&(b=c)D.a=c=b35.设a为整型变量,下列不能正确表达数学关系:10a15的C+表达式是_。A.10a10&a15D.!(a=15)36.设a、b和c都是int型变量,且a=3
12、,b=4,c=5;,则以下表达式中,值为0的是_。A.a&bB.a=bC.a|b+c&b-cD.!(ab)&!c|1)37.下面的程序输出为_。#include using namespace std;int main()int a=-1,b=4,k;k=(a+=0)&(!(b-=0);coutk” ”a” ”b(int)(x-y)的值为_。A.2B.4C.1D.340.设int b=2;,表达式(b1)的值是_。A.0B.2C.4D.841.sizeof(double)是_。A.一种函数调用B.一个双精度表达式C.一个整型表达式D.一个不合法的表达式42.若有以下定义和语句int u=010
13、,v=0x10,w=10;coutu”,”v”,”wendl;则输出结果是_。A.8,16,10B.10,10,10C.8,8,10D.8,10,10二、填空题1无符号整型的类型关键字为_,双精度实型的关键字为_,字符型的类型关键字为_。2在C+中,整数可用_进制、_进制和_进制三种进位计数制表示。3字符串常量的结束符为_。4设有以下定义,并已赋确定的值char ch;int i;float f;double d;则表达式ch*i+d-f的数据类型为_。5设有int a=14;,则表达式(a+*1/5)的值为_。6下列程序的输出结果是_。#include using namespace std
14、;int main()double d=3.2;int a=1.2,b;b=(a+3.8)/5.0;coutd*bendl;system(“pause”);return 0;7.下列程序执行后的输出结果是_。#include using namespace std;int main()double d;float f;long l;int i;i=f=l=d=20.0/3;couti”,”l”,”f”,”dendl;system(“pause”);return 0;8.若有以下程序段int a=1,b=2,c;c=1.0/b*a;则执行后,变量c的值为_。9.下列程序的输出结果是16,请将程序
15、填完整。#include using namespace std;int main()int a=9,b=2;float x=_,y=1.1,z;z=a/2+b*x/y+1/2;coutzendl;system(“pause”);return 0;10.下列程序的输出结果是_。#include using namespace std;int main()int x=1,y=2;x+=y;y=x-y;x-=y;cout”x=”x”,y=”yendl;system(“pause”);return 0;11.设已定义int a=10,b=12;则表达式(!a|b-)的值是_。12若a为int型变量,
16、请以最简单的形式写出与逻辑表达式!a等价的C+关系表达式_。13下面的程序运行后,输出结果为_。#include #include using namespace std;int main()int c=97;coutc”,”;coutoctc”,”;couthexcendl;system(“pause”);return 0;三、程序改错题1下面程序的功能是将变量a和b的值交换,请找出其中的错误,并修改正确。#include using namespace std;int main()int a,b,t;cinab;a=b;b=a;cout”a=”a”, b=”bendl;system(“pa
17、use”);return 0;2.下面的程序用来将八进制整数a的后6位存放到变量中。请修改程序中的错误。#include using namespace std;int main()int a,b;cinocta;b=a!077;cout”a=”octa”,b=”octbendl;system(“pause”);return 0;四、编程题1编写程序计算边长为a(a的值从键盘输入)的正方形面积及其外接圆和内切圆的面积。2编写程序实现华氏温度f和摄氏温度c的转换,转换公式为:。具体要求:从键盘输入华氏温度,通过计算输出摄氏温度习题三(程序的控制结构)一、选择题1.结构化程序设计使用的基本程序控制
18、结构为_。A.模块结构、选择结构和递归结构B.条件结构、顺序结构和过程结构C.顺序结构、选择结构和循环结构D.转换结构、嵌套结构和递归结构2设已定义整型变量a、b、c、x,下列程序段运行后x的值是_。a=b=c=0,x=35;if(!a)x-;else if(b);if(c)x=3;elsex=4;coutxendl;A.34B.4C.35D.33若已定义int d;char c=D;,则执行的语句后,d的值是_。switch(c)case A:d=0;break;case B:case C:d=2;break;case D:case E:d=4;break;default:d=5;A.0B.
19、2C.4D.54.若已定义int i;,下面程序段的运行结果是_。for(i=1;i+4;);couti7)a-;couta” ”;A.10 9 8B.9 8 7C.10 9 8 7D.9 8 7 66.若已定义int x=3;,以下程序段的输出结果是_。docout(x-=2)” ”;while(!(-x);A.1B.3 0C.1 -2D.死循环7.以下关于do-while循环的叙述中,正确的是_。A.do-while语句构成的循环只能用break语句退出B.用do-while语句构成的循环,在while后的表达式为非0时结束循环C.用do-while语句构成的循环,在while后的表达式为
20、0时结束循环D. do-while语句构成的循环不能用其他语句构成的循环来代替8以下关于编译预处理的叙述中,错误的是_。A.C+源程序中凡是以“#”开始的控制行都是预处理命令行B.预处理命令行必须位于源程序的开始位置C.一条有效的预处理命令行必须独占一行D.预处理命令是在正式编译前被处理的9编译预处理命令以_结尾。A. ;B. .C.D.回车键二、填空题1以下两条if语句可合并成一条if语句为_if(ab) cout”*y=”yendl;else cout”#x=”xendl;2.要使以下程序段输出10个整数,请填入一个整数。for(int i=0;_;cout(i+=2);3.下面程序的功能
21、是:计算1到10之间的奇数之和及偶数之和,请填空。#include using namespace std;void main()int a,b,c,i;a=c=0;for(i=0;i”偶数之和=”a”奇数之和=”c-11endl;system(“pause”);4.以下程序将输出的整数按逆序输出。如输入1298,则输出8921。请填空。#include using namespace std;void main()int n1,n2;cinn2;while(n2!=0)n1=n2%10;_;coutn1;system(“pause”);5下面程序的功能是:输出100以内能被3整除且个位数为6
22、的所有整数,请填空。#include using namespace std;void main()int i,j;for(i=0;_;i+)j=i*10+6;if(_) continue;coutj;system(“pause”);三、阅读程序题1以下程序的输出结果是_#include using namespace std;void main()int x=3,y=0,z=0;if(x=y+z) cout”*”;else cout”#”;system(“pause”);2.运行下面程序时,若从键盘输入3和4,则输出为_。#include using namespace std;void m
23、ain()int a,b,s;cinab;s=a;if(sb) s=b;s=s*s;coutsendl;system(“pause”);3.以下程序的输出结果是_。#include using namespace std;void main()int a=0,i;for(i=1;i5;i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=5;default:a+=5;coutaendl;system(“pause”);4.运行以下程序后,输出结果是_。#include using namespace std;void main()for(int j=1
24、0;j3;j-)if(j%3) j-;-j;-j;coutj” ”;system(“pause”);5.以下程序的输出结果是_。#include using namespace std;void main()int x,i;for(i=1;i=50;i+)x=i;if(x%2=0)if(x%3=0)if(x%7=0)coutiendl;system(“pause”);6.下列程序的输出结果是_。#include using namespace std;void main()int i=10,j=0;doj=j+i;i-;while(i2);coutjendl;system(“pause”);7
25、.以下程序的运行结果是_。#include using namespace std;void main()int a=10,y=0;doa+=2;y+=a;cout”a=”a”,y=”y20) break;while(a=14);system(“pause”);8.运行以下程序后,输出结果是_。#include using namespace std;void main()int x=23;docoutx-;while(!x);system(“pause”);9.下列程序的输出结果是_。#include using namespace std;void main()int i,j,m=0,n=
26、0;for(i=0;i2;i+)for(j=0;j=i) m=1;n+coutnendl;system(“pause”);10.以下程序的输出结果是_。#include using namespace std;void main()int a,b;for(a=1,b=1;a=10) break;if(b%3=1)b+=3;continue;coutaendl;system(“pause”);11.运行下面程序后,输出结果是_。#include using namespace std;void main()int x=3,y=6,a=0;while(x+!=(y-=1)a+=1;if(yx) b
27、reak;cout”x=”x”,y=”y”,a=”aendl;system(“pause”);四、程序改错题1下面的程序用来求分段函数的值,请将程序中的错误修改正确#include using namespace std;void main()float x,y;cinx;if(x0)y=0;if(x1)y=1;if(x2)y=2;elsey=3;cout”x=”x”,y=”yendl;system(“pause”);2.下面的程序用来求1100中所有能被3整除的各数之和,结果放入变量sum中。请将程序修改正确,以得到正确的输出结果。#include using namespace std;v
28、oid main()int i,sum;for(i=3;i100;i+)sum=0;sum+=i;cout”sum=”sumendl;system(“pause”);3.求近似值的公式为:当n的值很大时(例如,n=1000),下列程序运行是将会产生“溢出”错误,请修改程序,使之能正确计算。#include using namespace std;void main()float pi=2;for(int n=1;n=1000;n+)pi=pi*(2*n)*(2*n)/(2*n-1)*(2*n+1);cout”pi=”piendl;system(“pause”);五、编程题1从键盘输入100个整
29、数,从中找出最大数和最小数。2编制程序计算两个整数a和b的最小公倍数。3试程序计算1!+2!+20!。4编制程序打印出100以内的所有素数。5编制程序用辗转相除法求整数a和b的最大公约数。习题四(函数)一、选择题1.在下列关于C+函数的描述中,正确的是_。A.函数可以嵌套定义,但不可以嵌套调用B.函数不可以嵌套定义,但可以嵌套调用C.函数不可以嵌套定义,也不可以嵌套调用D.函数可以嵌套定义,也可以嵌套调用2.下列关于C+函数的叙述中,正确的是_。A.每个函数至少要具有一个参数B.每个函数都必须有数据类型C.函数在被调用之前必须先声明D.函数不能自己调用自己3.若函数为int型,变量z为floa
30、t型,则该函数体内的语句return(z)返回值的类型是_。A.int型B.float型C.不定D.不确定4.下列关于函数参数默认值的描述中,正确的是_。A.函数参数的默认值只能设置一个B.若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置成默认值C.若一个函数含有多个参数,则设置默认值参数时可以不连续设置默认值D.C+语言中函数都必须设有默认值5.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。A.地址传递B.单向值传递C.由实参传给形参,再由形参传给实参D.传递方式由用户指定6.以下程序的输出结果是_。A.0B.29C.31D.不定值#incl
31、ude using namespace std;void fun(int x,int y,int z)z=x*x+y*y;void main()int a=31;fun(5,2,a);coutaendl;system(“pause”);7.考虑函数原型void test(int a,int b=7,char c=*),下面的函数调用中,属于不合法调用的是_。A.test(5)B.test(5,8)C.test(6,#)D.test(0,0,*)8.下列程序执行后输出结果是_。#include using namespace std;int d=1;void fun(int p)int d=5;
32、d+=p+;coutd” ”;int main()int a=3;fun(a);d+=a+;coutdendl;A.8 4B.9 6C.9 4D.8 59.有如下程序:#include using namespace std;int func(int a,int b)return(a+b);int main()int x=2,y=5,z=8,r;r=func(func(x,y),z);coutrendl;该程序的输出结果是_。A.12B.13C.14D.1510.在C+语言中,形参的缺省存储类型是_。A.autoB.registerC.staticD.extern11.下列程序执行后的输出结果
33、是_。#include using namespace std;int f(int a)int b=0;statc int c=3;a=c+,b+;return a;int main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);coutkendl;A.3B.0C.5D.412.在C+语言中,函数的隐含存储类型是_。A.autoB.staticC.externD.无存储类型13.若要使定义在一个源程序中的全局变量只允许在本源文件中所有函数使用,则该变量的存储类型是_。A.autoB.staticC.externD.register14.以下程序运行后,输出结果是_。A.
34、7 8 9B.7 9 11C.7 10 13D.7 7 7#include using namespace std;int f(int a)int b=0;statc int c=3;c+;b+;return (a+b+c);int main()int a=2,i;for(i=0;i3;i+)k=f(a)t;coutendl;15.编译运行如下程序时,将出现的情况为_。A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数#include using namespace std;int main()void function(double val);double val;function(val);coutvalendl;return 0;void function(double val)val=3;16.以下程序的输出结果是_。A.5 4 3