姓名: 刘建 专业: 信息实验班 学号: 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 { 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 { 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 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分) 因篇幅问题不能全部显示,请点此查看更多更全内容