当前位置:文档之家› C语言第一次作业及答案

C语言第一次作业及答案


三、 程序设计题(本大题共 3 小题) 1. 输入一个华氏温度,要求输出摄氏温度。公式为 c=5/9(f-32) 输出要有文字说明,取 2 位小数。(此题是书上 p89 页的 4.9 题) 答: #include<stdio.h> void main() { float c,f; printf("请输入华氏温度:"); scanf("%f",&f); c=(float)5/9*(f-32); printf("%14.2f 的摄氏温度是:%14.2f\n",f,c); } 2. 输入一个圆的半径 r 和一个整型数 k, 当 k=1 时,计算圆的面积; 当 k=2 时,计算圆的 周长; 当 k=3 时,既要求出圆的面积也要求出圆的周长。 #include<stdio.h> void main() { float r,l,s; float pi=3.1415926; int k; printf("请输入圆的半径和一个 1-3 的整数(例如: 2.3, 2) :"); scanf("%f,%d",&r,&k); l=2*pi*r; s=r*r*pi; switch(k) { case 1 :printf("圆的面积是:%8.2f\n",s);break; case 2 :printf("圆的周长是:%8.2f\n",l);break; case 3 :printf("圆的面积是:%8.2f 周长是:%8.2f\n",s,l); } } 3. 企业发放的奖金根据利润提成。利润 I 低于或等于 10 万元的,奖金可提 10%;利润高 于 10 万元, 低于 20 万元(100000<I≤200000)时, 低于 10 万元的部分按 10%提成, 高于 100000 元的部分,可提成 7.5%;200000<I≤400000 时,低于 20 万的部分仍按上述办法提成(下 同)。高于 20 万元的部分按 5%提成;400000<I≤600000 时,高于 40 万元的部分按 3%提 成;600000<I≤1000000 时,高于 60 万的部分按 1.5%提成;I>1000000 时,超过 100 万 元的部分按 1%提成。从键盘输入当月利润 I,求应发奖金总数。 要求:(1)用 if 语句编程序;(2)用 Switch 语句编程序。 (此题是书上 p112 页的 5.8 题) (1) #include<stdio.h>
void main() { long i; float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf("请输入利润 i:"); scanf("%ld",&i); if(i<100000) bonus=i*0.1; else if(i<=200000) bonus=bon1+(i-100000)*0.075; else if(i<=400000) bonus=bon2+(i-200000)*0.05; else if(i<=600000) bonus=bon4+(i-400000)*0.03; else if(i<=1000000) bonus=bon6+(i-600000)*0.015; else bonus=bon10+(i-1000000)*0.01; printf("奖金是%10.2f\n",bonus); } (2) #include<stdio.h> void main() { long i; float bonus,bon1,bon2,bon4,bon6,bon10; int branch; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf("请输入利润 i:"); scanf("%ld",&i); branch=i/100000; if(branch>10) branch=10; switch(branch) { case 0:bonus=i*0.1;break; case 1:bonus=bon1+(i-100000)*0.075;一、 单项选择题(本大题共 19 小题) 1.C 语言规定:在一个源程序中,main 函数的位置( ) 。[C] A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 2.一个 C 语言程序是由( ) 。[B] A)一个主程序和若干个子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 3.C程序中,注释的内容写在( ) 。[A] A)/*和*/之间 B)\*和*\之间 C)*/和/*之间 D)*\和\*之间 4.C 语言程序中每个语句和数据定义的最后必须有一个( ) 。[A] A)分号 B)逗号 C)空格 D)冒号 5.若 x、i、j 和 k 都是 int 型变量,则计算下面表达式后,x 的值为( ) 。[C] X=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 6.不正确的变量说明是( ) 。[C] A)unsigned int ui; B)short int s; C)double int A; D)int i,j,k; 7.合法的 C 语言程序标识只符是( ) 。[C] A)5dm B)a>b C)Hh D)$a 8.不合法的字符常量是( ) 。[C] A)’2’ B)’\101’ C)’ab’ D)’\n’ 9.若有代数式
7.下面程序段的输出结果是 。 [x=4, y=5, a=1] void main() { int x=3,y=6,a=0; while (x++!=(y-=1)) { a+=1; if (y>x) printf("x=%d, y=%d, a=%d",x,y,a); } } 8.下面程序输出结果是_____________________。[i=6,k=4] #include <stdio.h> void main() { int i,j,k=19; While (i=k-1) { k- =3; if (k%5==0) { i++; continue; } else if (k<5) break; i++; } Printf(“i=%d,k=%d\n”,i,k); } 9.如下程序段的输出结果是 int i=0 , sum=1; do { sum+=i+ +; } while ( i<6); printf(“%d”, sum); 。[16]
scanf( “ %f”, &score); while ( (1) ) { if ( score > max) max=score; if ( (2) ) min=score; printf(“ Input the score”); scanf( “ %f”, &score); } printf(“ The max score is %f \n min
is
%f\n”,max, min);
} 13. 以下程序的功能是实现从键盘输入一组字符, 统计出大写字母的个数 m 和小写字母的个 数 n,并输出 m、n 中的较大者。[ (1) c=getchar() ; (2) n:m void main() { int m= 0, n=0; char c; while ( ( (1) ) != ‘\n’ ) { if ( c>=’A’ &&c <=’Z’ ) m++; if ( c>=’a’ &&c <=’z’ ) n++; } printf(“%d \n ”, m<n ? (2) ); } 14.下面程序段将输出 computer,请填空。[(1)i<=7 int i, j=0; char c[ ]=”it’s a computer”; for (i=0; (1) ;i++) { (2) ; printf(“%c”,c[j];) (2)j=i+7]
A)34 B)4 C)35 D)3 15.下面程序段的输出结果是( ) 。[A] int n=4; while (n――) printf(“%2d”, ――n); A) 2 0 B)31 C)3 2 1 D)2 1 0 16.下面程序段的输出结果是( ) 。[C] int x=3; do { printf(“%3d”, x-=2); } while (! (――x)); A)1 B)30 C)1 -2 D)死循环 17.以下 for 循环的执行次数是( ) 。[C] for (x=0,y=0;(y=123)&&(x<4);x++); A)是无限循环 B)循环次数不定 C)执行 4 次 D)执行 3 次 18.若有说明:int a[5][6]; 则对 a 数组元素的正确引用是( ) 。[C] A)a[2][6] B)a[4,5] C)a[1+3][0] D)a(1)(5) 19.判断字符串 s1 是否大于字符串 s2,应当使用( ) 。[D] A)if ( s1>s2) B)if (strcmp ( s1,s2)) C)if ( strcmp( s2, s1)>0) D)if ( strcmp( s1,s2 )>0) 二、填空题(本大题共 15 小题) 1.设 a=10,则赋值表达式 a+=a-=a*a 的值是 。 [-180] 2.设 a=3,b=4,c=5。则逻辑表达式 a||b+c&&b-c 的值是 。[1] 3.若已知定义 a =10, b=20, 则表达式 ! a<b 的值为 。[1] 4.若有定义 int a [3][4]={{1,2}, {0},{ 4,6,78,10}}; 则初始化后 a[1][2]得到的初值 是 。[0] 5.若有定义 int a [3][4]={{1,2}, {0},{ 4,6,78,10}}; 则初始化后 a[2][1]得到的初值 是 。[6] 6.下面程序段的输出结果是 。 [**1** **3**] void main() { int x=1, y=0; switch ( x) { case 1: switch ( y ) { case 0: printf(“**1**\n”); break; case 1: printf(“**2**\n”); break; } case 2: printf(“**3**\n”); } }
相关主题