程序设计基础习题
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程序,判断一个年份是否为闰年并输出结果。
《程序设计基础》练习题

1.在C++的结构化程序设计框架中,程序的基本组成单元是___。
A.函数B.类
C.关系D.数据结构
2.下列特性中,C与C++共有的是_____。
A.继承B.封装C.多态性D.函数定义不能嵌套
3.面向对象程序设计思想的主要特征中,不包含____。
C.整型常量或整型表达式D.任何类型的表达式
28.若有以下说明和语句,且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])
29.若有以下定义和语句,且0<i<10,则对数组元素地址的正确表示是__。
6.下列哪个是C++语言的有效标识符?____。
A._No1 B.No.1 C.12345 D.int
7.在C++语言中,所有函数说明都必须指明返回值类型,没有返回值的函数应说明为____类型的函数。
A.int B.char C.float D.void
8.下列字符常量的写法中,错误的是____。
A.’\105’B.’*’C.’’’’D.’\a’
A.如果类A是类B的友元,那么类B也是类A的友元
B.如果函数fun( )被说明为类A的友元,那么在func( )中可以访问类A的私有成员
C.友元关系不能被继承
D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
40.下面关于类MyClass的定义,对定义中的各语句描述正确的是____。
Class MyClass
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。
大学计算机基础(程序设计基础)习题与答案

一、单选题1、计算机能够直接执行的程序是()。
A.汇编语言程序B.可执行文件C.源程序D.命令文件正确答案:B2、汇编语言也称为()。
A.面向应用的语言B.面向对象的语言C.面向机器的语言D.面向过程的语言正确答案:C3、C、C++、Java可归类为()语言。
A.符号B.机器C.高级D.自然正确答案:C4、根据计算机语言发展的过程,下列排列顺序正确的是()。
A.机器语言、高级语言、汇编语言B.机器语言、汇编语言、高级语言C.汇编语言、机器语言、高级语言D.高级语言、机器语言、汇编语言正确答案:B5、编译程序将高级语言程序翻译成与之等价的机器语言程序,编译前的程序可以称呼()。
A.目标程序B.源程序C.临时程序D.原程序正确答案:B6、()都属于计算机的低级语言。
A.机器语言和高级语言B.汇编语言和高级语言C.机器语言和汇编语言D.高级语言和数据库语言正确答案:C7、在程序设计中,把解题过程准确而完整地描述出来,就叫()。
A.算法B.方法C.事件D.过程正确答案:A8、()是一种使用几何图形描述程序逻辑关系的程序设计方法。
A.流程图B.饼图C.数据流图D.柱形图正确答案:A9、用C语言编写的程序需要用()程序翻译后计算机才能识别。
A.汇编B.解释C.连接D.编译正确答案:D10、可被计算机直接执行的程序由()语言编写的程序。
A.汇编B.机器C.高级D.网络正确答案:B11、由二进制编码构成的语言是()。
A.C语言B.BASIC语言C.汇编语言D.机器语言正确答案:D12、结构化程序设计中的三种基本程序结构是指()。
A.顺序结构、转移结构、分支结构B.顺序结构、转移结构、循环结构C.顺序结构、选择结构、循环结构D.转移结构、选择结构、分支结构正确答案:C13、算法的基本结构中不包括()。
A.选择结构B.循环结构C.顺序结构D.逻辑结构正确答案:D14、在计算机科学中,算法这个术语是指()。
A.求解问题并选择编程工具B.求解问题的数学方法C.求解计算机问题的一系列步骤D.选择求解问题的计算机系统正确答案:C15、高级语言翻译程序是将高级语言编写的源程序翻译成目标程序有两种工作方式。
计算机程序设计基础习题册含答案)

《计算机程序设计基础》计算机程序设计基础_基础知识(一) 班级学号 姓名 成绩一、 单选题习题册1.C++源程序文件的默认扩展名为A。
2.A) cpp B) exeC) obj D) lik3.由C++源程序文件编译而成的目标文件的默认扩展名为C。
4.A) cpp B) exeC) obj D) lik5.由C++目标文件连接而成的可执行文件的默认扩展名为B。
6.A) cpp B) exeC) obj D) lik7.编写C++程序一般需经过的几个步骤依次是B。
8.A)编译、编辑、连接、调试B)编辑、编译、连接、调试C)编译、调试、编辑、连接D)编辑、调试、编辑、连接9.程序中主函数的名字为A 。
10.A) main B) MAINC) Main D) 任意标识符11.下面四个选项中,均是不合法的用户标识符的选项的是C。
12.A) A p_o doB)float lao _AC)b-a goto intD)_123 temp INT13.下列变量名中合法的是C。
14.A) B)C)Tom B) 3a66C) _6a7b D) $ABC15.存储以下数据,占用存储字节最多的是 D 。
16.A) 0 B) ‘0’C) “0” D) 0.017.在C++语言中,字符型数据在内存中的存储形式是D。
18.A) 补码 B) 反码C) 原码 D) ASCII码19.若有说明语句:char c =’\072’;则变量c A。
20.A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法,变量的值不确定二、填空题1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。
2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。
3.一条表达式语句必须以__分号_;___作为结束符。
4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。
程序设计基础(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 )。
〖程序设计基础〗练习题3及答案

〖程序设计基础〗练习题3一、单选题(30分)语言是( )。
A.面向问题的解释型高级编程语言B.面向机器的低级编程语言C.面向过程的编译型高级编程语言D.面向对象的解释型高级编程语言2.下列的变量定义中,错误的是( )。
A) int i; B) int i=;C) static int i=100; D) int 123_$;3.以下的变量定义语句中,合法的是( )。
A) float $_*5= ; B) byte b1= 15678;C) double a =Double. MAX_VALUE;D) int _abc_ = 3721L;4.以下字符常量中不合法的是( )。
A) '|' B) '\'' C) "\n" D) '我'5.若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。
A) b = a!=7 ; B) a = 7 + b + c=9;C) i=* % 4; D) a = a + 7 = c + b;6.下列程序段执行后t5的结果是( )。
int t1 = 9, t2 = 11, t3=8;int t4,t5;t4 = t1 > t2 t1 : t2+ t1;t5 = t4 > t3 t4 : t3;A) 8 B) 20 C) 11 D) 97.设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是( )。
A) a!=b & c%d < a B) a++ = =a+b+c+dC) ++a*b--+d D) a+b>=c+d8.执行下列程序段后,b, x, y的值分别是( )。
int x=6,y=8;boolean b;b=x>y&&++x==--y;A) true , 6, 8 B) false , 7, 7C) true, 7, 7 D) false, 6, 89.以下由do-while语句构成的循环执行的次数是( )。
C程序设计基础(第4版)习题解答

2.用 C++语言编写的源程序要成为目标程序必须要经过( D )。
(A)解释
(B)汇编
(C)编辑
(D)编译
3.C++程序中冒号
(B)分号
(C)空格
(D)花括号
4.假设有说明 int a=0; double x=5.16;,则在以下语句中,( C )属于编译错误。
一个最简单的c程序可以只有一个a库函数a解释冒号b自定义函数b汇编b分号cmain函数c编辑c空格d空函数d编译d花括号2
《C++程序设计基础》(第 4 版)(上)
习题与解答
第 1 章 基本数据与表达式
1.1 选择题
1.一个最简单的 C++程序,可以只有一个( C )。
(A)库函数
(B)自定义函数
(C)main 函数 (D)空函数
【解答】
变量类型
定义
存储
使用方式
数据
类型 标识符
数据值
通过名访问即直接访问对变量内容操作
指针
类型 * 标识符
地址值
通过指针变量的地址值间址访问对象
验证程序:
#include<iostream>
using namespace std;
int main()
{ int a,b,c;
cout<<"a,b,c= ";
} 4.数据对象在 C++中有几种不同的访问方式?请编写一个程序验证之。
【解答】
数据对象在 C++中的访问方式有:名访问,引用(别名)访问,间址访问。 验证程序:
#include<iostream> using namespace std; int main() { int a;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.8 习题1. 编制一个C 程序,从键盘输入一个正整数,如果该数为素数,则输出该素数,否则输出该数的所有因子(除去1与自身)。
2. 编制一个C 程序,从键盘输入一个正整数N ,然后计算并输出 S=12||1222N ++++最后计算并输出T=11213111-+-+-+ ()K K其中K S =的整数部分。
3. 编制一个C 程序,计算并输出多项式的值 S x x x n n x n n=++-+--++--+1050505120505105230505105123..(.)!.(.)(.)!.(.)(.)!的值,直到 |S n -S n-1|<0.000001 为止。
其中x 从键盘输入。
4. 编制一个C 程序,计算下列级数和:s n =1+(2/1)+(3/2)+(5/3)+(8/5)+(13/8)+…+(a n /a n-1) 其中n ≥1,由键盘输入;s 1=1。
5. 编制一个C 程序,计算并输出下列级数之和:e x x x x n xn=+++++12323!!!其中n 与x 从键盘输入。
6. 编制一个C 程序,输出能写成两个数平方之和的所有三位数。
7. 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。
例如,6的因子为1、2、3,且1+2+3=6,即6是一个“完数”。
编制一个C 程序,计算并输出1000以内的所有“完数”之和。
8. 编制一个C 程序,从键盘输入30个实数,分别计算并输出以下5个量:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数,负数的个数。
9. 100元钱买100只鸡,母鸡3元/只,公鸡2元/只,小鸡0.5元/只。
编制一个C 程序,制定买鸡方案。
10. 设A ,B ,C ,D ,E 五人,每人额头上贴了一张或黑或白的纸。
五人对坐,每人都可以看到其他人额头上的纸的颜色,但都不知道自己额头上的纸的颜色。
五人相互观察后开始说话:A 说:我看见有三人额头上贴的是白纸,一人额头上贴的是黑纸。
B 说:我看见其他四人额头上贴的都是黑纸。
C 说:我看见有一人额头上贴的是白纸,其他三人额头上贴的是黑纸。
D 说:我看见四人额头上贴的都是白纸。
E 什么也没说。
现在已知额头上贴黑纸的人说的都是真话,额头上贴白纸的人说的都是假话。
编制一个C程序,确定这五人中谁的额头上贴白纸,谁的额头上贴黑纸?11. 寻找1000以内最小的10个素数与最大的10个素数(去掉重复的素数),计算并输出这20个素数之和。
具体要求:(1) 画出计算过程的结构化流程图。
(2) 虽然1000以内素数个数超过20个,但仍要求考虑1000以内不够10个最小素数与10个最大素数,以及最小的10个素数与最大的10个素数有重复的情况。
(3) 输出要有文字说明。
输出形式为zui xiao su shu :素数1,素数2,…,素数10zui da su shu :素数1,素数2,…素数10su shu zhi he :和的具体值(4) 在程序内部加必要的注释(至少有三处)。
方法说明:对于某个(从小到大与从大到小)自然数k,开始时置标志flag为0,然后对2到k中的自然数j进行检测,当发现j是k的因子,就置flag为1,表示不必再对别的自然数进行检测,因为此时已经可以确定k不是素数了,只有当2到k中的所有自然数都不是k的因子(即flag保持为0)时,说明k为素数,输出k,并进行累加。
12. A、B、C、D、E五人分苹果。
A将所有的苹果分为五份,将多余的一个苹果吃掉后再拿走自己的一份苹果;B将剩下的苹果分为五份,将多余的一个苹果吃掉后再拿走自己的一份苹果;C、D、E依次按同样的方法,将剩下的苹果分为五份,吃掉多余的一个苹果后拿走自己的一份苹果。
编程计算原来至少有多少个苹果?A、B、C、D、E各得到多少个苹果?具体要求:(1) 画出计算过程的结构化流程图。
(2) 输出要有文字说明。
(3) 在程序内部加必要的注释(至少有三处)。
方法说明:采用逐步试探的方法。
设当前试探的苹果数为n。
如果n满足下列条件:n-1(多余的一个被吃掉)后要能被5整除;拿走一份后,余下的四份苹果数为4*(n-1)/5。
按上述策略连续进行五次分配,如果每次分配时均满足其中的条件,则试探的n即为原来的苹果数x。
为了第一次能分配,试探从6开始。
根据分配策略,最后A,B,C,D,E五人得到的苹果数(不包括吃掉的一个苹果)可以按如下公式依次计算:a=(x-1)/5b=(4*a-1)/5c=(4*b-1)/5d=(4*c-1)/5e=(4*d-1)/513. 某单位要在A,B,C,D,E,F六人中选派若干人去执行一项任务,选人的条件如下:(1) 若C不去,则B也不去;(2) C 和D 两人中去一个;(3) D 和E 要么都去,要么都不去; (4) A ,B ,F 三人中要去两个; (5) C 和F 不能一起去:(6) E 和F 两人中至少去一个。
问应该选哪几个人去? 具体要求:(1) 画出计算过程的结构化流程图。
(2) 输出要有文字说明。
(3) 在程序内部加必要的注释(至少有三处)。
8.5 习题1. 编写一个函数sabc(),根据给定的三角形三条边长a ,b ,c ,函数返回三角形的面积。
2. 编写一个计算阶乘值的函数p()(该函数为双精度实型);再编写一个主函数,从键盘输入两个正整数m 与n(m ≥n),通过调用函数p(),计算m m n !()!- 的值(即求 A m n )。
3. 编写一个函数,计算并返回给定正整数m 与n 的最大公约数。
4. 编写一个主函数,调用例8.3中的函数sushu(),输出小于1000的最大五个素数。
5. 编写一个主函数,调用例8.3中的函数sushu(),验证6到1000中的所有偶数均能表示成两个素数之和。
6. 编写一个递归函数,计算并返回菲波那契(Fibonacci )数列中第n 项的值。
菲波那契数列的定义如下:Fib(1)=1,Fib(2)=1Fib(n)=Fib(n-1)+Fib(n-2)7. 编写一个递归函数,计算并返回阿克玛(Ackermann)函数值。
阿克玛函数的定义如下:Ack n x y x n x n y n y n y n y Ack n Ack n x y x n y (,,)(,(,,),)=+=======≥=--≠≠⎧⎨⎪⎪⎪⎩⎪⎪⎪10100201302401100且且且且且 其中n ,x ,y 均为非负整数。
8. 编写计算n!的递归函数。
9. 编写一个递归函数,其功能是将一个正整数n 转换成字符串(要求各字符之间用一个空格分隔)输出。
例如,输入的正整数为735,应输出字符串“7 3 5”。
其中正整数在主函数中从键盘输入,要求判断其输入的合理性。
10. 计算并输出500以内的所有“亲密数”对,并输出所有“完数”之和。
具体要求:(1) 编写一个函数facsum(n),返回给定正整数n 的所有因子(包括1但不包括自身)之和。
(2) 编写一个主函数,调用(1)中的函数facsum(n),寻找并输出500以内的所有“亲密数”对以及计算所有“完数”之和。
(3) 分别画出函数facsum(n)和主函数计算过程的结构化流程图。
(4) 在输出每对“亲密数”时,要求小数在前、大数在后,并去掉重复的数对。
例如,220与284是一对“亲密数”,而284与220也是一对“亲密数”,此时只要求输出220与284这对“亲密数”。
(5) 输出要有文字说明(英文或汉语拼音)。
输出时每对“亲密数”用一对圆括号括起来,两数之间用逗号分隔,且所有的“亲密数”对占一行。
输出形式为各对“亲密数”“完数”之和(6) 在程序内部加必要的注释(至少有三处)。
(7) 将两个函数分别放在两个文件中进行编译、连接并运行。
(8) 将两个函数放在一个文件中进行编译、连接并运行。
方法说明:如果自然数M的所有因子(包括1但不包括自身,下同)之和为N,而N的所有因子之和为M,则称M与N为一对“亲密数”。
例如,6的所有因子之和为1+2+3=6,因此,6与它自身构成一对“亲密数”;又如,220的所有因子之和为1+2+4+5+10+11+20+22+44+55+110=284,而284的所有因子之和为1+2+4+71+142=220,因此,220与284为一对“亲密数”。
如果一个自然数的所有因子之和恰好等于它自身,则称该自然数为“完数”。
例如,6不仅与它自身构成一对“亲密数”,且6是一个“完数”。
11. 计算并输出k!=∑的值。
具体要求:(1) 编写一个计算k!的递归函数,其函数名返回k!的值。
(2) 编写一个主函数,首先从键盘输入m和n的值(要求n≥m≥0),然后调用(1)中的函数计算k!=∑的值。
(3) 在计算k!的递归函数中,要检查形参k的合理性,当k<0时,应输出出错信息,并返回0值。
(4) 在主函数中应检查从键盘输入的数据的合理性,对于不合理的输入,应输出出错信息,并不再调用计算。
(5) 分别输入(m, n)=(-3, 7), (0, 0), (1, 7), (9, 13), (9, 4)运行你的程序。
3. 利用变步长梯形求积法计算定积分。
具体要求:(1) 编写一个函数st(a, b, eps)(要求该函数放在独立的文件中),其功能是利用变步长梯形求积法计算定积分⎰=b adx )x(fs其中eps为精度要求。
要求画出该函数处理的结构化流程图。
(2) 编写一个主函数以及计算被积函数值的函数fun(x),在主函数中调用(1)中的函数st(a,b, eps),计算并输出下列积分值⎰=84dx x1s 精度要求为eps=0.0001。
要求主函数与函数fun(x)放在同一个文件中。
(3) 编写另一个主函数以及计算被积函数值的函数fun(x),在主函数中调用(1)中的函数st(a, b, eps),计算并输出下列积分值⎰-+=112dx 1x 1s精度要求为eps=0.00001。
同样要求主函数与函数fun(x)放在同一个文件中。
方法说明:变步长梯形求积法的基本步骤如下: ① 利用梯形公式计算积分。
即取 n=1,h=b-a 则有∑-=++=1n 0k 1k k n )]x (f )x(f [2hT其中x k =a+kh 。
② 将求积区间再二等分一次(即由原来的n 等分变成2n 等分),在每一个小区间内仍利用梯形公式计算。
即有 ]2)x (f )x (f 2)x (f )x (f [2h T 1k 5.0k 1n 0k 5.0k k n2++-=++++=∑=)x(f 2h)]x (f )x (f [4h1n 0k 1n 0k 5.0k 1k k ∑∑-=-=++++=)x(f 2hT 211n 0k 5.0k n ∑-=++③ 判断二等分前后两次的积分值之差的绝对值是否小于所规定的误差。