欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言期末复习资料(重要)(共29页).doc

    • 资源ID:16270905       资源大小:204.50KB        全文页数:29页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言期末复习资料(重要)(共29页).doc

    精选优质文档-倾情为你奉上(注: 本文档参考答案中 “ ”代表回车换行,“”代表空格,程序代码中省略了# include <stdio.h>)一、 基础知识和顺序结构(一) 选择题1 以下不正确的C语言标识符是 A. ABC B. abc C. a_bc D. ab.c2 以下正确的C语言标识符是 A. %x B. a+b C. a123 D. test!3 一个C语言程序的执行是从 。A. main( )函数开始,直到main( )函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D. main( )函数开始,直到最后一函数结束4 在C语言程序中,main函数的位置 。A. 必须作为第一个函数 B. 必须作为最后一个函数C. 任意D. 必须放在它所调用的函数之后5 一个C语言程序是由 。A. 一个主程序和若干个子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成6 下列四个叙述中,错误的是_。A. 一个C源程序必须有且只能有一个主函数B. 一个C源程序可以含零个或多个子函数C. 在C源程序中注释说明必须位于语句之后D. C源程序的基本结构是函数7 编辑程序的功能是 。A. 建立并修改程序B. 将C源程序编译成目标程序C. 调试程序D. 命令计算机执行指定的操作8 C编译程序是 。A. C语言程序的机器语言版本B. 一组机器语言指令C. 将C源程序编译成目标程序的程序D. 由制造厂家提供的一套应用软件9 以下叙述不正确的是_。A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定用main表示10 C语言中允许的基本数据类型包括_。A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型11 C语言中能用八进制表示的数据类型为_。A. 字符型、整型 B. 整形、实型C. 字符型、实型、双精度型 D. 字符型、整型、实型、双精度型12 下列属于C语言合法的字符常数是_。A. 97 B. ”A” C. t D. ”0”13 设所有变量均为int型,则表达式(a=2,b=5,b+,a+b)的值是 A. 7 B. 8 C. 6 D. 214 在C语言中,要求运算数必须是整型的运算符是: A. / B. +C. != D. %15 设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 A. 0-255B. 1-32767 C. 0-65535D. 0-16 下面不正确的字符串常量是: A. 'abc'B. "12'12"C. "0"D. " "17 表达式 18/4*sqrt(4.0)/8值的数据类型是: A. intB. float C. doubleD. 不确定18 若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为: A. float B. int C. char D. Double19 不属于字符型常量的是 A. 'A' B. "B" C. 'n' D. 'x72'20 在C语言中,合法的长整型常数是_。A. 0L B. C. D. 0xa34b7fe21 若有以下定义语句char c1=b, c2=e; printf(“%d,%cn”,c2-c1,c2-a+A);则输出结果是_。A. 2,M B. 3,E C. 2,E D. 输出项与相应的格式控制不一致,输出结果不确定22 设char ch; 以下正确的赋值语句是: A. ch='123' B. ch='xff' C. ch='08' D. ch=""23 若t为double类型,表达式t=1,t+5,t+的值是 A. 1 B. 6.0 C. 2.0 D. 1.024 设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是 A. 0,0 B. 0,1 C. 1,0 D. 1,125 若a=1,b=2,c=3,d=4,则条件表达式a<b?a:a<d?c:d的值为 A. 1 B. 2 C. 3 D. 426 设a=2,则执行b=a=!a;语句后,b的结果是 A. 0 B. 1 C. 2 D. 327 设有以下语句,则c的二进制值是 char a=3,b=6,c; 解: a=,b=c=ab<<2; ab= c=A. B. C. a)28 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是 D A. 把x和y按从大到小排列B. 把x和y按从小到大排列C. 无确定结果D. 交换x和y中的值(二) 填空题1. C语言中的标识符只能由三种字符组成,它们是 字母、 数字 、 下划线 。2. 一个C语言程序有且仅有一个_main_函数。3. 结构化设计中的三种基本结构是顺序,分支,循环。4. C语言程序的执行是从_main函数_开始执行的。5. C语言源程序文件后缀是_c或cpp_,经编译后生成文件的后缀是_obj_。经链接后生成文件的后缀是_exe_。6. C语言源程序的语句分隔符是_;_。7. 若a是int型变量,且a的初值为6,则执行下面表达式后a的值为 -60 。 a+=a-=a*a 解:a=a-36=-30 a=a+(-30)8. 72在内存中占 1 个字节,”72”在内存中占 2 个字节。9. 若有以下定义语句:int a=5; printf(“%dn”,a+); 则输出结果是_5_。10. C语言中的基本数据类型分为 整 型、 实 型和 字符 型。11. C语言的实型可分为 float 型和 double 型。12. 若有以下定义语句:int u=010,v=0x10,w=10; printf(“%d,%d,%dn”,u,v,w); 则输出结果是 _8,16,10_。13. 下面程序的输出是_k=11,k=13,k=b_。main()int k=11; printf("k=%d,k=%o,k=%xn",k,k,k);14. 若有以下定义语句:int a=5; printf(“%dn”,a+); 则输出结果是_5_。15. 设x为int型变量,执行以下语句,x=10; x+=x-=x-x; x的值为_20_。16. 若有定义int a=10,b=9,c=8; 接着顺序执行下列语句后,变量b的值为_3_。c=(a-=b-5);c=(a%11)+(b=3);17. 设有以下定义,并以赋予了确定的值:char w; int x; float y; double z;则表达式w*x+z-y所求得值的数据类型为_double_。18. 设x和y均为int型变量,且x=10和y=3则以下语句的输出结果是_10,2_。Printf(“%d,%dn”,x+,-y);19. 下列程序的输出结果是_2,1 _。main()int a=1,b=2; a+=b; b=a-b; a-=b; printf(“%d,%dn”,a,b);20. 以下程序执行结果是: 2,1 main( )int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%dn",a,b);21. 以下程序执行结果是: 3.14159,3.1416,3.142 main( )float f=3.;printf("%5f,%5.4f,%3.3f",f,f,f);22. 以下程序输入1 2 3后的执行结果是: a=1,b=2,c=3 main( )int a,c;char b;scanf("%d %c %d",&a,&b,&c);printf("a=%d,b=%c,c=%dn",a,b,c);23. 以下程序输入后的执行结果是: a=12,b=345 main( )int a,b;scanf ("%2d%3d",&a,&b);printf("a=%d,b=%dn",a,b);24. 以下程序输入ABC 后的执行结果是: c=A main( )char c;scanf("%3c",&c);printf("c=%cn",c);二、 分支结构(一) 选择题1 选择合法的条件语句(设int x,a,b,c;) ( )。A. if (a=b) +x;B. if (a=<b) +x;C. if (a<>b) +x;D. if (a>=b) +x;2 执行下列程序,输入为1的输出结果是( A ),输入为4的输出结果是( C ),输入为3的输出结果是( D )。 main( )int k; scanf("%d",&k); switch(k)case 1:printf("%dn",k+); case 2: printf("%dn",k+); break; case 3: printf("%dn",k+); break; case 4: printf("%dn",k+); case 5: printf("%dn",k+); break; default: printf("Full!n"); A. 12 B. 1 C. 45 D. 3 (二) 填空题1 下列程序运行后输出结果是_end_。main( )int a,b,c; a=2;b=3;c=1; if(a>b) if(a>c) printf("%dn",a); else printf("%dn",b); printf("endn");2 以下程序执行结果是_d=1_。main( )int a,b,c,d,x; a=b=c=0; d=1; if(a) d=d-10; else if(!b) if(!c) x=6; else x=7; printf("d=%dn",d);3 若从键盘输入m,下列程序执行结果是_M_。main( )char c; printf("Enter a character:"); scanf("%c",&c); if('a'<=c&&c<='z') c=c-32; printf("%cn",c); 4 若上题中,从键盘输入B,程序执行结果是_B_。 5 若从键盘输入7,10,1,3,则下列程序执行结果是 a=7,b=10,c=1,d=3 1 3 7 10。 main( ) int a,b,c,d,t; scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("nn a=%d,b=%d,c=%d,d=%dn",a,b,c,d); if (a>b) t=a;a=b;b=t; if (a>c) t=a;a=c;c=t; if (a>d) t=a;a=d;d=t; if (b>c) t=b;b=c;c=t; if (b>d) t=b;b=d;d=t; if (c>d) t=c;c=d;d=t; printf("n %d %d %d %dn",a,b,c,d); 6 以下程序的执行结果是_ firstthird_。 main( ) int x=1,y=0; switch(x) case 1: switch(y) case 0:printf("firstn");break; case 1:printf("secondn");break; case 2:printf("thirdn"); 7 执行以下程序,输入-10的结果是_x=0_,输入5的结果是_ x=5_,输入10的结果是_ x=10_,输入30的结果是_ x=5_。 main( ) int a,b; float x; scanf("%d",&a); if(a<0) b=-1; else b=a/10; switch(b) case -1:x=0;break; case 0:x=a;break; case 1:x=10;break; case 2: case 3:x=-0.5*a+20;break; default:x=-2; if(x!=-2) printf("x=%gn",x);else printf("error!n");三、 循环结构(一) 选择题1 若i,j已定义为int型,则以下程序段中内循环体的执行次数是( )。 for(i=5;i;i-)for(j=0;j<4;j+) A. 20 B. 24 C. 25 D. 302 若i,j已定义为int型,则以下for循环是( )。 for(i=0,j=0;(j!=123)&&(i<4);i+);A. 无限循环 B. 循环次数不定 C. 执行4次 D. 执行3次 3 对于for(表达式1; ; 表达式3)可以理解为( )。A. for(表达式1;0; 表达式3)B. for(表达式1;1; 表达式3)C. for(表达式1; 表达式1; 表达式3)D. for(表达式1; 表达式3; 表达式3)4 执行下列程序段后,x值是( A ),i值是( C )。 int i,x; for(i=1,x=1;i<=20;i+) if(x>=10) break; if(x%2=1) x+=5; continue; x-=3; A. 10 B. 7 C. 6 D. 145 下列程序的执行结果是( )。 #include<stdio.h> main( ) int s=0, k; for(k=7;k>=0;k-) switch(k) case 1: case 4: case 7: s+; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; printf("s=%dn",s); A. s=4 B. s=7 C. s=3 D. s=56 下列程序段执行结果是输出( )。 x=3; do printf("%2d",x-); while(!x);A. 0 B. 3 C. 321 D. 210(二) 填空题1 C语言while和dowhile循环的主要区别是 前者先判后做 ,后者先做后判 。2 以下程序输出结果是 123 。 main( )int num=0; while(num<=2) num+; printf("%dn",num); 3 下列程序运行输出结果是 12 23 3 34 4 4 4 5 5 5 5 56 6 6 6 6 6main( )int i,j,k; for(i=1;i<=6;i+) for(j=1;j<=20-2*i;j+) printf(" "); for(k=1;k<=i;k+) printf("%4d",i); printf("n"); 4 下列程序执行结果是 237273 。 main( ) int i=2,j,k; for(j=0;j<=9;j+) for(k=0;k<=9;k+) if(i*j*k=42&&i+j+k=12) printf("%d%d%dn",i,j,k); 5 下列程序执行时,若从键盘输入124cmknp 03,结果是 d=5 s=1 a=5 。 main( ) char c; int d,s,a; d=s=a=0; c=getchar( ); while(c!='n') if(c<='9'&&c>='0') d=d+1; if(c=' ') s=s+1; if(c<='z'&&c>='a'|c<='Z'&&c>='A') a=a+1; c=getchar( ); printf("d=%d s=%d a=%dn",d,s,a); 6 下列程序执行结果是 72 。main( )int i,j,k,s=0; for(i=0;i<3;i+) for(j=0;j<4;j+) for(k=0;k<2;k+) s=s+i+j+k; printf("%dn",s); 7 下列程序执行结果是 0 12 46 912 1617 1921 2427 3135 4042 4548 5256 6166 72 (代表回车换行) 。main( )int i,j,k,s=0; for(i=0;i<3;i+) for(j=0;j<4;j+) for(k=0;k<2;k+) s=s+i+j+k; printf("%d ",s); printf("n"); 8 下列程序执行结果是 * * * * 。main( )int i; char j='*' for(i=1;i<4;i+) switch(i) case 1: printf(" %cn",j); break; case 2: printf(" %c%cn",j,j); break; case 3: printf("%c%c%cn",j,j,j); break; 9 执行下列程序,若由键盘输入4,程序执行结果是 4 7 9 10 。main( ) int s=0,i; scanf("%d",&i); do if(i=0) break;else s=s+i; printf("%dt",s); while(-i); 四、 数组(一) 选择题1 以下关于数组的描述正确的是( )。A. 数组的大小是固定的,但可以有不同类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同类型的数组元素2 下面一维数组a正确定义是( )。A. int a(10); B. int n=10,an;C. int n; scanf(%d”,&n); int an;D. # define SIZE 10int aSIZE;3 若定义int a10;则对a数组元素的正确引用是( )。A. a10 B. a4.3 C. a(5) D. a6-64 以下对一维数组进行正确初始化的语句是( )。A. int a3=(0,1; B. int a3=;C. int a=0; D. int a3=3*2;5 下列程序:# define N 6main()char aN; int i=0; for (;i<N;ai=getchar(),i+); for (i=0;i<N;putchar(ai),i+);运行时输入以下三行字符,每行输入都是在该行首列开始:abcdef程序输出结果是( )A. abcdef B. abcd C. abcd D. abcdef 6 运行下列程序的输出结果是( )。main() int a=5; float x=67.846; static char d10="abc" printf("%4d,%4.1f,%c",a,x,d2);A. 5,67.8,c B. 5,67.8,cC. 5,67.8, b D. 5,67.8,b7 若定义int a32;则printf(“%d”,a10);语句输出的是第( )个元素。A. 1 B. 3 C. 4 D. 58 当输出含空格的字符串时,应使用( )函数。A. printf() B. puts () C. putchar () D. putc()9 在执行char str10=”chnina”;strlen(str)的结果是( )。A. 5 B. 6 C. 7 D. 910 10当接收用户键入的含空格的字符串时,应使用( )函数。A. scanf() B. gets() C. getchar() D. getc()(二) 填空题1 C语言数组元素的下标必须是正整数、0或者 整型表达式 。2 C语言数组元素的下标下限为 0 。3 C语言的数组名是一个 地址 常量,不能对其进行赋值运算和自加、减运算。4 以下程序输出结果是 4 。# include <string.h>main() char s1 ="12345",s2 ="1234" printf("%dn",strlen(strcpy(s1,s2);5 以下程序执行结果是 123 。main()char str ="1a2b3c" int i; for (i=0;stri!='0'i+)if(stri>='0'&&stri<='9') printf("%c",stri);printf("n"); 6 以下程序执行结果是 11,1,0 。main( ) int i,j,i1=0,j1=0,m; static int s33=101,201,301,11,18,30,60,20,70; m=s00; for (i=0;i<3;i+)for (j=0;j<3;j+) if(sij<m)m=sij; i1=i; j1=j; printf("%d,%d,%dn",m,i1,j1);7 以下程序执行结果是 9,7 。main( ) int a45=1,2,4,-4,-4,5,-9,3; int b,i,j,i1,j1,n; n=-9;b=0; for (i=0;i<4;i+)for (j=0;j<5;j+) if(aij=n)i1=i;j1=j;b=1;break; if (b)break; printf("%d,%dn",n,i1*5+j1+1);8 以下程序执行结果是 s=45 。int f(int b3,int n,int m) int i,j,s; s=0; for (i=0;i<n;i+)for (j=0;j<m;j+) s=s+bij; return(s);main( )int a3=1,2,3,4,5,6,7,8,9,n=3,m=3,s; s=f(a,n,m); printf("s=%dn",s);9 以下程序输入数据如下:C+BASICQUICKAdaPascal执行结果是 QUICK 。# include <string.h>main( ) int i; char s10,st10; gets(st); for (i=0;i<4;i+)gets(s); if(strcmp(st,s)<0) strcpy(st,s); printf("%sn",st); (三) 程序填空题1 请在横线上填入合适的表达式,使数组元素按大小顺序排列。main()int a12=2,14,16,20,9,21,86,75,17,30,11,99,i,j,k; for (k=0;k<12;k+) for (i=k;i<12;i+) if(ai>ak) j=ai; ai=ak; ak=j; for (i=0;i<12;i+) printf("%4d",ai); printf("n"); 2 请在横线上填上合适的表达式,使程序完成将字符串“Hello”逆序显示。void pt (char str ) int i=0,j=0; while (stri!='0')j+;i+; for (;j>=0;j-) printf("%c",strj);void main( )pt("Hello");五、 函数(一) 选择题1 以下函数调用语句中有( )个实参。 func(a1,a2,a3),(a4,a5);A. 2 B. 5 C. 1 D. 不合法2 C语言中规定函数的返回值的类型是由( )。A. return语句中的表达式类型所决定B. 调用该函数时的主调用函数类型所决定C. 调用该函数时系统临时决定D. 在定义该函数时所指定的函数类型所决定3 对于C语言的函数,下列叙述中正确的是( )。A. 函数的定义不能嵌套,但函数的调用可以嵌套B. 函数的定义可以嵌套,但函数调用不能嵌套C. 函数的定义和调用都不能嵌套D. 函数的定义和调用都可以嵌套4 有如下函数定义: func(a) printf("%d",a); 则该函数的返回类型是( )。A. 与参数a的类型相同 B. void C. 没有返回值 D. 无法确定5 以下程序的输出结果是( )。int func(int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return(m); main( ) int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%dn",p);A. 8,17 B. 8,16 C. 8,20 D. 8,86 以下程序的输出结果是( )。 int func(int a) int b=0; static c=3; b+;c+; return(a+b+c); main() int a=2,i; for(i=0;i<3;i+) printf("%d",func(a); A. 777 B. 777 C. 789 D. 7897 以下程序输出结果是( )。 int i=10; int fun( ) int k=0; k=k+i; i=i+10; return(k); main( ) int j=1; j=fun( ); printf("%d,",j); j=fun( ); printf("%d",j); A. 0,0 B. 10,20 C. 10,10 D. 20,208 以下程序输出结果是( )。 int i=10; main( ) int a=3,b=2,c=1; c-=+b; b*=a+c; int b=5,c=12; c/=b*2; a-=c; printf("%d,%d,%d,",a,b,c); a+=-c; printf("%d,%d,%dn",a,b,c); A. 3,2,1,3,2,-2 B. 2,5,1,3,5,12 C. 2,5,1,2,3,-2 D. 3,2,1,3,5,129 以下程序的输出结果是( )。 int func(int m) int n; if(m=0|m=1)return(3); n=m-func(m-2); return n; main() printf("%dn",func(9); A. 7 B. 2 C. 0 D. 3(二) 填空题1 以下程序的执行结果是 x=3 。int x=3;void func(int x) x=8; main()func(x);printf("x=%dn",x); 1 2 2

    注意事项

    本文(C语言期末复习资料(重要)(共29页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开