C语言习题册答案集.docx
《C语言习题册答案集.docx》由会员分享,可在线阅读,更多相关《C语言习题册答案集.docx(15页珍藏版)》请在冰豆网上搜索。
C语言习题册答案集
第1章绪论
一、选择题
1~5CABCD6~10BDCBC11~15AADCC
二、程序填空题
1、一个C语言程序是由函数组成的。
2、C源程序的后缀名为___.c_____
3、在C程序中,main()函数最多有1个。
4、一个C语言程序总是从主函数/main()开始执行。
5、在C语言里输入是由scanf函数实现,输出是由printf函数实现。
6、C语言中,当复合语句多于一条时,要求有一对{}括号。
7、一个C源程序必须经过_编译__和_链接__生成exe文件才能运行
8、在一个C程序中注释部分两侧的分界符分别为_/*_____和_*/___
9、编写计算机所程序所使用的语言称为__程序设计语言______。
10、程序设计语言的发展经历了三个阶段__机器语言__、_汇编语言_和__高级语言__
第2章基本数据类型及顺序结构程序设计
一、选择题
01~05ACDDA06~10ACAAC11~15BDBBC
16~20DABAA21~25DBDAA26~30ADDCB
31~35BDCAB
二、程序填空题
1、__基本数据类型、_构造类型___和___其它类型_______。
2、4、4、8、1。
3、double
4、x<-5||x>5或abs(x)>5
5、y%2==1或y%2!
=0
6、x%3==0&&x%7==0或x%21==0,
7、10,10。
8、printf(“****a=%d,b=%d****”,a,b)。
9、a:
b;c:
t1;
10、x%10,x/10%10;
三、程序阅读题
1、G。
2、2,1。
3、0。
4、16。
5、2,50。
6、b。
7、3。
8、10,20,0。
9、2,20.00。
10、67,e。
第3章分支结构
一、选择题
01-05:
DCBCD06-10:
CBBBC11-15:
CBBDB
16-20:
ACDAA21-25:
CADBC26-30:
CBBAD
二、程序阅读题(共10题)
1、20,0。
2、5858。
3、58。
4、BBBB。
5、-4。
6、945。
7、1,3,38、19、0。
10、#&。
三、程序填空题(共5小题)
1、x%7==0&&x%11==0或x%77==0);
2、y%100!
=0&&y%4==0f=0;
3、g/10
4、ch>=’a’&&ch<=’z’(或ch>=97&&c<-122)‘A’;
5、a+b>c&&a+c>b&&b+c>a或(a+b)>c&&(a-b)6、a==b||b==c||==c
7、n/10%10;n/100;a*a*a+b*b*b+c*c*c==n
8、_cj>=60&&cj<80_
9、_i____default___
10、_c>=’0’&&c<=’9’(或c>=48&&c<=57)
第4章循环结构
一、选择题
1-5:
ABCDB6-10:
BACDA11-15:
ABCCC
16-20:
CCAAC21-25:
DABCD26-30:
BDCDD
二、程序阅读题
1、89212、523、09182736454、55、2,1,0。
6、19787、14,48、69、x=410、1。
三、程序填空题
1、i*f;2、3、t*104、18
5、x;6、1.0/(i*i)7、N;i8、i%10;i/10
9、i<10j%3!
=010、i<=m;i%7==0||i%11==0;count++
第5章函数
一、选择题
01-05:
ABDDB06-10:
CCABD11-15:
CDBBA
16-20:
BDBBB21-25:
CBBBB26-30:
CBBDC
二、程序阅读题
1、2,5,1,2,3,-22、14
3、1364、9
5、96、1,6,3,2,3
7、158、3,2,2,3
9、m=4k=4i=5j=5 10、10
三、程序填空题
1、doublemax
2、15
3、return0;return1
4、floatmax(inta,intb);
5、func(); m++
6、fun(10)
7、a=1,b=1,s=1;
8、x;x*x+1
9、registerfloata1;
10、floatz=0;
第6章数组
一、选择题
01-05:
BBCCD06-10:
DCBDA11-15:
CACDC
16-20:
BAAAA21-25:
BDBAA26-30:
DCCDB
二、程序阅读题
1、99
2、204
3、357
4、30
5、6
6、abc
7、CDABC
8、34
9、5678901234
10、abcbcc
三、程序填空题
1、i=1;x[i-1] ;
2、a[i-1];a[4-i]
3、j/2;str[9-i];
4、i=1;i<10-j;i++
i<10;
5、_b[j][i];
6、x[i][i];x[i-1][j-1];
7、s[i]>=’0’&&s[i]<=’9’
8、s[i++];
9、s[i]>=’0’&&s[i]<=’9’
10、j=j+2
_a[i]>a[j]_
第7章指针
一、选择题
01-05:
BBBBC06-10:
DDDAC11-15:
BBDDC
16-20:
CABDA21-25:
DDADC26-30:
BCCAD
二、程序阅读题
1、32、603、64、35、8
6、Afgd7、68、\09、1510、24
三、程序填空题
1、60。
2、a+10、*p%2==0
3、a+i++;
4、*p>*s
5.*s-*t
6、*++p
7、‘\0’n++;
8、int*
9、*str++i;
10、pf=max2。
第8章结构
一、选择题
01-05:
BBDBB06-10:
BCBCA11-15:
CDBDD
16-20:
AACCD
二、程序阅读题
1、在VC环境下,设有以下结构类型说明和变量定义,则变量a在内存所占的字节数是30。
2、以下程序的输出是51。
3、以下程序运行后的输出结果是4
4、有以下程序,若从键盘输入:
abcdef<回车>,则输出结果是defdef。
5、下列程序的运行结果为1001,ChangRong,1098.0。
6、有以下程序的运行结果是2,3
7、有以程序的运行结果是Qian,p,95,92
8、下面程序的运行结果是:
80。
9、以下程序运行后的输出结果是13431
10、有以下程序运行后的输出结果是Penghua20045537。
三、程序填空题
1、设有说明:
structDATEd={2006,10,1} ;。
2、以下程序是用来输出结构体变量ex所占内存单元的字节数,请填空。
printf(“exsize:
%d\n”,sizeof(ex));
}
3、已知链表的存储结构如下所示,请完成结构体类型定义
structlist*next;
4、已有定义:
double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元p=(double*)malloc(sizeof(double))。
5、以下程序中函数fun的功能是:
统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。
请填空:
if(person[i].sex==’M’)
6、while(p){printf(“%d,”,p—>data);p++;}
7、若有如下结构体说明:
structSTRUt[20];
第9章文件
一、选择题
01-05:
CABDD06-10:
DDCBC11-15:
BABDD
16-20:
DADDA
二、程序阅读题
1、有以下程序运行后的输出结果是12456
2、有以下程序的运行结果是1,2,3,0,0,1,2,3,0,0,
3、有以下程序的运行结果是123
4、文件的内容是Chinang
三、程序填空题
1、设有定义:
fw=fopen(“”,“a+”);
2、若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(“”,“r”);。
4、下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。
请填空:
if((fp=fopen(“”,”w”))==NULL)
5、下列程序完成的功能是统计文件中字符的个数,请填空:
if(fp==0)
while(!
feof(fp))
“读”而打开,由此文件指针fr指向文件,则程序的输出结果是Hell。
7、以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾
myf=fopen("test.t","rb");
f1=ftell(myf);
8、以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。
请填空:
fp=fopen(“”,“r”);
第10章预处理命令
一、选择题
01-05:
DDCCB06-10:
BBBDB11-15:
BABCB
二、程序填空题
1、下列程序的运行结果是125。
2、下列程序执行后的输出结果是8。
3、以下程序的输出结果是12
#defineM(x,y,z)x*y+z
main()
{inta=1,b=2,c=3;
printf(“%d\n”,M(a+b,b+c,c+a));}
4、有以下程序输出结果是12
5、有以下程序运行后的输出结果是7.5
6、以下程序运行后的输出结果是81
7、以下程序的输出结果是7。
8、设有如下宏定义MYSWAP(c,a,b);
9、程序中头文件typel.h的内容是输出结果是:
25
10、有以下程序执行后输出结果是28
《C语言》作业
第二章
2.4用传统流程图表示求解以下问题的算法。
(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反)。
解:
显然,如果只有两个瓶子,肯定不能完成此任务,必须有一个空瓶C作为过渡。
步骤如图2.4:
(2)依次将3个数输入,要求输出其中最大的数。
2.5用N-S图表示2.4题中算法
(2)。
第三章
3.5字符常量和字符串常量有什么区别?
解:
字符常量是一个字符,在程序中字符是用单引号括起来的。
字符串变量是有0个或若干个字符组合而成,在程序中字符串是用双引号括起来,在存储时系统自动在字符串最后面加一个结束符号’\0’。
3.9求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4
(2)(float)(a+b)/2+(int)x%(int)y
解:
(1)
(2)
3.10写出程序运行的结果
#include
voidmain()
{
inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf(”%d,%d,%d,%d\n”,i,j,m,n);
}
解:
运行结果为:
9,10,9,11
3.12写出下面赋值表达式运算后a的值,设原来a=12,n=5。
a和n都定义为整型变量。
(1)a+=a
(2)a-=2(3)a*=2+3
(4)a%=(n%=2)(5)a/=a+a(6)a+=a-=a*=a
解:
(1)24
(2)10(3)60
(4)0(5)0(6)0
第4章
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=‘A’,
c2=‘a’,问在键盘上如何输入?
(空格用_表示)
#include
voidmain()
{
inta,b;
floatx,y;
charc1,c2;
scanf(“a=%d_b=%d”,&a,&b);
scanf(“%f_%e”,&x,&y);
scanf(“_%c_%c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);
}
解:
可按如下方式在键盘上输入:
a=3_b=7
A_a
第五章
1.补充题,描述下列条件
1)a小于b或小于c2,但a和b都大于c
2)a和b中有一个大于c
3)a是非正整数
4)a是奇数
5)a不能被b整除
解:
(1)ac&&b>c
(2)(a>c&&b<=c)||(a<=c&&b>c)
(3)!
(a%2==0||a%2==1)
(4)a%2==1
(5)a/b!
=0
写出各逻辑表达式的值,设a=3,b=4,c=5。
(1)a+b>c&&b==c
(2)a||b+c&&b-c
(3)!
(a>b)&&!
c||1
(4)!
(x=a)&&(y=b)&&0
(5)!
(a+b)+c-1&&b+c/2
解:
(1)0
(2)1
(3)1
(4)0
(5)1