1、用户输入字符c的值,按下表对应关系输出a的值。
输入的c值 | 输出的a值 |
---|---|
$ | 8.26 |
7 | 13.48 |
% | 1.10 |
# | 0.075 |
其他字符 | 0 |
/*switch-case写法*/ #include <stdio.h> int main(int argc, char *argv[]) { char c; float a; scanf("%c",&c); switch(c){ case '$':a=8.26;break; case '&':a=13.48;break; case '%':a=1.10;break; case '#':a=0.075;break; default:a=0;break; } printf("a=%f\n",a); return 0; } /*if-else写法*/ #include <stdio.h> int main(int argc, char *argv[]) { char c; float a; scanf("%c",&c); if(c=='$') a=8.26; else if(c=='&') a=13.48; else if(c=='%') a=1.10; else if(c=='#') a=0.075; else a=0; printf("a=%f\n",a); return 0; }
2、输出100-1000之间能同时被7和9整除的数,1行输出5个数。
#include <stdio.h> int main(int argc, char *argv[]) { int i,num=0; for(i=100;i<=1000;i++){ if(i%7==0&i%9==0){ printf("%d ",i); num++; if(num%5==0) printf("\n"); } } return 0; }
3、根据下表的对应关系,使用if语句或switch语句完成显示汇率程序设计。
输入字符 | 输出数据 |
---|---|
u | 826.72 |
e | 1182.30 |
j | 15.13 |
h | 109.65 |
其他字符 | 0 |
/*if-else写法*/ #include <stdio.h> int main(int argc, char const *argv[]) { char c;float d; scanf("%c",&c); if (c=='u') { a = 826.72; }else if (c=='e') { a = 1182.30; }else if (c=='j') { a = 15.13; }else if (c=='h') { a = 109.65; }else a = 0; printf("a=%f\n",a); return 0; } /*switch-case写法*/ #include <stdio.h> int main(int argc, char const *argv[]) { char c;float d; scanf("%c",&c); switch(c){ case 'u': a=826.72;break; case 'e': a=1182.30;break; case 'j': a=15.13;break; case 'h': a=109.65;break; default:a=0;break; } printf("a=%f\n",a); return 0; }
4、利用循环语句计算下列公式的值,并输出sum的值。
sum=11+13+15+……+197+199
#include <stdio.h> int main(int argc, char const *argv[]){ int i,sum=0; for (int i = 11; i <=199; i+=2){ sum+=i; } printf("sum=%d\n", sum); return 0; }
5、请编写函数fun,其功能是:计算并输出下列多项式的值:
S = 1 + 1/1! + 1/2! + 1/3! +1/4! + …… + 1/n!
#include <stdio.h> double fun(float x){ if (x==1) return 1; else return x*fun(x-1); } int main(int argc, char const *argv[]){ float S=1.0; int i,num; scanf("%d",&num); for (int i = 1; i <= num; i++){ S+=1/fun(i); } printf("S=%d\n", S); return 0; }
6、程序设计:输出100以内所有素数。
#include <stdio.h> int main(){ int i,n; for(i=2;i<=100;i++){ //1肯定不是素数,所以从2开始遍历 for(n=2; n<i;n++) //判断是否为素数(除了1和本身,不能被其他的数整除),从2到i if (i%n==0) //如果2到i中有任意的一个数可以整除,则退出 break; if(n>=i) printf("%d is prime number\n", i); } return 0; }
7、程序设计:用户输入整数x,y值,按以下公式计算z值并输出。
z=3x²-y² x>0且y>0 4x³+y³ x<0且y<0 0 x,y不满足以上两个条件时
#include <stdio.h> int main(){ int x,y,z=0; scanf("%d%d",&x,&y); if(x>0&&y>0) z=3*x*x-y*y; else if(x<0&&y<0) z=4*x*x*x+y*y*y; else z=0; printf("z=%d",z); return 0; }
8、程序设计:输入一个年份year,判断是否为闰年。
#include <stdio.h> int main( ) { int year; scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) printf("%d is RunNian",year); else printf("%d is not RunNian",year); return 0; }
9、根据下表的对应关系,使用if语句或switch语句完成等级评定程序设计。
输入数据 | 输出等级 |
---|---|
300 | A |
200-299 | B |
100-199 | C |
0-99 | D |
/*if-else写法*/ #include <stdio.h> int main(){ int num; char Grade; scanf("%d",&num); if(num==300) Grade = 'A'; else if(num>=200&&num<=299) Grade = 'B'; else if(num>=100&&num<=199) Grade = 'C'; else if(num>=0&&num<=99) Grade = 'D'; else printf("输入的数据不合法!"); if(Grade=='A'||Grade=='B'||Grade=='C'||Grade=='D') printf("Grade=%c\n",Grade); else printf("\n"); return 0; } /*switch写法*/ #include <stdio.h> int main(){ int num; char Grade; scanf("%d",&num); switch(num/100){ case 3:Grade='A';break; case 2:Grade='B';break; case 1:Grade='C';break; case 0:Grade='D';break; default: printf("输入的数据不合法!"); } if(Grade=='A'||Grade=='B'||Grade=='C'||Grade=='D') printf("Grade=%c\n",Grade); else printf("\n"); return 0; }
10、利用循环语句计算下列公式的值,并输出sum的值。
\[sum=1- \frac 23+\frac 45-\frac 67+……-{94\over 95}+{96\over 97}-{98\over 99}+{100\over 101} \]#include <stdio.h> int main(){ float sum=1.0,symbol=1.0; int i; for(i=0;i<=50;i++){ sum+=symbol*(2*i)/(2*i+1); symbol=-symbol; } printf("%f",sum); return 0; }
11、编写一个程序,将两个字符串连接起来,不要使用strcat函数。
写法1: #include <stdio.h> int main(){ char s1[100],s2[50]; int i=0,j=0; scanf("%s",s1); scanf("%s",s2); while(s1[i]!='\0') i++; while(s2[i]!='\0') s1[i++]=s2[j++]; s1[i]!='\0'; printf("%s\n",s1); return 0; } 写法2: #include <stdio.h> int main(){ char s1[100],s2[50]; int i=0,j=0; gets(s1); gets(s2); while(s1[i]!='\0') i++; while(s2[i]!='\0') s1[i++]=s2[j++]; s1[i]!='\0'; puts(s1); return 0; }
12、输入一个不超过4位的正整数,判断其为几位数并输出。
方法1:判断各个位上是否有非0数字 #include<stdio.h> int main(){ int num_in,num_dight=0;//num_in为输入的数,num_dight为判断几位数的变量 int num_gewei,num_shiwei,num_baiwei,num_qianwei; scanf("%d",&num_in); if(num_in>=0&&num_in<=9999){ num_qianwei=num_in/1000%10; num_baiwei=num_in/100%10; num_shiwei=num_in/10%10; num_gewei=num_in/1%10; if(num_qianwei!=0) num_dight=4; else if(num_qianwei==0&&num_baiwei!=0) num_dight=3; else if(num_qianwei==0&&num_baiwei==0&&num_shiwei!=0) num_dight=2; else num_dight=1; printf("您输入的num_in=%d是%d位数\n",num_in,num_dight); }else printf("您输入的数据不合法!\n"); return 0; } 方法2:直接比较法 #include <stdio.h> int main(){ int num_in,num_dight=0; scanf("%d",&num_in); if(num_in>=1000&&num_in<=9999) num_dight=4; else if(num_in>=100&&num_in<=999) num_dight=3; else if(num_in>=10&&num_in<=99) num_dight=2; else if(num_in>=0&&num_in<=9) num_dight=1; else printf("您输入的数不合法!"); if(num_dight==1||num_dight==2||num_dight==3||num_dight==4) printf("您输入的是%d位数\n",num_dight); else printf("\n"); return 0; } 方法3:do-while循环 #include <stdio.h> int main(){ int num_in,num_dight=0; scanf("%d",&num_in); do{ num_dight+=1; num_in/=10; }while(num_in>0); printf("您输入的是%d位数\n",num_dight); return 0; }
13、程序设计:输出九九乘法表。
#include <stdio.h> int main(){ int i,j; for(i=1;i<=9;i++) for(j=1;j<=9;j++){ if(j<i) printf(" "); else printf("%d*%d=%-2d\t",i,j,i*j); } printf("\n"); return 0; }
14、输入一行字符串,判断有几个单词
#include <stdio.h> int main() { printf("输入一行字符:\n"); char ch; int i,count=0,word=0; while((ch=getchar())!='\n') if(ch==' ') word=0; else if(word==0) { word=1; count++; } printf("总共有 %d 个单词\n",count); return 0; }