1、C 语言程序设计试题集及其答案语言程序设计试题集及其答案 Newly compiled on November 23,2020 C 语言程序设计试题集及其答案 第一章 基础知识 一.填空 1.每个 C 程序都必须有且仅有一个_ 函数。2.C 语言程序开发到执行通常要经过 6个阶段即编辑、预处理、_、链接、加载 和执行。3.软件是程序,以及_、使用和维护所需要的所有文档。4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_”。5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和_两大类。6.C 语言是由_组成的。7.C 语言的函数可分为主函数 main、标准库函数和
2、_。8.一个函数是由两部分组成的,即:_和 函数体。9.编译是将 C 语言所编写的源程序_成机器代码,也称为建立目标代码程序的过程。10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动 化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程 序,统称为_。11.机器语言是以_形式表示的机器基本指令的集合,是计算机系统唯一不需要翻 译可以直接识别和执行的程序设计语言。12.与机
3、器语言相比,使用汇编语言来编写程序可以用_来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。13.在编译程序之前,凡以_开头的代码行都先由预处理程序预处理。14.C 程序的执行均是由执行_开始。15.函数体即为包含在 内的部分。它分为_和为完成功能任务由若干个 C语句 组成的执行部分。16.C 语言程序中一条简单语句是以_字符作为结束符的。17.C 语言是结构化、_的程序设计语言。18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。19.用高级语言编写的程序需翻译成计算机硬件所
4、能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_没有低级语言高。20.第一个系统体现结构化程序设计思想的教学工具语言是_语言。解答:1.main()2.编译 3.开发 4.指令序列 5.高级语言 6.函数 7.自定义函数 8.函数首部 9.翻译 10.应用软件 11.二进制代码 12.助记符 13.#14.main函数 15.声明部分 16.;(或分号)17.模块化 18.翻译 19.执行速度 20.PASCAL 二.阅读程序写结果 解答:三.补充程序 解答:四.改错题 解答:五.编程一 解答:六.编程二 解答:第二章 常量、变量和表达式 一.填空
5、1.以 16位计算机为例,若定义 long int a;则变量 a占_个字节的内存空间。2.以 16位计算机为例,若定义 double a;则变量 a占_ 个字节的内存空间。3.以 16位计算机为例,若定义 long double;则变量 a占 _ 个字节的内存空间。4.在_ 位机,int 型占 4 个字节。5.C 语言的数据类型有:基本数据类型、构造数据类型、枚举类型、_、空类型。6.在 C 语言中,基本数据类型有:_。7.整型常量 046转换为十进制数等于_。8.整型常量 054转换为十进制数等于_。9.整型常量 0 x125 转换为十进制数等于 _。10.整型常量 0 x7C 转换为十进
6、制数等于 _。11.整型常量 39转换为八进制等于 _。12.实数写成规范化指数形式,则应为 _。13.实数写成规范化指数形式,则应为 _。14.将 0 x123 转换为二进制等于 _。15.字符A表示成十六进制等于 _。16.在 C 语言中,称代表常量的标识符为 _。17.语言中是用编译预处理命令_ 来定义符号常量 18.在 C 语言中,以反斜杠符()开头,后跟字符的字符序列,称之为 _,主 要用来表示控制及不可见的字符或者一些图形符号 19.语句 printf(106)执行的结果输出是 _。20.语句 printf(“b”)执行的结果输出是_。21.语句 printf(“b”)执行的结果输
7、出是 _。22.语句 printf(102)执行的结果输出是 _。23.若有 char ch1;ch1=a+4;则语句 printf(%c,x)的输出结果为 _。24.字符串常量“Hello,everyone!”占据的内存空间为_ 个字节 25.字符串常量“Hello,Bob!”占据的内存空间为 _ 个字节 26.十进制整型常量由 09个数据组成,但不能以_ 开始,没有小数部分 27.十六进制常量由 09和_ 组成 28.unsigned long类型常量通常以_ 为后缀 29.实型常量通常有小数形式和_ 两种表达方式 30.语言中是用编译预处理命令_ 来包含其他源文件 31.为了表示字符串的
8、结束,系统自动在字符串的最后加一个_,但不被输出 32.C 语言中,其值可被改变的量称为变量,它具有三个基本要素:变量名、_ 和变量值 33.C 语言规定,变量的标识符只能由字母、数字和下划线组成,且不能以_ 开 头。34.在 16位机中,sizeof(“hellon”)等于 _。35.在 16位机中,printf(“hello”)等于 _。36.字符变量在内存中占用_ 个字节的存储空间。37.若有定义 int x=27,y=6;则表达式 x/y的值为 _。38.若有定义 int x=47,y=8;则表达式 x%y的值为 _。39.若有定义 char ch1=A,ch2,ch3;执行 ch2=
9、ch1+;ch3=+ch1;printf(ch1=%c,ch2=%c,ch1,ch2);则输出为 _。40.若有定义 char ch1=A,ch2,ch3;执行 ch2=ch1+;ch3=+ch1;printf(ch2=%c,ch3=%c,ch2,ch3);则输出为 _。41.若有定义 int i=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.若定义 int x;double b=;执行 x=b 后,
10、则 x的值为_。46.若定义 int y;char c=A;执行 y=c后,则 y的值为 _。47.若定义 int a=8;float b=;则 a/(int)(b)的值为 _。48.若 a=5,则执行 a*=7-3 语句后,a的值是 _。49.若 int a=1,b=0,c=4,d=2;则表达式(ab a:b)&(c-d)的值为_。50.已知 a=0,表达式 a=1b=1:b=0;执行后,b的值是 _。51.若定义 int m=7,n=12;则表达式 n%=m-m%5 的值是 _。52.若定义 int a=8;float b=;执行 a*=a/=a-b 后,a的值为 _。53.int a=2
11、;!a+的值为 _。54.int a=0;!a+&+a 的值为 _。55.int a=7;float b=;则 printf(“%d”,a*=a/=a-b)的值为 _。56.int k=7;float a=,b=;则表达式 a+k%3*(int)(a+b)%2/4 的值为 _。ax(a,b)的值为 _。58.在 32位机中,int a=4,b=7;printf(“%0 x”,a-b)的值为:_。59.int x,y,z;x=y=2;z=3;y=x+-1;printf(“%d,%d”,x,y)的值为:_。60.int i=2,j;printf(“%d”,j=i1)的值为:_ 解答:1.0 2.4
12、 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.AF 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.
13、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
14、和 scanf是标准的库函数,它们的函数原型在头文件_中。9.有 char ch,则从键盘给 ch 赋值的格式输入语句为:_。10.如果要输出字符串常量“HelloWord!”,则格式输出语句为:_。11.设有定义:long x=-123456L;,请写出能够正确输出变量 x 值的语句_ 。12.若有 int a,b;,想通过 scanf(%d%d,&a,&b);输入语句给 a赋于 1,给 b赋于2,则从键盘 输入数据的形式是_。13.若有 int i,j;scanf(i=%d,j=%d;&i,&j);,要求给 i 赋 10,给 j 赋 20,则应该从键盘 输入_。14.已知 i、j、k为 i
15、nt型变量,若从键盘输入:1,2,3,使 i 的值为 1、j的值为 2、k 的值为 3,请写出正确的输入语句_。15.有 int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);若想 从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,p中的值为 789,则正确的输入是_ _。16.有 int a;float b,c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d,b=%f,c=%fn,a,b,c);_。17.有 int m=0256,n=256;则 printf(%o%on,m,
16、n);的输出结果是_ _。18.有 int x=102,y=012;,则 printf(“%2d,%2dn”,x,y);的输出结果是_ _。19.有定义和语句:int a;char c=10;float f=;double x;a=f/=c*=(x=;,则 printf(%d%d%3.1f%3.1fn,a,c,f,x);的输出结果是_。20.若有定义和语句:int m=0 xabc,n=0 xabc;m-=n;则 printf(%on,m);的输出结果是_ _。21.若有 int m=32,n=032;,则 printf(%d,%xn,m,n);执行后输出结果是_ _。22.若有 int a=
17、1234;,则 printf(%2dn,a);的输出结果是_ 。23.若变量已正确说明为 float 类型,要通过语句 scanf(“%f%f%f”,&a,&b,&c);给 a赋于 1,b赋予,c赋予,不正确的输入形式是_。A)10 2233 B),C)D)10 22 33 24.若有 int x=3,y=1;则 printf(%d%dn,x+,y+2);的输出结果是_ _。25.若有定义和语句:double d;float f;long l;int i;i=f=l=d=20/3;则 printf(%d%ld%f%f n,i,l,f,d);的输出结果是(小数点后只写一位)_。26.以下说法中正
18、确的是 _。A)#define和 printf 都是 C 语句 B)#define是 C 语句,而 printf不是 C)printf是 C 语句,但#define不是 D)#define和 printf 都不是 C 语句 27.若有 int k=17;,则 printf(%d,%o,%x n,k,k,k);的输出结果是_ _。28.以下叙述中正确的是_。A)输入项可以是一个实型常量,如:scanf(%f,;B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf(a=%d,b=%d);C)当输入数据时,必须指明变量地址,例如:scanf(%f,&f);29.若有定义和语句:in
19、t u=010,v=0 x10,w=10;则 printf(%d,%d,%dn,u,v,w);输出结果是 _。30.若有 int a=1,b=4,c=2;float x=,y=,z;z=(a+b)/c+sqrt(double)y)*c+x;,则 printf(%fn,z);的输出结果是_。31.若有 int a=2,c=5;,则 printf(a=%d,b=%dn,a,c);的输出结果是_ _。32.有 char c;int n=100;float f=10;double x;x=f*=n/=(c=50);则 printf(%d%f n,n,x);的输出结果是_。33.有 int i=0,j=
20、0,k=0;scanf(%d%*d%d,&i,&j,&k);printf(%d%d%dn,i,j,k);若 从键盘输入:10 20 30。输出结果是_。34.若有 int a,b,c;a=25;b=025;c=0 x25;,则 printf(%d%d%dn,a,b,c);的输出结果 是_。35.有以下语句段 int n1=10,n2=20;printf(“_”,n1,n2);要求按以下格式输出 n1和 n2 的值,每个输出行从第一列开始,请填空。n1=10 n2=20 36.若有语句 int i=-19,j=i%4;则 printf(%dn,j);的输出结果是_。37.有 int a=0;a+
21、=(a=8);则 printf(%dn,a);的输出结果是_。38.有 int a=1,b=2;a=a+b;b=a-b;a=a-b;则 printf(“%d,%dn”,a,b);的输出结果是 _。39.有 unsigned short a=65536;int b;,则 printf(“%dn”,b=a);的输出结果是_ _。40.语句 printf(10289n);的数据结果为:_。解答:1.表达式语句 2.getchar()3.putchar()4.gets()5.puts()6.scanf(“格式控制字符串”,地址表列);7.printf(“格式控制字符串”,输出表列);8.9.scanf
22、(“%c”,&ch);10.printf(“%s”,HelloWord!);或者:printf(“HelloWord!”);11.printf(“x=%1dn”,x);12.1 2 或者 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.256 400 18.102,10 19.1 65 20.0 21.32,1a 22.1234 23.B 24.3 3 25.6 6 26.D 27.17,21,11 28.C 29.8,16,10 30.31.a=%d,b=%d 32.2 33.
23、10300 34.25 21 37 35.n1=%dnn2=%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);else printf(%d,1);的输出结 果是().3.已知 char a=A;那么 if(a 65)printf(%s,bigger);else printf(%s,smaller);的输
24、出结果是().4.表示“x y z”的 C 语言表达式是()。5.在 C 语言中,用于实现选择结构的语句有()语句和()语句。6.判断两个浮点型变量 x 和 y是否相等一般用:if(ba:cda:d 的结果为()。9.表达式 98&8&31&(98-a)的值为()。10.若 int a=3;则表达式(a 2)&!(D 69)的值为()。解答:1.2.3.4.5.6.7.8.9.10.二.阅读程序写结果 1.#include void main()int x,y,t;x=7;y=9;if(xy)t=x;x=y;y=t;printf(%d,%dn,x,y);2.#include void main
25、()int x=1,a=2,b=3;switch(x)case 1:a-;break;case 2:b+;break;case 3:a+;b+;printf(na=%d,b=%dn,a,b);3.#include void main()char ch1=E;if(ch1=A)ch1+;else ch1+=32;printf(ch1=%cn,ch1);4.#include void main()int x,y,t;x=5;y=3;if(xy)t=x;x=y;y=t;printf(%d,%dn,x,y);5.#include int main()int a,b,c,m;printf(Enter t
26、hree integers:);scanf(%d%d%d,&a,&b,&c);if(a=b)m=a;else m=b;if(cm)m=c;printf(m=%dn,m);return 0;输入:21 22 23 6.#include int main()char ch1=a,ch2=B,ch3=E;if(ch1ch2)if(ch2ch3)ch3+;else -ch3;printf(ch3=%cn,ch3);return 0;7.#include int main()float x,y;scanf(%f,&x);switch(int)x/10)case 0:y=;printf(y=%fn,y);
27、break;case 1:y=2*x+1;printf(y=%fn,y);break;case 2:y=3*x*x+2;printf(y=%fn,y);break;default:printf(No definition.n);return 0;输入:8.#include int main()char ch1=A,ch2=B;switch(ch1)case A:switch(ch2)case B:printf(Good!n);break;case A:printf(Better!n);break;case B:printf(Best!n);break;return 0;9.#include v
28、oid main()float score;score=100;if(score60)printf(En);else switch(int)score/10)case 10:case 9:printf(An);case 8:printf(Bn);case 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(Errorn);10.#include void main()int i=0,a=2;if(i=0)printf(“*”);else printf(“$”);printf(“*”);11.#include void main()
29、int m=10,n=0,p=4,q=20;if(m)if(n)q=15-m;else q=25+m;else if(p)q=q+p;printf(“q=%dn”,q);12.#include void main()int a=1,b=0;switch(a)case 1:switch(b)case 0:printf(*0*);break;case 1:printf(*1*);break;case 2:printf(*2*);break;13.#include int main()int a=2,b=7,c=5;switch(a0)case 1:switch(b0)case 1:printf()
30、;break;case 2:printf(!);break;case 0:switch(c=5)case 1:printf(*);break;default:printf(#);break;default:printf(&);printf(n);return 0;14.#include int main()int a=0,b=1,c=0,d=20;if(a)d=d-10;else if(!b)if(!c)d=15;else d=25;printf(d=%dn,d);return 0;15.#include int main()int a=1;switch(a)case 0:printf(*0*
31、);break;case 1:printf(*1*);break;case 2:printf(*2*);break;return 0;16.#include int main()int x,y;scanf(%d,&x);y=x12 x+10:x-12;printf(%dn,y);return 0;输入:12 17.#include int main()float x,y;char op;double r;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=
32、x/y;break;printf(%.1f,r);return 0;输入:18.#include void main()int a=7;if(a9|a10)a=a/3;else a=a%3;printf(a=%d,a);19.#include void main()int a=20;switch(a%3)case 0:printf(0);case 1:printf(1);case 2:printf(2);default:printf(3);printf(4);20.#include void main()int a=2,b=5,c=8,t;if(a b)t=a;a=b;b=t;if(b c)t
33、=b;b=c;c=t;if(a b)t=a;a=b;b=t;printf(%d,%dn,a+,-c);解答:1.运行结果:9,7 2.a=1,b=3 3.ch1=F 4.3,5 5.m=21 6.ch3=D 7.y=8.Good!Best!9.A B C 10.*11.q=35 12.*0*2*13.*&14.d=20 15.*1*16.0 17.0.6 18.a=2 19.234 20.8,1 三.补充程序 1.根据输入字符的 ASCII码来判别字符的类别。由 ASCII码表可知 ASCII值小于32 的为控制字 符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之 间为小写字母,其余则为其它字符。#include#include int main()char c;printf(input a character:);_ if(c=a&cb)_ _ els
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1