1.关于static说法不正确的是:( )
A.static可以修饰局部变量
B.static可以修全局变量
C.static修饰的变量不能改变
D.static可以修饰函数
2.下面代码的结果是什么?( )
#include <stdio.h> int sum(int a) { int c = 0; static int b = 3; c += 1; b += 2; return (a + b + c); } int main() { int i; int a = 2; for (i = 0; i < 5; i++) { printf("%d,", sum(a)); } }
A. 6,8,10,12,14
B.8,10,12,14,16
C.10,12,14,16,18
D.12,14,16,18,20
3.关于指针说法正确的是:( )
A.sizeof(char*)大小一定是1
B.指针变量是个变量,用来存放地址
C.指针变量的大小都是4个字节
D.指针不是变量
4.编程题
根据以下公式计算m的值。
其中 max3函数为计算三个数的最大值,如: max3(1, 2, 3) 返回结果为3
例如:输入:1 2 3输出:0.30
5.编程题
从键盘输入5个人的身高(米),求他们的平均身高(米)。一行,连续输入5个身高(范围0.00~2.00),用空格分隔。一行,输出平均身高,保留两位小数。
例如:输入:1.68 1.75 1.82 1.60 1.92输出:1.75
答案解析
//4.编程题 #include<stdio.h> int max3(int a, int b, int c) { int max = a; if(max < b) max = b; if(max < c) max = c; return max; } int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); int x = max3(a+b, b, c); int y = max3(a, b+c, c); int z = max3(a, b, b+c); float m = (float) x / (y + z); printf("%.2f", m); }
//5.编程题 #include <stdio.h> //计算平均值 float ave(float arr[]) { float sum = 0.0; int i = 0; while(i < 5) { sum += arr[i]; //身高相加 i++; } return sum/5.0; } int main() { float arr[5] = {0}; int i = 0; for(i = 0; i < 5; i++) { scanf("%f ", &arr[i]); //输入身高 } float aver = ave(arr); printf("%.2f", aver); return 0; }