长沙理工大学C++程序试卷6答案
- 格式:doc
- 大小:71.50 KB
- 文档页数:3
c程序期末考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项不是合法的变量名?A. myVariableB. 2variableC. _variableD. variable2答案:B2. 下列哪个是C语言中的整型常量?A. 3.14B. 'A'C. 100LD. "123"答案:C3. C语言中,以下哪个语句是正确的?A. int a = 5, b = 0;B. int a = 5;int b = 0;C. int a = 5int b = 0;D. int a = 5 b = 0;答案:A4. 在C语言中,以下哪个是正确的数组声明?A. int array[];B. int array[10] = {0};C. int array = {0, 1, 2, 3};D. int array[10] = 0;答案:B5. 下列哪个是C语言中的条件语句?A. if (condition)B. switch (expression)C. for (initialization; condition; increment)D. while (condition)答案:A6. 在C语言中,以下哪个是正确的函数声明?A. int function();B. void myFunction(int a, int b);C. int myFunction(int a, int b) { ... }D. Both A and B答案:D7. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello" + "World"D. "Hello", "World"答案:A8. 下列哪个是C语言中的循环结构?A. ifB. forC. whileD. Both B and C答案:D9. 在C语言中,以下哪个操作符用于计算两个数的乘积?A. +B. -C. *D. /答案:C10. 下列哪个是C语言中的位运算符?A. &&B. ||C. &D. <答案:C二、填空题(每题2分,共20分)1. 在C语言中,基本数据类型包括______、______、______、______和______。
湖南理工学院C++考试试题单选题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A、面向过程B、面向对象C、安全性D、复用性2、对类的构造函数和析构函数描述正确的是()。
A、构造函数可以重载,析构函数不能重载B、构造函数不能重载,析构函数可以重载C、构造函数可以重载,析构函数也可以重载D、构造函数不能重载,析构函数也不能重载3、下面对于友元函数描述正确的是()。
A、友元函数必须在类的内部定义并实现B、友元函数是类的成员C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员4、下面描述中,表达错误的是()A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承是基类中的private成员在派生类中仍是private的C、公有继承时基类中的protected成员在派生类中仍是protected的D、私有继承时基类中的public成员在派生类中是private的5、以下()成员函数表示纯虚函数。
A、virtual int vf(int);B、void vf(int)=0;C、virtual void vf()=0;D、virtual void vf(int) { };6、下面对静态数据成员的描述中,正确的是()。
A、静态数据成员可以在类体内进行初始化B、静态数据成员不可以在类体内进行初始化C、静态数据成员可由普通成员函数直接访问D、不同的对象有不同的静态数据成员副本7、函数原型为void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()A、test(5);B、test(5,8);C、test(6,"#");D、test(0,0,"*");8、若有以下定义,则释放指针所指内存空间的操作是()。
float* r=new float[10];A、delete r;B、delete *r;C、delete []r;D、delete r[];9、下列有关运算符重载的描述中,()是正确的。
C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
长沙理工大学单片机试卷(1)一、简答题(每题5分,共15分)1.MCS-51单片机存储器分为哪几个区域及地址划分范围?2.试用三种方法将累加器A中无符号数乘4。
3.DAC0832与单片机的接口方式有哪几种?二、选择与判断题(每题1.5分,共15分)1.单片机程序存储器中储存的程序通常称为( C )A.汇编语言B.高级语言C.机器语言D.逻辑语言2.MCS-51单片机的位寻址区位于内部RAM的( D )单元。
A. 00H—7FHB. 20H—7FHC. 00H—1FHD. 20H—2FH3.在MCS—51单片机的运算电路中,不能为ALU提供数据的是(A )A.PSW B.寄存器B C.累加器A D.暂存器4.执行返回指令时,返回的断点是(C )A.调用指令的首地址B.调用指令的末地址C.调用指令下一条指令的首地址D.返回指令的末地址5.内部RAM中的位寻址区定义的位是给(D )A.位传送操作准备的B.位逻辑运算操作准备的.以上都对D .位控制转移操作准备的C.6.MCS-51单片机可分为两个中断优先级,各中断源的优先级别设定是利用寄存器(D )A.IE B.TCON C.SCON D.IP7.CPU是根据( A )引脚上的电平来区分是从片内存储器取指还是从片外存储器取指。
A.EA B.ALE C.RESET D.PSEN8.下列指令正确的是( D )A.PUSH @R0 B.DJNZ @R1,rel C.SETB A D.JC NEXT9.MCS-51单片机外部地址扩展总线由( B )构成。
A.P0和P1 B.P0和P2 C.P0和P3 D.P1和P210.单片机定时器的计数时钟周期T等于( D )A.2/f B.4/f C.6/f D.12/f三、填空题(每空格1分,共24分)1.如单片机的主振频率为12MHz,则一个时钟周期为1/12 微秒,一个机器周期为1 微秒。
2.MCS-51单片机共有8 个工作寄存器,21 个专用寄存器。
c语言程序设计考试题库及答案1. 选择题1.1 下列关于C语言的描述,错误的是:A. C语言是一种过程式编程语言B. C语言支持面向对象编程C. C语言支持结构化编程D. C语言具有丰富的库函数答案:B1.2 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:C1.3 下列选项中,哪个不是C语言中的合法变量名?A. _myVarB. myVar2C. 2ndVarD. var$答案:D2. 填空题2.1 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2.2 C语言中,用于输入数据的库函数是______。
答案:scanf2.3 C语言中,用于输出数据的库函数是______。
答案:printf3. 简答题3.1 简述C语言中数组的定义方式。
答案:在C语言中,数组可以通过指定数据类型和数组大小来定义。
例如,定义一个整型数组可以写作:int arrayName[arraySize];。
3.2 解释C语言中的指针是什么,并给出一个指针的定义示例。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
定义指针的示例:int *ptr; 这里ptr是一个整型指针。
4. 编程题4.1 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```4.2 编写一个C语言函数,实现字符串反转的功能。
答案:```cvoid reverseString(char *str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```。
模拟测试(一)一、填空题(20)1、 x+y>=10 && x+y<=30 、 sqrt(b*b-4*a*c)/(2*sin(3.14159/4) 、sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1))2、 13、 10, 144、 24 245、按行的顺序6、 117、 68、 1 0 9、 110、 -1, 65535二、单项选择题(20)(把正确答案填入下表各对应的题号下)三、程序填空(15)1、 fabs(t)<=1.0E-6 、 t 、 n+22、 j<9 、 a[i]>a[i+1] 、 i++ 、 a[i]3、 int *n 、 k>=0 && x<v[k] 、 v[k+1]四、阅读程序并写出程序的输出结果(20)1、Max=12, row=2, colum=12、 3,2,5, 3,3,5 4,2,6, 3,4,63、 Max of array A=644、 755、 8五、程序设计(25分)1、用二重循环建立以下数组,并打印出来 1、 main()(不用scanf()函数和静态数组) {int a[5][5],i,j;/*定义数组和变量*/0 1 1 1 1 for(i=0;i<5;i++)/*用二重循环产生二维数组*/-1 0 1 1 1 for(j=0;j<5;j++)-1 -1 0 1 1 if (i<j) a[i][j]=1;-1 -1 -1 0 1 else if(j>j) a[j][j]=-1;-1 -1 -1 -1 0 else a[i][j]=0;2、编一程序打印输出如下图案 for(i=0;i<5;i++) /*打印输出*/A { for(j=0;j<5;j++)BBB printf("%d ",a[i][j]);CCCCC printf("\n");/*输出一行后换行*/ DDDDDDD }EEEEEEEEE }main(){ int i,j;char ch=' A ',space='';/*定义字符变量ch,space */for(i=1;i<6;i++) /*i循环控制打印行数,共 5*/{ for(j=1;j<40-i;j++) /* 输出39-i个空格,即将第一行打印在第40列上..*/printf("%c",space);for(j=0;k<2*i-1;k++) /* 打印2*i-1个字符,即第一行打印1个....*/printf("%c",ch);ch++; /* 输出一行后,让ch增加1,即变为相邻的下一字符 */printf("\n");/*输出一行后,换行*/}}3、编一个函数void fun( char *ss),它的功能是:把ss字符串中的字符按逆序存放。
2022年长沙理工大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设有char a,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。
3、在C语言源程序中,一个变量代表【】。
4、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。
5、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。
6、下面程序段的运行结果是_______。
char s[80],*sp="HELLO!";sp=strcpy(s,sp);s[0]='h';puts(sp);7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。
例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。
请填空。
_______;a=b;b=c;_______;9、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
10、设有宏定义如下:#define MIN(x,y)(x)>(y)?(x):(y)#define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。
一、单选题:1. 能作为C++程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件2. 程序中主函数的名字为( )。
A. mainB. MAINC. MainD. 任意标识符3. 关于C++与C 语言的关系的描述中,( )是错误的。
A. C 语言是C++的一个子集;B. C 语言与C++是兼容的;C. C++对C 语言进行了一些改进;D. C++和C 语言都是面向对象的4. 可用作C++语言用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof5. 存储以下数据,占用存储字节最多的是( )。
A. 0B. ‘0’C. “0”D. 0.06. 设int a=12;则执行完语句a+=a*a ;后,a 的值是( )。
A. 12B. 144C. 156D. 2887. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。
A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c8. 以下说法中正确的是( )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main 函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中9. 下面有关构造函数的描述中,正确的是( )。
A. 构造函数可以带有返回值B. 构造函数的名字与类名完全相同C. 构造函数必须带有参数D. 构造函数必须定义,不能缺省10.在声明类时,下面的说法正确的是( )。
A. 可以在类的声明中给数据成员赋初值B. 数据成员的数据类型可以是registerC. private ,public ,protected 可以按任意顺序出现D. 没有用private ,public ,protected 定义的数据成员是公有成员11.在下面有关析构函数特征的描述中,正确的是( )。
标准C程序设计第6版答案1. 简介本文档是《标准C程序设计第6版》一书的答案,旨在辅助读者理解和掌握书中的内容。
在学习C程序设计过程中,参考答案可以帮助读者检验自己的理解程度,加深对知识点的理解,并提供一种解题思路。
2. 第一章简介2.1 问题1答案:C语言是一种通用的计算机编程语言,广泛应用于系统软件、嵌入式系统、驱动程序等领域。
C语言被广泛使用的原因有以下几点: - 简洁高效:C语言的语法简洁,易于学习和理解。
同时,C语言的执行效率高,生成的机器代码精简,执行速度快。
- 跨平台:C语言具有很强的可移植性,可以在不同的操作系统和硬件平台上编写和运行程序。
- 底层控制能力:C语言支持直接操作内存和硬件设备,适用于需要对底层进行精确控制的场景。
- 丰富的函数库:C语言拥有丰富的函数库,方便开发者进行程序开发。
2.2 问题2答案:C语言是由贝尔实验室的Dennis Ritchie和Ken Thompson在20世纪70年代开发的。
起初,C语言是为Unix操作系统开发的,但由于其简洁高效的特点,迅速流行起来,并成为广泛应用的编程语言。
2.3 问题3答案:C语言是一种面向过程的编程语言。
它将问题分解为若干个子过程,通过调用这些子过程来解决问题。
C语言的面向过程特点使得程序的组织结构清晰,易于理解和维护。
3. 第二章程序框图与程序步骤图3.1 问题4答案:程序框图(program flowchart)是一种图形化的表示程序流程的工具。
它用不同的图形符号表示各种程序控制结构,如顺序结构、选择结构和循环结构。
程序框图通过连接这些图形符号来表示程序的执行顺序。
程序框图提供了一种清晰的视觉方式,帮助开发者理解程序的结构和流程。
3.2 问题5答案:程序步骤图(program flowchart)是一种图形化的表示程序运行步骤的工具。
它使用方框表示程序的每一步骤,通过箭头表示各个步骤之间的逻辑关系。
程序步骤图主要用于描述程序的逻辑流程,帮助开发者理解和分析程序的执行过程。
长沙理工大学试卷标准答案课程名称:C++程序设计试卷编号:6一、空题(15分,每空1分)1、全局作用域、文件作用域、函数作用域、块作用域2、x-y x=x-y3、传值引用传递变量地址传址4、成员的访问控制信息5、构造函数析构函数6、inline7、b二、选择题(20分,每空2分)1、A2、A3、C4、A5、C6、A7、A8、BAD三、阅读程序填空题(15分,第一个空1分,其它空2分)1、sqrt (1000) (1分)n%8==0(2分)cout << i*i <<”,” (2分)2、int TotalSum (int *array , int len) (2分)int Total(2分)int sum=0(2分)i<len(2分)sum+=array[i] (2分)四、阅读程序,并写出结果(20分,每小题5分)1、2、为数组的指针,首先指向a[0],pb是pa的引用,当执行pb++时,也使pa指向了a[1],所以输出为:203、4、88.18,97五、编程题(30分,每小题10分)1、#include <iostream.h>#include <math.h>void main(){flaot a,b,c,d;cout <<"a=";cin>> a;cout <<"b=";cin>> b;cout <<"c=";cin>> c;d=b*b-4*a*c;if (a==0)cout << "不是二次方程!"<< endlelse if(d==0)cout << "一个实跟:"<<-b/(2*a)<< endlelse if(d>0)cout << "两个实跟:"<<-b+sqrt(d)/(2*a)<< "," <<(-b-sqrt(d)/(2*a)<<endl elsecout << "无实根!"<< endl}2、#include <iostream.h>void main(){int i,j,k,sum,rsum;cout<<"公鸡母鸡雏鸡"<< endlfor (i=0;i<=100;i++)for (j=0;j<=100;j++)for (k=0;k<=100;k++){sum=I+j+k;rsum=5*I+3*j+k/3;if (sum==100&&rsum==100)cout<<i<<" "<<j<<" " \ <<k<< endl;}}3、实现本题功能的程序如下:#include<iostream.h>#include<iomanip.h>class rectangle{private:float ledge,sedge;public:rectangle() {};rectangle(float a,float b){ledge=a;aedge=b;} ;float area(){Return ledge*sedge;};void showlength(){cout<<”周长:”<<(ledge+sedge)+2<<endl;}rectangle tlength(rectangle r2) //以对象作为返回值{rectangle temp;temp.ledge=ledge+r2.ledge;temp.sedge=sedge+r2.sedge;return temp;};};void main(){rectangle A(3.5,2.5),B(4.2,3.8);cout<<”A”;A.showlength();cout<<”B”;B.showlength();rectangle C=A.tlength(B);cout<<”C”;C.showlength();}。
长沙理工大学继续教育学院成人教育函授生统一试卷C语言程序设计一、单项选择题(本题共20个小题,每小题1分,共20分)1、C语言程序的基本单位是( )。
A 程序行B 语句C 函数D字符2、C语言规定,在一个源程序中main函数的位置( )。
A 必须在最开始B 必须在系统调用的库函数的后面C 可以任意D 必须在最后3、下列符号串中符合C语言语法的标识符是( )。
A121 B121 C Ax1214、在C语言中,要求运算的数必须是整数的运算符是( )。
A/ B!C% D==5、一个完整的C程序包含一个或多个函数,对于main函数,下列不正确的是( )。
A 它是程序开始运行的第一个被调用的函数B有没有他都可以C 它是唯一不可缺少的函数D没有他,程序就无法运行6、若已定义x和y为double型,则表达式”x=1,y=x+3/2”的值是( )。
A 1B 2C 2.0D 2.57、下面属于合法的C语言长整型常量的是( )。
A369852147 B0L C 3E4 D(long)7458968、设n=10,i=4,则赋植运算n%=i+1执行后,n的值是( )。
A 0B 3C 2D 19、if语句的控制条件是( )。
A 只能用关系表达式B只能用关系或逻表达式C 能用逻辑表达式D可以用任何表达式10、下列循环语句中( )。
for (a=1,b=1;a<4&& b!=4; a++);A 是无限循环B 循环4次C 循环次数不定D 循环3次11、请选出合法的C语言赋值语句( )。
A a=b=58B i++;C a=58,b=58D k=int(a+b);12、与*&x等价的表达式是( )。
A &(x)B xC + D&x13、设a,b,c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是( )。
A 'a'&&'b'B a<=bC a||b+c&&b-cD !((a14、设有数组定义:char array[]=“student”;则数组所占的存贮空间为( )。
1、选择题(1)A(2)C(3)A(4)B(5)B(6)D(7)D(8)B(9)D(10)B2、填空题(1)a=10,b=20a=20,b=10(2)**pp=603、程序设计题(1)#include<stdio.h>char *month_name(int n);void main(){int n;printf("\nPlease enter 1 integer:");scanf("%d",&n);printf("%d month :%s\n",n,month_name(n));}char *month_name(int n){static char*name[]={"illegal month","Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sept","Oct","Nov","Dec"};return ((n<1||n>12)?name[0]:name[n]);}(2)#include<stdio.h>#define N 10sort(int data[]){int i,j,min_a,temp;for(i=0;i<N;i++){min_a=i;for(j=i+1;j<N;j++)if(*(data+j)<*(data+min_a))min_a=j;if(min_a!=i){temp=*(data+min_a);*(data+min_a)=*(data+i);*(data+i)=temp;}}}main(){int i,j,data[N],temp;int min_a;printf("\nPlease input %d int:\n",N);for(i=0;i<N;i++)scanf("%d",&data[i]);sort(data);printf("After sorted:\n");for(i=0;i<N;i++)printf(" %d",data[i]);}(3)#include <stdlib.h>void reverse(char *c);void main(){char str[80];puts("Please enter 1 string\n");gets(str);reverse(str) ;puts("After reversed\n");puts(str);}void reverse(char *c){char *p,*q,temp;int size=0;for(p=c;*p!='\0';p++)size++;size=size/2;for(q=c,p--;q<c+size;q++,p--){temp=*q;*q=*p;*p=temp;}}(4)#include<stdio.h>#include<string.h>void sort(char *keyword[],int size);void print(char *keyword[],int size)void main(){char *keyword[]={"if","else","case","switch","do","whlie","for","break","continue"};sort(keyword,9);print(keyword,9);}void sort(char *keyword[],int size){int i,j,min_location;char *temp;for(i=0;i<size-1;i++){min_location=i;for(j=i+1;j<size;j++)if(strcmp(keyword[min_location],keyword[j])>0) min_location=j;if(min_location!=i){temp=keyword[i];keyword[i]=keyword[min_location];keyword[min_location]=temp;}}}void print(char *keyword[],int size){int i;for(i=0;i<size;i++)printf("\n%s",*(keyword+i));}(5)#include<stdio.h>void fun_char(char str1[],char str2[],char str3[]);void main(){char str1[80],str2[80],str3[80],c,i;printf("\nPlease enter 2 string:");scanf("%s%s",str1,str2);fun_char(str1,str2,str3);printf("Third string is %s.",str3);}void fun_char(char *str1,char *str2,char *str3){int i,j,k,flag;i=0,k=0;while(*(str1+i)!='\0'){j=0;flag=1;while(*(str2+j)!='\0'&&flag==1){if(*(str2+j)==*(str1+i)) flag=0;j++;}if(flag){*(str3+k)=*(str1+i); k++;}i++;}*(str3+k)='\0';}(6)#include<stdio.h>int count_word(char *str);void main(){char str1[80],c,res;puts("\nPlease enter a string:");gets(str1);printf("There are %d words in this sentence",count_word(str1)); }int count_word(char *str){int count ,flag;char *p;count=0;flag=0;p=str;while(*p!='\0'){if(*p==' ')flag=0;else if(flag==0){flag=1;count++;}p++;}return count;}(7)#include<stdio.h>#include<string.h>char *encrypt(char *string);char *decrypt(char *string);main(){char item[80];char *point;char *pEncrypted;char *pDecrype;printf("Please enter the string need to encrypt:\n");gets(item);point=item;pEncrypted=encrypt(point);printf("\nThe string after encrypted is:\n%s\n",pEncrypted); pDecrype=decrypt(pEncrypted);printf("\nThe string after decrypted is:\n%s\n",pDecrype);free(pEncrypted);free(pDecrype);}char *encrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string-2;string++;q++;}*q='\0';return t;}char *decrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80); if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string+2;string++;q++;}*q='\0';return t;}。
c语言程序设计编程题库及详解答案1. 编写一个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;}```2. 编写一个C语言程序,实现求一个数的阶乘。
答案:```c#include <stdio.h>int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num)); return 0;}```3. 编写一个C语言程序,实现判断一个数是否为素数。
答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
青少年软件编程(C语言)等级考试试卷(六级)分数:100 题数:4一、编程题(共4题,共100分)1. 字符串插入有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。
(字符个数不包括字符串结尾处的'\0'。
)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。
时间限制:1000内存限制:65536输入输入包括若干行,每一行为一组测试数据,格式为str substr输出对于每一组测试数据,输出插入之后的字符串。
样例输入样例输出试题编号:20230520-6-01试题类型:编程题标准答案:试题难度:一般试题解析:#include<bits/stdc++.h>using namespace std;int main(){string str,substr;while(cin>>str>>substr){int maxn=0,maxid,i;for(i=0;i<str.size();i++){if((str[i]-'0')>maxn){maxn=str[i]-'0';maxid=i;}}for(i=0;i<str.size();i++){cout<<str[i];if(i==maxid) cout<<substr;}cout<<endl;}return 0;}展示地址:点击浏览考生答案:(此题已作答)考生得分:25是否评分:已评分评价描述:2. 机器翻译VariantF的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。
这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。
对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
长沙理工大学考试试卷………………………………………………………………………………………………………………试卷编号 6 拟题教研室(或教师)签名教研室主任签名………………………………………………………………………………………………………………课程名称(含档次)C++程序设计课程代号0806005专业计算机科学与技术层次(本、专)本考试方式(开、闭卷)闭一、填空题(15分,每空1分)1、变量的四种作用域分别是______、______、______和______。
2、下面的函数Fun未使用中间变量实现了对两个数的交换,请完成下列函数的定义。
void Fun (int &x,int &y){x+ = y;y =___________ ;___________ ;}3、函数的调用方式分为两种:______调用和______调用。
其中,第一个空对应的调用又根据C++中变量值的不同分为:传递变量本身值的调用______和______的调用。
4、在类的定义形式中,数据成员、成员函数和组成了类定义体。
5、有如下定义语句:MyClass *p;,则执行 p=new MyClass; 语句时,将自动调用该类的______。
执行delete p;语句时,将自动调用该类的_____。
6、在一个函数的定义或声明前加上关键字_________时,该函数就声明为内联函数。
7、执行完下列三条语句后,,指针变量c指向_________。
int a,b,*c=&a;int *&p=c;p=&b;二、选择题(20分,每空2分)1、C++源程序文件的扩展名为____ 。
A)CPPB)CC)DLLA)EXE2、C++语言中,main 函数默认返回一个_________类型的值。
A)int B)fIoat C)char D)void3、关于函数返回值类型和返回值表达式的类型的描述中,错误的是_________。
长沙理工大学C语言考试试卷A………………………………………………………………………………………………………………课程名称(含档次)C语言程序设计课程代号D081200065专业非计算机专业层次(本部、城南)本部考试方式(开、闭卷)闭卷一.选择题(本题总分50分,每小题2分)1.下面说法正确的是(C)A)C程序由符号构成B)C程序由C的指令构成C)C程序由函数构成D)C程序由C语句构成2.在C语言中,如果下面的变量都是int型,则输出的结果是(D)sum=pad=5;pad=sum++;pad++;++pad;printf(“%d\n”,pad);A) 4 B) 5 C)6 D) 73.表达式3.6-5/2+1.2+5%2的值是(D)A)4.3 B) 4.8 C) 3.3 D)3.84.以下选项中不是C语句的是(C)A) {int i=5; i++;printf(“%d\n”,i);} B) ;C) a=5, c=10 D) {;}5.下述程序的输出结果是(B)main( ){ int x=023;printf(“%d”, --x);}A) 17 B) 18C) 23 D) 246.有如下定义:float x; unsigned y; 则以下合法的输入语句是(B)A) scanf(“%5.2f%d”, &x, &y); B) scanf(“%f%3o”, &x, &y);C) scanf(“%f%n”, &x, &y); D) scanf(“%f%f”, &x, &y);7.判断char型变量ch是否为小写字母的正确表达式是(D)A) ‘a’<=ch<=’z’B) (ch>=a)&&(ch<=z)C) (‘a’>=ch)||(‘z’<=ch) D) (ch>=’a’)&&(ch<=’z’)8.以下程序的输出结果是(B)main( ){ int x=2, y=-1, z=2;if(x<y)< p="">if(y<0) z=0;else z+=1;printf(“%d\n”, z);}A) 3 B) 2C) 1 D) 09.以下程序的运行结果是(D)main( ){ int k=4, a=3, b=2, c=1;printf(“\n%d\n”, k<a?k:c<b?c:a);< p="">}A) 4 B) 3C) 2 D) 110.在C语言中,下述正确的是(D)A) do-while语句构成的循环不能用其他语句构成的循环来代替。
长沙理工大学考试试卷………………………………………………………………………………………………………………试卷编号17 拟题教研室(或教师)签名教研室主任签名………………………………………………………………………………………………………………课程名称(含档次)C++程序设计课程代号0806005专业计算机科学与技术层次(本、专)本考试方式(开、闭卷)闭一、填空题(每空1分,共15分)1.C语言的基本数据类型有四种,用类型说明表示为:、、、。
2.if语句的三种形式是:;;。
3.C语言是一种函数式,C程序中至少要有一个函数。
4.已知j=2,则j>3的值为:。
5.C语言的一个语句必须以符号结束。
6.派生类的3种继承方式分别是___________、_______和_______。
7.绑定是指一个计算机程序自身彼此关联的过程。
按照绑定所进行的阶段不同,可分为_____________和__________。
二、单项选择题(每题2分,共20分)1.由C++源程序文件编译而成的目标代码文件的缺省扩展名为【】。
A.cppB.exeC.objD.lik2.设x和y均为bool类型,则x&&y为真的条件是【】。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假3 .设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是【】。
A.10,11,12B.11,12,12C.10,12,12D.11,11,124.设有说明int s[2]={0,1},*p=s; 则下列错误的C++语句是【】。
A.s+=1;B.p+=1;C.*p++;D. (*P)++;5.若有char a[3]= {‘A’,’\0’,’D’},*P=a,i=2,j=4;则下列表达式值不是1的有【】。
A.strlen (a);B.j‖j;C.* (P+1);D.- -ⅰ;7.函数重载的根据是【】。
长理C语言练习册答案第1章C语言程序设计概述一、选择题题号 1 2 3 4 5 6 7 8 9 10答案 A A B D C C D C D C题号11 12 13 14 15 16 17 18 19 20答案 A D C B A C B A C C二、填空题1、一_、主、主2、.C 、.OBJ 、.EXE3、“{”、“}”、变量说明、执行语句4、主函数5、/* 、*/、运行三、编程题1、(1) 解:#include “stdio.h”void main(){printf(“ProgrammingLanguage\n”);}(2) 解:#include “stdio.h”void main(){printf("***************\n");printf("\n");printf(" Welcome \n");printf("\n");printf("***************\n");}2、解main(){ int a,b,x,y,m,n;a=25;b=5;x=a+b; y=a-b; m=a*b; n=a/b;printf(“x=%d,y=%d,m=%d,n=%d\n”,x,y,m,n);}第2章C语言的基本数据类型与表达式一、选择题题号 1 2 3 4 5 6 7 8 9 10答案 D C A D C B C B C A题号11 12 13 14 15 16 17 18 19 20答案 D B D C C B C B D A题号21 22 23 24 25 26 27 28 29 30答案 C C A A C C B D C C题号31 32 33 34 35 36 37 38 39 40答案 C B B C A C A C A A题号41 42 43 44 45答案 C B C D C二、填空题1、_ 十、八、十六2、int 、float、double3、34、-165、16、 27、10、 68、99、‘f’10、(m/10%10)*100+m/100*10+m%1011、3.500000 12、 113、 414、1.500000 、 6.70000015、1 、-2 、1 、4三、程序分析题1、1112、4,33、14、11,19,30,15、65,896、a=%d,b=%d第3章C语言程序的控制结构第1节顺序结构程序设计一、选择题题号 1 2 3 4 5 6 7 8 9 10答案 B C C C C B C D C D题号11 12 13 14 15 16 17 18 19 20答案 B C B D A B D B C C题号21 22 23 24 25 26 27 28 29答案 D B B D A C D B C二、填空题1、_a=5.0,4,c=32、03、b、b、 b4、-145、未指明变量k的地址、格式控制符与变量类型不匹配6、scanf(“%d%f%f%c%c”,&a,&b,&x,&c1,&c2);3?6.5?12.6aA7、A???B???<CR>8、10 15 109、123 、45.000000 10、不确定值11、261 12、1613、2,1三、程序分析题1、 4 、52、203、无正确值4、x=98 y=765.000000 z=4321.0000005、8796、10 , A , 10四、编程题1、解#include “stdio.h”main(){float c,f;printf("请输入一个华氏温度\n");scanf("%f",&f);c=5.0/9.0*(f-32);printf("摄氏温度为:%6.2f\n",c);}2、解#include “stdio.h”main(){int a,b,c,x;printf("请输入一个三位整数:");scanf("%d",&x);a=x/100;b=x/10%10;c=x%10;printf("输出结果:%d%d%d\n",c,b,a);}3、#include <stdio.h>main(){int hour,min,tran;printf("Enter time:");scanf("%d%d",&hour,&min);printf("before:%dh%dmm\n",hour,min);tran=hour*60+min;printf("after:%dmin\n",tran);}4、#include <stdio.h>main(){int a,n,i;float p,result=1;printf("Input a,n,p:");scanf("%d,%d,%f",&a,&n,&p);for(i=1;i<=n;i++)result=result*(1+p); //求(1+p)的n次方result=a*result-a;printf("\n到期利息为:%f\n",result);}5、#include <stdio.h>#define PI 3.14159main(){float r,h,l,s,v;printf("Input r,h:");scanf("%f,%f",&r,&h);l=2*PI*r;s=PI*r*r;v=PI*r*r*h;printf("r=%f,h=%f\nl=%f,s=%f,v=%f\n",r,h,l,s,v);}6、#include<stdio.h>void main(){ int a,b;long c;scanf("%d%d",&a,&b);c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; /*将a数的十位和个位数依次在c数个位和十位上, b数的十位和个位数依次放在c数的百位和千位*/printf("The result is:%ld\n",c);}第2节选择结构程序设计一、选择题题号 1 2 3 4 5 6 7 8 9 10答案 D B D C C B C D B C A题号11 12 13 14 15 16 17 18 19 20答案 B A B C B B C B B C A题号21 22 23 24 25 26 27 28答案 D B B C C C A A二、填空题1、&& || !2、x>2&&x<3||x<-103、y%2==14、x<z||y<z5、((x<0&&(y<0))||((x<0)&&(z<0))||((y<0)&&(z<0))6、17、08、19、0 10、0 11、0 12、1 13、0 14、[1] __ y<z ___ [2] ___ x<z ___[3]x<y 15.[1] __ c=c+5____[2] ____ c=c-21_16、[1] __ u,v ____[2] __ x>y _____[3]u>z17、[1] ____ y%4==0&&y%100!=0 _[2] __ f=0____18、[1] gz<850 [2] (gz>=850)&&(gz<1500)[3] (gz>=1500)&&(gz<2000) [4] rfgz=gz-gz*0.015 [5] rfgz=gz-gz*0.020019、[1] __10_____[2] ____9 ___[3]11三、程序分析题1、1,12、1,03、5858584、your¥3.0yuan/xiaoshi5、2nd class postage is 14p6、 F7、4:05 PM8、b=29、0.60000010、a=2,b=1 11、passwarm四、编程题1、#include “stdio.h”void main(){int n;printf(“Input a number:\n”);scanf(“%d”,&n);if((n%5==0)&&( n%7==0)) printf(“yes\n”);else printf(“no\n”);}2、#include “stdio.h”void main(){int a,b;printf(“Input two number:\n”);scanf(“%d%d”,&a,&b);if(a*a+b*b>100) printf(“%d\n”,(a*a+b*b)/100);else printf(“%d\n”,a+b);}3、main(){float x;int y;printf("\n input x:");scanf("%f",&x);switch(x<0){case 1:y=-1;break;case 0:switch(x==0){case 1:y=0;break;default:y=1;}}printf("\n y=%d",y);}4、#include <stdio.h>#include <math.h>main(){float x,y;printf("Input x:");scanf("%f",&x);if(x<0)y=x*x*x;else if(x==0)y=0;elsey=sqrt(x);printf("x=%f,y=%f\n",x,y);}5、#include <stdio.h>main(){int n,n1,n2,n3,n4,n5,nn;printf("Enter n(n>=0 && n<99999):");scanf("%d",&n);if(n>=10000&&n<=99999){printf("n是5位数\n");n1=n%10;n2=(n/10)%10;n3=(n/100)%10;n4=(n/1000)%10;n5=n/10000;printf("n每一位上的数字是(从高到低)%d,%d,%d,%d,%d\n",n5,n4,n3,n2,n1);nn=n1*10000+n2*1000+n3*100+n4*10+n5;printf("n的逆序数为%d\n",nn);}if(n>=1000&&n<=9999){printf("n是4位数\n");n1=n%10;n2=(n/10)%10;n3=(n/100)%10;n4=n/1000;printf("n每一位上的数字是(从高到低)%d,%d,%d,%d\n",n4,n3,n2,n1);nn=n1*1000+n2*100+n3*10+n4;printf("n的逆序数为%d\n",nn);}if(n>=100&&n<=999){printf("n是3位数\n");n1=n%10;n2=(n/10)%10;n3=n/100;printf("n每一位上的数字是(从高到低)%d,%d,%d\n",n3,n2,n1);nn=n1*100+n2*10+n3;printf("n的逆序数为%d\n",nn);}if(n>=10&&n<=99){printf("n是2位数\n");n1=n%10;n2=n/10;printf("n每一位上的数字是(从高到低)%d,%d\n",n2,n1);nn=n1*10+n2;printf("n的逆序数为%d\n",nn);}if(n>=0&&n<=9){printf("n是1位数\n");printf("n每一位上的数字是(从高到低)%d\n",n);nn=n;printf("n的逆序数为%d\n",nn);}}6、#include <stdio.h>main(){float i,r;printf("Input i(万元):");scanf("%f",&i);if(i<=10)r=i*0.1;else if(i<=20)r=10*0.1+(i-10)*0.075;else if(i<=40)r=10*0.1+10*0.075+(i-20)*0.05;else if(i<=60)r=10*0.1+10*0.075+20*0.05+(i-40)*0.03;else if(i<=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;elser=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01;printf("i=%f,r=%f\n",i,r);}7、#include <stdio.h>#include <math.h>void main(){ double s=0.0;int i,n;scanf("%d",&n);for(i=0; i<n;i++)if(i%5==0 && i%11==0)s=s+i;s=sqrt(s);printf("s=%f\n",s); }8、#include <stdio.h>main(){ int n,g,sh;printf("Enter a two-digit number:");scanf("%d",&n);printf("Y ou entered the number ");if(n>=10 && n<=19)switch(n){ case 10:printf("ten\n");break;case 11: printf(" eleven\n");break;case 12:printf("twelve\n");break;case 13:printf("thirteen\n");break;case 14:printf("fourteen\n");break;case 15:printf("fifteen\n");break;case 16:printf("sixteen\n");break;case 17:printf("seventeen\n");break;case 18:printf("eighteen\n");break;case 19:printf("nineteen\n");break;}else{g=n%10;sh=n/10;switch(sh){case 2: printf("twenty");break;case 3:printf("thirty");break;case 4:printf("fourty");break;case 5:printf("fifty");break;case 6:printf("sixty");break;case 7:printf("seventy");break;case 8:printf("eighty");break;case 9:printf("ninety");break;}switch(g){case 0:printf("\n");break;case 1:printf("-one\n");break;case 2:printf("-two\n");break;case 3:printf("-three\n");break;case 4:printf("-four\n");break;case 5:printf("-five\n");break;case 6:printf("-six\n");break;case 7:printf("-seven\n");break;case 8:printf("-eight\n");break;case 9:printf("-nine\n");break;}}}第3节循环结构程序设计一、选择题题号 1 2 3 4 5 6 7 8 9 10 答案 B A B B A B C D B B 题号11 12 13 14 15 16 17 18 19 20 答案 A B A A C C C D C A 题号21 22 23 24 25 26 27 28 29 30答案 A B C D B D B C A D题号31 32 33 34答案 B B B B二、填空题1.[1] ____ x>=0_______ [2] ____ x<amin ___________ 2.[1] _____ c!=`\n`__ [2] c>=`0`&&c<=`9`__3.[1] ______ x1 ______ [2] ______ x1/2-2_______4.[1] __ r=m;m=n;n=r;[2] ____ m%n ________ _____ 5.[1] __ i%3==2&&i%5==3&&i%7==2 _[2] ____ j%5==0____ 6.[1] _____ n%10 ______ [2] _____ max=t ____7.[1] _______ i<x ______8.[1] ________2*x+y*4==90____9.[1] ___ t=t*i _________ [2] ______ t=-t/i _______ 10.[1] ____ m=n __ [2] _____ m ___ [3] ____ m=m/10______ 11.[1] ____ m=0,i=1_____ [2] ___ m=m+i _________ 12.[1] _____ k ____ [2] ___ k/10_____13.[1] _____ break ___ [2] ____ i= =11或i>=11__________ 14.[1] _____ i<=9 ____ [2] ______ j%3!=0____15、[1]b=i+1 16、[1]t>eps [2] 2.0*s17、[1] (ch=getchar()) [2] front!=' ' [3] ch三、程序分析题1、172、6689773、0111224、s=35、3,1,-1,3,1,-1,3,1,-1四、编程题1、#include “stdio.h”void main(){ int k,s=0;scanf("%d",&k);while(k>0){ if(k%3==0&&k%7!=0)s++ ;scanf("%d",&k);}printf("s=%d\n",s);}2、#include “stdio.h”void main( ){ int sum,n,i,s=0;for(n=200;n<=500;n++){ sum=0;for(i=1;i<=n/2;i++)if(n%i==0) sum+=i;if(sum= =n)s=s+n; }printf(“s=%d\n”,s); }3、#include "stdio.h"void main(){ int n,x=1;for(n=9;n>=1;n--)x=2*(x+1);printf("n=%d",x);}4、#include "stdio.h"void main(){ int x,y,z;for(x=1;x<=19;x++)for(y=1;y<=33;y++)for(z=1;z<=99;z++)if((x+y+z==100)&&(5*x+3*y+z/3==100))printf("X=%d,Y=%d,Z=%d\n",x,y,z);}5. main(){int i,n=0;for(i=100;i<=600;i++){a=i/100;b=i%100/10;c=i%10;if((b+c)%10==a)n++; }printf(“n=%d\n”,n);}6、#include <stdio.h>void main(){int i,sum=0,a,b,c;for(i=123;i<433;i++){a=i/100;b=i/10%10;c=i%10;if(a!=b&&a!=c&&b!=c&&(a>0)&&(a<5)&&b>0&&b<5&&c>0&&c<5) {sum++;printf("%d ",i);}}printf("\n%d\n",sum);}7、输出9*9口诀表。
一、指出函数或程序的功能。
1、 template <class Type>void AC(Type &x , Type &y ){Type a=x;x=y ;y=a ;}2、int AB(int *a , int n){int x=a[0];for (int i=1; i<n; i++)if (a[i]<x) x=a[i];return x;}3. int AB(int *a , int n){int x=a[0];for (int i=1; i<n; i++)if (a[i]<x) x=a[i];return x;}4. float fact(int n){float t=1;for(int i=1;i<=n;i++)t*=i;return t;}#include <iostream.h>void main( ){ float t;int n=10;cout<<fact(n)<<endl;}写出程序运行结果1、#include <iostream.h>int a[]={2,4,6,8,10};int &index(int i){ return a[i];}void main(){int i;index(3)=12;for (i=0;i<=4;i++)cout<<a[i]<<" ";}2、#include <iostream.h>void f(int *m,int n){int temp;temp=*m;*m=n;n=temp;}void main(){int a=5,b=10;f(&a,b);cout<<a<<" "<<b<<endl; }3、#include <iostream.h>int i=15;void main(){int i;i=100;∷i=i+1;cout<<∷i<<endl;}4、#include <iostream.h>class toy{public:toy(int q, int p){quan = q;price = p;}int get_quan(){return quan;}int get_price(){return price;}private:int quan, price;};main(){toy op[3][2]={toy(10,20),toy(30 ,48),toy(50,68),toy(70 ,80),toy(90,16),toy(11 ,120),};int i;for (i=0;i<3;i++){cout<<o p[i][0].get_quan()<<",";cout<<o p[i][0].get_price()<<"\n";cout<<o p[i][1].get_quan()<<",";cout<<o p[i][1].get_price()<<"\n";}cout<<"\n";return 0;}5、#include <iostream.h>class example{public:example(int n){i=n;cout<<"Co nstructing\n ";}~example(){cout <<"Destructing\n";}int get_i(){return i;}private:int i;};int sqr_it(example o){return o.get_i()* o.get_i();}main(){example x(10);cout<<x.get_i()<< endl;cout<<sqr_it(x)<< endl;return 0;}6、#include <iostream.h>class Test{private:int x;public:Test(){cout<<“构造函数被执行”<<endl;x=0;}~Test() {cout<<“析构函数被执行”<<endl;void print() {cout<<“x=”<<x<<endl; }};void main(){Test obj1,obj2;obj1.print();obj2.print();}7、#include <iostream.h>class A{public:A(int *s) {cout<<s<<endl;}};class B:public A{public:B(char *s1,char *s2):A(s1){cout<<s2<<endl;}};class C:public A{public:C(char *s1,char *s2):A(s1){cout<<s2<<endl;}};class D:public B,C{public:D(char *s1,char *s2,char*s3,char *s4):B(s1,s2),C(s3,s4){cout<<s4<<endl;}};void main(){D d (“class A”,”class B”,”class C”,”class D”);}8、#include <iostream.h>class Base{public:virtual void disp() {cout<<”base class”<<endl;}};class Derivel:public Base{public:void disp() {cout<<”derivel class”<<endl;}};class Derive2:public Base{public:void disp() {cout<<”derive2 class”<<endl;}};void main(){Base *p;Base b;Derive1 d1;Derive2 d2;p=&b;p->disp();p=&d1;p->disp();p=&d2;p->disp();}9、#include <iostream.h>class Sample{private:int x;static int y;public:Sample(int a);void print();};Sample:: Sample(int a){x=a;y ++;}void Sample::print(){cout<<”x=”<<x<<”,y=”<<y<<endl;}int Sample::y=25;void main(){Sample s1(5);Sample s2(10);s1.print();s2.print();}10、#include <iostream.h>class Sample{private:int x;public:Sample () { }Sample(int a) {x=a;}void disp() {cout<<”x=”<<x<<endl;}friend Sampleoperator+( Sample &s1, Sample &s2);};Sample operator+( Sample &s1, Sample &s2){ return Sample(s1.x+s2.x);}void main(){Sample obj1(10);Sample obj2(20);Sample obj3;obj3=obj1+obj2;obj3.disp();}11、#include <iostream.h>class Test{private:int x;public:Test(){cout<<“构造函数被执行” <<endl;x=0;}void print(){cout<<“x=”<<x<<endl;}};void main(){Test obj1,obj2;obj1.print();obj2.print();}12、#include <iostream.h>class A{protected:int x;public:A(int x){A::x=x;cout<<”class A”<<endl;}};class B{private:A a1;public:B(int x):a1(x){cout<<”class B”<<endl;}};class C:public B{private:A a2;public:C(int x):B(x),a2(x){cout<<”class C”<<endl;}};class D:public C{public:D(int x):C(x){cout<<”class D”<<endl;}};void main(){D dobj(10);}13、#include <iostream.h>class Point{private:int x;int y;public:Point (int a,int b){x=a;y=b;}virtual int area() {return 0;}};class Rectangle:public Point{private:int length;int width;public:Rectangle(int a,int b,int l,int w): Point(a,b){length=l;width=w;}virtual int area() { return length*width;}};void disp(Point &p){cout<<“面积是:”<<p.area()<<endl;}void main(){Rectangle rect(3,5,7,9);Disp(rect);}14、#include <iostream.h>class Sample{private:int x;static int y;public:Sample(int a);void print();};Sample:: Sample(int a){x=a;y=x++;}void Sample::print(){cout<<”x=”<<x<<”,y=”<<y<<endl;}int Sample::y=25;void main(){Sample s1(5);Sample s2(10);s1.print();s2.print();}15、#include <iostream.h>class Sample{private:int x;public:Sample(){}Sample (int a){x=a;}void disp() {cout<<”x=”<<x<<endl;}Sample operator+( Sample&s);};Sample Sample:: operator+( Sample &s){return Sample(x+s.x);}void main(){Sample obj1(20);Sampleobj2(20);Sample obj3;obj3=obj1+obj2;obj3.disp();}16、# include <iostream.h>class A {int a , b ;public :A( ) { a=b=0; }A( int aa , int bb ) : a(aa),b(bb) {cout <<”a=”<<a<<”,”<<”b=”<<b<<endl; }~A( ){cout <<”Destructor!”<<endl; } };void main() {A x , y(2 , 3);}17、 # include <iostream.h>int AD(int a[] , int n) {int x=1;for (int i=0; i<n; i++)x*=a[i];return x;}void main() {int a[]={ 2, 8, 6, 5};cout <<AD(a , 4)<<endl;}18、#include <iostream.h>class R{public:R(int r1,int r2) {R1=r1;R2=r2;}void print();void print() const;private:int R1,R2;};void R::print(){cout<<R1<<":"<<R2<<endl;}void R::print() const{cout<<R1<<";"<<R2<<endl;}void main(){R a(5,4);a.print();const R b(20,52);b.print();}19、#include <iostream.h>class A{public:virtual void act1();void act2() {act1();}};void A::act1(){cout<<"A::act1() called. "<<endl;}class B : public A{public:void act1();};void B::act1(){cout<<"B::act1() called. "<<endl;}void main(){B b;b.act2();}# include <iostream.h>void fun(int,int,int * );void main(){int x,y,z;fun (2,3,&x);fun (4,x,&y);fun (x,y,&z);cout<<x<<','<<y<<',' <<z<<endl;}void fun(int a,int b,int * c ){ b*=a;*c=b-a;}20、#include <iostream.h>void main(){int x=3,y=3;switch(x%2){case 1: switch (y){ case 0:cout<<"first\t";case1:cout<<"second\t";break;defa ult: cout<<"hello\t";}case 2:cout<<"third\n";}}21、#include <iostream.h>int a[8]={1,2,3,4,5,6,7};void fun(int b[ ],int n);void main( ){ int m=8;fun(a,m);cout<<a[7]<<endl; }void fun(int b[ ],int n){ for (int I=0;I<n-1;I++)b[7]+=b[I];}22、#include <iostream.h>class AA{ public:AA(int i,int j){A=i;B=j;cout<<"C onstructor\n";}AA(AA &obj){A=obj.A+1;B=obj. B+2;cout<<"Copy_Constructor\n";}~AA(){cout<<"Destructo r\n";}void print(){cout<<"A="<<A<<",B=" <<B<<endl; }private:int A,B;};void main(){ AA a1(2,3);AA a2(a1);a2.print();AA *pa=new AA(5,6);pa->print();delete pa;}23、#include<iostream.h>void main(){int i(0);while(++i){if(i= =10) break;if(i%3!=1) continue;cout<<i<<endl;}}24、#include <iostream.h>int a[8]={1,2,3,4,5,6,7};void fun(int *pa,int n);void main( ){ int m=8;fun(a,m);cout<<a[7]<<endl;}void fun(int *pa,int n){ for (int I=0;I<n-1;I++)*(pa+7)+= *(pa+I); }25、#include<iostream.h>void ff(int x),ff(double x); void main(){ float a(88.18);ff(a);char b('a');ff(b);}void ff(int x){ cout<<"ff(int): "<<x<<endl; } void ff(double x){ cout<<"ff(double): "<<x<<endl;}26、#include <iostream.h>class AA{ public:AA(int i,int j){A=i;B=j;cout<<"Cons tructor\n";}AA(AA &obj){A=obj.A+1;B=obj.B+2 ;cout<<"Copy_Constructor\n";}~AA(){cout<<"Destructor\n ";}void print(){cout<<"A="<<A<<",B="<<B<<e ndl; }private:int A,B;};void main(){ AA a1(2,3);AA a2(a1);a2.print();AA *pa=new AA(5,6);pa->print();delete pa;}27、#include <iostream.h>void main(){int a,b,c,d(5);c=2,c+=10;a =b=10;a * = 2;b / = 2;c % = 2;cout<<a<<","<<b<<","<<c<<endl; }28、#include <iostream.h>void main(){char flag='c' ;switch(flag){case 'a' :cout<<"1"<<endl ;case 'b' :cout<<"2"<<endl ; break; case 'c' : cout <<"3"<<endl ; default : cout <<"4"<<endl ; break;}}29、#include <iostream.h>void main(){static int b[][3] ={ {1,2,3},{4},{5,6} };b[0][2]=12,b[1][2]=18;cout << **b<<"\t"<<**(b+1)<<"\t"<<**(b+1)<<"\t"<<*(*(b+1)+2) <<"\n";cout <<b[0][2]+b[1][2]+b[2][2]<< endl;}30、#include <iostream.h>void Swap( int &a, int & b);void main(){int x( 10 ), y( 7 );cout<<"x="<<x<<" y="<<y<<end l;Swap( x , y );cout<<"x="<<x<<" y="<<y<<end l;}void Swap(int & a, int & b){ int temp; temp =a ; a=b ; b=temp ; }31、#include <iostream.h>class A{public:A();A(int i,int j);~A(){cout<<"Donstructor.\n";}void print();private:int a,b;};A::A(){ a=b=10;cout<<"Default constructor.\n";}A::A(int i,int j){ a=i,b=j;cout<<"Constructor.\n";}void A::print(){cout<<"a="<<a<<",b="<<b<<endl;}void main(){A m,n(15,18);m.print();n.print();}32、// program 1_2.cpp#include<iostream.h>void main(){int a,b,sum;a=43; // b=37;sum=a+b;cout<<"The sum is"<<sum;cout<<endl; // endl}33、#include<iostream.h>class Sample{int n;static int sum;public:Sample(int x){n=x;}void add(){sum+=n;}void disp(){cout<<"n="<<n<<",sum="<<sum<<endl; }};int Sample::sum=0;void main(){Sample a(2),b(3),c(5);a.add();a.disp();b.add();b.disp();c.add();c.disp();}34、#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x++ +10;} void disp(){cout<<"x="<<x<<endl;} };void main(){Sample s1(2),s2(s1);s1.disp();s2.disp();}35、#include <iostream.h>class A{public:A(char *s) { cout << s << endl; }~A() {} };class B:public A{public:B(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class C:public A{public:C(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class D:public B,public C{public:D(char *sl,char *s2,char *s3,char*s4) :B(sl,s2),C(sl,s3){cout << s4 << endl;}void main (){D d("class A","class B","class C","class D"); }36、// program 1_1.cpp#include<iostream.h>void main(){cout<<"Let's learn to write a C++ Program.";cin.get();}37、#include<iostream.h>void main(){ int i,n;n=0;for(i=1;i<=5;i++)n=n+i;cout<<"n="<<n<<endl; }38、#include<iostream.h>class Sample{int n;public:Sample(int i){n=i;}friend int add(Sample &s1,Sample &s2); };int add(Sample &s1,Sample &s2){return s1.n+s2.n;}void main(){Sample s1(10),s2(20);cout<<add(s1,s2)<<endl;}39、#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}~Sample(){if(x==y)cout<<"x=y"<<endl;elsecout<<"x!=y"<<endl;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1(2,3);s1.disp();}六、分别指出下面的p各是什么。
长沙理工大学试卷标准答案
课程名称:C++程序设计试卷编号:6
一、空题(15分,每空1分)
1、全局作用域、文件作用域、函数作用域、块作用域
2、x-y x=x-y
3、传值引用传递变量地址传址
4、成员的访问控制信息
5、构造函数析构函数
6、inline
7、b
二、选择题(20分,每空2分)
1、A
2、A
3、C
4、A
5、C
6、A
7、A
8、BAD
三、阅读程序填空题(15分,第一个空1分,其它空2分)
1、sqrt (1000) (1分)
n%8==0(2分)
cout << i*i <<”,” (2分)
2、int TotalSum (int *array , int len) (2分)
int Total(2分)
int sum=0(2分)
i<len(2分)
sum+=array[i] (2分)
四、阅读程序,并写出结果(20分,每小题5分)
1、
2、为数组的指针,首先指向a[0],pb是pa的引用,当执行pb++时,也使pa指向
了a[1],所以输出为:20
3、
4、88.18,97
五、编程题(30分,每小题10分)
1、#include <iostream.h>
#include <math.h>
void main()
{
flaot a,b,c,d;
cout <<"a=";cin>> a;
cout <<"b=";cin>> b;
cout <<"c=";cin>> c;
d=b*b-4*a*c;
if (a==0)
cout << "不是二次方程!"<< endl
else if(d==0)
cout << "一个实跟:"<<-b/(2*a)<< endl
else if(d>0)
cout << "两个实跟:"<<-b+sqrt(d)/(2*a)<< "," <<(-b-sqrt(d)/(2*a)<<endl else
cout << "无实根!"<< endl
}
2、#include <iostream.h>
void main()
{
int i,j,k,sum,rsum;
cout<<"公鸡母鸡雏鸡"<< endl
for (i=0;i<=100;i++)
for (j=0;j<=100;j++)
for (k=0;k<=100;k++)
{
sum=I+j+k;
rsum=5*I+3*j+k/3;
if (sum==100&&rsum==100)
cout<<i<<" "<<j<<" " \ <<k<< endl;
}
}
3、实现本题功能的程序如下:
#include<iostream.h>
#include<iomanip.h>
class rectangle
{
private:
float ledge,sedge;
public:
rectangle() {};
rectangle(float a,float b)
{
ledge=a;aedge=b;
} ;
float area()
{
Return ledge*sedge;
};
void showlength()
{
cout<<”周长:”<<(ledge+sedge)+2<<endl;
}
rectangle tlength(rectangle r2) //以对象作为返回值{
rectangle temp;
temp.ledge=ledge+r2.ledge;
temp.sedge=sedge+r2.sedge;
return temp;
};
};
void main()
{
rectangle A(3.5,2.5),B(4.2,3.8);
cout<<”A”;
A.showlength();
cout<<”B”;
B.showlength();
rectangle C=A.tlength(B);
cout<<”C”;
C.showlength();
}。