《c++语言基础基础程序设计.docx》由会员分享,可在线阅读,更多相关《c++语言基础基础程序设计.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+语言基础&基础程序设计您的姓名:填空题*I. C+语言是从早期的C语言逐渐开展演变而来的与C语言相比,它在求解问题方法上进行的最大改进是:0 单项选择题*A)面向过程B)面向对象(正确答案)C)平安性D)复用性答案解析:C+在C的基础上增添类,C面向过程,C+面向对象。2 .对C+语言和C语言的兼容性,描述正确的选项是:()单项选择题*C+兼容C(正确答案)A) C+局部兼容CC+不兼容CB) C兼容C+答案解析:常识题3 .一个可运行的C+源程序()单项选择题*A)由一个或多个主函数构成B)由一个且仅由一个主函数和零个以上(含零个)的子函数构成(正确答案)C)仅由一个主函数构成D)由一个
2、且只有一个主函数和多个子函数构成答案解析:常识题答案解析:整型中不能存在字符。构成C语言程序的基本单位是()单项选择题*A.框架B.预处理C.函数(正确答案)D.语句答案解析:函数是C语言程序的基本单位。一个函数由两局部组成:函数的说明部 分。包括函数名、函数类型、函数属性、函数参数(形式参数)名、形式参数类型。switch(exp)语句中,exp表达式的类型不能是以下哪一项()单项选择题*A.整型B.字符型C.枚举型D.字符串型(正确答案)答案解析:switch语句中的表达式类型只支整形或能直接转成整型的类型(字符 型、枚举型、布尔型等),不支持字符串类型。C语言中字符型(char)数据在内
3、存中的存储形式是()单项选择题*A.原码B.补码C.反码D.ASCLL码,正确答案)答案解析:char型数据是将一个bai字符常量放到一 du个字符变量中,并不是把 该zhi字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单 元中。C语言中,长整型long数据在内存中的存储形式是()单项选择题*A.原码B.补码(正确答案)C.反码D.ASCLL 码答案解析:长整形long数据在内存中的存储形式是用补码存放的。以下语句中,用追加的方式翻开文件的是0单项选择题*file.open (文件名,ios:in);A) file.open (文件名,ios:out);file.open
4、 (文件名,ios:app);(正确答案)B) file.open(文件名,ios:binary);答案解析:A为可读方式翻开文件,B为可写方式翻开文件,D为二进制方式翻开 文件。不能与do.while(exp)语句中的(exp)等价的表达式是()o 单项选择题*A . (!exp 0)B . (exp 0 | exp y&y!=0);C . if(x y) x-; else y+;(正确答案)D . if(y 0) ; else x+;答案解析:if是C语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是 用花括号括起来的一组语句。选项A)和B)是在表达式后跟了一条空语句,选项D) 是在
5、表达式后跟了一组空语句,选项C)中x-是表达式而不是语句,所以在编译时 会出现错误信息,在X-后面加上“;”号就对了 有以下程序:void fun(char *c, int d) *c=*c+l ; d=d+l ; printf(n%c, %c, ”,*c, d) ; main() char a=A, b=a ; fun(&b, a) ; printf(n%c, %cnn, a, b) ; 程序运行后的输出结果是()o 单项选择题*A . B, a, B, aB . a, B, a, BC . A, b, A, bD . b, B, A, b(正确答案)答案解析:程序中定义了两个字符型变量和b
6、,并分别赋初值为A和这,然后调 用函数fun(),将b的地址和a值作为实参。在函数fun()中第一个参数是传递地 址,故在调用函数fun()中对参数做的修改(即将b值加一)将影响字符型变量的值 (变为b),函数fun()第二个参数是传值的,故在调用函数fun()对第二个参数做的修 改不影响字符型变量a(即宣的值仍为A),所以在fun()函数中输出的d为b, B,接 着在主函数中,输出a, b,然后退出fun()函数,接着执行后面的语句,输出A, bo所以最后输出为b, B, A, bo 4个选项中D正确。以下选项中可作为c语言合法常量的是()o 单项选择题*A . -80.(正确答案)B .-
7、080C . -8el.OD . -80.0e答案解析:选项A)用的是整型常量的十进制表示法,是正确的。以。或一0开头的 整数是八进制数表示法,八进制数的原那么是“逢八进一1它只可能包含。-7这8个 符号,应选项B)是错误的。选项C)和D)都是实型常量的指数表示法,其规那么是用 字母e(或E)将一个实数的小数局部和指数局部分隔开。字母e(或E)之前是小数部分,之后是指数局部,这两局部都不能省略,且指数局部必须为整数。应选项C) 和D)都不正确。所以,4个选项中选项A)符合题意。执行以下程序后,test.txt文件的内容是(假设文件能正常翻开)()。#include #include main(
8、)FILE * fp;char * si =Fortran”,* s2 二Basic”;if(fp 二 fopen( test. txtn wbn) = = NULL)prinff( Cant open test, txt file nn); exit(l);fwrite( si ,7,1 ,fp); /*把从地址si开始到7个字符写到fp所指文件中*/fseek(fp,OL,SEEK_SET);/*文件位置指针移到文件开头*/fwrite (s2,5,l,fp);felose (fp);单项选择题*A . Basiean三确答案)B . BasieFortranC . BasicD . Fo
9、rtranBasie答案解析:程序以“只写”方式翻开一个名为test.txt的文件,并向该文件写入指针 变量S1指向的7个字符”Fortran,执行fseek函数,使文件位置指针移到文件的开 头,再次向文件输入指针变量s2指向的5个字符”Basic”这时系统会覆盖原有的内 容Fortr”,所以最后test.txt里的内容为:Basieano以下选项中与if(a=l)a=b ; else a+ ;语句功能不同的switch语句是()单项选择题*switch(a) case 1 : a=b ; break ; default : a+ ;A) switch(a1) case 0 : a=b ; b
10、reak ; case 1 : a+ ;(正确答案)B) switch(a) case 1 : a=b ; break ; default : a+ ;switch(a=l) case 1 : a=b ; break ; case 0 : a+ ;答案解析:switch(a=l)语句中,假设a等于1,那么a =1为“真 那么应该进行a=b的 操作,应选项B错误。在以下选项中,没有构成死循环的程序段是0 o 单项选择题*A . int i=100 ;for(;)i=i%10+l ;if(i 10)break ;B . while(l);c . int k=0 ;(正确答案)do+k ; whil
11、e(k 10时,结束循环;选项D)中,while(s);后面没 有任何表达式而是直接加了一个分号,会一直执行,形成死循环。假设有条件表达式(exp)a+:b那么以下表达式中能完全等价于表达式(exp)的是() 单项选择题*(exp=0)A) (exp!=0)(正确答案)(exp-1)B) (expf=l)答案解析:条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中唯 一的一个三目运算符。条件表达式的一般形式为:表达式!表达式2 :表达式3,其 求解顺序是:先求解表达式1,假设为非0(真)那么求解表达式2,此时表达式2的值就 作为整个条件表达式的值。假设表达式1的值为0(假),那么求
12、解表达式3,表达式3 的值就是整个条件表达式的值。注意+、-的用法。不能与do.while(exp)语句中的(exp)等价的表达式是()o 单项选择题*(!exp 二二 0)A) (exp 0 Ibxp =a)|(cv=z)(a=c)B) (c=n)&(cv=Z)(正确答案)答案解析:逻辑运算与符号是&11 .存储以下数据,占用存储字节最多的是()单项选择题*A)0UA) “0”0.0(正确答案)答案解析:A)和B)需要1字节,C)需要2字节,D)需要4字节.设“inta=12;”,那么执行完语句a+=a*a;后,a的值是()单项选择题*A) 12144B) 156(正确答案)288答案解析:
13、+=结合性从右到左.设已有说明语句“in a=5;,那么执行语句“a+=a*=a%=3;”后,a的值为()。单选题*8(正确答案)A) 18C)0D)2答案解析:+=、*=、=都是赋值运算符,结合性从右向左14.假设有定义:int x=2;那么表达式x2的结果为()单项选择题*A)2B)48(正确答案)D) 16答案解析:2的二进制表示为0000 0010左移2位那么为0000 1000,转换为10进制 为815.阅读下面的程序,输出的结果是()#includevoid main()inti=8;j=10;m=+i;n=j+;printf(”d,%d,%d,%di,j,m,n);单项选择题*A
14、) 8,10,8,10B)9,ll,8,109/1,9,10(正确答案)D) 9,10,9,11答案解析:m=+i;+i返回i的引用同时i自增,所以i的值为9,同时m值为9; n=j+;返回一个j旧值的临时变量同时j自增,所以n为10. j为11。简单理解为 +i返回自增后的值,j+返回原来的值,然后自增。16.设有如下定义,printf(dn”,z=(x%y,x/y)的输出结果为()int x=10,y=3,z;单项选择题*A)1B)0C)43(正确答案)答案解析:逗号运算符返回最右边的值,所有返回x/y的值,x/y表示取整,所有 结果为317 .设ch是char型变量,值为A,那么表达式c
15、h=(ch=A & ch=Z)?ch+32:ch的值是0 单项选择题*A)ZB) a(正确答案)C)zD) A答案解析:=右结合; ?表达式2:”?”运算符的含义是:先求 表达式1的值,如果为真,那么执行表达式2,并返回表达式2的结果;如果表达式 1的值为假,那么执行表达式3 ,并返回表达式3的结果, ch=A为真并且chvZ, 为真所以表达式1为真,那么结果为表达式2,而,A,+32刚好为a.以下不属于字符型常量的是()o 单项选择题*A)$中B) 2AD) “B”(正确答案)答案解析:D是字符串,其余三项都是char类型常量19.下面代码的输出结果为()#includeconst int
16、x = 5;int main() printf(n%d x);int x = 6;printf(n%d ”,x);return 0;单项选择题*A) 5 55 6(正确答案)C)6 6D)6 5答案解析:首先一个输出肯定是5,毫无悬念。但是下面那个就不同了,因为在 main函数中又出来一个同名的局部变量。C+遵循向上覆盖原那么,在一个代码块的 子块中定义的变量,覆盖掉原块中定义的变量。所以,下面那个输出应该是6。20.下面代码的输出结果是()#includeenum color red, green=5, blue ;int main() printf(n%d %d”,red,blue);re
17、turn 0;单项选择题*0 6A) 0 2(正确答案)C)4 6D)0 5答案解析:枚举默认情况下第一个名称的值为0,并且每个名称都比前一个名称大 1,所以为0621.下面代码输出结果是()#includeint i= 1;int main()(int i=2;(int i=3;)printf(d”,i);单项选择题*A) 4B)32(正确答案)D)1答案解析:第一个i作用域是整个文件,第二个i作用域为main函数,第三个i作 用域为代码块,并且C+遵循向上覆盖原那么,所以输出i是第二个i,那么为222.下面代码输出结果是()#includestruct schar c;int i;)int
18、 main()(printf(“d”,sizeof(s);单项选择题*A) 5B)4C) 8(正确答案)D)2答案解析:结构体总大小(也就是sizeof的结果),必须是该结构体成员中最大的对 齐模数的整数倍。假设不满足,会根据需要自动填充空缺的字节,所以最后结果为8.以下为第二局部【C+基础程序设计】1、如果有整型量int x=5,执行情况x+=L9后x的值为()。单项选择题单项选择题*B . 7(正确答案)C.结果不确定D.表达式非法答案解析:由于X是整型,求和之后小数点后会四舍五入。以下正确的c语言标识符是()o1单项选择题*A . %xB . a+bc . al23(正确答案)D . test !答案解析:c语言用户标识符就是用户根据需要自己定义的标识符,一般用来给变 量、函数、数组等命名,不能有特殊字符。C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()o单项选择题*A.必须是字母B.必须为下划线C ,必须为字母或下划线(正确答案)D ,可以是字母、数字、下划线中的任一字符答案解析:C语言语法中必须以下划线字母开始以下关于C语言的表达错误的选项是()单项选择题*A.大写字母和小写字母的意义相同B.不同类型的变量可以在一个表达式中C.在赋值表达式中等号(二)左边的变量和右边的值可以是不同类型D.同一个运算符号在不同的场合可以有不同的含义(正确答案)