C语言程序设计试题集及其答案.docx
《C语言程序设计试题集及其答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题集及其答案.docx(193页珍藏版)》请在冰豆网上搜索。
C语言程序设计试题集及其答案语言程序设计试题集及其答案NewlycompiledonNovember23,2020C语言程序设计试题集及其答案第一章基础知识一.填空1.每个C程序都必须有且仅有一个_函数。
2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、_、链接、加载和执行。
3.软件是程序,以及_、使用和维护所需要的所有文档。
4.国标中规定:
“计算机程序是按照具体要求产生的适合于计算机处理的_”。
5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和_两大类。
6.C语言是由_组成的。
7.C语言的函数可分为主函数main、标准库函数和_。
8.一个函数是由两部分组成的,即:
_和函数体。
9.编译是将C语言所编写的源程序_成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:
控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_。
11.机器语言是以_形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12.与机器语言相比,使用汇编语言来编写程序可以用_来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以_开头的代码行都先由预处理程序预处理。
14.C程序的执行均是由执行_开始。
15.函数体即为包含在内的部分。
它分为_和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以_字符作为结束符的。
17.C语言是结构化、_的程序设计语言。
18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。
19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。
所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_没有低级语言高。
20.第一个系统体现结构化程序设计思想的教学工具语言是_语言。
解答:
1.main()2.编译3.开发4.指令序列5.高级语言6.函数7.自定义函数8.函数首部9.翻译10.应用软件11.二进制代码12.助记符13.#14.main函数15.声明部分16.;(或分号)17.模块化18.翻译19.执行速度20.PASCAL二.阅读程序写结果解答:
三.补充程序解答:
四.改错题解答:
五.编程一解答:
六.编程二解答:
第二章常量、变量和表达式一.填空1.以16位计算机为例,若定义longinta;则变量a占_个字节的内存空间。
2.以16位计算机为例,若定义doublea;则变量a占_个字节的内存空间。
3.以16位计算机为例,若定义longdouble;则变量a占_个字节的内存空间。
4.在_位机,int型占4个字节。
5.C语言的数据类型有:
基本数据类型、构造数据类型、枚举类型、_、空类型。
6.在C语言中,基本数据类型有:
_。
7.整型常量046转换为十进制数等于_。
8.整型常量054转换为十进制数等于_。
9.整型常量0x125转换为十进制数等于_。
10.整型常量0x7C转换为十进制数等于_。
11.整型常量39转换为八进制等于_。
12.实数写成规范化指数形式,则应为_。
13.实数写成规范化指数形式,则应为_。
14.将0x123转换为二进制等于_。
15.字符A表示成十六进制等于_。
16.在C语言中,称代表常量的标识符为_。
17.语言中是用编译预处理命令_来定义符号常量18.在C语言中,以反斜杠符()开头,后跟字符的字符序列,称之为_,主要用来表示控制及不可见的字符或者一些图形符号19.语句printf(106)执行的结果输出是_。
20.语句printf(“b”)执行的结果输出是_。
21.语句printf(“b”)执行的结果输出是_。
22.语句printf(102)执行的结果输出是_。
23.若有charch1;ch1=a+4;则语句printf(%c,x)的输出结果为_。
24.字符串常量“Hello,everyone!
”占据的内存空间为_个字节25.字符串常量“Hello,Bob!
”占据的内存空间为_个字节26.十进制整型常量由09个数据组成,但不能以_开始,没有小数部分27.十六进制常量由09和_组成28.unsignedlong类型常量通常以_为后缀29.实型常量通常有小数形式和_两种表达方式30.语言中是用编译预处理命令_来包含其他源文件31.为了表示字符串的结束,系统自动在字符串的最后加一个_,但不被输出32.C语言中,其值可被改变的量称为变量,它具有三个基本要素:
变量名、_和变量值33.C语言规定,变量的标识符只能由字母、数字和下划线组成,且不能以_开头。
34.在16位机中,sizeof(“hellon”)等于_。
35.在16位机中,printf(“hello”)等于_。
36.字符变量在内存中占用_个字节的存储空间。
37.若有定义intx=27,y=6;则表达式x/y的值为_。
38.若有定义intx=47,y=8;则表达式x%y的值为_。
39.若有定义charch1=A,ch2,ch3;执行ch2=ch1+;ch3=+ch1;printf(ch1=%c,ch2=%c,ch1,ch2);则输出为_。
40.若有定义charch1=A,ch2,ch3;执行ch2=ch1+;ch3=+ch1;printf(ch2=%c,ch3=%c,ch2,ch3);则输出为_。
41.若有定义inti=5,j,k;执行j=i-;k=-i;printf(i=%d,j=%dn,i,j);则输出为_。
42.表达式(int)+/4%5的值是_。
43.表达式2+5%3的值是_。
44.表达式54%10/2+*(8/5)的值是_。
45.若定义intx;doubleb=;执行x=b后,则x的值为_。
46.若定义inty;charc=A;执行y=c后,则y的值为_。
47.若定义inta=8;floatb=;则a/(int)(b)的值为_。
48.若a=5,则执行a*=7-3语句后,a的值是_。
49.若inta=1,b=0,c=4,d=2;则表达式(aba:
b)&(c-d)的值为_。
50.已知a=0,表达式a=1b=1:
b=0;执行后,b的值是_。
51.若定义intm=7,n=12;则表达式n%=m-m%5的值是_。
52.若定义inta=8;floatb=;执行a*=a/=a-b后,a的值为_。
53.inta=2;!
a+的值为_。
54.inta=0;!
a+&+a的值为_。
55.inta=7;floatb=;则printf(“%d”,a*=a/=a-b)的值为_。
56.intk=7;floata=,b=;则表达式a+k%3*(int)(a+b)%2/4的值为_。
ax(a,b)的值为_。
58.在32位机中,inta=4,b=7;printf(“%0x”,a-b)的值为:
_。
59.intx,y,z;x=y=2;z=3;y=x+-1;printf(“%d,%d”,x,y)的值为:
_。
60.inti=2,j;printf(“%d”,j=i1)的值为:
_解答:
1.02.43.104.325.指针类型6.int、float、double、char7.388.449.29310.12411.04712.+00213.15.x41/41H16.符号常量17.define18.转义字符常量19.F20.b21.b22.B23.e24.1625.1126.027.AF28.U29.指数形式30.#include31.“0”32.变量类型33.数字34.735.“hello”36.137.438.739.ch1=C,ch2=A40.ch2=A,ch3=C41.i=3,j=542.443.44.45.546.6547.448.2049.150.151.252.453.054.055.456.57.258.fffffffd59.3,160.0二.阅读程序写结果解答:
三.补充程序解答:
四.改错题解答:
五.编程一解答:
六.编程二解答:
第三章顺序结构一.填空1.C语言的语句可分为5类,它们是:
控制语句、_、函数语句、符合语句和空语句。
2.常用于字符输入的函数为:
_。
3.常用于字符输出的函数为:
_。
4.常用于字符串输入的函数为:
_。
5.常用于字符串输出的函数为:
_。
6.格式输入函数的一般形式为:
_。
7.格式输出函数的一般形式为:
_。
8.printf和scanf是标准的库函数,它们的函数原型在头文件_中。
9.有charch,则从键盘给ch赋值的格式输入语句为:
_。
10.如果要输出字符串常量“HelloWord!
”,则格式输出语句为:
_。
11.设有定义:
longx=-123456L;,请写出能够正确输出变量x值的语句_。
12.若有inta,b;,想通过scanf(%d%d,&a,&b);输入语句给a赋于1,给b赋于2,则从键盘输入数据的形式是_。
13.若有inti,j;scanf(i=%d,j=%d;&i,&j);,要求给i赋10,给j赋20,则应该从键盘输入_。
14.已知i、j、k为int型变量,若从键盘输入:
1,2,3,使i的值为1、j的值为2、k的值为3,请写出正确的输入语句_。
15.有intm,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是__。
16.有inta;floatb,c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d,b=%f,c=%fn,a,b,c);_。
17.有intm=0256,n=256;则printf(%o%on,m,n);的输出结果是__。
18.有intx=102,y=012;,则printf(“%2d,%2dn”,x,y);的输出结果是__。
19.有定义和语句:
inta;charc=10;floatf=;doublex;a=f/=c*=(x=;,则printf(%d%d%3.1f%3.1fn,a,c,f,x);的输出结果是_。
20.若有定义和语句:
intm=0xabc,n=0xabc;m-=n;则printf(%on,m);的输出结果是__。
21.若有intm=32,n=032;,则printf(%d,%xn,m,n);执行后输出结果是__。
22.若有inta=1234;,则printf(%2dn,a);的输出结果是_。
23.若变量已正确说明为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋于1,b赋予,c赋予,不正确的输入形式是_。
A)102233B),C)D)10223324.若有intx=3,y=1;则printf(%d%dn,x+,y+2);的输出结果是__。
25.若有定义和语句:
doubled;floatf;longl;inti;i=f=l=d=20/3;则printf(%d%ld%f%fn,i,l,f,d);的输出结果是(小数点后只写一位)_。
26.以下说法中正确的是_。
A)#define和printf都是C语句B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C语句27.若有intk=17;,则printf(%d,%o,%xn,k,k,k);的输出结果是__。
28.以下叙述中正确的是_。
A)输入项可以是一个实型常量,如:
scanf(%f,;B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
scakf(a=%d,b=%d);C)当输入数据时,必须指明变量地址,例如:
scanf(%f,&f);29.若有定义和语句:
intu=010,v=0x10,w=10;则printf(%d,%d,%dn,u,v,w);输出结果是_。
30.若有inta=1,b=4,c=2;floatx=,y=,z;z=(a+b)/c+sqrt(double)y)*c+x;,则printf(%fn,z);的输出结果是_。
31.若有inta=2,c=5;,则printf(a=%d,b=%dn,a,c);的输出结果是__。
32.有charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);则printf(%d%fn,n,x);的输出结果是_。
33.有inti=0,j=0,k=0;scanf(%d%*d%d,&i,&j,&k);printf(%d%d%dn,i,j,k);若从键盘输入:
102030。
输出结果是_。
34.若有inta,b,c;a=25;b=025;c=0x25;,则printf(%d%d%dn,a,b,c);的输出结果是_。
35.有以下语句段intn1=10,n2=20;printf(“_”,n1,n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10n2=2036.若有语句inti=-19,j=i%4;则printf(%dn,j);的输出结果是_。
37.有inta=0;a+=(a=8);则printf(%dn,a);的输出结果是_。
38.有inta=1,b=2;a=a+b;b=a-b;a=a-b;则printf(“%d,%dn”,a,b);的输出结果是_。
39.有unsignedshorta=65536;intb;,则printf(“%dn”,b=a);的输出结果是__。
40.语句printf(10289n);的数据结果为:
_。
解答:
1.表达式语句2.getchar()3.putchar()4.gets()5.puts()6.scanf(“格式控制字符串”,地址表列);7.printf(“格式控制字符串”,输出表列);8.9.scanf(“%c”,&ch);10.printf(“%s”,HelloWord!
);或者:
printf(“HelloWord!
”);11.printf(“x=%1dn”,x);12.12或者1213.i=10,j=2014.scanf(“%d,%d,%d”,&i,&j,&k);15.m=123n=456p=78916.a=98,b=,c=17.25640018.102,1019.16520.021.32,1a22.123423.B24.3325.6626.D27.17,21,1128.C29.8,16,1030.31.a=%d,b=%d32.233.1030034.25213735.n1=%dnn2=%d36.-337.1638.2,139.040.B89二.阅读程序写结果解答:
三.补充程序解答:
四.改错题解答:
五.编程一解答:
六.编程二解答:
第四章选择结构一.填空1.在if,while,case,do,else等关键字中,用于选择结构的有().2.已知a=1;那么if(a=2)printf(%d,2);elseprintf(%d,1);的输出结果是().3.已知chara=A;那么if(a65)printf(%s,bigger);elseprintf(%s,smaller);的输出结果是().4.表示“xyz”的C语言表达式是()。
5.在C语言中,用于实现选择结构的语句有()语句和()语句。
6.判断两个浮点型变量x和y是否相等一般用:
if(ba:
cda:
d的结果为()。
9.表达式98&8&31&(98-a)的值为()。
10.若inta=3;则表达式(a2)&!
(D69)的值为()。
解答:
1.2.3.4.5.6.7.8.9.10.二.阅读程序写结果1.#includevoidmain()intx,y,t;x=7;y=9;if(xy)t=x;x=y;y=t;printf(%d,%dn,x,y);2.#includevoidmain()intx=1,a=2,b=3;switch(x)case1:
a-;break;case2:
b+;break;case3:
a+;b+;printf(na=%d,b=%dn,a,b);3.#includevoidmain()charch1=E;if(ch1=A)ch1+;elsech1+=32;printf(ch1=%cn,ch1);4.#includevoidmain()intx,y,t;x=5;y=3;if(xy)t=x;x=y;y=t;printf(%d,%dn,x,y);5.#includeintmain()inta,b,c,m;printf(Enterthreeintegers:
);scanf(%d%d%d,&a,&b,&c);if(a=b)m=a;elsem=b;if(cm)m=c;printf(m=%dn,m);return0;输入:
2122236.#includeintmain()charch1=a,ch2=B,ch3=E;if(ch1ch2)if(ch2ch3)ch3+;else-ch3;printf(ch3=%cn,ch3);return0;7.#includeintmain()floatx,y;scanf(%f,&x);switch(int)x/10)case0:
y=;printf(y=%fn,y);break;case1:
y=2*x+1;printf(y=%fn,y);break;case2:
y=3*x*x+2;printf(y=%fn,y);break;default:
printf(Nodefinition.n);return0;输入:
8.#includeintmain()charch1=A,ch2=B;switch(ch1)caseA:
switch(ch2)caseB:
printf(Good!
n);break;caseA:
printf(Better!
n);break;caseB:
printf(Best!
n);break;return0;9.#includevoidmain()floatscore;score=100;if(score60)printf(En);elseswitch(int)score/10)case10:
case9:
printf(An);case8:
printf(Bn);case7:
printf(Cn);break;case6:
printf(Dn);break;default:
printf(Errorn);10.#includevoidmain()inti=0,a=2;if(i=0)printf(“*”);elseprintf(“$”);printf(“*”);11.#includevoidmain()intm=10,n=0,p=4,q=20;if(m)if(n)q=15-m;elseq=25+m;elseif(p)q=q+p;printf(“q=%dn”,q);12.#includevoidmain()inta=1,b=0;switch(a)case1:
switch(b)case0:
printf(*0*);break;case1:
printf(*1*);break;case2:
printf(*2*);break;13.#includeintmain()inta=2,b=7,c=5;switch(a0)case1:
switch(b0)case1:
printf();break;case2:
printf(!
);break;case0:
switch(c=5)case1:
printf(*);break;default:
printf(#);break;default:
printf(&);printf(n);return0;14.#includeintmain()inta=0,b=1,c=0,d=20;if(a)d=d-10;elseif(!
b)if(!
c)d=15;elsed=25;printf(d=%dn,d);return0;15.#includeintmain()inta=1;switch(a)case0:
printf(*0*);break;case1:
printf(*1*);break;case2:
printf(*2*);break;return0;16.#includeintmain()intx,y;scanf(%d,&x);y=x12x+10:
x-12;printf(%dn,y);return0;输入:
1217.#includeintmain()floatx,y;charop;doubler;scanf(%c%f%f,&op,&x,&y);switch(op)case+:
r=x+y;break;case-:
r=x-y;break;case*:
r=x*y;break;case/:
r=x/y;break;printf(%.1f,r);return0;输入:
18.#includevoidmain()inta=7;if(a9|a10)a=a/3;elsea=a%3;printf(a=%d,a);19.#includevoidmain()inta=20;switch(a%3)case0:
printf(0);case1:
printf
(1);case2:
printf
(2);default:
printf(3);printf(4);20.#includevoidmain()inta=2,b=5,c=8,t;if(ab)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;printf(%d,%dn,a+,-c);解答:
1.运行结果:
9,72.a=1,b=33.ch1=F4.3,55.m=216.ch3=D7.y=8.Good!
Best!
9.ABC10.*11.q=3512.*0*2*13.*&14.d=2015.*1*16.017.0.618.a=219.23420.8,1三.补充程序1.根据输入字符的ASCII码来判别字符的类别。
由ASCII码表可知ASCII值小于32的为控制字符。
在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。
#include#includeintmain()charc;printf(inputacharacter:
);_if(c=a&cb)__els