收藏 分销(赏)

C语言程序设计期末复习题.docx

上传人:精**** 文档编号:4611226 上传时间:2024-10-07 格式:DOCX 页数:81 大小:93.75KB
下载 相关 举报
C语言程序设计期末复习题.docx_第1页
第1页 / 共81页
C语言程序设计期末复习题.docx_第2页
第2页 / 共81页
C语言程序设计期末复习题.docx_第3页
第3页 / 共81页
C语言程序设计期末复习题.docx_第4页
第4页 / 共81页
C语言程序设计期末复习题.docx_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。T C语言程序设计复习题判断题: l C语言编写的源程序经过编译、 连接后, 如果没有错误, 则运行结果一定正确。( ) l 在C语言中, 变量是不区分大小写的, 如: a 和A是同一个变量。( ) l double类型数据的输入必须用格式”%lf”。( ) l while和do-while循环, 肯定是能够相互替换的。( ) l 若有定义int a = 2, 则语句printf(”%d”,a+); 的输出结果为3。( ) l 在循环体中, 使用continue语句, 能够跳出该循环。( ) l 表示式3 * 5 / 2 和表示式3

2、 / 2 * 5的值相等。( ) l 任何变量都必须要定义其类型。( ) l 表示式(double)(1/2)的值为0.5。( ) l 若有定义int a=0,b; 执行语句if(a=0) b=0; else b=1; 后, b的值是1。( ) l C语言中用于结构化程序设计的三种基本结构是if、 switch、 break。( ) l 设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2;则计算表示式: (m=ab)&(n=cd)后, n的值为2。( ) l 在可执行的C语言程序中有且只有一个主函数main(), 而且应该写在程序的最前面。( ) l 若有int x,则(x

3、+1)+是一个合法的c语言表示式。( ) l 设int x = 7, y = 5,则x *= y - 3后, x的值为14。( ) l 如果i的原值为3, 则执行语句: j = i+;后, j的值为3。( ) l do-while语句先执行循环体, 后判断循环条件, 因此循环体至少会执行一次。( ) l 表示式4.0 *(1 / 2) 的值为2.0。( ) l n是一个字符常量。( ) l 表示式 3.5%2 是合法的C语言表示式。( ) l C的任何类型数据在计算机内部都是以二进制形式存储的。( ) l 定义函数时, 必须要有形参和返回值。( ) l 在C程序中,main函数和自定义的函数都

4、能够有多个。( ) l 语句return(a, b); 则函数能够返回两个值。( ) l 传值调用时, 在函数中形参变量值改变后, 不改变实参变量的值。( ) l 构成数组的各个元素的数据类型不一定要相同。( ) l 有定义: int a5=10,11,12,13,14,*p=a;, 语句printf(”%d”,*p+);的输出结果为11。( ) l 在 C 程序中 , 函数既能够嵌套定义 , 也能够嵌套调用。( ) l 传值调用的形参只有在被调用时, 才被创立(分配存储单元)。( ) l 在C程序中, 若对函数类型未加说明, 则函数的隐含类型为void。( ) l 若a为一维数组名, 则*(

5、a+i)与ai等价。( ) l C文件使用前需要打开, 使用后需要关闭。( ) l 定义为void类型的函数, 其含义是调用函数后, 被调用的函数的返回值为任意的类型。( ) l C语言程序中, 若实参是变量, 当调用函数时实参和形参各占一个独立的存储单元。( ) l 在C语言中, 所有函数之间都能够相互调用。( ) l 若有定义char s1=”Hello”,s2=”world!”, 则strlen(s1) + strlen(s2) 等于strlen(strcat(s1,s2)。( ) l 若有定义int a,*p=&a,*q=p;则p指向a, q指向p。( ) l 若有定义int a,*p

6、=&a; char *t;由于指针的数据类型实际上是指定指针所能指向对象的数据类型, 因此不能将p赋给t。( ) l 若fp是指向某文件的指针, 且已读到该文件的末尾, 则C语言函数feof(fp)的返回值是0。( ) l 在使用fopen()函数时必须先定义一个类型为FILE的文件指针。( ) l void类型的函数一定无形参。( ) l 数组元素的下标必须是整数, 不能用实数。( ) l 若有定义语句”int a10;”则a10-9/2 是合法的数组元素。( ) l 若有定义语句”int a10,i=2;”, 则&ai与a+i等价。( ) l 数组定义语句”char c = Hello;”

7、与”char c =H,e,l,l,o;”等价。( ) l 语句”double *p=&x,x;”使指针变量p指向变量x。( ) l C语言规定, 实参应与其对应的形参类型一致。( ) l 系统判断字符串结束的标志是n。 ( ) l 若打开文件的方式为”w”而该文件已经存在, 则文件中原有数据被清空。( ) 单选题: l 能够把由高级语言编写的源程序翻译成目标程序的系统软件叫( B ) A. 源程序 B.编译程序 C. 汇编程序 D. 解释程序l 下列结构中, 不属于结构化程序设计中的3种结构的是( D ) A.循环结构 B.顺序结构 C.选择结构 D.网状结构l 程序中调用了库函数exit(

8、0), 必须包含头文件( B ) A.string.h B.stdlib.h C.ctype.h D.math.hl x、 y是整型变量, 执行语句scanf( x=%d, y=%d, &x, &y) ;使x和y的值分别为7和9, 正确的输入是( C ) A. 7 9 B. 7, 9 C. x=7, y=9 D. x=7 y=9l 条件”-6x4”, 对应的C逻辑表示式是( D ) A. x=-6 and x=4 B. -6=x=-6 | x=-6 & x=80: putchar(A); case x70: putchar(E);B. switch(x) case 2+4: k=A; defu

9、alt: k=E; case 3*5: k=B; C. switch(x)case 3+x: k=x-2; case 5*x: k=x+3;default: k=0; D. switch(x)case 4.5: k=0.5*x; case 6.8: k=8*x;default: k=0; l 判断下面的while循环体的执行次数( D ) i=5;k=10;while(i=1) i=k-;A B10次 C2次 D无数次l 能正确地定义符号常量的是( B ) A#define n=6 B#define n 6 C.#define n 6; D. #DEFINE N 10l 若有定义语句”char

10、 c=134; ”则变量c ( A )A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 包含4个字符l 设x和y均为int型变量, 则语句”x+=y; y=x-y; x-=y; ”的功能是( D ) A把x和y按从小到大排列 B把x和y按从大到小排列C无确定结果 D交换x和y中的值X=X+Y Y=X-Y X=X-Yl 下列运算符中, 优先级最低的是( D ) A. ?: B.& C./= D. ,l 若有条件表示式”x?a+:b-”, 则以下表示式中( B ) 等价于表示式xAx=0 Bx!=0 Cx=1 Dx!=1l 以下关于switch语句和break语句的描述, 只有(

11、C ) 是正确的A在switch语句中必须使用break语句Bbreak 语句只能用于switch语句中C在switch语句中, 能够根据需要使用或不使用break语句Dbreak语句是switch语句的一部分l 以下程序段的循环次数是( A )for (i=3; i=0; ) printf(”%d”, i-) ;A. 0次 B. 3次 C. 2次 D. 无数次l while(scanf(”%f”,&n),n0的值时循环终止 B. 当输入n=0的值时循环终止 C.scanf(”%f”,&n),n=a&c=A&c=0 ) s+=k-;A. 0次 B. 1次 C. 10次 D. 11次l 设整型变

12、量a为9, 使b不为4的表示式是( B ) 。A. b=a/2 B. b= (-a)-5 C. b=a3?4:5 D. b=a%5l 循环语句 for(x=0,y=0;(y!=123)|(xy)z=x; x=y; y=z;后x,y,z的值是( B ) 。A. 10,20,30 B. 20,30,30 C. 20,30,10 D. 20,30,20l 为了避免在嵌套的条件语句if-else中产生二义性, C语言规定: else子句总是与( B ) 配对。A. 缩排位置相同的if B. 其之前最近的没有else配正确ifC. 其之后最近的if D. 同一行上的ifl 下列各m的值中, 能使表示式m

13、%3=2&m%5=3&m%7=2值为1的是( A )。A. 23 B. 17 C. 8 D. 6l 以下4个选项中, 不能看作一条语句的是( D )。A. ; B. a=0,b=0,c=0; C. while(i-); D. if(b=0) m=1;n=2;l 逻辑运算符两侧运算对象的数据类型( D )。A. 只能是0或1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 能够是任何类型数据l 以下程序段输出结果是( C ) 。 int x=3; do printf(”%3d”,x-=2);while(!(-x);A1 B 3 0 C 1 -2 D死循环l 有定义”int a=5;

14、”, 语句”a+=a-=a+a;”, 执行后, 变量a的值为( C ) 。A. 10 B. 5 C. -10 D. -5l 下列各语句中, 能够将变量u、 s中最大值赋给变量t的是( C )。A. if(us)t=u; t=s; B. t=u; if(us)t=s;C. t=s; if(us)t=u; D. if(us)t=s; else t=u;l 下列能够正确表示字符型常量的是 ( B ) 。A.”a” B.t C.”n” D.18l 执行x=(6*7%8+9)/3;后, x的值为( C ) 。A1 B2 C3 D4l 设int a=3, b=6, c=9; , 下列表示式中值为0的是(

15、D )。A. 2*a=b B. a&b C. (3*a-c)|b D. b-ac-bl 下列语句中, 哪一个能够输出26个大写英文字母( D ) 。Afor(a=A;a=Z;printf(%c,+a);Bfor(a=A;aZ;a+)printf(%c,a);Cfor(a=A;aZ;printf(%c,+a);Dfor(a=A;a53 D. !(a-97)l 设有定义double x=2.4, y=3.56;, 则表示式(int)x+y的值为( A ) 。A. 5.56 B. 5.4 C. 5 D. 6 l 设有语句int n=10,i=4;, 则语句 n%=i+1;执行后, n的值是( A )

16、 。A. 0 B. 1 C. 2 D. 3l 下列语句将大写字母转换为小写字母, 其它字符不变, 其中正确的是( B ) 。Aif(ch=A|ch=A&ch=A&chA&chZ)?ch+32:ch; l 设有定义int a=0,b=0,t;, 则执行语句: t = a+&+b;后, a和b的值是( b! )。A. a=0,b=0 B. a=0,b=1 C. a=1,b=0 D. a=1,b=1l 若有int i;, 执行语句for(i=1;i+7) n-;printf(%d ,n);的输出结果是( D ) 。A10 9 B9 8 C10 9 8 D9 8 7l 执行下面程序段, 若从键盘输入3

17、3后, 其输出结果是( D ) 。 int x; scanf(”%d”,&x); if(x60) printf(”%d”,x); else if(x30) printf(”%d”,x);else if(x20) printf(”%d”,x);A.333333 B.3333 C.33 D.33 33 33l 设有函数调用语句: m=max(a , max(b,c); 则函数max有( C ) 个实参A. 1 B. 4 C. 2 D. 0l 程序中调用了库函数strlen, 必须包含头文件( D ) 。Astdlib.h Bmath.h Cctype.h Dstring.hl 下列数组s中所存放字

18、符串的长度为( B ) 。char s=a127btcdxdgn; A9 B10 C11 D18l 下列能正确定义一维数组a的语句是( D ) 。Aint a(20); Bint n=20, an; Cint n; scanf(%d, &n); D#define n 20int an; int an; l 若有 int a8=1,9,8,0,4,2,5,3;则数值为2的表示式是( C ) 。A.*a B.a6 C.*a+1 D.*(a+1)+5l 下列程序段的运行结果为( B ) 。char s=mn0gy; printf(%s,s);Amn0 Bmn CMngy Dmn gyl 若有定义ch

19、ar s8=broke,*ps=s;则不能代表字符k的表示式是( A ) 。Aps+3 Bs3 Cps3 D*(ps+3)l 下面的程序段中循环体执行次数( B ) 。char a5,*t=Boy,*s=t; int i=0;while( *s!=0 ) ai=*s; s+;A、 4次 B、 3次 C、 0次 D、 无数次l 对变量定义及初始化为: FILE *p=fopen(d:aa.txt,r); int x; float a; char s; 能正确的将文件中的整数、 实数、 字符输入到各变量的是( D ) 。A、 fgets(x,a,s,p); B、 fprintf(p,”%d,%f,

20、%c”,x,a,s);C、 fgetc(x,a,s,p); D、 fscanf(p,”%d,%f,%c”,&x,&a,&s);l 函数定义如下: void fun(int x, int y, int *a, int *b) *a=x+y; *b=x*y; 能够正确调用fun函数的是( B ) 。其中m、 n是已经定义过的int型变量。 A、 fun(5,8,m,n); B、 fun(5,8,&m,&n); C、 fun(5,8,*m,*n); D、 fun(m,n,5,8);l 定义char s4=Max,t; 执行下面语句段后输出结果是( B ) 。t=s0;s0=s2;s2=t; prin

21、tf(%s n, s);A、 Max B、 xaM C、 axM D、 xMal 以下叙述不正确的是( B ) 。A. main函数在C语言中必须有且只有一个BC程序的执行从main函数开始, 因此main函数必须放在程序最前面C. 函数能够带参数, 也能够不带参数D. 每个函数执行时, 按函数体中语句的先后次序, 依次执行每条语句l 在C程序中, 若对函数返回类型未加说明, 则函数的隐含类型为( A ) 。Aint Bdouble Cvoid Dcharl 有一个函数调用f( (1,2), 3*4 ), 则此次调用的是下面哪个函数f( B ) ? A. void f (int a);B. v

22、oid f (int a, int b);C. void f (int a, int b, int c);D. void f (int a, int b, int c,int d);l 若有定义语句”int a10;”则下列对a中数组元素正确引用的是( C ) 。Aa10 Ba2.5 Ca5%2 Da5+6l 下列哪个语句存在语法错误( C ) ? A. char c = A; B. char c = A;C. char c = AB; D. char c = AB;l 已知”char s = ”ab0cd”;”, 则数组s的长度为( ) , s所存放的字符串的长度为( ) 。BA.6和 5

23、B. 6和2 C. 5和2 D. 5和5l 若有说明:int i,j=1,*p=&i;则与i=j;等价的语句是( B ) 。Ai=*p; B*p=j; Ci=&j; Dp=&j;l 有数组定义语句”char a20;”, 则正确的输入语句为( D ) 。Ascanf(%s, &a); Bscanf(%s, a);Cgets(a20); Dgets(a) ;l p和q同为指向int类型的指针, 则下面哪个表示式会导致语法错误? ( A )Ap+q Bp-q Cp=q Dp=ql 下列语句定义p为指向double型变量x的指针, 其中正确的是( B ) 。Adouble x,*p=*x; Bdou

24、ble x,*p=&x;Cdouble *p=&x, x; Ddouble x; int *p; p=&x;l 已定义以下函数: int fun(int *p) return *p;, fun函数返回值是( C ) 。A不确定的值 B形参p中存放的值 C一个整数 D形参p的地址值l 下面程序的运行结果为( A ) 。int a = 1,2,3,4, *p=a;printf(%d , *p+);!printf(%d , *p);A1 2 B1 1 C2 3 D2 2l 若有定义: char str=”ABCD”,*p=str;则语句printf(”%dn”, *(p+4);的输出结果是( B )

25、 ( 已知A的ASCII码为65) 。A68 B0 C字符D的地址 D不确定的值l 下面( C ) 语句是从文件中读取一个字符。Ach=getc(); Bfputc(ch,fp); Cfscanf(fp,%c,&ch); Dscanf(%c,&ch);l 以”只读”方式打开文本文件c:1.txt, 下列语句中哪一个是正确的( B ) 。A fp=fopen(c:1.txt,a); B fp=fopen(c:1.txt,r); C fp=fopen(c:1.txt,wb); D fp=fopen(c:1.txt,r);l 已知数组的初始化语句为: int a10 = 1,2,3,4,5;则表示式

26、a5的值为( D ) 。A. 5 B. 1 C. 不确定的值 D. 0l 表示式”c=*p+”的执行过程是( A ) 。A复制*p的值给c后再执行p+ B复制*p的值给c后再执行(*p)+C复制p的值给c后再执行p+ D执行p+后将*p的值复制给cl 变量的指针, 其含义是指该变量的( B ) 。A值 B地址 C名字 D一个标志l 若有定义: char s = HappyNewYear;则下面那条语句能输出字符N( D ) ? A. printf(”%s”, s+5); B. printf(”%c”, s+5);C. printf(”%s”, *(s+5); D. printf(”%c”, *

27、(s+5);l C语言中函数返回值的类型是由( C ) 决定的。 A调用该函数的主调函数类型 Breturn语句中的表示式类型C定义函数时所指定的返回函数值类型 D调用函数时临时l 以下正确的函数说明是( A ) 。Aint fun(int , int); Bint fun(int x,y); Cint fun(x,y); Dint fun(int x; int y);l 在C语言中, 下面关于数组的描述正确的是( C )。A数组的大小是固定的, 但能够有不同类型的数组元素B数组的大小是可变的, 但所有数组元素的类型必须相同C数组的大小是固定的, 所有数组元素的类型必须相同D数组的大小是可变的

28、, 能够有不同的类型的数组元素l 假定int类型变量占用4个字节, 有定义: int x10=0,2,4;, 则数组x在内存中所占字节数是( D ) 。A3 B12 C10 D40l 下列程序段执行后, s的值是( A ) 。 S=1 s=10+2 s=120+3char ch=123; int i,s=0;for(i=0;chi=0&chi=9;i+) s=10*s+chi-0;为A123 B1 C3 D6l 要将20,30,40,50 存入数组b中, 下列正确的程序段是( A ) 。Aint i,b4; for (i=0; i4; i+) bi=(i+2)*10;Bint b4; b=20

29、,30,40,50; Cint b4; b1=20,b2=30,b3=40,b4=50; Dint b4; b4=20,30,40,50;l 设已有定义: char *st=how are you;下列程序段中正确的是( A ) 。Achar a12, *p=a+1; strcpy(p,st+4); Bchar a12; strcpy(+a, st);Cchar a12,*p;strcpy(p, st); Dchar a, *p=a+1;strcpy(p,&st4);l 若已有定义 char str10; 要将键盘输入的字符串a pear 赋给str, 应使用( B ) 。Ascanf(%s,

30、str); Bgets(str); Cstr=a pear; Dgetchar(str);l 若int a=1,b=2,*pa=&a,*pb=&b;, 执行语句*pa*=3;b*=2;printf(”%d,%d”,*pa,*pb);后输出( D ) 。A1,2 B1,4 C3,2 D3,4l 若有int a=100,b=200,t,*temp,*pa=&a,*pb=&b;则下列各语句组中, 不能实现变量a,b值互换的是( C ) 。At=a; a=b; b=t; Bt=*pa;*pa=*pb;*pb=t;Ctemp=pa;pa=pb;pb=temp; Da=a+b; b=a-b; a=a-b;

31、l 已知有语句FILE *fp; int x=123; fp=fopen(out.dat,w);,如果需要将变量x的值以文本形式保存到磁盘文件out.dat中, 则以下函数调用形式中, 正确的是( B ) 。Afprintf(%d,x); Bfprintf(fp,%d,x);Cfprintf(%d,x,fp); Dfprintf(out.dat,%d,x);l 以下正确的函数定义是( D ) 。Adouble fun(int x, int y) Bdouble fun(int x,y) z=x+y ; return z ; int z ; return z ;Cfun (x,y) Ddoubl

32、e fun (int x, int y) int x, y ; double z ; double z ;z=x+y ; return z ; z=x/y; return z ; l 设有定义语句char s =abcDE;, 则s5的值是( C ) 。A未知字符 B0 C0 DEl 当调用函数时, 实参是一个数组名, 则向函数传送的是( B ) 。A数组的长度 B数组的首地址 C数组每一个元素的地址 D数组每个元素中的值l 能对一维数组正确初始化的语句是( C ) 。Aint a5=0,1,2,3,4,5; Bint a5=;Cint a5=10; Dint a5=1,5; l 下面程序段的

33、输出结果是( A ) 。char a10= abcd;char b4= ABC;strcat(a,b);printf(”%s”,a);AabcdABC Babcd CABC DABCabcdl 设有下列定义 char s =12345, *p=s;则下列表示式中错误的是( D ) 。A*(p+1) B*(s+2) Cp=ABC Ds=ABC l 设有如下定义: int a=1,3,5,7,9;int *p; 则下列程序段的输出结果为( A ) 。 p=a;*(p+2)+=2;printf (”%d,%dn”,*p,*(p+2);A1,7 B1,5 C5,9 D3,7l 判断字符串s1与s2是否相等, 应当使用的语句是( D ) 。A.if(s1= =s2) B.if(s1=s2)C.if(s1= =s2) D.if(strcmp(s

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服