1、习题和模拟试题答案第1章 C语言编程概述基础篇一、选择题1B2C3B 4A5A6A 7A 二、填空题1顺序 选择 循环23常量 变量 函数 用户自定义类型4/* */5 ;6函数提高篇一、选择题1A2B 3B 4B二、填空题1UNIX 2ASCII3.C .OBJ .EXE 4连接第2章 基本数据类型和简单程序设计基础篇一、选择题1C2B 3A 【解析】B选项中5e2.5非法,C选项中do是C语言的保留字,D选项中的用户标识符2_and以数字开头,都是非法的。4B 5B6C7C8A9C10C二、填空题1double x=7,y=7; 2构造数据类型 浮点型34自动转换 强制转换55.060三、
2、判断题123456789101112四、写出下面程序的运行结果。1n=1.00000027五、编写程序1有两个浮点数a=5.2,b=3.1,计算并输出它们的和、差、积、商。main( )float a=5.2,b=3.1; printf(%f, %f, %f, %f,a+b,a-b,a*b,a/b);2已知笑脸字符的ASCII值为1,编程输出三个笑脸字符。main( )char c=1;printf(%c,c);printf(%c,c);printf(%c,c);提高篇一、选择题1C2D 【解析】因为285是一个非法的八进制常量3A7B8B4A 【解析】sum是变量,main和printf是函
3、数名称。二、填空题10x4b 0113 0165 117 61 0x3d22.5 2.32 310 9.7 9 10 40 0.8 (int)(a+b)%a三、写出下面程序的运行结果。1ab 123aAA bBB2xabcdehjk四、编写程序1有一个字符变量c=F,将其转换为小写字母后输出。main( )char c=F; c=c+32; printf(%c,c);第3章 运算符与表达式基础篇一、选择题1D2D3B4B 5D6B7D8D9A10A11C12B13D14C15B 16B17D18C19B二、填空题1900 2132 4.000000 4365406float a1=1,a2=1
4、; 7;8c=a a=b b=c 912 14 103 711自左向右 自右向左123三、判断题123456四、写出下面程序的运行结果。1981572y=10,x=632 42 84. 6020x=18 b=18x=3 b=3提高篇一、选择题1D2B38B4A5B6C7A8C二、填空题148.82fabs(x)+fabs(b) fabs(a+b)373.1 7.2 三、写出下面程序的运行结果。1892x=6x=7,y=7x=6,y=7四、程序填空1a/10%10100=t第4章数据的输入输出基础篇一、选择题1B2C3A4D 5C 6B 7B 8D9D10B二、填空题1 %6x %o %3c %
5、10.3f %8s2 %d3i=10,j=20三、判断题12345四、写出下面程序的运行结果。1a=1234a= 1234a=001234a=1234f=3.141593f=3.1416c=Ac=412c1 is 1, c2 is 2, m is 34 f is 567.0000003a=63,b=77,c=119a=77,b=115,c=167a=3f,b=4d,c=774BBB5Internet,Internet,Internet Internet,Internet ,Internet五、编写程序1读入正方形边长a,求面积。main() int a,s;scanf(%d,&a);s=a*a
6、;printf(%d n,s);2设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。main()float r,h;scanf(%f%f,&r,&h);printf(圆周长为:%.2f n,2*3.14*r);printf(圆面积为:%.2f n,3.14*r*r);printf(圆球体积为:%.2f n,4.0/3*3.14*r*r*r);printf(圆柱体积为:%.2f n,3.14*r*r*h);提高篇一、选择题1D2A3D二、填空题1 H C三、写出下面程序的运行结果。1ch=G,c1
7、=H,c2=F2x=10,x=10,x=12,x=a,x=10 (假设表示一个空格)四、下列各程序段都存在语法或逻辑错误,请标明并说明原因。 1main() int i1 , j , k ; scanf(%3d%3d%3d i1 , j , k) ;/*变量名前应加&运算符,改为:scanf(%3d%3d%3d,& i1 ,& j ,&k) ; */ printf(%d,%d, i1 , j , k) ;/*%格式符应与输出项的个数相等,改为:printf(%d,%d,%d, i1 , j , k) ;*/ 2main() int a , b ; /*变量x应先定义,后使用,在此处添加语句 :
8、float x;*/ scanf(%d,%d, &a,&b) ; x=a/b; printf(x=%f, x) ; 3main() int x , y ; scanf(%d,%d, x , y) ;/*变量名前应加&运算符,改为:scanf(%d,%d, &x , &y) ;*/ if (x=y) printf(“x=y”); printf(xy) ;/*根据题意,上一行的语句应为: else printf(xy) ;*/ 五、编写程序1 输入两个数,输出较小的数。main() int a,b ; scanf(%d%d,&a,&b) ; printf(%dn, a0?a+b:ab) ; 3输入
9、两个八进制整数,以十进制形式输出它们的和。main() int a1,a2;scanf(%o%o,&a1,&a2);printf(%d n,a1+a2);4输入两个实数a,b,交换它们的值后输出。main() float a1,a2,x;scanf(%f%f,&a1,&a2);x=a1;a1=a2;a2=x;printf(%f %f n,a1,a2);第5章控制语句51关系表达式和逻辑表达式基础篇一、选择题1C2D3D4D5D6B7C8A9D10B11D二、填空题1!21030 1 141 1 0 1 1 0 1 1 0提高篇一、选择题1B2D3A4B5D6D二、填空题1pow(x,3)42(
10、1)ac&bc(2)ac|bc(3)a%2= =1(4)a%b!=0(5)a=1&a=0&a=A&a=y?x:y;3其前面最近的未曾配对的if三、写出下面的程序结果1102b四、程序填空(n%3= =0)五、编写程序1输入一个整数,判断它是奇数还是偶数。main() int n;scanf(%d,&n);if(n%2= =1) printf(ji shu n);else printf(ou shu);提高篇一、选择题1C2A3A4B5C二、填空题1923 1 13(1)5 5 4 (2)5 5 4 (3)3 3 4三、写出下面的程序结果112s=2,t=331四、程序填空1(ab)(ac)(b
11、c)2a:b;max:c;a:b;min:c;五、编写程序1编制一个C程序,计算并输出下列分段函数值:(其中x由键盘输入) x2+2x6 x0,x3y= x25x+6 0x10,x2,x3 x2x15 x=3,x=2,x=3,x10main() int x,y;scanf(%d,&x);if(x0&x!=-3) y=x*x+2*x-6;if(0=x&x=10) y=x*x-x-15;printf(%dn,y);2输出一元二次方程ax2bxc0的根。(a不等于0)#include main() int a,b,c ,d;scanf(%d%d%d,&a,&b,&c);d=b*b-4*a*c;if(
12、d0) printf(%f%fn,(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);if(d= =0) printf(%fn,-b/(2*a);if(d0) printf(wu shi shu jie n);53开关语句switch一、选择题1B2A3C4C5A二、填空题182break三、写出下面程序的运行结果。1a=2,b=12VeryGoodGoodVeryGoodFailPassPass54 for循环基础篇一、选择题1A2D3C4C二、填空题continuebreak三、写程序结果110 20 30 40 5021 1 2 3 5 8 13 213 sum=6四
13、、程序填空1s=s*i2year%400= =0 year%100!=0 count+五、编写程序1求200300之间7的倍数的和。main( )int i,s=0;for(i=200;i=300; i+)if(i%7= =0) s=s+i;printf(%dn,s);2从0开始,输出n个连续的偶数。main( )int i,n;scanf(%d,&n);for(i=1;i=n; i+)printf(%dn,(i-1)*2);3按公式 s(n)=12+22+.+n2 ,编写计算并输出s值,其中的n值由键盘输入。main( )int i,n,s;scanf(%d,&n);for(i=1;i=n;
14、 i+)s=s+i*10+2;printf(%dn,s);提高篇一、 选择题1D2A3B二、 写出下面程序的运行结果1s=302*#*#*#$31 3 046三、 程序填空1f3四、 编写程序1编写一程序,从键盘输入10个实数,计算并输出算术平均值。 main( )float x,s=0; int i;for(i=1;i=10; i+)scanf(%f,&x);s=s+x;printf(%fn,s/10);32输入20个数,统计非负数个数并计算非负数之和。 main( )int i,n=0,s=0,x;for(i=1;i=0) n+; s+=x; printf(%d%dn,n,s);55 wh
15、ile和do while循环基础篇一、选择题1A2D3B4B二、判断题1234三、写出下面程序的运行结果173165四、程序填空1x!=-1xamin五、编写程序1分别用for语句、while语句、dowhile语句求解1100的累计和。main( )int s=0,i=1;for(;i=100;i+)s=s+i;printf(%dn,s);main( )int s=0,i=1;while(i=100)s=s+i+;printf(%dn,s);main( )int s=0,i=1;dos=s+i+;while(i=100);printf(%dn,s);提高篇一、选择题1D2C3D4C5C6B7
16、C二、写出下面程序的运行结果16 0 62(1)qwert(2)rxfsu(3) qwert?三、程序填空d=1.0;k+;(k=n)四、编写程序输入20个数,输出其中最大的数。main( )int max,i=1,x;scanf(%d,&x);max=x;do scanf(%d,&x);if(maxx) max=x;i+;while(i=19);printf(%dn,max);第六章 数组61 数值型数组基础篇一、填空题1 int men10;float step4 = 1.9, -2.33, 0, 20.6;int grid410;2 int array10 = 9,4,7,49,32,-
17、5;0 9scanf(%d,&array1);array0 = 39; array0 = array5 + array3;3(1)3 (2)5 (3)8 (4)9(5)94 int a10=9,4,12,8,2,10,7,5,1,3; 0 9885j=0 j10 sum=sum+sj二、选择题1B2D3D4C5C6B7C8C9C10D11D三、判断题123456789四、写程序结果1s=15五、程序填空1&aiave=ave+ai六、编写程序1定义一个3行4列的整型数组,将数组每个元素的值设置为行和列下标的和。main()int array34;int i,j;for(i=0;i3;i+)fo
18、r(j=0;j4;j+)arrayij=i+j;printf(%dt, arrayij);提高篇一、选择题1D2B3A二、请改正下面程序的错误1int i,j,list(10); 改为 int i,j,list10; for(i=0,i10,i+) 改为 for(i=0;i=0,j-) 改为 for(j=9;j=0;j-)三、写出下面程序的运行结果1 -5.77 212 4 0 0 -4 -3四、程序填空120 20 &arrayi 19 max=arrayi; min=arrayi; sum+arrayi sum/20五、编写程序1数组x有十个元素,编程将其元素首尾颠倒。(即第一个元素与最后
19、一个元素交换,第二个元素与倒数第二个元素交换)main()int a10=5,65,654 ,5 ,5 ,56,588,77,58,5,j,x;for(j=0;j5;j+)x=aj; aj=a9-j; a9-j=x;for(j=0;j= 0& si= 9六、编写程序求数组int a20中奇数的个数和平均值,以及偶数的个数和平均值。main() int a20 ,i,m,n,s1=0,s2=0; for(i=0;i= A& an =A&stri =a&striz) stri+=1; puts(str);2统计输入的一串字符(假设以n结束)中,大写字母A,B,.,Z各出现的次数。(提示,用一个数组
20、count26计数各个字母出现的次数,count0表示A出现的次数,count1表示B出现的次数,.,count25表示字母Z出现的次数。初始时count的各元素值为0。以后,每读入一个字符ch ,若它是一个大写字母,就让相应计数单元countch-A加1。)main( )int count26 ,i; char ch80;for(i=0;i26;i+) counti=0; gets(ch); for(i=0;i =A&chi=Z) countchi- A+; for(i=0;i26;i+) printf(%c %dt, A+i,counti);第7章 函数一、选择题1D2D3B4D5C6B7
21、B8B9C10B11C12D13B14A15A16D二、填空题17 32auto3函数调用4局部变量5return6auto extern register static7外部8递归99三、判断题1 23456789101112131415四、写出下面程序的运行结果。1 * * * *215 3003x=3,y=4,n=74good! pass! bad! well!五、程序填空1int int result2n=1 1.0/(n*n) sqrt(6*s)3return 0 gets(str) num+4-f m六、请写出下面每个函数的功能1 比较两个正数a和b的大小,若a大于b,则返回1,若
22、a等于b,则返回0,若a小于b,则返回-1。2求出从键盘上输入的n个常数的平方和并返回。2 计算1+x+x2+x3+xn的值并返回。第8章 文件一、选择题1B2C3B4B5B6A7C8C9B10B11D12A二、填空题1fputs(A,fp)2fputs(Hello,fp)3fprintf(fp,%d %d,23,567);4 rw a三、程序填空1fopen(c.dat,w) ch , fp四、写出以下程序的功能:1输入若干浮点数,输出到文件“dada.dat”文件中,输入负数时结束输入。第9章 编译预处理一、选择题1A2B3A4B5B6D二、填空题1#define EOF -1 2#inc
23、lude #include 3#define DX(x) (x) =A&(x)=Z?(x) +32 : (x)第10章 指针一、选择题1D2C3D4B5A6C7D8D9B10B11C12C13B14D15A16D17D18B19C20D21B22B23C24B25B26C27C二、填空题1262首地址31012134指针变量三、判断题1234567四、写出下面这个程序的输出结果:1 ABCDEFGHIJKLEFGHIJKABFDEFGHIJKLABFDEFGHI2a=36,b=16,c=193n1=1,n2=64i=10,j=25i=156s=24五、程序填空1pa+10 *p= =x2p=a; *p3&xi
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100