好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

西北大学c语言复习题库.pdf

28页
  • 卖家[上传人]:第***
  • 文档编号:55671512
  • 上传时间:2018-10-03
  • 文档格式:PDF
  • 文档大小:1.22MB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • C语言程序经典习题 马阳(ma yang@) 最后更新 2014 年 12 月 22 日 使用说明 • 为了能让在校学生更好的学习C 语言,作者以西北大学 2001 年 3 月 19 日匿名作者的C语言复 习题为基础进行了大幅度的修订,优化了大量代码,提供更优的算法,调整了习题的顺序,参 考代码确保扣题 • 收录大量经典C 语言习题,所有代码经过精心编写,编码规范良好,适合读者反复揣摩、模 仿 • 全书的代码,使用C99 的编写,并在GCC 4.8.1上测试通过本书中,为了缩短代码,与课本 中的工程规范略有不同,大量使用逗号表达式,不需要检查内部函数入口参数的有效性所有 主函数返回类型为int,正常返回值为0 • 由于作者编写时间仓促,能力有限,不当和疏忽之处在所难免,望广大读者批评指正若需要 向题库添加更好的习题,请与作者联系 • 本书非商业使用如需商用,请联系作者 目录1 目录 1从键盘输入两个整数,输出其和、差、积和商1 2用scanf()函数输入三个整数,输出其中不大不小的数1 3输入三个字符,对这三个字符各加整数1后输出1 4利用海伦公式计算三角形面积2 5输入若干学生一门功课的成绩,统计各分段的人数2 6输入一个整数,判断它能否被3、5、7整除,并输出按要求输出信息2 7输出英文星期名3 8将整数的每位数字转换为英文3 9输出5分制成绩4 10 给出年、月、日,计算出该日是该年的第几天4 11 求分数序列:1 2, 2 3, 3 5, 5 8, 8 13,. 前20项的和 5 12 用近似公式求自然对数的底e的值5 13 计算1! + 2! + 3! + . + 10!的值并输出6 14 计算1! + 3! + 5! + 7! + 9! + 11!的值并输出6 15 统计输入数字个数6 16 输入正整数,判断是否既是5又是7 的整数倍数7 17 求S(a) = a + aa + aaa + aaaa + aaaaa的值7 18 abc + cba = 13337 19 输出1 ∼ 100之间能被9整除余2的数8 20 输出0 ∼ 999之间的所有“水仙花数”8 21 输出1000以内完数8 22 寻找1∼99之间的同构数9 23 求3∼50之间所有素数之和,用子函数判断是否为素数9 24 从键盘输入两个正整数,输出其最大公约数和最小公倍数10 25 编写函数,求一个不超过五位数的十进制整数各位数值的和10 2目录 26 换零钱问题11 27 编程输出如下图形(不能使用printf语句)11 28 输出杨辉三角形的前十行12 29 输出乘法口诀表12 30 输入任意5个数在数组中,请按格式打印如下方阵13 31 输入5对整数,请输出每对数中较大者13 32 将一个3 × 3矩阵转置(行列互换)后输出13 33 求一个3 × 3矩阵的最大和最小元素及下标14 34 求一个3 × 3矩阵的对角线元素之和14 35 求一个一维数组的最大值、最小值和平均值(主函数调用并输出)15 36 将n个整数按升序排序重新放到原数组中,操作时不得另开辟数组15 37 编写函数,在一维数组中查找元素16 38 在有序数组中寻找元素16 39 在有序数组中插入元素17 40 编写函数,给定一个数,删除数组中与之相等的元素,返回值为删除后数组元素个数17 41 数列元素奇数降序排列,偶数升序排列18 42 A数组有8个元素,从第6个元素开始将数组后三个元素移到数组开头18 43 字符串逆序输出19 44 编写函数,实现字符串逆序19 45 不用strcpy()函数,实现两个字符串的复制19 46 编写函数,从指定位置复制字符串20 47 不使用库函数实现字符串特定条件的连接20 48 编写函数将一个字符串中每一个单词的每一个字母转换为大写20 49 从键盘输入10个数,用指针实现将最小的数与第一个数对换,最大的数与最后一个数对换21 50 在主函数中输入三个数,在子函数中用指针将三个数排序21 51 输入三个字符串,按由小到大的顺序输出(用字符指针实现)22 目录3 52 输入6名学生的5 们成绩,分别统计每个学生的平均成绩22 53 有10名学生,每位学生有四门功课。

      输出平均成绩、总分最高和最低的两位学生所有课程的 成绩23 54 从指定位置开始的n个数按逆序重新排列并输出新的完整序列24 C语言程序经典习题Page 1 of 24 1从键盘输入两个整数,输出其和、差、积和商 1#include 2intmain(){ 3inta ,b ; 4scanf (”%d%d” , 5printf (”%d + %d = %d\n” ,a ,b ,a+b ); 6printf (”%d − %d = %d\n” ,a ,b ,a−b ); 7printf (”%d ∗ %d = %ld\n” ,a ,b ,(long)a∗b );//确保不同环境数据尽可能不会溢出 8i f (b!=0)printf (”%d / %d = %.2 f \n” ,a ,b ,( float )a/b );//实型数除法 9elseprintf (”%f/ %f = i n f i n i t y \n” ,a ,b ); 10return0; 11} 2用scanf()函数输入三个整数,输出其中不大不小的数 要求输出宽度为五位 1#include 2intfindMid ( inti ,intj ,intk){//mid = sum - max - min 3returni+j+k − ( ij ?( ik? i : k ) : ( jk? j : k)) − ( i 2#define N 3 3intmain(){ 4char a [N] ; 5inti=N; 6while( i −−) //读取N个字符 7scanf (”%c” , 8i =0; 9while( i 2#include 3intmain(){ 4floata ,b ,c ,s ,area ; 5scanf (”%f%f%f ” , 6i f (a+bc 8area=sqrt ( s ∗(s−a)∗( s=b)∗( s−c ) ) ; 9printf (”area=%f \n” ,area ); 10} 11elseprintf (”No!\n” ); 12return0; 13} 5输入若干学生一门功课的成绩,统计各分段的人数 凡不及格(低于60分)都一个计数器来统计,其它以10 分作为一个分数段,100分作为一个分数 段。

      1#include 2intmain(){ 3inti ,n ,fail ,a [11]={0}; 4while( scanf (”%d” , 12for ( i =6;i %d\n” ,i ∗10 ,i ∗10+9,a [ i ] ) ; 14printf (”100 − %d\n” ,a [ 1 0 ] ) ; 15return0; 16} 6输入一个整数,判断它能否被3、5、7整除,并输出按要求输出信 息 1. 能同时被3、5、7整除 2. 能被其中两个数(说明哪两个数)整除 3. 只能被其中一个整除(说明哪个数) 4. 不能被3、5、7 任何一个整除 C语言程序经典习题Page 3 of 24 1#include 2intmain(){ 3intn ,a ,b ,c ; 4a=b=c=0; 5scanf (”%d” , 6i f (n%3 == 0)a++; 7i f (n%5 == 0)b++; 8i f (n%7 == 0)c++; 9switch(a+b+c){ 10case3:printf (”(1)\n” ); break ; 11case2:printf (” (2) − ” ); 12i f (a)printf (”3 ” ); 13i f (b)printf (”5 ” ); 14i f ( c )printf (”7 ” ); 15printf (”\n” ); break ; 16case1:printf (” (1) − ” ); 17i f (a)printf (”3 ” ); 18i f (b)printf (”5 ” ); 19i f ( c )printf (”7 ” ); 20printf (”\n” ); break ; 21case0:printf (”(4)\n” ); break ; 22} 23return0; 24} 7输出英文星期名 编写程序实现如下功能:输入1、2、3、4、5、6、7 (分别对应星期一至星期日)中的任何一个 数,便能输出与之对应的英文名称。

      如输入1,则输出Monday 1#include 2intmain(){ 3charday ;//节约空间 4day=getchar ( ) ; 5switch(day){ 6case’1 ’ : printf (”Monday\n” ); break ; 7case’2 ’ : printf (”Tuesday\n” ); break ; 8case’3 ’ : printf (”Wedenesday\n” ); break ; 9case’4 ’ : printf (”Thursday\n” ); break ; 10case’5 ’ : printf (”Friday\n” ); break ; 11case’6 ’ : printf (”Saturday\n” ); break ; 12case’7 ’ : printf (”Sunday\n” ); break ; 13default: printf (”Error !\n” ); 14} 15return0; 16} 8将整数的每位数字转换为英文 例如:输入1024,输出One Zero Two Four Page 4 of 24西北大学科技与创业协会 1#include 2#include 3intmain(){ 4chars [ 1 1 ] ;//录入数字 5inti ,l ; 6gets ( s ); 7l=strlen ( s ); 8for ( i =0;i 2intmain(){ 3intscore ; 4scanf (”%d” , 5i f ( score 100){ 6printf (”Error !\n” ); 7return0;//程序结束 8} 9switch( score /10){ 10case10:case9:printf (”A\n” ); break ; 11case8:printf (”B\n” ); break ; 12case7:printf (”C\n” ); break ; 13case6:printf (”D\n” ); break ; 14default : printf (”D\n” );// 表示0,1,2,3,4,5 15} 16return0; 17} 10给出年、月、日,计算出该日是该年的第几天 1#include 2intday( intyyyy ,int mm,intdd){ C语言程序经典习题Page 5 of 24 3intisleap ,sum=0; 4isleap=(yyyy%4==0 //判断闰年 5switch(mm){//注意降序运算,无语句,自标号向下执行break 6case12:sum+=30; 7case11:sum+=31; 8case10:sum+=30; 9case9:sum+=31; 10case8:sum+=31; 11case7:sum+=30; 12case6:sum+=31; 13case5:sum+=30; 14case4:sum+=31; 15case3:sum+=28+isleap ;//闰月+1 16case2:sum+=31; 17case1:sum+=0; 18} 19return sum+dd ; 20} 21intmain(){ 22in。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.