C复习题程序的设计与问题求解附答案(吴)

合集下载

C语言程序的设计习题集与答案

C语言程序的设计习题集与答案

C语言程序的设计习题集与答案基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。

A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。

A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。

A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。

A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。

A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。

A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。

int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。

A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。

A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。

y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。

A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double 数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。

printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。

C语言程序设计试题及答案解析

C语言程序设计试题及答案解析

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语言程序设计习题及答案C语言是一种广泛应用的计算机编程语言,它具有高效、灵活和强大的特点,因此受到了许多程序员的青睐。

在学习C语言的过程中,练习编写程序是非常重要的一部分,因为通过实际的编程练习,可以更好地理解语言的特性和使用方法。

下面我们将介绍一些C语言程序设计的习题及答案,供大家参考学习。

1. 编写一个程序,计算并输出1到100之间所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```2. 编写一个程序,输入一个整数n,计算并输出1到n之间所有整数的和。

```c#include <stdio.h>int n, sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为:%d\n", n, sum);return 0;}```3. 编写一个程序,输入一个整数n,计算并输出n的阶乘。

```c#include <stdio.h>int main() {int n, factorial = 1;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%d\n", n, factorial);}```通过以上习题及答案的学习,我们可以更加深入地了解C语言的基本语法和编程思想,同时也能够提升自己的编程能力。

C语言程序的设计试题与答案完整版

C语言程序的设计试题与答案完整版

C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。

3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。

byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。

概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。

C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2、每个C语言程序中main函数是有且只有一个。

3、在函数中不可以再定义函数。

4、算法的是一定要有输出的,他可以没有输入。

5、break可用于循环结构和switch语句。

6、逗号运算符的级别最低。

第一章1)合法的用户标识符考查:合法的要由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了。

关键字不可以作为用户标识符号。

main define scanf printf 都不是关键字。

迷惑你的地方If是可以做为用户标识符。

因为If中的第一个字母大写了,所以不是关键字。

2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。

考试口诀:e前e后必有数,e后必为整数。

.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。

碰到这种情况,不要去管,一样做题。

掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。

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

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

C语言程序设计习题(含答案) C语言程序设计习题(含答案)C语言是一种常用的编程语言,被广泛应用于计算机科学和软件开发领域。

为了帮助学习者更好地掌握C语言的编程技巧,本文提供一些常见的C语言程序设计习题及其答案。

通过完成这些习题,学习者可以锻炼编程思维,加深对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;}```习题二:计算圆的周长和面积题目描述:编写一个程序,根据用户输入的半径,计算圆的周长和面积,并输出结果。

解答:```C#include <stdio.h>#define PI 3.14159int main() {double radius, circumference, area;printf("请输入圆的半径:");scanf("%lf", &radius);circumference = 2 * PI * radius;area = PI * radius * radius;printf("圆的周长为:%lf\n", circumference);printf("圆的面积为:%lf\n", area);return 0;}```习题三:判断一个数是否为素数题目描述:编写一个程序,判断用户输入的一个正整数是否为素数。

解答:```C#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```习题四:计算两个矩阵的乘积题目描述:编写一个程序,计算两个3x3的矩阵的乘积并输出结果。

c语言程序设计试题及答案解析

c语言程序设计试题及答案解析

c语言程序设计试题及答案解析C语言程序设计试题及答案解析一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C2. C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是______。

答案:int2. 若有以下C语言代码段:```cint a = 5, b = 10;printf("%d", a + b);```执行后输出的结果是______。

答案:15三、简答题1. 简述C语言中数组的定义和初始化方式。

答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。

数组的定义方式为:类型名数组名[数组大小];初始化方式可以是静态初始化,即在定义时直接赋值,如:int arr[5] = {1, 2, 3, 4, 5}; 或者动态初始化,即在定义后使用循环或赋值语句逐一赋值。

四、编程题1. 编写一个C语言程序,实现求一个整数的阶乘。

```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```五、分析题1. 请分析以下C语言代码段的运行结果,并解释原因。

```c#include <stdio.h>int main() {int x = 10;printf("%d", x++);return 0;}```答案:代码段的运行结果是10。

C语言程序设计复习题及参考答案

C语言程序设计复习题及参考答案

C语言程序设计复习题及参考答案━━━━━━━━━━━━━━━━━━一、程序设计共6题(共计120.0分)━━━━━━━━━━━━━━━━━━第1题(20.0分)/*----------------------------------------------------------------------题目:函数fun的功能是:用递归法计算斐波拉契数列中第n项的值。

从第1项起,斐波拉契数列为: 1、1、 2、3、5、8、13、21....例如,若给n输入7,则该项的斐波拉契数值为13.------------------------------------------------------------------------注意:请勿改动程序中的其他内容。

----------------------------------------------------------------------*/#include <stdio.h>long fun(int g){switch(g)/********** Program **********//********** END **********/}void main(){long fib;int n;printf("【Input n:】 ");scanf("%d",&n);fib=fun(n);printf("【fib =】 %d\n",fib);}答案:{case 0: return 0;case 1:case 2 : return 1 ;}return( fun(g-1)+fun(g-2) );第2题(20.0分)/*----------------------------------------------------------------------题目:函数fun的功能是:从3个红球、5个白球、6个黑球中任意取出8个作为一组,进行输出。

c程序设计题库及详解答案

c程序设计题库及详解答案

c程序设计题库及详解答案在C语言的学习过程中,掌握各类编程题目并理解其解答是至关重要的。

以下是一些常见的C程序设计题库及对应的详解答案。

1. 求两个数的最大公约数使用辗转相除法(欧几里得算法)可以求得两个数的最大公约数。

以下是求解的C程序代码:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```2. 计算一个数的阶乘阶乘是一个数与所有小于它的正整数的乘积。

以下是计算阶乘的C 程序代码:```c#include <stdio.h>long long factorial(int n) {if (n == 0)return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%lld\n", num, factorial(num)); return 0;}```3. 判断一个数是否为素数素数是指只能被1和其本身整除的大于1的自然数。

以下是判断素数的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程序设计考试题目及答案

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`函数用于__输出__。

C++练习题《程序设计与问题求解》附答案(吴)

C++练习题《程序设计与问题求解》附答案(吴)

《程序设计与问题求解》作业说明:1、每位同学交一份作业;2、形式:纸质或电子版均可;3、作业提交时间:4、作业中请注明以下信息:姓名、学号、所在班级,纸质的请班干部收齐后一次性上交,电子版的请发至以下邮箱:5、要求格式整齐,没有错别字,程序调试无错误作业内容:1、(10分)简述算法的概念、特征及常用描述工具。

2、(10分)简述结构化程序设计的三种标准结构及其共同点、差别。

3、(30分)对于以下方程,请完成以下任务:*在允许a,b,c任意输入的情况下,请设计出解此方程的算法(可用NS图或流程图进行描述)*根据算法设计程序*对各类情况进行测试,写出每组输入所对应的输出结果4、(30分)从键盘任意输入三个数,要求按从小到大的升序输出,请完成以下任务:*在允许三个数任意输入的情况下,请设计出解决此问题的算法(可用NS图或流程图进行描述)*根据算法设计程序*对各类情况进行测试,写出每组输入所对应的输出结果5、(20分)公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。

因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688 日,故每四年增加一日,这一年有366日,就是闰年。

但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。

所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。

也就是我们通常所说的:四年一闰,百年不闰,四百年再闰,例如1900 年、2100年就不是闰年。

根据上述材料完成以下任务:*输入一个年份,自动判断是平年还是闰年,请设计算法(可用NS图或流程图进行描述)*根据算法设计程序*对各类情况进行测试,写出每组输入所对应的输出结果C++练习题:《程序设计与问题求解》作业1 解答-姓名:学号:班级:信工114第1题:算法的概念:为了解决问题所制定的步骤、方法。

C程序设计与问题求解习题与答案

C程序设计与问题求解习题与答案

课号课程名称程序设计与问题求解适用班级(专业)考试时间120 分钟座位号学号姓名题号一二三四五六七八成绩满分501040得分评卷人一、阅读程序,写出程序运行结果(每题10分,5题共50分)1.简单的类定义#include<iostream>#include<string>using namespace std;#include<iostream>using namespace std;class MyClass{int m;public:static int n;MyClass( ) {m=0;}void setvalue( ){m++;n++;}void output( ){cout<<"m="<<m<<", n="<<n<<endl;}};int MyClass:: n=2;void main( ){MyClass obj1, obj2;obj1.setvalue( );obj1.output( );obj2.setvalue( );obj2.output( );};2.继承#include <iostream.h>class Tc{private:int A, B;public:Tc(int a=1, int b=2);int Acout( ) { return A; }int Bcout( ) { return B; }};Tc::Tc(int a, int b){A=a;B=b;}void main( ){Tc c1, c2(5), c3(10, 20);cout << "c1:(" << c1.Acout( ) << "," << c1.Bcout( ) << ")" << endl;cout << "c2:(" << c2.Acout( ) << "," << c2.Bcout( ) << ")" << endl;cout << "c3:(" << c3.Acout( ) << "," << c3.Bcout( ) << ")" << endl;}3. 构造函数#include<iostream>using namespace std;class MySub{private:int x, y;public:MySub(int a, int b): x(a), y(b){cout << "调用构造函数1." << endl;}MySub(MySub &p){x=p.x;y=p.y;cout << "调用构造函数2." << endl;}~MySub( ){cout << "调用析构函数." << endl;}int sub( ) { return x-y;}};void main( ){MySub p1(9, 3);MySub p2=p1;cout << p2.sub( ) << endl;MySub p3(6,9);}4、字符串相关操作类#include<iostream>#include<string>using namespace std;class strtype{public:strtype(char* ptr);~strtype();void show();private:char* p;int len;};strtype::strtype(char* ptr){len=strlen(ptr);p=new char[len+1];if(!p){cout<<"Allocation error \n";exit(1);}cout<<"Creating string"<<endl;strcpy(p,ptr);}strtype::~strtype(){cout<<"Deleting string"<<endl;delete[] p;}void strtype::show(){cout<<p<<"\nlength: "<<len<<endl;}void main(){strtype s1("we study new and delete");s1.show();}5.运算符重载#include<iostream>#include<string>using namespace std;#include<iostream>using namespace std;class complex{int real;int imag;public:complex(int r=0,int i=0):real(r),imag(i) {}void show(){cout<<real<<(imag<0 ? "":"+")<<imag<<'i'<<endl;} complex& operator +=(complex &c){real+=c.real;imag+=c.imag;return c;}complex& operator -=(complex &c){real-=c.real;imag-=c.imag;return c;}friend complex& operator --(complex &);friend complex& operator ++(complex &);};complex& operator --(complex &c){c.real--;c.imag--;return c;}complex& operator ++(complex &c){c.real++;c.imag++;return c;}void main(){int i=10,j=3,m=2,n=-6;complex test1(i,j);test1.show();test1--;complex test2(m,n);test2.show();test2++;test1+=test2;test1.show();test2-=test1;test2.show();}二、补充程序(共10分)1. Point.h 类声明如下#ifndef POINT_H#define POINT_Hclass Point{int x, y;//点Ì?的Ì?x和¨ªy坐Á?标À¨ºpublic:Point( int = 0, int = 0 ); // 构1造¨¬函¡¥数ºyvoid SetPoint(int, int); // 设¦¨¨置?坐Á?标À¨ºint GetX();// 取¨?x坐Á?标À¨ºint GetY();// 取¨?y坐Á?标À¨ºvoid Print();//输º?出?点Ì?的Ì?坐Á?标À¨º};#endif请在Point.cpp写出类的定义三、程序设计(每题20分,2题共40分)1.编写一个程序设计一个栈操作类,包含入栈和出栈成员函数,然后入栈一组数据,出栈并显示出栈顺序。

C语言程序的设计习题答案

C语言程序的设计习题答案

C语⾔程序的设计习题答案C 语⾔程序设计习题答案习题⼀ C 语⾔程序设计概述⼀、名词解释(1)程序P1 (2)程序设计P1 (3)机器语⾔P1 (4)汇编程序P2(5)⾼级语⾔P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4(9)结构化的程序设计P9⼆、简述题1. 设计程序时应遵循哪些基本原则?P4答:正确性、可靠性、简明性、有效性、可维护性、可移植性。

2. 算法的要素是什么?算法具有哪些特点?答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输⼊、有⼀个或多个输出。

3. 算法的表⽰形式有哪⼏种?答:算法的表⽰形式有:⾃然语⾔、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。

4. 有哪三种基本结构?答:三种基本结构是:顺序结构、选择结构和循环结构。

5. 传统流程图与N-S 流程图最⼤的区别是什么?答:N-S 流程图去掉了在传统流程图中常⽤的流程线,使得程序的结构显得更加清晰、简单。

三、⽤传统流程图、N-S 图分别表⽰求解以下问题的算法。

1. 有3个数a ,b ,c ,要求按由⼤到⼩的顺序把它们输出。

2. 依次将10个数输⼊,求出其中最⼤的数和最⼩的数并输出。

3. 求1+2+3+…+100的值。

4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。

6. 求100~200之间的所有素数。

7. 求⼀元⼆次⽅程ax 2+bx+c=0的根。

分别考虑d=b 2-4ac ⼤于0、等于0和⼩于0三种情况。

四、注释下⾯C 程序的各个组成部分。

main() /*主函数 */{ /*程序开始 */int a,k,m; /*定义三个⽤来存放整数的变量 */a=10; /*将整数10赋值给变量a */k=2; /*将整数2赋值给变量k */m=1; /*将整数1赋值给变量1 */a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */printf("%d\n",a); /*在屏幕上打印出变量a 的值 */} /*程序结束 */习题⼆数据类型、运算符与表达式⼀、选择题1~10:BCDCB DDBCA11~20: ADDAA DBADC21~28: DABAD CDDY= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1i 能否被n 整除?yes no flag=0 n = n+1 flag=1?yes no输出i 的值i = i+1⼆、填空题1.字母L 或字母l2.字符或%c 、整数或%d3.在程序运⾏过程中,其值可以在⼀定的围变化的量。

C程序设计题库及答案(精简)

C程序设计题库及答案(精简)

C程序设计题库及答案(精简) C程序设计题库及答案(精简)1. 编写一个C程序,输出数组中的最大值和最小值。

```c#include <stdio.h>int main() {int arr[] = {10, 20, 30, 40, 50};int size = sizeof(arr) / sizeof(arr[0]);int max = arr[0];int min = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}if(arr[i] < min) {min = arr[i];}}printf("最大值:%d\n", max);printf("最小值:%d\n", min);return 0;}```2. 编写一个C程序,交换两个变量的值。

```c#include <stdio.h>int main() {int a = 10;int b = 20;printf("交换前:\n");printf("a = %d\n", a);printf("b = %d\n", b);int temp = a;a = b;b = temp;printf("交换后:\n");printf("a = %d\n", a);printf("b = %d\n", b);return 0;}```3. 编写一个C程序,计算斐波那契数列的前n项。

```c#include <stdio.h>int fibonacci(int n) {if(n == 0) {return 0;}else if(n == 1) {return 1;}else {return fibonacci(n-1) + fibonacci(n-2);}}int main() {int n;printf("请输入项数:");scanf("%d", &n);printf("斐波那契数列前%d项为:", n);for(int i = 0; i < n; i++) {printf("%d ", fibonacci(i));}printf("\n");return 0;}```4. 编写一个C程序,判断一个数是否为素数。

c语言程序设计考试题及答案解析

c语言程序设计考试题及答案解析

c语言程序设计考试题及答案解析一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A3. 以下哪个选项是C语言中的合法整型常量?A. 0x12B. 0b101C. 0.5D. 1e2答案:A4. 在C语言中,以下哪个运算符用于计算两个数的差?A. +=B. -C. *D. /答案:B5. C语言中,以下哪个关键字用于声明一个函数?A. defineB. functionC. voidD. return答案:C6. 在C语言中,以下哪个关键字用于声明一个全局变量?A. staticB. externC. autoD. register答案:B7. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A8. 在C语言中,以下哪个关键字用于声明一个静态局部变量?A. staticB. externC. autoD. register答案:A9. C语言中,以下哪个函数用于将一个整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. sscanf()答案:B10. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. *D. void答案:C二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是________。

答案:int2. C语言中,用于定义一个浮点型变量的关键字是________。

答案:float 或 double3. C语言中,用于定义一个字符型变量的关键字是________。

C程序的设计课后复习题参考答案

C程序的设计课后复习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案习题1参考答案一、选择题1.C 2.C二、填空题1.面向过程,面向对象2.编辑,编译,,运行3.机器语言,汇编语言,高级语言。

4.数据,操作处理方法5.'\0'三、简答题1.简述三代计算机语言各自的特点。

解答如下:机器语言是用二进制指令表示的、计算机能够直接识别和执行的语言。

由于计算机可以直接执行机器语言,执行速度快是机器语言的主要优点。

在计算机发展初期,软件工程师使用机器语言来编写程序。

在计算机指令集不断增大的情况下,机器语言不易记忆,不便于学习,软件开发难度大、周期长、易出错,软件维护工作量大等缺点更加突出,机器语言已不能胜任编程工作。

汇编语言是用一些易读的助记符表示机器指令操作码,如ADD、CALL等。

使用汇编语言编写程序提高了编程速度,也比较容易编写出质量较高的程序,检查、维护也比较容易。

但汇编语言抽象层次低,程序员编写程序工作量大。

高级语言屏蔽了机器语言的细节,提高了语言抽象层次。

程序中采用了具有一定含义的数据命令和容易理解的执行语句。

高级语言不受计算机种类的限制,通用性强,易于理解、学习和掌握。

使用高级语言减少了大量的编程工作量。

目前使用比较广泛的高级语言有Basic、Fortran、Pascal和C语言。

C++是一种功能强大、应用更广泛的高级语言。

2.简述C语言程序实现的过程。

解答如下:用C++语言编写好一个完整的程序后,第一步要上机运行编辑程序,输入源程序;第二步是对源程序进行编译生成目标代码文件,目标代码文件名与源程序文件名相同,而扩展名改为obj;第三步运行连接程序,将目标代码文件与C++的库文件相连接,生成可执行文件,可执行文件名与源程序文件名相同,而扩展名为exe;第四步运行可执行文件,实现程序所具有的功能。

习题2参考答案一、选择题1.C 2.B 3.B 4.D二、填空题1.?:2.4字节,1字节,4字节,8字节3. 154.6,605.26,256.256,227.3.96E2,3.96E5三、简答题1.C++基本数据类型有哪几种?程序设计如下:C++的基本数据类型有bool(布尔型,又称逻辑型)、char(字符型)、int(整型)、float (浮点型,表示实数)和double(双精度浮点型,简称双精度型)等5种。

c#程序设计复习资料(试题及答案版)3

c#程序设计复习资料(试题及答案版)3

c#程序设计部分复习资料一.填空题26.C#源程序的后缀名为______.cs________。

26.C#中每个int 类型的变量占用____4___个字节的内存。

26.C#的每行语句以________分号_______结尾。

26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。

26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。

26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。

26.关键字_______class________表示一个类的定义。

26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。

26.try块运行后,总是会执行_________finally_____________块中的代码。

26.一个数组如果有两个索引值,那么它是__________二维__________数组。

二.单项选择题1.在对SQL Server 数据库操作时应选用()。

A、SQL Server .NET Framework 数据提供程序;B、OLE DB .NET Framework数据提供程序;C、ODBC .NET Framework 数据提供程序;D、Oracle .NET Framework数据提供程序;2.下列选项中,()是引用类型。

A、enum类型B、struct类型C、string类型D、int类型3.C#的数据类型有()A、值和调用类型;B、值和引用类型;C、引用和关系类型;D、关系和调用类型4.下列描述错误的是()A、类不可以多重继承而接口可以;B、抽象类自身可以定义成员而接口不可以;C、抽象类和接口都不能被实例化;D、一个类可以有多个基类和多个基接口;5.下列关于构造函数的描述正确的是()A、构造函数可以声明返回类型。

c语言程序设计编程题库及详解答案

c语言程序设计编程题库及详解答案

c语言程序设计编程题库及详解答案C语言是一种通用的编程语言,广泛用于系统软件、应用程序和嵌入式系统开发。

C语言以其高效性和灵活性而著称,是许多编程语言的基础。

下面,我将提供一些C语言程序设计编程题库的题目及其详解答案。

题目一:计算圆的面积问题描述:编写一个C程序,输入圆的半径,计算并输出圆的面积。

代码实现:```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```题目二:求最大公约数问题描述:编写一个C程序,输入两个整数,计算并输出这两个整数的最大公约数。

代码实现:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```题目三:字符串反转问题描述:编写一个C程序,输入一个字符串,然后输出该字符串的反转。

代码实现:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");fgets(str, 100, stdin); // 使用fgets以包含空格str[strcspn(str, "\n")] = 0; // 去除换行符reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```题目四:计算阶乘问题描述:编写一个C程序,输入一个非负整数,计算并输出该整数的阶乘。

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

《程序设计与问题求解》
作业说明:
1、每位同学交一份作业;
2、形式:纸质或电子版均可;
3、作业提交时间:
4、作业中请注明以下信息:、学号、所在班级,纸质的请
班干部收齐后一次性上交,电子版的请发至以下:
5、要求格式整齐,没有错别字,程序调试无错误
作业容:
1、(10分)简述算法的概念、特征及常用描述工具。

2、(10分)简述结构化程序设计的三种标准结构及其共同
点、差别。

3、(30分)对于以下方程,请完成以下任务:
*在允许a,b,c任意输入的情况下,请设计出解此方程的算法(可用NS图或流程图进行描述)
*根据算法设计程序
*对各类情况进行测试,写出每组输入所对应的输出结果4、(30分)从键盘任意输入三个数,要求按从小到大的升
序输出,请完成以下任务:
*在允许三个数任意输入的情况下,请设计出解决此问题的算法(可用NS图或流程图进行描述)
*根据算法设计程序
*对各类情况进行测试,写出每组输入所对应的输出结果5、(20分)公历闰年是这样规定的:地球绕太阳公转一周
叫做一回归年,一回归年长365日5时48分46秒。

因此,公历规定有平年和闰年,平年一年有365日,比回归年短
0.2422日,四年共短0.9688 日,故每四年增加一日,这
一年有366日,就是闰年。

但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。

所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。

也就是我们通常所说的:四年一闰,百年不闰,四百年再闰,例如1900 年、2100年就不是闰年。

根据上述材料完成以下任务:
*输入一个年份,自动判断是平年还是闰年,请设计算法(可用NS图或流程图进行描述)
*根据算法设计程序
*对各类情况进行测试,写出每组输入所对应的输出结果
C++练习题:《程序设计与问题求解》作业1 解答
-:学号:班级:信工114
第1题:
算法的概念:为了解决问题所制定的步骤、方法。

特征:1、有穷性;2、确定性;3、有效性;4、有零或多个输入;5、有一个或多个输出。

常用描述工具:1、自然语言;2、流程图;3、N-S图;4、计算机语言;
5、伪代码。

第2题:
三种标准结构:1、顺序结构;2、分支结构;3、循环结构。

共同点:使算法的流程更清晰简洁,增强可读性。

差别::
1、顺序结构:按书写顺序执行的操作。

2、分支结构:根据指定条件做出决策,在两条或多条分支路径中选择其中的一条执行。

3、循环结构:根据是否满足指定的条件而决定是否重复执行指定操作。

第3题:
算法及流程图:
解:
当a≠0时,令Δ=b2-4ac,当Δ<0时,方程无实数根;
当Δ≥0时,方程有两个实数根x1=,x2=.
当a=0时,再考虑b:若b≠0,则方程的根为x= ;
当b=0时,再考虑c:当c≠0时,方程无根;
当c=0时,方程的解是全体实数.
算法步骤如下:
第一步,输入a,b,c.
第二步,如果a≠0,执行第三步,如果a=0,执行第七步.
第三步,Δ=b2-4ac.
第四步,如果Δ<0,输出“方程无实数根”,如果Δ≥0,执行第五步.
第五步,x1= ,x2= .
第六步,输出x1,x2.第七步,如果b≠0,执行第八步,如果b=0,执行第十步. 第八步,x= .第九步,输出x.
第十步,如果c≠0,输出“方程无实根”;
如果c=0,输出“方程的根为全体实数”.
该算法的程序框图如图所示:
程序:
#include "stdio.h"
#include "math.h"
void main()
{
float a,b,c,d,x1,x2;
printf("\n请输入方程的三个系数a,b,c的值:");
scanf("%f%f%f",&a,&b,&c);
if(a==0)//一次方程
if(b==0)
if(c==0)
printf("方程的解是全体实数!\n");
else
printf("方程无实根!\n");
else
printf("此一元一次方程解为:%f\n",-c/b);
else
{
d=b*b-4*a*c;
if(d>=0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
else
printf("方程无实根!\n");
}
}
输出结果:
第4题:
算法流程图:
程序:
#include"stdio.h"
void main()
{
int a,b,c,t;
printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b) //第一个数和第二个数比较
{t=a;a=b;b=t;} //如果第一个数大于第二个数,则两个数交换
if(b>c) //第二个数和第三个数比较
{t=b;b=c;c=t;} //如果第二个数大于第三个数,则两个数交换
/*经过前两个步骤,最大的那个数就已经排到最后面了*/
if(a>b) //再将剩下的两个数比较就行了
{t=a;a=b;b=t;} //两个数交换
printf("\n按从小到大的顺序排序结果如下:\n");
printf("%d %d %d\n",a,b,c);
}
输出结果:
输入123 132 213 231 312 321 112 211 输出123 123 123 123 123 123 112 112
第5题:
算法流程图:
程序:
#include"stdio.h"
void main()
{
int year;
printf("请输入年份:\n");
scanf("%d",&year);
if(((year%4 ==0 ) && (year%100 !=0)) || (year%400 ==0 ))//符合以下条件之一的年份即为闰年:1、能被4整除而不能被100整除;2、能被400整除。

printf("该年为闰年!");
else
printf("该年为平年!\n");
}
输出结果:
输入年份2000 2001 2002 2003 2004 2005 2008 2010 2012 200
输出
闰年平年平年平年闰年平年闰年平年闰年平年结果
:学号:班级:114
.专业.专注.。

相关文档
最新文档