C++ 谭浩强 总复习试卷2
谭浩强《C程序设计》专业课复习题库-章节题库(选择结构程序设计)
圣才电子书 十万种考研考证电子书、题库视频学习平台
来描述包含多种基本类型的复杂对象。D 项错误入的。答案选择 D 选项。
3.以下选项中,能表示逻辑值“假”的是( )。 A.1 B.0.000001 C.0 D.100.0 【答案】C 【解析】在 C 语言中,没有与门的“逻辑值”,而是用非 0 表示“真”,用 0 表示“假”。 答案选择 C 选项。
2.以下关于 C 语言数据类型使用的叙述中错误的是( )。 A.若要准确无误差地表示自然数,应使用整数类型 B.若要保存带有多位小数的数据,应使用双精度类型 C.若要处理如“人员信息”等含有丌同类型的相关数据,应自定义结构体类型 D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 【答案】D 【解析】A 项正确,整数的表示是丌存在误差的。B 项正确,float 类型称为单精度类 型,double 类型称为双精度类型,一般系统中,为 float 类型的变量分配 4 个字节的存储 单元,为 double 类型的变量分配 8 个字节的存储单元。C 项正确,struct 结构体,可以用
4.下列关系表达式中,结果为“假”的是( )。 A.(3+4)>6 B.(3!=4)>2 C.3<=4||3 D.(3<4)==1 【答案】B 【解析】A 项,先执行 3+4=7,7>6,结果为真;B 项,先执行 3!=4 为真,即为 1, 1>2 结果为假;C 项,先执行 3<=4 结果为真,即 1,再逻辑或运算只要左边值为 1,就丌 在执行右边运算,结果为真;D 项,先执行 3<4 结果为真,即为 1,再执行 1==1,结果 为真。答案选择 B 选项。
10.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是( )。 A.x%2==1 B.x/2 C.x%2!=0 D.x%2==0 【答案】D
C程序设计谭浩强第四版试卷试卷及答案
C程序设计谭浩强第四版试卷试卷及答案Last updated on the afternoon of January 3, 2021一、单项选择题(20题,每题2分,共40分)1.一个C语言程序是由组成的。
A.主程序B.子程序C.函数D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为。
A.'a'<=c1<='z'B.(c1>=a)&&(c1<=z)C.('a'<=c1)||('z'>=c1)D.(c1>='a')&&(c1<='z')3.为了判断两个字符串s1和s2是否相等,应当使用。
(s1==s2)(s1=s2)(strcpy(s1,s2))(strcmp(s1,s2)==0)4.设a,b都是int型变量,则表达式:(a=2,b=5,a>b?a++:b++,a+b)的值为。
5.设x、y和t均为int型变量,则以下语句:t=x;x=y;y=t;的功能是。
A.把x和y按从大到小排列?B.把x和y按从小到大排列C.无确定结果?D.交换x和y中的值6.下面标识符中,合法的用户标识符为。
#Ad?7.循环语句while(!E);中的表达式!E等价于。
!=0?!=1?==0?==18.设有以下语句,则不是对a数组元素的正确引用,其中0≤i<10。
inta[10]={0,1,2,3,4,5,6,7,8,9};int*p=a;供选择的答案是:[p-5]B.*(&a[i])[i]D.*(a+i)9.若用数组名作为函数调用的实参,传递给形参的是。
A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数10.下面四段程序中,不是死循环的程序段是。
──────—───┬───────────────A.inti=100;k=0;while(1)do{++k;{i=i%100+1;}while(k>=0);if(i>100)───────────────break;s=3379;}│while(s);──────────┤s++;(;;);──────────┴───────────────11.在一个文件中定义的全局变量的作用域为。
c程序设计第五版谭浩强考研题库
c程序设计第五版谭浩强考研题库C程序设计是一门基础而重要的计算机科学课程,谭浩强教授的《C程序设计》第五版是许多考研学生的首选教材。
以下是根据该书内容整理的考研题库,供同学们复习使用。
C程序设计第五版谭浩强考研题库一、选择题1. C语言的基本数据类型包括哪些?A. 整型(int)B. 浮点型(float)C. 字符型(char)D. 所有选项2. 以下哪个是C语言的合法标识符?A. 3variableB. variable3C. variable-3D. variable#3二、填空题1. C语言中,字符常量可以用单引号括起来,例如 'A' 是一个______类型的常量。
2. 在C语言中,表达式 `(a = 3 * 5) / 2` 的值是 ______。
三、简答题1. 简述C语言中数组的定义和初始化方法。
2. 解释C语言中的指针和引用的区别。
四、编程题1. 编写一个C程序,实现求圆的面积。
要求使用函数实现计算,并通过主函数调用该函数。
2. 设计一个程序,实现字符串的反转。
要求使用指针操作。
五、综合应用题1. 假设你有一个结构体数组,存储了一系列学生的姓名和成绩,请编写一个程序,按照成绩从高到低对学生进行排序。
2. 编写一个C程序,实现简单的学生信息管理系统,包括学生信息的录入、显示、修改和删除功能。
结束语本题库旨在帮助同学们更好地掌握C程序设计的基本概念和编程技巧,为考研做好充分准备。
希望同学们能够通过练习这些题目,加深对C语言的理解和应用能力。
请注意,实际的考研题库可能包含更多的题目和不同类型的问题,建议同学们结合实际考试大纲和历年真题进行复习。
同时,编程实践是提高编程能力的关键,希望同学们能够勤加练习,不断进步。
祝同学们考研顺利,取得理想的成绩。
谭浩强c语言试题及答案解析
谭浩强c语言试题及答案解析1. 选择题A. 以下哪个选项是C语言中合法的变量名?A) 123abcB) intC) _myVarD) my-var答案:C2. 填空题A. 在C语言中,定义一个整型变量的关键字是______。
答案:int3. 判断题A. C语言中,数组的索引是从0开始的。
答案:正确4. 简答题A. 请简述C语言中指针的概念。
答案:指针是C语言中的一种数据类型,它存储了另一个变量的内存地址。
通过指针,程序可以间接访问和操作变量。
5. 编程题A. 编写一个C语言程序,实现求两个整数的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum); return 0;}```6. 阅读程序题A. 阅读以下C语言程序,并回答问题:```c#include <stdio.h>int main() {int a = 10, b = 20;printf("%d\n", a + b);return 0;}```问题:程序的输出结果是什么?答案:程序的输出结果是30。
7. 改错题A. 以下C语言程序有错误,请找出并改正。
```c#include <stdio.h>int main() {int a = 5;printf("a的值是:%d", a);return 0;}```错误:printf函数中缺少换行符。
改正:```c#include <stdio.h>int main() {int a = 5;printf("a的值是:%d\n", a);return 0;}```8. 综合题A. 请编写一个C语言程序,实现以下功能:1. 从键盘输入一个字符串。
谭浩强C语言试题库(完整版)
谭浩强C语言试题库(完整版)谭浩强C语言试题库一、单项选择第一章 C语言概述(1) 一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束.B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.C、本程序的MAIN函数开始,到本程序的最后一个函数结束.D、本程序文件的第一个函数开始,到本程序的MAIN函数结束.(2) 以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面.B、 C程序的每行中只能写一条语句.C、 C语言本身没有输入输出语句.D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误.(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面.B、必须在系统调用的库函数的后面C、可以在任意位置.D、必须在最后面(4) 一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5) 以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1) 若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x =( i=4, j=16, k=32)A、4B、16C、32D、52(2) 下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3) 下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4) 若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5) 已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf 函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、sc anf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序 .A) 有语法错误不能通过编译B) 可以通过编译但不能直接通过连接C) 输出* * *D) 输出$ $ $(4)以下程序的运行结果是 .main(){int m=5;if(m++>5)printf(“%d\n”,m);else printf(“%d\n”,m——);}A) 4B) 5C) 6D) 7(5) 为了避免在嵌套的条件语句中if-else中产生二义性,c语言规定:else子句总是与相配对.A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if第五章循环控制(1)设有程序段int k=10while (k=0) k=k-1则下面描叙正确的是 .A) while (k=0) k=k-1;B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次(2)下面程序段的运行结果是 . int n=0;while(n++<=2); printf(“%d”,n);A) 2B) 3C) 4D) 有语法错(3)C语言中while和do-while循环的主要区别是 .A) do-while的循环体至少无条件执行一次B) while 的循环控制条件比do-while的循环控制条件严格C) do-while允许从外部转到循环体内D) do-while允许从外部转到循环体内(4)以下能正确计算1*2*3*…*10的程序段是 .A) do {i=1;s=1;s=s*i;i++;}while(I<=10);B) do {i=1;s=0;s=s*i;i++;}while(I<=10);C) i=1;s=1;do {s=s*i;i++;}while(I<=10);D) i=1;s=0;do {s=s*i;i++;}while(I<=10);第六章数组(1)在c语言中,引用数组元素时,其数组下标的数据类型允许是____.A) 整型常量B) 整型表达式C) 整型常量或整型表达式D) 任何类型的表达式(2)以下能对二维数组a进行正确初始化的语句是____.A) int a[2][ ]={{1,0,1},{5,2,3,}};B) int a[ ][3]={{1,2,3},{4,5,6}};C) int a[2][4]={1,2,3,},{4,5},{6}};D) int a[ ][3]={{1,0,1},{},{1,1}};)(3)若有说明:int a[3][4]={0};则下面正确的叙述是____.A) 只有元素a[0][0]可得到初值0B) 此说明语句不正确C) 数组a中各元素都可得到初值,但其值不一定为0D) 数组a中每个元素均可得到初值0(4)下面程序___(每行程序前面的数字表示行号).1 main()2 {3 float a[10]={0};4 int i5 for(i=0;i<3;i++) scanf(“%d”,&a[i];6 for(i=1;i<10;i++) a[0]=a[0]+a{i};7 printf(“%f\n”,a[0]);8 }A) 没有错误B) 第3行有错误C) 第5行有错误D) 第7行有错误(5)若二维数组a有m列,则计算机一元素a[i][j]在数组中位置的公式为____.(假设a[0][0]位于数组的第一个位置上.)A) i*m+jB) j*m+iC) i*m+j-1D) i*m+j+1第七章函数(1)以下正确的函数定义形式是 .A)double fun(int x,int y)C) double fun(int x;int y)D) double fun(int x,int y)E) double fun(int x,y);(2) 以下正确的函数形式是 .A) double fun(int x,int y){z=x+y; return z;}B) fun(int x,y){int z;return z;}C) fun(x,y){int x,y; double z;z=x+y;return z;}D) double fun(int x,int y){double z;z=x+y;return z;}(3) C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)传递方式(4)C语言允许函数值型缺省定义,此时该函数值隐含的类型是 .A)float型B)int型C)long型D)double型(5)下面函数调用语句含有实参的个数为. func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)5第八章编译预处理命令(1)请读程序:#define ADD(x) x+xmain(){int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运行结果是 .A) sum=9B) sum=10C) sum=12D) sum=18(2) 以下程序的运行结果是 . #define MIN(x,y) (x)<(y)? (x)+(y) main(){int I=10,j=15,k;k=10*MIN(I,j); printf(“%d\n”,k);。
C 谭浩强 总复习试卷2
5、下面对友元的错误描述是()。
A.关键字friend用于声明友元
B.一个类中的成员函数可以是另一个类的友元函数
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
6、以下运算符中,不能在C++中重载的是()。
A.?:B. +C. -D. <=
13、下面对静态数据成员的特征中,说法错误的是()。
A.静态数据成员要在类体外进行初始化
B.静态数据成员不是所有对象所共用的
C.应用静态成员时,要在静态数据成员名前加<类名>和作用域运算符
D.说明静态数据成员时前边要加修饰符static
三、判断题
1、静态数据成员可以通过类名或对象名引用。
2、静态数据成员可以在类内或类外进行初始化。
3、在静态成员函数中可以访问本类中非静态的数据成员。
4、类的静态成员函数的初始化工作要放在类外进行。
5、若A是B的友元类,B是C的友元类,则A是C的友元类。
6、通过运算符重载,可以定义新的运算符。
7、C++中的所有运算符都能被重载。
8、运算符重载不能改变操作数的个数。
9、运算符重载不能改变其优先级与结合性。
C. friend A operator+ ( A &, double);
D. friend A operator+ ( A & , A &);
10、C++中对单目运算符进行重载的函数需要传入参数的个数为()。
A. 0B. 1C. 2D. 3
11、下列友元关系的描述中正确的是( )。
#C语言第二)谭浩强习题解答
《C程序设计》习题解答第一章1.5main(>{printf(" ******************************\n">。
printf("\n">。
printf(" Very Good!\n">。
printf("\n">。
printf((" ******************************\n">。
}1.6main(>{int a,b,c,max。
printf("input a,b,c:\n">。
scanf("%d,%d,%d",&a,&b,&c>。
max=a。
if(max<b> max=b。
if(max<c> max=c。
printf("max=%d",max>。
}第二章习题解略第三章第三章要点:1、C语言的数据类型 P38 图2、常量、变量的约定及各类数据常量、变量使用的约定。
3、运算符及表达式的约定和应用。
难点:自加、自减的用法及其运算后的值。
逗号运算符及逗号表达式的用法3.3(1>、<10)10=(12>8=(a>16(2>、<32)10=(40>8=(20> 16(3>、<75)10=<113)8=(4b>16(4>、<-617)10=<176627)8=(fd97>16(5>、<-111)10=(177621>8=(ff91>16(6>、<2483)10=<4663)8=(9B3>16(7>、(-28654>10=(110022>8=(9012>16(8>、(21003>10=(51013>8=(520B>163.4略3.5字符常量是一个字符,用单引号括起来。
谭浩强C语言程序设计第三版第1、2、3章练习题
谭浩强C语言程序设计第三版第1、2、3章练习题C语言试题库(第1、2、3章)一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置为______A_____。
A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照顺序排列D、其他函数必须在前,主函数必须在最后2、下列四个叙述中,正确的是__________D_____。
A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是______C_________。
A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以含零个或多个子函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面属于C语言关键字的是________ABC____。
A、intB、typedefC、enumD、unien5、以下叙述不正确的是______A__D____。
A、分号是C语句的必要组成部分B、C程序的注释可以写在语句的后面C、函数是C程序的基本单位D、主函数的名字不一定用mian表示6、C语言中允许的基本数据类型包括___B____。
A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为_______A_。
A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是_____C______。
A、?\97?B、”A”C、?\t?D、”\0”9、在C语言中,5种基本数据类型的存储空间长度的排列顺序为:_____A、char<int<="float<double</p" int="">B、char=int<="float<double</p" int="">C、char<intD、char=int=<="float<double</p" int="">10、在C语言中,合法的长整型常数是___A_________。
c程序设计谭浩强考试题及答案
c程序设计谭浩强考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义变量类型的关键字是:A. intB. floatC. doubleD. char答案:A2. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C3. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B4. C语言中,用于输出的函数是:A. scanf()B. printf()C. getchar()D. putchar()答案:B5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[5] = "Hello";B. char str[5] = {'H', 'e', 'l', 'l', 'o'};C. char str[5] = "Hello"; // 错误:字符串长度超过数组长度D. char str[] = "Hello"; // 正确:数组长度自动根据字符串长度确定答案:D6. C语言中,以下哪个选项是正确的数组定义方式?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3, 4};D. int array[5] = {1, 2, 3, 4, 5, 6}; // 错误:元素个数超过数组长度答案:B7. 在C语言中,以下哪个选项是正确的函数定义方式?A. int function() { return 0; }B. int function() { return 1; }C. int function() { return 2; }D. int function() { return 3; }答案:B8. C语言中,用于计算两个数的和并返回结果的函数是:A. sum()B. add()C. plus()D. calculate()答案:B9. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... } // 错误:缺少括号C. if (x > 0) { ... } else { ... }D. if x > 0 { ... } else { ... } // 错误:缺少括号答案:C10. C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++) { ... }B. for (int i = 0; i <= 10; i++) { ... }C. for (int i = 0; i < 10; i--) { ... } // 错误:递减应在循环体内部D. for (int i = 0; i < 10; i++) { ... } // 正确答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10的语句是:int a = 10;2. C语言中,用于计算两个数的差并返回结果的函数是:int difference(int x, int y) { return x - y; }3. 在C语言中,用于输入的函数是:scanf();4. C语言中,用于计算两个数的除法并返回结果的函数是:int divide(int x, int y) { return x / y; }5. 在C语言中,用于计算两个数的乘积并返回结果的函数是:int multiply(int x, int y) { return x * y; }6. C语言中,用于输出一个字符的函数是:putchar();7. 在C语言中,用于输出一个字符串的函数是:printf();8. C语言中,用于计算两个数的模并返回结果的函数是:int modulus(int x, int y) { return x % y; }9. 在C语言中,用于计算两个数的加法并返回结果的函数是:intadd(int x, int y) { return x + y; }10. C语言中,用于计算两个数的指数并返回结果的函数是:double power(double base, int exponent) { return pow(base, exponent); }三、编程题(每题10分,共20分)1. 编写一个C语言程序,计算并输出两个整数的和。
c程序设计谭浩强期末考试题
一、填空题1.输入一个不包含空格的字符串,将字符串反序输出,如:“abc12”的输出为“21cba”。
#include <>void f(char *p){char *p1, *p2;char c;p1=p2= ;while( *p2++);;while ( ){c=*p1;*p1= ;*p2= ;p1++;p2--;}}void main(){char s[200];printf(“输入一个字符串:”);scanf( );f(s);printf(“字符串反序:%s\n”,s);}2.输入1个长整数,求各位数字的平方和。
例如:输入 123,输出14。
#include <>void main( ){ int digit;long in,s;scanf("%ld", &in);;;while(in>0){;s=s+digit*digit;;}printf("sum=%ld\n", s);}二、程序阅读题1.写出下面程序运行结果(5分)#include <>#define MSIZE 8void main(){char im[MSIZE][MSIZE+1]={ “********”,“########”,“#**#***#”,“####***#”,“********”,“#*******”,“********”,“########”};int i,j;for(j= MSIZE -1;j>=0;j--){for(i=0;i<MSIZE;i++)printf(“%c”,im[i][j]);printf(“\n”);}}2.写出下面程序运行的输出结果(5分)#include <>void main(){char *str1="", *str2=”123424315”;int x=0, i;for(i=0;str1[i]!='\0'&& str2[i]!='\0';i++) if(str1[i]==str2[i]) x++;printf("%d\n",x);3.写出下列程序的输出结果(4分)#include <>main(){ int a=4,b=6;printf("a=%d\n",a<<1);printf("b=%d\n",b>>1);}4. 写出调用函数f(-123)的输出结果是多少。
C语言程序设计基础(谭浩强)习题
第一章 C 语言概述一、选择题1.C 语言规定,必须用作为主函数名。
A)Function B)include C)main D)stdio2.一个 C 程序可以包含任意多个不同名的函数,但有且仅有一个,一个 C 程序总是从开始执行。
A)过程 B)主函数 C)函数 D)include3.是C 程序的基本构成单位。
A)函数 B)函数和过程 C)超文本过程 D)子程序4.下列说法正确的是。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对5.下列说法正确的是。
A)main 函数必须放在C 程序的开头B)main 函数必须放在C 程序的最后C)main函数可以放在C程序中间部分,执行C程序时是从程序开头执行的D)main 函数可以放在C 程序中间部分,执行C 程序时是从main 函数开始的6.下列说法正确的是。
A)在执行C 程序时不是从main 函数开始的B)C 程序书写格式严格限制,一行内必须写一个语句C)C 程序书写格式自由,一个语句可以分写在多行上D)C 程序书写格式严格限制,一行内必须写一个语句,并要有行号7.在 C 语言中,每个语句和数据定义是用结束。
A)句号 B)逗号 C)分号 D)括号8.下列字符串是合法的自定义标识符的是。
A)_HJ B)9_student C)int D)LINE 19.不是C 语言提供的合法关键字。
A)switch B)print C)case D)default10.C 语言提供的合法关键字是。
A)break B)print C)funiton D)end11.C 语言提供的合法关键字是。
A)continue B)procedure C)begin D)append二、填空题1.一个 C 程序至少包含一个,即。
2.一个函数由两部分组成,它们是和。
C++_谭浩强_总复习试卷
{
A a;
a.setx(10); a.sety(5);
cout<<a.getx()<<’\t’<<gety()<<endl;
cout<<a.f1()<<’\t’<<a.f2()<<endl;
习题一
一、填空题
1、面向对象的程序设计有四大特点,它们是抽象、封装、( 继承 )、( 多态 )。
2、类中的成员使用特定的关键字指定不同的访问特性,其中(公用)成员是提供给外部的接口,在类中和类外可见。
A. 类是一种类型,它封装了数据和操作
B. 对象是类的实例
C. 一个类的对象只有一个
D. 一个对象必属于某个类
9、在类定义的外部,可以被访问的成员有( C )。
A. 所有类成员
B. private或protected的类成员
C. public的类成员
D. public或private的类成员
8、若类X中没有定义拷贝构造函数,则系统为类X定义的默认拷贝构造函数的原型为( X::X(X &x); )。
9、类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问属性( protected )。
10、假设一个类对象数组为a[m],其中m为常变量,当离开它的作用域时,系统自动调用该类析构函数的次数为( m )。
3、protected成员的访问权限:派生类( 能 )访问protected成员,派生类对象( 不能 )访问protected成员,本类的对象( 不能 )访问protected成员(填:能与不能)。
c语言试题 谭浩强
c语言试题谭浩强work Information Technology Company.2020YEARC语言期末考试试题(谭浩强版) 2011-7-8 20:552011-7-8 21:23 最佳答案 C语言期末考试试题2008年04月12日星期六 00:22一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer 代表的是()。
A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。
main( ){int i=010,j=10;printf("%d,%d\n",i++,j--);}A 11,9B 9,10C 8,10D 9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;A 125,6,31,1B 125,6,1,20C 125,6.666666,31,20D 125.534,6.666666,2,204.设i和k都是int类型,则for循环语句()。
for(i=0,k=-1;k=1;i++,k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。
main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case 'a':case 'b':case 'c':printf("%c,",c);break;default:printf("end");}}}A a,b,c,endB a,a,a,endC a,a,a,D a,b,c,6.函数调用语句:fseek(fp,-10L,2);的含义是()。
c语言谭浩强第1章至第3章测试试题
c语⾔谭浩强第1章⾄第3章测试试题湖南省洞⼝职业中专⾼三⽉考(⼀)计算机应⽤类专业C语⾔试题姓名:班次:时量:90分钟总分:130分⼀、单项选择题(在每⼩题的四个备选答案中选出⼀个正确答案,并将正确答案的号码填⼊题后括号中。
每⼩题2分,共90分)1、下列选项中,合法的C语⾔关键字是A) V AR B) cher C) integer D) default2、以下有4组⽤户标识符,其中合法的⼀组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define3、下列关于C语⾔⽤户标识符的叙述中正确的是A)⽤户标识符中可以出现在下划线和中划线(减号)B)⽤户标识符中不可以出现中划线,但可以出现下划线C)⽤户标识符中可以出现下划线,但不可以放在⽤户标识符的开头D)⽤户标识符中可以出现下划线和数字,它们都可以放在⽤户标识符的开头4、⼀个C程序的执⾏是从。
A) 本程序的main函数开始,到main函数结束B) 本程序⽂件的第⼀个函数开始,到本程序⽂件的最后⼀个函数结束C) 本程序⽂件的第⼀个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序⽂件的最后⼀个函数结束5、以下叙述正确的是。
A) 在对⼀个C程序进⾏编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前⾯C) C语⾔本⾝没有输⼊输出语句D) C程序的每⾏中只能写⼀条语句6、⼀个C语⾔程序是由。
A)⼀个主程序和若⼲个⼦程序组成 B) 函数组成C) 若⼲过程组成 D) 若⼲⼦程序组成7、以下所列的C语⾔常量中,错误的是A) 0xFF B) 1.2e0.5 C) 2L D) '\72'8、以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D11、以下选项中可以作为C语⾔合法整数的是A) 10110B B) 0386 C) 0Xffa D) x2a212、设有以下定义int a=0;double b=1.25;char c='A';#define d 2则下⾯语句中错误的是A) a++; B) b++; C) c++; D) d++;13、设x、y、t均为int型变量,则执⾏语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 114、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为A)0 B) 1 C) 2 D) 315、假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w则该程序运⾏后,m的值是:A) 4 B) 3 C) 2 D) 116、以下选项中,与k=n++完全等价的表达式是:A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+117、以下选项中⾮法的表达式是:A) 0<=x<100 B) i=j==0 C) (char)(65+3) D) x+1=x+118、有以下定义语句double a,b;int w;long c;若各变量已正确赋值,则下列选项中正确的表达式是A) a=a+b=b++ B) w%(a+b) C) (c+w)%(int)a D) w=a==b;19、若有定义:int a=8,b=5,c;执⾏语句c=a/b+0.4;后,c的值为:A)1.4 B) 1 C) 2.0 D) 220、若变量a是int类型,并执⾏了语句:a=’A’+1.6;,则正确的叙述是A)a的值是字符C B)a的值是浮点型C)不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上121、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A) 6.500000 B) 6 C) 5.500000 D) 6.00000022、以下合法的赋值语句是A) x=y=100 B) d--; C) x+y; D) c=int(a+b);23、以下⾮法的赋值语句是A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;24、设x、y均为整型变量,且x=10, y=3,则以下语句的输出结果是printf("%d,%d\n",x--,--y);A) 10,3 B) 9,3 C) 9,2 D)10,225、以下选项中,不正确的 C 语⾔浮点型常量是A. 160.B. 0.12C. 2e4.2D. 0.026、以下选项中,()是不正确的 C 语⾔字符型常量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题二一、填空题1、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为( )。
2、若需要把一个函数"void F();”定义为一个类AB的友元函数,则应在类AB 的定义中加入一条语句( )。
3、静态的成员既可以通过()引用,也可以通过()引用。
4、友元的作用是()。
5、友元函数不是当前类的(),而是独立于当前类的()。
6、()成员函数中不能直接引用类中说明的非静态成员。
7、在C++中不用重载就能直接作用于类对象的运算符是()、()。
8、C++中不能被重载的运算符有()、()、()、()和()。
9、运算符重载函数一般采用两种形式:重载为类的()和()形式。
10、为了区别单目运算符的前置和后置运算,在后置运算符进行重载时,额外添加一个参数,其类型是()。
11、静态成员函数要访问非静态成员时,必须通过()方式到相应的对象,再通过对象来访问。
12、()成员函数中不能直接引用类中说明的非静态成员。
13、静态数据成员进行初始化时必须使用作用域运算符()限制它所属的类。
14、如果说明类B是类A的友元类,则类B的所有成员函数都是类A的()。
15、若Y是X的友元,Z是Y的友元,则Z不一定是X的友元,这种情况说明友元关系是()的。
二、选择题1、以下关于友元函数的叙述中正确的是()。
A. 友元函数的实现必须在类的内部定义B. 友元函数是类的成员函数C. 友元函数破坏了类的封装性和隐藏性D. 友元函数不能访问类的私有成员2、一个类的友元函数或友元类可以访问该类的()。
A. 私有成员B. 保护成员C. 共有成员D. 所有成员3、下列对静态数据成员的描述正确的是()。
A. 静态数据成员不可以被类的对象调用B. 静态数据成员可以在类体内进行初始化C. 静态数据成员不能受protected控制符的作用D. 静态数据成员可以直接用类名调用4、下面对静态成员的不正确描述是()。
A. 静态成员不属于对象,是类的共享成员B. 静态数据成员要在类外定义和初始化C. 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D. 静态成员函数可以操作静态数据成员5、下面对友元的错误描述是()。
A. 关键字friend用于声明友元B. 一个类中的成员函数可以是另一个类的友元函数C. 友元函数访问对象的成员不受访问特性影响D. 友元函数通过this指针访问对象成员6、以下运算符中,不能在C++中重载的是()。
A. ?:B. +C. -D. <=7、下列关于运算符重载的说法错误的是()。
A. 运算符重载保持固有的结合性和优先级B. 可以对C++中的所有运算符进行重载C. 运算符重载不能改变操作数的个数D. 在运算符函数中不能使用缺省的参数值8、为了区别单目运算符的前置和后置运算,在后置运算符进行重载时,额外添加一个参数,其类型是()。
A. voidB. charC. floatD. int9、已知类A有一个带double型参数的构造函数,且将运算符“+”重载为该类友元函数,若如下语句A x(2.5),y(3.6),z(0);z=x+y;能够正常运行,运算符重载函数operator+ 应在类中声明为()。
A. friend A operator+ (double , double) ;B. friend A operator+ ( double , A &);C. friend A operator+ ( A &, double);D. friend A operator+ ( A & , A &);10、C++中对单目运算符进行重载的函数需要传入参数的个数为()。
A. 0B. 1C. 2D. 311、下列友元关系的描述中正确的是( )。
A. 可以传递B. 是类与类的关系C. 是一个类的成员函数与另一个类的关系D. 友元可以访问该类的所有成员,包括私有成员12、友元运算符obj1>ojb2被C++编译器解释为()。
A. operator>(obj1,obj2)B. >(obj1,obj2)C. obj2.operator>(obj1)D. obj1.operator>(obj2)13、下面对静态数据成员的特征中,说法错误的是()。
A. 静态数据成员要在类体外进行初始化B. 静态数据成员不是所有对象所共用的C. 应用静态成员时,要在静态数据成员名前加<类名>和作用域运算符D. 说明静态数据成员时前边要加修饰符static三、判断题1、静态数据成员可以通过类名或对象名引用。
2、静态数据成员可以在类内或类外进行初始化。
3、在静态成员函数中可以访问本类中非静态的数据成员。
4、类的静态成员函数的初始化工作要放在类外进行。
5、若A是B的友元类,B是C的友元类,则A是C的友元类。
6、通过运算符重载,可以定义新的运算符。
7、C++中的所有运算符都能被重载。
8、运算符重载不能改变操作数的个数。
9、运算符重载不能改变其优先级与结合性。
10、在运算符重载函数中不能使用缺省的参数值。
四、分析题1、# include<iostream.h>class T{public:T( int x) { a=x; b+=x;};Static void display( T c){cout<<”a=”<<c.a<<’\t’<<”b=”<<c.b<<enld;}private:int a;static int b;};int T::b=5;void main(){T A(3),B(5);T::display(A);T::display(B);}2、# include<iostream.h>class point{public:point(float x,float y){ a=x;b=y;cout<<”dian(“<<a<<”,”<<b<<”)”;}friend float d(point &A,point &B){return sqrt((A.a-B.a)*(A.a-B.a)+(A.b-B.b)*(A.b-B.b));} private:flaot a, b;};void main(){point p1(2,3);cout<<”dao”;point p2(4,5);cout<<”de ju li shi:”<<d(p1,p2)<<enld;}3、# include<iostream.h>class A{public:A() {a=5; }printa() {cout<<”A:a=”<<a<<endl;}private:int a;friend class B;};class B{public:void display1(A t){ t.a ++; cout<<”diaplay1:a=”<<t.a<<endl;};void display2(A t) { t.a--;cout<<”display2:a=”<<t.a<<endl;};};void main(){A obj1;B obj2;obj1.printa();obj2.display1(obj1);obj2.display2(obj2);obj1.printa();}4、#include<iostream.h>class point{public:point(int i,int j) {x=i;y=j;}void print() {cout<<'('<<x<<','<<y<<')'<<endl; }void operator+=(point p){x+=p.x;y+=p.y;}void operator-=(point p){x-=p.x;y-=p.y;}private:int x,y;};void main(){point p1(5,7),p2(4,3);p1.print();p2.print();p1+=p2;p1.print();p2-=p1;p2.print();}5、#include <iostream.h>class Vector{public:Vector(int i=0,int j=0) { x=i; y=j; }void Display() {cout<<"("<<x<<","<<y<<")"<<endl; }friend Vector operator + (Vector v1,Vector v2);private: int x,y;};Vector operator + (Vector v1,Vector v2){Vector tv; tv.x=v1.x+v2.x; tv.y=v1.y+v2.y;return tv;}int main(){Vector v1(1,2),v2(3,4),v3;v3=v1+v2; cout<<"v3="; v3.Display();return 0;}6、#include <iostream.h>class Point{private:float x,y;public:Point(float g_x=0,float g_y=0){x=g_x,y=g_y;}void show(){cout<<"("<<x<<","<<y<<")"<<endl;}Point operator +(Point p1){return Point(x+p1.x,y+p1.y);}};int main(){Point p1(3,5),p2(2,4);Point p=p1+p2;p.show();return 0;}五、编程题1、定义一个Student类,在该类定义中包括:一个数据成员score(分数)及两个静态数据成员total(总分)和count(学生人数) 。