1.通过键盘输入两个整数,对他们实施加减乘除运算,然后按照下面格式显示输出
#include
int main()
{
int a,b;
printf("输入两个整数a,b:");
scanf("%d%d",&a,&b);
printf("a+b=%d\n",a+b);
printf("a-b=%d\n",a-b);
printf("a*b=%d\n",a*b);
printf("a/b=%d\n",a/b);
return 0;
}
2. 用switch语句和if语句两种方法编写程序,完成下面公式的计算,输出计算结果。 t2 0<=t<1
y= t2 -1 1<=t<2
t2 -2t+1 2<=t<3
(1)if语句:
#include
int main()
{
float t,y;
printf("请输入t的值:");
scanf("%f",&t);
if(t>=0&&t<1)
{
y=t*t;
}
if(t>=1&&t<2)
{
y=t*t-1;
}
if(t>=2&&t<3)
{
y=t*t-2*t+1;
}
printf("y=%f\n",y);
return 0;
}
(2)switch语句
#include
int main()
{
float t,y;
int a;
printf("请输入t的值:");
scanf("%f",&t);
a=(int)t;
switch(a)
{
case 0:
y=t*t;
break;
case 1:
y=t*t-1;
break;
case 2:
y=t*t-2*t+1;
break;
default:
printf("输入不正确");
return 0;
}
printf("y=%f\n",y);
}
3.假设教务分析百分制学生成绩时认为90分以上为优,80~89分为良,70~79分为中,60~69分为及格,60分以下为不及格。输入某学生百分制成绩,将其转换为上述等级评分。要求用if语句和switch语句两种方法编程。
(1)if语句
#include
int main()
{
int x;
printf("输入学生成绩");
scanf("%d",&x);
if(x>90)
printf("优\n");
else if(x>80)
printf("良\n");
else if(x>70)
printf("中\n");
else if(x>60)
printf("及格\n");
else
printf("不及格\n");
return 0;
}
(2)switch语句
#include
int main()
{
int x,a;
printf("输入学生成绩");
scanf("%d",&x);
a=x/10;
switch(a)
{
case 10:
case 9:
printf("优\n");
break;
case 8:
printf("良\n");
break;
case 7:
printf("中\n");
break;
case 6:
printf("及格\n");
break;
default:
printf("不及格\n");
return 0;
}
}
4. 输入一个000~888之间的正整数,首先提取三位数字,再每位数字加1,合成一个新的三位数字,再强制类型转换为浮点数后输出。
#include
int main()
{
int a,b,c,x,y;
float z;
printf("输入一个正整数(0~888):");
scanf("%d",&x);
a=x/100+1;
printf("a=%d\n",a);
b=(x/10)%10+1;
printf("b=%d\n",b);
c=x%10+1;
printf("c=%d\n",c);
y=a*100+b*10+c;
z=float(y);
printf("z=%f\n",z);
}
5. 输入一个整数,求其立方的绝对值的平方根。输出之。
#include
#include
int main()
{
int x;
float y;
printf("输入一个数:");
scanf("%d",&x);
y=sqrt(abs(x*x*x));
printf("y=%f",y);
}
/*int 型
int abs(int x);
long 型
long labs(int x);
浮点数 float double
double fabs(double x)*/
6. 菜单放在屏幕中央位置。
必须先运行1输入数据,才能运行2四则运算。
要求依据用户输入的‘+’、‘-’、‘*’、‘、’四个运算符进行相应运算。
#include
void caidan()
{
printf(" 迷你计算器\n");
printf(" 1.数据输入\n");
printf(" 2.四则运算\n");
printf(" 0.退出\n");
}
int main()
{
int a,b,c,d;
do
{
caidan();
scanf("%d",&c);
if(c==2)
{
printf("请输入要进行的运算(1+,2-,3*,4/):\n");
scanf("%d",&d);
switch(d)
{
case 1:
printf("a+b=%d",a+b);
break;
case 2:
printf("a-b=%d",a-b);
break;
case 3:
printf("a*b=%d",a*b);
break;
case 4:
printf("a/b=%d",a/b);
break;
default:
printf("输入错误\n");
}
}
if (c==1)
{
printf("请输入两个数字a,b\n");
scanf("%d%d",&a,&b);
}
}
while (c!=0);
return 0;
}
7.针对题目3,要求针对30人的某班转换所有同学的成绩。键盘输入每个同学的成绩,逐个转换,并输出
#include
int main()
{
int i=0;
{
int x,a;
printf("输入学生成绩");
scanf("%d",&x);
a=x/10;
switch(a)
{
case 10:
case 9:
printf("优\n");
break;
case 8:
printf("良\n");
break;
case 7:
printf("中\n");
break;
case 6:
printf("及格\n");
break;
default:
printf("不及格\n");
}
i++;
}
while (i<=30);
}
8.如果全校有50个班,每个班级的人数有多有少,各班级人数可从键盘上输入。修改上面的程序,针对全校所有的班完成同样的任务。
#include
int main()
{
int i=0,d,no,n;
for(d=0;d<=50;d++)
{printf("输入班级编号\n");
scanf("%d",&no);
printf("第%d班的学生成绩:\n",no);
printf("输入学生人数:\n");
scanf("%d",&n);
do
{
int x,a;
printf("输入学生成绩");
scanf("%d",&x);
a=x/10;
switch(a)
{
case 10:
case 9:
printf("优\n");
break;
case 8:
printf("良\n");
break;
case 7:
printf("中\n");
break;
case 6:
printf("及格\n");
break;
default:
printf("不及格\n");
}
i++;
}
while (i } } 9.请编写程序输出100到999之内的偶数,每行打印10个数。#include int main() { int i; int n=0; for(i=100;i<=999;i++){ if(i%2==0){ printf("%d ",i); n++;} if(n==10){n=0;printf("\n");}} return 0; } 10.从键盘输入一个年份,判断该年是否为闰年,并输出 #include int main() { int x; printf("输入一个年份"); scanf("%d",&x); if(x%4==0&&x%100!=0)||(x%400==0)) printf("该年为闰年"); else printf("%d年不是闰年!\n",x); } 11.从键盘输入一个年份和月份,输出这个月份的天数 #include int main() { int x,y; printf("输入一个年份\n"); scanf("%d",&x); printf("输入月份\n"); scanf("%d",&y); if(y==1||y==3||y==5||y==7||y==8||y==10||y==12) printf("31天"); if(y==4||y==6||y==9||y==11) printf("30天"); if(y==2) if(x%4==0) printf("29天"); else printf("28天"); return 0; } 12.从键盘输出一行英文句子,输出到屏幕上并且将每个单词的首字母改写成大写字母#include #include int main() #define TURE 1 #define FALSE 0 { char c; bool flag = TURE; printf("输入一行语句:"); while(c!='\n') { scanf("%c",&c); if(c==' ') { flag= TURE; printf(" "); continue; } if(flag) { flag = FALSE; if(c>='a'&&c<='z') { c=c-32; } } printf("%c",c); } getch(); return 0; } 13.输入一行英文,求出倒数第二个单词的字符个数 #include int main() { char a[100]; int i,j=1,q,c=0; printf("请输入英文句子:\n"); gets(a); for(i=0;i<100;i++) { if(a[i]==' ') j++; if(a[i]=='\0') break; } for(q=1,i=0;i<100;i++) { if(a[i]!=' ') c++; else { if(q==j-1) break; q++; c=0; } } printf("倒数第二个单词的字母个数为:%d\n",c); return 0; } 14.输出下面数列的前20项 0,1,1,2,3,5,8,13,21,34……… #include int main() { int a=0,b=1,c,d; for(int i=1;i<=10;i++) { c=a+b; d=b+c; printf("%d %d ",a,b); a=c; b=d; } } 15.输出100以内所有素数,要求每行仅输出5个素数#include int main( ) { int i, t; for(i=0;i<=100;i++) { for (t = 2; t if ( i%t == 0 ) break; if ( t == i ) printf( "%d ", i ); } return 0; } 16.从键盘输入一个正整数,输出这个整数的所有因子#include int main() { int a,i; printf("输入一个正整数"); scanf("%d",&a); for(i=1;i<=a;i++) if(a%i==0) printf("%d ",i); return 0; } 17.用穷举法打印所有水仙花数,水仙花数是一个3位整数,其各位数字的立方和等于该数字 #include int main() { int a,b,c,i; for(i=100;i<=999;i++) { a=i/100; b=(i/10)%10; c=i%10; if(i==a*a*a+b*b*b+c*c*c) printf("%d ",i); } } 18.从键盘读入两个数a和n,计算并输出a+aa+aaa+aaaa+……+aaa…a(n个a)的值 #include void main() { int a,n,i,t; long sum=0; printf("please input a and n:\n"); scanf("%d%d",&a,&n); t=a; for(i=0;i { sum=sum+t; a=a*10; t=t+a; } printf("%d",sum); } 19.利用穷举法求解100的所有质因子 20.递推法计算下列公式 要求精确到。 21.利用random()产生100个随机数,然后将所有的奇数改成相应的复数,所有的偶数保持不变,最后输出改变后的100个整数值。 #include #include #include int main() { int a; for(int i=1;i<=100;i++) { a=rand()%101; if(a%2==1) { a=-a; } printf("%d ",a); } return 0; } 22.利用random()产生100个随机数,然后通过键盘输入一个整数key,查找在100个随机数中是否存在等于key的值,如果存在,输出他们的位置。 #include #include int main() { int a,key; printf("输入key的值:\n"); scanf("%d",&key); for(int i=1;i<100;i++) { a=rand()%101; printf("%d ",a); } printf("\n"); if(a==key) { printf("编号是%d ",i); } return 0; } 23.输入一个文本行,其中包含多个单词,计算其中最长的单词长度 #include int main() { int max=0,a; char str[100]; printf("输入文本\n"); for(int i=0;i<=100;i++) { scanf("%c",&str[i]); if(str[i]==' ') { a=i; i=0; if(a>max) { max=a; } } if(str[i]=='\n') break; } printf("最大单词长度为%d",max); } 24.判断通过键盘输入的字符串是否表示一个合法标识符。标识符的命名规则是:第一个字符必须是字母或者下划线,后面可以跟随字母,数字或下划线。 25.利用二维数组创建如图4-22的方阵,并显示输出 3 2 1 2 3 0 0 3 2 1 2 3 0 0 3 2 1 2 int main() { int i,j; int v[6][6]={{1,2,3},{2,1,2,3},{3,2,1,2,3},{0,3,2,1,2,3},{0,0,3,2,1,2},{0,0,0,3,2,1 }}; for(i=0;i<6;i++) { for(j=0;j<6;j++) printf(" %d",v[i][j]); putchar('\n'); } } 26.假设某个班级共有35名学生,期末进行了4门课程的考试,编写一个程序完成下列任务:(1)输入4门课程的考试成绩; (2)计算每位学生的平均成绩 (3)按照平均成绩的高低进行排序 27. 28. 29.通过键盘键入一个整型数列,然后计算它们的平均值,并在数列中查找是否存在与平均值相等的数值,最后根据查找结果输出相应信息。 #include #define NUM 10 main() { int v[NUM]; int i,sum,ave; for(i=0;i scanf("%d",&v[i]); sum=v[0]; for(i=0;i sum=sum+v[i]; ave=sum/NUM; for(i=0;i if(v[i]=ave) break; if(i printf("Exist a element equal to average.\n"); else printf("No exist any element equal to average.\n"); } 30.这个程序的功能是:将以字符串形式给出的时间分解成数值型表示的小时,分钟,秒并显示输出。 #include int main() { char time[]="10:50:27"; int h,m,s; h=(time[0]-'0')*10+time[1]-'0'; m=(time[3]-'0')*10+time[4]-'0'; s=(time[6]-'0')*10+time[7]-'0'; printf("The time is:%d hours,%d minutes,%d seconds\n",h,m,s); } 31.输入含有n个数值的整数数列和整数m,利用选择排序的方法挑选出前m(m #include int main() { int n,m,data[100],k; int i, j, min, temp; printf("输入比较的整数个数\n"); scanf("%d",&n); printf("输入m的值:\n"); scanf("%d",&m); printf("输入%d个整数\n",n); for (i=0; i { scanf("%d", &data[i]); } for (i=0; i { min = i; for (j=i+1; j { if (data[j] min = j; } if (min!=i) { temp = data[i]; data[i] = data[min]; data[min] = temp; } } for(k=0;k { printf("%d ", data[k]); } } 32.输出1000以内的所有素数。要求: (1)设计一个函数isPrime(int x),专门用于判断给定数值是否为素数;(2)将计算出来的所有素数按照每行8个的格式输出 #include int isPrime(int x) { int k=0,n=0; for(int i=2;i<=x;i++) { if(x%i==0) { k++; } } if(k==1) { return 1; } else return 0; } int main() { int n=0; for(int y=1;y<=1000;y++) { if(isPrime(y)) { printf("%4d",y); n++; } if(n==8) { printf("\n"); n=0; } } } 33.将给定字符串中的所有大写字母改成小写字母。 #include #include int main() { char str[50]="WE ARE THE WORLD"; strlwr(str); puts(str); } P.s.大写转小写strlwr(str) 小写转大写strupr(str) 34.对于给定的整数n(n>1),返回下列公式的计算结果: 1×2+2×3+3×4+……+n×(n+1) #include int jc(int n) { int sum=0; for(int i=1;i<=n;i++) sum=sum+i*(i+1); return sum; } int main() { int n; printf("输入n的值\n"); scanf("%d",&n); printf("计算结果=%d\n",jc(n)); } 35.编写一个递归函数int reverse(int value),其功能为逆序返回给定的正整数值。例如,通过value带入正整数1349,返回9431。 #include int reverse(int value) { int t = 0; while(value > 0) { t=t*10; t=t+value % 10; value=value/10; } return t; } int main() { int value; printf("输入一个正整数"); scanf("%d",&value); printf("%d\n",reverse(value)); return 0; } 36.显示一个菜单,根据用户选择,输入数据后,执行相应的操作 #include #include void caidan() { printf("==========MENU================\n"); printf("sin..........................1\n"); printf("cos..........................2\n"); printf("pow..........................3\n"); printf("sqrt.........................4\n"); printf("exit.........................5\n"); } int main() { int c; do { caidan(); scanf("%d",&c); if(c==1) { double si; printf("输入数据\n"); scanf("%lf",&si); printf("%lf\n",sin(si)); } if(c==2) { double co; printf("输入数据\n"); scanf("%lf",&co); printf("%lf\n",cos(co)); } if(c==3) { double x,y; double po; printf("输入数据\n"); scanf("%lf%lf",&x,&y); printf("%lf\n",pow(x,y)); } if(c==4) { double sq; printf("输入数据\n"); scanf("%lf",&sq); printf("%lf\n",sqrt(sq)); } }while(c!=5); return 0; } 37.编写一个程序,完成下列操作: (1)输入一个包含n个整数的数列; (2)输出已经输入的整数数列; (3)将整数数列按照非递减的顺序重新排列;(4)计算n个整数中的最大值,并输出;(5)计算n个整数中的最小值,并输出;(6)计算n个证书中的平均值,并输出; 38.为管理通讯簿的应用程序定义数据类型,假设通讯薄有100多页,每页记录一个人的联系信息,其中包括姓名,办公室电话,住宅电话,手机和传真等信息。 #include #include #include #define n 100 typedef struct { char name[50]; char bgs[20]; char zz[20]; char sj[20]; char cz[20]; }DATA; int main() { FILE *fp; char filename[50]; int i,k; char lin[100]; DATA a; printf("输入通讯簿名字:\n"); scanf("%s",filename); for(i=1;i<=n;i++) { if((fp=fopen(filename,"a+"))==NULL) { printf("打开文件错误\n"); return 1; } printf("姓名:\n"); scanf("%s",https://www.doczj.com/doc/c918491328.html,); printf("办公室电话:\n"); scanf("%s",a.bgs); printf("住宅电话:\n"); scanf("%s",a.zz); printf("手机:\n"); scanf("%s",a.sj); printf("传真:\n"); scanf("%s",a.cz); fprintf(fp,"%d姓名%s\n办公室电话%s\n住宅电话%s\n手机%s\n传真%s\n",i,https://www.doczj.com/doc/c918491328.html,,a.bgs,a.zz,a.sj,a.cz); fclose(fp); } if((fp=fopen(filename,"r"))==NULL) { return 1; } printf("文件内容:\n"); for(k=0;!feof(fp);k++) { fgets(&lin[k],100,fp); puts(&lin[k]); } fclose(fp); }