C++程序设计(上)练习-答案

合集下载

《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。

C语言程序设计-第1-7章选择、填空习题及答案

C语言程序设计-第1-7章选择、填空习题及答案

习题一一、选择题1.C程序的基本单位是(A)。

A.函数B.文件C.语句D.字符2.C程序中的变量(B)。

A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。

A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。

A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。

2.结构化程序由顺序、选择、循环三种基本结构构成。

3.一个C程序只有一个名为main的主函数。

4.C程序中的每个语句以分号结束。

5.C程序中,函数由函数首部和函数体组成。

6.每个基本结构有一个入口和一个出口,没有死循环和死语句。

7.算法是计算机解决问题所依据的步骤。

习题二一、选择题1.下列数据中属于字符串常量的是( B)。

A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。

A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。

A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。

A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。

A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。

A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。

A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。

A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。

A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。

(完整版)C语言程序设计练习及答案

(完整版)C语言程序设计练习及答案
int num[N];
C、int num[0..10];D、int num[];
33、下列语句中,不能正确定义二维数组的是(A)。
A、int a[2][]={{1,2},{3,4}};B、int a[2][2]={{1}, 2,3};
C、int a[][2]={1,2,3,4};D、int a[2][2]={{1},{2}};
C、指针数组,指针函数D、数组指针,函数指针
26、在说明语句:int *f();中,标识符f代表的是(C)。
A、一个用于指向一维数组的指针变量
B、一个用于指向整型数据的指针变量
C、一个返回值为指针型的函数名
D、一个用于指向函数的指针变量
27、使用结构体struct的目的是(A)。
A、将一组相关的数据作为一个整体,以便程序使用
main( )
{ static int a[ ]={1, 3, 5}, b[ ]={2, 6, 10};
int i, s=0;
for(i=0; i<3; i++) s+=a[i] / b[i];
printf("%d", s); }
A、0B、1
C、1.5D、2
49、下列程序段的输出结果为(A)。
int a=4,b=3,c=2,d=1;
C、1D、3
20、在一个表达式中含下列运算符,优先级最高的是(B)。
A、赋值运算符B、算术运算符
C、条件运算符D、关系运算符
21、下列语句组中,正确的是(C)。
A、char *s; s={"Beijing"};B、char s[8]; s={"Beijing"};
C、char *s; s="Beijing";D、char s[8]; s="Beijing";

C程序设计课后习题1-3(答案)

C程序设计课后习题1-3(答案)

C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。

A.main函数的入口 B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。

A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。

A. B.C.Tom B.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check_quality C.sal_ary_tot_al(5)C程序是由(D)组成。

A.若干个过程B.若干子程序C.一个主程序和若干子程序D.若干函数2.填空题(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。

(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。

(3)一个C语言程序至少应包含一个__主函数或main()__。

(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。

(5)函数体用___{______符号开始,用_____}______符号结束。

(6)注释的开始和结束标志分别为__/*____和____*/____。

为增强程序的__可读性___,应该为程序写上清晰的注释。

3.编程题:参考本章例题,编写一个C程序,输出以下信息。

***********************The data is ** 2005-03-23 ***********************程序如下:#include <stdio.h>Void main(){printf(“**********************\n”);printf(“*The data is *\n”);printf(“* 2005-03-23 *\n”);printf(“**********************\n”);}第二章习题1.选择题(1)设int m=10 ,则下列表达式的值不等于零的有(A F)。

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。

#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。

#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。

C语言程序设计_第一阶段练习参考答案

C语言程序设计_第一阶段练习参考答案

江南大学现代远程教育第一阶段练习题考试科目:《C语言程序设计》第一章至第四章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共20题,总分值40 ,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 有以下程序main(){ int i=1,j=1,k=2;if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()。

(2 分)A. 1,1,2B. 2,2,1C. 2,2,2D. 2,2,32. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是()。

(2 分)A. 6B. 0C. 2D. 13. 执行以下程序段后,变量a,b,c的值为()。

int x=11,y=10,a,b,c;a=(--x==y++)?--x:++y;b=x++; c=y; (2 分)A. a=10,b=10,c=9B. a=9,b=9,c=12C. a=9,b=9,c=11D. a=1,b=9,c=114. 以下程序的输出结果是用()表示。

main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);} (2 分)A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,115. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车> ,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()。

(2 分)A. scanf(“%2d%2d%2d”,&i,&j,&k);B. scanf(“%d %d %d”,&i,&j,&k);C. scanf(“%d,%d,%d”,&i,&j,&k);D. scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);6. 以下非法的赋值语句是()。

C语言程序设计_第一阶段练习参考答案

C语言程序设计_第一阶段练习参考答案

江南大学现代远程教育第一阶段练习题考试科目:《C语言程序设计》第一章至第四章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共20题,总分值40 ,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 有以下程序main(){ int i=1,j=1,k=2;if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()。

(2 分)A. 1,1,2B. 2,2,1C. 2,2,2D. 2,2,32. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是()。

(2 分)A. 6B. 0C. 2D. 13. 执行以下程序段后,变量a,b,c的值为()。

int x=11,y=10,a,b,c;a=(--x==y++)?--x:++y;b=x++; c=y; (2 分)A. a=10,b=10,c=9B. a=9,b=9,c=12C. a=9,b=9,c=11D. a=1,b=9,c=114. 以下程序的输出结果是用()表示。

main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);} (2 分)A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,115. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车> ,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()。

(2 分)A. scanf(“%2d%2d%2d”,&i,&j,&k);B. scanf(“%d %d %d”,&i,&j,&k);C. scanf(“%d,%d,%d”,&i,&j,&k);D. scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);6. 以下非法的赋值语句是()。

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题1. 编写C++程序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B2. 设有定义int i;double j=5;,则10+i+j值的数据类型是()A. intB. doubleC. floatD. 不确定答案:B3. 有关C++编译指令,以下叙述正确的是()A. C++每行可以写多条编译指令B. #include指令中的文件名可含有路径信息C. C++的编译指令可以以#或//开始D. C++中不管#if后的常量表达式是否为真,该部分都需要编译答案:B4. 在下列成对的表达式中,运算结果类型相同的一对是()A. 7.0/2.0和7.0/2B. 5/2.0和5/2C. 7.0/2和7/2D. 8/2和6.0/2.0答案:A5. 在C++中不返回任何类型的函数应该说明为()A. intB. charC. voidD. double答案:C6. 决定C++语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D7. 在C++中,函数原型不能标识()A. 函数的返回类型B. 函数参数的个数C. 函数参数类型D. 函数的功能答案:D8. 在int a=3,int *p=&a;中,*p的值是()A. 变量a的地址值B. 无意义C. 变量p的地址值D. 3答案:D9. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数答案:A10. 适宜采用inline定义函数情况是()A. 函数体含有循环语句B. 函数体含有递归语句C. 函数代码少、频繁调用D. 函数代码多、不常调用答案:C11. 在函数定义中的形参属于()A. 全局变量B. 局部变量C. 静态变量D. 寄存器变量答案:B12. C++语言中所有在函数中定义的变量,连同形式参数,都属于()A. 全局变量B. 局部变量C. 静态变量D. 函数答案:B13. 下列有关重载函数的说法中正确的是()A. 重载函数必须具有不同的返回值类型B. 重载函数参数个数必须相同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同答案:C14. 使用地址作为实参传给形参,下列说法正确的是()A. 实参是形参的备份B. 实参与形参无联系C. 形参是实参的备份D. 实参与形参是同一对象答案:D15. 在C++中,使用流进行输入输出,其中用于屏幕输入()A. cinB. cerrC. coutD. clog答案:A16. 若有以下定义,则说法错误的是()int a=100,*p=&a;A. 声明变量p,其中*表示p是一个指针变量B. 变量p经初始化,获得变量a的地址C. 变量p只可以指向一个整型变量D. 变量p的值为100答案:D17. C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D18.3.可替换#define PI 3.1415926的语句是()A. float PI 3.1415926;B. const float PI=3.1415926;C. const PI(3.1415926);D. const 3.1415926;答案:B19.如果一个函数没有返回值,则应选择下列说明符中的()。

A. doubleB. voidC. intD. char答案:B20.8.下列哪种默认参数的声明是不正确的(C)A. int max(int a,int b,int c,int d=0);B. int max(int a,int b,int c=0,int d=0);C. int max(int a=0,int b,int c=0,int d=0);D. int max(int a,int b=0,int c=0,int d=0);21.包含哪种语句的函数不能声明为内联函数(A)A.循环B.变量自增自减C.if...else…D.变量声明22.已知:const char *ptr ; 那么ptr 应该是( A )。

A、指向字符串常量的指针B、指向字符串的常量指针C、指向字符的常量的指针D、指向字符常量的指针23.11、在C++中,关于下列设置参数默认值的描述中,正确的是( C ).A. 不允许设置参数的默认值B.设置参数默认值只能在定义函数时设置C.设置参数默认值时,应该是先设置右边的再设置左边的D.设置参数默认值时,应该全部参数都设置二、填空题1. 开发一个C++语言程序的步骤通常包括编辑、___、连接、运行和调试。

答案:编译2. 假设int a=1,b=2;则表达式(++a/b)*b--的值为___。

答案:23. 下面程序的输出结果为___。

#include <iostream.h>void main(){int num=2,i=6;do{i--;num++;}while(--i);cout<<num<<endl;}答案:54. 由const修饰的对象称为___。

答案:常对象5. 表达式cout<<end1 还可表示为___。

答案:‘\n’6. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。

答案:->7. C++程序的源文件扩展名为___。

答案:cpp8. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件。

答案:自定义9. C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。

答案:传地址或引用10. 若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的___语句。

答案:声明11. 在C++中有两种参数传递方式:传值和___。

答案:传引用或地址12. 在函数前面用___保留字修饰时,则表示该函数表为内联函数。

答案:inline13. C++是通过引用运算符___来定义一个引用的。

答案:&14. 局部对象和全局对象中,在同一程序中___生存期最长。

答案:全局对象15.布尔类型标识符是()答案:bool16.若要使用C++标准类库,需要指定相应的命名空间,所用的语句是——————。

答案:using namespace std;17.使用new为int数组动态分配10个存储空间是___。

答案:new int[10];18.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句___。

答案:int *ip=new int[10];19.8. C++中语句const char * const p=“hello”;所定义的指针p和它所指的内容都不能被___。

答案:修改20.如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是___。

答案:const double PI(3.14159);或者const double PI=3.14159;21.面向对象程序设计的3个主要性质是:______、继承、______。

答案:封装,多态22.使用cin和cout进行输入输出操作的程序必须包含头文件___答案:iostream.h三、改错题1. #include <iostream.h>void main(){int i,*p;i=10;*p=i;cout<<*p<<endl;}答案:*p=i;指针即地址没有被赋值。

[修改]p=&i;2. 以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。

#include <iostream.h>void swap(int &a,int &b){a=a+b;b=a-b;a=a-b;}void main(){int a=19,b=15;cout<<"a="<<a<<",b="<<b<<endl;swap(&a,&b);cout<<"a="<<a<<",b="<<b<<endl;}答案:swap(&a,&b);函数的形参是变量的引用,调用时的实参应该是地址。

[修改]swap(a, b);四、完成程序题(本大题共5小题,每小题4分,共20分)1. 下面是一个三角形三边,输出其面积C++程序,在下划线处填上正确的语句。

#include <iostream.h>#include <math.h>void area(){double a,b,c;cout<<"Input a b c:";________if(a+b>c&&a+c>b&&c+b>a){double l=(a+b+c)/2;_______cout<<"The area is:"<<s<<endl;}elsecout<<"Error"<<endl;}void main(){area();}答案:cin>>a>>b>>c;,double s=sqrt(l*(l-a)*(l-b)*(l-c));[解析]输入三个边的长度,由公式得出三角形的面积double s=sqrt(l*(l-a)*(l-b)*(l-c));2. 下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

#include <iostream>_________;_________;void main(){double rad;cout<<"rad=";cin>>rad;double l=2.0*pi*rad;double s=pi*rad*rad;cout<<"\n The long is:"<<l<<endl;cout<<"The area is:"<<s<<endl;}答案:using namespace std,#define pi 3.14159[解析]进行输入或输出要引入iostream, 所以using namespace std;从标点看没有分号,所以使用宏定义,#define pi 3.14159。

相关文档
最新文档