C++(上)总练习题.doc_第1页
C++(上)总练习题.doc_第2页
C++(上)总练习题.doc_第3页
C++(上)总练习题.doc_第4页
C++(上)总练习题.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

交通学院213、214 C+(上)总练习题C+练习题第一、二章 习题一、选择题1下列符号串中不合法的C语言标识符是 。A register B Turbo_C C auto_ D _1232A是一个整型变量,则执行下列输出语句后a的值是 。cout(a=3*5,a*4,a+5);A 65B 0C 15D 103若有整型变量a和c,c的当前值是5,则执行下列语句后a的值是 。a=2+(c+=c+,c+8,+c);c+=c+后c值为11,再自增为12A 13B 14C 15D 164若有整型变量x的当前值是3,则执行下列语句的结果是 。docout(x-=2);while(!(-x); 输出1,3变为1后,为逻辑真,取反为假,退出循环A 输出值0B 输出值1和-2C 输出值3和0D 陷入死循环5从语法的角度来看,语句if(a=b=c)x+;是 。用&或|连接逻辑表达式A正确的B语法正确,但在编译是会有警告信息C语法上是错误的D编译系统不会进行相关检查6设有定义 enum colorred=3,yellow,blue=10,white,black;则black的值是 。A 7B 15C 12D 147数学式在C程序中对应正确的表达式为 。Asqrt(x*x+y*y)/x*yBSQRT(x*x+y*y)/x*yCsqrt(x*x+y*y)/x/y)DSQRT(x*x+y*y)/(x*y)8设有变量说明:int x;则表达式(x=4*5,x*5),x+25的值为 。A20B45C100D1259设有说明:int x=1,z=1,y=1,k;执行语句:k=x+|+y&+z;后,变量y的值为 。优化原则,|前为真,则后面并不运算A1B2C3D410在C语言中,下面符号串中,能用作变量名的标识符为 。AautoBputsC-1*num D2-and11下面四个用户定义的标识符中,只有一个 是正确的。A caseB _53C a&bD ab-c12在16位系统中,对整型变量int i=32767;+i的值是 。补码,有符号整数A -1 B 0 C -32768 D 3276813有枚举类型.enum directionUP,Down,LEFT=6,RIGHT;其枚举成员Down的值是。A 1B 2C 5D 714已知整型变量a和b的当前值分别为13和20,a|b的值是 。A 0B 1C 4D 2915在32位系统中求表达式s=10!的值时,变量s的类型应当是 。A intB unsignedC longD以上三种都可以16下面的常量表示有一个是不正确的,不正确的是。A -0B 0x203C 55D 10317浮点型变量f当前存储的值是17.8,经(int)f类型强制后f存储的值是 。A 17B 18C 不变D 不可确定18如果有下列变理定义:char c=97;则coutc+d?a:bDx *=y+2523下面的常量表示中不正确的是 A、0 B.0fd C.n D. . 5e324设有枚举类型定义:enum d (up,down=3,left,right);则枚举量right的值为 A. 5 B. 4 C.3 D.2 25如果整型量a,b,c的值分别为5、4、3,则语句 if(a=b=c) c+;执行后c的值是 A,语法错误 B. 4 C.2 D. 3有warnning,但if结果为假26设标识符ch,a都被定义为字符型变量,以下赋值语句不正确的是_A cha+3;B. chch+a; C.ch=c+h; D. ch+=ch-a27设有说明enum colorred,blue=100,yellow,black,括号中每个元素的实际值依次是_。A.0,100,101,102 B.100,101,102,103 C.0,1,2,3 D.1,2,3,428将变量a强制转换为具有b类型的数据,应表示为_。A.(b)a B.a(b) C.b(a) D.(a)b29有整型变量x ,y ,其中y!=0,下列 与x等价A x/y*yB x%y*yC x/y*y+x%yD 以上都不是30已知整型变量a和b的当前值分别为13和16. a&b 的值是 A.0B.1C .29D.331设有定义enum colorred,yellow=3,blue=10,white,black;则red的值是 。A2B15C1D032C+将数据分为若干类型,定义数据类型实际给出了两方面的信息:定义该类型数据 。 A有效数字位数和数值表示范围 B占用多大存储空间和允许的运算 C数值和字符的不同表示以及适用范围 D适用范围和允许的运算33以下给出的标识符中可用作合法的变量名。 A goto B $price C sum D 9kilo34设im a=l,b=2;那么执行表达式a+&+b;后a和 b的值分别是 。 A 1和2 B 2和2 C 1和3 D 2和335在32位系统中,定义变量并赋值short int x=32767,则执行+X后X的值为 。 A 32767 B 32768 C -l D -3276836设整型变量X的值是5,则表达式2X5的值是 。 A 不确定 B 1 C 0 D 表达式非法37ab且ed的c+表达式描述为 。 A ab,c=d B a!=b&c=d C a=!b&c=d D a!=b&cch B cinget(ch) C cinget(ch) D ch=get()39设有变量定义im x=100,y=1,Z,若执行语句Z=y0?+x:-x,变量z的值为 。 A 99 B 100 C 10l D 10240表示程序流程的三种基本结构是 A 顺序、选择、循环 B 选择、循环、返回C 函数、语句、数组 D 主函数、子函数、变量41用#include 命令包含的文件是 A 目标文件 B 可执行文件 C 源程序文件 D 二进制文件42若有a=13,b=5,c=3则a%b*c的值为 A 6 B 9 C 7.8 D 843在中,能用作变量名的标识符为 break B puts -2*b 3-and44若有宏定义和变量说明如下:#define X1#defineYX+1#defineZY*X/2int ;=Y;则执行以下语句后输出的结果是: coutZ;A 7 5 1 1 12 5 D 7 645设x=2;y=3;表达式x=y= =3运算后。x= A 1 B 2 C 3 D 046一个可执行C+程序的开始执行点是 A 程序的第一条语句 B 包含文件的第一个函数 C 名为void main的函数 D 程序中的第一个函数47浮点型变量f当前存储的值是17.8,经(int)f类型强制后f存储的值是。A 17B 18C 不变D 不可确定48如果有下列变量定义:char c=97;则coutc ; 的输出是 A aB 97C 定义非法D 赋初值非法49若变量已正确定义并赋值,符合c+语言语法的表达式是 。Aa=a+7; Ba=7+b+c,a+ Cint(1234) Da=a+7=c+b50在C+语言中,int、float和long int这3种类型数据所占用的内存是 。 A均为4个字节 B由用户自己定义C由所用机器的机器字长决定的 D任意的51若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是 。Aa=b=c=d=100; Bd+; Cc+b; Dd=(c=22)-(b+);二、填空题1设a、b、c都是整型,则a=b=c=5时,下列表达式的结果是a= 、b= 、c= 。a+=b+c+2数学表达式sin(30 o)+x2cos(20o)的C+语言表达式是 。3设有int x=y=z=1;则执行+x|+y&+z后,x= 、y= 、z= 。4程序main()int i=4,j=5,k=6;i+&+j|+k;coutijk;程序的输出是。5程序main()int a=13,b=16;cout!ata&b;程序输出为。6程序#define PR(x,y,z)coutxtytz=9%5+6%5;coutin;+i|+j&+k;PR(i,j,k);i+=j+;cout10?x+100:x-10 的值是 8若整型变量w=1,x=2,y=3,z=4,则条件表达式wx ? w : z y ? z : x的值为_9int a=5,b=6,c=1,x=2,y=3,z=4;c=(a=cx)&(b=yz);问:执行上述程序后,b的值是_,c的值是_。10程序voidmain()int x,y,z;x=y=z=0;cout(x+&+y|z+)n;coutxtytz;程序第一行输出为 程序第二行输出为 11程序#define PR1(num) coutnum ; coutt#define PR2(a,b) PR1(a);PR1(b)#define PRINT(c,d)coutcdmain()int x=10,y=20,z=100;PR1(x);PR2(x,y);PRINT( hex , z);下面程序的执行结果输出 。1、程序void main()int i=4,j=5,k=6;i+&+j|+k;coutijk;程序的输出是。2、程序#define PR(x,y,z)coutxtytz=9%5+6%5;coutin;+i|+j&+k;PR(i,j,k);i+=j+;couti;程序的第一行输出是。 程序的第二行输出是。程序的最后一行输出是 。12void main() enum wmon,tues,wednes=3 ; w week; int k;for(k=mon;k=wednes;k+)switch(k)case0: week =mon; break;case1: week =tues; break;case2:week =wednes;break;switch(week)case mon:cout(int)mon; break;casetues:cout(int)tues;break;case wednes:cout(int)wednes;break;问题一:枚举元素mon,tues,wednes的值依次是:_ 问题二:运行程序的输出结果是:_ 问题三:程序运行结束时,变量k的值是:_ 第三章 选择、循环结构一、选择题1设整型变量x的当前值为3,执行以下循环语句后,输出的结果是 。do cout(x-=2);while(!(-x)A0 B1 -2 C3 0D死循环,输出许多值2当前整型变量i的值是10,执行下列switch语句后i的值是 。13switch(i)case 9: i+=1;case 10: i+=1;case 11: i+=1;defaule:i+=13对下面三条语句,正确的论断是 。(1)if(a)s;else s2;(2)if(a=0)s2;else s1;(3)if(a!=0)s1;else s2;A三者相互等价B三者相互不等价C只有(2)和(3)等价D以上三咱说法都不正确4下列关于break和switch语句的叙述中,正确的是 。Abreak是switch语句的一个成分B在语句switch中可以根据需要使用或不使用break语句C在语句switch中必须使用break语句D上述结论中两个正确的5设有程序段int x=10; while (x=0) x=x-1;则下面描述中正确的是 A while 循环执行10次 B 循环是无限循环 C 循环体语句一次也不执行 D 循环体语句只执行一次6退出一个循环语句(不终止函数的执行)的有效措施是: A、用break语句B、用continue 语句C、用return语句 D、用exit语句7设整型变量x的当前值为3,执行以下循环语句后,输出的结果为: docout;while ( ! (); 、0B、1 2 C、3 0D、死循环,输出许多值8对下面三条语句,正确的论断是。(1)if(a)s1; else s2; (2)if(a=0)s2;else s1; (3)if(a!=0)s1;else s2;A、三者相互等价B、三者相互不等价C、只有(2)和(3)等价D、以上三咱说法都不正确9以下关于switch语句和break语句的描述中,只有 是正确的。A在switch语句中必须使用break语句Bbreak语句只能用于switch语句C在switch语句中,可以根据需要使用或不使用break语句Dbreak语句是switch语句的一部分10C+语言中 。A不能使用do-while语句构成的循环Bdo-whiIe语句构成的循环必须使用break语句才能退出Cdo-while语句构成的循环,当while语句中的表达式值为非零时结束循环Ddo-while语句构成的循环,当while语句中的表达式值为零时结束循环11对于for(表达式1;表达式3)可理解为 。Afor(表达式1:0:表达式3)Bfor(表达式1;1;表达式3)Cfor(表达式1;表达式1;表达式3)Dfor(表达式1;表达式3;表达式3)二 填空题1有整型变量a、b,则下列for循环中的输入语句最少可执行 次,最多可执行 次for(a=0,b=0;b!=30&ab;2设整型变量I初值是1,则语句while(I+5);执行后I的值是 。3下面程序的执行结果输出 ,#define PR1(num) counum ; cout0; y-)if(y%3=0)cout -yt;5下面程序的执行结果是 。#includemain()int x=1,i=1;for(;x10)break;if(x%2)x+=3;continue;x=1;coutxin6程序#includemain()unsigned i;int count=1;i=0;while(i=1)=0)count+;cout“count=”count=1)改为(i1)程序的结果是。不作上述修改,而将unsigned i;改为unsigned char i;;程序的输出结果是。7程序main()int i=1;while(i+5);couti;程序的输出是。8int a,b;for(b=1,a=1;b=10) break;if(a%2=1)a+=5;continue;a-=3;问:执行上述程序段后,a的值是 ,b的值是 9void main()int m,n,x,y;cinxy;m=1;n=1;if(x0) m=m+1;if(xy) n=n+m;else if(x=y) n=5;else n=2*m;coutmb) if (ac) couta; else cout b;cout”end”endl;问:执行上述程序后输出_。11执行下列程序段后,变量n的值是: int n=10;switch(n) case 9:n-=1; case 10:n+=1; case 11:n-; case 12:n+; default: +n;三 完善程序题1求f(X)=-x2/2!+x4/4!-x6/6+x8/8!要求精度为十万分之一#include#includemain()double x,y,t;int n=0;coutxt=1;while(fabs(t)1e-6)n+;y+=(t=);cout“y(“x”)=”yn;2程序功能:在三个整数a,b和C中选出最大者,将该值输出。void main() im a,b,c,max; coutabc: cout”a=:”atb:btc=cendl: if( )max=a; else if( )max=b; else ; cout”最大数为:max=” endi;3程序功能:用数字0和9之间不同的数字构造所有可能的三位数(个位、十位和百位上的数字各不相同),并统计出共有多少种。#includevoid mainO int i,j,k,count=0; for(i=1;i= ;i+) for(j=0;j= ;j+) if( )continue; else for(k=0;k=9;k+) if( ) cout100*i+10*j+k,; count+; coutendl”Total=”countendl;4完善一个程序,求满足以下条件的最大的n。12+22+32+n21000#includevoid main() int n,s; s=n=O; while( ) S+=n*n; cout“n=“n-1endl;第四章 函数习题一、 选择题1以知函数原型struct tree f(int,int*,struct tree, struct tree*);其中tree是经说明的结构类型。且已有下列定义的变量struct tree pt, *p; int i ;则 是正确的函数调用语句。A &pt=f(10,&(i+2),pt,p) B pt=f(i+,(int*)p,pt,&pt);C p=f(i+1,&i,pt,p); D &p=f(10,&i,pt,p);2判断两个字符串s1和s2是否相等,应当使用 。Aif(s1=s2)Bif(s1=s2)Cif(strcmp(s1,s)Dif(!strcmp(s1,s2)3C+语言中函数返回值的类型是由 决定的。Areturn语句中的表达式类型B调用该函数的主调函数类型C定义函数时所指定的函数类型D传递给函数的实参类型4下列论断正确的是:在C+语言的函数中, 。A、可以定义和调用其他函数B、可以调用但不能定义其他函数C、不可以调用但能定义其他函数D、不可以调用也不能定义其他函数5在一个源文件中定义的全局变量的作用域为 A、文件的全部范围 B、本程序的全部范围 C、本函数的全部范围D、从定义该变量的位置开始至本文件的结束6设函数声明语句中的参数表为(int&a,int&b,im C),函数体中a,b,C三个变量的值都发生变化;主函数中调用此函数的实参表为(X,Y,z),调用函数语句执行后,以下叙述正确的是。 A)变量X和Y的值发生变化 B)变量X和Y的值不发生变化 C)变量X、Y、Z的值都发生变化 D)只有变量Z的值发生变化7变量的有效范围与其定义的位置有关, ,其作用域在整个源程序文件中都有效。A、在第一个函数中定义的变量B、在定义第一个函数之前所定义的变量 C、在主函数中定义的变量D、在函数中定义的静态变量8C+语言中函数返回值的类型是由 决定的。A、return语句中的表达式类型B、调用该函数的主调函数类型C、定义函数时所指定的函数类型D、传递给函数的实参类型9判断两个字符串s1和s2是否相等,应当使用 、if (s1=s2) 、if (s1=s2) 、if (strcmp(s1,s2) 、if (!strcmp(s1,s2)10在程序执行过程中,该程序的某一个函数func()中说明的static型变量V有这样的特性: A、V存在于func()被调用期间且仅能被func()所用B、V存在于整个程序执行过程且仅能被func()所用C、V存在于func()被调用期间且可被所有函数所用D、V存在于整个程序执行过程且可被所有函数所用二、填空题1执行下面程序共产生 行输出,第一行输出和最后一行输出分别是 及 。#includevoid f(int);main()f(3);void f(int n)static int s=5int a=5if(n!=0)s+;a+coutsta;f(n-1); 2程序int fac(int a)int b=0static int c=3;b+;c+return a+b+c;main()int a=3,j;for(j=0;j3;j+) coutfac(j);招待以上程序后,第一行的输出是 ,第三行的输出是 。3程序 void f(int b, int t)int m;if(bt)m=(b+t)/2;coutmn;f(b,m-1);f(m+1,t)main()f(1,6);执行以上程序后,第一行的输出是 ,第二行的输出是 ,最后一行的输出是 。4程序(共2分)# define A 3main()int a;# define B(a)(A+1)*a)a=3*(A+B(5);cout(“x=”a”n”;程序是否正确(是或否) ;若程序错,则原因是(或程序正确, 则输出结果是): 。5当一个联合类型的变量作为函数的实参时,它传递给函数的是。6程序int f(int x)int y=1;static int z=1;z+=z+y+;return(z+x);main()coutf(3)n;coutf(3)n;执行以上程序后,第一和第二行的输出分别是和 。7程序 #includeint m=10;int f(int x,int y)int m=5;m+=x*y;return m;void main()int a=6,b=7;coutf(a,b)/mn;执行以上程序后,输出结果 。8程序 void f(int a)if(a0)cout“-”;a=-a;cout char(a%10+0);if(a=a/10)!=0)f(a);main()int a=-3567;f(a);coutn;a=3456;f(a);cout“n”;执行以上程序后,输出结果的第一行是 ;第二行是 。9#includevoid main()int k=4,m=1,p;p=fun1(k,m); coutp;p=fun1(k,m); coutpendl;fun1(int x,int y)static int m=0,i=2;i+=m+1;m=i+x+y;return m;问: 程序执行后输出的结果为 , 10main() int w=2,k; for(k=0;k3;k+) w=f(w); coutwn;f(int x) int y=0; /*static*/ int z=3; y+; z+; return(x+y+z);问题1:执行程序后,输出的第一个数是_,最后一个数是_。问题2:如果把对static的注解改为static定义,输出的第一个数是_,最火一个数是_。11#include int fun(int i); main()int i=1; switch(i) defaunlt: i+; break; case 0: i+;fun(i); case 1: i+;fun(i); case 2: i+;fun(i); coutin;int fun(int i) static k=10; i+;k+; coutkn; return k;问:执行上述程序后,最后输出的i是_,k是_。12程序int i=0;voidmain()int i=5;couti;int i=7;cout i;cout:i;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论