c题库
更新时间:2023-11-18 00:54:01 阅读量: 教育文库 文档下载
C语言程序设计题库
1. 根据圆柱体的半径和高,计算圆柱体的表面积和体积(结果精确到小数点后3位)。 程序要求:
(1)圆柱体的半径和高要求从键盘输入,数据输入时,应当显示提示字符串; (2)输出时要求有文字说明。 #define pi 3.1415926 #include
2. 从键盘分别输入两个复数的实部和虚部,求它们的和、差、积、商并将结果在屏幕上输出。
#include \main() { float a,b,c,d,resultr,resulti; printf(\请输入第一个复数:\ scanf(\ printf(\请输入第二个复数:\ scanf(\ printf(\两复数之和为%.2f+%.2fi\\n\ //求和并输出 printf(\两复数之差为%.2f+%.2fi\\n\ //求差并输出 resultr=a*c-b*d; resulti=a*d+b*c; printf(\两复数之积为%.2f+%.2fi\\n\求积并输出 resultr=(a*c+b*d)/(c*c+d*d); resulti=(b*c-a*d)/(c*c+d*d); printf(\两复数之商为%.2f+%.2fi\\n\求商并输出 }
3. 输入一个实数,输出它的平方根值,如果输入数小于0,输出“输入数据错误”的提示。
#include \#include \main() {
float a,b,c; printf(\请输入任意正实数: \ scanf(\ if(a<0) printf(\输入数据错误\\n\ else { b=sqrt(a); c=-b; printf(\的平方根是%.2f和%.2f\\n\ } }
4. 输入三个字符后,请按各字符ASCII码从大到小的顺序输出这些字符。
#include \ main() {
char a,b,c,t;
printf(\请输入三个字符\a=getchar();// 输入字符串 b=getchar(); c=getchar();
// 比较第一个和第二个 if(a
t=a; a=b; b=t; // 完成交换, }
// 比较第一个和第三个 if(a t=a; a=c; c=t; // 完成交换, } // 比较第二个和第三个 if(b t=b; b=c; c=t; // 完成交换, } printf(\字符由大到小顺序是%c,%c,%c \ } 5. 任意输入三条边的长度,判断能否构成三角形?若能构成三角形,是等边三角形、等腰 三角形还是其它三角形? #include \ main() { float a,b,c,t; printf(\请输入三个数:\\n\scanf(\ // 将边按从大到小顺序存放在a,b,c变量中 if(a t=a; a=b; b=t; } if(a t=a; a=c; c=t; } if(b t=b; b=c; c=t; } if(a printf(\是其它三角形\\n\} else printf(\不能构成三角形\\n\} 6. 假设用1,2,??7分别表示星期一、星期二、??星期日。现输入一个数字,输出对 应的星期几的英文单词。 main() { int week; printf(\请输入任意数值(1-7):\ scanf(\ switch(week) { case 1:printf(\ break; case 2:printf(\ break; case 3:printf(\ break; case 4:printf(\ break; case 5:printf(\ break; case 6:printf(\ break; case 7:printf(\ break; default:printf(\输入错误!\\n\ } } 7. 判断输入字符的类型 #include\main() { char c; printf(\ c=getchar(); if(c<32) printf(\ else if(c>='0'&&c<='9') printf(\ else if(c>='A'&&c<='Z') printf(\ else if(c>='a'&&c<='z') printf(\ else printf(\} 8 . 1862年,英国的天文学家哈雷发现一颗大慧星描绘的曲线和1531年,1607年的慧星惊人地相似,便大胆断定,这是同一天体的三次出现,并预言它将于76年后再度回归。这就是著名的哈雷慧星,它的回归周期大约是76年。请你编制程序,列出哈雷慧星在1607~3000年的回归时间表。 #include\main() { int year; for(year=1607;year<3000;year=year+76) { if(year<3000) printf(\ } printf(\} 9. 根据第五次全国人口普查的结果,截至2000年11月1日,北京市的常住人口总数为1381.9万。如果从2001年初开始,北京市把全市人中的年增长率控制在0.13%以内,到2008年举办奥运会时(按到年底计算),北京市最多有多少常住人口?同时请你按年输出每年的常住人口数。 #include\main() { float people; int year; people=1381.9; for(year=2001;year<2009;year++) { people*=1+0.0013; printf(\年,人口%.3f\\n\ } } 10. 若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,问从中任取8个共 有多少种不同的颜色搭配? #include 11. 在一次演讲比赛中,有10个评委为参赛的选手打分,按百分制计分,选手最后得分为 10个分数的平均分。 /*Example36.c 演讲比赛计分器 */ #include long sum=0; char s[N]; printf(\输入十六进制数:\ scanf(\ //输入的十六进制数存储为字符串 for(i=0;s[i];i++) //s[i]代表第i个字符 { if(s[i]<='9') //如果第i个字符为0-9的数值 t=s[i]-'0'; else //如果第i个字符为A-F的数值 t=s[i]-'A'+10; sum=sum*16+t; } printf(\ } 33. 编写一个程序可以求出一个矩阵A的主对角线上元素之和。 程序代码: #include srand(time(0)); //用一个随机值初始化随机数发生器 /* 使用随机数产生矩阵A */ for(i=0;i printf(\矩阵A的对角线元素之和为:%d\\n\} 34. 通过键盘输入n名学生的基本信息,包括:学号、姓名、出生日期、性别、班级,查找并输出在给定日期以后过生日的同学信息。 #include typedef struct{ //定义日期结构体类型 int year; int month; int day; }DATE; typedef struct{ //定义学生信息结构体类型 char num[6]; //学号 char name[24]; //姓名 DATE birthday; //出生日期 char sex; //性别 int clas; //班级 }STUDENTINF; void main() { STUDENTINF s[NUM]; //定义结构体类型数组s DATE d; //定义结构体类型变量d int i; printf(\请输入%d个学生信息(学号 姓名 出生日期 性别 班级):\\n\ for(i=0;i s[i].name,s[i].birthday.year,s[i].birthday.month,s[i].birthday.day,s[i].sex,s[i].clas); } printf(\请输入要查询的日期:\\n\ scanf(\ printf(\学号 姓名 出生日期 性别 班级\\n\ for(i=0;i if(s[i].birthday.month>d.month) { printf(\ s[i].birthday.year,s[i].birthday.month,s[i].birthday.day,s[i].sex,s[i].clas); continue; } //如果月份相等判断日是否大于输入日 if(s[i].birthday.month==d.month&&s[i].birthday.day>d.day) printf(\s[i].birthday.year,s[i].birthday.month,s[i].birthday.day,s[i].sex,s[i].clas); } } 35. 设有如下3×5的矩阵: 328342387 9A?65119616请编写程序计算所有元素的平均值,并将大于平均值的元素输出。 #include float average(int m,int n,int arr[]); //函数声明 main() { int a[3][5]={{3,2,8,34,2},{6,5,11,3,7},{9,6,16,8,9}}; //矩阵初始化 int i,j; int row=3,col=5; //矩阵的行,列数 float ave; //矩阵的平均值 ave=average(row,col,a[0]); //函数调用 printf(\ //输出平均值 printf(\ //提示信息 for(i=0;i float average(int m,int n,int arr[]) //函数定义 { int i; int total=0; float ave; for(i=0;i 36. 编程计算 “1K+2K+3K+??+nK”的值,其中K为整型常量,n为一自然数。 #include #define K 4 //符合常量 #define N 6 powers(int m,int k) //定义指数函数,求m的k次方 { int i,product=1; for(i=1;i<=k;i++) product*=m; return(product); } sum_of_powers(int k,int n) //定义求和函数 { int i,sum=0; for(i=1;i<=n;i++) sum+=powers(i,k); //调用powers函数,并求和 return (sum ); } void main ( ) { printf(\ printf (\ //调用求和函数sum_of_powers } 37. 有5个人坐在一起,问第五个人多少岁?他说比第4个人大两岁;问第4个人岁数,他说比第3个人大两岁;问第三个人,又说比第2人大两岁;问第2个人,说比第一个人大两岁;最后问第一个人,他说是10岁。请问第五个人多大? #include age(n) //递归函数定义 int n; { int c; if(n==1) c=10; //递归结束条件 else c=age(n-1)+2; return c; } void main() { printf(\第5个人为:%d岁\\n\ } 38. 给定文本文件score.txt存储某班所有同学的期末成绩,成绩包括语文和数学两科,以下程序完成对给定同学成绩的查询,部分测试数据如表5-1所列。 表5-1 score.txt中的部分学生数据 学号 0001 0002 0003 姓名 张静静 李中华 王鹏飞 语文 86 74 78 数学 90 86 92 #include struct studinfo //定义结构体 { char no[5]; //学号 char name[7]; //姓名 int s[2]; //成绩 }; void main() { FILE *fp; struct studinfo a; //声明结构体变量 char sno[5]; //计划查找的学生学号 printf(\请输入待查学生的学号:\ scanf(\ if((fp=fopen(\打开文本文件 { printf(\打开文件错误\\n\ exit(0); } printf(\ printf(\学号\\t姓名\\t语文\\t数学\\n\ while(!feof(fp)) { fscanf(fp,\ if (strcmp(sno,a.no)==0) //strcmp()字符串比较函数 printf(\ } fclose(fp); } 39. 以下程序的功能为求任意3个整数的绝对值的和,试阅读程序画出该程序的流程图。 #include int abs_sum(int m,int n); //函数声明 main() { int x,y,z,sum; printf(\ scanf(\ printf(\ scanf(\ printf(\ scanf(\ sum=abs_sum(abs_sum(x,y),z); //函数调用 printf(\} int abs_sum (int m,int n) //函数定义 { if(m<0) m=-m; if(n<0) n=-n; return m+n; } 40. 给定任意一行英文文本,统计文本中的单词个数,单词间以空格分隔。 #include int word(char s[]) //定义统计字符串单词个数的函数 { int num=0,flag=0,i; for(i=0;s[i]!='\\0';i++)//循环结束条件 { if(s[i]==' ') flag=0; else if(flag==0) {flag=1; num++;} } return(num); } void main() { int num; char s[81]; printf(\请输入要统计单词个数的字符串:\\n\ gets(s); num=word(s); printf(\字符串中包含的单词个数为:%d\\n\} 41. 任意输入10个整数,使用选择排序法按升序对其进行排序,并输出结果。 #include * 功能:选择排序法 * 输入:数组名称、数组中元素个数 */ select_sort(int *x, int n) { int i, j, min, t; for (i=0; i } } void main() { int i,a[10]; printf(\ for(i=0;i<10;i++) //数组初始化 scanf(\ select_sort(a,10); //选择排序 printf(\ for(i=0;i<10;i++) //输出排序结果 printf(\printf(\ } 42. 任意输入10个整数,使用冒泡排序法按升序对其进行排序,并输出结果。 #include * 功能:冒泡排序法 * 输入:数组名称、数组中元素个数 */ void bubble_sort(int *x, int n) { int i, j, t; for(i=n-1; i>0; i--) //控制冒泡次数 { for(j=0; j *(x+j+1)) { t = *(x+j); *(x+j) = *(x+j+1); *(x+j+1) = t; } } } min=i; for(j=i+1; j if (min!= i) //将查到的最小值元素与第i个元素交换位置 { t = *(x+i); *(x+i) = *(x+min); *(x+min) = t; } } void main() { int i,a[10]; printf(\ for(i=0;i<10;i++) //数组初始化 scanf(\ bubble_sort(a,10); //冒泡排序 printf(\ for(i=0;i<10;i++) //输出排序结果 printf(\printf(\ } 43. 从键盘任意输入10个不同的整数存放在数组a中,查找关键字x是否在数组a中。 #include 44. 按升序从键盘输入10个整数存入数组a中,查找关键字key是否在数组a中。 #include } while(bot
正在阅读:
c题库11-18
空压机学习02-17
07-14历年大学英语六级真题及答案(完整版)(免费下载) - 图文05-10
常用电子元器件电子教案02-01
上大研自然辨证法讨论题参考最新刘老师11-24
村集体经济组织会计核算的基本方法05-06
DHCP服务器的配置01-28
朋友请微笑吧作文500字07-16
九年级英语unit单元检测陈少盈05-01
地理七年级上册第四章第一节内容点析06-27
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 题库