当前位置:文档之家› C语言基本练习题

C语言基本练习题

1. 某城市出租车收费标准如下:起步里程是3公里,起步费是10元;超出起步里程后每公里1.5元。

编写程序,输入行驶里程(公里),计算并输出乘客应支付的车费(元)。

#include <stdio.h>int main(){double n;scanf("%lf",&n);if(n<=3){printf("%d\n",10);}else{printf("%.2f\n",1.0*(10+(n-3)*1.5));}return 0;}页脚内容12. 某城市月用水量收费标准如下:每月使用吨数小于等于15吨的,每吨收费2.5元;每月使用吨数超过15吨的,采用分段计费:超过部分每吨3元。

编写程序,输入使用吨数,计算并输出用户水费(元)。

#include <stdio.h>int main(){double n,x;scanf("%lf",&n);if(n<=15){x=n*2.5;}else{x=15*2.5+(n-15)*3.0;}printf("%.2f\n",x);return 0;}页脚内容23. 求解简单表达式。

输入一个形式如:"操作数运算符操作数"的四则运算表达式,输出运算结果,要求使用switch 语句(if语句)编写。

#include<stdio.h>#include<math.h>int main(){double s1,s2;char op;scanf("%lf %c %lf",&s1,&op,&s2);switch(op){case '+':printf("%.2f\n",s1+s2);break;case '-':printf("%.2f\n",s1-s2);break;case '*':printf("%.2f\n",s1*s2);break;case '/':if(fabs(s2)<pow(10,-10))printf("Wrong input!\n");else页脚内容3printf("%.2f",s1/s2);break;default:printf("Wrong input!\n");}return 0;}4. 用一张100元纸票换1元,2元和5元的纸票(至少各一张),问有哪几种换法?各几张?#include<stdio.h>int main(){int i,j,z;for(i=1;i<=93;i++){for(j=1;j<=47;j++){for(z=1;z<20;z++)页脚内容4{if(i+2*j+5*z==100)printf("%d %d %d\n",i,j,z);}}}return 0;}5. 一个球从100米高度自由落下,每次落地后反跳回原高度的一半,然后再落下再反弹。

求它在第10次落地时,共经过多少米?第10次反弹多高?#include<stdio.h>int main(void){int n;double sn=100.0,hn=sn/2;for(n=2;n<11;n++){页脚内容5sn=sn+2*hn;hn=hn/2;}printf("%.4f %.4f\n",sn,hn);return 0;}6. 程序功能:用户输入两个整数,求出这两个整数之间的偶数的和;要求使用main函数和用户自定义函数,其中,自定义函数的功能:接收main函数传递过来的参数,计算并返回给main函数。

#include<stdio.h>int s(int a,int b);int main(){int a,b;scanf("%d %d",&a,&b);printf("%d\n",s(a,b));return 0;页脚内容6}int s(int a,int b){int sum=0,i;for(i=a;i<=b;i++){if(i%2==0)sum=sum+i;}return sum;}7. 程序功能:用户输入三个整数,求出这三个整数之间最大值并输出;要求使用main函数和用户自定义函数,其中,自定义函数的功能:接收main函数传递过来的参数,计算出最大值并返回给main 函数。

#include<stdio.h>int s(int a,int b);int main(){页脚内容7int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d\n",s(s(a,b),c));return 0;}int s(int a,int b){if(a>b)return a;elsereturn b;}8. 程序功能:用户输入一个整数,求出这个整数中含有6的个数并输出,要求使用main函数和用户自定义函数,其中,自定义函数的功能:接收main函数传递过来的参数,统计出结果并返回给main 函数。

#include<stdio.h>int search_six(int num,int c);页脚内容8int main(){int n,count = 0;int c = 0;scanf("%d",&n);c = search_six(n,count);printf("%d\n",c);return 0;}int search_six(int num,int c){int i,temp;for (i = 0;;i ++){temp= num%10;num=num/10;if (temp == 6)页脚内容9c ++;if (num == 0)break;}return c;}9. 程序功能:用户输入长和宽两个数,求出长方形的面积,要求使用main函数和用户自定义函数,其中,用户自定义函数接受main函数传递过来的两个参数,求面积并返回之。

#include <stdio.h>double s(double a,double b);int main(){double a,b;scanf("%lf %lf",&a,&b);printf("%.2f\n",s(a,b));return 0;}页脚内容10double s(double a,double b){double s;s=a*b;return s;}10. 程序功能:用户输入一个字符串,求出该字符串的长度。

(不能使用系统定义的函数strlen)#include <stdio.h>int main(){int i=0;char ch;while(ch=getchar(),ch!='\n'){i++;}printf("%d\n",i);页脚内容11return 0;}11. 程序功能:用户输入一个字符串,求出该字符串中“X”字符的个数。

#include <stdio.h>int main(){int i=0;char ch;while(ch=getchar(),ch!='\n'){if(ch=='X')i++;}printf("%d\n",i);return 0;}页脚内容1212. 程序功能:用户输入一个字符串,将该串中大写字母变为小写字母,小写字母不变,并输出结果。

#include <stdio.h>int main(){char ch;while(ch=getchar(),ch!='\n'){if(ch>='A'&&ch<='Z'){ch=ch+32;printf("%c",ch);}elseprintf("%c",ch);}printf("\n");页脚内容13return 0;}13. 在数组中查找指定元素。

请编写函数search(int b[],int n,int x),其功能是在一个大小为n的数组a中查找x,如果找到则返回所在数组的下标,否则返回-1。

主函数根据返回值,分别输出位置信息或输出“找不到”。

#include<stdio.h>int search(int list[],int n,int x);int main(){int list[100],i,x,n;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d ",&list[i]);}scanf("%d",&x);i=search(list,n,x);if(i>=0)页脚内容14printf("%d\n",i);elseprintf("Not found\n");return 0;}int search(int list[],int n,int x){int i;for(i=0;i<10;i++){if(list[i]==x)return i;}return -1;}14. 在主函数中输入一个字符,再输入一个以回车结束的字符串(少于80个字符),调用函数search()查找该字符在字符串中所对应的最大下标(下标从0开始);若没找到则输出“Not Found!”。

函数原型:int search(char * s,char x)。

页脚内容15#include<stdio.h>#include <string.h>int search(char *s,char x);int main(){char s[100];char m;int n;gets(s);scanf("%c",&m);n=search(s,m);if(n>=0)printf("%d\n",n);elseprintf("Not Found!\n");return 0;}页脚内容16int search(char *s,char x){int i;for(i=strlen(s)-1;;i--){if(s[i]==x)return i;}return -1;}15. 定义包含学号(int)、姓名(name[10])、成绩(float)的学生结构类型(struct StudType),学生基本信息可通过结构数组初始化的方法输入。

相关主题