c教材习题

发布时间 : 星期四 文章c教材习题更新完毕开始阅读

12. 找出所有“水仙花数”。所谓的“水仙花数”是指一个三位整数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=13+53+33。

13. 输出1至100之间所有各位数之积大于各位数之和的数,例如23,因为2*3>2+3。 14. 输入一个整数,计算该整数的位数及各位之和。

15. 一个正整数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,且6=1+2+3,因此6是“完数”。输入一个数,判断该数是否为完数。

16. 输出“九九乘法表”。 17. 输出如下图形:

A BBB CCCCC DDDDDDD

18. 输出如下图案: * * * * * * * * * * * * * * * * * * * * * * * * *

19. 找出10000之内的所有完数。 20. 找出500内的所有素数。

21. 有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13, ??求出这个数列的前20项之和。

22. 计算100至999之间有多少个数其各位数字之和是5。

23. 编写程序,输出1500至3000年间的所有闰年,要求每行输出8个数据。

24. 求一个二位整数AB(其中AB分别为两位整数的十位和个位), 使AB-BA=45成立。

25. 36块砖,36人搬。男搬4,女搬3,两个小孩抬一砖。一次刚好搬完,问男、女、小孩各多少人?

26. 编程求解马克思手稿中的数学题:有30个人,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?

第6章 函数 二、选择题

1.C语言程序由函数组成。正确的说法是__________。

A) 主函数写在必须写在其他函数之前,函数内可以嵌套定义函数 B) 主函数可以写在其他函数之后,函数内不可以嵌套定义函数 C) 主函数必须写在其他函数之前,函数内不可以嵌套定义函数 D) 主函数必须在写其他函数之后,函数内可以嵌套定义函数 2. 一个C语言程序的基本组成单位是__________。

A)主程序 B)子程序 C)函数 D)过程

3.

以下说法正确的是__________。 A) C语言程序总是从第一个定义的函数开始执行 B) C语言程序中,被调用的函数必须在main()函数中定义 C) C语言程序总是从主函数main()开始执行。 D) C程序中的main()函数必须放在程序的开始处 4. 已知函数fun类型为void,则void的含义是__________。

A)执行函数fun后,函数没有返回值 B)执行函数fun后,可以返回任意类型的值

C)执行函数fun后,函数不再返回 D)以上三个答案都是错误的 5. 下列对C语言函数的描述中,正确的是__________。

A)在C语言中,调用函数时只能将实参的值传递给形参,形参的值不能传递给实参 B)函数必须有返回值

C)C语言函数既可以嵌套定义又可以递归调用

D)C程序中有调用关系的所有函数都必须放在同一源程序文件中 6. 以下叙述中错误的是__________。

A) 函数形参是存储类型为自动类型的局部变量 B) 外部变量的缺省存储类别是自动的。 C) 在调用函数时,实参和对应形参在类型上只需赋值兼容 D) 函数中的自动变量可以赋初值,每调用一次赋一次初值 7. C语言中的函数__________。

A)不可以嵌套调用 B)可以嵌套调用,但不能递归调用 C)可以嵌套定义 D)嵌套调用和递归调用均可 8. C语言中函数返回值类型由_________决定。

A)调用该函数的主调函数类型 B)函数参数类型

C)return语句中的表达式类型 D)定义函数时指定的函数类型 9. C语言规定,调用一个函数,实参与形参之间的数据传递方式是________。

A)由实参传给形参,并由形参传回来给实参 B)按地址传递 C)由用户指定方式传递 D)按值传递 10. 下列叙述错误的是__________。

A) 形参是局部变量 B) 复合语句中定义的变量只在该复合语句中有效 C) 主函数中定义的变量在整个程序中都有效 D) 其他函数中定义的变量在主函数中不能使用

11. 若函数类型和return语句中的表达式类型不一致,则__________。

A)运行时出现不确定结果 B)返回值的类型以函数类型为准 C)编译时出错 D)返回值的类型以return语句中表达式的类型为准 12. 下面函数定义正确的是__________。

A)double fun(double u,v) B)double fun(double u;double v) {return u+v;} {return u+v;}

C)double fun(float u,float v) D)double fun( u,v)

{return u+v;} { float u,v ;return u+v;} 13. 以下函数fun的返回值类型为__________。

fun(double x){ ??}

A)double B)void C)int D)无法确定类型

三、编程题

1. 编写函数求两个整数的最小值。在主函数中通过键盘输入x和y的值,调用该

函数,输出其中的最小值。

2. 编写函数对x进行判断,如果x的值大于0,返回1;否则返回0,在主函数中

通过键盘输入x的值,调用该函数,输出返回值。

3. 写一个判别素数的函数,在主函数中调用该函数,求出100~300之间所有的素

数。

4. 写一个判别水仙花数的函数,在主函数中调用该函数,求出所有水仙花数。 5. 写一个判别完数的函数,在主函数中调用该函数,求出1000以内所有的完数。 6. 写一个函数,求正整数n从右边开始数的第k个数字。并设计一个主程序测试

这个函数。

7. 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数分别调用

这两个函数,并输出结果,两个整数由键盘输入。

8. 金字塔图形问题:编写一个函数,其函数原型声明为“void draw(int n);”。函

数功能是根据n的个数(0

A

ABC ABCDE ABCDEFG ABCDEFGHI ABCDEFGHIJK

第7章 编译预处理 选择题

1.下列叙述中错误的是 。 A) 预处理命令必须以#号开头 B) 预处理命令可以写成多行 C) 预处理命令必须置于源文件的开始处 D) 预处理命令以回车结束

2.C语言编译系统对宏替换的处理是在 进行的。 A) 源程序编译前 B) 源程序编译时 C) 程序连接时 D) 程序运行时

3.在宏定义“#define PI 3.14159”中,3.14159是 。 A) 单精度数 B) 双精度数 C) 字符串 D) 由PI位置确定其类型

4.设有宏定义 “#define A B abcd” ,则宏替换时, 。 A) 宏名A用 B abcd 替换 B) 宏名A B用abcd 替换 C) 宏名A 和宏名B都用abcd 替换 D) 语法错误,无法替换

5.下列有关宏的叙述中错误的是 。 A) 宏名必须使用大写英文字母 B) 宏替换不占用程序的运行时间

C) 宏参数没有数据类型 D) 宏名没有数据类型

6.下列宏定义,最不会引起二义性的是 。 A) #define ADD(a,b) a+b B) #define ADD(a,b) (a)+(b) C) #define ADD(a,b) (a+b) D) #define ADD(a,b) ((a)+(b)) 7.设有宏定义“#define M 3+2”,则表达式 2 * M * 3 的值为 。

A) 30 B) 12 C) 10 D) 13

8.设有宏定义“ #define Y(n) (4*n) ”, 则表达式 3+Y(5+1)的值为 。

A) 21 B) 24 C) 27 D) 30 9.设有宏定义:

#define N 3 #define M N+2

则表达式 2*M/N的值为 。

A) 6 B) 3 C) 3.333 D) 错误

10.在#include命令中,#include后面的文件名用双引号定界,则系统寻找被包含文件的方式是 。

A) 在C系统的include文件夹查找 B) 在源程序所在文件夹查找 C) 先在C系统的include文件夹查找,查找失败后再到源程序所在文件夹查找 D) 先在源程序所在文件夹查找,查找失败后再到C系统的include文件夹查找 11.设有以下A、B两个程序段,则说法正确的是 。

//A程序段 //B程序段 #define N 3 #define N 3 void main() void main() { {

if(N>0) #if(N>0)

printf(\ printf(\

else #else

printf(\ printf(\

#endif } } A) 两个程序目标代码相同,运行结果也相同 B) 两个程序目标代码不同,但运行结果相同 C) 两个程序目标代码相同,但运行结果不同 D) 两个程序目标代码不同,运行结果也不同 12.执行以下程序,结果为 。

#define DEBUG void main() {

联系合同范文客服:xxxxx#qq.com(#替换为@)