第2章 C语言基础.docx
- 文档编号:9806183
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:16
- 大小:22.65KB
第2章 C语言基础.docx
《第2章 C语言基础.docx》由会员分享,可在线阅读,更多相关《第2章 C语言基础.docx(16页珍藏版)》请在冰点文库上搜索。
第2章C语言基础
第二章C语言基础与程序结构
一、选择题。
(注:
所有题目中的空格用□表示,回车用↙表示)
1、C语言属于(D)
A)机器语言B)低级语言C)中级语言D)高级语言
2、C语言程序能在不同的操作系统下运行,这说明C语言具有很好的(B)
A)适应性B)移植性C)兼容性D)操作性
3、一个C语言程序的执行总是起始于(C)
A)程序的第一个函数B)包含文件中的第一个函数
C)main函数D)程序中的第一条语句
4、C语言源程序经过编译后生成的文件名的后缀为(B)
A).docB).objC).exeD).cpp
5、C语言源程序经过链接后生成的文件名的后缀为(C)
A).docB).objC).exeD).cpp
6、C语言编译程序的首要工作是(A)
A)检查语法错误B)检查逻辑错误
C)检查程序的完整性D)生成exe文件
7、下面选项中2个标识符都是不合法的选项是(C)
A)Wp_1B)_abcsumC)a-1intD)x1DO
8、下列哪组标识符是正确的(B)
A)a3,7dB)_x1,tempC)for,maxD)f(x),b2
9、下列不是C语言关键字的选项是(B)。
A)ifB)printfC)caseD)while
10、下列四组选项中,均不是C语言关键字的选项是(A)。
A)VoidIFmianB)getccharprintf
C)includecasescanfD)whilegopow
11、C语言中基本的数据类型不包括(D)。
A)整型B)实型C)字符型D)数组
12、C语言中基本的数据类型包括(B)。
A)整型、实型、指针、枚举型B)整型、实型、字符型、枚举型
C)整型、字符型、数组、枚举型D)整型、实型、空类型、字符型
13、自增、自减运算符能用于(C)
A)整型常量B)表达式C)整型变量D)浮点型常量
14、下面选项中2个整型常量都是合法的选项是(A)
A)250xffB)03a2e5C)0x3612,456D)068-0xcd
15、下面选项中2个浮点数都是合法的选项是(B)
A)0.5e3B)16.1e-6C).252e1.5D)0.015
16、如果要把常量327存入变量a中,a不能定义成哪些类型?
(B)
A)intB)charC)longD)float
17、下面正确的字符常量是(D)。
A)“c”B)‘\\’’C)‘’D)‘K’
18、C语言的赋值表达式中,赋值号的左侧必须是(B)。
A)常量B)变量C)表达式D)函数
19、在C语言中,要求运算数必须是整型的运算符是(D)
A)/B)>C)&&D)%
20、下列表达式中,结果为0的是(C)
A)5%6B)5*-1C)5/10D)5+-2/3
21、已知inta=6;则执行a+=2;语句后,a的值为(B)
A)6B)8C)12D)36
22、设有说明语句:
charc=’\72’;则变量c(A)
A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法
23、以下叙述正确的是(C)。
A)在C程序中,每行只能写一条语句。
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
C)在C程序中,%是只能用于整数运算的运算符。
D)在C程序中,无论是整数还是实数,都能被准确无误地表示。
24、以下叙述不正确的是(C)
A)空字符串(即两个双引号连写)只占一个存储单元
B)字符型常量可以放在字符型变量中
C)字符串常量可以放在字符串变量中
D)字符型常量可以与整数混合运算,而字符串常量不可以
25、若有定义inta=12,则表达式a+=a-=a*=a的值是(A)
A)0B)-264C)-144D)132
26、若变量a是int型,执行语句a=’A’+1.6;则以下描述正确的是(D)
A)a的值是字符’C’B)a的值是’A’的ASCII值加1.6,结果是66.6
C)不允许字符型和浮点型相加D)a的值是’A’的ASCII值加1.6,再取整,结果是66
27、若有定义:
inty=7,x=12,则能使值为3的表达式是(D)
A)x%=(y%=5)B)x%=(y-y%5)
C)x%=y-y%5D)(x%=y)-(y%=5)
28、若有定义:
intc1=2,c2=2;则表达式1.0/c2*c1的值是(C)
A)0B)0.5C)1.0D)0.25
29、若定义:
doublex=1,y;执行y=x+3/2;则y的值是(C)
A)1B)2C)2.0D)2.5
30、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值(C)
A)0B)1C)12D)6
31、若有定义:
chara;intb;floatc;doubled;,则表达式a*b+d-c值的类型为(B)
A)floatB)doubleC)charD)int
32、设有变量定义:
inta=5;则以下程序段的输出结果是(D)
a=(2*3,a*4,a+5);printf(“%d\n”,a);
A)6B)24C)11D)10
33、设有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(B)
A)0.0B)2.5C)2.75D)3.5
34、已知x=y=3,y=x++-1,则printf(“%d%d”,x,y);的输出结果是(B)
A)54B)42C)32D)44
35、关于C语言的主函数描述正确的是(B)
A)C程序可以有多个main函数B)C程序有且只有一个main函数
C)C程序可以没有main函数D)C程序不一定从main函数开始执行
36、在C语言中,使用输入、输出函数要求引入的头文件是(A)。
A)stdio.hB)string.hC)math.hD)stdlib.h
37、下面程序段的输出结果是(C)
shorti=32769;printf(“%d”,i);
A)32767B)32769C)-32767D)输出随机数
38、设有以下程序段,若输入数据形式为5,8(回车),则输出结果是(D)
intx,y;
scanf(“x=%dy=%d”,&x,&y);
printf(“%d\n”,x+y);
A)5B)8C)13D)随机数
39、若有说明:
inta;则正确的输出语句为(B)。
A)printf("%d",&a);B)printf("%d",a);
C)scanf("%f",&a);D)scanf("%d",&a);
40、以下程序段的输出结果是(C)
intx=3,y=3,z=3;
printf("%d,%d\n",(++x,y++),z+2);
A)4,3B)3,4C)3,5D)4,5
41、以下程序段,其输出结果为(B)。
inta=5;printf("%d",++a);
A)5B)6C)4D)7
42、以下程序段的输出结果是(A)
intx=5,y=10;printf(“%d,%d\n”,x++,--y);
A)5,9B)6,9C)5,10D)6,10
43、若有说明:
doublea;则正确的输入语句为(C)。
A)scanf("%lf",a);B)scanf("%d",&a);C)scanf("%lf",&a);D)scnaf("%d",a);
44、以下程序段的输出结果为(C)。
floata=3.1415;printf("%6.0f",a);
A)3.1415B)□□□3.0C)□□□□□3D)□□□□3.
45、语句printf(“a\bre\’hi\’y\\\bou\n”);的输出结果是(C)
A)a\bre\’hi\’y\\\bouB)a\bre\’hi\’y\bouC)re’hi’youD)abre’hi’y\bou
46、以下程序段的输出结果是(B)
inta=3366;
printf("a=%-08d,a=%08d,a=%3d\n",a,a,a);
A)a=,a=,a=3366B)a=3366□□□□,a=,a=3366
C)a=-,a=,a=336D)a=3366□□□□,a=□□□□3366,a=336
47、以下程序段的输出结果是(C)
floata=3.;
printf("a=%f,a=%4.1f,a=%2.3f,a=%.0f\n",a,a,a,a);
A)a=3.,a=3.14,出错,a=3B)a=3.,a=3.1□,出错,a=3.0
C)a=3.,a=□3.1,a=3.142,a=3D)a=3.,a=3.14,a=3.141a=3.0
48、执行scanf(“%d%d”,&x,&y);从键盘输入数据时,不能作为两个整数的分隔符是(D)
A)空格B)Tab键C)回车D)逗号
49、若有以下定义和语句,则输出结果是(B)
inta=010,b=0x10,c=10;
printf(“%d,%d,%d\n”,a,b,c);
A)10,10,10B)8,16,10C)8,l0,10D)8,8,10
50、执行scanf(“a=%d,b=%f”,&a,&b);欲将18和2.5分别赋给a和b,正确的输入是(A)
A)a=18,b=2.5B)a=18□b=2.5C)18,2.5D)18□2.5
51、若有inta,b;设用户输入为↙,结果a的值是111,b的值是33,则以下正确的输入语句是(C)
A)scanf(“%3d%2d”,&a,&b);B)scanf(“%3d%*3d%d”,&a,&b);
C)scanf(“%3d%*3d%2d”,&a,&b);D)scanf(“%3d%2d%*3d”,&a,&b);
52、设x,y,z是整型变量,键盘输入数据格式为25,13,10↙,以下程序段的输出结果是(D)
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);
A)x+y+z=25B)x+y+z=38C)x+y+z=48D)无法确定
53、若要求变量a1,a2,c1,c2的值分别是10、20、’A’、’B’,则正确的输入格式是(C)
inta1,a2;charc1,c2;
scanf(%d%c%d%c”,&a1,&c1,&a2,&c2);
A)10□A□20□BB)10A□20□BC)10A20BD)10□A20B
54、已有定义charch1,ch2,ch3;执行scanf(“%1c%2c%3c”,&ch1,&ch2,&ch3);设键盘输入为A□BC□DEF↙,则ch1,ch2,ch3的值分别是(D)
A)‘A’,‘B’,‘D’B)‘A’,‘B’,‘C’C)‘A’,‘□’,‘B’D)‘A’,‘□’,‘C’
55、已有定义intx;floaty;执行scanf(“%3d%f”,&x,&y);设键盘输入为12345□678↙,则x,y的值分别是(A)
A)123,45.0B)123,678.0C)12345,678.0D)123,45.678
56、以下描述错误的是(D)
A)文件包含是编译预处理命令B)文件包含不占用程序的运行时间
C)文件包含命令以#开头D)文件包含命令可以写在main函数中
57、在下列有关宏替换的叙述中,正确的说法是(D)
A)宏替换占用运行时间B)宏名有类型
C)带参数的宏替换和函数等价 D)宏替换只是字符替换
58、用宏定义来计算表达式4*x+3,下列宏定义正确的是(B)
A)#defineF(x)4*x+3B)#defineF(x)4*(x)+3
C)#defineF(4*x+3)D)#defineF(x)4*x+3
59、以下描述正确的是(C)
A)在程序的一行中可以出现多个有效的预处理命令行
B)使用带参数的宏时,实参的类型应与宏定义时的一致
C)宏替换不占用运行时间,只占用编译时间
D)在宏定义中,宏名可以由任意的字符组成
60、设有宏定义:
#definePI3.14159,其含义是用宏名PI代替一个(A)
A)常数3.14159B)float型数据3.14159
C)double型数据3.14159D)字符串3.14159
61、以下程序的运行结果是(C)
#defineD(r)r*r
voidmain()
{intm=2,n=4,s;
s=D(m+n);
printf(“%d\n”,s);
}
A)36B)12C)14D)16
62、若有以下宏定义,则执行语句z=N+Y(5);后z的值是(C)
#defineN2
#defineY(n)((n+1)*n)
A)40B)30C)32D)z无定值
63、以下程序的运行结果是(B)
#defineMIN(x,y)(x)<(y)?
(x):
(y)
voidmain()
{inti=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10B)15C)100D)150
64、以下程序的运行结果是(C)
#defineADD(x)x+x
voidmain()
{intm=1,n=2,k=3;
intsum=ADD(m+n)*k;
printf("sum=%d\n",sum);
}
A)18B)12C)10D)9
65、以下程序的运行结果是(D)
#defineX5
#defineYX+1
#defineZY*x/2
voidmain()
{inta=Y;
printf("%d,%d\n",Z,--a);
}
A)12,6B)12,5C)7,6D)7,5
66、以下关于文件包含的描述错误的是(D)
A)文件包含命令必须以#开头B)一个include命令只能指定一个被包含的文件
C)文件包含可以嵌套D)文件名用“”括起来和用<>括起来是等价的
二、填空题
1、计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
2、计算机能唯一识别的语言是机器语言。
3、C语言源程序文件的扩展名为.cpp或.c;经过编译后生成目标程序文件扩展名为是.obj;连接后生成可执行程序文件,运行即可得到结果。
4、C语言源程序要经过预编译处理、编译、汇编和连接等过程后才能执行。
5、C语言程序是由多个函数构成的。
6、每个C语言程序中有且仅有一个main函数,它是程序的入口和出口。
7、一个C语言程序总是从主函数(main函数)开始执行的。
8、一个算法应具有5个特点:
有穷性、确定性、有效性、零个或多个输入、一个或多个输出。
9、C语言中的基本数据类型主要有整型、实型、字符型。
10、C语言标识符的命名规则是,以字母或下划线开头,字母、下划线、数字组成的序列。
11、C语言中的常量分为直接常量和符号常量两种。
12、算法的表示方法有自然语言描述、流程图、N-S图、伪代码等。
13、C语言中定义符号常量时需要使用的#命令是#define。
14、若a是int型变量,则计算表达式a=1+1/3后,a的值为1。
15.语句printf("%c\n",2%5+64);的执行结果为B。
16、设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8。
17、若说明:
inti;doublef;则表达式10+′a′+i*f的值是double类型。
18、若a是int型变量,则计算表达式a=25/3%3后,a的值为2。
19、逗号表达式x=3,y=5,x/y,的值是0。
20、语句printf("%c,%d\n",′D′-′A′+64);的执行结果为C,67。
21、若定义inta=25;则执行语句printf("%d",a--);后,输出的结果为25。
22、自增和自减运算符只能用于变量,而不能用于常量或表达式。
23、若a为整型变量,则表达式(a=4*5,a*2),a+6的值为26。
24、有逗号表达式x=a=3,6*a,运算后x的值为3,逗号表达式的值为18。
25、有宏定义:
#defineM(r)r*r,若有语句a=M(n+1),进行宏替换后a=n+1*n+1。
三、阅读程序题
1、写出程序运行结果。
#include
voidmain()
{charc1,c2,c3;
c1=‘A’;c2=‘B’;c3=‘C’;
printf(“%c,%c,%c\n”,c1,c2,c3);
printf(“%c,%c,%c\n”,c1+1,c2+1,c3+1);
printf(“%d,%d,%d\n”,c1,c2,c3);
}
运行结果为:
A,B,C
B,C,D
65,66,67
2、写出程序运行结果。
#include
voidmain()
{intx,y,z;
x=-3+4*5–6;printf(“%d\n”,x);
x=-3*4%-6/5;printf(“%d\n”,x);
y=x++-1;printf(“%d\t%d\t”,x,y);
}
运行结果为:
11
0
1-1
3、写出程序运行结果。
#include
voidmain()
{inta,b,c,d;
a=10;b=20;
c=a++;d=b-1;
printf(“%d,%d\n%d,%d\n”,a,b,c,d);
}
运行结果:
11,20
10,19
4、写出程序运行结果。
#include
voidmain()
{inta,b,c,d;
a=(c=100,d=200,c+d);
b=(c=d=0,c+50);
printf(“%d,%d,%d,%d\n”,a,b,c,d);
}
运行结果为:
300,50,0,0
5、写出下列程序的运行结果
#include
voidmain()
{inti,j,m,n;
i=5;j=10;
m=++i;n=j--;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行结果为:
6,9,6,10
7、写出下面程序的输出结果。
#include
voidmain()
{inti,k;
i=5;
k=(i++)+(i++);
printf("i=%d,k=%d\n",i,k);
i=5;
k=(++i)+(++i);
printf("i=%d,k=%d\n",i,k);
i=5;
k=(++i)+(i++);
printf("i=%d,k=%d\n",i,k);
}
输出结果:
i=7,k=10
i=7,k=14
i=7,k=12
8、若键盘输入数据格式为:
12a345b789↙,写出以下程序的输出结果。
#include
voidmain()
{charc1,c2;
inta1,a2;
c1=getchar();
scanf("%2d",&a1);
c2=getchar();
scanf("%3d",&a2);
printf("a1=%d,a2=%d\nc1=%c,c2=%c\n",a1,a2,c1,c2);
}
输出结果:
a1=2,a2=345
c1=1,c2=a
9、写出以下程序的输出结果。
程序中包含的头文件file1.h的内容如下:
#defineN5
#defineM1N*3
程序内容如下:
#include
#include“file1.h”
#defineM2N*2
voidmain()
{inta;
a=M1+M2;
printf(“a=%d\n”,a);
}
输出结果:
a=25
四、编程题
1、编程交换两个变量的值,但不能使用第3个辅助变量。
(提示:
用加、减法实现)
#include
voidmain()
{intx,y;
printf("输入x,y:
");
scanf("%d%d",&x,&y);
x=x+y;
y=x-y;
x=x-y;
printf(“x=%d,y=%d\n”,x,y);
}
2、从键盘输入一个秒数(即从某日0点0分开始到现在所经历的时间),编程计算输入秒数所代表的时间已经过了几天,现在的时间是多少,按00:
00:
00的格式输出时间。
(例如:
输入,计算出已经过了14天,现在的时间是06:
56:
07)
#include
voidmain()
{int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 C语言基础 语言 基础