程序设计语言【C++基础-习题】

合集下载

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析1. 习题一:编写一个C程序,输出“Hello World!”。

解析:这是一个非常简单的C程序,只需要使用printf函数输出所需的字符串即可。

```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 习题二:编写一个C程序,计算两个整数的和并输出结果。

解析:这个程序需要使用scanf函数从用户输入中读取两个整数,并使用printf函数输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```3. 习题三:编写一个C程序,判断一个数是奇数还是偶数并输出结果。

解析:这个程序需要使用scanf函数读取用户输入的整数,并使用if-else语句判断该数的奇偶性,然后使用printf函数输出结果。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数");} else {printf("该数是奇数");}return 0;}```4. 习题四:编写一个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语言程序设计基础教程_习题答案

C语言程序设计基础教程_习题答案

习题答案第1章1.1 填空题1.1.1 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main 。

1.1.2 一个函数由__函数头__和__函数体__两部分组成。

1.1.3 在C语言中,输入操作是由库函数__scanf 完成的,输出操作是由库函数_printf_完成的。

1.1.4 通过文字编辑建立的源程序文件的扩展名是_.c__;编译后生成目标程序文件,扩展名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。

1.1.5 C语言程序的基本单位或者模块是__函数__。

1.1.6 C语言程序的语句结束符是_;___。

1.1.7 编写一个C程序,上机运行要经过的步骤:______________________________。

1.1.8 在一个C语言源程序中,注释部分两侧的分界符分别为_/*__和__*/__。

1.1.9 C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线。

且第一个字符必须为字母或下划线。

1.1.10 C语言中的标识符可分为关键字、预定义标识符和用户标识符3类。

1.2 选择题1.2.1 一个C程序的执行是从( A )。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束1.2.2 以下叙述不正确的是(C)。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C) 在C程序中,注释说明只能位于一条语句的后面D) C程序的基本组成单位是函数1.2.3 C语言规定:在一个源程序中,main函数的位置( C )。

A)必须在程序的开头B)必须在系统调用的库函数的后面C)可以在程序的任意位置D)必须在程序的最后1.2.4 C编译程序是(A)。

A)将C源程序编译成目标程序的程序B)一组机器语言指令C) 将C源程序编译成应用软件D) C程序的机器语言版本1.2.5 要把高级语言编写的源程序转换为目标程序,需要使用(D)。

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个 main函数。

c) 在C语言中,输出操作是有库函数 printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为 main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。

C语言习题答案1-7章

C语言习题答案1-7章

程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。

A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整参考答案:D【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。

所以选项A)、B)、C)说法都不完整。

2.以下关于简单程序设计的步骤和顺序的说法中正确的是。

A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构参考答案:B【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。

②算法设计:给出解决问题的步骤,即算法。

③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。

④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。

⑤程序调试:对编写好的程序进行调试,修改程序中的错误。

⑥程序文档编写与程序维护。

综上所述,B)选项是符合上述描述的,其他选项不恰当。

3.以下叙述中正确的是________。

A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完参考答案:C【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。

故本题答案为C)。

4.以下叙述中正确的是。

A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中参考答案:C【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。

C语言基础练习题

C语言基础练习题

A.s=’\012’;
B.s= ’u+v’;
C.s=’1’+’2’;
D.s=1+2;
35.已知 s 是字符型变量,下面正确的赋值语句是()。
A.s=’abc’;
B.s=’\08’;
C.s=’\xde’;
D.s=”\”;
36.若有以下定义,则正确的赋值语句是()。
int x,y;
float z;
A.x=1,y=2,
46.有如下程序段,对应正确的数据输入是()。
float x,y;
scanf(”%f%f”, &x,&y);
printf(”a=%f,b=%f”, x,y);
A.2.04<回车>
B.2.04,5.67<回车>
5.67<回车>
C.A=2.04,B=5.67<回车>
D.2.055.67<回车>
47.有如下程序段,从键盘输入数据的正确形式应是()。(注:
22<回车>
33
C.10.0<回车>
D.10 22<回
车>
22.0 33.0<回车>
33<回车>
44.有如下程序,若要求 x1、x2、y1、y2 的值分别为 10、20、A、
B,正确的数据输入是()。(注:└┘代表空格)
int x1,x2;
scanf(”%d%d”,&x1,&x2);
scanf(”%c%c”, &y1,&y2);
printf(”string3=%2s*”, ”girl”);
A.1020AB

程序设计语言C_习题集(含答案)

程序设计语言C_习题集(含答案)

《程序设计语言C》课程习题集一、单选题1.在C语言中,合法的长整型常数是A) OL B) 4962710 C) 324562& D) 216D2.以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD3.以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D4.以下程序的输出结果是main(){ int a=3;printf("%d\n",a+(a-=a*a) );}A) -6 B)12 C) 0 D) -125.设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) 36.t为int类型,进人下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对7.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定8.以下程序的输出结果是main(){ int i, a[10];for(i=9;i>=0;i- -) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 3699.以下选项中,不能正确赋值的是A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest"; D) char *s4="Ctest\n";10.以下程序的输出结果是union myun{ struct{ int x, y, z; } u;int k;} a;main(){ a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A)4 B) 5 C) 6 D) 011.以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点12. C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-while D) if、for、continue13.下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头14.有以下程序段int m=0,n=0; char c=’a’;scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,015.有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是A) 011122 B) 012 C) 012020 D) 12016.有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,117.有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,518.有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A) n,two B) t,one C) w,one D) o,two19.有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,k=2;for(i=0;i<3;i++){ printf("%d ",m[k][i]); }}执行后输出结果是A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 920.设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A) STD tt[2]={{1,’A’,62},{2,’B’,75}};B) STD tt[2]={1,"A",62,2,"",75};C) struct tt[2]={{1,’A’},{2,’B’}};D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}};21.以下选项中属于C语言的数据类型是A)复数型B)布尔型C)集合型D)整型22.一个C程序的执行是从A)main()函数开始,直到main()函数结束B)第一个函数开始,直到最后一个函数结束C)第一个语句开始,直到最后一个语句结束D)main()函数开始,直到最后一个函数结束23.设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是A)3 B)0C)-12 D)924.若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是A)cd\0e B)'c''d' C)cd D)cd e25.已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;下列表达式不是4的是A)*(*p+3) B)*p+3 C)*(*(p+0)+3) D)a[0][3]26.以下有宏替换不正确的叙述A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符串替换D)宏名必须用大写字母表示27.执行char str[10]=”Ch\nina”; strlen(str)的值是A)5 B)6 C)7 D)928.下面程序的输出结果是#define POWER(x) (x*x)main(){int i=4; printf("%d",POWER(i-2)); }A)-9 B)-7 C)5 D)-629.在定义int a[3][4];后,第10个元素是A)a[2][4] B)a[3][2] C)a[3][3] D)a[3][1]30.下面程序的输出结果是typedef struct{long x[2];short y[4];char z[8];}MYTYPE;MYTYPE a;main(){ printf("%d\n",sizeof(a));}A)2 B)8 C)14 D)2431.以下能正确进行字符串赋值的是A)char s[5]={‘a’,’e’,’I’,’o’,’u’} B)char s[5];s=”good”C)char s[5]=”abcd” D)char s[5];s[]=”good”32.若有float x;则sizeof(x)和sizeof(float)两种描述A)都正确B)都不正确C)前者正确,后者不正确D)后者正确,前者不正确33.若有代数式3ae/(bc),则不正确的C语言表达式是A)3*a*e/b*c B)3*a*e/b/c C)a/b/c*e*3 D)a*e/c/b*334.下面程序的运行结果是Main( ){struct cmplx{ int x;int y;}cnum[2]={1,3,2,7};Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);}A)0 B)1 C)3 D)635.若有以下说明和语句,且0<=i<10,则()是对数组元素的错误引用int a[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;A)*(a+i) B)a[p-a] C)p+i D)*(&a[i])36.设有以下宏定义:#define M 2#define X(m) ((M+2)*m)则执行语句:z=2*(M+X(3+2));后,z的值为A)44 B)45 C)32 D)3337.在如下程序段中的while循环int k=0;While(k=1) k++;A)有语法错,不能执行B)无限循环C)一次都不执行D)执行一次38.下列程序运行的结果为#include<stdio.h>Main(){ int k=0;Char c=’A’;Do{switch(c++){ case ‘A’:k++;break;Case ‘B’:k- -;break;Case ‘C’:k+=2;break;Case ‘D’:k=k%2;break;Case ‘E’:k=k*10;break;Default:k=k/3;}K++;}while(c<’G’);Printf(“k=%d”,k);}A)k=4 B)k=6 C)k=7 D)k=839.下列程序运行的结果为#include<stdio.h>fun(int x,int y,int *cp,int *dp){*cp=x+y;*dp=x-y;}main(){ int a,b,c,d ;a=30 ;b=50;fun(a,b,&c,&d);printf(“%d,%d\n”,c,d);}A)50,30 B)30,50 C)80,-20 D)80,2040.阅读程序回答问题:main( ){ int i,j,k,m=0;for(i=1;i<4;i++)for(j=1;j<4;j++)for(k=1;k<4;k++)m++;printf(“M=%d”,m);}以上程序输出M=( ).A)3 B)6 C)9 D)2741.能将高级语言编写的源程序转换为目标程序的是A)链接程序B)解释程序C)编译程序D)编辑程序42.以下4组用户定义标识符中,全部合法的一组是A)main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _00143.设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是()A)a++ B)b++ C)c++ D)d++;44.以下4个选项中,不能看作一条语句的是A){;} B)a=0,b=0,c=0 C)if(a>0) D)if(b==0) m=1;n=2;45.有以下程序main( ){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A)another B)another C)another D)numbernumber number number numberanother number46.有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,147.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A)5 B)6 C)8 D)948.有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是A)28 B)22 C)16 D)449.设有以下语句typedef struct S{ int g; char h;}T;则下面叙述中正确的是A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量50.有以下程序int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是A)10 B)9 C)7 D)851.组成C程序的基本单位是A)函数B)标识符C)表达式D)语句52.设int类型的数据长度为2字节,则该类型数据的取值范围A)0至65536 B)0至65535 C)-32767至32768 D)-32768至3276753.在C语言中,逻辑值“真”是用( )表示的。

程序设计基础(C语言)习题以及答案

程序设计基础(C语言)习题以及答案

其身正,不令而行;其身不正,虽令不从。

——《论语》一、选择题1.下列属于C语言中合法的标识符的是( B )A 、ex-1B 、-cookC 、951aD 、if2.若 x 为 float 型变量,则以下语句(A )。

x=213.82631;printf("%-4.2f\n",x);A、输出为213.83B、输出格式描述符的域宽不够,不能输出C、输出为213.82D、输出为-213.823.一个C程序的执行是从(C )A、main函数开始,直到最后一个函数结束B、第一个函数开始,直到最后一个函数结束C、main函数开始,直到main函数结束D、第一条语句开始,直到最后一条语句结4.构成C语言源程序的基本单位是(B )A、过程B、函数C、子程序D、命令5.以下叙述不正确的是(D )A、注释说明被计算机编译系统忽略B、注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用C、注释符“/”和“*”之间不能有空格D、在C程序中,注释说明只能位于一条语句的后面6.在C程序中,main函数的位置( A)A、可以任意B、必须作为最后一个函数C、必须作为第一个函数D、必须放在它所调用的函数之后7. C语言属于(C )A、机器语言B、汇编语言C、高级语言D、低级语言云路鹏程九万里,雪窗萤火二十年。

——《王实甫》人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。

——《顾炎武》8.使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(D )。

A、a=25 b=25(空格分开)B、25 25(空格分开)C、25,25D、a=25,b=259. 下列叙述中,不正确的是( C)A、分号是C语句的必要组成部分B、C语句的注释可以写在语句的后面C、主函数的名字不一定用main表示D、函数是C程序的基本单位10.C程序是由( B)构成的A、若干过程B、一个或多个函数C、若干子程序D、一个主程序与若干子程序11. 以下程序的输出结果是(B )。

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

C++基础程序设计举例董国雄2009年1月目录第 1 章面向过程的程序设计 (3)§1.1 面向过程的程序设计(控制台程序) (3)§1.1.1 Hello Word! (3)§1.1.2 cin、cout及简单格式控制 (3)§1.1.3 字符变换、数字映射 (4)§1.1.4 整数和构成整数的字符之区别 (4)§1.1.5 个税计算——数量的分段处理 (4)§1.1.6 “水仙花”数及其它——枚举验证 (5)§1.1.7 用字母输出图形——循环语句 (5)§1.1.8 交换变量值——函数参数传递方式 (5)§1.1.9 数值近似计算——缺省值参 (6)§1.1.10 数组作为函数的参数——通用数组处理函数 (6)§1.1.11 字符数组——NULL结尾的字符串 (7)§1.1.12 数组的遍历与扫描——成分分拆、重复计数 (7)§1.1.13 日期时间处理——貌似简单,实则复杂 (8)§1.1.14 递归——理解有点困难 (9)§1.1.15 Josephus问题——规模不确定,new和delete (9)§1.1.16 哥德巴赫猜想——构造性验证 (10)§1.1.17 矩阵求逆——从文件读入数据 (10)§1.1.18 经典问题——面向过程的程序综合 (10)第 2 章面向对象的程序设计 (15)§2.1 面向对象的程序设计(控制台应用程序) (15)§2.1.1 简单的学生成绩管理——容器类的抽象 (15)§2.1.2 对简单调查信息的处理——统计对象集合中的类别 (15)§2.2 图形界面程序(GUI程序) (16)第 3 章样式名称及使用 (17)§3.1 样式名称 (17)§3.1.1 标题名称 (17)§3.1.1.1 一级标题 (17)§3.1.1.2 二级标题 (17)§3.1.1.3 三级标题 (17)§3.1.1.4 四级标题 (17)§3.1.2 正文名称 (17)§3.1.3 页眉页脚 (17)§3.2 页面设置 (18)§3.3 样式创建 (18)§3.4 样式使用 (18)§3.4.1 文档模版 (18)§3.4.2 文档目录 (18)第 4 章Word使用的几个问题 (19)§4.1 修订和审阅 (19)§4.2 样式创建与保护 (19)§4.2.1 样式创建和修改 (19)§4.2.2 样式保护 (19)§4.3 无用样式删除 (19)第 1 章面向过程的程序设计§1.1面向过程的程序设计(控制台程序)§1.1.1Hello Word!◆问题✧编制程序,在屏幕上输出Hello World!。

知识✓最简单程序的结构。

✓库函数(library)的使用。

✓命名空间。

✓源程序文件的缺省扩展名。

§1.1.2cin、cout及简单格式控制◆问题✧输入圆半径,计算圆的面积和周长并输出。

知识✓C++的输入输出方法(流对象、库函数)。

✓输入流的使用。

✓输出流的格式化。

✓常变量的使用。

✓体会IPO。

§1.1.3字符变换、数字映射◆问题✧求浮点数的整数和小数部分。

✧输入一个整数,将其变换/影射到0到99之间。

✧测试异或运算的不变性(ObjA^ObjB^ObjB == ObjA),任给一个数字字符,找出它后面的第n个数字字符(将数字字符看作围成一圈)。

✧简单的加密解密:将一字符串用另一字符串作异或运算;将一字符串中的字母和数字用其后第n个字母和数字替换;。

知识✓自动类型转换,强制类型转换。

✓相关运算符和运算的使用。

✓ASCII码,字母表✓判断字符性质(编码特点或库函数)§1.1.4整数和构成整数的字符之区别◆问题✧输入一个正整数,求出其是几位数?求出其各位上的字符是什么?将其各个位上的字符顺序反转后,得到的整数是多少?知识✓数字和字符的区别。

✓处理数字位的基本方法。

§1.1.5个税计算——数量的分段处理◆问题✧输入个人应税收入,计算并输出应缴个人所得税。

§1.1.6“水仙花”数及其它——枚举验证◆问题✧求出所有的水仙花数。

即各位数字的立方和等于数字本身的三位数。

✧求出正整数n的所有因子。

✧求两正整数最小公倍数,最大公约数。

✧两个乒乓球队进行比赛,各出3人。

甲队为A、B、C,乙队为X、Y、Z。

对阵已抽签决定,已知A不和X赛,C不和X、Z赛,试求对阵名单。

知识✓枚举、验证、排除的方法。

§1.1.7用字母输出图形——循环语句◆问题✧用“*”在屏幕上画出菱形。

知识✓明确问题要求。

✓循环的不同表达。

✓菱形大小和绘制字符作为参数(全局参数)。

§1.1.8交换变量值——函数参数传递方式◆ 问题✧ 写一函数,交换两个整数(浮点数、字符)变量的值。

知识✓函数调用及参数传递机制。

✓参数传递方式:值传递、地址传递。

✓C++参数传递形式:值、指针、引用。

✓函数如何获得其处理信息。

§1.1.9 数值近似计算——缺省值参◆ 问题✧ 编写函数,用公式 +++++!!2!1121n x x x n 求x e ,误差精度通过缺省值参传入。

✧ 用迭代公式2/)/(1nn n X C X X+=+求C 的平方根,误差精度通过缺省值参传入。

知识✓C++的缺省参数。

✓计算机字长对大数计算的影响。

✓舍入误差的累积效应。

✓依赖于误差的循环终止控制。

§1.1.10 数组作为函数的参数——通用数组处理函数◆ 问题编制函数并测试:✧求一维数组中的最大最小元素,返回值、下标、指针。

✧对一维数组排序。

✧用初等变换将矩阵化为特殊矩阵。

✧矩阵的各种运算。

知识✓将一维、二维数组传递到函数中进行处理✓数组处理的常见方法§1.1.11字符数组——NULL结尾的字符串◆问题编制函数并测试:✧求字符串的长度。

✧比较字符串的大小。

✧将两个字符串连接构成一个字符串。

✧统计字符串中的单词数量(假定单词以空格分开)。

知识✓C++中字符串处理的底层方法✓C++中字符串处理的库函数✓字符串处理的超界问题§1.1.12数组的遍历与扫描——成分分拆、重复计数◆问题✧输入一个正整数,表示人民币元的数量,用最少张数的纸币表示,求各面值的数量。

✧将小写的人民币表示转换成大写人民币表示,如¥23056.07转换后为:贰万叁仟零百伍拾陆元零角柒分或贰万叁仟零伍拾陆元零柒分。

✧输入一批正整数,求出其中互不重复的整数,每个整数重复出现的次数。

✧输入一段英文文本,每行不超过100个字符,求其中的单词、单词数量和每个单词的重复次数。

知识✓数组元素的个数不确定,保守假定。

✓数据处理的基本方法,扫描和遍历。

✓需要动态处理数据结构的能力。

✓在结构中的查找效率是重要的,如何提高?§1.1.13日期时间处理——貌似简单,实则复杂◆问题✧使用以24小时计时,输入两个时间(时分秒),求两时间间隔的秒数。

✧输入1~365中的一个数,求它是某一年的几月几日。

✧输入年月日,求当日是星期几。

✧输入两个日期(年月日),求间隔的天数。

✧在屏幕上显示某年某月的日历(一行一周),进而构造万年历。

知识✓元年元月元日为星期一。

✓计算机中如何处理日期和时间?✓C++中关于日期和时间的库函数有那些功能?§1.1.14递归——理解有点困难◆问题✧观察对函数void CallOrder(int n){ if (n>0) { cout << n % 10 << endl; CallOrder(n/10);}}void CallOrder(int n){ if (n>0) { CallOrder(n/10);cout << n % 10 << endl; }}的调用结果,理解调用顺序。

✧编制字符串是否为“回文”的递归函数。

✧编制比较两个字符串大小的非递归和递归函数。

✧编制一个二分查找的非递归和递归函数。

✧Hanoi塔问题,统计递归的调用次数。

知识✓非递归算法和递归算法可以互相转化。

✓递归的实质是栈结构。

✓递归在某些场合似乎成为唯一选择(如Hanoi塔)。

✓静态变量统计函数调用次数。

✓递归的调用顺序大多数时候比较难以说明。

§1.1.15Josephus问题——规模不确定,new和delete◆问题✧有m个人围成一圈,从1到n循环报数,报到n的人退出,最后剩下的人是哪位?(封装成函数,单独的头文件和源文件组织)知识✓new和delete的使用。

✓静态数据方法和动态数据方法的优缺点。

✓程序的多文件组织。

§1.1.16哥德巴赫猜想——构造性验证◆问题✧验证一个不小于6的偶数可以表示成两个素数之和。

(抽象出多次调用的函数,单独的头文件和源文件组织)知识✓四色定理的证明,归结为一个有限验证。

✓几何定理的机器证明,将证明转化为代数问题(通常是多项式方程组的求解问题)(吴方法)。

与枚举有千壤之别。

✓程序的多文件组织。

§1.1.17矩阵求逆——从文件读入数据◆问题✧从文件中读入一个矩阵,求其逆矩阵并输出到另一文件。

✧从文件中读入线性方程组,用Gauss消元法求解并输出到另一文件。

知识✓文件是大量数据输入输出的有力手段。

✓动态二维数组的申请和使用。

✓命令行参的使用。

§1.1.18经典问题——面向过程的程序综合◆问题✧八皇后问题。

在8*8的棋盘上,放置8个皇后,使她们不能位于同一行、同一列、同一对角线上,请给出一种摆放方法或报告无解。

✧骑士巡游问题。

在N*N棋盘上,一位骑士从某位置出发,按照中国象棋中“马”的走法(日字对角),欲走遍棋盘上的所有位置各一次,请给出路线图或报告无解。

知识✓所述问题直接给出了模型,需设计算法并实现算法。

✓确定问题的解空间,通常是一棵树(子集树/排列树)。

✓使用回溯方法,活动节点、扩展节点、死节点。

✓单个解、所有解。

✓一边构造解答树,一边搜索,同时抛弃已搜索的树枝。

✓各类经典算法:分治法、贪心法、回溯法、分支限界法、动态规划等。

(一)可行解示例(二)解答树示例…………………………行12n 分支n n-11n!n 后问题解空间树(排列树)………………步数12骑士巡游问题解空间树(排列树)n*n-18个走法(三)解的数据结构合适的表示解空间(solution space )是非常重要的,往往决定者算法的实现难易程度。

相关文档
最新文档