您的当前位置:首页正文

C程序设计期末考试A卷

2023-03-31 来源:意榕旅游网
C程序设计期末考试A卷

姓名: 刘建 专业: 信息实验班 学号: 25

一、选择题(每题2分,共30分)

1.C语言规定:在一个源程序中,main函数的位置 B 。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后

2.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为 B 。 A.float B.char C.int D.double 3.设以下变量均为整型,则值不等于7的表达式是 C 。 A.(x=y=6, x+y, x+1) B.(x=y=6, x+y, y+1) C.(x=6, x+1, y=6, x+y) D.(y=6, y+1, x=y, x+1) 4.以下说法正确的是 D 。

A.输入项可以为一个实型常量,如scanf(“%f”, 3.5);

B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d, b=%d”);

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f); D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

5.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是 C 。 A.int a=b=c=5; B.int a, b, c=5; C.a=5, b=5, c=5; D.int a, b, c; a=b=c=5;

6.设x、y均为float型变量,则以下不合法的赋值语句是 B 。 A.++x; B.y=(x%2)/10; C.x *= y+8; D.x=y=0;

7.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 。A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)

8.判断char型变量ch是否为大写字母的正确表达式是 。 A.’A’<=ch<=’Z’ B.(ch>=’A’)&(ch<=’Z’) C.(ch>=’A’)&&(ch<=’Z’) D.(’A’<= ch)AND(’Z’>= ch) 9.执行以下语句后a的值为 (1) ,b的值为 (2) 。

int a=5, b=6, w=1, x=2, y=3, z=4; (a=w>x)&&(b=y>z);

(1)A.5 B.0 C.2 D.1 (2)A.6 B.0 C.1 D.4 10.已知int x=10, y=20, z=30; 以下语句执行后x,y,z的值是 。 if(x>y)

z=x; x=y; y=z;

A.x=10, y=20, z=30 B.x=20, y=30, z=30 C.x=20, y=30, z=10 D.x=20, y=30, z=20 11.设有程序段:

int k=10;

while(k= =0) k=k+1; 则下面描述正确的是 。

A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次

12.在c语言中,引用数组元素时,其数组下标的数据类型允许是 。

A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 13.以下对二维数组a的正确说明是 。

A.int a[3][]; B.float a(3,4); C.double a[1][4]; D.float a[][4]; 14.以下不能对二维数组a进行正确初始化的语句是 。 A.int a[2][3] = {0}; B.int a[][3] = {{1,2},{0}}; C.int a[2][3] = {{1,2},{3,4},{5,6}}; D.int a[][3] = {1,2,3,4,5,6}; 15.若有说明:int a[3][4]={0};则下面正确的叙述是 。

A.只有元素a[0[0]可得到初值0 B.此说明语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0 D.数组a中每个元素都可得到初值0 二、程序填空(每空3分,共30分)

1.以下程序的功能是计算一元二次方程的根,请在 上填上正确的内容。 #include

#include void main()

{ float a, b, c, t, disc, twoa, term1, term2; printf(“Enter a, b, c:”); scanf(“%f%f%f”, (1) ); if( (2) )

if( (3) ) printf(“no answer due to input error.\\n”); else printf(“the single root is %f\\n”, -c/b); else

{ disc=b*b-4*a*c; twoa=2*a; term1= -b/twoa; t=fabs(disc); term2=sqrt(t)/twoa; }

if( (4) )

printf(“complex root\\n real part = %f imag part = %f\\n”,term1, term2); else

printf(“real roots\\n root1 = %f root2=%f\\n”, term1+term2, term1-term2); }

2.下面程序段是找出某个整数的所有因子,请填空。 scanf(“%d”, &x); i=1;

for( ; (5) ; )

{ if(x%i= =0) printf(“%3d”, i); i++; }

3.以下程序的功能是打印100以内个位数为6且能被3整除的所有数,请填空。 #include void main()

{ int i, j;

for( i=0; (6) ; i++) { j=i*10+6; if( (7) )

continue;

printf(“%5d”, j); } }

4.设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。 #include void main() { int a[10], b[10], i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for( (8) ;i<10;i++) (9) ; for(i=1;i<10;i++) { printf(“%3d”, b[i]); if( (10) = =0) printf(“\\n”); } } 三、编程题

1.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为’A’,80~89分为’B’,70~79为’C’,60~69为’D’,60分以下为’E’(用switch语句实现)。(15分)

2.每个苹果0.8元,第一天买2个苹果,从第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱?(15分)

3.从键盘输入若干个整数,其值在0至4的范围内,用-1作为输入结束的标志。统计每个整数的个数,编程实现。(10分)

因篇幅问题不能全部显示,请点此查看更多更全内容