1.下面的一段程序的输出结果为(D)
#include <stdio.h>
int main()
{
if(-1)
printf("1");
else
printf("2");
if(0)
printf("3");
else
printf("4");
return 0;
}
A. 23 B. 24 C. 13 D. 14
2.( A)设int s = 100,要输出字符串"s的值是100"应使用下列哪个语句?
A. printf("s 的值是%d", s); B. printf("s 的值是%s", s)
C. printf("s 的值是%x", s): D. printf("s 的值是%i", s)
3.if(n==8)和if(8==n)两种判断方式,哪一种更好,为什么?
答案:if(8==n)。
解析:if(n==8)这种写法当少一个=号会影响程序,但是编译的时候不会报错。
4.if-elseif-else结构和switch-case结构,哪个效率高,为什么?
答案:switch-case效率高。
解析:if-elseif-else结构会执行多次选择,switch-case只执行一次选择。
5.结构化程序设计所规定的三种基本控制结构是:(C)
A. 输入、处理、输出 B. 形、网形、环形
C. 顺序、选择、循环 D. 主程序、子程序、函数
6.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符:(C)
A. 必须为字母 B. 必须为下划线
C. 必须为字母或下划线 D. 可以是字母,数字和下划线中任一字符
7.若执行下面的程序时,从键盘上输入 5,则输出是 (C)
int main(int argc, char **argv)
{
int x;
scanf("%d", &x);
if(x++ > 5)
printf("%d\n", x);
else
printf("%d\n", x--);
return 0;
}
A. 7 B. 4 C. 6 D. 5
8.以下语句中,能够判断uiNum(unsigned int)可以被16整除的有(ABCD)
A. if (((uiNum / 16) * 16) == uiNum)
B. if ((uiNum % 16) == 0)
C. if ((uiNum & 0x0F) == 0)
D. if (((uiNum >> 4) << 4) == uiNum)
9.编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32)
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { char ch; printf("请输入一个小写字符\n"); scanf(" %c",&ch);//在%前加空格,预防输入垃圾字符 if(ch<='z'&&ch>='a'){ printf("该字符对应的大写字符为%c\n",ch-32); }else{ printf("你的输入有误\n"); } return 0; }
执行结果展示:
10.已知学生成绩(100分为满分)与等级的对应关系为: (中科四平)
成绩(grade)
等级
90<=grade<=100
A
80<=grade<90
B
70<=grade<80
C
60<=grade<70
D
grade<60
E
请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch....case 语句)
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int grade; printf("请输入一位学生成绩\n"); scanf(" %d",&grade); if(grade>100||grade<0){ printf("您的输入有误\n"); }else{ switch(grade/10){ case 10: case 9:printf("该学生成绩对应等级为:A\n"); break; case 8:printf("该学生成绩对应等级为:B\n"); break; case 7:printf("该学生成绩对应等级为:C\n"); break; case 6:printf("该学生成绩对应等级为:D\n"); break; default:printf("该学生对应成绩为:E\n"); break; } } return 0; }
执行结果展示:
11.编写一个程序。a=3,b=5,对a和b的值进行交换。
方法一:添加空变量交换法:
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int a=3,b=5; int t; t=a; a=b; b=t; printf("a=%d b=%d\n",a,b); return 0; }
运行结果展示:
方法二:整合分配法:
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int a=3,b=5; a=a+b; b=a-b; a=a-b; printf("a=%d b=%d\n",a,b); return 0; }
运行结果展示:
12.编写一个程序。实现输入一个三位数,判断是否是水仙花数。
水仙花数——各个位立方之和等于本身。
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int num; printf("请输入一个三位数:\n"); scanf("%d", &num); int g , s , b; if(num>=100&&num<=1000){ g=num%10;//取个位数,并存到g变量中。 s=num/10%10;//取十位数,并存到s变量中。 b=num/100;//取百位数,并存到b变量中。 if(g*g*g+s*s*s+b*b*b==num){ printf("是水仙花数\n"); }else{ printf("不是水仙花数\n"); } }else{ printf("你输入有误,可能不是一个三位数\n"); } return 0; }
执行结果展示:
13.编写一个程序。实现输入一个年份,判断是不是闰年。
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int year; printf("请输入一个年份\n"); scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0){ printf("%d是闰年\n",year); }else{ printf("%d不是闰年\n",year); } return 0; }
执行结果展示:
14.编写一个程序。请实现以下功能:
输入三个数,分别为年、月、日,输出此日是该年的第几天。
输入:
XXX XXX XXX
输出:
此日是该年的第XXX 天
示例:
输入 2020 2 20
程序输出 此日是该年的第51天
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int m1=31,m3=31,m5=31,m7=31,m8=31,m10=31; int m2=28; int m4=30,m6=30,m9=30,m11=30; int year,month,day,sum=0; printf("请输入年月日\n"); scanf("%d %d %d", &year, &month, &day); if(year%4==0&&year%100!=0||year%400==0){ m2=29; } switch(month){ case 12:sum+=m11; case 11:sum+=m10; case 10:sum+=m9; case 9:sum+=m8; case 8:sum+=m7; case 7:sum+=m6; case 6:sum+=m5; case 5:sum+=m4; case 4:sum+=m3; case 3:sum+=m2; case 2:sum+=m1; case 1:sum+=day;break; } printf("这天是%d年的第%d天\n",year,sum); return 0; }
执行结果展示:
15.编写一个程序。输入三角形的 三个边长
判断能否构成三角形,如果能
输出能构成三角形
再输出是什么三角形
等边 [a==b && a==c && b==c]
等腰 [a==b || a==c || b==c]
直角(勾股定理)[a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a]
普通
如果不能
输出不能构成三角形
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int a,b,c; printf("请输入三边长\n"); scanf("%d %d %d", &a,&b,&c); if(a+b>c&&a+c>b&&b+c>a){ if(a==b&&b==c){ printf("是三角形而且是等边三角形\n"); }else if(a==b||a==c||b==c){ printf("是三角形而且是等腰三角形\n"); }else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){ printf("是直角三角形\n"); }else{ printf("普通三角形\n"); } }else{ printf("不是三角形\n"); } return 0; }
执行结果展示:
16.编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。
代码展示:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int a,b,c,d; printf("请输入四个数,用空格隔开\n"); scanf("%d %d %d %d", &a, &b, &c,&d); int t=0; if(a<b) t=a,a=b,b=t; if(b<c) t=b,b=c,c=t; if(c<d) t=c,c=d,d=t; if(a<b) t=a,a=b,b=t; if(b<c) t=b,b=c,c=t; if(a<b) t=a,a=b,b=t; printf("%d>%d>%d>%d\n",a,b,c,d); return 0; }
执行结果展示: