答案C++程序设计习题(自编)
- 格式:doc
- 大小:210.57 KB
- 文档页数:36
c程序设计语言(第2版新版)习题解答C程序设计语言(第2版新版)是计算机编程领域的经典教材,由Brian W. Kernighan和Dennis M. Ritchie共同编写,后者也是C语言的共同发明者。
这本书不仅介绍了C语言的基本语法和编程技巧,还包括了丰富的习题,帮助读者更好地理解和掌握C语言。
以下是对书中部分习题的解答。
第1章引言习题1-1:编写一个C程序,打印出“Hello, World!”。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```习题1-2:修改上述程序,使其打印出不同的字符串。
```c#include <stdio.h>int main() {printf("Welcome to C Programming!\n");return 0;}```第2章数据类型及其运算习题2-1:编写一个程序,计算两个整数的和,并打印结果。
```c#include <stdio.h>int main() {int a, b, sum;a = 5;b = 10;sum = a + b;printf("The sum of %d and %d is %d\n", a, b, sum);return 0;}```习题2-2:编写一个程序,计算两个浮点数的乘积。
```c#include <stdio.h>int main() {float x, y, product;x = 3.14159;y = 2.718;product = x * y;printf("The product of %.5f and %.5f is %.5f\n", x, y,product);return 0;}```第3章控制语句习题3-1:编写一个程序,打印从1到10的整数。
《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、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时值为“真”,否则为“假”的表达式是:( )。
C语言编程题带答案C 语言作为一门广泛应用的编程语言,在学习过程中,通过编程题的练习可以更好地掌握其语法和逻辑。
下面为您带来几道 C 语言编程题以及详细的答案解析。
题目一:求两个整数的和要求编写一个 C 语言程序,输入两个整数,计算并输出它们的和。
```cinclude <stdioh>int main(){int num1, num2, sum;printf("请输入第一个整数:");scanf("%d",&num1);printf("请输入第二个整数:");scanf("%d",&num2);sum = num1 + num2;printf("这两个整数的和是:%d\n", sum);return 0;```解析:在这个程序中,首先使用`printf`函数提示用户输入两个整数,然后通过`scanf`函数获取用户输入的值并存储在变量`num1`和`num2`中。
接下来,将这两个数相加并将结果存储在变量`sum`中,最后使用`printf`函数输出结果。
题目二:判断一个数是否为奇数编写一个 C 语言程序,输入一个整数,判断它是否为奇数,如果是奇数输出“是奇数”,否则输出“不是奇数”。
```cinclude <stdioh>int main(){int num;printf("请输入一个整数:");scanf("%d",&num);if (num % 2!= 0) {printf("是奇数\n");} else {printf("不是奇数\n");return 0;}```解析:在这个程序中,使用取余运算符`%`来判断一个数是否能被2 整除。
如果取余结果不为 0,说明该数不能被 2 整除,即为奇数;否则,不是奇数。
题目三:计算 1 到 100 的累加和编写一个 C 语言程序,计算 1 到 100 的累加和。
```cinclude <stdioh>int main(){int sum = 0, i;for (i = 1; i <= 100; i++){sum += i;}printf("1 到 100 的累加和是:%d\n", sum);return 0;```解析:这里使用了`for`循环从 1 迭代到 100,每次迭代都将当前的数字加到变量`sum`中,最终得到 1 到 100 的累加和。
(完整版)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语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
C语言程序设计习题及答案算法与程序设计1.将三个数排序需要比较______次A、2B、3C、4D、不确定2.算法的表示方法有________A、自然语言,传统流程图,N-S流程图,伪代码,计算机语言B、高级语言,汇编语言,机器语言C、C语言,QBASIC语言,InterDevD、图形图像法,描述法,编程法E、计算机语言3.算法的表示方法有_______4.算法有哪些特性?5.什么叫算法?为什么要提倡结构化算法?习题答案:1.B 2.A 3 自然语言,传统流程语言,N-S流程图,伪代码,计算机语言 4.略 5.略C语言概述1.C语言程序的基本单位是(A )。
A、函数B、过程C、子程序D、子例程2.下列各选项中,合法的c语言关键字是( D )。
A、integexB、sinC、stringD、void3.下列选项中,是C语言提供的合法的关键字的是( C )A、swicthB、cherC、defaultD、Case4.下列叙述不正确的是( B )A、在c程序中,%是只能用于整数运算的运算符B、在C程序中,无论是整数还是实数,都能正确无误地表示C、若a是实型变量,c程序中a=20是正确的,因此实型变量允许被整型数赋值D、在C程序中,语句之间必须要用分号“;”分隔5.在C程序中,可以作为用户标识符的一组标识符是( B )。
A、void define WORDB、as_b3 _224 ElseC、switch _wel easeD、4b DO SIG6.下列不合法的十六进制数是( A)A、oxffB、0XcdeC、OxllD、Ox237.在c语言中,下列合法的字符常量是( B )A、'\039'B、'\x76'C、'ab'D、'\o'8 以下选项中合法的用户标识符是( D )A、intB、a#C、5memD、_2439.(A )是构成c语言程序的基本单位A、函数B、变量C、子程序D、语句10.一个C语言程序总是从( B )开始执行A、主过程B、主函数C、子程序D、主程序11.以下叙述不正确的是( D )A、一个c源程序可由一个或多个函数组成B、一个C源程序必须包含一个main()函数C、c程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面12.在C语言中,数字029是一个(D)A八进制数B十六进制数C十进制数 . D非法数13.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( C )。
自考c语言程序设计试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. varB. intC. letD. define答案:B2. 下列哪个选项不是C语言中的合法标识符?A. _nameB. 2nameC. nameD. name2答案:B3. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. ~答案:A4. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. goto答案:B5. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A6. C语言中,用于实现函数递归调用的关键字是:A. returnB. callC. recursiveD. self答案:A7. C语言中,用于定义一个指针变量的关键字是:A. pointerB. ptrC. *D. ref答案:C8. 下列哪个选项是C语言中的合法数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {1, 2, 3};D. All of the above答案:D9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. enum typeC. typeD. typedef答案:A10. 在C语言中,用于实现文件操作的库函数位于哪个头文件中?A. stdio.hB. stdlib.hC. string.hD. math.h答案:A二、填空题(每题3分,共30分)1. 在C语言中,定义一个整型变量并初始化为10的语句是:`int a = ______;`答案:102. C语言中,用于计算两个整数相加的表达式是:`________ + b;`答案:a3. C语言中,用于定义一个浮点型数组的语句是:`float arr[5] = {1.1, 2.2, 3.3,4.4, ______};`答案:5.54. 在C语言中,用于定义一个函数的关键字是:`________ void myFunction();`答案:void5. C语言中,用于定义一个指针指向整型变量的语句是:`int *p = ______;`答案:&a6. C语言中,用于定义一个结构体的语句是:`struct Student {int id; char name[50];};`答案:(无需填空)7. C语言中,用于定义一个枚举类型的语句是:`enum Color {RED, GREEN, BLUE} color;`答案:(无需填空)8. 在C语言中,用于定义一个二维数组的语句是:`int arr[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, ______ };`答案:{8, 9, 10, 11}9. C语言中,用于实现文件读取的函数是:`________`答案:fopen10. C语言中,用于实现字符串连接的函数是:`________`答案:strcat三、简答题(每题5分,共20分)1. 简述C语言中函数的定义和调用过程。
c程序设计考试题目及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. voidD. return答案:C2. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A3. 若有定义`int a = 5;`,则执行`a += 3;`后,变量a的值是多少?A. 3B. 5C. 8D. 无法确定答案:C4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. $variableD. variable!答案:B5. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A6. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][];B. int array[][3];C. int array[3][3];D. int array[][];答案:C7. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if x > yC. if (x > y) elseD. if (x > y) else if答案:A8. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for i = 0; i < 10; i++C. for (int i = 0; i < 10;)D. for (i = 0; i < 10; i++)答案:A9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int, int);B. int add(int a, int b)C. int add(int, int) {}D. int add(a, b)答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr[10];D. int ptr(int);答案:A二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于__输出__。
第一章习题1,C++程序文件扩展名是:cpp ,由于C++语言中保留了main函数,所以称为混合型语言,C语言是典型的面向过程语言,C++ 兼容C语言,所以也可以使用C++编制面向过程程序。
2,C++程序中两种注释方式://注释一行和/* 注释多行*/3,cout,cin用于C++程序中的输入输出,使用时必须添加包含命令:#include“istream.h“,与cout<<endl;等效的语句可以写作(多种形式):cout<<’\n’; cout<<”\n”4,int x,y,z; cin>>x>>y>>z;用于向变量输入数据,输入时三个数据间可以使用空格,tab,回车分隔。
5,若int x; double y,z; 则利用cin >>x>>y>>z;输入12.23.34则x,y,z的值分别是:12,0.23,0.34 6,使用cout和cin进行数据的输入输出时,若包含头文件命令为#include <iostream>,则需要同时使用语句:using namespace std;7,若程序中要使用字符串对象则要包含头文件#include <string.h>8,使用数学函数则要包含头文件#include < cmath.h >9,使用泛型算法中的sort方法并按逆序排列某数组内容则要添加头文件:functional.h10,int z(2);语句的作用是:定义整型变量z并初始化值为2 ,与之等价的语句可写作:int z=2; 11,void是定义声明函数函数时使用的类型,void定义的函数表示该函数无返回值。
此类函数中仍可以使用return语句,使用时须注意:return语句后不能有表达式,函数声明时给出函数类型,函数名,函数参数,其中无需给出参数名12,const int k=2;则表示k是整型常量值为2 ,main函数中k=11;语句是否可执行?不可执行。
使用此方式在函数中定义时必须注意:const限定的变量定义时必须初始化,若在类的数据成员定义时加const限定则必须注意的是:const限定的数据成员必须在构造函数的初始化列表中初始化13,如下语句是否正确,说明原因。
#define PI 3.1415q2b 正确,PI表示3.1415q2bConst double PI =3.1415q2b;错误,PI是double型数据14,函数重载时,若要求重载的函数参数类型与原函数类型一致,则参数个数不能相同,若要求重载函数参数个数与原函数一致,则参数类型不能一致。
重载函数的条件是重载函数的参数个数与参数类型不能与员函数完全相同。
15,C++中的常量表示:-32768,0,123L,0L,0A,0xA,0110,0108,0.2f,123.4,3.2F,‘0101’,‘\101’,NULL,正确的常量形式有哪些?16,new语句的作用是动态分配内存,int *p;p=new int [10];表示动态分配10个整型内存,并用p指向这些内存单元,int *p;p=new int (10);作用是动态分配一个整型内存,并初始化值为10 。
分配一块存放整型数据10的内存单元,并让一个指针p指向该单元的语句是:int *p=new int(10);17,数据类型&别名=对象名;是定义引用的格式。
引用的实质就是:1,引用实际上就是变量的别名,使用引用和直接使用变量一样。
引用不占用内存。
若有int x=1; int & r=x; 则&x表示变量x的地址,&r 表示变量x的地址。
语句int x=1; int & r; r=x; 是否正确并说明原因。
错误,引用必须在定义时初始化18,有数组int a[10] 若要定义一个r为a的引用语句为:typedef int array[10];array &r=a;19,若下列语句在某函数体内定义:const int *p; 是否正确,并说明原因:正确int * const p; 是否正确,并说明原因:错误const int * const p; 是否正确,并说明原因:错误20,泛型算法是C++标准模板库提供的一组数组操作的方法,分别是:copy,reverse,reverse_copy,sort,find 等,这些方法要使用必须包含头文件:algorithm.h ,sort方法对数组排序时,默认为升序排序,若要排序与之相反,可用greater 操作符,此时要包含头文件:functional.h,使用泛型算法的find 方法时也需要包含该头文件。
21,若有数组int a[10],b[5],并已存入数据,则利用(输出时数据间用*号分隔)copy输出a数组的a[1]到a[5]元素:copy(a,a+5,ostream_iterator<int>(cout,”*”));逆序输出a数组a[1]到a[5]元素:reverse_copy(a,a+5,ostream_iterator<int>(cout,”*”));对a数组a[1]到a[5]元素升序排序:sort(a,a+5);对a数组a[1]到a[5]元素降序排序:sort(a,a+5,greater<int>());将a数组的a[1]到a[5]元素复制到b数组中:copy(a,a+5,b)22,进行输入输出格式控制时需要用到C++中的格式操控符,请说明如下符号含义:dec,oct,hex,endl,setw,setfill,setiosflags,ios_base::right。
记忆课本上表1.8。
int a=22,b=0101;double c=1; cout<<setfill('*'); cout<<oct<<a<<endl;cout<<b<<endl; cout<<dec<<b<<endl; cout<<setw(5)<<b<<endl;cout<<setw(15)<<setiosflags(ios_base::showpoint )<<b<<endl;cout<<setw(15)<<setprecision(12)<<c<<endl;cout<<resetiosflags(ios_base::showpos )<<b<<endl;请写出输出结果:22,给出程序运行结果#include <iostream>#include <algorithm>#include <functional>using namespace std;main(){ double a[]={1.1,4.4,3.3,2.2},b[4];copy(a,a+4,ostream_iterator<double>(cout, " ")); cout<<endl;reverse_copy(a,a+4,ostream_iterator<double>(cout, " ")); cout<<endl;copy(a,a+4,b);sort(a,a+4);copy(a,a+4,ostream_iterator<double>(cout, " ")); cout<<endl;reverse_copy(a,a+4,b);copy(b,b+4,ostream_iterator<double>(cout, " ")); cout<<endl;sort(b,b+4,greater<double>());copy(b,b+4,ostream_iterator<double>(cout, " "));}23,若输入数据为10 10 10回车,给出程序运行结果#include <iostream>#include <iomanip>using namespace std;void main(){ int a,b, c;cin>>dec>>a; cin>>oct>>b; cin>>hex>>c;cout<<endl; cout<<a<<endl; cout<<b<<endl; cout<<c<<endl;cout<<endl;cout<<oct; cout<<a<<endl; cout<<b<<endl; cout<<c<<endl;cout<<endl;cout<<hex; cout<<a<<endl; cout<<b<<endl; cout<<c<<endl;cout<<endl;}24,给出程序运行结果#include <iostream>#include <iomanip>using namespace std;{ int a=11,b=12, c=13;cout<<setw(5); cout<<setfill('*');cout<<setiosflags(ios_base::right)<<a<<endl;cout<<b<<endl; cout<<c<<endl;cout<<resetiosflags(ios_base::right)<<a<<endl;cout<<setw(5); cout<<setfill('*');cout<<setiosflags(ios_base::left)<<a<<endl;cout<<b<<endl; cout<<c<<endl;cout<<endl;}25,给出程序运行结果#include <iostream>#include <iomanip>using namespace std;void main(){ int a=11,b= -12, c=13;cout<<setw(5); cout<<setfill('*');cout<<setiosflags(ios_base::right) <<setiosflags(ios_base::showpoint)<<a<<endl;cout<<b<<endl; cout<<c<<endl;cout<<resetiosflags(ios_base::right);cout<<setw(5); cout<<setfill('*');cout<<setiosflags(ios_base::left)<<a<<endl;cout<<b<<endl; cout<<c<<endl;cout<<endl;}26,给出程序运行结果#include <iostream>#include <iomanip>using namespace std;{ double x=1.123,y=2,z=123.3333333;cout<<setw(5); cout<<setfill('*');cout<<setiosflags(ios_base::right) <<setprecision(3)<<x<<endl;cout<<y<<endl; cout<<z<<endl;cout<<resetiosflags(ios_base::right);cout<<setw(20); cout<<setfill('*');cout<<setiosflags(ios_base::left)<<x<<endl;cout<<y<<endl; cout<<z<<endl;cout<<endl;}27,给出程序运行结果#include <iostream>#include <iomanip>using namespace std;void main(){ int a=22,b=0101; double c=1;cout<<setfill('*'); cout<<oct<<a<<endl; cout<<b<<endl;cout<<dec<<b<<endl; cout<<setw(5)<<b<<endl;cout<<setw(15)<<setiosflags(ios_base::showpoint )<<b<<endl;cout<<setw(15)<<setprecision(12)<<c<<endl;cout<<resetiosflags(ios_base::showpos )<<b<<endl;}28,给出程序运行结果#include "iostream"using namespace std;typedef myarray[5];void main(){ myarray x={1,2,3,4,5}; myarray &a=x; myarray &r=a;for(int i=0;i<5;i++) cout << x[i] ;for(i=0;i<5;i++) cout << r[i] ;}第二章习题1,结构体定义使用关键字struct ,结构体内可定义数据成员和成员函数,结构体内的成员可以使用private,public限定,未加限定时默认为public 。