判断题
1-1 调用数学库函数时,编译预处理命令为 include math.h
。 F 应该是#include<math.h>
1-2 调用输入输出库函数时,编译预处理命令为#include <stdio.h>
。T
1-3 假设k
是整型变量,计算表达式1.0/k
后结果的数据类型是浮点型。 T 1.0为浮点型
1-4 假设k
是整型变量,计算表达式1/k
后结果的数据类型是整型。 T 整型除以整型还是整型
单选题
2-1
改正下列程序中的( )处错误后,程序的运行结果是在屏幕上显示短句“Welcome to You!”。
# include <stdio.h>
int mian(void)
{
printf(Welcome to You!\n")
return 0;
}
A.1 B.2 C.3 D.4
选择C mian->main,Welcome前面加双引号,printf末尾加;
2-2 若fahr为整型变量,则能正确表示以下数学式的C语言表达式是( ) 。
A.5*(fahr-32)/9
B.5/9*(fahr-32)
C.5(fahr-32)/9
D.(fahr-32)/9*5
选择A
2-3 C语言表达式( )的值不等于1。
A.123/100 B.901%10 C.76%3 D.625%5
选择D,值为0
2-4 假设i
和j
是整型变量,以下语句( ) 的功能是在屏幕上显示形如i * j = i*j
的一句乘法口诀。例如,当i=2,j=3时,显示2 * 3 = 6。
A.
printf("d * %d = %d\n", i, j, i*j);
B.
printf("%d * %d = %d\n", i, j, i*j);
C.
printf("%d * %d = %d\n", i, j);
D.
printf("%d = %d * %d\n", i, j, i*j);
选择B,按顺序写代码即可
2-5 若x
是double
型变量,n
是int
型变量,执行以下语句( ),并输入3 1.25
后,x
的值是1.25
,n
的值是3
。
A.
scanf("%d%lf", &n, &x);
B.
scanf("%lf%d", &x, &n);
C.
scanf("%lf%d", &n, &x);
D.
scanf("%d, %lf", &n, &x);
选择A,先输入n的值,再输入x的值
2-6 下列运算符中,优先级最低的是( )。
A.*
B.=
C.==
D.%
选择B,书上有优先级表格可以参考
2-7
将以下if-else语句补充完整,正确的选项是( )。
if(x >= y){
printf("max = %d\n", x);
____________
printf("max = %d\n", y);
}
A.else
B.else{
C. }else{
D.}else
E.else;
选择C,前面的if语句有大括号,所以else前也要有,代码最后有大括号,所以else之后也要有
2-8
为了检查以下if-else语句的两个分支是否正确,至少需要设计3组测试用例,其相应的输入数据和预期输出结果是( ) 。
int x, y;
scanf("%d%d", &x, &y);
if(x >= y){
printf("max = %d\n", x);
}else{
printf("max = %d\n", y);
}
A.输入3和4,输出4;输入5和100,输出100;输入4和3,输出4。
B.输入3和4,输出4;输入100和5,输出100;输入4和3,输出4。
C.输入3和4,输出4;输入5和5,输出5;输入-2和-1,输出-1。
D.输入3和4,输出4;输入5和5,输出5;输入4和3,输出4。
选择D,前大后小,两者相等,前小后大。这道题当时有些懵
2-9 以下求 n! 的函数可以正确计算21!,正确的选项是( )。
_______ fact(int n)
{
int i;
_______ product;
product = 1;
for (i = 1; i <= n; i++){
product = product * i;
}
return product;
}
A.double
B.int
C.float
D.void
选择A,double是双精度,当时似乎是选错了(?)
2-10
对C语言程序,以下说法正确的是( )。
A.main
函数是主函数,一定要写在最前面。
B.所有的自定义函数,都必须先声明。
C.程序总是从main
函数开始执行的。
D.程序中只能调用库函数,不能自己定义函数。
选择C,可以自定义也可以调用,自定义函数在main前面可以直接定义
填空题(不知道为啥没有3,也许是老师删掉了)
4-1 C 语言程序的三种基本控制结构是 顺序 结构、分支(又称选择)结构和 循环 结构。
4-2 在算术、赋值和关系运算符中,按照优先级从高到低的顺序排列为: 算术 运算符、关系 运算符、赋值运算符。
4-3 写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
int k, flag; if (k = 0) { flag = 0; } else { flag = 1; }
k的值是 0 ;flag的值是 1。
4-4 写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
int i, s = 0; for(i = 1; i < 10; i = i + 2){ s = s + i; }
i的值是 11 ;s的值是 25。
程序填空题
5-1 写出满足条件的算术表达式[1]
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
与数学式
对应的C表达式:sqrt(s*(s-a)*(s-b)*(s-c))
5-2 写出满足条件的算术表达式[2]
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
取number的个位数字:number%10
5-3 写出满足条件的算术表达式[3]
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
取number的十位数字:number/10%10
5-4 写出满足条件的算术表达式[4]
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
取number的百位数字:number/100%10
5-5 写出满足条件的关系表达式[1]
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
number是奇数:number%2==1
5-6 写出满足条件的关系表达式[2]
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
number是5的倍数:number%5==0
5-7 交换2个变量的值
输入2个整数a和b,交换其值,然后输出a和b的值。
#include <stdio.h>
int main(void)
{
int a, b, temp;
scanf("%d%d", &a, &b);
temp=a;
a = b;
b=temp;
printf("%d %d\n", a, b);
return 0;
}