欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计(第二版)知识题参备考资料答案解析1.doc

    • 资源ID:4538553       资源大小:707.84KB        全文页数:90页
    • 资源格式: DOC        下载积分:14金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要14金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计(第二版)知识题参备考资料答案解析1.doc

    ,C语言程序设计习题参考答案习 题 1一、判断题 1在计算机中,小数点和正负号都有专用部件来保存和表示。2二进制是由0和1两个数字组成的进制方式。3二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。4在整数的二进制表示方法中,0的原码、反码都有两种形式。5有符号数有三种表示法:原码、反码和补码。6常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。解:1F 2T 3T 4T 5T 6T二、单选题1在计算机中,最适合进行数值加减运算的数值编码是 。A. 原码 B. 反码 C. 补码 D. 移码2已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数 。A. 112 B. 120 C. 121 D. 1223关于ASCII码,在计算机中的表示方法准确地描述是 。A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4设在机器字长4位,X0111B,Y1011B,则下列逻辑运算中,正确的是_。A. XY1000 B. XY1111 C. XY0011 D. Y 10005下列叙述中正确的是( )。A高级语言就是机器语言 B汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序CC语言因为具有汇编语言的一些特性,所以是汇编语言的一种DC源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将( )。A生成可执行文件B生成目标文件C输出运行结果D自动保存源文件7下列叙述中不正确的是( )。Amain函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句解:1C 2C 3D 4B 5B 6B 7B三、填空题1(87.625)10=( )2=( )8=( )16 2(1001010111001.10111)2=( )8=( )16=( )10 3输入三个数,计算并输出三个数的和与三个数的乘积。 程序如下:#include <stdio.h> void main() int a,b,c,s,z; printf("Please input a b c:n"); s=a+b+c; printf("%dn",s); *4. 输入三角形三条边的边长,计算并输出三角形的面积。根据三条边的边长,计算三角形面积的公式如下:程序如下: #include <stdio.h> #include <math.h> void main() double x,y,z,s,dime; scanf("%lf%lf%lf",&x,&y,&z); dime=sqrt(s*(s-x)*(s-y)*(s-z); 解:11010111.101 127.5 57.A211271.56 12B9.B8 4793.71875 3scanf("%f%f%f",&a,&b,&c); z=a*b*c; printf("%f",z);4s=(x+y+2)/2; printf("%f",dim);四、编程题1仿照例1.1,编程序在屏幕上显示:* Merry Christmas! Happy New Year! * 解:#include <stdio.h> void main() printf("*n"); printf(" Merry Christmas!n"); printf(" Happy New Year!n"); printf("*n"); 2仿照例1.2编程,输入一个整数,计算这个数的平方。 解:#include<stdio.h> void main() int a,z; printf("请输入一个整数:n"); scanf("%d",&a); z=a*a; printf("%d*%d=%dn",a,a,z); *3仿照例1.3编程,输入两个数后,输出其中较小值。解:#include<stdio.h> float min(float x, float y) float m; if (x<y) m=x; else m=y; return m; void main() float a,b,c,mindata; printf("请输入二个数:n"); scanf("%f %f",&a,&b); mindata=min(a,b); printf("较小数:%fn",mindata); *4仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=0的解。解:#include<stdio.h> void main() float a,b,x; printf("请输入a、b:n"); scanf("%f %f",&a,&b); x=-a/b; printf("x=%fn",x); *5仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。解:#include <stdio.h> void main() float r,h,s,v; printf("Please input r and h:n"); scanf("%f %f",&r,&h); v=3.14*r*r*h; printf("V=%fn",v); 习 题2一、判断题1任何变量都必须要定义其类型。2C语言的double类型数据在其数值范围内可以表示任何实数。3C语言的任何类型数据在计算机内都是以二进制形式存储的。4isdigit(5)的结果为0。5printf函数中格式符“%c”对应的参数只能是字符类型。6按格式符“%d”输出float类型变量时,截断小数位取整后输出。7在C语言程序中,ABC与abc是两个相同的变量。8scanf函数中的格式符“%d”不能用于输入实型数据。9格式符“%f”不能用于输入double类型数据。10当格式符中指定宽度时,输出的信息完全取决于所指定的宽度。解:(1)T (2)F (3)T (4)F (5)F (6)F (7)F (8)T (9)T (10)F二、指出下列各项中哪些是C语言中的常量,并指出其类型10,150 007 0x3d 1e0 e1 o7o8x xo 1.52e0.5 sin(3) 0xf16 a 0091.414E+2 2.54 a+2 0x100h 0128 10L解:合法的C常量有: 整型常量: 007 0x3d 0xf16 10L 实型常量: 1e0 1.414E+2 字符型常量:x a 三、指出下列各项中哪些是C语言中的用户标识符x_1 X_2 High printf 3DS i/je2 e2 count Int number $23 next_sizeof IF sum_12 _123# NO1: double for解:C的用户标识符有:x_1 X_2 High e2 count Int number next_ IF sum_12 四、单项选择题1C语言中,char型数据在内存中的存储形式是( )。A原码 B反码 C补码DASCII码2若有定义语句“char c=72;”则变量c( )。A包含1个字符B包含2个字符 C包含3个字符 D定义不合法3C语言中的基本数据类型包括( )。A整型、实型、逻辑型B整型、实型、字符型C整型、逻辑型、字符型D整型、实型、逻辑型、字符型4设c1、c2为字符型变量,执行语句“c1=getchar( );c2=getchar( );”时,从键盘输入A,c1和c2的值分别为( )。A都是ABc1是A,c2未输入Cc1未输入,c2是ADc1是A,c2是n5a、b是整型变量,执行语句“scanf("a=%d,b=%d",&a,&b);”,使a和b的值分别为1和2,正确的输入是( )。A1 2B1,2Ca=1,b=2Da=1 b=26设c为字符型变量值为A,a为整型变量值为97,执行语句“putchar(c);putchar(a);”后,输出结果为( )。AAaBA97CA9DaA7已知字母A的ASCII码值为65,以下语句段的输出结果是( )。char c1=A,c2=Y; printf("%d,%dn",c1,c2);A输出格式非法,输出错误信息B65,90CA,YD65,898若要使用输入语句“scanf("%4d%4d%10f",&i,&j,&x);”,为i输入10,为j输入12,为x输入345.67,则正确的输入形式是( )。A1012345.67B10 12 345.67C10001200345.67D10,12,345.679能正确地定义符号常量的是( )。A#define n=10B#define n 10 C#define n 10; D#DEFINE N 1010在C语言中,int、char、short三种类型数据在内存中所占的字节数( )。A由用户自己定义 B均为2个字节 C是任意的 D由机器字长决定 解:(1) D (2) A (3) B (4) D (5) C (6) A (7) D (8) B (9) B (10) D五、填空题1char ch=$;float x=153.4523;语句“printf("%c%8.2fn",ch,x);”的输出结果是 。 解:$153.45 n2int i=123;float x= 1234.56789;语句“printf("i=%5d x=%7.3fn",i,x);”的输出结果是 。 解:i= 123 x=-1234.5683char c=a;int a=65; 语句“putchar(c+1);putchar(a);”的输出结果是 。 解:bA4int a=98; 语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的输出结果是 。 解:98,c,144,655int k; float f;语句“scanf(“%3d%*4d%6f”,&k,&f);”执行时输入 12345678765.43则 k= ,f= 。 解:k=123 f=8765.46使用pow()函数时,程序的开头必须写一条预处理命令: 。 解:#include <math.h>5填空题。 (1)int i=123,j=45; 函数printf("%d,%dn",i,j);的输出结果是 。 解:123,45 (2)int i=123; float x=-45.678; 语句printf("i=%5d x=%7.4fn",i,x); 的输出结果是 。 解:i= 123 x=-45.6780 (3)float alfa=60,pi=3习 题 3一、根据下列数学式,写出C的算术表达式。解:-(a2+b2)y4 的C表达式:-(a*a+b*b)*pow(y,4) 的C表达式:(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593) 的C表达式:sqrt(pow (fabs (sin(x),3.5) 的C表达式:pow(x,6)-exp(5) 的C表达式:(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)二、按照要求,写出下列C的表达式。 1写出int类型变量x为“奇数”的表达式。 解:x%2=1 2Int类型变量x、y、z,写出描述“x或y中有且仅有一个小于z”的表达式。 解:x<z&&y>=z|x>=z&&y<z 3将double类型变量y保留四位小数的表达式。 解:(int)(y*10000+0.5)/10000.0 4为变量s赋值:取变量x 的符号,取变量y的绝对值。 解:s=(x>=0?1:-1)*(y>=0?y:-y) 5条件“-5x3”所对应的C逻辑表达式。 解:-5<=x&&x<=3 6a、b是字符变量,已知a的值为大写字母、b的值为小写字母,写出判断a、b是否为同一字母(不区分大小写)的逻辑表达式 解:a+32=b 或 b-a=32?1:0 7int类型变量a、b均为两位正整数,写出判断a的个位数等于b的十位数、且b的个位数等于a的十位数的逻辑表达式。 解:a%10=b/10&&a/10=b%10 8写出判断某个人是否是成年人(年龄大于21),且不是老年人(年龄大于65)的逻辑表达式。 解:y>21&&y<=65 9写出取变量a、b、c中最大值的条件表达式。 解:(a>b?a:b)>c?(a>b?a:b):c 10若字符变量ch为小写字母,则将其转换为对应的大写字母。解:ch=ch>=a&&ch<=z?ch-32:ch三、单项选择题1设int x=3,y=4,z=5;,下列表达式中值为0的是( )。Ax&&yB.x<=y Cx|y+z&&yzD.!(x<y)&&!z|1)2已知x=10,ch=A,y=0;,则表达式“x>=y&&ch<B&&!y”的值是( )。A0B.1C“假”D“真”3判断char型变量c为数字字符的正确表达式为( )。A0<=c<=9 B0<=c&&c<=9 Cc>=0|c<=9 Dc>=0&&c<=94下列运算符中,优先级最低的是( )。A?:B&&C= =D*=5若有条件表达式“x?a+:b-”,则以下表达式中( )等价于表达式x。Ax=0Bx!=0Cx=1Dx!=16有定义int k=4,a=3,b=2,c=1;,表达式“k<a?k:c<b?c:a”的值是( )。A4B3C2D17执行下列程序段后,变量a,b,c的值分别是( )。int x=10,y=9,a,b,c;a=(-x= =y+)?-x:+y;b=x+;c=y;Aa=9,b=9,c=9Ba=8,b=8,c=10Ca=9,b=10,c=9Da=1,b=11,c=108有定义int a=9;,语句“a+=a =a+a;”执行后,变量的值是( )。A18B9C18D99设x和y均为int型变量,则语句“x+=y;y=xy;x =y;”的功能是( )。A把x和y按从小到大排列B把x和y按从大到小排列C无确定结果D交换x和y中的值10有定义double x=1,y;,表达式“y=x+3/2”的值是( )。A1B2C2.0D2.511设有定义int x;double y;,则下列表达式中结果为整型的是( )。A. (int)y+xB(int)x+y Cint(y+x) D(double)x+y12设有整型变量x,下列说法中,错误的是( )。A“5.0”不是表达式B“x”是表达式 C“!x”是表达式D“sqrt(x)”是表达式解:(1)D (2)B (3)B (4)D (5)B (6)D (7)B (8)C (9)D (10)C (11)A (12)A四、填空题。1设float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 值为 。 解:2.52设int x=2,y=3;,执行语句“x*=x+y”后x的值为 。 解:103设int x=17,y=5;,执行语句“x%=xy”后x的值为 。 解:54设 int a=6,b=4,c=2;,表达式 !(a-b)+c-1&&b-c/2 的值为 。 解:15设 int a=2,b=4,x,y;,表达式!(x=a)|(y=b)&&!(2-3.5) 的值为 。 解:06判断变量a、b是否绝对值相等而符号相反的逻辑表达式为 。 解:a=-b 7判断变量a、b中必有且只有一个为0的逻辑表达式为 。 解:a*b=0&&a+b!=08设int m=2,n=2,a=1,b=2,c=3;执行语句d=(m=a=b)&&(n=b>c);后,m和n的值分别为 。 解:m为0,n为29设int a=2;,表达式“a%2!=0”的值为 。 解:010设char c=y;,表达式“c>=a&&c<=z| c>=A&&c<=Z”的值为 。 解:111写出与代数式 (x+2)ex+2 对应的C表达式 。 解:(x+2)*exp(x+2)12设int a=2;执行语句a=3*5,a*4;后a的值为 。 解:15五、写出下列程序的输出结果。1#include <stdio.h>void main() unsigned k,n; scanf("%u",&n); /输入数据为:69 k=n%10*10+n/10; printf("n=%d k=%dn",n,k);解:n=69 k=962#include <stdio.h>void main() int x=2,y=3; x*=y+4;printf("%d,%dn",x,y);x/=y=5; printf("%d,%dn",x,y);x-=y%2; printf("%d,%dn",x,y);解:14,3 2,5 1,5 3#include <stdio.h>void main() int a, b; a=8; b=7;a=(a- =b+)? a%3 : a/3;printf("a=%d b=%dn",a,b);解:a=2 b=8六、程序填空题。1以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。例如输入1 2 3,输出a=2 b=3 c=1。 #include <stdio.h> void main() int a,b,c, ; printf(“Enter a,b,c:”); scanf(“%d%d%d”, ); ; a=b; b=c; ; printf(“a=%d b=%d c=%dn”,a,b,c); 解: t &a,&b,&c t=a c=t2以下程序不借助任何变量把a、b中的值进行交换。 #include <stdio.h> void main() int a,b; printf(“Input a,b:”); scanf(“%d%d”, ); a+= ; b=a- ; a- = ; printf(“a=%d b=%dn”,a,b); 解: &a,&b b b b七、编程题。1输入3个字符后,按各字符ASCII码从小到大的顺序输出这些字符。 解:#include <stdio.h> void main() char c1,c2,c3,t,min,mid,max; c1=getchar(); c2=getchar(); c3=getchar(); min=(t=c1<c2?c1:c2)<c3?t:c3; max=(t=c1>c2?c1:c2)>c3?t:c3; mid=c1+c2+c3-min-max; putchar(min); putchar(mid); putchar(max);2输入两点坐标(x1,y1)、(x2,y2),计算并输出两点间的距离。 解:#include <stdio.h>#include <math.h>void main() double x1,y1,x2,y2,d; printf(“请输入两点坐标 (x1,y1),(x2,y2)n”); scanf(“(%lf,%lf),(%lf,%lf)”,&x1,&y1,&x2,&y2); d=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); printf(“两点间距离=%fn”,d); 3编写程序,计算球体积并输出它的值。要求输入半径值,计算结果保留三位小数。 解:#include <stdio.h> #include <math.h> #define PI 3.1415926 void main() double r,gv; printf(“请输入半径值:n”); scanf(“%lf”,&r); gv=4.0/3*PI*pow(r,3); printf(“半径为%f的球的体积为:%.3fn”,r,gv); 4输入三角形的底和高,求三角形面积。解:#include <stdio.h>#define PI 3.14159void main() double a,h,s; printf(“请输入三角形的底,高n”); scanf(“%lf,%lf”,&a,&h); s=a*h/2; printf(“三角形面积=%fn”,s);5编写程序,输入一个实数后输出该数的绝对值。解:#include <stdio.h>void main() double x,y; printf(“请输入一个实数n”); scanf(“%lf”,&x); y=x>=0?x:-x; printf(“|%g|=%gn”,x,y);6输入梯形的上底、下底和高,求梯形面积。解:#include <stdio.h>void main() double a,b,h,s; printf(“请输入梯形的上底,下底,高n”); scanf(“%lf,%lf,%lf”,&a,&b,&h); s=(a+b)*h/2; printf(“ 梯形面积=%fn”,s);7. 输入矩形的边长,求矩形面积。解:#include <stdio.h>void main() double a,b,s; printf(“请输入矩形的长,宽n”); scanf(“%lf,%lf”,&a,&b); s=a*b; printf(“ 矩形面积=%fn”,s);8. 已知等差数列的第一项为a,公差为d,求前n项之和,a、d、n由键盘输入。解:#include <stdio.h>void main() int a,d,n,sum; printf(“请输入等差数列的首项 公差 项数n”); scanf(“%d%d%d”,&a,&d,&n); sum=a*n+n*(n-1)*d/2; printf(“ sum=%dn”,sum);9. 编写程序,将d天h小时m分钟换算成分钟,输入d、h、m,输出换算结果。解:#include <stdio.h>void main() int d,h,m,t; printf(“请输入天 小时 分钟n”); scanf(“%d%d%d”,&d,&h,&m); t=d*24*60+h*60+m; printf(“%d天%d小时%d分钟=%d分钟n”,d,h,m,t);10. 编写程序,求出给定半径r的圆以及内接正n边形的面积,输出计算结果。r和n的值由键盘输入。解:#include <stdio.h>#include <math.h>#define PI 3.14159void main() double r,s1,s2; int n; printf(“Input r nn”); scanf(“%lf%d”,&r,&n); s1=PI*r*r; s2=n/2.0*r*r*sin(2*PI/n); printf(“圆面积=%f,正内接%d边形面积=%fn”,s1,s2);习 题 4一、单项选择题 1下列语句将小写字母转换为大写字母,其中正确的是( )。Aif(ch>=a&ch<=z)ch=ch-32;Bif(ch>=a&&ch<=z)ch=ch-32;Cch=(ch>=a&&ch<=z)?ch-32: ;Dch=(ch>a&&ch<z)?ch-32:ch;2下列各语句中,能够将变量u、s中最大值赋给变量t的是( )。Aif(u>s)t=u;t=s;Bt=s;if(u>s)t=u;Cif(u>s)t=s;else t=uDt=u;if(u>s)t=s;3假设变量x、k都已定义,下列语句片段中,无语法错误的是( )。A. switch(x) case x>=90: putchar(A); case x<60: putchar(E); B. switch(x) case 1+2: k=A; defualt: k=E; case 2*4: k=B; C. switch(x) case 2+x: k=x-2; case 3*x: k=x+3; default: k=0; D. switch(x) case 3.5: k=0.5*x; case 7.8: k=8*x; default: k=0; *4与语句while(!s )中的条件等价的是( )。As=0Bs!=0Cs=1Ds=05下列语句中,哪一个可以输出26个大写英文字母( )。Afor(a=A;a<=Z;printf("%c",+a);Bfor(a=A;a<Z;a+)printf("%c",a);Cfor(a=A;a<=Z;printf("%c",a+);Dfor(a=A;a<Z;printf("%c",+a);6判断下面的while循环体的执行次数( )。i=0;k=10;while( i=8 ) i=k;A8次B10次C2次D无数次 解:(1) B (2) B (3) B (4) A (5) C (6) D二、写出下列程序的输出结果 1#include <stdio.h> void main() char x; int n=0,k=0;while(x=getchar()!=#)/运行时输入:a the ftheth e there#switch(x) case t: k+; break; case h: if(k=1) k+; break; case e: if(k=2) k+; break; default: k=0; if(k=3) n+; printf("%dn",n); 解:3*2#include <stdio.h>void main( ) int k=0; char c=A;do switch (c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; break; case E: k=k*10; break; default: k=k/3; k+;while(c<G);pr

    注意事项

    本文(C语言程序设计(第二版)知识题参备考资料答案解析1.doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开