当前位置:文档之家› C语言拓展训练编程题

C语言拓展训练编程题

(1) 编程判断输入整数x的正负性和奇偶性。

(2) 银行整存整取存款不同期限的月息利率分别为:

0.63% 期限一年

0.66% 期限=年

月息利率= 0.69% 期限三年

0.75% 期限五年

0.84% 期限八年

要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

(3) 通过键盘输入字符,将输入的字符分为控制、数字、大写字母、小写字母和其他字符

等五类。

(4) 简单计算器。请编写一个程序计算表达式:datal op data2的值。其中op为运算符

+、—、*、/。

(5) 输入年份year和月month,求该月有多少天。判断是否为闰年,可用如下C语言表达

式:year%4==0 && year%100!=0 || year%400==0。假设表达式成立(即表达式值为

1),那么year为闰年;否那么,表达式不成立(即值为0),year为平年。

(6) 对输入的行、单词和字符进展计数。我们将单词的定义进展化简,认为单词是不包含空

格、制表符(\t)及换行符的字符序列。例如:“a+b+c〞,认为是1个单词,它由5个字符组成。又如:“xy abc〞,为2个单词,6个字符。

(7) 从键盘输入任意的字符,按以下规那么进展分类计数。

第-类'0','1','2','3','4','5','6','7','8','9'

第=类'+','-','*','/','%','='

第三类其它字符

当输入字符'\'时先计数,然后停顿接收输入,打印计数的结果。

(8) 输入10个整数,求其中正数的个数及平均值,准确到小数点后两位。

(9) 一个首项大于0的等差数列的前四项和为26,前四项的积为880,求此数列。

(10) 输入a、b、c、d四个整数,求最小值min和最大值max。

(11) 编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数

据错误的提示信息。

(1) 从键盘输入十个整数,求这十个整数之和。

(2) 从键盘中读入一系列字符,直到输入字母“a〞时才停顿。

(3) 对输入的行和字符进展计数

一行是以一个回车符(’\n’)作为行完毕标记的,这样在程序中可以通过搜索’\n’对行进展计数。当输入[CTRL+D]时表示文件输入完毕,停顿计数。

(4) 输出如以下图所示的下三角形乘法九九表。

1 2 3 4 5 6 7 8 9

- - - - - - - - - - - - - - - - - - - - - -

1

2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 64

9 18 27 36 45 54 63 72 81

(5) 求1到10的阶乘的和。

(6) 输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321。

(7) 求555555的约数中最大的三位数是多少?

(8) 输入10个整数,求其中正数的个数及平均值,准确到小数点后两位。

(9) 输入n值,打印以下高为n的等腰三角形。

*

***

*****

*******

*********

*********** 当n=6时

(10) 输入n值,请编程输出如以下图形(例n=3时)。

* *

* *

*

* *

* *

(11) 编程打印数字金字塔。

l

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1

1 2 3 4 5 6 5 4 3 2 1

1 2 3 4 5 6 7 6 5 4 3 2 1

1 2 3 4 5 6 7 8 7 6 5 4 3 2 1

1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

(12) 编程输出以下高度为n 的图形。

1 3 6 10 15 21

2 5 9 14 20

4 8 13 19

7 12 18

11 17

16

当n=6时

(13) 请输入n 值,编写程序输出以下图形(例如n=5)。

1 2 3 4 5

1 1

2

3 4

1 1 1

2 3

1 1 1 1 2

1 1 1 1 1

(14) 求以下算式的值:SUM=1+ 1/2+ 1/3+ 1/4+...+ 1/999+ 1/1000

(15) 求下式的值:

(16) 编写-个程序,读入一个整数N;假设N 为非负数,那么计算N 到2*N 之间的整数和;假

设N 为一个负数,那么求2*N 到N 之间的整数和。利用for 和while 写出两个程序。

(17) 100匹马驮100担货,大马一匹驮 3担,中马一匹驮 2担,小马两匹驮 1担。试编写程序

计算大、中、小马的数目。

〔18〕求解爱因斯坦数学题。有一条长阶梯,假设每步跨2阶,那么最后剩余1阶,假设每步跨3阶,那么最后剩2阶,假设每步跨5阶,那么最后剩4阶,假设每步跨6阶那么最后剩5阶,假设每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶?

数组

(1) 反向输出有5个元素的int 数组中各元素的值。

(2) 在一个二维数组中形成并输出如下矩阵:

1 1 1 1 1

2 1 1 l 1

A= 3 2 1 l l

∑∑∑===++101

5011001)*(k k k k k k k

4 3 2 1 1

5 4 3 2 1

(3) 求矩阵A(2 ×3)的转置矩阵B(3×2)。

1 2 3 1 4

A= B= 2 5

4 5 6 3 6

(4) 某班期终考试科目为高等数学(MT)、英语(EN)和物理(PH),有30人参加考试。为评定

奖学金,要求统计并输出一个表格,表格内容包括学号、各科分数、总分和平均分,并标出三1]课均在90分以上者(该栏标志输出为“Y〞,否那么为“N〞),表格形式如下:

N0 HT EN PH SUM V >90

------------------------------------

1 97 87 9

2 276 92 N

2 92 91 90 27

3 91 Y

3 90 81 82 253 8

4 N

可以将学生的学号和各科成绩放在数组a[30][4]中,然后进展统计处理。

(5) 有一个3 ×4的矩阵,求其中的最大元素的值。

(6) 编写程序实现将字符串str2拷贝到字符串strl。

(7) 输入英文的星期几,查找星期表后输出对应的数字。具体的算法是:假设发现与表中

某项一样,那么输出该字符串在表中的位置(序号):假设查到表尾仍不一样,那么输出错误信息。设星期表的内容如以下图所示。

(8) 给定某年某月某日,将其转换成这一年的第几天并输出。

(9) 如果一个正整数等于其各个数字的立方和,那么该数称为阿姆斯特朗数(亦称为自恋性

数)。如407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。

(10) 写出下面给出的数组说明中所定义的数组的数组名、类型、维数、数组体积,并给出

各数组元素在计算机中占用存储单元的情况。

int x[4]={1,2,3,4};

float y[3][4]={1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8};

int z[2][2][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int i[2][3]={{ },{4,5,6}},j[2][2][2]={{ },{3,4},{ },{7,8}};

char c1[10]={〞Happy.〞},c2[ ][3]={{〞*〞},{〞**〞},{〞*〞}};

(11) 设某班50人,写一程序统计某一单科成绩各分数段的分布人数,每人的成绩随机输入,

并要求按下面格式输出统计结果(〞*〞表示实际分布人数)。

0 一一39 *

40 一一49 **

50 一一59 *****

............

90 一一100 ****

(12) 输入=维数组a[3][5],打印其中最小值和最大值及其对应的行列位置。

(13) 输入5×5的数组,编写程序实现:

(a)求出对角线上各元素的和;

(b)求出对角线上行、列下标均为偶数的各元素的积;

(c)找出对角线上其值最大的元素和它在数组中的位置。

(14) 简单的密码加密程序。其加密过程是先定义一张字母加密对照表。

输入输出输入输出

a d i a

b w k b

c k ; c

d :w e

e I

将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以很简单地将输入的文字加密输出,对于表中未出现的字符那么不加密。

(15) 使用二维数组输入〞BASIC〞,〞ADA〞,〞Pascal〞,〞C〞,〞Fortran〞,将它

们按从小到大的顺序排列后输出。

(16) 某运动会上女子百米运发动决赛成绩。要求编写程序,按成绩排序并按名次输出排序

结果,包括名次、运发动号、成绩三项内容。

(17) 将矩阵A[2][3]的六个元素送入矩阵A[3][2]中,使其顺时针旋转90度。例:

1 2 3 4 1

a= b= 5 2

4 5 6 6 3

(18) 输入10个人的序号和成绩,对成绩从小到大进展排序,输出排序后的序号和成绩

(19) 对数组A中的N(0

素的顺序,且一样的整数要具有一样的编号。例如:

A=(5,3,4,7,3,5,6) 那么输出为:(3,1,2,5,1,3,4)

(20) 现将不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它

“右肩〞上的素数与“左肩〞上的素数之差。请编程求出:第二行数中是否存在这样的假设干个连续的整数,它们的和恰好是1898?假设存在的话,又有几种这样的情况?

第一行:2 3 5 7 11 13 17 .....1979 1987 1993

第二行:1 2 2 4 2 4 .....8 6

(21) 下面是5×5的螺旋方阵。请编程生成n×n(n<10)阶方阵。

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

函数

(1) 将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,

那么称它为对称数。求不超过1993的最大的二进制的对称数。

(2) 将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三

个数不许有重复数字,也不许同其它组的三个数字重复,要求将每组中的三位数组成一个完全平方数。

(3) 对数组A中的N(0

素的顺序,且一样的整数要具有一样的编号。

例如:A=(5,3,4,7,3,5,6) 那么输出为:(3,1,2,5,1,3,4)

(4) 编写函数insert(s1,s2,f),实现在字符串s1中的指定位置f处插入字符串s2。

(5) 输入五个单词,请将它们按从小到大的顺序排列后输出。

(6) 输入字符串,请分别统计字符串中所包含的各个不同的字符及其各自字符的数量,

如:输入字符串:abcedabcdcd

那么输出:a=2 b=2 c=3 d=3 e=l

(7) 写一程序,其中包括一个函数,此函数的功能是:对一个长度为N的字符串从其第K

个字符起,删去M个字符,组成长度为N-M的新字符串(其中N、M<=80,K<=N)。

要求输入字符串〞We are poor students.〞,利用此函数进展删除〞poor〞的处理,并输出处理后的字符串。

(8) 设一以符号“.〞完毕的英文句子长度小于20字节。请编程读入该句子,并检查其是

否为回文(即正读和反读都是一样的,不考虑空格和标点符号)。

例如:读入:MADAM I M ADAM.输出:YES

读入:ABCDBA) 输出:N0

(9) 编写一个使用指针的C函数,交换数组a和数组b中的对应元素。

(10) 用指针作为函数的形式参数,编写字符串复制函数。

(11) 编写函数,通过指针连接两个字符串。

(12) 编写函数,通过指针将一个字符串反向。

(13) 编写函数,通过指针求字符串的长度。

(14) 编程按指针方式引用命令行的参数。

(15) 产生动态数组。编写程序,输入数组大小后,通过动态分配内存函数malloc产生数组。

(16) 用指针编写比拟两个字符串s和t的函数strcmp(s,t)。要求s

0,s>t时返回1。

【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】

C语言趣味程序设计编程100例精解

C/C++语言经典、实用、趣味程序设计编程百例精解(1) 1.绘制余弦曲线 在屏幕上用―*‖显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中一次输出两个―*‖。 为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。程序中利用反余弦函数acos计算坐标(x,y) 的对应关系。 使用这种方法编出的程序短小精炼,体现了一定的技巧。 *程序说明与注释 #include #include int m ain() { double y; int x,m; for(y=1;y>=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/ { m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/ for(x=1;x

c语言编程题库100题

c语言编程题库100题 C语言是一门广泛应用于计算机领域的高级编程语言。对于学习者来说,掌握C语言编程是一项必修课程。为此,我们为大家整理了100道C语言编程题,供大家练练手,锻炼编程能力。 以下是题目列表: ##### 基础篇 1、编写一个C程序,输出“Hello, World!”。 2、编写一个C程序,输入两个数,求和并输出结果。 3、编写一个C程序,输入三个数,求平均值并输出结果。 4、编写一个C程序,输入三个数,比较大小并输出最大值。 5、编写一个C程序,输入一个数,判断奇偶性并输出结果。 6、编写一个C程序,输入一个数,判断是否为质数并输出结果。 7、编写一个C程序,输入一个数,判断是否为闰年并输出结果。 8、编写一个C程序,输入一个字符,判断是否为字母并输出结果。

9、编写一个C程序,输入一个数,判断是否为回文数并输出结果。 10、编写一个C程序,输入一个年份和月份,输出该年该月的天数。 ##### 数组篇 11、编写一个C程序,输入一个整数数组,求所有元素之和并输出结果。 12、编写一个C程序,输入一个数组,找出最大值并输出结果。 13、编写一个C程序,输入一个数组,找出最小值并输出结果。 14、编写一个C程序,输入一个数组,计算平均值并输出结果。 15、编写一个C程序,输入一个数组,判断是否为升序或降序排列并输出结果。 16、编写一个C程序,输入一个数组,将数组元素逆序排列并输出结果。 17、编写一个C程序,输入两个数组,将两个数组合并后按照升序或降序排列并输出结果。

18、编写一个C程序,输入一个数组,输出数组中出现次数最多的元素。 19、编写一个C程序,输入一个数组,删除指定位置上的元素并输出结果。 20、编写一个C程序,输入一个数组和一个数,将该数插入到数组中并输出结果。 ##### 字符串篇 21、编写一个C程序,输入一个字符串,统计字符串中的字符个数并输出结果。 22、编写一个C程序,输入一个字符串,统计字符串中的单词个数并输出结果。 23、编写一个C程序,输入两个字符串,比较大小并输出结果。 24、编写一个C程序,输入一个字符串,将该字符串逆序输出。 25、编写一个C程序,输入一个字符串和一个字符,统计该字符在字符串中的出现次数并输出结果。 26、编写一个C程序,输入一个字符串,判断是否为回文字符串并输

C语言编程实例100题

C语言程序实例100个(一) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

c语言数组编程练习题

c语言数组编程练习题 随着计算机科学和编程语言的发展,C语言一直被广泛使用于软件开发和算法设计。在C语言中,数组是一种非常重要的数据结构,用于存储和操作一系列相同类型的数据。通过编程练习题,我们可以让自己更好地理解和掌握数组的使用。接下来,让我们来看一些具有挑战性的C语言数组编程练习题。 1. 倒置数组 请编写一个函数,将一个整数数组中的元素按逆序进行排列,并将结果写入另一个数组。例如,给定输入数组为{1, 2, 3, 4, 5},则输出数组应为{5, 4, 3, 2, 1}。 解决这个问题的一种方法是使用两个指针,一个指向数组的起始位置,另一个指向数组的末尾位置,然后逐个交换它们所指向的元素,直到指针相遇。 2. 查找数组中的最大元素 请编写一个函数,从给定的整数数组中查找并返回最大的元素。例如,给定输入数组为{4, 8, 2, 10, 5},则输出应为10。 解决这个问题的一种方法是将数组的第一个元素设置为最大值,然后遍历数组,依次比较每个元素与当前最大值的大小,如果遇到更大的元素,则更新最大值。 3. 数组元素的平均值

请编写一个函数,计算一个整数数组中所有元素的平均值,并返回 结果。例如,给定输入数组为{2, 4, 6, 8, 10},则输出应为6。 解决这个问题的一种方法是遍历数组,将每个元素累加起来,然后 将累加值除以数组的长度,即可得到平均值。 4. 查找数组中的重复元素 请编写一个函数,从给定的整数数组中查找并返回所有重复的元素。例如,给定输入数组为{1, 2, 3, 2, 4, 3},则输出应为{2, 3}。 解决这个问题的一种方法是使用嵌套循环,依次比较数组中的每个 元素与其他元素是否相同,如果相同且尚未添加到结果数组中,则将 其添加到结果数组中。 5. 数组元素的移动 请编写一个函数,将给定的整数数组中的所有0元素移到数组的末尾,并保持其他元素的相对顺序不变。例如,给定输入数组为{0, 1, 0, 3, 12},则输出应为{1, 3, 12, 0, 0}。 解决这个问题的一种方法是使用两个指针,一个指向数组的当前位置,另一个指向最后一个非零元素的位置。遍历数组,将非零元素依 次覆盖到指针所指的位置,并将指针向前移动,最后将剩余位置上的 元素设置为0。 通过以上几个具有挑战性的C语言数组编程练习题,我们可以加深 对数组的理解,并提高对C语言编程的熟练度。虽然这些题目可能有 一定的难度,但通过解题过程中的思考和实践,我们可以锻炼自己的

c语言编程题经典100例

c语言编程题经典100例 下面是经典的c语言编程题100例,每道题目都涵盖了c语言编程的各个方面,包括基本数据类型、条件语句、循环结构、函数与指针等。通过这100道题目的练习,可以帮助初学者快速掌握c语言编程的基础知识,也有助于进一步深入了解c语言的高级特性。 1. 打印Hello World。 2. 输入一个整数,判断是否为偶数。 3. 输入两个整数,求它们的和、差、积、商和余数。 4. 输入一个整数,求它的绝对值。 5. 输入一个字符,判断它是否为字母。 6. 输入三个整数,找出其中的最大值。 7. 输入一个字符,判断它是否为数字。 8. 输入一个整数,判断它是否为质数。 9. 输入两个字符串,比较它们的大小。 10. 输入一个字符,将它转换为大写或小写。 11. 输入一个浮点数,求它的平方根。 12. 输入一个整数,将它按位取反。 13. 输入一个字符串,翻转它的顺序。 14. 输入一个字符串,统计其中的元音字母个数。 15. 输入一个整数,将它转换为二进制数。 16. 输入两个整数,交换它们的值。

17. 输入一个二维数组,输出它的转置矩阵。 18. 输入一个数组,找出其中的最大值和最小值。 19. 输入一个数组,求它的平均数、中位数和众数。 20. 输入一个数组,判断它是否为回文数。 21. 输入一个字符串,统计其中的单词数量。 22. 输入一个字符串,统计其中的字符数、单词数和行数。 23. 输入两个字符串,判断它们是否为同构字符串。 24. 输入一个字符数组,将它转换为整数。 25. 输入一个浮点数,将它转换为分数。 26. 输入一个浮点数,将它四舍五入到整数。 27. 输入一个字符串,将其中的数字字符替换为其他字符。 28. 输入两个数组,把它们合并成一个新的数组。 29. 输入一个二维数组和一个数值,查找并输出它在二维数组中的位置。 30. 输入一个字符串,判断它是否为回文字符串。 31. 输入两个整数,求它们的最大公约数和最小公倍数。 32. 输入一个表达式,求它的值。 33. 输入一个字符串,将其中的大写字母转换为小写字母。 34. 输入一个字符串,将其中的小写字母转换为大写字母。 35. 输入两个字符串,找出它们的最长公共子串。 36. 输入一个字符串,找出其中的最长回文子串。 37. 输入一个字符串,找出其中出现最多的字母和它出现的次数。 38. 输入一个字符串,去掉其中的空格。 39. 建立一个链表,输入若干个数值并输出它们的平均数。 40. 输入一个字符串,将其中的空格转换为其他字符。

C语言编程题(带答案)

C语言编程题(带答案) 本文是一篇关于C语言编程题的文章。以下是几道C语言编程题以及它们的解答。 编程题一:求1到100之间所有能被3整除的数的和。 解答一: ```c #include int main() { int sum = 0; for (int i = 1; i <= 100; i++) { if (i % 3 == 0) { sum += i; } } printf("1到100之间所有能被3整除的数的和为:%d\n", sum); return 0; } ``` 编程题二:判断一个数是否是质数。

解答二: ```c #include int isPrime(int num) { if (num <= 1) { return 0; } for (int i = 2; i <= num / 2; 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; } ``` 编程题三:计算斐波那契数列的前n项。解答三: ```c #include int fibonacci(int n) { if (n <= 0) { return 0; } if (n == 1 || n == 2) { return 1; } int a = 1;

《C语言程序设计》李学刚数字资源9章 参考答案 3拓展训练答案 单元2 拓展训练答案

单元2 拓展训练答案 一、单项选择题 1.下面4个选项中,均是合法整型常量的是(D )。 A.-0x4al,2e2,0x B.-0xcdf,0la,0xe C.-01,0,0686 D.0,0xabcd,1L 2.下面4个选项中,不是合法十六进制数的是的(B )。 A.0XF2A B.01234 C.-0xdddd D.0xdefl 3.下列正确的转义字符是(A )。 A.'\a' B.'\B' C.'\c' D.'\d' 4.下面4个选项中,均不是不合法的转义字符的是(C )。 A.'\=','\\','xf' B.'\1011','\','\A' C.'\011' ,'\f','\1' D.'\abc','\101','xlf' 5.字符串"\'\\\a\bcde\f\'"的长度是(B )。 A.8 B.9 C.10 D.11 6.下列不能正确定义const常量是(C )。 A.const int b=0; B.int const b=12; C.const int c; D.int const c=10+2; 7.宏替换过程是在(B )进行的。 A.运行前B.编译前 C.编译后D.编辑后 8.有宏定义#define L 10和#define M L+1,则printf("%d\n",10*M-1);输出的结果为( B )。 A.110 B.100 C.109 D.101 9.若有以下说明语句:char s="\\\\092" ; 则下面正确的是(B )。 A.使s的值包含5个字符B.说明语句不合法 10.若有这样的定义和语句:unsigned short a=65535,b;b=a+1;程序其它部分正确,则printf("%d\n",b);输出的值为( A )。 A.0 B.65536 C.1 D.-65536 11.若有这样的定义和语句:short a=32767,b;b=a+1;程序其它部分正确,则printf("%d\n",b);输出的值为( B )。 A.32768 B.-32768

《C语言程序设计》李学刚数字资源9章 参考答案 3拓展训练答案 单元3 拓展训练答案

单元3 拓展训练答案 一、单项选择题 1.表达式中各运算量不能自动从一种类型转换为另一种类型的是( D )。 A.char转换为int B.short转换为int C.unsigned char转换为unsigned int D.unsigned char转换为unsigned short 2.定义int i;float a;double k;则下列表达式类型为double的是(C ). A.i*10+a+'k' B.i*10+a+(int)k C.i*10.0+a D.i*10+a+(float)k 3.若x=2,y=3,则x&y的结果是(B )。 A.1 B.2 C.3 D.0 4.表达式0x13&0x17的值是(C )。 A.0x17 B.1 C.0x13 D.0x1f 5.设有char x=3,y=6,z;z=x^y<<2;则z的二进制值是(D )。 A.00010100 B.00011000 C.00011100 D.00011011 6.在位运算中,操作数每左移一位,其结果相当于是(A )。 A.操作数乘以2 B.操作数除以2 C.操作数乘以4 D.操作数乘以4 7.设有定义语句:char c1=92,c2=92;则以下表达式中值为零的是(A )。 A.c1^c2 B.c1&c2 C.~c2 D.c1|c2 8.设int b=2;表达式(b>>2)/(b>>1)的值是(C )。 A.4 B.2 C.0 D.8 9.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是( D )。 A.x || y B.x | y C.x & y D.x ^ y 10.设有int x=5;char z='a';则printf("%d\n",(x&1)&&(z<'z'));输出的结果是(B )。 A.0 B.1 C.2 D.3 11.在系统中,函数调用时实参的求值顺序是(B )。 A.没有明确规定B.自右向左

《C语言程序设计》李学刚数字资源9章 参考答案 3拓展训练答案 单元4 拓展训练答案

单元4 拓展训练答案 一、单项选择题 1.表达设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为( C )。 A.4 B.16 C.32 D.0 2.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是(D )。 A.c=b=a; B.(a=c)||(b=c); C.a=c=b; D.(a=c)&&(b=c); 3.若有定义:int a=8,b=5,c;则执行语句;后c的值为(B )。 A.B.1 C.D.2 4.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是( A )。 A.x^y B.x||y C.x|y D.x&y 5.已知int a=-1,b=4,k;k=(++a<0&&!(b--<0));则k,a,b的值分别为(D )。 A.1,0,4 B.1,0,3 C.0,0,3 D.0,0,4 6.下列不正确的条件编译形式为(B )。 A.#ifdef 标识符B.#ifndef 表达式 程序段 1 程序段 1 [ #else #else 程序段2] 程序段 2 #endif #endif C.#ifndef 标识符D.#if 表达式 程序段 1 程序段 1 [ #else #else 程序段2] 程序段 2 #endif #endif 7.以下不正确的if语句是(C )。 A.if(x>y&&x!=y); B.if(x= =y) x+=y; C.if(x!=y) scanf(" %d",&x),else scanf(" %d",&y); D.if(xy) z=x;x=y;y=z;

趣味c语言编程100例

趣味c语言编程100例 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ======================================================= =======

【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000)

经典C语言编程(41题)

1.编程:从键盘输入10个整数,对其进行从小到大排序,将排序后的结果输出并保存到 文件“DATA.DAT”中。 #include void main() {FILE *fp; int i,j,t,min,a[10]; if((fp=fopen("E:\\DATA1.DAT","w"))==N ULL) {printf("cannot open\n"); exit(0);} for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) {min=i; for(j=i+1;j<10;j++) if(a[min]>a[j]) min=j; t=a[min];a[min]=a[i];a[i]=t; } for(i=0;i<10;i++) {printf("%5d",a[i]); fprintf(fp,"%5d",a[i]);} printf("\n"); fprintf(fp,"\n"); fclose(fp); } 2.设有10个学生的信息,包括学号、姓名和三门功课的成绩,试编写学生信息输入函数、学生信息输出函数,最后编写主函数,并在主函数中调用这些函数。 #include struct student {int num; char name[10]; int Computer; int Maths; int English; }stu[10]; void input(struct student stu[]) { int i; for(i=0;i<10;i++) { printf("num="); scanf("%d",&stu[i].num); printf("name="); scanf("%s",&stu[i].name); printf("Computer="); scanf("%d",&stu[i].Computer); printf("Maths="); scanf("%d",&stu[i].Maths); printf("English="); scanf("%d",&stu[i].English); printf("\n"); } } void print(struct student stu[]) {int i; printf("The information of students is:\n"); printf("num name Computer Math English\n"); for(i=0;i<10;i++) { printf("%2d %8s %8d %8d %8d\n",stu[ i].num,stu[i].name,stu[i].Computer, stu[i].Maths,stu[i].English); } } void main() {input(stu); print(stu); } 3.输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数,并将统计结

C语言编程题及答案(精心整理)

)(*)(*)(*c s b s a s s ---C 语言编程题 1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。 main() {float i=1,j=2,t=0,s,n,m; for(n=1;n<=20;n++) s=i/j,m=i,i=j,j=m+j,t=t+s; printf("t=%f",t); } 2.(*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde ,输出edcba ) main() {int i; char c[10]; scanf("%s",c); for(i=9;i>=0;i--) printf("%c",c[i]); } 3.(*)已知abc+cba=1333,其中a 、b 、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a 、b 、c ,并输出结果。 main() {int a,b,c,x,y; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=1;c<=9;c++) { x=100*a+10*b+c; y=100*c+10*b+a; if(x+y==1333) printf("x=%d,y=%d",x,y);} } 4.(*)利用海伦公式求三角形面积,三边长a,b,c 由键盘输入。若输入的三边长不能构成 三角形,输出相应提示信息。海伦公式如下:其中s=(a+b+c)/2 三角形面积= #include"math.h" main() { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); if(a+b>c&&a+c>b&&b+c>a) printf("area=%f",area); else .1 . printf("no"); } 5.(*)编程求出1!+2!+3!+…+8!+9!+10!的值并输出。

C语言程序设计案例教程模仿练习及拓展练习(参考答案)

《C语言程序设计案例教程》模仿练习及拓展练习(参 考答案) 第2章数据类型、运算符与表达式 模仿练习(ex1.c) 1. 设 a = 10,b = 3,分别计算表达式a-b+++1和++a-b+++1的值。 2. 输入一个3位数的整数,编写一个程序,将它的十位数和百位数互换位置。 3. 输入一个4位整数,反向输出这个数。 #include void main() { int x,y,x1,x2,x3,x4; //1. 设a = 10,b = 3,分别计算表达式a-b+++1和++a-b+++1的值 int a =10,b=3,c; c = a-b+++1; //相当于c = a-(b++)+1->c = 10-3+1 =8;b = b+1=4 printf("a-b+++1=%d\n",c); a = 10; b = 3; c = ++a-b+++1; printf("++a-b+++1=%d\n",c); //2. 输入一个3位数的整数,编写一个程序,将它的十位数和百位数互换位置。 printf("输入一个3位数的整数:"); scanf("%d",&x); x1=x/100; x2= (x/10)%10; x3=x%10; y = x3*100+x2*10+x1; printf("%d\n",y); //3. 输入一个4位整数,反向输出这个数。 printf("输入一个4位数的整数:"); scanf("%d",&x); x1=x/1000; x2= (x/100)%10; x3=(x%100)/10; x4=x%10;

y = x4*1000+x3*100+x2*10+x1; printf("%d\n",y); } 模仿练习(ex2.c) 1.若有int b=7;float a=2.5F,c=4.7F;求表达式a+(b/2*(int)(a+c)/2)%4的值 2. 若有int a=2,b=6;表达式(a++)*(--b)执行后,变量a和b的值分别为多少? #include "stdio.h" void main() { //1.若有int b=7;float a=2.5F,c=4.7F;求表达式a+(b/2*(int)(a+c)/2)%4的值int b=7,a1; float a=2.5F,c=4.7F; printf("a+(b/2*(int)(a+c)/2)%4 =%d\n",a+(b/2*(int)(a+c)/2)%4); //2. 若有int a1=2,b=6;表达式(a1++)*(--b)执行后,变量a1和b的值分别为多少? a1=2;b=6; (a1++)*(--b); printf("a1=%d,b=%d\n",a1,b); } 模仿练习(ex3.c) 1. 任意输入两个数,求这两个数进行“与”和“或”之后的结果。 2.输入一个整数,截取该数的低8位。 #include "stdio.h" void main() { //1. 任意输入两个数,求这两个数进行"与"和"或"之后的结果。 short a,b; printf("请输入两个整数:"); scanf("%d%d",&a,&b); printf("a&b=%x,a|b=%x\n",a&b,a|b); //2. 输入一个整数,截取该数的低8位。 printf("请输入一个整数:"); scanf("%d",&a); printf("a&0x0F=%x\n",a&0x0F); } 模仿练习(ex4.c) 1.设a = 10, b = 3, c = 10,且a *= b = c-2;计算a,b,c的值。 2.设计一个程序计算a*=7*3-15和a*=b*=5+4的值,并分析执行过程。 #include "stdio.h" void main() { //1.设a = 10, b = 3, c = 10,且a *= b = c-2;计算a,b,c的值。

C语言编程实例100题

C语言程序实例100个〔一〕 [程序1] 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4.组成所有的排列后再去掉不满足条件的排列. 2.程序源代码: main<> { int i,j,k; printf<"\n">; for/*以下为三重循环*/ for for { if /*确保i、j、k三位互不相同*/ printf<"%d,%d,%d\n",i,j,k>; } } ============================================================== [程序2] 题目:企业发放的奖金根据利润提成.利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型. 2.程序源代码: main<> { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf<"%ld",&i>; bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if bonus=i*0.1; else if bonus=bonus1+*0.075; else if bonus=bonus2+*0.05; else if bonus=bonus4+*0.03; else if bonus=bonus6+*0.015;

C语言编程实例经典100题

C语言程序实例100个 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不一样且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不一样*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的局部按10%提成,高于10万元的局部,可可提成7.5%;20万到40万之间时,高于20万元的局部,可提成5%;40万到60万之间时高于40万元的局部,可提成3%;60万到100万之间时,高于60万元的局部,可提成1.5%,高于100万元时,超过100万元的局部按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1; bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075;

相关主题
文本预览