2023年C语言程序设计复习题库

上传人:回**** 文档编号:166828259 上传时间:2022-11-01 格式:DOCX 页数:55 大小:59.16KB
收藏 版权申诉 举报 下载
2023年C语言程序设计复习题库_第1页
第1页 / 共55页
2023年C语言程序设计复习题库_第2页
第2页 / 共55页
2023年C语言程序设计复习题库_第3页
第3页 / 共55页
资源描述:

《2023年C语言程序设计复习题库》由会员分享,可在线阅读,更多相关《2023年C语言程序设计复习题库(55页珍藏版)》请在装配图网上搜索。

1、一、填空1. break语句通常用于 switch / 循环 中。2. C 语言对数组下标的引用一般从 0 开始。3. C 语言中,一个函数一般由两个部分组成,它们是 函数首部 和 函数体 。 4. C标准库函数中,字符串的解决函数包含在 string.h 头文献中,数学函数包含在 math.h头文献中。5. C程序的运营需要通过 编译 和 链接 两步进行。6. C程序中用 /*/ 括起来的内容是程序的注释语句。7. C语言函数是由函数首部和函数体两部分组成。其中,函数首部涉及 函数类型 、 函数名 和 函数参数 。8. C语言提供的三种逻辑运算符是 &,/,! 。9. C语言源程序通过编译后

2、,生成文献的后缀名是 .c 。10. C语言源程序通过连接后,生成文献的后缀名是 .exe 。11. C语言中,关系表达式和逻辑表达式的值是 1/0 。12. C语言中的标记符只能由三种字符组成,他们是 字母,数字,下划线 。13. C语言中的每条基本语句以 ; 作为结束符,每条复合语句以作为结束符。14. C语言中函数返回值的类型是由 函数类型 决定的。15. C源程序的基本单位是 函数 。16. int a = 2, b = 3; 表达式 a b ? a + : + b的值为 4 。17. int x=1,y=1,z=1; x+=y+=z; 则表达式xbc的值是 0 。19. 定义一个指针

3、p,它指向一个有6个整型元素的一维数组,定义语句为 int *p=a6 ; 。20. 定义一个指针数组p,它有4个元素,每个指针指向一个整型数据,定义语句为 int *p4; 。 21. 赋值语句是由 = 加上一个分号构成。22. 构成数组的各个元素必须具有相同的 类型 。23. 关系表达式x+y5的相反表达式为 x+y!5 。24. 函数strlen(12340xy)的值为: 9 。25. 函数的形参在未被调用前不分派空间,函数形参的数据类型要和实参相同。26. 函数体用开始,用结束。 27. 结构化设计中的三种基本结构是 顺序,选择,循环 。28. 假如一个函数无返回值,定义它时函数类型应

4、是 void 。29. 若x、y、z均为int型变量,则描述“x或y中有一个小于z”的表达式是 (x|y)=10 or a=0|a=10&a=10|a=A & ch=Z)?ch+32:ch的值是 BA) Z B) a C) z D) A31、表达关系X =Y =Z的C语言表达式为 AA. (X =Y)&(Y =Z) B. (X =Y)AND(Y =Z)C. (X =Y =Z) D. (X =Y)&(Y =Z)32、假如a=4,b=3,c=2,d=1, 则条件表达式ab?a:cd?c:d的值是 AA) 1 B) 2 C) 3 D) 433、语句printf(%d n,12&12);的输出结果是

5、BA. 12 B. 1 C. 24 D. 0 34、若有条件表达式 (exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是 B A. (exp=0) B. (exp!=0) C. (exp=1) D. (exp!=1) 35、若规定在if后一对圆括号中表达a不等于0的关系,则能对的表达这一关系的表达式 DA) a0 B) !a C) a=0 D) a36、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为 C x=y=z=1; t=+x | +y & +z;A) 不定值 B) 4 C) 1 D) 037、对表达式for( 表达式1; ;表达式3) 可理解为 BA

6、.)for(表达式1;0; 表达式3) B)for(表达式1;1; 表达式3)C)for(表达式1; 表达式1; 表达式3) D)for(表达式1; 表达式3; 表达式3)38、语句while(!e);中的条件 !e 等价于 AA) e=0 B) e!=1 C) e!=0 D) e39、下面程序段的运营结果是 D for(i=1;i=5;) printf(%d,i); i+;A) 12345 B) 1234 C) 15 D) 无限循环40、设执行变量y值为3,执行下列循环语句后,变量y的值是 C do y+; while(y+4); (A)3 (B)4 (C)5 (D)641、执行语句:for

7、(i=1;i9; i+)后; 变量i的值是 B (A)10 (B)9 (C)不定 (D)11 42、执行语句:for(i=1;i=9; i+);后变量i的值是 AA. 10 B. 9 C. 不定 D. 11 43、在定义一个一维数组时,不能用来表达数组长度的是 D A)常量 B)符号常量 C)常量表达式D)已被赋值的变量44、判断字符串是否相等,应当使用 D (A)if(a=b) (B)if(a=b) (C)if(strcpy(a,b) (D)if(!strcmp(a,b)45、执行程序段char str20=a,b,c,0; int len=strlen(str); 变量len的值 C A.

8、 20 B. 4 C. 3 D. 3或4或20 46、若有说明:char c10=E,a,s,t,0;,则下述说法中对的的是 DA) c7不可引用 B) c6可引用,但值不拟定C) c4不可引用 D) c4可引用,其值为空字符47、运营下面程序段的输出结果是 A char s110=S,e,t,0,u,p,0; printf(%s,s1);A) Set B) Setup C) Set up D) Set48、以下程序段的输出结果是 B char s =an apple; printf(%dn,strlen(s);A) 7 B) 8 C) 9 D) 1049、下列一维数组初始化语句中,对的且与语

9、句float a =0,3,8,0,9;等价的是 DA) float a6=0,3,8,0,9; B) float a4=0,3,8,0,9;C) float a7=0,3,8,0,9; D) float a5=0,3,8,0,9;50、如有定义语句int a=1,8,2,8,3,8,4,8,5,8; ,则数组a的大小是 AA) 10 B) 11 C) 8 D) 不定51、若二维数组a有m列,则在aij前面的元素个数为 BA. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+1 52、在定义int a56;后,数组a中的第10个元素是 CA) a25 B) a24 C)

10、a13 D) a1553、以下二维数组 a 的对的说明是 C A) int a1,1; B) float a(3,4); C) double a14; D) float a(3)(4);54、在定义int a54; 之后,对a的引用对的的是 CA) a24 B) a1,3 C) a43 D) a5055、若有说明:int a34; 则对a数组元素的对的引用是 C(A)a24 (B)a1, 3 (C)a1+10 (D)a(2)(1) 56、以下对二维数组a 的对的说明是 CA. int a3 B. float a(3,4) C. double a14 D. float a(3)(4) 57、若有

11、定义:int b3;则数组元素的不合法引用是 D(A) b1 (B) b0 (C)b2 (D) b3 58、对以下说明语句 int a10=6,7,8,9,10; 的对的理解是 BA)将5个初值依次赋给a1 至a5 B)将5个初值依次赋给a0 至a4C)将5个初值依次赋给a6 至a10 D)由于数组长度与初值的个数不相同, 所以此语句不对的59、设已定义:int x24=1,2,3,4,5,6,7,8; 则元素x11的对的初值是 A A. 6 B. 5 C. 7D. 160、在int a 3=1,3,2,4,5,6,0中a11的值是 DA、0 B、6 C、5 D、 261、设已定义:int x

12、24=1,2,3,4,5,6,7,8; 则元素6相应的是 A A. x11 B. x12 C. x21D. x2262、以下对的的函数定义形式是 AA.double fun(int x, int y)B.double fun(int x ;int y)C. double fun(int x, int y);D. double fun(int x,y);63、有如下函数调用语句 func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,具有的实参个数是 BA) 3 B) 4 C) 5 D) 有语法错误64、在C语言中,全局变量的存储类别是 AA) static B) ext

13、ern C) void D) register65、在C语言中,以下说法中对的的是 AA. 实参与其相应的形参各占用独立的存储单元B. 实参与其相应的形参占用同一个存储单元C. 只有当实参与形参同名时才占用同一个存储单元D. 实参占用存储单元,但形参是虚拟的,不占用存储单元66、C语言中,简朴变量做实参时,它和相应的形参之间的数据传递方式是 B(A)地址传递 (B)单向值传递(C)由实参传给形参,再由形参传递给实参(D)同用户指定传递方式67、在一个源文献中定义的全局变量的作用域为 BA. 本文献的所有范围 B. 从定义该变量开始至本文献结束C. 本函数的所有范围 D. 本程序的所有范围 68

14、、假如一个函数位于C程序文献的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量 CA) 为全局变量,在本程序文献范围内有效B) 为局部变量,只在该函数内有效C) 为局部变量,只在该复合语句中有效D) 定义无效,为非法变量69、调用函数时,当实参和形参都是简朴变量时,它们之间数据传递的过程是 DA) 实参将其地址传递给形参,并释放原先占用的存储单元B) 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C) 实参将其值传递给形参,调用结束时形参再将其值回传给实参D) 实参将其值传递给形参,调用结束时形参并不将其值回传给实参70、以下叙述中,不对的的是 BA) 在同一C程序

15、文献中,不同函数中可以使用同名变量B) 在main函数体内定义的变量是全局变量C) 形参是局部变量,函数调用完毕即失去意义D) 若同一文献中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用71、对于C语言的函数,下列叙述中对的的是 AA) 函数的定义不能嵌套,但函数调用可以嵌套B) 函数的定义可以嵌套,但函数调用不能嵌套C) 函数的定义和调用都不能嵌套D) 函数的定义和调用都可以嵌套72、数组定义为:int a45; 引用“a1+3”表达的是 A(A)a数组第2行第4列元素的地址 (B)a数组第2行第4列元素的值 (C)a数组第4行的首地址 (D)a数组第1行第3个元素的地址 7

16、3、若定义:int a=511,*b=&a; 则printf(%dn,*b);的输出结果为 DA. 拟定值 B) a的地址 C) 512 D) 51174、若有int a10=1,2,3,4,5,6,7,8,9,10;int *p=a;则值为9的表达式是 BA. *p+9 B. *(p+8) C. *p+=9 D. p+8 75、若有说明语句:int a,b,c,*d=&c;,则能对的从键盘读入三个整数分别赋给变量a、b、c的语句是 A。A) scanf(%d%d%d,&a,&b,d); B) scanf(%d%d%d,&a,&b,&d);C) scanf(%d%d%d,a,b,d); D)

17、scanf(%d%d%d,a,b,*d);76、设有语句”int a=1,3,5,7,9,*p=&a0;”则值为7的表达式是 CA. *p+3 B. *p+4 C. *(p+3) D. *(p+4)77、已知赋值语句wang.year=2023;则wang的变量类型是 CA. 字符或文献 B. 整型或实型 C. 共用或结构 D. 实型或指针78、设有以下说明语句:struct stu int a; float b; stutype;则下面的叙述不对的的是 CAstruct是结构体类型的关键字Bstruct stu是用户定义的结构体类型名Cstutype是用户定义的结构体类型名D. a 和 b都

18、是结构体成员名79、下列关于结构的语法错误的是 DA结构是由用户自定义的一种数据类型B结构中可设定若干个不同数据类型的成员C结构中成员的数据类型可以是另一个已定义的结构D在定义结构时,可认为成员设立默认值80、说明一个结构体变量时,系统分派给它的内存是 AA各成员所需内存量的总和B结构中第一个成员所需内存量C成员中占内存量最大者所需的容量D结构中最后一个成员所需内存量三、程序理解1以下程序运营结果是 #include int main()int a,b,c,d;a=b=5; c=(a+)+(a-)-(a+); d=(b+)-(+b)+(-a); printf(a=%d,b=%dn,a,b);p

19、rintf(c=%d,d=%dn,c,d);return 0;2以下程序运营结果是#include int main()int x=1,a=0,b=0;switch(x) case 0: b+; case 1: b=+a; case 2: a+;b+;break; case 3: +a;+b; printf(a=%d,b=%dn,a,b);return 0;3以下程序运营结果是 #include int main()int a,b,c=246;a=c/100%9; b=(1)&(-1)|0; printf(%d,%dn,a,b); return 0; 4以下程序运营结果是 #include i

20、nt main()int a=-1, b=4, k;k=(+a=0)&(b-=0); printf(%d,%d,%dn,k,a,b);return 0; 5以下程序运营结果是 #include int main()int a=5,b=60,c;if (ab) c=a*b;printf(%d*%d=%dn,b,a,c); elsec=b/a;printf(%d/%d=%dn,b,a,c);return 0; 6以下程序运营结果是 #include int main()int a=60,b=5,c;if (ab) c=a*b;printf(%d*%d=%dn,b,a,c); elsec=b/a;p

21、rintf(%d/%d=%dn,b,a,c);return 0; 7以下程序运营结果是 #include int main()int a=1,b=10;do b-=a;a+; while(b-0);printf(%d,%dn,a,b);return 0;8以下程序运营结果是#include int main()int x; for(x=10;x3;x-) if(x%3) x-; -x; -x; printf(%d ,x);return 0;9以下程序运营结果是 #include int main()int i;for(i=1;i6;i+) if (i%2!=0) printf(A);conti

22、nue;printf(B); printf(n);return 0; 10以下程序运营结果是 #include int main()int i;for(i=1;i6;i+) if (i%2=0) printf(A);break;printf(B); printf(n);return 0; 11以下程序运营结果是 #include int main()int i,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+) printf(%d ,xii);printf(n); return 0;12以下程序运营结果是 #include int main()int i,n=0,0,0,

23、0,0;for(i=1;i=4;i+)ni=ni-1*2+1;printf(%d ,ni);return 0;13以下程序运营结果是 #include int main()int a =5,4,3,2,1,i,j;long s=0;for(i=0;i5;i+) s=s*10+ai;printf(s=%ldn,s);return 0;14以下程序运营结果是 #include int main()char s=abcdef;s3=0;printf(%sn,s);return 0;15以下程序运营结果是 #include #include int main()int a33=1,2,3,4,5,6,

24、i,j,s=0;for(i=0;i3;i+)for(j=0;ji;j+)s+=aij;printf(%dn,s);return 0; 16以下程序运营结果是 #include #include int main()char p110=abc, p210=ABC, str50=xyz;strcpy(str+2,strcat(p1,p2);printf(%sn,str);return 0; 17.以下程序运营结果是_#include int fun(int x,int y,int z) z=x*x+y*y;int main() int a=31; fun(5,2,a); printf(%dn,a)

25、; return 0; 18.以下程序运营结果是_#include int fun(int x,int y,int z) z=x*x+y*y;return z;int main() int a=31; a=fun(5,2,a); printf(%dn,a); return 0; 19.以下程序运营结果是_#include f(int b , int n) int i, r=0; for(i=0; i=n; i+) r=r+bi; return r; int main() int x, a= 2,3,4,5,6,7,8,9; x=f(a, 3); printf(%dn,x); return; 2

26、0.以下程序运营结果是_#include f(int b , int n) int i, r=1; for(i=0; i=n; i+) r=r*bi; return r; int main() int x, a= 2,3,4,5,6,7,8,9; x=f(a, 3); printf(%dn,x); return;21.以下程序运营结果是_int func(int a,int b) return(a+b); int main() int x=2,y=5,z=8,r; r=func(func(x,y),z);printf(%dn,r); return 0; 22.以下程序运营结果是_#includ

27、eint f(char s ) int i,j; i=0;j=0; while( sj!= 0) j+; return (j-i); int main()printf(%dn,f(ABCDEF);return 0; 23.以下程序运营结果是_#include int f(int a) int b=0,c; c=3; b+ ; c+; return (a+b+c); int main() int i; for(i=0;i3;i+) printf(%dn,f(i); return 0;24.以下程序运营结果是_#include int f(int a) int b=0; static c=3; b

28、+ ; c+; return (a+b+c); int main() int i; for(i=0;i3;i+) printf(%dn,f(i); return 0;25.以下程序运营结果是_#include int fun3(int x)static int a=3; a+=x; return(a); void main()int k=2,m=1,n; n=fun3(k); n=fun3(m); printf(%dn,n); 26.以下程序运营结果是_#include int m=13;int fun2(int x, int y) int m=3; return(x*y-m); int ma

29、in() int a=7, b=5; printf(%dn,fun2(a,b)/m); return 0;27.以下程序运营结果是#include int main() int a=100,b=10; int *pointer_1, *pointer_2; pointer_1=&a; pointer_2=&b; printf(a=%d,b=%dn,a,b); printf(*pointer_1=%d,*pointer_2=%dn,*pointer_1,*pointer_2); return 0;28.以下程序运营结果是#include int main() int *p1,*p2,*p,a,b

30、; a=11,b=121; p1=&a; p2=&b; if(ab) p=p1;p1=p2;p2=p; printf(a=%d,b=%dn,a,b); printf(max=%d,min=%dn,*p1,*p2); return 0;29.以下程序运营结果是 #includevoid main() int i,j,(*p)2; int b32 = 1, 2, 3, 4, 5, 6; p = b; for(i=0; i3; i+) for(j=0; j2; j+) printf(%d ,pij); printf(n); 30.以下程序运营结果是 #includevoid main() int i

31、,*p2; int a3 = 1, -2, 9; int b4 = 4, 7, 0, 10; p0=a; p1=b; for(i = 0; i 3; i+) printf(%dt, *(p0+i); printf(n); for(i = 0; i 4; i+) printf(%dt, *(p1+i); printf(n);31.以下程序运营结果是 #include int main() struct student long int num; char name20; char sex; char addr20; a=10101,Li Lin,M,123 Beijing Road;printf

32、(NO.:%ldnname:%snsex:%cnaddress:%sn,a.num,a.name,a.sex,a.addr); return 0;32.以下程序运营结果是#include struct student int num; char name20; char sex; int age; ;struct student stu3=10101,Li Lin,M,18,10102,Zhang Fun,M,19, 10104,Wang Min,F,20; int main() struct student *p; printf( No. Name sex agen); for (p=stu

33、;pnum, p-name, p-sex, p-age); return 0; 四、编程1设有一个函数如下。编程,输入x,求y值。y=#include#includeint main()float x,y;scanf(%f,&x);if (x0) y=sqrt(x);else if(x0)y=(x+1)/(x*x+2);else y=0;printf(x=%6.2f,y=%6.2fn,x,y);return 0;2下面程序的功能是计算1-3+5-7+-99+101的值存在s中。#include int main()int i,t=1,s=0;for(i=1;i=101;i+=2)s=s+i*t

34、;t=-t;printf(sum=%dn, s);return 0;#include int main()int i=1,t=1,s=0;while(i=101)s=s+i*t;t=-t;i+=2;printf(sum=%dn, s);return 0;#include int main()int i=1,t=1,s=0;dos=s+i*t;t=-t;i+=2; while(i=101);printf(sum=%dn, s);return 0;3一个整数被5除余3,被7除余5,被9除余7,这个数最小是几?#includeint main()int i=8;doif (i%5=3) & (i%7

35、=5) & (i%9=7)printf(%5dn,i); break;i=i+5; while(1);return 0;4. 编写一程序,将两个字符串连接起来,规定不用strcat函数。#include#includevoid main() char s180,s240; int i=0,j=0; printf(input string1:n); gets(s1); printf(input string2:n);gets(s2); i=strlen(s1); while( s2j!=0) s1i+=s2j+; s1i=0; puts(s1); 5写一个函数计算2023以内最大的10个能被13

36、或17整除的自然数之和。 输出格式:sum=23456#includevoid main() long sum; sum=sum2023(); printf(sum=%ldn,sum);long sum2023()long sum=0; int i,count=0; for(i=2023;i-) if(i%13=0|i%17=0) count+; sum+=i; if(count=10) break; return sum;6已知圆柱高h=5,规定用scanf输入圆的半径,求出圆周长,圆面积和圆柱体积。#include int main ()float h=5,r,l,s,vz; float

37、pi=3.1415926; printf(请输入圆半径r:); scanf(%f,&r); /规定输入圆半径r l=2*pi*r; /计算圆周长l s=r*r*pi; /计算圆面积s vz=pi*r*r*h; /计算圆柱体积vz printf(圆周长为: l=%6.2fn,l); printf(圆面积为: s=%6.2fn,s); printf(圆柱体积为: vz=%6.2fn,vz); return 0; 7. 试编写程序输出100300间的所能同时被3和5整除的数。#include int main()int i;for(i=100;i=300;i+)if(i%3=0)&(i%5=0)pr

38、intf(%5d,i);return 0;8一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共通过多少米,第10次反弹多高。#include int main() double sn=100,hn=sn/2; int n; for (n=2;n=10;n+) sn=sn+2*hn; /*第n次落地时共通过的米数*/ hn=hn/2; /*第n次反跳高度*/ printf(第10次落地时共通过%f米n,sn); printf(第10次反弹%f米n,hn); return 0; 9以下程序从终端读入数据到数组中,记录其中偶数的个数,并计算它们之和及平均值。#include int main() int i,a20,count;float ave,sum; su

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!