1.输入一个数,判断是否是水仙花
程序代码:
1 #include<stdio.h>
2 #include<string.h>
3 #include<stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 int num;
7 printf("enter three_digit:");
8 scanf("%d",&num);
9 int a=num%10,b=num/10%10,c=num/100;
10 if(a*a*a+b*b*b+c*c*c==num)
11 {
12 printf("yes\n");
13 }
14 else
15 {
16 printf("no\n");
17 }
18 return 0;
19 }
运行结果:
2.输入三角形的三条边,判断是什么三角形(等腰、直角、等边、普通三角形)
程序代码:
1 #include<stdio.h>
2 #include<string.h>
3 #include<stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 int a,b,c;
7 printf("enter three borders:");
8 scanf("%d %d %d",&a,&b,&c);
9 if(a+b>c&&a+c>b&&b+c>a)
10 {
11 if(a==b||a==c||b==c)
12 {
13 if(a==b&&b==c)
14 {
15 printf("equilateral triangle\n");//等边三角形
16 }
17 else
18 {
19 printf("isosceles triangle\n");//等腰三角形
20 }
21 }
22 else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
23 {
24 printf("right triangle\n");//直角三角形
25 }
26 else
27 {
28 printf("ordinary triangle\n");//普通三角形
29 }
30 }
31 else
32 printf("notatriangle\n");//非三角形
33 return 0;
34 }
运行结果:
3.输入一个成绩,判断学生成绩等级
90--100 A 80--89 B 70--79 C 0--69 D
程序代码:
1 #include<stdio.h>
2 #include<string.h>
3 #include<stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 int score;
7 printf("enter score:");
8 scanf("%d",&score);
9 switch(score/10)
10 {
11 case 10:
12 if(score%10!=0)
13 printf("unreasonable\n");
14 else
15 printf("A\n");break;
16 case 9:printf("A\n");break;
17 case 8:printf("B\n");break;
18 case 7:printf("C\n");break;
19 case 6:
20 case 5:
21 case 4:
22 case 3:
23 case 2:
24 case 1:
25 case 0:
26 if(score<0)
27 printf("unreasonable\n");
28 else
29 printf("D\n");
30 }
31 return 0;
32 }
运行结果:
4.输入两个数,实现从小到大排序
程序代码:
1 #include<stdio.h>
2 #include<string.h>
3 #include<stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 int num1,num2;
7 printf("please enter num1&num2:");
8 scanf("%d %d",&num1,&num2);
9 if(num1>num2)
10 {
11 printf("descending sort:%d %d\n",num2,num1);
12 }
13 else if(num1<num2)
14 {
15 printf("descending sort:%d %d\n",num1,num2);
16 }
17 else
18 printf("num1=num2=%d\n",num1);
19 return 0;
20 }
运行结果:
5.
int a=3——>0000 0011(原反补) int b=6——>0000 0110(原反补)
运算优先级:单算移关按位与异或逻条赋,先进行移位再异或
b<<2——> 0001 1000,a^(b<<2)——>0001 1011
选A
6.解读程序
void main()
{
int a=180; //180——>0000 0000 1011 0100
char c;
c=(char)++a; //++a:先自增再运算,181——>0000 0000 1011 0101(原反补)
//强制类型转换:char c——1011 0101(补)
//char默认有字符(-128——127),溢出
//负数,反(1011 0100)原(1100 1011)——>-75
printf("c=%d a=%d\n",c,a);//c=-75 a=181
char d=4; //0000 0100
short e;
e=(++d)++; //++d:先自增再运算,e=5++——报错,只有变量可以自增
printf("d=%d e=%d\n",d,e); //d=5,e报错
}
7.有以下代码
1 #include<stdio.h>
2 int main(int argc, const char *argv[])
3 {
4 int a[]={2,3,5,4},i;
5 for(i=0;i<4;i++) //循环i=0,1,2,3
6 {
7 switch(i%2) // i%2=0,1,0,1
8 {
9 case 0:switch(a[i]%2) //i=0,2
10 {
11 case 0:a[i]++;break;//i=0——a[i]%2=a[0]%2=2%2=0,a[0]++——>3
12 case 1:a[i]--;//i=2——a[i]%2=a[2]%2=5%2=1,a[2]--——>4
13 }break;
14 case 1:a[i]=0; //i=1,3——>a[1]=a[3]=0
15 }
16 }
17 for(i=0;i<4;i++) //循环输出
18 printf("%d",a[i]); //a[0]=3,a[1]=0,a[2]=4,a[3]=0
19 //3040
20 printf("\n");
21 }
程序运行的输出结果是(C)
A:3344 B:2050 C:3040 D:0304
流程图: