C语言第一次作业及答案.doc_第1页
C语言第一次作业及答案.doc_第2页
C语言第一次作业及答案.doc_第3页
C语言第一次作业及答案.doc_第4页
C语言第一次作业及答案.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1次作业答案一、 单项选择题(本大题共19小题)1c语言规定:在一个源程序中,main函数的位置()。ca)必须在最开始b)必须在系统调用的库函数的后面c)可以任意d)必须在最后2一个c语言程序是由()。ba)一个主程序和若干个子程序组成b)函数组成c)若干过程组成d)若干子程序组成3程序中,注释的内容写在()。aa)*和*/之间b)*和*之间c)*和/*之间d)*和*之间4c语言程序中每个语句和数据定义的最后必须有一个()。aa)分号b)逗号c)空格d)冒号5若x、i、j和k都是int型变量,则计算下面表达式后,x的值为()。cx=(i=4,j=16,k=32)a)4b)16c)32d)526不正确的变量说明是()。ca)unsigned int ui;b)short int s;c)double int a;d)int i,j,k;7合法的c语言程序标识只符是()。ca)5dmb)abc)hhd)$a8不合法的字符常量是()。ca)2b)101c)abd)n9若有代数式,则不正确的表达式是()。ca)a/b/c*e*3b)3*a*e/b/cc)3*a*e/b*cd)a*e/c/b*310以下选项中不合法的赋值语句是()。ca)c=(a=1,b=2);b)k=i=j;c)a=b+c=5;d)n1=(n2=(n3=0);11若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()。c)a%2= =1b) !(a %2 = =0) c)!(a%2)d)a%212.若w=1,x=2,y=3,z=4,则条件表达式wx?x:y= a & ch = z ) ? ( ch + 32 ) : ch ; a)ab)ac)zd)z14假定所有变量均已正确说明,下列程序运行后x的值是()。a a=b=c=0, x=35; if (! a) x;else if (b ); if ( c) x=3; else x=4;a)34b)4c)35d)315下面程序段的输出结果是()。a int n=4; while (n) printf(“%d”,n); a)2 0b)1c)3 2 1d)2 1 016下面程序段的输出结果是()。c int x=3; do printf(“%3d”,x);while (!(x)); a)b)c) d)死循环17以下for循环的执行次数是()。c for (x=0,y=0;(y=123)&(xs2)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的值是 。 -1802.设a=3,b=4,c=5。则逻辑表达式a|b+c&b-c的值是 。13.若已知定义a =10, b=20, 则表达式 ! ax) printf(x=%d, y=%d, a=%d,x,y,a); 8.下面程序输出结果是_。i=6,k=4#include void main() int i,j,k=19;while (i=k-1) k- =3; if (k%5=0) i+; continue; else if (k5) break; i+;printf(“i=%d,k=%dn”,i,k);9如下程序段的输出结果是 。16 int i=0 , sum=1; do sum+=i+ +; while ( i6); printf(“%d”, sum);10.下列的for循环执行 次。4 for ( x=0, y=0; ( y!=99) & x4; x+ );11若x 是int型变量,下面程序段的输出结果是 。*3#4*5 for ( x=3; x=0 & score =100 (2)scoremin 或score max) max=score; if ( (2) ) min=score; printf(“ input the score”); scanf( “ %f”, &score); printf(“ the max score is %f n min is %fn”,max, min); 13以下程序的功能是实现从键盘输入一组字符,统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。 (1) c=getchar() ; (2) n:mvoid main() int m= 0, n=0; char c; while ( ( (1) ) != n ) if ( c=a &c =a &c =z ) n+; printf(“%d n ”, mn ? (2) ); 14.下面程序段将输出 computer,请填空。(1)i=7 (2)j=i+7 int i, j=0; char c =”its a computer”; for (i=0; (1) ;i+) (2) ; printf(“%c”,cj;)15. 如下程序段的输出结果是 。123 #include void main() char str=1a2b3c ; int i; for (i=0; stri!=0;i+) if (stri=0&stri=9) printf(%c,stri);16如下程序段的输出结果是 。efghijkl#include void main() char str10=abcd,efgh,ijkl,mnop,k; for (k=1; k3;k+) printf(%sn,strk);三、 程序设计题(本大题共3小题)1. 输入一个华氏温度,要求输出摄氏温度。公式为 c=5/9(f-32)输出要有文字说明,取2位小数。(此题是书上p89页的4.9题)答:#includevoid main() float c,f; printf(请输入华氏温度:); scanf(%f,&f); c=(float)5/9*(f-32); printf(%14.2f的摄氏温度是:%14.2fn,f,c);2. 输入一个圆的半径r 和一个整型数k, 当k=1时,计算圆的面积; 当k=2时,计算圆的周长; 当k=3时,既要求出圆的面积也要求出圆的周长。#includevoid 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.2fn,s);break; case 2 :printf(圆的周长是:%8.2fn,l);break; case 3 :printf(圆的面积是:%8.2f周长是:%8.2fn,s,l); 3. 企业发放的奖金根据利润提成。利润i低于或等于10万元的,奖金可提10;利润高于10万元,低于20万元(100000i200000)时,低于10万元的部分按10提成,高于100000元的部分,可提成75;200000i400000时,低于20万的部分仍按上述办法提成(下同)。高于20万元的部分按5提成;400000i600000时,高于40万元的部分按3提成;600000i1000000时,高于60万的部分按15提成;i1000000时,超过100万元的部分按1提成。从键盘输入当月利润i,求应发奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。(此题是书上p112页的5.8题)(1) #includevoid 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(i100000) 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.2fn,bonus);(2)#includevoid 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(branch10) branch=10; switch(branch) case 0:bonus=i*0.1;break; case 1:bonus=bon1+(i-100000)*0.075;break; case 2: case 3:bonus=bon2+(i-200000)*0.05;break; case 4: case 5:bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9:bonus=bon6+(i-600000)*0.015;break; case 10:bonus=bon10+(i-1000000)*0.01; printf(奖金是%10.2fn,bonus);4打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。(此题是书上p129页的6.6题)#includevoid main() int s,s1,s2,s3; for(s=100;s1000;s+) s1=s/100; s2=s/10%10; s3=s%10; if(s=s1*s1*s1+s2*s2*s2+s3*s3*s3) printf(%dn,s); 5有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前20项之和。(此题是书上p129页的6.8题)#includevoid main()int i, t;float a=2,b=1,sum=0; for(i=1;i=20;i+)sum=sum+a/b;t=a;a=a+b; /*将前一项分子与分母之和作为下一项的分子*/b=t; /*将前一项分子作为下一项的分母*/ printf(sum=%8.7fn,sum);6 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。(此题是书上p154页的7.5题)#include#define n 5void main() int a n,i,temp; printf(enter array a:n); for(i=0;in;i+) scanf(%d,&ai); printf(array a:n); for(i=0;in;i+)printf(%4d,ai); for(i=0;in/2;i+) temp=ai; ai=an-i-1; an-i-1=temp; printf(nnow,arraya:n); for(i=0;in;i+)pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论