收藏 分销(赏)

《C程序设计》期末复习练习题及参考答案(4).doc

上传人:二*** 文档编号:4533459 上传时间:2024-09-27 格式:DOC 页数:12 大小:94KB
下载 相关 举报
《C程序设计》期末复习练习题及参考答案(4).doc_第1页
第1页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、C次序 方案 期末复习练习 题及参考答案 (4)一、单项选择 题 1有如下次序 片断 :#include main( )int a = 5, b = 4, x, y;x = 2 * a+;printf(a=%d, x=%dn, a, x);y = -b * 2;printf(b=%d, y=%dn, b, y);那么精确 的实行 结果是 。A) a=6, x=10b=3, y=8B) a=6, x=10b=3, y=6C) a=6, x=12b=3, y=6D) 以上均差错 2有以下次序 片断 :typedef struct int b; int p;TYPEA;void f(TYPEA c)

2、 c.b += 1; c.p += 2;main() TYPEA a =1, 2;f(a);printf(%d,%dn, a.b, a.p);那么次序 运行 后的输出结果是 。A) 2,3 B)2,4 C)1,4 D)1,23对于 以下次序 片断 ,描画精确 的选项是 。int x= -1;do x=x*x;while(!x);A)是去世 循环 B)循环 实行 两次 C)循环 实行 一次 D)有语法差错 4. 一个指针数组的定义 为 。A) int (*ptr)5; B) int *ptr5;C) int *(ptr5); D) int ptr5;5. 以下选项中不是合理 用户标识符的是 。A

3、) Double B) unsigned C) intege D) Char6. 已经清楚 ch是字符型变量,以下不精确 的赋值语句是 。A) ch=a; B) ch=a; C) ch=x61+3; D) ch=141;7. 经过下述赋值后,变量x的数据典范 是 。int x=3;double y;y = (double) x;A) int B) char C) float D) double8. 假设 以下次序 运行 时给变量x输出12,那么次序 实行 后的输出结果是 。int main() int x, y;scanf(%d,&x);y = x 12? x + 10: x 12;print

4、f(%dn,y);A) 0 B) 10 C) 12 D) 229. 假设 有定义 :int a=7; float x=2.5,y=4.7; 那么表达 式x+a%3*(int)(x+y) %2/4的值是 。A) 0.000000 B)2.500000 C) 2.750000 D) 3.50000010. 假设 有以下代码,那么以下表达 精确 的选项是 。int t = 0;while(t = 1).A) 循环 把持 表达 式的值为0 B) 循环 把持 表达 式的值为1C) 循环 把持 表达 式不合 法 D) 以上说法都差错 11. 已有定义 :char a=xyz, b = x,y,z;, 以下

5、表达 精确 的选项是 。A) 数组a跟 b的长度一样。 B) a数组长度小于b数组长度。C) a数组长度大年夜 于b数组长度。D) 上陈说 法都差错 。12. 设有定义 :int n1 = 0, n2, *p = &n2, *q = &n1;,那么以下赋值语句中与 n2 = n1;语句等价的是 。A) *p = *q; B) p = q; C) *p = &n1; D) p = *q;13. 已经清楚 函数的调用 方法 :fread(buf, SIZE, count, fp);,其中 参数buf的含义 是 。A) 一个整型变量,代表要读入的数据项总跟 。B) 一个文件指针,指向要读的文件。C)

6、 一个指针,指向要读入数据的存放所在 。D)一个存储区,存放待读的数据项。14. 假设 有定义 :char *p = abcd; char c=abcd;,那么以下语句中差错 的选项是 。A) printf(%cn, *(p+) );B) printf(%sn, p );C) printf(%cn, *(c+) );D)printf(%sn, c );15. 有以下次序 #include int f(int x) int y; if(x=0|x=1) return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(%dn,z);

7、次序 的运行 结果是 。A)0 B)9 C)6 D)8 16. T3-39阅读 以下次序 ,那么运行 结果为 。#include stdio.h fun() static int x=5; x+; return x; main() int i,x; for(i=0;i3;i+) x=fun(); printf(%dn,x); A)5 B)6 C)7 D)817. 下面次序 段的运行 结果是 。char str=ABC,*p=str; printf(%dn,*(p+3); A)67 B)0 C)字符C的所在 D)字符C 18. 下面的次序 段运行 后,输出结果是 。int i,j,x=0; st

8、atic int a88; for(i=0;i3;i+) for(j=0;j3;j+) aij=2*i+j; for(i=0;i8;i+) x+=aij; printf(%d,x); A)9 B)不判定 值 C)0 D)18 19. 以下次序 实行 后的输出结果是 。void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(%dn,b0); A)6 B)7 C)8 D)9 20. T3-28阅读 以下次序 段,那么次序 的输出结果为 。#include stdio.h #define M(X,

9、Y)(X)*(Y) #define N(X,Y)(X)/(Y) main() int a=5,b=6,c=8,k; k=N(M(a,b),c); printf(%dn,k); A)3 B)5 C)6 D)821. 对于 for(表达 式1; ;表达 式3)可理解为 。 A) for(表达 式1;0;表达 式3)B) for(表达 式1;1;表达 式3)C) for(表达 式1;表达 式1;表达 式3)D) for(表达 式1;表达 式3;表达 式3)22. 合理 的数组定义 是 。 A) int a6=string; B) int a5=0,1,2,3,4,5;C) char a=string

10、; D) char a=0,1,2,3,4,5;23. 给出以下定义 :char x =abcdefg;char y =a,b,c,d,e,f,g;那么精确 的表达 为 。 A) 数组x跟 数组y等价B) 数组x跟 数组y的长度一样C) 数组x的长度大年夜 于数组y的长度D) 数组x的长度小于数组y的长度24. 定义 如下变量跟 数组:int i;int x44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;那么下面语句的输出结果是 。 for(i=0;i4;i+) printf(%3d,xi3-i);A) 1 5 9 13 B) 1 6 11 16 C) 4

11、7 10 13 D) 4 8 12 1625. 有定义 语句: char s10;假设 要从终端给s输出5个字符, 差错 的输出语句是 。A)gets(&s0); B) scanf(%s,s+1); C)gets(s); D)scanf(%s, s1); 26. 以下次序 的运行 结果是 。#include char fun(char *s) if( *s =a& *s =z ) *s=*s-32; return *s;void main()char a20=Welcome,*p,ch; for(p=a;*p!=0;p+) ch=fun(p); putchar(ch); A) WELCOME

12、B) Welcome C) COME D) WEL 27. 以下次序 的运行 结果是 。#include int fun(int x) int y=1;static int z=4; z+=1;+y;return x+y+z ; void main() int i;for(i=1;i=3;i+)printf(%3d,fun(i);A) 8 10 12 B)8 10 12 C) 4 6 8 D) 4 6 828. 以下次序 的运行 结果是 。#include void main()int a34=1,2,3,4,9,7,10,6,-1,8,-5,5;int i,j,row=0,colum=0,m

13、ax;max=a00;for(i=0;i=2;i+)for(j=0;jmax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%d,max,row,colum);A) max=8,row=0,colum=2 B) max=4 ,row=2,colum=1 C) max=10 ,row=1,colum=2 D) max=1 ,row=1,colum=229. 以下次序 的运行 结果是 。#include void swap(int b) int *p,*p1,*p2; p1=&b0; p2=&b1; p=p1; p1=p1+1; p2=p;voi

14、d main() int a=9,3; swap(a); printf(%d,%dn,a0,a1);A)3,9 B) 10,4 C) 10,3 D) 9,3 30. 以下次序 的运行 结果是 。#include int b=3;int fun(int *a) b+=*a; return(b);void main() int a=2, b=2; b+=fun(&a);printf(%dn,b); A)4 B)7 C)5 D)8 二、填空题1.C语言 源次序 文 件的扩大年夜 名是.C ,经过编译后,生成 文件的扩大年夜 名是.OBJ ,经过连接 后,生成 文件的扩大年夜 名是.EXE 。(小写也

15、精确 )2.把a,b定义 成长 整型变量的定义 语句是long a,b;或者 long int a,b;3.设x跟 y均为整型变量,且x=3,y=2,那么1.0*x/y表达 式的值为1.54.已有定义 :float x=5.5; x=(int)x+2; 那么printf(%f, x);的输出值为7.0000005.已有定义 :int x=0,y=0;那么表达 式:(x+=2,y=x+3/2,y+5)后,变量x的值为 2 ,变量y的值为 3,表达 式的值为 8 。6.实行 以下语句for(i=1;i+=5;); 后,变量i的值为 7 。7. 当有 char *a5;其语义为定义 了一个名字为a的

16、数组,有5个字符型指针的元素。对以下定义 式停顿说明:int (*b)5;语义为: 定义 了一个名字为b的指针变量,它只能指向包含 5个int型元素的一维数组; int (*c)(char *),语义为: 定义 了一个名字为c的指针变量,它只能指向带有char *典范 形参, 前去 值典范 为int型的函数 ; 8. C语言 从源次序 的抄写 到上机运行 输出结果要经过: 编辑 、 编译 、 连接 、 运行 四个步伐 。9 设有命题:b介于a,c之间且a,b,c互不相当 ,写出对应的逻辑表达 式:ab&bc | cb&ba 。10 设有定义 :int n=123; float x=95.123

17、; 写出语句 printf(%d,%05d,%4.1f,%1.2f,n,n,x,x);的运行 结果 123,00123,95.1,95.12 。三、次序 运行 结果分析题1#include main()int n = 0;char c;while(c=getchar( ) != n)if (c=0 & c=9) n = n * 10 + c - 0;printf(value=%dn, n); 次序 运行 时输出为:2020 时,那么次序 运行 结果是:20202#includemain()int a = 1, b = 0; switch (a) case 1:switch (b) case 0

18、: a+; b+; printf(a=%d, b=%dn, a, b); break;case 1: a+; b+; printf(a=%d, b=%dn, a, b); break; case 2: a+; b+; printf(a=%d, b=%dn, a, b); break;运行 结果是:a=2, b=1a=3, b=23#include#includemain() printf(%dn, strlen(IBMn0121);次序 运行 结果是:94#includemain() int i, a10; int *p; p = a; for (i=0; i10; i+) scanf(%d,

19、 p+i); for (p=a; pa+10; p+) printf(%dt, *p); printf(n); for (p=a; pa+10; p+) if (*p % 2) printf(%dt, *p); 次序 运行 时输出为:12345678910 时,那么次序 运行 结果为:12345678910135795#include int mod(int x, int y) return (x % y);main() int m, n, r; scanf(%d %d, &m, &n); r = mod(m, n); while (r != 0) m = n; n = r; r = mod(

20、m, n); printf(The Result is :%dn, n);次序 运行 时输出:8118 ,那么运行 结果是:The Result is : 96. 当运行 以下次序 时,运行 结果是_ Shanghai _。#include #include #define MaxLen20void fun(char (*p)MaxLen, int n)char tMaxLen;int i,j;for(i = 0; i n - 1; i+)for(j = i + 1; j 0)strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);int main()char city

21、MaxLen=Guangzhou,Beijing,Shenzhen,Shanghai;fun(city,4);printf(%sn,city2);return 0;7以下次序 的输出结果是_。#include int main()int i,j;for(i = 0; i 3; i+) for(j = 0; j 3; j+) if(i = j) printf(%-2d, j + 1); else putchar(#); putchar(*); printf(n);return 0;8. 当运行 以下次序 时,从键盘输出如下内容后回车:2673 ,那么下面次序 的运行 结果是_66977_。#in

22、clude int main()int c;while( (c = getchar() != n) switch(c-2) case 0:case 1: putchar(c+4);case 2: putchar(c+4); break;case 3: putchar(c+3);case 4: putchar(c+3);break;printf(n);return 0;9. 有以下次序 D #include void fun(char *t,char *s) while(*t!=0) t+; while(*t+=*s+)!=0); main() char ss10=acc,aa10=bbxxyy

23、; fun(ss,aa); printf(%s,%sn,ss,aa); 次序 的运行 结果是_accbbxxyy,bbxxyy _。四、次序 填空题阅读 次序 ,在标有下划线的空白 处填入适当 的表达 式或语句,使次序 残缺并符合 题目 恳求 。1. 以下次序 将输出的十进制数以十六进制的方法 输出。#include main() char b17= 0123456789ABCDEF; int c64,d, i=0, base = 16; long number; printf(请输出一个十进制数n); scanf(%ld, &number); do ci = number % base; n

24、umber = number / base;i+; while (number != 0); printf(对应的十六进制数为: n); for(-i; i=0; -i) d = ci; printf(%c, bd); printf(n);用户从键盘任意 输出一个数字表示 月份值n,次序 表示 该月份对应的英文表示 ,假设 n不在112之间,那么输出“Illegal month。#include main()int n;static char monthName20=Illegal month, January,February,March, April, May, June,July, Au

25、gust,September, October, November, December;printf(Input month number:);scanf(%d, &n);if (n = 1)printf(month %d is %sn, n, monthNamen); elseprintf(%sn, monthName0);3设有一元二次方程Ax2+Bx+C=0,以下次序 揣摸 方程根的情况,并打算 现实上 根,次序 中定义 变量a,b,c分差错 应方程的系数A、B、C,请补齐代码使次序 能够 精确 运行 。 #include #include int main() _ void fd(do

26、uble, double, double); _double a,b,c;printf(请输出一元二次方程的系数:a=?,b=?,c=?n);scanf(a=%lf,b=%lf,c=%lf, _&a, &b, &c _);fd(a,b,c);return 0;void fd(double a, double b, double c)double disc,x1,x2;if( fabs(a) = 1e-6) printf(不是一元二次方程n ); disc = b * b - 4 * a * c;if(_fabs(disc) 1e-6) x1 = (-b + sqrt(disc) ) / ( 2 * a );x2 = (-b - sqrt(disc) ) / ( 2 * a );printf(有2个不相当 的实根:x1 = %8.4f, x2 = %8.4fn, x1, x2 ); else printf(无实根n );精选可编辑

展开阅读全文
部分上传会员的收益排行 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-2024 宁波自信网络信息技术有限公司  版权所有

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

gongan.png浙公网安备33021202000488号   

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

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

客服