《c语言经典练习题.pdf》由会员分享,可在线阅读,更多相关《c语言经典练习题.pdf(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、练习题汇编习题一 C语言概述一、单项选择题I.c 语 言 的 基 本 单 位 是。A)标识符 B)函数 C)表达式 D)语句2.C程序是由 构成的。A)主程序与子程序 B)主函数与若干子函数0 一个主函数与一个其他函数 D)主函数与子程序3.下 列字符 属 于 键 盘 符 号 的 是。A)n B)C)t D)b4.不是C语 言 提 供 的 合 法 的 关 键 字 是。A)Case B)Switch C)chher D)default5.正 确 的 标 识 符 是。A)b-2 B)?b C)b=3 D)b 36.在 C语言程序中,main函数的位置。A)必须作为第一个函数 B)必须作为最后一个函
2、数0可以任意 D)必须放在它所调用的函数之后7.下 列 符 号 中,不 属 于 转 义 字 符 的 是。A)B)x 00 C)00 D)098.以下 不是二进制代码文件A)标准库文件 B)目标文件 C)源程序文件 D)可执行文件二、填空题1.一个完整的C程序至少要有一个 函数。2.转义字符是由 符号开始的单个字符或若干个字符组成的。3.C语言的词类主要分为、和_ _ _ 等 6 类。4.C程序是由函数构成的,其中有并且只能有 个主函数。C程序的执行总是由函数开始,并且总是在 函数中结束。5.ANSI C标准中规定了 个关键字。6.构造标识符的规则是:三、应用题1.写出一个C程序的构成。2.C语
3、言以函数为程序的基本单位,有什么好处?3.编写一个程序,输入a,b,c 三个值,输出其中的最大者。4.什么叫程序流程图,用流程图描述算法有什么优点?流程图符号使用时,应遵循什么规则?5.求 1+2+3+100。用流程图描述算法。6.判断一个数n 能否同时被3 和 5 整除,用流程图描述算法。习 题 二 数据类型和运算一、选择题1.下 列 标 识 符 中 不 合 法 的 是。A)student_name B)name C)name8 D)3DS2.运 行 下 面 程 序 段 的 输 出 结 果 为.a=15;b=5;c=(a+b,a-b);printf(c=%d,c);A)c=20 B)c=10
4、 C)c=30 D)无具体输出3.若 a 为整型变量则以下语句:int a-2L;printf(w%dn,a);则 输 出 结 果 为。A)赋值不合法 B)输出-2 C)输出不确定 D)输出24.若 x,z 均 为 int型变量,则执行下面语句后,z 值为x=4;z-x*-x*-X;A)64 B)1 C)6 D)245.若 int类型占两个字节,则执行以下语句输出为int k=1;printf(w%d,%u n ,k,k);A)-l,-1 B)-l,65536 C)-1,32768 D)-1,655356.设在C 语言中,int类型数据占2 个字节,则 long类型占 字节,unsigned
5、int占 一 个字节,short类型占一 个字节。A)4,2,2 B)2,1,1 C)4,2,1 D)4,4,27.若 x 为 float型变量,则以下语句x=223.82748printf(,z%6.2fn,x);A)输出为223.8 B)输出为223.83 C)不能输出 D)输出为223.828.说明语句char s=0 9 2 ;使 s 包含了几个字符?A)1个 B)3个 C)4个 D)说明不合法,s 值不确定9.设 x 和 y 均为float型变量,则以下_ _ _ _ 语句是合法的赋值语句。A)+x B)y=float(3)C)y=(x%2)/10 D)*x=1010.已知w=l,x
6、=2,y=3,z=4,a=5,b=6,则执行下面语句a,b 的值为_(a=w x)&(b=y z)A)1 和 1 B)0 和 6 C)5 和 0 D)0 和 01 1 .设 m,n,a,b,c,d 均为 0,执 行 (m=a=b)|(n=c=d)”后,m,n 的值是1 2 .若 a,b,c 均 为 i nt 型变量,则执行以下语句后,a,b 值分别为-a=b=c=l+a|+b&+c;A)l,1 B)l,2 C)2,1 D)2,21 3 .下列程序的输出结果为#i nc l u d e m a i n()i nt m=0 1 0,n=1 0;p r i nt f (,z%d,%d n,+m,n-
7、);)A)1 1,1 0 B)9,1 0 C)0 1 0,9 D)1 0,91 4 .在下列运算符中,优先级别最高的运算符是 oA)=B)%C)=D)&1 5 .设整型变量x,y,z 均为3,表达式x+y+z+的结果是.A)9 B)1 2 O i l D)表达式出错1 6 .设 a=l,b=2,c=3,d=4,则表达式 a b?a:c =5&b=b)?l:0三、运行程序题1、下面程序的输出结果为#i nc lud e ma i n()i nt m=0 1 0,n=1 0pri ntf (,z%d,%d nn,+m,n);2、下 面 程 序 的 输 出 结 果 为。#i nc lud e ma
8、i n()i nt m=7,n=4;f loa t a=3 8.4,b=6.4,x;x=m/2+n*a/b+l/2;pri ntf (%f n,/,x)3、下面程序的输出结果为 o#i nc lud e#i nc lud e ma i nO i nt a=l,b=4,c=2;f loa t x=1 0.5,y=4.0,z;z=(a+b)/c+sqrt(d oub le)y)*1.2/c+x;pri ntf (z,%f n ,z);)四、编写程序题1.求下列表达式的值.(l)x+a%3*(i nt)(x+y)%2/4;设 x=2.5,a=7,y=4.7(2)(f loa t)(a+b)/2+(i
9、 nt)x%(i nt)y;设 a=2,b=3,x=3.5,y=2.52.写出下列表达式运算后的a的值,设原来a=1 2 o设a和 n 都已定义为类型变量。(1)a+=a (2)a-=2(3)a*=2+3 (4)a/=a+a(5)a%=(n%=2),n 的值等于 5(6)a+=a-=a*=a3.编写求3 5 9 4-8 的商和余数的程序。4 .已知,为 1 2 7,b 为 1 8,c为 1 5,d为 8 0,编写 值的程序。5 .从键盘输人三角形的三条边a,b,c,计算三角形的面积a re a 的程序。6 .从键盘输入一个字符,找出它的前导字符和后继字符,并按A S C H 值,从大到小顺序输
10、出这3个字符及其对应的ASCI I 码值的程序。习题三输入和输出一、选择题1 .下列程序的输出是一#i nc lud e ma i n()i nt a=l,b=2;pri ntf(M%d n”,a=a+l,a+6,b+2)A)2 B)3 C)4 D)12 .若 n 为 i nt变量,则执行以下语句后,其输出为n=3 2 7 6 7;pri ntf (%0 1 0 d n ,n);pri ntf (%1 0 d n ,n);A)0 0 0 0 0 3 2 7 6 73 2 7 6 7C)3 2 7 6 73 2 7 6 7B)3 2 7 6 70 0 0 0 0 3 2 7 6,D)输出格式描述
11、符不合法3 2 7 6 73 .设以下各变量均为i nt型变量,则以下函数调用不正确的是 oA)g e tc h a r()B)putc h a r(7 )C)putc h a r(/1 0 8z)D)sc a nf%d%*2 d“,&a,&d)4 .若 x 为 i nt型变量,y 是 f loa t型变量,所谓用输入语句形式为:sc a nf (x=%d,y=%f ,&x,&y);则将使x=2 0,y=1 6 6.6,正确的输入是A)2 0 1 6 6.6 B)x=2 0 y=1 6 6.6C)2 0 D)2 0,1 6 6.61 6 65 .执行语句 pri ntf (H e que st
12、i on i s i n c:toolsb ook.e xe );,其输出结果为 OA)H e que sti on i s i n c:toolsb ook.e xeB)H e que sti on i s i n c:oolsook.e xeC)H e que sti on i s i n c:toolsook.e xe D)出错,不能输出6.若d l,d 2,d 3,d 4均为c h a r型变量,则下面语句执行后结果为d l=T;d 2 =2 ;d 3 =3/;d 4 =4 ;pri ntf (%1 c d l);pri nf (%2 c n”,d 2);pri ntf (%3 c n
13、,d 3);pri ntf(%4 c n,d 4);A)1 B)10 1D)输出格式描述符不合法2 U 20 23 U U 30 0 34 U U U 40 0 0 4二、填空题1 .字符输入函数g e tc h a r()以 键结束输入,它 的 返 回 值 是。其功能是。2 .标 准 格 式 输 入 函 数 的 功 能 是,其 中“”号是,格式说明符是用来,字符表示,伊 字符表示,“c”字符表示,S 字符表示 O3 .字符输出函数putc h a r()用于输出,使用该函数时,需要在程序头部写入语句。4.标准格式输出函数ph i ntf()的功能是,其 中“”号是,格式说 明 符 是 用 来
14、,字符表示,字符表示,“c”字符表示,“s”字符表示 g”字符表示。5 .pri ntf()函数中反斜杠字符常量“n”表示、“t”表示、“v”表示、表示、表示 o三、运行程序题1 .有下面程序,运行结果是.m a i n()i nt a,b,c;a(b=(c=3)*5)*2-3;pri ntf (a=%d;b=%d;c =%d n”,a,b,c);2 .有下面程序,运行结果是,#d e f i ne sa r(x)x*xm a i n()i nt p;p=5 0 /sqr(5 0);pri nt(p=%d n”,p);)3.有下面程序,运行结果是ma i n()i nt a=5,b=1 0;f
15、 loa t x=3 4.7 3 1 2 5;c h a r c=A;pri nt(%3 d%3 d n”,a,b);pri nt C%d,a,x);pri nt C%7.2 f,%9.4 f n”,x,x);pri nt(,z%c,%d”,c,c);pri nt(%s,%1 0 s n,c ompute r,c ompute r);四、编写程序题1 .编写用sc a nf 语句输入2个整数并求其积的C 程序。2 .编写将b,e,i,j,i,n,g以单个字符赋给变量后显示b e i j i ng 的 C 程序。3 .输 入 1 个 1 6 进制数,并分别用1 6 进制数和1 0 进制数显示的C
16、 程序。4 .使 用 pri nt()函数编制程序显示下列图形。ab b bc c c c c5 .用下面的 sc a nf 函数输入数据 a=1 0,b=2 0,c l=z A c 2=,a ,x=1.5,y=-3.7 5,z=6 7.8,请问在键盘上如何输入数据?sc a nf C%5 d%5 d%c%c%f%f%*f,册“,&a,&b,&c l,&c 2,&x,&y,&z);习 题 四 语句和流程控制一、选择题1 .在 C 语言中,逻辑值“真”用什么表示?A)t r u e B)正数 C)非。整数 D)非 0的数2 .若给定条件表达式Gn)?(a+):(a)则其中表达式m和 等价。A)(
17、m=0)B)(m=l)C)(m!=0)D)(m!=l)3 .在 C 语言的if 语句中,用 作 判 断 的 条 件 表 达 式 为。A)算术表达式 B)逻辑表达式 C)关系表达式 D)任意表达式4.下面哪个表达式满足x为奇数时为真,x为偶数时为假。A)x%2=0 B)(x/2*2-x)=0 C)!(x%2)D)!x%2!=05.下 列 说 法 中 正 确 的 是。A)在 s wit ch 语句中一定要使用br e ak语句B)在 s wit ch 语句中不一定要使用br e ak语句C)br e ak语句是s wit ch 语句的一部分D)br e ak只能用于s wit ch 语句中6.C
18、语言中对于嵌套if 语句规定e ls e 总是与什么配对?A)第1个if B)与之前最近的ifC)缩进位值相同的if D)与之前最近的不带e ls e的if语句7.下列判断ch ar类型变量cl是为数字的最简单且正确的表达式是A)O =cl=O )&(cl=0)&(cl=9)D)(O =cl)8.下列if语句中,不正确的是。A)if (x y);B)if(x =y)x+=y;C)if (x!=y)s can f (z,%d ,&x)e ls e x =1D)if(x y)x+;y+)9.关于下面f or循环语句描述正确的是:f or(i=0,k=-匕 k 十 十)pr in t f(*);A)
19、循环结束条件不合法 B)循环是一个无限循环0循环体执行2次 D)循环体执行1次1 0 .下面的f or循环最多可执行 次。f or (x =0,y=0;(y!=99)&(x 4);x+);A)4 次 B)5 次 C)99 次 D)0 次1 1 .设i,x都 是in t类型,则下面的f or循环体可执行多少次?f or(i=0,x=0;i+y;x+=D;1 3.1 4.在C语言中,A)0 B)1在C语言中,A)0 B)1当wh ile语句构成循环的条件为C)t r u e D)非 0当d o-wh ile语句构成循环的条件为O t r t le D)非零时,结束循环。时,结束循环。1 5.下列循
20、环体执行多少次?k=7 0;wh ile(k=0)k=1A)70次B)69次C)无 限 次D)0次1 6.wh ile(!x)中的(!x)与下式中的 等价。A)x=0 B)x!=0 C)x=l D)x!=11 7.若x,y均 是in t型变量,则执行以下语句后的结果是f or(x=l;x 5;x+=2)f or(y=l;y 5;y+)pr in t f (H%2 d ,x*y);if(y=5)pr in t f n)A)1 2 3 4 B)2 3 4 5 0 2 3 4 6 9 1 2 D)2 3 43 6 9 1 2 6 9 1 2 1 5 6 9 1 21 0 1 5 2 01 8.若 x
21、,y 均 是 in t 型变量,则执行以下语句后,x,y 值是。f or (y=l,x=l;y=1 0)br e ak;if(x%2=l)x+=5;con t in u e;x-=3;)A)l,2 B)1 0,6 C)6,1 0 D)1 0,8二、填空题1.d o-W h ile 循环语句的执行过程是先 后,而 W h ile 循环的执行过程是先 后运行2.br e ak语句可在 或 中使用,con t in u e 语句只能在 中使用。三、运行程序题1 .设 a=3,b=4,c=5。写出下面逻辑表达式的值。(1)a+bc&b=c 的值是 o(2)A|+c&b-c 的值是 o(3)!(ab)&
22、!c|1 的值是。(4)!(x=a)&(y=b)&0。(5)!(a+b)+c T&b+c/2。2 .巳知程序,运行结果是 om ain()in t i;f or(i=l;i 6;i+)if (i%2)pr in t f(#);e ls e con t in u e;pr in t f($);)pr in t f (&n);)3 .已知下列程序,若输入1 2 3 4,运行结果是 o#in clu d e m ain()in t c;wh ile(c=g e t ch ar()!=,r/)s wit ch (c-2 )cas e 0:cas e 1:pu t ch ar(c+4);cas e 2:
23、pu t ch ar(c+4);br e ak;cas e 3:pu t ch ar(c+3);d e f au lt:pu t ch ar(c+2);br e ak;pr in t f (,z n);)4.有下面的程序,程 序 的 运 行 结 果 是。m ain()in t i,j,k;f or(i=0;i=3;i+)f or(j=0;j=2-i;j+)pr in t f(/z);f or (k=0;k=2*i;k+)pr in t f(*);pr in t f(“n”);f or(i=0;i=2;i+)f or(j=0;j=i;j+)pr in t f();f or (k=0;k=4-2*
24、i;k+)pr in t f(*);pr in t f(n);)四、完善程序题1.利用公式:求 的 近 似 值,直到最后一项的绝对值小于 为止。程序如下:#in clu d e m ain()in t s =l;f loat n=l,t=l,pi=0;wh ile (=1 e-6)Di邛i+;n=n+2;s 二 ;t=s/n;pi=pi*4;pir n t f Cpi=%f n,z,pi);2.用键盘输入一段文字,以 作 为 结 束 标 志,请编写一个对行、单词和字符计数的程序。其中,单词为一串不含空格、制表符或换行符的字符串。程序如下:#i nc l ud e#d e f i ne Y E
25、S 1#d e f i ne N O 0ma i n()i nt nl,nw,nc,i nw o r d;c h a r c;i nw o r d=N 0;nl=nw=nc=0;w h i l e(c=g e t c h a r()!)+nc;i f(c=,II c=Tl c=)i nw o r d=N 0 ;e l s e i f(i nw o r d=N 0)i nw o r d=;+nw;nc-;p r i nt f (/d t%d t%d n”,nl,nw,nc);)五、编写程序题1.有一函数:y=编程序,输入x,输出y 值。2.输入三边a,b,c,判断是否能构成三角形,如能构成三角形
26、,要用海伦公式计算其面积。注:(1)海伦公式:s=其中:p=(a+b+c)/2(2)构成三角形的条件是:a+b c,且|a b|3.试编写运输公司对用户计算运费程序 距离(S)越远,每公里运费越低。标准如下:S250km250WSC500500 S 10001000WSC20002000WSV30003000WS没有折扣2%折扣5%折扣8%折扣10%折扣15%折扣设每公里每吨货物的基本运费为P(p ric e 的缩写),货物重为W(Weight的缩写),距离为 S,折扣为d(discount的缩写),则 总 运 费 f(fre ig h t的缩写)计算公式为:f=p*w*s*(l-d)4.求解
27、满足条件1+2+3nlOOO的最小n 及 和 s 的值。5.利用循环语句求(直到第100项的和)6.输入一个整数,将其数值按小于10,1099,100999和 1000以上分类并显示。例如:输入732时,显示732 is 100 to 999。7.编写求S=。8.求 e*的台劳级数展开式的前N项之和。(-o o x c o)9.找 出 1 100之间的全部“同构数”。所 谓“同构数”是指一个数,它出现在它的平方数的右端。如:6 的平方是36,6 出现在36的右端,6 就是同构数。10.利用公式求cosx的近似值(精度为ICT):cosx=11.打印输出以下图案:*12.编写一个程序,模拟选举过
28、程,共有n 个人参加选举,候选人有4 位,分别用字符 A,B,C,D 表示,选某位候选人时,直接键入其代号,若键入除A,B,C,D以外其他字符时为无效票。选举结束后按得票多少的顺序输出候选人代号所得票敷。13 .打印输出由1,2,3,4 四个数字组成的4 位敷,并统计它的个数(允许该4 位数中有相同的数字,例如:1111,1122,1212等)。14.打印出来所有的“水仙花数”,所 谓“水仙花数”是指一个3 位数,其各位数字的R?立方和等于该数本身,例 如 1 53 就是一个“水仙花数”,因 为 1 53=1+5+3 ;1 5.求$=a+aa+aaa+.+aaa(n 个 a)之值,其 中 a
29、是一个数字。例如2+2 2+2 2 2+2 2 2 2+2 2 2 2 2 (5 个 2),n 由键盘输入。习 题 五 数组一、选择题1 .C 语言中,数 组 元 素 下 标 的 下 限 是。A)1 B)0 C)视说明语句而定 D)无固定下限2 .说明语句in t a 1 0 包括了 个数组元素。A)1 0 B)l l C)1 D)不确定3.有语句 char str l 1 0,str 2 1 0=bo o ks;则将字符串bo o ks赋给数组str l 的 正 确 语 句 是。A)str l=B o o ks”;B)str cp y(str l,str 2);C)str l=str 2;D
30、)str cp y(str 2,str l);4 .定义如下变量和数组,则 下 面 语 句 的 输 出 结 果 是。in t i;in t x 3 3 =1,2,3,4,5,6,7,8,9);fo r(i=0;i=O&ch a =9 ;a+)s=1 0*s+ch a O A)600 B)6 C)0 D)出错9.有如下程序,其运行结果是 om ain()in t n 3 ,i,j,k;fo r(i=0;i 3;i+)n i=0k=2;fo r (i=0;i k;i+)fo r(j=0;j k;j+)n j=n i+l;p r in tf%d/n ,n k);A)2 B)1 C)0 D)3二.填空
31、题1 .若 定 义 char s 2 0;则表示此数组有 个元素,其下标从 开始,最大2 .数组在内存中占一片连续的存储区,由 代表它的首地址。3,若有以下程序段 char str =/,x y ii 01 2 n”;p r in tf(%d”,str l en(str),执行后的输出结果是 o三、运行程序题1 .已知下列程序,其运行结果是 om ain()in t i;in t x 3 3 =1,2,3,4,5,6,7,8,9;fo r(i=0 i 3;i+)p r in tf(z,%d,x i 2-i);)2 .程序的运行结果是 om ain()static char a =,*;in t
32、 i,j,k;fo r (i=0;i 5;i+)p r in tf(n):fo r(j=O;j i;j+)p r in tf(w%c,);fo r (k=0;k 5;k+)p r in tf(%c,a k);)3 .程序运行结果 om ain()static in t s 3 :9.7,5,3,1,2,4,6,8);in t i,j,sl=O,s2=0;fo r(i=0;i 3;i+)fo r(j=0;j 3;j+)if(i=j)sl=sl+a i j;if(i+j=2 )s2=s2+a i j;)p r in tf(,z%d n%d n ,si,s2)4 .说明下列程序的功能m ain()i
33、n t i,j;fl o at a 3 3 ,b 3 3 ,x;fo r(i=0;i 3;i+)fo r(j=0;j 3;j+)scan f(%f,&x);a i j=x;fo r(i=0;i 3;j+)fo r(j=0;j 3;j+)b j i=a i j;fo r (i=0;i 3;i+)p r in tf n);fo r(j=0;j 3;j+)p r in tf(/,%fw,b i j);)四、完善程序题1 .下面函数的功能是将一个字符串str的内容颠倒过来。#in cl udem ain()in t str 8 0;in t i,j,(1);fo r(i=0;i 8 0;i+)scan
34、 f(u%c,&str i);fo r(i=0,j=str l en(str)(2);i j;i+;j-)k=str i;str j=str i ;str i=k;2 .输入一组实数给一个3 x 3 的矩阵,然后求出此矩阵两条对角线元素值的和。m ain()fl o at 3 3 ,sum=0;in t i,j;fo r(i=0;i 3;i+)fo r(j=0;j 3;j+)scan f(,f%f,(1);fo r (i=0;i 3;i+)sum=sum+(2)p r in tf(/z%f,sum);)3 .对输人中每一个数字出现的次数进行计数。#in cl udem ain()in t i,
35、ch,(1);fo r(i=0;i/O&ch=/9 );fo r (j=0;j 1 0;j+)p r in tf(数字%d 的出现次数是:%d n,n,n digit i);五、编写程序题1 .将字符数组str 2 中的全部字符拷贝到字符数组str l 中。采用str cp y 函数。拷贝时,0,也要拷贝进去,(T后面的字符不拷贝。2 .将输入的n个整数从小到大排序输出,再求出此n个整数中所有奇数和及所有素数的个数。3 .统计从键盘输入的字符中每个数字、字母、空格及换行符的个数。4 .打印下面杨辉三角形。111111112 13 3 14 6 4 15 1 0 1 0 5 16 1 5 2 0
36、 1 0 6 15 .输 入 1 0 个学生的分数,并将平均分数算出,打卬低于平均分数的人。6 .编程实现二维数组(n X n)转置(即行列互换)。7 .求两个矩阵的乘积,并打印输出。设 a 矩阵为3 行 4 列,b 矩阵为4行 3列,根据矩阵乘法的规则,其乘积为一个3 行 3列的c 矩阵。8 .找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最少,也可能没有鞍点。9 .打 印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,:方阵为:8 1 63 5 74 9 2要求打印输出由1n?的自然数构成的魔方阵。1 0 .任意输入2 0 个整数,统计其
37、正元素、零元素及负元素的个数,井计算正元素及负元素之和,然把统计和计算结果打印输出。1 1 .编制一个函数,对标准输入文件(终端键盘)中所包含的每个字母(不分大小写)出现的次数进行统计。函数中设计一个一维数组(长度为2 7),前 2 6 个下标变量顺序存放AZ(ax)的出现次数,最后一个下标变量存放非字母的字符个数。习 题 六 函数一、选择题1.以下描述中,不正确的是。A)调用函数时,实参可以是表达式B)调用函效时,将为形参分配内存单元C)调用函数时,实参与形参的原型必须一致D)调用函数时,实参与形参可以共用内存单元2.C洛言中函数能否嵌套调用和递归调用A)二者均不可 B)前者可,后者不可C)
38、前者不可,后者可 D)二者均可3.以 下 正 确 的 叙 述 是。A)C 语言的主函数是无参函数B)C 语言的主函数最多允许有1 个参数C)C 语言的主函数最多允许有2个参数D)C 语言的主函数可以有2 个以上参数4.C程序中若函数类型未加显式说明,则函数的隐含类型为 类型。A)v o i d B)I n t C)c h a r D)d o u b 1 e5.以下函数调用中,有 个实参。e x p d(a l,a 2,a 3),(a 4,a 5),a 7,a 8)A)4 B)3 C)8 D)56.若 x为 i n t型变量,则以下函数a c f 返回值为a c f (x)p r i n tf(
39、%d n ,x);A)v o i d 类型 B)i n t类型 C)无法确定 D)无返回值7 .对于C 程序的函数,下列叙述中正确的是 oA)函数的定义不能嵌套,但函数词用可以嵌套B)函数的定义可嵌套,但函数的调用不能嵌套C)函数的定义和调用均不能嵌套D)函数的定义和调用均可嵌套8 .有如下程序,运行结果为i n t d=l;f u n(i n t p)i n t d=5;d+=p+;p r i n tf (%d ,d);)m a i n()i n t a=3;f u n (a);d+=a+;p r i n tf(%d n ,d)A)8 4 B)9 6 0 9 4 D)8 59 .有如下程序,
40、运行结果为#i n c l u d e ma i n()i nt n=4,x=2,s;s=f u n(x,n);pr i nt f (,z s=%d n,r,s);)f u n(i nt x,i nt n)i f (n=1)r e t u r n(x);e ls e r e t u r n(x*f u n(x,n-1);A)s=1 2 B)s=1 6 C)s=2 0 D)s=2 4二、运行程序题1.写出程序的运行结果u ns i g ne d f u n(u ns i g ne d mu m)u ns i g ne d k=l;d o k*二 nu m%1 0;mu m/=1 0;w h i
41、le(nu m);r e t u r n(k);)ma i n()u ns i g ne d n=2 6;pr i nt f (/z%d n ,f u n(n);)2 .写出程序的运行结果#i nc lu d e L ong f u n(i nt n);long s;i f (n=1 I I n=2)s=2;e ls e s=n+f u n(n1);r e t u r n s;v oi d ma i nO pr i nt (n%ld ,f u n(4);3 .写出程序的运行结果.#i nc lu d e ma i n()i nt k=4,m=3,p;p=f u nc (k,m);pr i nt
42、 f (d%,p);p=f u nc(k,m);pr i nt f (d%n,p)f u nc(a,b);i nt a,b(s t a t i c i nt m=0,i=2;i+=m+lm=i+a+br e t u r n(m);4.写出程序的运行结果一#i nc lu d e i nt f u n(i nt x,i nt y);v oi d ma i nO i nt x=6,y=7,z=8;pr i nt f (%d”,f u n(x,y+,x+y),z );)i nt f u n(i nt x,i nt y)i nt z;z=x+y;r e t u r n z;三、修改下面程序1 .有如下
43、程序:ma i n()i nt x=7;s qu a r e (x);pr i nt f (,z n t h e s qu a r e i s%d x);)s qu a r e(x)i nt x;r e t u r n(x*x);2 .有如下程序:ma i n()f loa t x,y;s c a nf (f%f ,&x,&y);pr i nf t (,%f,mu l(x,y);)f loa t mu l(f loa t a,b)r e t u r n(a*b);3 .输入两个整数,求它们的差绝对值.#i nc lu d e ma i n()i nt x,y,z;s c a nf (d%d ,
44、&x,&y);z=f a b s(xy);pr i nt f (%d-%d 的绝对值为%d”,x,y,z);4.下面函数的功能是什么?i t oa(n,s)i nt n;s t a t i c i=0,j=0;i nt c;i f(n!=0)j+;c=n%1 0+zO;i t oa(n/1 0,s);s i+=c;)e ls e i f(j=O)s j+=O;s j =,(T ;i=j=0;)当输入值为负数时,函数能否行使此功能?应当如何修改。四、编写程序题1 .编程实现由主函数输人,n,按下述公式计算 的值:2 .按下述递归定义编写一个计算基级数的递归函数。3 .定义函数P p(c),如字符
45、c是小写母就转换成大写字母并通过pp返回,否则字符c不改变。4.菲波那契数的递归定义如下:除了 X。和 X I外,序列中的某个元素都是前两个元素之和。其序列为0,1,1,2,3,5,8,1 3,2 1,.5.编写一个函数,输入一个十六进制数,输出相应的十进制数。6.求 5 个字符串;“BAS IC”,“FO RT RAN”,“FoxBAS E”,“P AS CAL”,“C”,要求按字母顺序(由小到大)输出这组字符串。习 题 七 指 针一、选择题1.对于基类型相同的指针变量,不能进行 运算。A)+B)-C)=D)=2 .若已定义a为 i nt 型变量,则对p 的 说 明 和 初 始 化 正 确
46、的 是。A)i nt *p=a;B)i nt p=a;C)i nt *p=*a;D)i nt *p=&a;3 .若有下面的说明,指针s 所 指 字 符 串 的 长 度 为。c h a r *s=t N a m Ad d r e s s n/,;A)1 9 B)1 8 0 1 5 D)1 04.设 pl和P2均为指向同一个i nt 型一维数组的指针变量,k为 i nt 型变量,下列语句不正确的是A)k=*pl+*p2;B)k=*pl*(*p2);C)p2=k;D)pl=p2;5.若有以下说明语句,在诸个选项中对c 数组元素的正确引用为i nt c 4 1 5,(*p)5;p=c;A)p+1 B)
47、*(p+3)C)*(p+l)+3 D)*(*p+2)6.下列选项中不是C 语言ma i n函数正确表达形式的是A)ma i n(i nt a r g c,c h a r *a r g v );B)ma i n(a c,a v)i nt a c;c h a r *a v;C)ma i n(c,v)i nt c;c h a r *v :D)ma i n(a r g c,a r g v)i nt a r g c;c h a ra r g v ;7.设有以下语句,则 不是对a数组的正确引用(其中O W i W IO)。i nt a 1 0 =0,1,2,3,4,5,6,7,8,9,*p=a;A)a p
48、-a B)*(&a i )C)p i D)*(*(a+i)8.设有如下程序段:c h a r s t r h e llo;c h a r *pt r;pt r=s t r;执行完上面的程序段后,*(pt r +5)的值为 oA)O B)0 C)不确定的值 D)O 的地址9.若 x 为整型变量,pb 基类型为整型的指针变量,则正确的赋值表达式是一A)pb=&x B)pb=x C)*pb=&x D)*pb=*x1 0 .设有如下程序段:i nt a 1 2 =0 ,*p 3 ,*pp,i;f or(i=0;i 3;i+)p i =&a i*4;P P=P;则对数组元素的错误引用是A)pp O l
49、B)a 1 0 C)p 3 l D)*(*(p+2)+2)二、填空题1.*称为 运算符,&称为 运算符。2.设 i nt a 1 0 ,*p=a;则对a 3 的引用可以是P 和*(P)3 .设有 c h a r *a=xy z,则 pr i nt f(%s ,a)的输出是,而pr i nt f (z,%c ,*a)的输出是。4.指针p 的值为1 0 0 0,若 p 为整型指针,则 p+1 的值为;若 p 为浮点型指针,则 P+1 的值为;若 p为双精度型指针,则 P+1 的值为;若 p为字符型指针,则 P+1 的值为;若p为具有3 个整数的行向量指针,则 p+1 的值为。5.设 a,b,c 为
50、整型数,且a=2,b=3,c=4,则执行完以下语句后,a的值是a*=1 6+(b+)(+c);6.要使指针变量指向一个存储整型变量的动态单元。i n t *p;P=m a l loc(siz e of (i n t);7 .设有以下语句:s t a t i c i n t a 3 2 =1,2,3,4,5,6;i n t (*p)2;p=a;则(*(p+D+l)的值为;*(p+2)值是元素 的地址。8 .设有以下语句:s t a t i c i n t a 4 =2,4,6,8;s t a t i c i n t *p 4 =&a 0 ,&a 1 ,&a 2,&a 3;i n t *PP;PP