c语言程序设计基础习题六,《C语言程序设计基础》习题集

《《C语言程序设计基础》习题集》由会员分享,可在线阅读,更多相关《《C语言程序设计基础》习题集(42页珍藏版)》请在人人文库网上搜索。

1、第一章 C语言概述1.1、选择题(1)一个C语言程序是由()组成。A. 一个主程序及若干个子程序 B. 一个主程序C. 一个主函数及若干个子函数 D. 一个主函数(2) 一个C语言程序总是从()开始执行。A. 主过程 B. 主函数C. 子程序 D. 主程序(3) main函数在源程序中的位置()。A. 必须在最开始 B. 必须在子函数的后面C. 可以任意 D. 必须在最后(4) 一个C程序的执行是从()。A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到最后一个函数结束C. 本程序的main函数开始,通常也在main函数结束D. 本程序的第一个函数开始,到mai。

2、n函数结束(5) 以下叙述不正确的是()。A. 一个C程序可由一个或多个函数组成B. 一个C程序必须包含一个main函数C. 在C程序中,注释只能位于一条语句的最后面D. C程序的基本组成单位是函数1.2、编程题(1)参照本章例题,编程输出如下信息:*Very good!*(2)编写一个C程序,输出以下信息:*Turbo C * * * * *1.3 请根据自己的认识,写出C语言的主要特点。1.4 简述C程序主要由哪些部分构成?1.5 用户编写的C程序上机运行要经过哪些步骤?第二章 基本数据类型和表达式2.1 单项选择题(1) 以下不能用作变量名的是()A)_26B)caseC)scanfD)。

3、Double(2) 以下合法的八进制数是()A)0135B)068C)013.45D)o7(3) 若变量已正确定义,以下非法的表达式是()A)a/=b+cB)a%(4.0)C)a=1/2*(x=y=20,x*3)D)a=b=c(4) 设x为int类型,其值为11,则表达式:(x+*1/3)的值是()A)3B)4C)11D)12(5) 若题中各变量已正确定义并赋值,下面符合C语法的表达式是()A)a%=7.6;B)a+,a=7+b+cC)int(12.3)%4D)a=c+b=a+7(6) 设k和x均为int型变量,且k=7,x=12,则能使值为3的表达式是()A)x%=k%=5B)x%=(k-k。

4、%5)C)x%=k-k%5D)(x%=k)- (k%=5)(7) 能正确表示数学公式,的C语言表达式是()A)sqrt(abs(sin(x*/180)B)sqrt(abs(sin(x*3.14/180)C)sqrt(sin(x)D)sqrt (fabs (sin(x*3.14/180)(8) 以下变量x、y、z均为double型且已正确赋值,不能正确表示代数式的C语言表达式是()A)x/y*zB)x*(1/(y*z)C)x/y*1/zD)x/y/z(9) 以下叙述中正确的是()A) A)C程序中,赋值运算符的优先级最低。B) B)若a是浮点型变量,C程序中允许进行以下赋值:a=10,因此,浮点。

5、型变量中允许存放整型数。C) C)若a和b类型相同,在执行了赋值a=b后b中的值将放入a中,b中的值将丢失。D) D)在C程序中,除号运算符“/”两边的类型相同时才能进行相除运算。(10)有以下程序:#include void main(void)int k=2,i=2,m;m=(k+=j*=k+); printf( %d , %dn , m , j);执行后的输出结果是()A)8,6B)8,3C)6,4D)7,4(11)有以下程序:#include void main(void)unsigned a=32768;int b;b=a;printf(b=%dn , b);程序执行后的输出结果是(。

6、)A)b=32768B)b=32767C)b=-32768D)b=-1(12)有以下程序段:int a=1234;printf(%2dn,a);其输出结果是()A)12B)34C)1234D)输出宽度不足,无结果(13)已有定义和语句:double a,b,c;scanf( %lf%lf%lf ,&a,&b,&c);要求给a、b、c分别输入10.0、20.0、30.0,不正确的输入形式是()A)10.0B)10.0C)10 20D)10.0,20.0,30.020.0 20 30 30.030.0(14)已有定义语句:int x=3,y=4,z=5; ,则值为0的表达式是()A)xy+B)xy。

7、-zD)y%z=y-z(15)x为奇数时值为“真”,x为偶数时值为“假”的表达式是()A)!(x%2=1)B)x%2=0C)x%2D)!(x%2)(16)已有定义语句:int m=0,n=1; 执行表达式(m=59)后,n的值是()A)1B)0C)3D)4(17)以下选项中非法的字符常量是A) 12B) 0xffC) , D) (18)表达式 9- 3的值是()A)整数6B)字符6C)表达式不合法,无确定值D)字符9(19)以下不能将变量n清零的表达式是()A)n=n&nB)n=n&0C)n=nnD)n=n|n(20)putchar函数可以向屏幕输出一个()A)整型变量值B)浮点型变量值C)字。

8、符串D)字符或字符变量值(21)若int a , b , c;则为它们输入数据的正确输入语句是()A)read(a , b , c);B)scanf( %d %d %d ,a , b , c);C)scanf( %D%D%D ,&a , &b , &c);D)scanf( &d &d &d ,&a , &b , &c);(22)执行语句:printf( | %10.5f | n,12345.678);的输出是()A)|2345.67800| B)|12345.6780|C)|12345.67800|D)|12345.678|(23)若有以下程序段,其输出结果是()int a=0,b=0,c=0。

9、;c = (a = a 5) , (a = b , b + 3 );printf( %d , %d , %dn ,a , b , c);A)3,0,10B)0,0,5C) 10,3, 10D)3,0,3(24)若a为int类型,且a=125,执行下列语句后的输出是()printf( %d , %o , %x n ,a,a+1,a+2)A)125,175,7DB)125,176,7FC)125,176,7DD)125,175,2F2.2 设圆半径为5,编写程序,求圆的周长和面积。2.3设a = 3 , b = 4 , c = 5 , d = 1.2 , e = 2.23 , f = 43.56 。

10、, 编写程序,使程序输出为:a = 3 , b = 4, c = * * 5d = 1.2e = 2.23f = 43.5600* *(其中表示空格)2.4执行下列程序,按指定方式输入(其中表示空格),能否得到指定的输出结果?若不能,请修改程序,使之能得到指定的输出结果。输入:234输出:a = 2 , b = 3 , c = 4x = 6 , y = 24程序:#include void main(void)int a , b, c ,x ,y;scanf( %d , %d , %d , a , b , c);x = a*b ;y=x*c;printf( %d %d %d ,a , b , 。

11、c);printf( x=%fn ,x , y=%fn , y);第三章 控制流3.1输入一个华氏温度,要求输出摄氏温度。公式为:C=(F-32)*5/9要求:输出要有文字说明,保留2位小数。3.2有一函数:x (xb)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=b;b=t;if(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;printf(n排序后的结果如下:n);printf( %d %d %d %d n,a,b,c,d);3.4 实际上应该有以下几种可能:(1) (1) a=0,不是二次方程。(2) (2) b2-4ac=0,有两。

12、个相等实根。(3) (3) b2-4ac0,有两个不等实根。(4) (4) b2-4acmain() float a,b,c,d,disc,x1,x2,realpart,imagpart;scanf (“%f,%f,%f”,&a,&b,&c);printf(“The equation”);if (fabs(a)le-6x1=(-b+sqrt(disc)/2*a;x2=(-b-sqrt(disc)/2*a;printf(“has distinct real roots: %8.4f and %8.4fn”,x1,x2);elserealpart=-b/(2*a);imagpart=sqrt(-d。

13、isc)/(2*a);printf(“has complex roots:n”);printf(“%8.4f+%8.4fin”,realpart,imagpart);printf(“%8.4f-%8.4fin”,realpart,imagpart);程序中用disc代表b2-4ac,先计算disc的值,以减少以后的重复计算。对于判断b2-4ac是否等于0时,要注意一个问题:由于disc(即b2-4ac)是实数,而实数在计算和存储时会有一些微小的误差,因此不能直接进行如下判断:if (disc=0)因为这样可能会出现本来是零的量,由于上述误差而被判别为不等于零而导致结果错误。所以采取的办法是判别。

14、disc的绝对值(abs(disc))是否小于一个很小的数(例如10-6),如果小于此数,就认为disc=0。程序中以realpart代表实部p,以imagpart代表虚部q,以增加可读性。3.5 分析此问题,折扣的变化是有规律的:折扣的“变化点”都是250的倍数(250,500,1000,2000,3000)。利用这一特点,可以在横轴上加一种坐标c,c的值为s/250。C代表250的倍数。当c12时,d =15%;据此写出程序如下:main()int c,s;float p,w,d,f;scanf(“%f,%f,%d”,&p,&w,&s);if (s=3000) c=12;else c=s/。

15、250;switch(c)case 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break;f=p*w*s*(1-d/100.0);printf(“freight=%15.4f”,f);运行情况如下:100,20,300freight=.0000请注意:c、s是整型变量,因此c=s/250为整数。当s=3000时,令c=12,而不使c随s增大,这是为了。

16、在switch语句中便于处理,用一个case可以处理所有s=3000的情况。36(略)37解:main()int n,t,number=20;float a=2,b=1,s=0;for(n=1;n0)x1=(x2+1)*2;x2=x1;day-;printf(桃子总数%dn,x1);311解:main()float sn=100.0,hn=sn/2;int n;for(n=2;nmain()float x,x0,f,f1;x=1.5;dox0=x;f=(2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;while(fabs(x-x0)=1e-5);pr。

17、intf(方程的根%6.2fn,x);313解:#includemain()float x0,x1,x2,fx0,fx1,fx2;doprintf(请输入x1,x2的值:n);scanf(%f,%f,&x1,&x2);fx1=x1*(2*x1-4)*x1+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;while(fx1*fx20);dox0=(x1+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;if(fx0*fx1)=1e-5);printf(方程的根是%6.2fn,x0);314解:#includemain()int i,j,k;for(i=0;iend)a10=n。

18、umber;elsefor(i=0;inumber)temp1=ai;ai=number;for(j=i+1;j#define M 6#define N 4void func(int a, int b, int c) int i=0,j=0,k=0;while(i#include#includevoid main() int i,base,len;char num20;float s=0;printf(输入数进制(小于等于16):);scanf(%d,&base);printf(该进制的一个整数:);scanf(%s,num);len=strlen(num);i=len-1;while(i=0。

19、)switch(numi)case A:case a:s=s+10*pow(float)base, (float)(len-i-1);break;case B:case b:s=s+11*pow(float)base, (float)(len-i-1);break;case C:case c:s=s+12*pow(float)base, (float)(len-i-1);break;case D:case d:s=s+13*pow(float)base, (float)(len-i-1);break;case E:case e:s=s+14*pow(float)base, (float)(le。

20、n-i-1);break;case F:case f:s=s+15*pow(float)base, (float)(len-i-1);break;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:s=s+(numi-0)*pow(float)base, (float)(len-i-1);break;i-;printf(十进制结果:%gnn,s);5.7解:#includechar itc(int n) char c;if(n=0 & n=1; j-)printf(%c,itc(numj);printf(n。

21、);513/ * 连接两个字符串(不用strcat)*/main()char s180,s240;int i=0,j=0;printf(n 请输入字符串1:);scanf(%s,s1);printf(n 请输入字符串2:);scanf(%s,s2);while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;printf(n 连接后字符串为:%s,s1);515解:void swap(int *p1,int *p2)int p;p=*p1;*p1=*p2;*p2=p;main()int n1,n2,n3;int *pointer_1,*pointer_2,*poi。

22、nter_3;printf(请输入三个整数 n1,n2,n3:);scanf(%d,%d,%d,&n1,&n2,&n3);pointer_1=&n1;pointer_2=&n2;pointer_3=&n3;if(n1n2) swap(pointer_1,pointer_2);if(n1n3) swap(pointer_1,pointer_3);if(n2n3) swap(pointer_2,pointer_3);printf(排序后三个整数为:%d,%d,%dn,n1,n2,n3);516解:/*n个人循环报数缝m退出,求最后一人是几号*/#define nmax 50main()int i,j,k,n,m,numnmax,*p;printf(请输入人数n:);scanf(%d,&n);printf(报数:);scanf(%d,&m);p。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值