1. 下面程序运行结果为( )。请解释原因。
void main ( ) { char c = 'a'; if ('a' < c <= 'z') { printf ("LOW"); } else { printf ("UP"); } } |
A. LOW
B. UP
C. LOWUP
D. 程序语法错误
答案:A
先判断'a'<c不成立,输出为0,0<='z',所以成立,输出low.
#include<stdio.h>
int main()
{
char c = 'a';
if ('a' < c <= 'z')
{
printf("LOW");
}
else
{
printf("UP");
}
}
2.请阅读以下程序,该程序()。请对选项进行解释。
void main( ) { int a = 5, b = 0, c = 0; if (a = b + c) printf ("***\n"); else printf ("$$$\n"); } |
A. 有语法错不能通过编译
B. 可以通过编译但不能通过连接
C. 输出***
D. 输出$$$
答案:D
先算b+c=0,因为a=5,所以不成立,输出$$$
#include<stdio.h>
int main()
{
int a = 5, b = 0, c = 0;
if (a = b + c)
printf("***\n");
else
printf("$$$\n");
}
3.填空:以下程序运行结果是_____________,请解释。
void main( ) { int m = 5; if (m++ > 5) printf("%d\n", m); else printf("%d\n", m--); } |
答案:6
因为m++=6,所以成立,输出m,因为m=6,所以输出6
#include<stdio.h>
int main()
{
int m = 5;
if (m++ > 5)
printf("%d\n", m);
else printf("%d\n", m--);
4.已知 int x = 10, y = 20, z = 30; 以下语句执行后x =________, y=______,z=_______。请解释。
if (x > y) z = x; x = y; y = z; |
答案:20,30,30
因为if不成立,所以z=x不执行,因为x=y,所以x=20,因为y=z,所以y=30
#include<stdio.h>
int main()
{
int x = 10, y = 20, z = 30;
if (x > y) z = x;
x = y;
y = z;
printf("%d,%d,%d", x, y, z);
return 0;
}
5.下面的程序的功能是根据输入的百分制成绩score,转换成相应的五分制成绩grade并打印输出。转换的标准为:
当90≦score≦100时,grade为A; 当80≦score﹤90时,grade为B; 当70≦score﹤80时,grade为C; 当60≦score﹤70时,grade为D; 当score﹤60时,grade为E; |
请填空:(1)__________(2)__________(3)__________
(4)__________(5)__________(6)__________ (7)__________
#include <stdio.h> void main ( ) { int score, mark; scanf ("%d",____(1)______); mark = _____(2)_____; switch (mark) { default: printf ("%d--E", score); ______(3)____; case 10: case___(4)___: printf ("%d--A", score); break; case___(5)___: printf ("%d--B", score); break; case___(6)___: printf ("%d--C", score); break; case___(7)___: printf ("%d--D", score); break; } } |
1.&score 2.score/10 3.break 4.9 5.8 6.7 7.6
#include <stdio.h>
void main() {
int score, mark;
scanf("%d", &score);
mark = score/10;
switch (mark)
{
default: printf("%d--E", score); break;
case 10:
case 9 : printf("%d--A", score); break;
case 8: printf("%d--B", score); break;
case 7: printf("%d--C", score); break;
case 6: printf("%d--D", score); break;
}
}
6. 程序实现:输入1个年份 year,判断year是否是闰年?
#include <stdio.h>
int main()
{
int year;
scanf_s("%d", &year);
//两个判断条件,1被4整除或2被一百整除
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
printf("%d年是闰年\n", year);
else
printf("%d年不是闰年\n", year);
return 0;
}
7. 程序实现:输入3个数 numA, numB, numC,计算这三个数的最大值,最小值。
#include <stdio.h>
int main()
{
float numA, numB, numC;
scanf_s("%f,%f,%f", &numA, &numB, &numC);
if (numA > numB && numA > numC)
printf("最大数是:%f", numA);
else
if (numB > numA && numB > numC)
printf("最大数是:%f", numB);
else
printf("最大数是:%f", numC);
if (numA < numB & numA < numC)
printf("最小数是:%f", numA);
else
if (numB < numA & numB < numC)
printf("最小数是:%f", numB);
else
printf("最小数是:%f", numC);
}
8. 程序实现:仿照课堂PPT,实现一个简单的计算器程序(只要求计算加减乘除)。要求:用户从键盘输入如下形式的表达式:操作数1 运算符op 操作数2, 比如:1 + 2, 1 / 2, 1 * 2 等,能够输出对应的结果,比如:1 + 2 = 3,1 / 2 = 0.500000, 1 * 2 = 2.
#include <stdio.h>
int main()
{
float a, b;
char op;
scanf_s("%f %c %f", &a, &op,4, &b);
switch (op)
{
case '+':
printf("%f + %f = %f\n", a, b, a + b);
break;
case '-':
printf("%f - %f = %f\n", a, b, a - b);
break;
case'*':
printf("%f * %f = %f\n", a, b, a * b);
break;
case'/':
if (fabs(b) <= 1e-7)
printf("wrong!");
else
printf("%f / %f = %f\n", a, b, a / b);
break;
}
return 0;
}