第一题
- 下面程序运行结果为( )。请解释原因。
void main ( )
{
char c = ‘a’;
if (‘a’ < c <= ‘z’)
{
printf (“LOW”);
}
else
{
printf (“UP”);
}
}A. LOW
B. UP
C. LOWUP
D. 程序语法错误
答:A.LOW因为从左边开始往右算’a’<c不成立为false(0),之后再与‘z’的ASCLL码比较,得到ture,所以可以执行printf (“LOW”)
第二题
请阅读以下程序,该程序()。请对选项进行解释。
void main( )
{
int a = 5, b = 0, c = 0;
if (a = b + c)
printf (“***\n”);
else
printf (“$$$\n”);
}
A. 有语法错不能通过编译
B. 可以通过编译但不能通过连接
C. 输出***
D. 输出$$$
答:D因为a不等于b+ c,if不成立所以输出else后的语句,得到结果D
第三题
填空:以下程序运行结果是_____________,请解释。
void main( )
{
int m = 5;
if (m++ > 5)
printf(“%d\n”, m);
else printf(“%d\n”, m- -);
}
答:6因为m++运算后结果得m为6>5为true,则输出m即6
第四题
已知 int x = 10, y = 20, z = 30; 以下语句执行后x =__, y=,z=_______。请解释。
if (x > y) z = x; x = y; y = z;
答:20 30 30 因为x > y为false所以z=x不执行,而后因为x = y得x=20,同理y=30,而z不变。所以得x=20 y=30 z=30
第五题
下面的程序的功能是根据输入的百分制成绩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
第六题
程序实现:输入1个年份 year,判断year是否是闰年?
#include<stdio.h>
int main()
{
int year;
printf("请输入一个年份: ");
scanf("%d",&year);
if((year % 4 == 0 && year % 100 != 0) || (year % 4 == 0))
printf("%d年是闰年\n",year);
else printf("%d年不是闰年\n",year);
return 0;
}
第七题
程序实现:输入3个数 numA, numB, numC,计算这三个数的最大值,最小值
#include <stdio.h>
int main()
{
int numA, numB, numC;
scanf("%d %d %d", &numA, &numB, &numC);
int max, min;
max=numA;
min=numA;
if(max < numB) max = numB;
if(max < numC) max = numC;
if(min > numB) min = numB;
if(min > numC) min = numC;
printf("这三个数中最大值为%d,最小值为%d\n", max, min);
return 0;
}
第八题
程序实现:仿照课堂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 data1, data2;
char op;
printf("Please enter the expression:");
scanf("%f%c%f", &data1, &op, &data2);
switch (op)
{
case'+':
printf("%f+%f=%f\n",data1,data2,data1+data2);
break;
case'-':
printf("%f-%f=%f\n",data1,data2,data1-data2);
break;
case'*':printf("%f*%f=%f\n",data1,data2,data1*data2);
break;
case'/':
if(data2==0)
printf("分母不能为零\n");
else
printf("%f/%f=%f\n",data1,data2,data1/data2);
break;
default:
printf("Invalid op");
}
}