C语言练习题库40题版答案
更新时间:2023-10-28 01:22:01 阅读量: 综合文库 文档下载
- c语言简答题题库推荐度:
- 相关推荐
好好学习
1.将所有的水仙花数保存到维数组a中。 (所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:153=1*1*1+5*5*5+3*3*3)
#include
int s[100]={0}; int i;
int k=0;//表示水仙花数的个数。 int a,b,c;
for(i=100;i<1000;i++) {
a=i;
b=(i0)/10; c=i/100;
if(i==a*a*a+b*b*b+c*c*c) {
s[k]=i;
printf(\ k++;
} } }
2. 按下面的公式求sum的值。
sum = 1 - 2 + 3 - 4 + 5 - 6 + …… + 99 – 100
#include
int i; int k=1; int sum=0;
for(i=1;i<=100;i++) {
sum=sum+k*i; k=-1*k; }
printf(\ }
3.编写代码,实现冒泡排序,并要求:
(1)在有序的数组中,接着插入一个元素,新数组仍然有序 (2)在数组中删除一个元素,新数组仍然有序 (3)对该数组进行逆序存放
#include
void sort(int a[],int m);
int a[100]={1,22,55,8,9,29,3,5,244,24}; int i; int x;
sort(a,10);
for(i=0;i<10;i++) {
printf(\ }
/*插入一个数后,仍然按序输出*/ printf(\
printf(\请输入要插入的数字:\ scanf(\ insert(x,a,11); for(i=0;i<11;i++) {
printf(\ }
/*逆序输出序输出*/ printf(\ for(i=10;i>=0;i--) {
printf(\
好好学习
} { int i,j,t; for(i=0;i
4. 编写程序实现以下功能,能够将下面所示的6*6的二维矩阵读入并存储到二维数组中,并求其对角线之和,以及最大数,并输出最大数所在的行列下标。 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11
#include
int i,j;
int a[6][6]={{35, 1, 6, 26, 19, 24}, { 3 , 32 , 7 ,21, 23 , 25} , { 31 , 9 , 2 , 22 , 27 , 20} , { 8 , 28 , 33 ,17 , 10 , 15 } , { 30 , 5 , 34 , 12 , 14 , 16} , { 4 , 36 , 29, 13 , 18 , 11} }; int max=a[0][0]; int col,row; int sum=0;
for(i=0;i<6;i++)
for(j=0;j<6;j++) {
if(i==j||i+j==5)sum=sum+a[i][j];
好好学习
}
printf(\
for(i=0;i<6;i++)
for(j=0;j<6;j++) {
if(a[i][j]>=max) {
max=a[i][j]; col=j; row=i; } }
printf(\}
5. 对任意输入的5个字符数组进行排序 比如:输入
abc def fdc ccc efg 得到
abc ccc def efg fdc
6. 求2个数组的交集 输入
{5,6,7,9,10} {2,3,4,5,6} 得到 {5,6}
#include
int a[5]={5,6,7,9,10}; int b[5]={2,3,4,5,6}; int i,j;
for(i=0;i<5;i++) {
for(j=0;j<5;j++) {
if(a[i]==b[j]) printf(\
}
好好学习
} }
7. 求[m,n]之间既不能被7整除也不能被5整除的整数之和,m和n的值由键盘输入。
例如,如果m和n的值分别为10和20,则计算结果为:106。
#include
int m,n; int i,sum=0;
printf(\请输入m和n:\ scanf(\ for(i=m;i<=n;i++) {
if(i%7!=0 && i%5!=0) sum=sum+i; }
printf(\}
8. 求字符串的长度并输出。
例如,当字符串1为\ 则应输出:Result is: 19
#include
char str[100]=\ int i=0; //str的下标 gets(str);
while(str[i]!='\\0') {
i++;
str[i]=str[i]+1; }
printf(\字符串长度为:%d\ }
9. 将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数)。 例如,当字符串为\ 输出:\
好好学习
#include
char str[100]=\ int i=0;
printf(\请输入要转换的字符串:\ gets(str);
while(str[i]!='\\0') {
if(str[i]>='A' && str[i]<='Z') str[i]=str[i]+32; i++; }
printf(\}
10. 给学生评定成绩,若学生成绩在60-69则输出“及格”,70-89分为“良好”;90-100分为“”优秀,60分一下为“不及格”,分别用if-else语句和switch语句编程实现。
#include
int score;
printf(\请输入分数:\ scanf(\ if(score<60)
printf(\不及格\\n\ else if(score<70)
printf(\及格\\n\ else if(score<90)
printf(\良好\\n\ else
printf(\优秀\\n\}
#include
int score; int class;
printf(\请输入分数:\ scanf(\ class=score/10; switch(class) {
case 9:
printf(\优秀\\n\ break; case 8:
case 7:
printf(\良好\\n\ break; case 6:
printf(\及格\\n\ break; default:
printf(\不及格\\n\ break; } }
11:若有3个字符串s1.,s2,s3,其中,s1=“abcdef”,s2=“123456”,
好好学习
要求用字符数组实现将s1的内容复制到s3中,并将s2的内容添加在s3后面的功能,最后输出字符串s3
#include
} int i=0;//表示s1下标
s3[i]='\\0'; int j=0;//表示s2下标
while(s1[i]!=0) printf(\ { s3[i]=s1[i]; } i++;
12:编写一个通用函数swap(),在main函数中调用可以实现2个数的交换。
#include
void swap(int *p1,int*p2); int a,b;
scanf(\ printf(\ swap(&a,&b);
printf(\ }
void swap(int *p1,int*p2) {
int temp; temp=*p1; *p1=*p2; *p2=temp; }
13.设计程序输出如下的杨辉三角形(正三角形),共6行:
好好学习
#include
int a[7][15]={0}; int i,j; a[0][7]=1;
for(i=1;i<7;i++) {
for(j=1;j<14;j++) {
a[i][j]=a[i-1][j-1]+a[i-1][j+1]; } }
for(i=0;i<7;i++) {
for(j=0;j<15;j++) {
if(a[i][j]!=0)
printf(\ else
printf(\ \ }
printf(\ } }
14.设计程序求10000以上的最小素数。
#include
int i=10000; while(1) {
i++;
if(sushu(i)) break; }
printf(\}
int sushu(int x) {
int i;
for(i=2;i<=x-1;i++) if(x%i==0) break; if(i==x)
return 1; else
return 0; }
15. 输出九九乘法表。
#include
int i,j;
for(i=1;i<=9;i++)
好好学习
{
for(j=1;j<=9;j++) {
if(i>=j) printf(\ }
printf(\ } }
16. 输入一个不超过五位的正整数, 输出其逆数。例如输入12345,输出应为54321。 #include
int main() {
int x;
scanf(\ while(x!=0) {
printf(\ x=x/10; } }
17.结合书上打印菱形的思想,打印出以下图形: a bcd efghi gklmnop qrstu vwx y
好好学习
#include
int main() {
int i,j,k; int m=97;
for(i=1; i<=4; i++) {
for(j=4-i; j>0; j--) {
printf(\ }
for(k=1; k<=2*(i-1)+1; k++) {
printf(\ m++; }
printf(\
}
for(i=1; i<=4-1; i++) {
for(j=1; j<=i; j++) {
printf(\ }
for(k=2*(4-i-1)+1; k>0; k--) {
printf(\ m++; }
printf(\
} }
18. 试用C语言求解“百钱百鸡”问题。百钱买百鸡, 鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?
#include
int x,y,z; int pos=0;
for(x=1; x<=34; x++) {
for(y=1; y<=50; y++) {
for(z=1; z<=300; z++) {
if(3*x+2*y+z/3==100 && z%3==0) {
pos=1; break; } }
if(pos==1) break; }
if(pos==1) break; }
好好学习
printf(\?ì=%d?|??=%d?|3?=%d\}
19. 斐氏数列是公元13世纪数学家 斐波拉契发明的。即:1,2,3,5,8,13,21,34,55,89,??,输出其前15项。
#include
int x,y,z; int pos=0;
for(x=1; x<=34; x++) {
for(y=1; y<=50; y++) {
for(z=1; z<=300; z++) {
if(3*x+2*y+z/3==100 && z%3==0) {
pos=1; break; } }
if(pos==1) break; }
if(pos==1) break; }
printf(\?ì=%d?|??=%d?|3?=%d\}
20. 编写一个函数deletechar(),使字符串中尾部的*号不得多于 n 个;若 多于 n 个,则删除多余的*号;若少于或等于 n 个,则什 么也不做,字符串中间和前面的*号不删除。例如,字符串 的内容为:****A*BC*DEF*G*******,若 n 的值为 4, 删 除 后 , 字 符 串 中 的 内 容 应 当 是 : ****A*BC*DEF*G****;若 n 的值为 7,则字符串中的内 容仍为****A*BC*DEF*G*******。n 的值在主函数中输 入。
好好学习
#include
void deletechar(char str[],int n); int n;
char s[1000];
printf(\请输入一个带*的字符串:\ scanf(\
printf(\请输入后面保留*的数量:\ scanf(\ deletechar(s,n); printf(\ }
void deletechar(char str[],int n) {
int i=0;
int k=0;//表示*的数量 int pos=0; //最后是否有* while(str[i]!='\\0')
{
if(str[i]=='*') {
pos=1; k++; } else {
pos=0; k=0; } i++; }
while(pos!=0 && k>=n) {
str[i]='\\0'; k--; i--; } }
21. 找出形参字符串中出现的频率最高的字母(不区分大小写) ,并统计其出现的次数。例如,形参 s 所指的字符串为:abcAbsmaxless,程序执行后的输出结 果为: letter ‘a‘:3times letter ‘s‘: 3times。
#include
char str[100]; int s[26]= {0}; int i=0;
scanf(\ while(str[i]!='\\0') {
if(str[i]>='A' && str[i]<='Z') s[str[i]-65]++;
else if(str[i]>='a' && str[i]<='z') s[str[i]-97]++; i++; }
好好学习
for(i=0;i<26;i++) {
if(s[i]>0) printf(\中字母%c的出现的频次是%d\\n\ } }
22. 设计函数change(),将形参 a 所指数组中的前半部分元素中的值和后半部 分元素中的值互换。形参 n 中存放数组中数据的个数,若 n 为奇数,则中间的元素不动。若 a 所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、 8、9、5、1、2、3、4。
#include
void change(int x[],int m);
int a[10]= {1,2,3,4,5,6,7,8,9,10}; int b[9]= {1,2,3,4,5,6,7,8,9}; int i;
change(a,10); for(i=0; i<10; i++)
printf(\ printf(\
change(b,9); for(i=0; i<9; i++)
printf(\ printf(\}
void change(int x[],int m) {
int i,temp; if(m%2==0)
{
for(i=0; i temp=x[i]; x[i]=x[m/2+i]; x[m/2+i]=temp; } } else { for(i=0; i temp=x[i]; x[i]=x[m/2+i+1]; x[m/2+i+1]=temp; } } } 23.编写一个函数dtob(),在main函数中读入一个10进制数,dtob(),能够将该10进制数转换成一个二进制字符串,并返回给调用函数。 好好学习 #include void dtop(int x,char s[]); char s[100]; int i=0; int x; printf(\请输入十进制数:\ scanf(\ dtop(x,s); for(i=strlen(s)-1; i>=0; i--) { printf(\ } } void dtop(int x,char s[]) { int i=0; char m=0; while(x/2!=0) { if(x%2==0) m='0'; else m='1'; s[i]=m; x=x/2; i++; } s[i]='1'; s[++i]='\\0'; } 24. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下: #include int hour; float price; printf(\请输入本月上网的小时数\\n\ scanf(\ if(hour<=10) price=30; else if(hour<50) price=hour*3; else price=hour*2.5; printf(\本月上网的费用%f\ } 好好学习 要求当输入每月上网小时数,显示该月总的上网费用 25. 编写一个求直角三角形的面积的函数。在main 函数中从键盘输入直角三角形的两个直角边,然后调用该函数求该直角三角形的面积(精确到小数点后2位)。 #include float area(float x,float y); float a,b; float s; printf(\请输入直角三角形的2条边的长度\\n\ scanf(\ s=area(a,b); printf(\三角形的面积是%.2f\} float area(float x,float y) { return 0.5*x*y; } 26. 写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即该四位数 各位数字的四次方和恰好等于该数本身,如:1634=14+64+34+44)。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否为玫瑰花数,若是则输出“yes”,否则输出“no”. #include { int x; 好好学习 printf(\请输入一个正四位整数\\n\ scanf(\ if(rose(x)==1) printf(\ else printf(\ } int rose(int x) { int a,b,c,d; a=x/1000; b=(x00)/100; c=((x00)0)/10; d=x; if(x==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d) return 1; else return 0; } 27. 将1--1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到屏幕上。 #include int i; int k=0; int s[100]; for(i=21;i<=1000;i=i+21) { s[k]=i; k++; printf(\ if(k%5==0) printf(\ } } 28. 写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。 #include int gcd(int m,int n); int x,y; printf(\请输入2个数\\n\ scanf(\ 好好学习 FILE* writer = fopen(\ avC += s.c; \ float avEnglish, avMath, avC; avEnglish = avMath = avC = 0; fprintf(writer, \姓名,学号,英语,数学,C语言,总分\\n\ while(1) { printf(\请输入学生的姓名:\ scanf(\ if (!strcmp(\s.name)) break; printf(\请输入学生的学号:\ scanf(\ printf(\英语成绩:\ scanf(\ avEnglish += s.english; printf(\数学成绩:\ scanf(\ avMath += s.math; printf(\语言成绩:\ scanf(\ sum = s.c+s.math+s.english; if (sum > max) max = sum, t = s; fprintf(writer, \s.english, s.math,s,.c,sum); i++; } avEnglish /= i; avMath /= i; avC /= i; fprintf(writer, \avEnglish, avMath, avC); fclose(writer); printf(\共录入%d名同学成绩,最高分为%d分,该同学是:%s\\n\ printf(\他的英语成绩为:%d,数学成绩为:%d,C语言成绩为:%d\\n\t.math, t.c); return 0; }
正在阅读:
C语言练习题库40题版答案10-28
天达利八球台球规则05-17
爱国作文400字(优秀4篇)03-25
浅谈高中生物课堂教学的有效性04-20
幼儿园妇女节观察记录《让孩子们学会付出,学会感恩》(五篇材料)08-22
黔西新仁赵氏家谱赵品章后裔赵根声支远字派(2015-8-15 9-32-4)_605-03
5年级上数学基训错题06-18
LTE多天线技术05-20
重力势能 探究弹性势能的表达式12-23
中国共产党党章(最新版)05-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 题库
- 练习
- 答案
- 语言
- 产业调整指导目录 - 图文
- 用解析法和波函数求解克龙尼克-潘尼(Kronig-Penney)模型下的能带结构
- C语言宏定义技巧
- 2012注安真题及答案 - -法律法规(已打印)
- 14-15郑州市一般课题立项:小学语文教学中情感朗读指导的策略研究(苟堂镇劝门小学朱巧枝) - 图文
- 非居民税收管理培训内容
- 合同法案例
- 浅谈如何优化高中物理习题教学的策略
- 两个表格教你看懂高中物理功能关系!
- 高中思想政治必修4第十二课第三框《价值的创造与实现》教学设计
- 物理化学简明教程复习思考题
- 统计学试题(2011-2012-1.A)
- winforms(有答案)
- 英语二阶段测验5
- 2017年高考理综试卷非选择题评分标准
- 好听英文歌歌词
- 简论高校党建与校园文化建设创新- 副本
- 行政事业单位固定资产折旧年限
- 一个乡村老师到厅级干部的升迁九思
- 福建省永安市第一中学2018-2019学年高二上学期期中考试 英语 Word版含答案