C语言归纳题型练习.doc_第1页
C语言归纳题型练习.doc_第2页
C语言归纳题型练习.doc_第3页
C语言归纳题型练习.doc_第4页
C语言归纳题型练习.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

归纳的题型练习将历年试题整理如下一.选择题1.C语言程序是由_c_组成 (A) 子程序 (B) 过程 (C) 函数 (D) 主程序和过程2.C语言可执行程序的开始执行点是:_C_ (A) 程序中第一条可执行语句 (B) 程序中第一个函数 (C) 程序中main函数 (D) 包含文件中的第一个函数3.以下标识符组中, 合法的用户标识符为_B_ (A) b-b (B) FLOAT (C) (D) int4.下面不正确的字符串常量是_A_ (A) abc (B) 1212 (C)0 (D) 5.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为_D_ (A) float (B) char (C) int (D) double6.在下面给出的四个语句段中,_A_能够正确表示出以下的函数关系: -1 (x0) (A) if (x!=0) (B) y=0; if (x0) y=1; if (x=0) else y=-1; if (x) y=1; else y=0; else y=-1; (C) if (x0) y=1; else y=0;7.执行语句for(i=1;i+1的值为:_C_ (A) 4 (B) 表达式非法,无值 (C) 1 (D) 59.若有说明:int a34;则对数组元素的正确引用是_C_ (A) a24 (B) a1,3 (C) a1+10 (D) a(2)(1)10.程序中使用了库函数strcpy,则该程序应包含如下哪个头文件? _D_ (A) stdio.h (B) stdlib.h (C) ctype.h (D) string.h11.字符n表示:_C_ (A) 回车 (B)换行 (C) 回车并换行 (D)换行不回车12.以下正确的函数声明形式是_C_ (A) 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;int y);13.以下不正确的说法为_D_ (A) 在不同函数中可以使用相同名字的变量 (B) 形式参数是局部变量 (C) 在函数内定义的变量只在本函数范围内有效 (D) 在函数内的复合语句中定义的变量在本函数范围内有效答案:1、C2、C3、B(由于C语言区分大小写,FLOAT与float不同,float为关键字,但FLOAT可以为用户标识符)4、A5、D6、A7、C8、C(此时c为3)9、C10、D11、C12、C13、D1、 C语言程序的三种基本结构是 A A、顺序结构、选择结构、循环结构 B、递归结构、循环结构、转移结构C、 嵌套结构、递归结构、顺序结构 D、循环结构、转移结构、顺序结构2、为了避免嵌套的条件语句if else 的二义性,C语言规定:else 与 B 配对。 A、缩排位置相同的if B、其之前最近且未配对过的if C、其之后最近的if D、同一行上的if3、数组名作为参数传递给函数,作为实在参数的数组名被处理为 D A、该数组的长度 B、该数组的元素个数C、该数组中个元素的值 D、该数组的首地址4、若i=5, j=1为整数,则以下while循环执行 B 次.doprintf(*); j=j+2; i=i+1;while(jc的值是(B ) A.F B.0 C.1 D.T答案:1、A 2、B3、D4、B5、C9、B1、 下列C常量中不合法的是(C ) A.5 B.5 C.500 D.5002 在C程序的函数内_B_嵌套定义函数。A)能 B)不能3、C程序中,注释部分的位置(D )A.必须在一行的开始 B.必须在语句之后 C.必须在一行的最后 D.以上三种都可以4、下面C常量中不合法的是( B )A.ABC0 B.-e0.1 C.0 D.0Xfff5下面程序的运行结果是(D ) main( ) char a=a, b=b;putchar(a);putchar(b);putchar(b); A.abb B.a b C.b D.未使用预编译命令,无法调用putchar函数6、下面表达式中(D )的值等于0。(设:int a=1; char b=0;) A.!a=!b B.!a|b C.!(a=b) D.a&!b7、.设int m=7; float n=3.5;计算m-=m-!n后, m的值是( D) A.3 B.3.5 C.1 D.08、.表达式x=1.42, (int)x+0.4的值是(C )。(float x;) A.1.82 B.1.42 C.1.4 D.0.49.已知x=0,y=0;执行以下程序段后, y的值为(A )。 if (x!=0) if(x0) y=1; else y=-1; A.0 B.-1 C.1 D.不确定10、执行下面程序段后,变量i的值是(B ) int i=5; switch (i-) case 4:i+=2; case 5:i+=3; case 6:i+=4; break; default:i+=10; A.9 B.11 C.12 D.1311.设char ch;执行下面程序段时,若键盘输入abcde!,则输出结果是(D )。 while(ch=getchar()!=!) ch=ch+1;putchar(ch); A.bcdef! B.abcdef! C.abcde D.bcdef12.设int m,i;执行下面程序段后,变量m,i的值依次为(B )。 for(m=0, i=20; m 再执行i- 然后执行入口后面的语句。这里注意:语句要一直执行到break才跳出switch语句。)11、D12、B13、C1.下面程序段输出结果是(B )。 char str =adcd, *ps=str; printf(%dn, *(ps+4); A.100 B.0 C.字符d的地址 D.不确定2.下列函数fun的返回值为( C) fun( float x) printf(%fn,x); A.void类型 B.无法确定返回值 C.int类型 D.没有返回值3.max函数定义如下,且a,b,c,d,e,f,g均为整型变量,下面的调用中(C ) 是不正确的。 max(int x, int y) int z;if(xy) z=x;else z=y;return(z); A.max(a,max(c,b) B.max(max(a,b),max(c,d) C.max(a,b,c) D.g=max(f=max(a.b), max(d,e)4.下面程序的输出结果是(C ) main( ) int x=13;printf(%d,x+func(x); func(int x) x=11;return(x); A.22 B.26 C.24 D.出错5.下面程序的输出结果是(A ) int x=10, y=100; main( ) move( );printf(%d,%dn,x,y); move( ); printf(%d,%dn,x,y); move( ) int w; w=x; x=y; y=w; A.100,10 B.10,100 C.100,10 D.出错 10,100 10,100 100,10 6.下面是求1+2+3+.+n的函数,下划线处应选择(C ) int sum(int n) int s=0;if(n=0) return(s);if(n=1) return(_ _); A.1 B.sum(n-1) C.n+sum(n-1) D.s+sum(n-1)7.设x为整型变量,则语句int *px=&x; 表示(D )。 A.给*px赋初值 B.px为变量x所指的值 C.px的初值为x D.px的初值为x的地址9.下面函数返回数组的最大值,下划线处应选择( B )。 int f(int *a,int n) int x=*a, i;for(i=1;in;i+)if(xai) _;return(x); A.x=a+i B.x=*(a+i) C.x=a+i D.x=&(a+i)10.下面程序的输出是(D )。 #include string.h main( ) char p110=abc,*p2=DEF,str20=xyz;strcpy(str+2,strcat(p1,p2);printf(%sn,str); A.xyzabcDEF B.zabcDEF C.yzabcDEF D.xyabcDEF答案:1、B2、C3、C4、C5、A(提示:由于x,y都是全局变量,因此move函数中所用到的x和y都是全局的x和y)6、C7、D9、B10、D(提示:strcpy(str+2,strcat(p1,p2); 语句指的是先将p2字符串附加在p1字符串之后,且覆盖掉p1字符串的0;再将p1拷贝到str字符串,从str+2开始拷贝。如下图所示:)二、填空题1结构化程序的3种基本结构是 顺序结构、选择结构和循环结构 。2C程序的开始执行点是 程序中main函数3流程图及NS图都是一种)算法描述的工具。4有符号的基本整形变量的有效取值范围是)3276832767。5字符常量是用 单引号 括起来的一个字符。6字符串的结束标识是 0 。7为避免条件语句ifelse嵌套的二义性,C语言规定:else与上面最近未匹配的 if配对。8C语言用 非 表示逻辑“真”值。9能实现C程序循环结构的语句包括 while语句,do-while语句和for语句10C语言的逻辑运算符包括 &(逻辑与)、|(逻辑或)和!(逻辑非)11无条件使流程跳出循环的语句是 break 。12假使整形变量a、b的值分别1和3,表达式a+b/2的值是 2 。13在函数内部定义的变量,其有效范围是 从定义变量开始到本函数结束 。14函数体一般包括 声明部分与执行部分。15C语言提供的预处理功能主要有 宏定义、文件包含和条件编译16.在C程序的函数内_不能_嵌套定义函数。17.C语言规定标识符只能由_字母,下划线和数字 三种字符组成。18.设int a,b; 则能正确表示代数式1/(ab)的C语言表达式是_(18)_。19. 设int i=1,s=0; 与dos=s+i;while(i+5);等价的for循环结构是_(19)_。20.下面程序读入20个整数,统计非负数个数并计算非负数之和。请填空。 main() int i,a20,s,count;s=count=0;for(i=0;i20;i+)scanf(%d, _(20)_ );for(i=0;i20;i+)if(ai0) _(21)_;s+=ai;count+;printf(%dt%d,s,count); 21.下面程序的功能是从字符串Computer and C中删去所有空格,请填空。#include main() char str1=Computer and C,str280;int i,j=0;for(i=0;i_(22)_;i+)if(str1i _(23)_ )str2j=str1i;j+;str2j=0;printf(%s, str2); 22.下面程序的功能是把100200之间的不能被3整除的数输出。 main( ) int n;for ( (24) ; (25) ; _(26)_) if (n%3= =0) (27) ;printf(%dn,n);23.以下程序用辗转相除法来求出两个正整数的最大公约数。 请填空. 若两个数分别放在变量m和n中,求最大公约数的算法如下:(1)将两数中大的那个放在m中,小的放在n中(2)求出m被n除后的余数r(3)若余数为0则执行步骤(7);否则执行步骤(4)(4)把除数作为新的被除数;把余数作为新的除数(5)求出新的余数r(6)重复步骤(3)到(5)(7)输出n,此时n即为最大公约数#include main()int r,m,n;printf(Enter m,n:,m,n);scanf(%d,%d,&m,&n);if (mn) _(28)_r=_(29)_;while(_(30)_)m=_(31)_;n=_(32)_;r=_(33)_;printf(H.C.F=%dn,n);24.下面的函数是对一个数组的各元素值乘以2,(假设数组为int型),请填空。 void sort(_(34)_) int i;for(i=0;in;i+)ai=ai*2;return;25、下面函数的功能是交换a, b指针所指向的值,请填空。/此次考试不考 void f(int *a,int *b) _(35)_; t=*a;*a=*b;*b=t; 若函数f是如下写法,又该怎样修改,请填空。 void f(int *a,int *b) _(36)_; *t=*a;*a=*b;*b=*t; 26、下面函数实现将字符串s复制到字符串t。/此次考试不考 void f(char *s, char *t) while(_(37)_)*t=_ (38)_;t+;s+;*t=0; 27、打印99乘法表。输出格式要求为:1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9 程序如下:main()int m,n;for (m=1; m=9; m+)for (n=1; (39) ; n+)printf(“ (40) ”, m, n, m*n); (41) 28. 判断某个大于2的无符号整数是否素数。判断无符号整数N是否素数的标准是:除了1与N以外,N不能被任何一个整数所整除。main()int n, i, ext; /*n表示输入数据,ext表示n是否素数的判断结论 */ext=1;scanf(“%d”, (42) );for (i=2 ; i=n-1 ; i+)if (n%i = = 0 )ext= (43) ; (44) if (ext!=0)printf(“YES”);elseprintf(“NO”); 答案:(1)顺序结构、选择结构和循环结构(2)程序中main函数(3)算法描述(4)3276832767(5)单引号(6)0(7)上面最近未匹配的if(8)非0(9)while语句,do-while语句和for语句(10)&(逻辑与)、|(逻辑或)和!(逻辑非)(11)break;(12)2(13)从定义变量开始到本函数结束(14)声明部分(15)宏定义、文件包含和条件编译(16)不能(17)字母,下划线和数字(18)1/(float)(a*b)(19)for( ; i=5; i+) s=s+i; 或for( ; i6; i+) s=s+i; (20)&ai(21)continue;(22)strlen(str1)(23)!=(24)n=100(25)n200(26)n+(27)continue(28)r=m; m=n; n=r; (29)m%n(30)r!=0(31)n(32)r(33)m%n(34)int a , int n 或 int *a, int n(35)int t;(36)int k; int *t; t=&k;(37)*s!=0(38) *s(39)n=m(40)%d*%d=%dt(41)printf(n);(42)&n(43)0(44)break;三、读程序填空1、现有C语言程序段main()int sum,i;for (i=1;i=100;i+)sum=0;sum=sum+i;printf(“sum=%dn”,sum);其输出是: 2、当从键盘键入abcedef (回车)时,下面的C程序段输出是: #include try_me() char c;if ( ( c = getchar() ) != n )try_me();putchar( c ); main() printf(“n”);try_me( );printf(“n”); 3、现有一个C语言计算的数学函数fib( n ):fib( int n )switch( n ) case 0 : return 0;case 1 : return 1;default : int i; int a = 0, b = 1, result; for( i = 2; i = n; i + ) result = a + b; a = b; b = result; return result; 该数学函数的表达式是 4、 下面程序段的输出结果是: func(int x) x=11;return(x);main()int x=13;func(x);printf(%d,x+x);6. 下面程序段的运行结果是: #include main() int i,j,k=0,m=0;for (i=0;i2;i+)for (j=0;j3;j+)k+;k=k-j;m=i+j;printf(k=%d,n=%dn,k,m);7. 运行下面程序段: #include main() int number,digit,s=0;scanf(%d,&number);do digit=number%10;number=(number-digit)/10;s=s+digit; while (number!=0);printf(%dn,s); 键盘输入值12345,输出结果为:_8. 下面程序段的运行结果是: #include long func(int x) long p;if (x=0|x=1) return(2);p=x*func(x-1);return(p); main() printf(%dn,func(4); 9. 下面程序段的运行结果是: int x;int sub(int y) int z;x=x+1;y=y+1;z=x+y; printf(“x=%d, y=%d, z=%dn”, x, y, z); return z;main()int y,z; x=10; y=20; z=30; z=sub(y); printf(“x=%d, y=%d, z=%dn”, x, y, z);10. 下面程序段的运行结果是: main()int i, s=0; for (i=0; i10; i+) s=s+2; printf(“%d”, s); 11. 下面程序段的运行结果是: main()int n=3, a=1, b=1, c; while (n=5) c=a+b;a=b;b=c;n=n+1;printf(“%d”, c);12. 下面程序段的运行结果是: main() char grade;grade=B;switch (grade) case A: printf(excellentn); case B: printf(p

温馨提示

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

评论

0/150

提交评论