收藏 分销(赏)

C语言第二版王森上机指导习题答案.doc

上传人:丰**** 文档编号:4881670 上传时间:2024-10-17 格式:DOC 页数:21 大小:88.04KB
下载 相关 举报
C语言第二版王森上机指导习题答案.doc_第1页
第1页 / 共21页
C语言第二版王森上机指导习题答案.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述
习题和模拟试题答案 第1章 C语言编程概述 〖基础篇〗 一、选择题 1.B 2.C 3.B 4.A 5.A 6.A 7.A 二、填空题 1.顺序 选择 循环 2.\ 3.常量 变量 函数 用户自定义类型 4./* */ 5. ; 6.函数 〖提高篇〗 一、选择题 1.A 2.B 3.B 4.B 二、填空题 1.UNIX 2.ASCII3..C .OBJ .EXE 4.连接 第2章 基本数据类型和简单程序设计 〖基础篇〗 一、选择题 1.C 2.B 3.A 【解析】B选项中5e2.5非法,C选项中do是C语言的保留字,D选项中的用户标识符2_and以数字开头,都是非法的。 4.B 5.B 6.C 7.C 8.A 9.C 10.C 二、填空题 1.double x=7,y=7; 2.构造数据类型 浮点型 3.①②③⑦⑧⑨⑩ 4.自动转换 强制转换 5.5.0 6.\0 三、判断题 1.× 2.× 3.× 4.× 5.× 6.√ 7.√ 8.× 9.× 10.× 11.× 12.× 四、写出下面程序的运行结果。 1.n=1.000000 2.7 五、编写程序 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); } 〖提高篇〗 一、选择题 1.C 2.D 【解析】因为285是一个非法的八进制常量 3.A 7.B 8.B 4.A 【解析】sum是变量,main和printf是函数名称。 二、填空题 1.0x4b 0113 0165 117 61 0x3d 2.2.5 2.32 3.10 9.7 9 10 4.0 0.8 (int)(a+b)%a 三、写出下面程序的运行结果。 1.\ab 123 aAA bBB 2.xšabšcšššde hššššššjšššk 四、编写程序 1.有一个字符变量c='F',将其转换为小写字母后输出。 main( ) {char c='F'; c=c+32; printf("%c",c); } 第3章 运算符与表达式 〖基础篇〗 一、选择题 1.D 2.D 3.B 4.B 5.D6.B 7.D8.D9.A 10.A 11.C 12.B 13.D 14.C 15.B 16.B 17.D 18.C 19.B 二、填空题 1.900 2.1 3.2 4.000000 4.36 5.40 6.float a1=1,a2=1; 7.; 8.c=a a=b b=c 9.12 -14 10.3 7 11.自左向右 自右向左 12.-3 三、判断题 1.× 2.√ 3.× 4.√ 5.× 6.× 四、写出下面程序的运行结果。 1.9 8 15 7 2.y=10,x=6 3.2 4 2 8 4. 60 20 x=18 b=18 x=3 b=3 〖提高篇〗 一、选择题1.D2.B38.B4.A 5.B6.C7.A8.C 二、填空题 1.48.8 2.fabs(x)+fabs(b) fabs(a+b) 3.73.1 7.2 三、写出下面程序的运行结果。 1.šš8šš9 2.x=6 x=7,y=7 x=6,y=7 四、程序填空 1.a/10%10 100=t 第4章  数据的输入输出 〖基础篇〗 一、选择题 1.B 2.C 3.A 4.D 5.C 6.B 7.B 8.D 9.D 10.B 二、填空题 1. "%6x" "%o" "%3c" "%10.3f" "%8s" 2. "%d" 3.i=10,j=20 三、判断题 1.× 2.× 3.× 4.√ 5.× 四、写出下面程序的运行结果。 1.a=1234 a= 1234 a=001234 a=1234 f=3.141593 f=3.1416 c=A c=41 2.c1 is 1, c2 is 2, m is 34 f is 567.000000 3.a=63,b=77,c=119 a=77,b=115,c=167 a=3f,b=4d,c=77 4.BBB 5.Internet,Internet,Internet Internet,Internet ,Internet 五、编写程序 1.读入正方形边长a,求面积。 main() { int a,s; scanf("%d",&a); s=a*a; 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); } 〖提高篇〗 一、选择题 1.D 2.A3.D 二、填空题 1. H C 三、写出下面程序的运行结果。 1.ch=G,c1=H,c2=F 2.x=š10,x=10šššš,x=šššš12,x=ššššša,x=šššš10 (假设š表示一个空格) 四、下列各程序段都存在语法或逻辑错误,请标明并说明原因。 1.main() { 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) ;*/ } 2.main() { int a , b ; /*变量x应先定义,后使用,在此处添加语句 :float x;*/ scanf("%d,%d", &a,&b) ; x=a/b; printf("x=%f", x) ; } 3.main() int x , y ; scanf("%d,%d", x , y) ; /*变量名前应加&运算符,改为:scanf("%d,%d", &x , &y) ;*/ if (x>=y) printf(“x>=y”); printf("x<y") ; /*根据题意,上一行的语句应为: else printf("x<y") ;*/ } 五、编写程序 1. 输入两个数,输出较小的数。 main() { int a,b ; scanf("%d%d",&a,&b) ; printf("%d\n", a<b?a:b) ; } 2.输入a和b,计算a+|b|的值。 main() { int a,b ; scanf("%d%d",&a,&b) ; printf("%d\n", b>0?a+b:a-b) ; } 3.输入两个八进制整数,以十进制形式输出它们的和。 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章  控制语句 5.1关系表达式和逻辑表达式 基础篇 一、选择题 1.C 2.D 3.D 4.D 5.D. 6.B 7.C 8.A 9.D 10.B 11.D 二、填空题 1.! 2.10 3.0 1 1 4.1 1 0 1 1 0 1 1 0 提高篇 一、选择题 1.B 2.D 3.A 4.B 5.D 6.D 二、填空题 1.pow(x,3)>4 2.(1)a<c&&b<c (2)a<c||b<c (3)a%2= =1 (4)a%b!=0 (5)a<=0&&(int)a= =a (6)a>=1&&a<=10 (7)(a%3= =0 ||a%5= =0)&&a%7!=0 (8)a>='0'&&a<='9' (9)a>='A'&&a<='Z' 3.1 0 1 5.2条件语句if 基础篇 一、选择题 1.D 2.D 3.A 4.D 5.B 二、填空题 1.复合语句 2.max=x>=y?x:y; 3.其前面最近的未曾配对的if 三、写出下面的程序结果 1.10 2.b 四、程序填空 (n%3= =0) 五、编写程序 1.输入一个整数,判断它是奇数还是偶数。 main() { int n; scanf("%d",&n); if(n%2= =1) printf("ji shu \n"); else printf("ou shu"); } 提高篇 一、选择题 1.C 2.A 3.A 4.B 5.C 二、填空题 1.9 2.3 1 1 3.(1)5 5 4 (2)5 5 4 (3)3 3 4 三、写出下面的程序结果 1.1 2.s=2,t=3 3.1 四、程序填空 1. (a>b) (a>c) (b>c) 2.a:b; max:c; a:b; min:c; 五、编写程序 1.编制一个C程序,计算并输出下列分段函数值:(其中x由键盘输入) x2+2x-6 x<0,x≠-3 y= x2-5x+6 0≤x<10,x≠2,x≠3 x2-x-15 x=-3,x=2,x=3,x≥10 main() { int x,y; scanf("%d",&x); if(x<0&&x!=-3) y=x*x+2*x-6; if(0<=x&&x<10&&x!=2&&x!=3) y=x*x-5*x+6; if(x= =-3||x= =2||x= =3||x>=10) y=x*x-x-15; printf("%d\n",y); } 2.输出一元二次方程ax2+bx+c=0的根。(a不等于0) #include <math.h> main() { int a,b,c ,d; scanf("%d%d%d",&a,&b,&c); d=b*b-4*a*c; if(d>0) printf("%f%f\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)); if(d= =0) printf("%f\n",-b/(2*a)); if(d<0) printf("wu shi shu jie \n"); } 5.3开关语句switch 一、选择题 1.B 2.A 3.C 4.C 5.A 二、填空题 1.8 2.break 三、写出下面程序的运行结果。 1.a=2,b=1 2.VeryGood Good VeryGood Fail Pass Pass 5.4 for循环 基础篇 一、选择题 1.A 2.D 3.C 4.C 二、填空题 continue break 三、写程序结果 1.10 20 30 40 50 2.1 1 2 3 5 8 13 21 3. sum=6 四、程序填空 1.s=s*i 2.year%400= =0 year%100!=0 count++ 五、编写程序 1.求200~300之间7的倍数的和。 main( ) {int i,s=0; for(i=200;i<=300; i++) if(i%7= =0) s=s+i; printf("%d\n",s); } 2.从0开始,输出n个连续的偶数。 main( ) {int i,n; scanf("%d",&n); for(i=1;i<=n; i++) printf("%d\n",(i-1)*2); } 3.按公式 s(n)=12+22+......+n2 ,编写计算并输出s值,其中的n值由键盘输入。 main( ) {int i,n,s; scanf("%d",&n); for(i=1;i<=n; i++) s=s+i*10+2; printf("%d\n",s); } 提高篇 一、 选择题 1.D 2.A 3.B 二、 写出下面程序的运行结果 1.s=30 2.*#*#*#$ 3.1 3 0 4.6 三、 程序填空 1.f3 四、 编写程序 1.编写一程序,从键盘输入10个实数,计算并输出算术平均值。 main( ) {float x,,s=0; int i; for(i=1;i<=10; i++) {scanf("%f",&x); s=s+x; } printf("%f\n",s/10); } 3. 2.输入20个数,统计非负数个数并计算非负数之和。 main( ) {int i,n=0,s=0,x; for(i=1;i<=20; i++) {scanf("%d",&x); if(x>=0) { n++; s+=x; } } printf("%d%d\n",n,s); } 5.5 while和do while循环 基础篇 一、选择题 1.A 2.D 3.B 4.B 二、判断题 1.× 2.√ 3.√ 4.√ 三、写出下面程序的运行结果 1.73165 四、程序填空 1.x!=-1 x<amin 五、编写程序 1.分别用for语句、while语句、do-while语句求解1~100的累计和。 main( ) {int s=0,i=1; for(;i<=100;i++) s=s+i; printf("%d\n",s); } main( ) {int s=0,i=1; while(i<=100) s=s+i++; printf("%d\n",s); } main( ) {int s=0,i=1; do s=s+i++; while(i<=100); printf("%d\n",s); } 提高篇 一、选择题 1.D 2.C 3.D 4.C 5.C 6.B 7.C 二、写出下面程序的运行结果 1.6 0 6 2.(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(max<x) max=x; i++; }while(i<=19); printf("%d\n",max); } 第六章 数组 6.1 数值型数组 基础篇 一、填空题 1. int men[10]; float step[4] = {1.9, -2.33, 0, 20.6}; int grid[4][10]; 2. int array[10] = {9,4,7,49,32,-5}; 0 9 scanf("%d",&array[1]); array[0] = 39; array[0] = array[5] + array[3]; 3.(1)3 (2)5 (3)8 (4)9 (5)9 4. int a[10]={9,4,12,8,2,10,7,5,1,3}; 0 9 8 8 5.j=0 j<10 sum=sum+s[j] 二、选择题 1.B 2.D 3.D 4.C 5.C 6.B 7.C 8.C 9.C 10.D 11.D 三、判断题 1.× 2.× 3.√ 4.× 5.× 6.√ 7.× 8.√ 9.× 四、写程序结果 1.s=15 五、程序填空 1.&a[i] ave=ave+a[i] 六、编写程序 1.定义一个3行4列的整型数组,将数组每个元素的值设置为行和列下标的和。 main() {int array[3][4]; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) {array[i][j]=i+j; printf("%d\t", array[i][j]);} } 提高篇 一、选择题 1.D 2.B 3.A 二、请改正下面程序的错误 1.int i,j,list(10); 改为 int i,j,list[10]; for(i=0,i<10,i++) 改为 for(i=0;i<10;i++) for(j=9,j>=0,j--) 改为 for(j=9;j>=0;j--) 三、写出下面程序的运行结果 1. -5.77 2 1   2. 4 0 0 -4 -3 四、程序填空 1.[20] 20 &array[i] 19 max=array[i]; min=array[i]; sum+array[i] sum/20 五、编写程序 1.数组x有十个元素,编程将其元素首尾颠倒。(即第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换…) main() {int a[10]={5,65,654 ,5 ,5 ,56,588,77,58,5},j,x; for(j=0;j<5;j++) {x=a[j]; a[j]=a[9-j]; a[9-j]=x;} for(j=0;j<10;j++) printf("%d\t", a[j]); } 6.2字符型数组 基础篇 一、填空题 1. "XYZxyz" "XYZxyz" 2.XYZxyz 二、选择题 1.B 2.C 3.D 4.A 5.C 6.C 7.A 8.C 9.A 10.C 11.C 12.C 13.C 三、判断题 1.× 2.× 3.× 4.√ 四、写出下面程序的运行结果 1.4 3 2.123 五、程序填空 s[i]>= '0'&& s[i]<= '9' 六、编写程序 求数组int a[20]中奇数的个数和平均值,以及偶数的个数和平均值。 main() { int a[20] ,i,m,n,s1=0,s2=0; for(i=0;i<20;i++) {scanf("%d",&a[i]); if (a[i]%2= =1 )  {s1=s1+a[i];m++;} else {s2=s2+a[i];n++;} } printf("%d,%f,%d,%f\n", m, (float)s1/m, n, (float)s2/n); } 提高篇 一、选择题 1.C 2.A 二、写程序结果 1.abc 三、程序填空 1.a[n]>= 'A'&& a[n]<= 'Z' a[n-1] 四、编写程序 1.输入一行文字,将字母变成其下一字母(如'a'变成'b','b'变成'c',……'z'变成'a',其他字符不变)后输出。 main() { char str[80]; int i; gets(str); for(i=0;str[i]!='\0';i++) {if (str[i]= ='Z'||str[i]= ='z') str[i]-=25;  else if (str[i]> ='A'&&str[i]<'Z'|| str[i]> ='a'&&str[i]<'z') str[i]+=1; } puts(str); } 2.统计输入的一串字符(假设以‘\n’结束)中,大写字母A,B,...,Z各出现的次数。 (提示,用一个数组count[26]计数各个字母出现的次数,count[0]表示A出现的次数,count[1]表示B出现的次数,...,count[25]表示字母Z出现的次数。初始时count的各元素值为0。以后,每读入一个字符ch ,若它是一个大写字母,就让相应计数单元count[ch-'A']加1。) main( ) {int count[26] ,i; char ch[80]; for(i=0;i<26;i++) count[i]=0; gets(ch); for(i=0;i<strlen(ch);i++) if (ch[i]> ='A'&&ch[i]<='Z') count[ch[i]- 'A']++; for(i=0;i<26;i++) printf("%c %d\t", 'A'+i,count[i]); } 第7章 函数 一、选择题 1.D 2.D 3.B 4.D 5.C 6.B 7.B 8.B 9.C 10.B 11.C 12.D 13.B 14.A 15.A 16.D 二、填空题 1.7 3 2.auto 3.函数调用 4.局部变量 5.return 6.auto extern register static 7.外部 8.递归 9.9 三、判断题 1.× 2.× 3.× 4.× 5.× 6.√ 7.√ 8.√ 9.× 10.√ 11.× 12.√ 13.√ 14.√ 15.√ 四、写出下面程序的运行结果。 1. * * * * * 2.15 300 3.x=3,y=4,n=7 4.good! pass! bad! well! 五、程序填空 1.int int result 2.n=1 1.0/(n*n) sqrt(6*s) 3.return 0 gets(str) num++ 4.-f m 六、请写出下面每个函数的功能 1. 比较两个正数a和b的大小,若a大于b,则返回1,若a等于b,则返回0,若a小于b,则返回-1。 2.求出从键盘上输入的n个常数的平方和并返回。 2. 计算1+x+x2+x3+…+xn的值并返回。 第8章 文件 一、选择题 1.B 2.C 3.B 4.B 5.B 6.A 7.C 8.C 9.B 10.B 11.D 12.A 二、填空题 1.fputs('A',fp) 2.fputs("Hello",fp) 3.fprintf(fp,"%d %d",23,567); 4. "r" "w" "a" 三、程序填空 1.fopen("c.dat","w") ch , fp 四、写出以下程序的功能: 1.输入若干浮点数,输出到文件“dada.dat”文件中,输入负数时结束输入。 第9章 编译预处理 一、选择题 1.A 2.B 3.A 4.B 5.B 6.D 二、填空题 1.#define EOF -1 2.#include <stdio.h> #include <math.h> 3.#define DX(x) (x)> ='A'&&(x)<='Z'?(x) +32 : (x) 第10章 指针 一、选择题 1.D 2.C 3.D 4.B 5.A 6.C 7.D 8.D 9.B 10.B 11.C 12.C 13.B 14.D 15.A 16.D 17.D 18.B 19.C 20.D 21.B 22.B 23.C 24.B 25.B 26.C 27.C 二、填空题 1.26 2.首地址 3.10  12   13 4.指针变量 三、判断题 1.× 2.× 3.√ 4.√ 5.× 6.√ 7.× 四、写出下面这个程序的输出结果: 1. ABCDEFGHIJKL EFGHIJK ABFDEFGHIJKL ABFDEFGHI 2.a=36,b=16,c=19 3.n1=1,n2=6 4.i=10,j=2 5.i=15 6.s=24 五、程序填空 1.p<a+10 *p= =x 2.p=a; *p 3.&x[i]
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服