C语言程序设计试题集及其答案.docx
《C语言程序设计试题集及其答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题集及其答案.docx(229页珍藏版)》请在冰豆网上搜索。
C语言程序设计试题集及其答案
Companynumber:
【0089WT-8898YT-W8CCB-BUUT-202108】
C语言程序设计试题集及其答案
第一章基础知识
一.填空
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.C语言中是用编译预处理命令______来定义符号常量
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.十进制整型常量由0~9个数据组成,但不能以______开始,没有小数部分
27.十六进制常量由0~9和______组成
28.unsignedlong类型常量通常以______为后缀
29.实型常量通常有小数形式和______两种表达方式
30.C语言中是用编译预处理命令______来包含其他源文件
31.为了表示字符串的结束,系统自动在字符串的最后加一个______,但不被输出
32.C语言中,其值可被改变的量称为变量,它具有三个基本要素:
变量名、______
和变量值
33.C语言规定,变量的标识符只能由字母、数字和下划线组成,且不能以______开
头。
34.在16位机中,sizeof(“hello\n”)等于______。
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=%d\n",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;则表达式(a>ba:
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=i<1)的值为:
______
解答:
1.0
2.4
3.10
4.32
5.指针类型
6.int、float、double、char
7.38
8.44
9.293
10.124
11.047
12.+002
13.
15.\x41/41H
16.符号常量
17.#define
18.转义字符常量
19.F
20.b
21.\b
22.B
23.e
24.16
25.11
26.0
27.A~F
28.U
29.指数形式
30.#include
31.“\0”
32.变量类型
33.数字
34.7
35.“hello”
36.1
37.4
38.7
39.ch1=C,ch2=A
40.ch2=A,ch3=C
41.i=3,j=5
42.4
43.
44.
45.5
46.65
47.4
48.20
49.1
50.1
51.2
52.4
53.0
54.0
55.4
56.
57.2
58.fffffffd
59.3,1
60.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%d\n",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=
%f\n",a,b,c);
__。
17.有intm=0256,n=256;则printf("%o%o\n",m,n);的输出结果是__________________
___。
18.有intx=102,y=012;,则printf(“%2d,%2d\n”,x,y);的输出结果是______________
_______。
19.有定义和语句:
inta;charc=10;floatf=;doublex;a=f/=c*=(x=;
,则
printf("%d%d%%\n",a,c,f,x);的输出结果是_____________________。
20.若有定义和语句:
intm=0xabc,n=0xabc;m-=n;则printf("%o\n",m);的输出结果是___
__________。
21.若有intm=32,n=032;,则printf("%d,%x\n",m,n);执行后输出结果是______________
_____。
22.若有inta=1234;,则printf("%2d\n",a);的输出结果是_____________________
。
23.若变量已正确说明为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋于1
,b赋予,c赋予,不正确的输入形式是_____________________。
A)10<回车>22<回车>33<回车>B),,<回车>
C)<回车><回车>D)1022<回车>33<回车>
24.若有intx=3,y=1;则printf("%d%d\n",x++,y+2);的输出结果是__________________
___。
25.若有定义和语句:
doubled;floatf;longl;inti;i=f=l=d=20/3;则printf("%
d%ld%f%f\n",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,%x\n",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,%d\n",u,v,w);输出结果是
_____________________。
30.若有inta=1,b=4,c=2;floatx=,y=,z;z=(a+b)/c+sqrt((double)y)*c+
x;,则printf("%f\n",z);的输出结果是_____________________。
31.若有inta=2,c=5;,则printf("a=%%d,b=%%d\n",a,c);的输出结果是________________
_____。
32.有charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);则printf("%d%f\
n",n,x);的输出结果是_____________________。
33.有inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);若
从键盘输入:
102030<回车>。
输出结果是_____________________。
34.若有inta,b,c;a=25;b=025;c=0x25;,则printf("%d%d%d\n",a,b,c);的输出结果
是___________。
35.有以下语句段
intn1=10,n2=20;printf(“________________”,n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10n2=20
36.若有语句inti=-19,j=i%4;则printf("%d\n",j);的输出结果是_____________________
。
37.有inta=0;a+=(a=8);则printf("%d\n",a);的输出结果是_____________________。
38.有inta=1,b=2;a=a+b;b=a-b;a=a-b;则printf(“%d,%d\n”,a,b);的输出结果是
______________。
39.有unsignedshorta=65536;intb;,则printf(“%d\n”,b=a);的输出结果是________
______。
40.语句printf("\10289\n");的数据结果为:
__________________。
解答:
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=%1d\n”,x);
12.12或者1
2
13.i=10,j=20
14.scanf(“%d,%d,%d”,&i,&j,&k);
15.m=123n=456p=789
16.a=98,b=,c=
17.256400
18.102,10
19.165
20.0
21.32,1a
22.1234
23.B
24.33
25.66
26.D
27.17,21,11
28.C
29.8,16,10
30.
31.a=%d,b=%d
32.2
33.10300
34.252137
35.n1=%d\nn2=%d
36.-3
37.16
38.2,1
39.0
40.B89
二.阅读程序写结果
解答:
三.补充程序
解答:
四.改错题
解答:
五.编程一
解答:
六.编程二
解答:
第四章选择结构
一.填空
1.在if,while,case,do,else等关键字中,用于选择结构的有(
).
2.已知a=1;那么if(a=2)printf("%d",2);elseprintf("%d",1);的输出结
果是().
3.已知chara='A';那么if(a>65)printf("%s","bigger");elseprintf("%s"
"smaller");的输出结果是().
4.表示“x≥y≥z”的C语言表达式是()。
5.在C语言中,用于实现选择结构的语句有()语句和()语句
。
6.判断两个浮点型变量x和y是否相等一般用:
if(<1e-6)…。
7.设有程序段:
t=6;a=7;b=8;if(a=b)t=a;,这段程序执行后,t的结果是()
。
8.设a=1,b=2,c=3,d=4,则表达式:
a>ba:
c>da:
d的结果为()。
9.表达式98&&8&&31&&(98-'a')的值为()。
10.若inta=3;则表达式(a>2)&&!
('D'>69)的值为()。
解答:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
二.阅读程序写结果
1.#include<>
voidmain()
{
intx,y,t;
x=7;y=9;if(x{t=x;x=y;y=t;}
printf("%d,%d\n",x,y);
}
2.
#include<>
voidmain()
{
intx=1,a=2,b=3;
switch(x)
{
case1:
a--;break;
case2:
b++;break;
case3:
a++;b++;
}
printf("\na=%d,b=%d\n",a,b);
}
3.
#include<>
voidmain()
{
charch1='E';
if(ch1>='A')
ch1++;
else
ch1+=32;
printf("ch1=%c\n",ch1);
}
4.
#include<>
voidmain()
{
intx,y,t;
x=5;y=3;
if(x>y)
{t=x;x=y;y=