一、单选题(每题3分,共计30分)
1、C语言中基本数据类型包括(B)。
A、整型、实型、逻辑型 B、整型、实型、字符型
C、整型、字符型、逻辑型 D、整型、实型、逻辑型、实型
2、下列选项中不属于C语言的优点的选项是( )。
A、C语言语句简洁、紧凑,使用方便灵活 B、C语言程序易于移植
C、生成的目标代码质量高,运行效率高 D、数据类型检查严格
3、若a、b均为int型变量,且a=100,则关于循环语句for(b=100; a!=b; ++a,++b)
printf ( “ ------------”) ;的正确说法是( ) 。
A、循环体只执行一次 B、死循环
C、循环体一次也不执行 D、输出-----------
4、对C语言来说,下列标识符中不合法的选项是( )。
A、AB2C B、ab2c
C、ab.2c D、a_b2c
5、执行下列程序段后,i的值是( )。
s = 0;
for( i = 1; i <= 4; i=i+3 ){
s += i;
}
A、1 B、4 C、5 D、7
6、下列各语句中,能够输出整型变量a、b中最大值的是( )。
A、printf("%d\\n",(a>b)?a,b);
B、(a>b)? printf("%d",b): printf("%d",a);
C、printf("%d",if(a>b)a else b);
D、printf("%d\\n",(a>b)?a:b);
7、设int a = 9,b = 8,c = 7, x = 1; 则执行语句 if (a>7) if (b>8) if (c>9) x=2 ;else x = 3;
后, x 的值是( )。
A、0 B、2 C、1 D、3
8、下列语句中定义x为指向int类型变量a的指针,正确的是( )。
A、int a, *x=a; B、int a, *x=&a;
C、int *x=&a, a; D、int a, x=a;
9、以下正确的函数定义形式是( )。
A、double fun(int x, int y) B、double fun(int x; int y)
C、double fun(int x, int y); D、double fun(int x y)
10、假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )
A) 3 B) 6 C) 10 D) 20
二、填空题(每题2分,共计10分)
1、C语言程序设计的三种基本结构是 、分支结构和 。
2、若已定义: int x=10, y=3, z; 则语句printf("%d\\n",z=(x%y, x/y)); 的输出结果是 。
3、表示条件10 < x <100或者x < 0的C语言表达式是 。
4、使用强制类型转换运算符,可以将一个表达式转换成给定的类型。(int)3.8 + 1.3的值是 ,(int)(3.8 + 1.3) 的值是 。
5、下列程序段的功能是计算:s=1+12+123+1234+12345,则划线出应填 。
int i, s=0, t=0;
for(i=1;i<=5;i++){
t=i+ ;
s=s+t;
}
printf(“s=%d\\n”,s);
三、程序分析题(3小题,每题10分,共计30分)
1、分析下列程序,写出输出结果。
#include int main(void) { int a =1, b =2, c = 3, d; printf("%d, %d \\n", d = a + b > c, b - 1 == a != c); printf("%d, %o, %x\\n", 10, 10, 10); printf("%d, %d, %d\\n", 10, 010, 0x10); printf("%d, %x\\n", 012, 012); return 0; } 程序运行结果: 2、设计计算两点间距离的函数,实现程序功能。 程序功能:给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2位小数)。要求定义和调用函数dist(x1, y1, x2, y2)计算两点间的距离。 #include #include int main( void ) { double distance; double dist(double x1,double y1,double x2,double y2); /* 函数声明*/ printf ("Enter (x1,y1) and (x2,y2): "); scanf ("%lf%lf%lf%lf ", &x1,&y1, &x2,&y2); distance=dist(x1, y1,x2, y2); /* 调用函数,返回值赋给distance */ printf ("distance=%.2f \\n distance); return 0; } 距离函数dist的定义:(提示:可直接调用库中的平方根函数sqrt。如:求x的平方根,调用方法为:sqrt(x)。) 3、补齐程序语句,使程序功能完整。 程序功能:输入精度e,使用格雷戈里公式求π的近似值,精确到最后一项的绝对值小于e。 #include #include double funpi(double e); /* 函数声明 */ int main(void) { double e, pi; /* e 代表精度 */ printf("Enter e:"); /* 提示用户输入精度 */ scanf("%le", &e); /*精度以科学计数法形式表示*/ /* 调用函数,把返回值赋值给pi */ printf ("pi = %.4f\\n", pi); return 0; } /* 定义计算pi的函数 */ { int denominator, flag; double item, sum; flag = 1; /* flag 表示第 i 项的符号,初始为正 */ denominator = 1; /* denominator表示第 i 项的分母,初始为1 */ item = 1.0; /* item 中存放第 i 项的值,初值取 1 */ /* 置累加和的初值为0 */ /* 当|item| ≥ e时,执行循环 */ while(fabs(item) >= e){ /* 计算第 i 项的值 */ sum = sum + item; /* 累加第 i 项的值 */ flag = -flag; /* 改变符号,为下一次循环做准备 */ /* 分母递增2 ,为下一次循环做准备*/ } return sum * 4; } 四、程序设计题(2小题,共计30分) 1、有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子 成年女子和儿童各有多少人。(本题10分) 2、编写程序求余弦函数的近似值:输入x和精度e,用下列公式求cosx的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e,x)求余弦函数的近似值(保留3位小数)。(本题20分) 提示:(1)用while循环编程;(2)程序中进行绝对值计算时,可直接调用库中的绝对值函数fabs。例如:求x的绝对值,调用方法为:fabs(x)。