欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    [理学]c语言综合复习题1答案新.doc

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

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

    [理学]c语言综合复习题1答案新.doc

    C语言程序设计习题第1章 C语言概述1-1.编写一个C程序,在DOS屏幕输出以下字符串: This is my first C !答案:#include “stdio.h”void main()阿嫂 printf(“This if my first C”);1-2.请根据自己的认识,写出C语言的主要特点。1-3.写出一个C程序的构成。头文件引用区全局变量定义区宏语句区函数(自定义)声明区main() 局部变量(包括数组、指针、结构体等变量)定义区 程序语句区,其中没对花括号的起始位置还可以定义局部变量。函数定义区1-4.C语言用途是什么?它和其他高级语言有什么异同?1-5.上机运行本章所有例题,熟悉所有系统的上机方法与步骤。第2章 数据类型与表达式2-1.选择题1C语言中的数据的基本类型包括()。A)整型、实型、字符型和逻辑型B)整型、实型、字符型和结构体C)整型、实型、字符型和枚举型D)整型、实型、字符型和指针型C2C语言中能用八进制表示的数据类型是()。A)字符型、整型B)整型、实型C)字符型、实型、双精度型D)字符型、整型、实型、双精度型A3下列变量名中合法的是()。A)B.C.TomB)3a6bC)_6a7bD)$BCC4.下列属于合法的语言字符常数是()。A)'97'B)"A"C)'t'D)"0"A5下列算术运算符中,只能用于整型数据的是()。A)-B)+C)/D)%D6以下叙述中正确的是()。)输入项可以是一个实型常量,如:scanf("%f",3.5)。)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d")。C)当输入一个实型数据时,格式控制部分可以规定小数点后的倍数,例如:scanf("%4.2f",&d)。D)当输入数据时,必须指明变量地址,例如:scanf("%f",&f)。D7若有以下程序段:int c1=2,c2=4,c3;c3=1.0/c2*c1;则执行后,c3中的值是()。A)0B)C)D)A8设x、y、z和k都是int型变量,则执行表达式:x=(y=52,z=26,k=32)后,x的值为()。A)4B)26C)32D)52C9以下程序的输出结果是()。main( ) int a=12,b=12; printf("%d%dn",-a,+b);A)10 11B)11 13C)11 10D)11 12B10若有以下定义和语句:int y=10;y+=y-=y-y;则y的值是()。A)10B)20)30D)40B11有变量说明语句int a,b,c;,顺序执行下面语句:a=b=c=1;+a|+b&&+c;那么,变量b的值应是()。A)2B)1C)0D)3B12设x,y,z均为int型变量,则执行以下语句后,x,y,z的值为()。x=1;y=0;z=2;y+&&+z|+x;A)2,1,3B)2,0,3)2,1,3)2,1,2D13已知字母A的ASCII码值为65,执行下面的程序:#include<stdio.h>main() char c1='B',c2='Y'printf("%d,%dn",+c1,-c2);则输出结果是()。A)66,89B)67,88C)B,YD)C,XB14以下程序中c的二进制值是( )。char a=3,b=6,c;c=ab<<2;A)00011011 B) 00010100 C) 00011100 D) 0001100015以下语句的输出结果是()。int a=2,b=3;printf(a>b?"*a=%d":"#b=%d",a,b);A)输出控制格式错误)*a=2)#b=2)#b=3C2-2.填空题1有表达式"20<x30",用C语言正确描述它应该是( x>20&&x<=30)。2表达式a=1,a+=1,a+1,a+的值是( 4)。3设int x=4,y=2;,那么表达式(x>>2)/(y>>1)的值是()。4请写出以下数学式的C语言表达式()。5若有以下定义:char a;unsigned int b;float c;double d;则表达式a*b+d-c值的数据类型为(double)。6以下程序的输出结果是( 10,11)。main() int x=10,y=10; printf("%d,%d",x-,+y);7执行下列程序时输入:1 2 3456789,输出结果是(1,2,3456789)。main() char s100; int c,i scanf("%c",&c); scanf("%d",&i); scanf()%s",&s); printf("%c,%d,%sn",c,i,s); 2-3.程序题1写出以下程序的运行结果:e、t的ascii码值为101、116main() char c1='a',c2='b',c3='c',c4='101',c5='116'printf("a%cb%ctc%ctabcn",c1,c2,c3);printf("tb%c%c",c4,c5);结果为:aabb cc abcAN2写出以下程序的运行结果:main() int i,j,m,n;i=8;j=10;m=+i;n=j+;printf("%d,%d,%d,%d",i,j,m,n);结果为:9,11,9,103将"College"译成密码。密码规律:用原来的字母后面第2个字母代替原来的字母,例如,字母"A"后面第个字母是"C",用"C"代替"A"。因此,"College"应译为"Eqnngig"。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5、c6、c7七个变量的值分别为 "C"、"o"、"l"、"l"、"e"、"g"、"e"。经过运算,使c1、c2、c3、c4、c5、c6、c7分别变为""、"q"、"n"、"n"、"g"、"i"、"g"输出。方法一:完全符合原题要求#include "stdio.h"void main() char c1,c2,c3,c4,c5,c6,c7; c1='C' c2='o' c3='l' c4='l' c5='e' c6='g' c7='e' c1+=2; c2+=2; c3+=2; c4+=2; c5+=2; c6+=2; c7+=2; printf("%c%c%c%c%c%c%c",c1,c2,c3,c4,c5,c6,c7); 方法二:用字符数组(因本章未学字符数组和循环,故不符合题意,但结果是一样的)#include "stdio.h"void main() char c="College" int i; for(i=0;i<7;i+) ci+=2; printf("%s",c);4编写程序,它接受键盘上输入的一个小写字母,然后将其转换大写字母输出。例如,输入a,输出A。程序如下:#include "stdio.h"void main() char c; printf("请输入一个小写字母"); c=getchar()-32; /c=getchar()-u+U; printf("转成大写字母"); putchar(c);第3章 顺序结构程序设计3-1.选择题1若以下选项中的变量已正确定义,则正确的赋值语句是( )A)x1=26.8%3; B)1+2=x2; C)x3=0x12; D)x4=1+2=3;C2设x,y均为float型变量,则以下不合法的赋值语句是( )A)+x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0;B3已知ch是字符型变量,下边正确的赋值语句是( ) A) ch='123' B)ch='xff' C)ch='08' D) ch=""B4若int a, b; scanf("%d%d", &a, &b); 不可以用( )作为输入的分隔符。A), B)空格 C)回车 D)TAB键A5阅读以下程序,当输入数据的形式是:25,13,10<CR>,正确的输出结果是( )。 main() int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d",x+y+z);A) x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值D3-2.填空题1. 以下程序的输出结果是_。main() int a=1124; double x=30.1415; printf("a=%+6d,a=%-6d,x=%f,x=%7.3f",a,a,x,x);a= +1124,a=1124 ,x=30.141500,x=30.1422以下程序的输出结果是_。 main() int x=10;float y=26.75; printf("%f",x+y);36.7500003若x为int型变量,则执行以下语句后x的值是_。 x=7; x+=x-=x+x; -144.有以下语句段 int n1=10,n2=20; printf("_",n1.n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=20答案是:n1=%dnn2=%d5.已知字符A的ACSII码值为65,以下语句的输出结果是_。 char ch='B'printf("%c %dn",ch,ch);B 663-3.编程题1.编程序,用getchar 函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型或整型?还是二者皆可?(2)要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量和字符型变量是否在任何情况下都可以互相代替?#include "stdio.h"void main() char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); printf("%c",c2); 2.设正方型的长a=3.12,宽b=5.36,求正方型周长,正方型面积。用scanf 输入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数字。#include "stdio.h"void main() float a,b,c,s; printf("输入长和宽"); scanf("%f%f",&a,&b); c=2*(a+b); s=a*b; printf("周长=%8.2ft面积=%8.2f",c,s);运行结果:周长=16.96 面积=16.723指出以下程序的错误并改正,并上机把程序调通。main() int a; scanf("%f", a); printf("a=%f , a); char c; c=A; printf("%f ,c) 改正后:main() int a; char c; scanf("%d", &a); printf("a=%d" , a); c='A' printf("%c" ,c); 第4章 选择结构程序设计4-1.编写电子词典主控程序,假定电子词典具有单词查询、增加词条、修改词条、删除词条等功能项,每个功能项暂用空语句代替或用printf()函数输出一些提示信息。#include<stdio.h>main() int n; char c; while(1) printf("nt*"); printf("nt* 1.单词查询 *"); printf("nt* 2.增加词条 *"); printf("nt* 3.修改词条 *"); printf("nt* 4.删除词条 *"); printf("nt* 0.退 出 *"); printf("nt*"); printf("nt请选择:"); scanf("%d",&n); if(n=1) printf("单词查询-"); else if(n=2) printf("增加词条-"); else if(n=3) printf("修改词条-"); else if(n=4) printf("删除词条-"); else if(n=0) printf("退出"); break; else printf("选择错误,请重新选择"); 4-2.屏幕功能选择。输入任意数字,将所选择的字符串打印出来。程序功能:模拟自动饮料机,按下合法按钮,可获得相应饮料。4-3.求分段函数y=f(x),f(x)的表达式如下: x2-1 (x<-1)f(x)= x2 (-1x1) x2+1 (x>1)#include "stdio.h"void main() float x,y; printf("请输入x的值:"); scanf("%f",&x); if(x<-1) y=x*x-1; else if(x>=-1&&x<=1) y=x*x; else y=x*x+1; printf("函数y的值=%10.2f",y); 4-4.某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元,3公里以外,2.1元/公里;富康8元,3公里以外,2.4元/公里;桑塔纳9元,3公里以外,2.7元/公里。编程:从键盘输入乘车的车型及行车公里数,输出应付的车资。#include "stdio.h"void main()float s,price;int type;printf("请输入车型(1、夏利 2、富康 3、桑塔纳):");scanf("%d",&type);printf("行车公里数为:");scanf("%f",&s);if(type=1) if(s>3) price=7+2.1*(s-3); else price=7;else if(type=2) if(s>3) price=8+2.4*(s-3); else price=8;else if(type=3) if(s>3) price=9+2.7*(s-3); else price=9;else printf("车型输入错误!");printf("出租车价格=%8.2f",price);4-5.现在是网络信息时代,很多市民通过电话上网。目前南京电信局的上网收费和付费方式分以下几类(以月为单位);(a)保月服务:小于30小时,60元/月,超过30小时的部分按5分/分钟累计(包括电话费),每月随电话费收费。(b)990用户:10分/分钟(包括电话费)。每月随电话费收费。(c)169用户:上网信息费7分/分钟,电话费21分/3分钟(不足3分钟按3分钟计),每月到电信局以现金方式收费或用卡付费。由键盘输入用户类别和上网时间,输出应付费用及相应的付费方式。#include "stdio.h"void main()#include "stdio.h"void main()int type,time1,time3,price;printf("请输入电信缴费类型(1、保月服务 2、990用户 3、169用户):");scanf("%d",&type);printf("上网时间(分钟):");scanf("%d",&time1);if(type=1) if(time1>30) price=60+5*(time1-30); else price=60;else if(type=2) price=10*time1;else if(type=3) printf("请输入通话时长(分钟)"); scanf("%d",&time3); price=7*time1+21*(time3/3);else printf("电信缴费用户类型输入错误!");printf("电信缴费总额=%d",price); 第5章 循环结构程序设计5-1.分析下面程序的运行结果(1) main() int i; for(i=1;i<=20;i+) if(i%3=0) printf("%dn",i); 结果为:369121518(2) main() int i,sum=0; for(i=0;i<3;+i) printf("%d sum=%dn",i,sum+=i); 结果为:0 sum=01 sum=12 sum=3(3) main() int i=0,j=1; do j+=i+; while(i<4); printf("%dn",i); 结果为:4(4) main() int i; for(i=1;i<=5;i+) printf("#%*dn",i,i); 结果为:#1# 2# 3# 4# 5(5) main() int x=1,total=0,y; while(x<=10) y=x*x; printf("%dn",y) total+=y; +x; printf("total is %dn",total); 结果为:149162536496481100total is 385(6) main() int i=3; while(i<10) if(i<6) i+=2; continue; else printf("i=%d",+i); 结果为:i=8i=9i=105-2. 打印输出个位数为6并且能被3整除的所有的5位数。要求用while、dowhile、 for语句分别实现。答案为:For语句#include "stdio.h"void main()int i;for(i=10006;i<100000;i+=1) if(i%10=6&&i%3=0) printf("%dt",i);5-3. 输入一行字符(以回车符结束),分别统计其中字母、数字、空格及其他字符的个数。答案为:#include "stdio.h"#include "string.h"void main()int i,sumchar=0,sumnum=0,sumspace=0,sumother=0;char c80;gets(c);for(i=0;ci!='0'i+) if(ci>='a' && ci<='z') |(ci>='A'&&ci<='Z') sumchar+=1; else if(ci>='0'&&ci<='9') sumnum+=1; else if(ci=' ') sumspace+=1; else sumother+=1;printf("n字符有%d个,数字有%d个,空格有%d个,其它有%d个。",sumchar,sumnum,sumspace,sumother); 5-4. 计算e的近似值:(设n=10)提示:编程时要注意1/2与1.0/2的区别。答案为:#include "stdio.h"void main()int i=1;float n=1,s=1;for(i=1;i<=10;i+)n=n*i;s=s+1/n;printf("ne的近似值=%f",s); 5-5. 编程求的值5-6. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:153是一水仙花数,因为153=1的立方+5的立方+3的立方。答案是:#include "stdio.h"void main()int i,n1,n2,n3;for(i=100;i<=1000;i+)n1=i/100%10;n2=i/10%10;n3=i%10;if(n1*n1*n1+n2*n2*n2+n3*n3*n3)=i) printf("%d是水仙花数t",i);5-7. 一个数如果恰好等于它的因子之和,这个数就是“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6 its factors are 1,2,3答案是:#include "stdio.h"void main()int i,j,k,s,a999;for(i=2;i<=1000;i+) s=0; for(j=1;j<i;j+) if(i%j=0) s+=j; if(s=i) s=0; printf("n%d its factors are ",i); for(j=1;j<i;j+) if(i%j=0) s+=j; if(s!=i) printf("%d,",j); else printf("%d",j); 5-8. 打印出如下形式的两种图案。 (1) * (2) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *答案是:(1)#include "stdio.h"void main()int i,j;for(i=1;i<=6;i+) printf("n"); for(j=1;j<=i;j+) printf("* "); (2)#include "stdio.h"void main()int i,j;for(i=6;i>=1;i-) printf("n"); for(j=1;j<=i;j+) printf("* "); 5-9. 一球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?答案是:#include "stdio.h"void main() float h=100,s=0; int i; for(i=1;i<=10;i+) s+=h; /此语句有问题 h=h/2; printf("小球第10次落地时共经过%f米,第10次反弹高度为%f",s,h); 5-10. 求之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。答案是:#include "stdio.h"void main() long int a,n,s=0; int i,k=1; printf("请输入a和n的值:"); scanf("%d%d",&a,&n); k=a; s=a; for(i=2;i<=n;i+) k=k*10+a; s+=k; printf("n+nn+nnn+nnnn+.的值为%ld",s); 第6章 数组6-1. 选择题1.以下关于数组的描述正确的是())数组的大小是固定的,但可以有不同的类型的数组元素)数组的大小是可变的,但所有数组元素的类型必须相同)数组的大小是固定的,所有数组元素的类型必须相同)数组的大小是可变的,可以有不同的类型的数组元素B.以下定义数组的语句中正确的是() )int a(10); )char str ; )int n=5; )#define size 10 int a4n; char str1size,str2size+2;D3.在定义int a;之后,对a的引用正确的是()A)a10 B)a6.3 C)a(6) D)a10-10D4.当调用函数时,实参是一个数组名,则向函数传送的是())数组的长度 )数组的首地址)数组每一个元素的地址 )数组每个元素中的值B5.以下只有在使用时才为该类型变量分配内存的存储类说明是())auto 和 static B) auto和register)register和static D) extern和 register6.执行下列程序时输入:空格空格回车,输出结果是()), ),), ),main( ) char s100;int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c ,%d, %sn", c, i ,s); D 7.执行下面的程序段后,变量k中的值为())不定值 )33 )30 )10 int k=3,s2; s0=k;k=s1*10;A8.下列程序执行后的输出结果是())you&me B)you C)me D)err main( ) char arr24; strcpy(arr,"you"); strcpy(arr1,"me"); arr03='&' printf("%sn",arr); A9. 定义如下变量和数组: int i; int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是() for(i=0;i3;i+) printf("%d",xi2-i);A)159 B)147 C)357 D)369C6-2.编程题有一个数组,内放10个整数,要求找出最小的数和它的下标。然后把它和数组中最前面的元素对换位置。答案是:#include "stdio.h"main( ) int a10=12,22,3,5,66,7,16,8,1,11; int i,k,t; t=a0; for(i=0;i<10;i+) if(ai<t) t=ai; k=i; ak=a0; a0=t; for(i=0;i<10;i+) printf("%dt",ai);2.打印出以下的杨辉三角形(要求打印行). . .答案是:#include "stdio.h"void main() int i,j,a1010=1; for(i=0;i<9;i+) printf("n"); ai+10=1; for(j=0;j<=i;j+) ai+1j+1=a

    注意事项

    本文([理学]c语言综合复习题1答案新.doc)为本站会员(音乐台)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开