上机同步训练资料_第1页
上机同步训练资料_第2页
上机同步训练资料_第3页
上机同步训练资料_第4页
上机同步训练资料_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、同步上机习题集二级 C 语言程序设计二级 C 上机同步训练目录二级 C 语言上机同步训练(一)数据类型、表达式 2 二级 C 语言上机同步训练(二)选择结构 3 二级 C 语言上机同步训练(三)循环结构 5 二级 C 语言上机同步训练(四)数组 9 二级 C 语言上机同步训练(五)字符数组 16 二级 C 语言上机同步训练(六)函数 21 二级 C 语言上机同步训练(七)指针 23 二级 C 语言上机同步训练(八)结构体 24 二一九年四月二十四日星期三第 1 页 共 27 页同步上机习题集二级 C 语言程序设计二级 C 语言上机同步训练(一)数据类型、表达式前面的课程中我们主要学习了 C语言

2、的基本数据类型 (整型、 实型、字符型)、 基本运算符及表达式、 基本语句。 这些内容是 C 语言中的基本概念和理论, 要求学 生要在练习中逐步熟悉、记忆。编程题:1. 从键盘输入四个整数, 分别存入整型变量 a,b,c,d 中,并将 (a+b)*(c+d) 的结果显示出来。1. 从键盘输入一大写字母,把它转换为小写字母后显示出来。2. 计算从键盘上输入的一个数的平方值和立方值,并显示出来。3. 已知一个实型变量 h, 编写程序将这个数字保留小数点后 2 位小数,并对第 3 位 数字进行“四舍五入” ,最后输出这个实数。例如: 8.32433 - 8.320000 8.32533 - 8.33

3、00004. 从键盘读入两个整数 a,b 将这两个整数合并生成一个新的四位数 c,其中 a的十 位和各位是 c 的千位和十位,b的十位和个位是 c 的百位和个位。例如 a=54,b=12.则 c 的值应该是 5142第 2 页 共 27 页同步上机习题集二级 C 语言程序设计5. 将 China 中每个字母加密为其后的第 4 个字母,即加密为 Glmre6. 输入一个华氏温度,要求输出摄氏温度,公式为; c=5/9*(F-32) 。7. 3. 两个瓶子分别装醋和酱油,要求互换,实际就是交换两变量。二级 C 语言上机同步训练(二)选择结构本课中我们主要学习了 C语言中的选择结构(三种程序基本结构

4、之一) ,C 语 言中的选择结构主要由 if 语句和 switch 语句实现。 选择结构可以实现当程序运 行时,根据不同情况(比如:输入数据的不同) ,执行不同的语句。就像数学中的 分段函数 X 的取值范围不同, Y 的值也不相同。在处理本课习题时,同学们要培养 清楚的逻辑思维能力,一定要搞清楚当某种条件成立时,程序执行什么样的操作, 否则该执行什么操作。编程题:1. 编写一个 C 程序,输入 a,b,c 三个值,输出其中最大者2. 判断一个数 n能否同时被 3和 5整除。第 3 页 共 27 页同步上机习题集二级 C 语言程序设计3. 从键盘输入一个 x 值,按 y=x2+1(x=0),y=

5、x3-1(x0); 计算并打印 y 的值4. 有一函数:当 x=1且 x=10时,y=3x-11 , 写一程序,输入 x,输出 y 值。5. 输入一个年份,判断是否是闰年,如果是闰年输出“YES” , 否则输出“NO”。6. 键盘输入一个字符,当该字符是英文字母时,显示字符串“ It is a letter 当该字符不是字母时,显示字符串“ It is not a letter ”。7. 输入三个整数整数 x,y,z ,请把这三个数由小到大输出。8. 从键盘输入一个字符,当该字符是 +、-、*、/ 中的任一个时,显示与其对应的 英文单词 :plus 、 minus、multiplication

6、或 division 。当输入其它字符时,显示 Data Error! 。优秀良好合格不合格9. 输入一个百分制成绩( 0100),根据该成绩得到其等级段成绩x 9090 x8080 x6060 x第 4 页 共 27 页二级 C 语言程序设计同步上机习题集二级 C 语言上机同步训练(三)循环结构本课中我们主要学习了 C语言中的循环结构(三种程序基本结构之一) ,C 语 言中的循环结构可以由 for 、 while 、 do while 三种语句实现。三种循环语句可以 互相代替, 但是更要注意它们的细小差别。 比如:while 先判断后循环, 而 do while 先循环后判断。在程序设计过程

7、中只要出现多次重复的操作都可以用循环来实现, 比如:输入若干个学生的成绩、计算 n 的阶乘、计算学生的总分、对若干个数据排 序等等,都要使用到循环。循环在使用时一定要注意三要素:循环变量初值、循环 变量增量、循环结束条件。它们是构成循环的框架。编程题:1. 求下列累加和的结果并输出 (注意:一定合理的使用整型和实型)a)11341001 1 1 111b) 2 3 4 5n当 n=50 时的结果。3 5 8 13c) 2 3 5 8的前 30 项的和d)1112123n=20 时的结果。第 5 页 共 27 页同步上机习题集n=10 时的结果。二级 C 语言程序设计(1 1) (1 1)( 1

8、 1 )e) 1 2 3 4 2 n 1 2 n2. 求 Sn=a+aa+aaa+.+aa.a之 值 , 其 中 a 是 一 个 数 字 , 例 如 :2+22+222+2222+22222(此时 a=2,n=5 ),n和 a由键盘输入 n=6,a=3 时的结果 ( 注意数据类型的范围 ) 。3. 编写程序, 功能是读入一个数字, 并判断它是否是素数, 如果是则输出 “ YES”, 否则输出“ NO”。4. 判断 100-200 之间有多少个素数,并输出所有素数。5. 编程完成功能是: 找出大于给定整数 m 且紧随 m 的一个素数, 并输出该素数。6. 编写一个函数,输出给定整数 m的全部的素

9、数因子(即输出所有既是 m的因子 又是素数的数字) 。7. 编程求 200到 400之间所有所有能被 5或 9整除的数字的倒数之和。8. 古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长 到第三个月后每个月又生一对兔子, 假如兔子都不死, 请列出前 20 月每月的兔子数。第 6 页 共 27 页同步上机习题集二级 C 语言程序设计a) 兔子的规律为数列 1,1,2,3,5,8,13,21 b) (规律是:前两项都是 1,从第 3 项开始,每一项都等于相邻前两项之 和)。9. 给定一个不多于 5 位的正整数,要求:一、求它是几位数,二、它的个位数是 多少,三、它的最高位是

10、多少。10. 编写程序的功能是: 计算正整数 num的各位上的数字之积。 例如,若输入: 252, 则输出应该是: 20。若输入: 202,则输出应该是: 0。(注意:请分别用 for 循环和 while 循环两种方式完成) 。11. 打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立 方和等于该数本身。例如: 153 是一个“水仙花数” ,因为 153=1 的三次方 5 的三次方 3 的三次方。12. 请编写一个程序, w是一个大于 10 的无符号整数, 若 w是 n(n=2)位的整数, 函数求出 w 的后 n-1 位的数作为函数值返回。例如: w值为 5923,则函数

11、返回 923; w值为 923 则函数返回 23。13. 编程计算整数 n的阶乘并输出该阶乘的值。第 7 页 共 27 页同步上机习题集二级 C 语言程序设计1234567812436948121651015202561218243036714212835424981624324048566491827364554637214. 编写程序输出如下图所示的下三角乘法九九表981的值( 注意表15求组合数。已知 m,n 的值,请根据下面的公式,编程计算 c(m,n)达式中变量类型定义 )c(m,n)m!n!(m n)!第 8 页 共 27 页二级 C 语言程序设计同步上机习题集二级 C 语言上机同

12、步训练(四)数组本节课程中我们主要学习了 C 语言中个构造数据类型数组。 同学们在理 解数组时可以把它看作是由若干个内存变量组成的一个整体, 它们有一个共同的名 称,用下标来分别区分每一个成员, 这些变量在内存中占据连续的存储空间。 在一 维数组应用时要注意数组的操作是和循环分不开的, 不管是数组的输入、 输出、 数 据处理都要用循环完成。 二维数组可以看成是一张数据表, 表中有行有列, 用行和 列下标来确定一个数据。 二维数组在应用时时和循环嵌套分不开的, 一般我们使用 for 循环嵌套。编程题:1. 给定一个数组 ,int a10=3,6,45,12,16,2,8,9,7,5; 编写程序求

13、出该数组 的所有元素的和,最大值,最小值及平均值。2. 编程寻找 100 200 之间的所有的素数,并将这些素数存进数组 int a100 中, 并输出。 (请自己写出整个程序的全部过程) 。3. 请编写程序功能是: 将所有大于 1 小于整数 m的非素数存入 xx 所指数组中, 并 统计非素数的个数 k 输出。例如,若输入: 17,则应输出: 9 和 4 6 8 9 10 12 14 15 16 。第 9 页 共 27 页同步上机习题集二级 C 语言程序设计4. 给定一维数组 int a10; 请编程:将一维数组 a 逆置并输出。5. 给定数组 int a10=3,6,45,12,16,2,8

14、,9,7,5; 编写程序分别求该数组所有的偶数之和及所有奇数之和。6. 求出 1m之间所有能被 5 或 7 整除的数字放进数组 int a100 中,并输出这 些数字 (请自己写出整个程序的全部过程) 。7. 本程序演示一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万 位相同,十位与千位相同。8. 由键盘上输入十个整数存放到一维数组 int a10 中 ; ,要求将数组中的元素 按照升序排列并输出。 (请自己写出整个程序的全部过程) 。9. 一个数列中的值来自下面的两个部分:2nn 1,2,33nn 1,2,3请编程将该数列中的由小到大的前 30 项放进数组 int a3

15、0 中(请自己写出整 个程序的全部过程) 。第 10 页 共 27 页同步上机习题集二级 C 语言程序设计10. 给定一个数组 ,int a10=3,6,45,12,16,2,8,9,7,5; 编写程序求出该数组 中的最大值和次最大数字 max1,max2。及最大数和次最大数的下标。#include void main( void )int a10=3,6,45,12,16,2,8,9,7,5 ;int max1,max2,m1,m2;11. 给定二维数组 int a56,求二维数组周边元素的和及平均值:printf(“n最大值是: %d”,max1);printf(“n最大值下标是:%d”,

16、m1);printf(“n次大值是: %d”,max2);printf(“n次大值的下标是:%d” ,m2)#include void main( void )int sum;double aver;第 11 页 共 27 页同步上机习题集二级 C 语言程序设计int a56=3,6,8,5,7,9,9,5,7,4,8,5,2,6,9,4,7,7,5,2,3,6,4,5 2,8,4,7,9,7;?printf( “n sm= %d n ” ,sum);printf( “n aver= %f n ” ,aver);12. 给定二维数组 int a55= 3,6,8,5,7,9,5,7,4,8,2

17、,6,9,4,7,5,2,3,6,4 2,8,4,7,9;编程将其下三角元素 “清 0”,同时将上三角元素都加上 10。并输出调整后的结第 12 页 共 27 页同步上机习题集二级 C 语言程序设计果 (请自己写出整个程序的全部过程) 。13. 请编程将二维数组中每行的平均值存入数组 b 中,将每列的最大值存入数组 c 中。#include void main( void )int c6;double b5;int a56=3,6,8,5,7,9,9,5,7,4,8,5,2,6,9,4,7,7,5,2,3,6,4,5 2,8,4,7,9,7;for(i=0;i5;i+)printf( “ %f

18、 ”,bi);printf( “n ”);for(i=0;i6;i+)第 13 页 共 27 页同步上机习题集二级 C 语言程序设计printf( “ %d ”,ci);14. 给定二维数组 int a55,请编程:分别求二维数组的对角线元素的和与付对角线元素的和#include void main( void )int m,n;int a55=6,4,7,9,5,5,2,3,4,5,6,5,4,1,2,7,4,6,9,19,5,8,7,4 ;printf( “n 对角线之和为 %d”,m); printf( “n 付对角线之和为 %d” ,n);第 14 页 共 27 页同步上机习题集二级

19、C 语言程序设计15. 在屏幕上打印出“杨辉三角形”的前十行。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1( 提示:将这些数据先存放进一个二维数组中,然后再输出二位数组的下三角。二维数组中数据的规律是:对角线和第一列上都是1,剩余的三角中的元素的值都是上方的元素的值加上左上方元素的值 ) 。(请自己写出整个程序的全部过程) 。17 . 编程序演示实现矩阵( 3行3列)的转置(即行列互换) 。第 15 页 共 27 页同步上机习题集二级 C 语言程序设计二级 C 语言上机同步训练(五)字符数组本节课程中我们学习了 C语言中的字符数组

20、。 实际上字符数组还是一维或二维 数组,只不过是字符类型的。 之所以要单独来讲是因为字符串的处理比较重要, 而 字符串必须存放在字符数组中。所以学习字符数组的目的是掌握字符串处理方法。编程题 :1. 输入一个字符串,请编程 : 逆置该字符串并输出 (如需要变量可以在欲留空白处 定义 ) 。例如 : 输入 abcdefg 输出 gfedcba#include void main( void )char s30,t;gets(s);?puts(s);2. 给定两个字符串存放在 char s100; 和 char t100; 中,编写程序将字符串 t 连接到 s 的尾部,并输出连接后的结果(不允许用

21、 strcat 函数)。第 16 页 共 27 页同步上机习题集二级 C 语言程序设计3. 给定字符串存放在 char s100 中,给定数组 int b26; 请分别统计该字符串中小写字母 a z 出现的次数,将结果存放到数组 int b26 中并输出4. 给定字符串 char s20; 将其中的大写字符改成小写,小写字符改成大写,其他字符不变 (请自己写出整个程序的全部过程)5. 给定字符串 char s100; 将其中 ASCII 值为偶数且下标为偶数的字符形成新的字符串放在 char str1100 中,其余的字符形成新的字符串存入数组 charstr2100 中。#include v

22、oid main( void )char s200,str1100,str2100;gets(s);?puts(str1);puts(str2);6. 由键盘输入一字符串,计算其长度并输出。 ( 不得使用 strlen 函数)#include void main( void )第 17 页 共 27 页同步上机习题集二级 C 语言程序设计char s200;int len;gets(s);?printf( “nlen=%d ” ,len);7. 由键盘输入一字符串,判断其是否是“回文” ,注意:“回文”是指左右对称的 字符串:例如“ eye” “ level ”就是回文,而 admindm不是

23、回文 (请自己写出整个程序的全部过程) 。8. 由键盘输入一个字符串(假定字符串只由 * 和字母组成),编程将其中所有 前导 *删除。例如:输入 *abcd*def* 输出 abcd*def*#include void main( void )char s200;gets(s);第 18 页 共 27 页同步上机习题集二级 C 语言程序设计puts(s);输出 aedfds9. 由键盘输入一个字符串以及一个字符 ch ,把字符串中所有和字符 ch 相等的字符全部删除。例如:输入 accedcfdcsc c(请自己写出整个程序的全部过程) 。10. 由键盘输入一个字符串,请编写程序:把每一个字母

24、都改成它的下一个字母, 大写仍大写,小写仍小写,其他字符保持不变。注意, a 的下一个字母是 b, b 的下一个字母是 c, z 的下一个个字母是 a。例如:输入 welcome 输出 xfmdpnf #include void main( void )char s200; gets(s);?puts(s);第 19 页 共 27 页同步上机习题集二级 C 语言程序设计13. 编写程序的功能是:先将在字符串 s 中的字符按逆序存放到 t 串中,然后把 s 中的字符按正序连接到 t 串的后面。例如:当 s 中的字符串为: ABCDE时,则t 中的字符串应为: EDCBAABCDE。#includ

25、e void main( void )char s200,t400;gets(s);?puts(t);14编写程序的功能是:分别将 a、b 所指字符串中字符倒序,然后按排列的顺序 交叉合并到 c 所指数组中,过长的剩余字符接在 c 所指数组的尾部。例如,当a所指字符串中的内容为 : abcdefg,b 所指字符串中的内容为: 1234 时,则 c所指数组中的内容应该为: g4f3e2d1cba ;而当 a所指字符串中的内 容为: 1234 ,b所指字符串中的内容为: abcdefg 时,则 c所指数组中的内 容应该为: 4g3f2e1dcba 。 (请自己写出整个程序的全部过程)第 20 页

26、共 27 页二级 C 语言程序设计同步上机习题集二级 C 语言上机同步训练(六)函数本节课中我们学习了 C 语言中的函数。 实际上函数的概念很容易理解, 它就是 其他计算机语言中的一段独立实现某功能的子程序,只不过 C 语言中称它为“函 数”。函数学习中这些概念同学们必须搞清楚:函数的定义、声明、函数的类型、 形参、实参,以及它们的作用。编程题:以下程序均要求再编写主函数调试。1. 自己编写计算平面上两点之间距离的数学函数,并编写主函数调用。试想应该 有几个形参、什么类型、返回什么值 ?距离公式: s x1 x2 2 y1 y2 22. 编写计算字符串长度的函数。3. 编写程序演示编一个函数

27、fun(char s), 函数的功能是把字符串中的内容逆 置。例如:字符串中原有的内容为: abcdefg ,则调用该函数后,串中的内容 为: gfedcba 。4. 编写实现字符串连接的函数。5. 编写实现字符串复制的函数。第 21 页 共 27 页同步上机习题集二级 C 语言程序设计6. 用递归法编写函数计算 n 的阶乘。7. 编写函数 int fun(int lim,int aaMAX) ,该函数的功能是求出小于 lim 的所 有素数并放在 aa 数组中,该函数返回所求出素数的个数。8. 请编写函数 fun ,对长度为 7 个字符的字符串,除首、尾字符外,将其余 5 个 字符按降序排列。

28、例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa。9. 编写函数 fun ,函数的功能是:从字符串中删除指定的字符。同一字母的大、 小写按不同字符处理。 例:若程序执行时, 输入字符串为: turbo c and Borland c+,从键盘上输入字符: n,则输出后变为: turbo c ad borlad c+,如果输入的字符串不存在,则字符串照原样输出。10. 请编写一个函数 int fun(int x) ,它的功能是:判断整数 x 是否是同构数。若 是同构数,函数返回 1;否则返回 0。所谓“同构数”是指这样的数,它出现在 它的平方数的右边。 例如:输入整数 5,5的

29、平方数是 25,5是 25中右侧的数, 所以 5是同构数。 x 的值由主函数从健盘读入,要求不大于 100。11. 编写一个函数,该函数可以统计一个长度为 2 的字符串在另一个字符串中出现 的次数。例如,假定输入的字符串为: asd asasdfg asd as zx67 asd mklo,子字符串为: as,则应输出 6。12. 编写一个用来将二维数组( 3 3)转置的函数。第 22 页 共 27 页二级 C 语言程序设计同步上机习题集二级 C 语言上机同步训练(七)指针本节课中我们学习了 C语言中的指针, 指针可谓 C语言的精华。实际上指针就 是我们常说的内存地址。 指针就是地址, 地址也

30、就是指针。 变量的指针就是变量的 内存地址, 指针变量就是专门用来存放变量内存地址的变量, 指针的指针变量就是 存放指针变量的地址的变量。 同学们注意区分。 本节学习中最重要的是掌握指针的 特性。用指针引用变量就是对变量的间接引用。编程题:以下题目均要求用指针处理 :1. 编写函数实现两个数的交换功能。2. 编写程序由键盘输入三个数,将它们按照由小到大的顺序输出3. 编写计算字符串长度的函数。4. 编写字符串比较的函数。5. 编写程序由键盘上输入一字符串,将字符串按原来顺序的逆序排列后输出6. 编写程序将一个二维数组( 3 3)转置。7. 编写程序将一维数组中的数据按升序排列。第 23 页 共

31、 27 页同步上机习题集二级 C 语言程序设计二级 C 语言上机同步训练(八)结构体本节课中我们学习了结构体。 结构体是一种构造数据类型, 象数组一样。 但它 们又有所不同, 数组是由若干个类型相同的元素组成的, 共同的一个名称, 用下标 来区分具体的某一个元素, 而结构体是由若干个相同或不同类型成员组成, 每个成 员都有自己的名称,用“结构体变量名成员名”的方式来区分具体元素。本节中 同学们要掌握结构体类型的声明、结构体变量的定义,结构体成员的引用。编程题:16 题: 现有一个学生的成绩数组,该数组中有 5 个学生的数据记录,每个记录包括 num、name、score3 (三门课的成绩) 、

32、total1. 编写一个函数 print 用来输出这些记录,用主函数输入这些记录( total 项不用输入),用 print 函数输出2. 编写一个函数 total用来根据每一位学生三门课成绩,计算出其总分并赋值给total 项。3. 编写一个 max函数用来找出总分最高的学生记录,并在函数中输出。4. 编写一个 sort 函数用来将学生记录按总分的升序排序,并调用 print 函数输出。第 24 页 共 27 页同步上机习题集二级 C 语言程序设计5. 编写一个 search 函数,用来查找一个由键盘上输入的学号所对应的学生记录。6. 编写一个 fail 函数,用来输出所有总分低于 200 分的学生记录。7. 学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组 s 中, 请编写函数 fun ,它的功能是:把分数最高的学生数据放在 h所指的数组中, 注

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论