C期末考试试卷及答案
C语言期末考试复习题及答案3
C语言期末考试复习题及答案一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确的选项涂写在答案纸上。
答在试卷上不得分。
(1)C语言规定:在一个源程序中,main函数的位置。
A)必须在最后B)必须在系统调用的库函数的后面。
C)必须在最开始。
D)可以任意(2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。
A)必须为字母或下划线。
B)必须为下划线。
C)必须为字母D)可以是字母、数字和下划线中的任一种字符。
(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是。
A)-10 0x8f -011 B) 010 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa(4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是。
A)0 ~ 65535 B)0 ~ 32767C)-32767 ~ 32768 D)-32768 ~ 327687(5) 若有定义:int a = 7; floa x = 2.5 , y = 4.7 ;则表达式x + a % 3 *(int) (x + y)% 2/4 的值是。
A) 2.750000 B) 0.00000 C) 3.500000 D) 2.500000(6)已知ch是字符型变量,下面不正确的赋值语句是。
A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ;(7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的是。
A)!((x < y )&&!z || 1) B) ' x ' && ' y ' C) x || y+z && y - z D)x <= y(8)设有程序段int k = 10 ;while ( k = 0 ) k = k - 1 ;以下描述正确的是。
C语言中职期末试卷(含答案)
**市中职中学2015—2016年度(下)期末《C 语言程序设计基础》试卷(考试时间:60分钟 总分:100分 适应班级: 级 班)注:1、答题前,务必将自己的班级、姓名、学号填写在相应的位置上.2、请将答案按照题号顺序在各题目的答题区域内作答;保持答题卷清洁。
3、超出答题区域书写的答案无效.一、填空题(每题2分,共30分)1、C 语言源程序是由 函数 组成的,人们称C 语言为高级语言,一个函数由函数头、 函数体 两部分组成。
2、定义值为2016的符号常量VER 的命令是: #define VER 2016 。
3、实型常量的十进制小数形式要求小数点两边 至少一边有数字 ,而指数形式中E (或e )的前后必须有数字,后边的数必须为 整数 。
4、表达式5/2的值和表达式 (double)5/2 的值分别是 2 、 2.500000 .5、连续输入多个数值型数据时,数据之间用 空白字符 分隔。
6、格式转换说明符要与输入地址列表中的变量 一一对应 。
7、C 语言规定,为了在程序中能够正确使用输入输出函数,需要在源程序开始写上 #include “stdio 。
h ” 预处理命令。
8、程序设计的初期一般用自然语言、流程图、伪代码等工具来表示算法,其中 流程图 表示具有直观、易于交流的特点。
9、模块化程序设计的思路是 自顶而下,逐步细化 。
在C 语言中实现程序化模块的工具是 函数 。
10、C 语言规定,逻辑真用1表示,逻辑假用0表示。
设x 为整形变量,值为1,则表达式(x &&1)= =(x %2)的值为 1 。
11、与数学表达式|x|>10意思相同的C 语言表达式为 x 〉10||x 〈—10 .二、单项选择题(每题3分,共30分)(注:表示空格)1.下面正确的整型常量是()。
A.009B.x789 C.2e3D.9002.在C语言中,要求运算数必须是整型的运算符是().A、/ B、++ C、*=D、%3.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是().int x1,x2;char y1,y2;scanf(“%d%d”,&x1,&x2);scanf(“%c%c”,&y1,&y2);A.1020AB B.10 20 ABC C。
C期末考试复习题(答案)
C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
大学计算机C语言期末考试复习试题及答案 (26)
C语言试题试卷编号:9618 版面整理着:一、填空共8题(共计8分)第1题(1.0分)题号:513若有以下定义,则计算表达式y+=y-=m*=y后的y值是()int m=5,y=2; 答案:-16第2题(1.0分)题号:84写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】. 答案: 18第3题(1.0分)题号:293getchar()函数只能接收一个【1】. 答案:字符第4题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 答案:9,10第5题(1.0分)题号:86写出表达式 1.234&&5.982 的值是【1】. 答案:1第6题(1.0分)题号:303为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对. 答案: if第7题(1.0分)题号:311若所用变量均已正确定义,则执行下面程序段后的值是【1】.for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案:YESYES 第8题(1.0分)题号:312以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写【1】.ch=getchar();while(ch ____ 'Y')/*在括号中填写*/ch=getchar(); 答案:==二、判断共15题(共计15分)第1题(1.0分)题号:937在C程序中,每行中只能写一条语句答案:N第2题(1.0分)题号:928C程序中的关键字必须小写. 答案:Y第3题(1.0分)题号:715整数 -32100可以赋值给int型和long int型变量. 答案:Y第4题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double 答案:Y第5题(1.0分)题号:947printf函数中,%c和%s都可以输出字符串. 答案:N第6题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5. 答案:Y第7题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句. 答案:Y激情活力精彩学联版权所有违者必究第8题(1.0分)题号:961C语言本身并不提供输入输出语句.但可以通过输入输出函数来实现数据的输入输出. 答案:Y第9题(1.0分)题号:950逻辑运算符中的"&&"和"||"低于关系运算符,"!"高于算术运算符. 答案:Y第10题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果. 答案:Y第11题(1.0分)题号:723若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". 答案:Y 第12题(1.0分)题号:709int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A. 答案:N第13题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句. 答案:Y第14题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立. 答案:Y第15题(1.0分)题号:952do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式. 答案:N三、单项选择共20题(共计40分)第1题(2.0分)题号:2016设C语言中,int类型数据占2个字节,则short类型数据占().A:1个字节B:2个字节C:4个字节D:8个字节答案:B第2题(2.0分)题号:2209若变量已正确定义并赋值,下面符合C语言语法的表达式是().A:a:=b+1B:a=b=c+2C:int 18.5%3D:a=a+7=c+b 答案:B第3题(2.0分)题号:2000以下的选择中,正确的赋值语句是().A:a=1,b=2B:j++C:a=b=5;D:y=int(x) 答案:C第4题(2.0分)题号:2130下列字符序列中,是C语言保留字的是().A:sizeofB:include激情活力精彩学联版权所有违者必究C:scanfD:sqrt 答案:A第5题(2.0分)题号:2211设以下变量均为int类型,则值不等于7的表达式是().A:(x=y=6,x+y,x+1)B:(x=y=6,x+y,y+1)C:(x=6,x+1,y=6,x+y)D:(y=6,y+1,x=y,x+1) 答案:C第6题(2.0分)题号:2127下列程序段的输出结果为().float k=0.8567;printf("%4.1f%%",k*100);A:0085.6%%B:85.7%C:0085.6%D:.857 答案:B第7题(2.0分)题号:2135下列程序段的输出结果为().int x=3,y=2;printf("%d",(x-=y,x*=y+8/5));A:1B:7C:3D:5 答案:C第8题(2.0分)题号:2189从键盘上输入某字符串时,不可使用的函数是().A:getchar()B:gets()C:scanf()D:fread() 答案:A第9题(2.0分)题号:2039若k为int型变量,则以下程序段的执行结果是().k=-8567; printf("k=|%06D|\n");A:格式描述符不合法,输出无定值B:输出为k=|%06D|C:输出为|0-8567|D:输出为|-8567| 答案:B第10题(2.0分)题号:2049以下程序的输出结果为().main(){int i=010,j=10;printf("%d,%d\n",++i,j--);激情活力精彩学联版权所有违者必究}A:11,10 B:9,10 C:010,9 D:10,9答案:B第11题(2.0分)题号:2144int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第12题(2.0分)题号:2259以下关于运算符优先顺序的描述中正确的是().A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C第13题(2.0分)题号:2318在C语言中,要求运算数必须是整型的运算符是().A:&&B:%C:!D:|| 答案:B第14题(2.0分)题号:2261若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是().A:A%2==1B:!(A%2==0)C:!(A%2)D:A%2 答案:C第15题(2.0分)题号:2063执行下列语句后的输出为().int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A:****B:%%%%C:%%%%cD:有错,执行不正确答案:A第16题(2.0分)题号:2248下面有关 for 循环的正确描述是().激情活力精彩学联版权所有违者必究A:for 循环只能用于循环次数已经确定的情况B:for 循环是先执行循环循环体语句,后判断表达式C:在 for 循环中,不能用 break 语句跳出循环体D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第17题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890 答案:A第18题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:### 答案:B第19题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i; 答案:A第20题(2.0分)题号:2249若i为整型变量,则以下循环执行次数是().for(i=2;i==0;) printf("%d",i--);A:无限次B:0次C:1次D:2次答案:B四、程序填空共3题(共计27分)第1题题目:要求输出结果为:A,B激情活力精彩学联版权所有违者必究#include<stdio.h>void main()/***********SPACE***********/{char a,【?】/***********SPACE***********/a=【?】;b='b';a=a-32;/***********SPACE***********/b=b-【?】;printf("%c, %c\n%d,%d\n",a,b,a,b);}答案:=======(答案1)=======b;=======(答案2)======='a'=========或=========97=======(答案3)=======32第2题(9.0分)题号:24题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。
c语言期末复习试题附答案
试卷编号:1120所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(分)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A ).A:k++B:k+=1C:++kD:k+1第2题(分)已知int i=5,执行语句i+=++i后,i的值是(C).A:10B:llC:12D:A、B、C都不对第3题(分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. ttinclude <>void main()/* Beginning */{ int r;float s;scanf (〃%d〃,&r);s=p*r*r; printf (〃s=%f\n〃,s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(分)〃\\\〃 ABC\〃 \\〃的长度是(B ).A:llB:7C:5D:3第5题(分)已知int j, i=l执行语句j=-i++;后,j的值是(C ).A:1B:2串中的内容为“abcdefg”时,c 所指数组中的内容应该为 “lg2f3e4dcba” 。
*/ttinclude <>#include <>#include <>void fun ( char char *b, char *c )int i , j;char ch;i = 0;j 二 strlen(b)-l;/**********FOUND**********/ch = b [ i];b[j] = ch; i++; j —;/**********FOUND**********/while ( *a &&*b )//此处&&改为| | (逻辑或)if ()*c =*a;c++;/**********FOUND**********/a+;)if ( *b )*c 二*b; c++;b++;*c = 0;main()char sl[100],s2[100],t[200];clrscr ();printf (,z \nEnter si string : 〃);scanf (〃如〃,si);printf (,z \nEnter s2 string : 〃);scanf (〃%s 〃, s2);fun( si, s2, t );printf (/z \nThe result is : %s\n 〃,t );i j四、程序设计共1题(共计20分)第1题(分)/*【程序设计】功能:判断一个整数w 的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。
XXX《C语言》2020秋期末考试试题答案
XXX《C语言》2020秋期末考试试题答案试卷总分:100得分:100一、单选题(共35道试题,共70分)1.若有说明int a[][3]={1,2,3,4,5,6,7};则a数组行数的大小为()。
A.2B.3C.4D.不确定答案:B2.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数()。
A.没有返回值B.返回若干个系统默认值C.返回一个用户所希望的函数值D.返回一个不确定的值答案:D3.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是A.直接按照系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按照系统设定的标准方式搜索C.仅仅搜刮源程序所在目录D.仅仅搜索当前目录答案:B需求代做加微boge4.C语言规定:在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必需在末了谜底:C5.以下程序段的作用是()。
inta[]={4,0,2,3,1},i,j,t;for(i=1;i=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t; }A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)答案:B6.以下说法正确的选项是()。
A.x'+5是一个错误的表达式D.(int)x+y?和(int)(x+y)是完全等价的表达式谜底:C7.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必需包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,解释说明只能位于一条语句的背面谜底:D8.下面函数调用语句含有实参的个数fun((exp1,exp2),(exp3,exp4,exp5));A.1为()。
大学《C语言程序设计》期末考试试卷及参考答案
大学《C语言程序设计》期末考试试卷及参考答案《C语言程序设计》期末考试试卷参考答案一、判断题(10分)1、对2、对3、错4、错5、对6、错7、错8、错9、错10、错二、填空题(30分,,1到10题1分1空,10到18题2分1空)1.2.5 2. a!=0&&b!=0 3. m=1b 4. windows 95 5. x[i]>='A'&&x[i]<='Z' 6.234567 7.文件的首纪录前8、struct tree *Ltree,*Rtree 9. i<=10010. char a[10]="continue"; 11. p*pow(1+r,5) 12. 'D' 13. 10、514.#define utol(ch) ch=ch>='A'&& ch<='Z' ? ch+'a'-'A':ch15.首行第i+1个元素的地址,第i+1行的首地址,a[0][0]的值16.p=(int*)mallo(n);17. (-b+sqrt(b*b-4*a*c))/2/a 18. float(*fg)(float **,int,int);三、单项选择题(在每小题的四个备选答案中选出一个正确的,10分))1、A2、B3、C4、B5、D6、A7、A8、B9、C 10、A四、程序阅读题(20分,每题4分)1、 A C E G2、 x=3 y=23、the two string are same:fthe two string are same:r4、 K=85、1《C语言程序设计》期末考试试卷及参考答案一、判断题(10分)1、C语言是一种结构化程序设计语言。
()2、在标准C中,整型变量与字符变量是可以通用的。
()3、在标准C中,“=”是判断两个数是否相等。
云南师范大学《C语言》期末考试样卷及答案
云南师范大学《C语言》期末考试样卷及答案云南师范大学2011-2012学年下学期统一考试《计算机技术基础》(C语言)期末考试样卷考试方式(闭卷机考)考试时量:100分钟试卷编号(样卷)一、判断题:(每题1分,共15分)1.在C程序中,注释内容在编译时被忽略,因此好的C程序不需要注释。
BA.对B.错2.#define是一种特殊的C语句,在行末没有分号。
BA.对B.错3.C语言中表达式3%2是合法的表达式。
AA.对B.错4.在C程序中,赋值语句x=123和x=0123后,变量x的值是不同的。
AA.对B.错5.2&&3的结果为1。
AA.对B.错6.C程序总是从程序的第一条语句开始顺序执行。
BA.对B.错7.C语言中,函数的定义可以嵌套。
BA.对B.错8.结构体中的成员变量可以有不同的数据类型。
AA.对B.错9.出现在主调函数之前的用户自定义函数,可以不必加函数声明。
AA.对B.错10.C语言中用for循环语句实现的功能,用while循环语句不一定能实现。
BA.对B.错11.有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为5的表达式是*(P+4)。
AA.对B.错12.字符串和字符数组都要求其最后一个字符为’\0’。
BA.对B.错13.合理使用共用体可以节省内存空间。
AA.对B.错14.函数是C程序的基本单位。
AA.对B.错15.全局变量在程序中的任何地方都有效。
BA.对B.错二、单选题(在本题的每一小题的被选答案中只有一个正确答案,多选不给分,每题1分,共40分)1、下面叙述错误的是____。
DA.C程序中,各种括号应成对出现B.C程序中,赋值号的左边不可以是表达式C.C程序中,变量名的大小写是有区别的D.C程序中,若未给变量赋初值,则变量的初值自动为02.有宏定义:#define E 2.718则编译预处理时将E替换成一个____。
DA.单精度常量B.单精度变量C.双精度变量D.字符串3、C程序中,合法的关键字是____。
《C语言程序设计基础》期末考试试卷‘B’及答案
一、单项选择题(每小题2分,共30分)答案填入下表1. 在C语言中,下面字符串能用作变量名的是( )。
A、a+bB、autoC、2-andD、a22. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。
A、3.500000 B. 3.000000 C. 2.000000 D. 33. 下列关于C语言中字符常量与字符串常量的叙述中,错误的是( )。
A、字符常量是用单撇号括起来的一个字符B、空格字符也可用作字符常量C、字符串常量是用单撇号括起来的一个字符序列D、字符串常量是用双撇号括起来的一个字符序列4. 若有以下变量说明和数据的输入方式,则正确的输入语句为( )。
变量说明:float x1,x2;数据的输入方式:4.52<回车>3.5<回车>A、scanf(“%f,%f”,&x1,&x2);B、scanf(“%f%f”,&x1,&x2);C、scanf(“%3.2f,%2.1f”,&x1,&x2);D、scanf(“%3.2f%2.1f”,&x1,&x2);5. 下列程序段的执行结果是( )。
char s[10];s=″abcd″;printf(″%s\n″,s);A、输出abcdB、输出aC、输出abcduuuuuD、编译不通过6. 在一个源文件中定义的全局变量的作用域为()。
A. 本文件的全部范围B. 从定义该变量开始至本文件结束C. 本函数的全部范围D. 本程序的全部范围7.当调用函数时,实参是一个数组名,则向函数传送的是( )。
A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值8.若j为整型变量,则下面while循环( )。
j=10;while(j!=0) j=j-1;A、执行0次B、执行1次C、执行10次D、执行无限次9. 在while(x)语句中的x与下面条件表达式等价的是:( )。
C语言期末考试试卷附参考答案
一、单项选择题(请将答案填在下面表格中20×1)1.以下叙述中正确的是()。
A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点2.以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C.main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3.以下叙述中正确的是()。
A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分4.以下有关for循环的正确描述是()。
A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行一次C.循环执行两次D.有语法错误6.以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A.inta(20);B.inta[]={1,2,5,7,0};C.inta[n];D.inta[2]={1,2,4,6};8.在定义intb[2][10];之后,对b数组元素引用正确的是()。
A.b[0][9]B.b[2,3]C.b(1)(5)D.b[10][0]9.如有定义语句intc[]={1,5,3,4,6,7,0};,则数组c有()个元素。
C语言程序设计期末考试试题及答案
C语言程序设计期末考试试题及答案装 C. C++; D.a+b+c|2.已知int j , i=1 ;执行语句“ j=i++ ; ”后,变量i 的值是B 。
A. 1B. 2C. - 1D. -2 3. 执行下面程序:#i nclude "stdio.h" void mai n()订 {int a=1,b=2,c=3 ;c=(a+=a+2),(a=b,b+3); printf(“ %d,%d,%d ,a,b,c);丨}线则输出结果是:_A _______ 。
A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5[4.若要求在if 后一对圆括号中表示 a 不等于0的关系,则能正确表示这一关系的表达式为D 。
—A. a< >0B. !aC. a=0D. a:5. for (j=0;j<11;j++);循环结束后,j 的值是 B _________ 。
A. 12B. 11C. 10D. 96. C 语言中函数返回值的类型由 _D ___ 决定的。
[ A. return语句中的表达式类型B.调用该函数的主调函数的类型 :C.调用函数时临时决定D.定义函数时所指定的函数类型7. 下列说法中正确的是 B 。
- A 在调用用户自定义函数时,必须对其进行声明。
1B 函数可以返回一个值,也可以什么值也不返回。
:C 说明函数时,必须明确参数的类型和返回值。
D 在程序设计中空函数没有什么作用。
C 语言程序设计试题','g','s','\0'};8. 若int i=10 ;执行下列程序后,变量 i 的正确结果是_D_switch ( i ) {case 0: i+=1 ; case 10: i+=1 ; case 11: i+=1 ; default: i+=1 ;}A. 10B. 11C. 12D. 139. 下列语句中不正确的字符串赋值或初始化的是 C 。
中南大学2020年《C语言程序设计》期末考试试题及答案
一、选择题(15小题,每小题2分,共计30分)1.下面不正确的字符串常量是 A 。
A)'abc' B)"12'12" C)"0" D)" "2.以下正确的叙述是 DA)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示D)在C程序中,%是只能用于整数运算的运算符3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 AA)D B)68 C)不确定的值 D)C4.sizeof(float)是 B :A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式5.以下说法正确的是 D :A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注:<CR>表示回车)。
int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);A) 1020AB<CR> B)10 20<CR>AB<CR>C)10 20 AB<CR> D)10 20AB<CR>7.请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上程序 D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$8.下面程序段的运行结果是 C 。
(完整版)C语言程序设计试卷及参考答案
《C语言程序设计》期末考试模拟试卷及参考答案(B)2012.6.5整理一、选择题(每题2分,共30分)1、# include <stdio.h>的结果是______void main ( ){ int a[3][3]={1,2,3,4,5,6,7,8,9};int s=0,i;for (i=0;i<3;i++)s+=(*(a+i))[i];printf("%d",s);}A.9B.12C.14D.15参考答案—D2、设有说明语句:char a= '\123abc';则变量a __________A. 包含7个字符B.包含6个字符C. 包含5个字符D. 包含4个字符参考答案—D3、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是_____A. 无限次B.有语法错,不能执行C. 一次也不执行D. 执行1次参考答案—A4、在C语言中,_____。
A.函数定义可以嵌套,但函数调用不能嵌套B.函数定义不可以嵌套,但函数调用可以嵌套C.函数定义和调用均不能嵌套D.函数定义和调用均可以嵌套参考答案—B 5、以下叙述正确的是________A)do-while语句构成的循环不能用其它语句构成的循环代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
参考答案—D6、以下关于函数叙述中,正确的是。
A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return 语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身参考答案—D7、以下数组声明语句中正确的是。
A.int a,a[n];B.int a[ ];C. int a[2][3]={{1},{2},{3}};D.int a[ ][3]={{1},{2},{3}};参考答案—C8、以下不能正确进行字符串赋初值的语句是________A.char str[5]= "good!";B.char str[ ]= "good!";C.char *str="good!";D.char str[5]={ 'g','o','o','d'};参考答案—A9、以下关于switch语句和break语句的描述中,只有______是正确的。
C语言期末考试题及答案5
13.若有定义语句:int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是()。
A)p=a B)q[i]=a[i]C)p=a[i]D)p=&a[2][1]14.有以下程序struct S{int a,b;}data[2]={10,100,20,200};main(){struct S p=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是()。
A)10B)11C)20D)2115.下列叙述中,正确的是()。
A)C 语言中的文件是流式文件,因此只能顺序存取文件中的数据B)调用fopen 函数时若用"r"或"r+"模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在C)当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据D)无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖二、输出结果(本题共30分)1.以下程序运行后的输出结果是()。
void main(){int a,b,c;a=25;b=025;c=0x25;printf("%d %d %d\n",a,b,c);}2.以下程序运行后的输出结果是()。
void main(){int m=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}3.如果输入3,9,5,则以下程序输出的结果为()。
void main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);if(a<b ){t=a;a=b;b=t;}if(a<c )t=a;else if(b>c )t=b;else得分t=c;printf("t=%d\n",t);}4.以下程序运行后的输出结果是()。
2011-2012学年度第二学期C语言程序设计期末考试试卷和答案
************(本科)试卷(A 卷)2011--2012学年第 二 学期《C 程序设计》试卷开课单位:计算机学院,考试形式:闭卷,允许带 入场40分每题1分):答案必须填写在答题卡的相应位置上,否则不得分。
.C 语言中字符型(char )数据在内存中的存储形式是________。
A 、原码 B 、反码 C 、补码 D 、ASCII 码 .C 语言中基本的数据类型包括________。
A 、整型、实型、逻辑型 B 、整型、实型、字符型 C 、 整型、字符型、逻辑型 D 、整型、实型、逻辑型、字符型 .在C 语言中,int 类型数据在内存中占用________。
A 、2字节 B 、4字节 C 、由编译系统决定 D 、由用户决定 .运算符有优先级,C 语言中关于运算符优先级的正确叙述是________。
A 、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B 、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C 、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D 、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。
.下面关于C 语言语句的叙述,错误的是________。
A 、C 语言一行可以允许写多条语句; B 、C 语言语句用分号结束; C 、语句一行写不下时,可以用逗号换行 ; D 、语句一行写不下时,可在任意一空格处回车换行 。
.下面数据中不属于字符型常量的是________。
A 、“\n ” B 、…\0‟ C 、…A ‟ D 、…\t ‟.11.以下选项中,当x 为大于1的奇数时,值为0的表达式__________ 。
A 、 x%2==1B 、 x/2C 、x%2!=0D 、x%2==0 .C 语言源程序名的后缀是__________ 。
A 、 .exeB 、 .C C 、 .objD 、 .cp9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是________。
c语言期末考试卷答案
试卷编号:451所属语言:C语言试卷方案:2019-2020(2)C语言期中考试试卷总分:100分共有题型:4种一、判断共25题(共计25分)第1题(1.0分)题号:1114 难度:中第1章在C语言程序设计中,"/*"和"*/"之间的内容是C语言的注释.答案:Y第2题(1.0分)题号:1115 难度:易第1章c程序总是从程序的第一条语句开始执行.答案:N第3题(1.0分)题号:1152 难度:中第2章int k=8567;printf("|%-6d|\n",k);的输出为|008567|.答案:N第4题(1.0分)题号:1132 难度:中第2章C程序中的关键字必须小写,其他标识符不区分大小写.答案:N第5题(1.0分)题号:1174 难度:中第3章在C程序中,赋值运算符的优先级最低.答案:N第6题(1.0分)题号:1168 难度:中第3章若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真".答案:Y第7题(1.0分)题号:1164 难度:中第3章7&3+12的值是15.答案:N第8题(1.0分)题号:1173 难度:中第3章在C程序中,逗号运算符的优先级最低.答案:Y第9题(1.0分)题号:1172 难度:中第3章关系运算符<= 与 == 的优先级相同.答案:N第10题(1.0分)题号:1184 难度:中第4章设x、t均为int型变量,则执行语句"x=10;t=x&&x<=10;"后,t的值为1.答案:Y第11题(1.0分)题号:1181 难度:中第4章若a是实型变量,C程序中允许以下赋值a=10;因此,实型变量中允许存放整型数据. 答案:N第12题(1.0分)题号:1179 难度:中第4章若a和b的类型相同,在执行了a=b;后,b中的值将丢失.答案:N第13题(1.0分)题号:1178 难度:中第4章x*=y+8 等价于 x=x*(y+8).答案:Y第14题(1.0分)题号:1180 难度:中第4章若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变. 答案:Y第15题(1.0分)题号:1182 难度:中第4章若a是实型变量,在执行了a=5;后,a将变为整型变量.答案:N第16题(1.0分)题号:1185 难度:中第4章设x、t均为int型变量,则执行语句"x=10;t=x&&x>10;"后,t的值为0.答案:Y第17题(1.0分)题号:1186 难度:中第4章在C程序中,j++;是一条赋值语句.答案:Y第18题(1.0分)题号:1197 难度:中第5章与 if(E) 语句中的(E)等价的表达式是 (E==0).答案:N第19题(1.0分)题号:1187 难度:中第5章C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的. 答案:N第20题(1.0分)题号:1198 难度:中第5章在C语言中,逻辑"真"等价于不等于0的数.答案:Y第21题(1.0分)题号:1189 难度:中第5章if后面的控制表达式可以不用括号括起来.答案:N第22题(1.0分)题号:1194 难度:中第5章int i=3,j=5; if(i>j);是正确的.答案:Y第23题(1.0分)题号:1190 难度:中第5章if语句后面的控制表达式只能使用关系表达式或逻辑表达式.答案:N第24题(1.0分)题号:1201 难度:中第5章开关语句switch最多可形成三个分支.答案:N第25题(1.0分)题号:1200 难度:中第5章int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A.答案:N二、单选共25题(共计25分)第1题(1.0分)题号:6170 难度:中第1章C语言程序的基本单位是().A:函数B:过程C:子程序D:子例程答案:A第2题(1.0分)题号:5214 难度:中第1章一个C语言程序是由().A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B第3题(1.0分)题号:5284 难度:中第2章若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是().ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k);A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%dD:61,141,k=%12答案:C第4题(1.0分)题号:5232 难度:中第2章C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().A:必须为字母B:必须为下划线C:必须为字母或下划线D:可以是字母,数字和下划线中任一字符答案:C第5题(1.0分)题号:5343 难度:中第3章若给定条件表达式(M)?(a++):(a--),则其中表达式M().A:和(M==0)等价B:和(M==1)等价C:和(M!=0)等价D:和(M!=1)等价答案:C第6题(1.0分)题号:6234 难度:中第3章语句printf("%d",(a=2)&&(b=-2));的输出结果是().A:无输出B:结果不确定C:-1D:1答案:D第7题(1.0分)题号:5301 难度:中第3章C语言能正确处理的指数是().A:8.5e4288B:e-32C:123000000000D:4.5e-5.6答案:C第8题(1.0分)题号:5350 难度:中第3章下列运算符中优先级最高的是().A:<B:+C:&&D:!=答案:B第9题(1.0分)题号:5304 难度:中第3章逻辑运算符两侧运算对象的数据类型().A:只能是0或1B:只能是0或非0正数C:只能是整型或字符型数据D:可以是任何类型的数据答案:D第10题(1.0分)题号:5384 难度:中第4章以下不符合C语言语法的赋值语句是().A:j++;B:j=j=5;C:k=2*4,k*4;D:y=float(j);答案:D第11题(1.0分)题号:5374 难度:中第4章若有以下定义:char s='\092'; 则该语句().A:使s的值包含1个字符B:定义不合法,s的值不确定C:使s的值包含4个字符D:使s的值包含3个字符答案:B第12题(1.0分)题号:5380 难度:中第4章先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(). A:c='a';B:c="a";C:c="97";D:C='97'答案:A第13题(1.0分)题号:6244 难度:中第4章能正确表示a和b同时为正或同时为负的逻辑表达式是().A:(a>=0||b>=0)&& (a<0||b<=0)B:(a>=0&&b>=0)&& (a<0&&b<=0)C:(a+b>0)&& (a+b<=0)D:a * b >0答案:D第14题(1.0分)题号:5379 难度:中第4章下列语句的结果是().main(){ int j;j=3;printf("%d,",++j);printf("%d",j++);}A:3,3B:3,4C:4,3D:4,4答案:D第15题(1.0分)题号:6246 难度:中第4章下列关于switch语句和break语句的结论中,正确的是().A:break语句是switch语句中的一部分B:在switch语句中可以根据需要使用或不使用break语句C:在switch语句中必须使用break语句D:break语句只能用于switch语句中答案:B第16题(1.0分)题号:6251 难度:中第4章有一函数如图: ,以下程序段中不能根据x值正确计算出y值的是().A:if(x >0) y =1;else if(x = =0) y =0;else y = -1;B:y =0;if(x >0) y =1;else if (x <0) y = -1;C:y=0;if(x > =0)if(x >0) y =1;else y =-1;D:if(x > =0)if(x >0) y =1;else y =0;else y = -1;答案:C第17题(1.0分)题号:5370 难度:中第4章若变量均已正确定义并赋值,以下合法的C语言赋值语句是().A:x=n/2.5;B:x==5;C:x+n=I;D:5=x=4+1;答案:A第18题(1.0分)题号:5400 难度:中第5章int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第19题(1.0分)题号:5401 难度:中第5章int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为().A:1B:2C:3D:不一定答案:B第20题(1.0分)题号:6274 难度:中第5章有以下程序段:int k=0;while(k=1)k++;while循环执行的次数是().A:无限次B:有语法错误,不能执行C:一次也不执行D:执行一次答案:A第21题(1.0分)题号:6275 难度:中第5章以下程序中,while循环的循环次数是().#include<stdio.h>void main(){ int i=0;while(i<10){ if(i<1) continue;if(i= =5) break;i++; }……}A:1B:10C:6D:死循环,不能确定次数答案:D第22题(1.0分)题号:5407 难度:中第5章在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().A:只能用逻辑表达式B:只能用关系表达式C:只能用逻辑表达式或关系表达式D:可用任意表达式答案:D第23题(1.0分)题号:6256 难度:中第5章下列程序执行后的输出结果是().void main(){ int k=5;while(--k) printf("%d",k-=3);printf("\n"); }A:1B:2C:4D:死循环答案:A第24题(1.0分)题号:5408 难度:中第5章执行下列语句后的输出为().int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A:****B:%%%%C:%%%%cD:有错,执行不正确答案:A第25题(1.0分)题号:6268 难度:中第5章在while(x)语句中的x与下面条件表达式等价的是().A:x= =0B:x= =1C:x!=1D:x!=0答案:D三、程序填空共3题(共计30分)第1题(10.0分)题号:961 难度:中第3章/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为: 2,在程序中定义的变量名要与公式的变量相同)。
C语言期末考试试卷附参考答案
一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。
A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。
A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。
A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。
广西大学大一计算机专业C语言考试试卷及答案 (8)
广西大学20 -20 学年第学期《C语言程序设计》期末考试试卷(A卷120分钟)年级院系专业姓名学号座位号一. 单项选择题:(每题2分,共40分)下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。
答在试卷上不得分。
1.下面程序段执行后,a的值是______。
int a;printf("%d \n", (a=3*5, a*4, a+5) );A)60 B)20 C)15 D)102.下列程序段的输出是______。
int x=023;printf("%d \n", --x );A)19 B)18 C)23 D)223.执行下列语句后,a的值是______。
int a=8;a+=a-=a*a;A)-240 B)64 C)112 D)-112 4.执行下列语句后,输出的值是______。
int x=6;printf("%d,%d,%d\n",x,x++,--x);A)5,5,5 B)6,5,5 C)7,6,5 D)5,6,5 5.指出下列程序段所表示的逻辑关系是______。
if(a<b){if(c==d)x=1;}elsex=2;A)若a<b且c=d,则x=1;若a>=b且c!=d,则x=2。
B)若a<b且c=d,则x=1;若a>=b,则x=2。
C)若a<b且c=d,则x=1;若a<b且c!=d,则x=2。
D)若a<b且c=d,则x=1;若c!=d,则x=2。
6.下列程序段的执行结果是______。
int i,x;for(i=1,x=1;i<=20;i++){if(x>=10) break;if(x%2==1){x+=5;continue;}x-=3;}printf("%d,%d\n",x,i);A)6,4 B)7,5 C)10,6 D)14,77.下列程序的执行结果是______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++期末考试试卷及答案1一、单项选择题(每题2分,共40分)1. ______不是属于面向对象程序设计的特性A. 抽象性B. 数据相关性C. 多态性D. 继承性2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的______A. 类B. 虚函数C. 运算符重载D. 模板3. C++与C语言最根本的不同之处在于_______A. 使用了类B. 能够实现变量自动初始化C. 支持软件重用D. 支持接口重用4. 动态内存分配的主要目的是_______A. 使程序按动态联编方式运行B. 正确合理的使用内存C. 提高程序的运行速度D. 提高程序的可维护性5. 在C++函数的形参前加const关键字,是为了提高函数的_______A. 数据封装性B. 可理解性C. 可维护性D. 可重用性6. 函数重载的目的是________A. 实现共享B. 使用方便,提高可读性C. 提高速度D. 减少空间7. 从程序片断:char name[] = "C++"; course(name);可判断函数course的调用采用的是_______A. 传值调用B. 带缺省参数值的函数调用C. 引用调用D. 传址调用8. 用来说明类中公有成员的关键字是________9. 如果一个类的成员函数print()不修改类的数据成员值,则应将其声明为A. void print() const;B. const void print();C. void const print();D. void print(const);10. 下列关于构造函数的论述中,不正确的是_______A. 构造函数的函数名与类名相同B. 构造函数可以设置默认参数C. 构造函数的返回类型缺省为int型D. 构造函数可以重载11. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是______A. intB. int *C. AD. A *12. 内存泄漏是指_______A. 内存中的数据出现丢失B.试图释放一个已经释放了的动态分配的堆内存C. 函数中局部变量所占的栈内存没有及时回收D. 动态分配的堆内存在程序退出后始终被占用A. 私有成员数据B. 私有成员函数C. 公有成员数据D. 公有成员函数14. 友元函数_______A. 可以被声明为constB. 没有this指针C. 可以用类名或对象名来调用D. 只能用对象名来调用15. 若一个类的成员函数前用static关键字修饰,则该成员函数________A. 可以被声明为constB. 没有this指针C. 可以访问该类的所有成员D. 只能用对象名来调用16. C++是用_______实现接口重用的数17. 公有继承的派生类对象可以访问其基类的________A. 公有成员B. 公有成员及受保护成员C. 受保护成员D. 私有成员18. 设置虚基类的目的是________A. 简化程序B. 使程序按动态联编方式运行C. 提高程序运行效率D. 消除二义性19. 下列关于纯虚函数和抽象类的描述中,不正确的是________A. 纯虚函数是一个没有具体实现的虚函数B. 抽象类是包括纯虚函数的类C. 抽象类只能作为基类,其纯虚函数的实现在派生类中给出D. 可以定义一个抽象类的对象20. 关于运算符重载的不正确的描述是________A. 运算符重载函数是友元函数B. 体现了程序设计的多态性C. 增加新的运算符D. 使运算符能对对象操作二、下面的程序是关于CBook类的一个定义,试改正程序中的错误。
(共10分)#include <iostream.h>#include <math.h> #inlcude <string>class CBook{private:char *p_book;public: p_book=new char[strlen(p_val)+1]CBook(const char *p_val) { p_book = new char[strlen(p_val)]; strcpy(p_book, p_val); }void print() const { cout << p_book << endl; }~CBook() { delete [] p_book; }};void main(){char book_title[60];CBook *p_book_obj;cout << “Enter book title: ”;p_book_obj = &abook;p_book_obj->print();}三、根据如下所示程序,回答下列问题(共10分)#include <iostream.h>class CJournal{public:CJournal() { cout << “Journal default constructor” << endl; }virtual void subscribe() = 0;void read() { cout << “Read paper” << endl; }~CJournal() { cout << “Journal default destructor” << endl; }};class CComputerDesign : public CJournal{public:CComputerDesign () {cout << “《Computer Design》default constructor” << endl; } virtual void subscribe() { cout << “Subscribing 《Computer Design》” << endl; } void read() {cout << “Reading 《Computer Design》” << endl; }~CComputerDesign() { cout << “《Computer Design》default destructor” << endl; } };void main(){CComputerDesign journal1;CJournal *p_journal;journal1.subscribe();journal1.read();// ①p_journal = &journal1;p_journal->subscribe();p_journal->read();}1.当程序运行到①处时,写出程序运行的输出结果 (3分)2. 当程序结束时,程序会在第1问的基础上增加哪些输出。
(4分)3. 若在主函数中定义一个对象CJournal journal;程序编译时会否出错?为什么?(3分)四、编程题(共40分)1. 定义一个商品类CGoods,其中包含商品号(long no)、商品名(char *p_name)、商品价格(double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。
(10分)#include <iostream>#include <string.h>using namespace std;class CCourse{private:long no;char *p_name;float credit;CCourse(const CCourse &r_course);~CCourse(){delete p_name;}void print() const;};CCourse:CCourse(long no_val,char p_val,float credit_val){no=no_val;p_name=new char[strlen(p_val)+1];strcpy(p_name,p_val);credit=credit_val;}CCourse:CCourse(const CCourse &r_course){no=r_course.no;p_name=new char[strlen(r_course.p_name)+1];strcpy(p_name,r_course.p_name);credit=r_course.credit;}void CCourse:print() const{cout<<"Course number"<<no<<endl;cout<<"Course name"<<p_name<<endl;cout<<"Course credit"<<credit<<endl;}2. 为CGoods类增加一个商品总数(int count)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。
做如上修改后,重新实现CGoods 类(与第1问相同的不用再重复)。
(10分)3. 为CGoods类定义小于运算符(‘<’)和不小于运算符(‘>=’)两个运算符重载函数。
CGoods 类对象大小的比较是根据其商品价格(price)的值的大小来实现的。
(与第2问相同的不用再重复)(10分)4. 以CGoods类为基类,派生出服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_brand)和表示用途的成员函数(void usedFor()——可分别输出一条表示服装和食品用途的信息)。
写出CClothes类和CFood类的完整定义(包括构造、析构和usedFor()成员函数的实现)。
(10分)五、附加题(共30分。
注意:确保基本题成绩能达到75分以上,再尝试做附加题!)1. 在基本题第四题的基础上,在CGoods类增加总商品数(long total_goods)和商品总价格(double total_price)两个数据成员,以及相应的获取这两个数据成员值的成员函数getTotalGoods()和getTotalPrice()。