c语言习题汇总.doc_第1页
c语言习题汇总.doc_第2页
c语言习题汇总.doc_第3页
c语言习题汇总.doc_第4页
c语言习题汇总.doc_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

第1章 C语言概述第1章 C语言概述一、选择题1一个C程序的执行是从_。A. 本程序文件的第一个函数开始,到本程序main函数结束B. 本程序的main函数开始,到本程序main函数结束C. 本程序的main函数开始,到本程序文件最后一个函数结束D. 本程序文件的第一个函数开始,到本程序文件最后一个函数结束2以下叙述不正确的是_。A. 一个C源程序可由一个或多个函数组成B. C程序的基本组成单位是函数C. 一个C源程序必须包含一个main函数D. 在C程序中,注释说明只能位于一条语句的后面3C语言规定:在一个源程序中,main函数的位置_。A. 必须在最前面 B. 必须在最后面C. 可以在任意位置 D. 必须包含在其它函数中4一个C程序是由_组成。A. 一个主程序和若干子程序 B. 函数 C. 若干过程 D. 若干子程序5C语言程序_大小写字母。A. 不区分 B.有些位置区分 C. 严格区分 D. 主函数才区分二、基本概念填空题1在C语言中,关键字都是_字母。2一个C语言源程序_一个主函数。3C语言以_为程序的基本单位。4函数体一般包括两部分:声明部分和_。5C语言源程序在执行前,必须先_。6在一个C源程序中,注释部分两侧的分界符分别为_和_。7按组合键_可使Turbo C窗口全屏化。8按一个_键,可对C源程序进行保存。9调试报错后,光标无法回到源程序处,通常按_键。10按_键可以击活Turbo C的菜单。98第2章 程序的灵魂算法第2章 程序的灵魂算法知识点巩固习题基本概念填空题1算法必须有_个输出。2可以用_图或_图表示算法。3流程图中菱形框为_框。4选择结构又称_结构。5_、选择结构和_结构并称三大基本结构。6三大基本结构具有如下一个共同特点:只有_入口和_出口。7“自顶向下、逐步细化”的模块化设计思想是_化程序设计的保证。8C语言是一种_进行结构化程序设计的计算机语言。(填适合/不适合)9算法的有穷性是指_。10画出当型循环的流程图和N-S图;画出直到型循环的流程图和N-S图。第3章 数据类型、运算符与表达式第3章 数据类型、运算符与表达式知识点巩固习题一、选择题1C语言中的数据的基本类型包括_。A. 整型、实型、字符型和逻辑型 B. 整型、实型、字符型和结构体 C. 整型、实型、字符型和指针型 D. 整型、实型、字符型和枚举型2在C语言中,合法的长整型常数是_。A. 0L B. 4962710 C. 0.054838689 D. 2.0e6 3以下选项中不正确的实型常量是_。A. 2.608E-7 B. 0.86e C. 70.77 D. 568e-24以下选项中正确的实型常量是_。A. 3. 14159 B. 0.32102 C. .876 D. 05char型常量在内存中存放的是_。A. ASCII代码值 B. BCD代码值 C. 内码值 D. 十进制代码值 6下列数据中属于“字符串常量”的是_。A. ABC B. ABC C. abc D. a7TURBO C中int类型变量所占字节数是_。A. 1 B. 2 C. 3 D. 48n 在内存中占用的字节数是_。A. 1 B. 2 C. 3 D. 49字符串ABC在内存中占用的字节数是_。A. 3 B. 4 C. 6 D. 810若有以下定义:char a; int b; float c; double d;则表达式a*b+d-c值的类型为_。A. float B. int C. char D. double11将2009.168写成指数形式,其规范化指数形式是_。A. 200.9168e1 B. 20.09168e2 C. 0.2009168e4 D. 2.009168e312下面实型数中,表示单精度实型数的是_。A. 2009.02 B. 2009.02f C. 2.00902e3 D. 0.200902e413执行语句“x=(a=3, b=a-);”后,x、a、b的值依次为_。A. 3,3,2 B. 3,2,2 C. 3,2,3 D. 2,3,214若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是_。A.1 B. 2 C. 2.0 D. 2.515下列表达式中符合C语言语法的赋值表达式是_。A.a=7+b+c=a+7 B. a=7+b+=a+7 C. a=(7+b,b+,a+7) D. a=7+b,c=a+716以下选项中不合法的用户标识符是_。A.PRINTF B. Main C. fOR D. abc.d17C语言中运算对象必须是整型的运算符是_。A. % B. / C. = D. +18以下叙述中正确的是_。A. 在C程序中无论是整数还是实数,只要在允许范围内都能准确无误的表示 B. 在C程序中只要整数在允许范围内都能准确无误的表示 C. 在C程序中只要实数在允许范围内都能准确无误的表示 D. 在C程序中无论是整数还是实数,都无法准确无误的表示19不合法的八进制数是_。A. 0 B.077 C. 028 D.0120不合法的十六进制数是_。A. 0Xabc B.0x11 C. 0x19 D.oxff21下列不正确的转义字符是_。A. 065 B. ” C. D. 022*设m,n,a,b,c,d均为0,执行(m=a=b)|(n=c=d)后,m,n的值是_。 A. 0,0 B. 0,1 C. 1,0 D. 1,123*设a为5,执行下列语句后,b的值不为2的是_。 A. b=a/2 B. b=6-(-a) C. b=a%2 D. b=a3?2:224*表示关系XYZ的C语言表达式为_。A. (X=Y)&(Y=Z) B. (X=Y)AND(Y=Z) C. (X=Y=Z) D. (X=Y)&(Yb)&(n=cd);后,m、n的值分别为_。A.1,1 B.1,0 C.0,1 D.0,026*设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为_。A. 4 B. 3 C. 2 D. 127*int x,y,z,m=10,n=5; 执行下面三个语句:x=(-m=n+)?-m:+n;y=m+; z=n;则x,y,z的值分别为_。 .7,9,7 B.5,9,7 C.6,11,5 D.10,11,1028*表达式“7=7”的值是_。 A. true B. 非零值 C. 0 D. 129*设a,b,c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是_。A. a& b B. a=b C. a|b+c&b-c D. !(az)?x+2:x-2,3,2”后x的值为_。6把a1、a2定义成单精度实型变量,并赋初值1的定义语句是_。7当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)无符号整数是_、最小(十进制)无符号整数是_。它们的二进制形式分别是_、_。8*若x=5,y=10,则xy和xb的值为_,abc的值为_。12*能表述“20X30或X-100”的表达式是_。提高题一、选择题1下面不是C语言整型常量的是_。 A. 01 B. 0x1 C. 08 D.82设有语句 int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是_。 A. 3 B. 0 C. 9 D. -123-11的补码是_。A.0000000000001011 B. 1111111111110100C.1000000000001011 D. 11111111111101014设整型变量i的值为3,则计算表达式i-i后,表达式的值为_。A. 0 B. 1 C. 2 D. 表达式出错5若变量已正确定义并赋值,符合C语言语法的表达式是_。A. a=a+7; B. a=7+b+c,a+ C. int(12.3%4) D. a=a+7=c6以下叙述中正确的是_。A. a是实型变量,C允许进行以下赋值a=10,因此可以说,实型变量中允许存放整型值 B. 在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。C.执行a=b后, a和b存储单元中的原有值都将被改变,a的值变为b的值,b变为0D.已有a=3,b=5。当执行了表达式a=a+b,b=a-b,a=a-b之后,已使a中的值为5,b中的值为37若a是int型变量,则下列表达式的值为_。(a=3+5,a*2),a*6A. 8 B. 16 C. 48 D.不定值8设有如下定义: int i=8,k,a,b; unsigned long w=5; double x=1,y=5.2;则以下符合C语言语法的表达式是_。A. x%(-3) B. y=int(i) C. a=a*3=2 D. a+=a-=(b=4)*(a=3)9假定有以下变量定义: int k=7, x=12;则能使值为3的表达式是_。A. x%=(k%=5) B. x%=(x-k%5) C. x%=k+k%5 D. (k%=5)-(x%=k)10下列变量定义中合法的是_。 A. short a=1-1e-1; B.double b=1+5e2.5; C.long do1=0xfdaL D.float 2_and=1-e-3;11当用#define A=2009; 说明后,下列叙述正确的是_。A. A是整型常数 B. A是整型变量 C. A是字符型常量D.说明有误12*int x=1,z=1,y=1,k; 执行k=x+|+y&+z;后, y的值为_。 A. 1 B.2 C.3 D.4二、基本概念填空题1若x为double型变量,请写出运算x=3.2,+x后表达式的值_和变量x的值_。2若k为int型变量且赋值11,请写出运算k+后表达式的值_和变量k 的值_。3表达式“s=10”应当读作“_”。4转义字符的表示以_开头,字符101与字符_等价,空字符用_表示。5表达式(int)7.2%4的结果是_。6字符串Ilo034vexyo0u的长度为_。7表达式64.8*(1/2)的值为_。8写出以下数学式的C语言表达式_。 Cos60+8ex9表达式-b+sqrt(b*b-4.0*a*c)所对应的数学式子是_。10若x和a均是int型变量,则执行表达式(1)后的x值为_,执行表达式(2)后的x值为_。(1)x=(a=3,4*5)(2)x=a=3,4*511若有以下定义:int x=-2,y=2; 则执行表达式y+=y-=x*=y后的y值为_。12已知字母a的ASCII码为十进制数97,数字字符0的ASCII码为十进制数48,则表达式a+1-1的整型值为_。13设有int x=11; 则表达式(x+*1/3)的值为_。14若有定义:int b=7; float a=2.5,c=4.7; 则下面表达式的值为_。 a+(int)(b/3*(int)(a+c)/2)%415*如果变量定义有:int a9,c8;则表达式(-a!c+)? -a:+c的值为_。16*定义int x=10,y,z; 执行y=z=x; x=y=z后,变量x的值为_。17*C语言中运算结果可以当成逻辑值使用的表达式有:_表达式、_表达式、_表达式、_表达式、_表达式和_表达式等。第4章 顺序结构程序设计第4章 顺序结构程序设计知识点巩固习题一、选择题1下列选项中,哪个不是C语言合法的语句: 。A. ; B. a=1 C. printf(“%d”,a); D. i+;2若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是 。A. getchar(a,b,c); B. scanf(%d%d%d,a,b,c);C. scanf(%D%D%D,&a,&b,&c); D. scanf(%d%d%d,&a,&b,&c);3若变量已正确说明为float类型,执行语句scanf(%f %f %f, &a, &b, &c);时要求给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是 。A. 10 22 33 B. 10.0,22.0,33.0C. 10.0 22.0 33.0 D. 10 22 334当运行以下程序时,在键盘上从第一列开始输入9876543210,则程序的输出结果是 。A. a=98,b=765,c=4321 B. a=10,b=432,c=8765C. a=98,b=765.000000,c=4321.000000 D. a=98,b=765,c=4321.0#includevoid main()int a; float b,c;scanf(%2d%3f%4f ,&a,&b,&c);printf(a=%d,b=%f,c=%fn,a,b,c);5有以下程序,若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 。#include void main()int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn, m,n,p);A. m=123n=456p=789 B.m=123 n=456 p=789C. m=123,n=456,p=789 D.123 456 7896若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是 。A. scanf(%f,c);B. scanf(%8.4f,&c); C. scanf(%6.2f,&c); D. scanf(%8f,&c);283.1900 7设a,b为字符型变量,执行“scanf(“a=%c,b=%c”,&a,&b); ”后使a为A,b为B,从键盘上正确的输入是: 。A.AB B. A,B C. A,B D. a=A,b=B8以下程序运行后的输出结果是 。#include void main()int m=0256,n=256; printf(%o %on,m,n);A. 0256 0400 B. 0256 256 C. 256 400 D .400 4009以下程序运行后的输出结果是 。#includevoid main()int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(%d %d %3.1f %3.1fn,a,c,f,x);A. 1 65 1 6.5 B. 1 65 1.5 6.5 C. 1 65 1.0 6.5 D. 2 65 1.5 6.510以下程序段的输出结果是 。int a=1234;printf(“%2dn”,a);A.12 B.34 C.1234 D.提示出错,无结果11int a=256; 执行语句 “printf(%x ,a); ”的结果是_。A.100 B.256 C. 0FFE D.00FF二、填空题1在C语言中,任一语句必定以字符 结束。2从键盘上输入12345678,则读下列程序的运行结果 。#include void main ( )char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar( );c6=getchar( );putchar(c1); putchar(c2);printf(%c%cn,c5,c6);3若有以下定义,请写出以下程序段中输出语句执行后的输出结果 (1)_(2)_(3)_ 。int i=-200, j=2500;printf(%d %dn,i,j); (1) printf(i=%d, j=%dn,i,j); (2) printf(i=%dn j=%dn,i,j); (3) 4以下程序段的输出结果是_。 double a=513.789215;printf(a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lfn,a,a,a,a);5以下程序运行后的输出结果是 。#include void main()int a,b,c; a=25; b=025; c=0x25;printf(%d %d %dn,a,b,c);三、完善程序题1下面的程序是借助于第三个变量将a,b中的值交换。#include void main() int a,b,c; scanf(%d%d,&a,&b); printf(a=%d b=%dn,a,b);c=a; ; ; printf(a=%d b=%dn,a,b);2从键盘上输入一个小写字母字符,将它转换为大写字母。#include void main() char ch;ch=getchar(); ; putchar(_ ); 3下列程序实现乘法计算器的功能。#includevoid main()float x,y,z; printf(Please input x,y); ; z=x*y; printf(x*y=%f , ); 提高题一、选择题1若a为整型变量,以下语句: a=-2L; printf(“%d”,a);则 。A. 赋值不合法 B. 输出-2 C. 输出不确定 D. 输出22以下程序的输出结果是 。A. a=%2,b=%5 B. a=2,b=5 C. a=%d,b=%dD. a=%d,b=%d#includevoid main()int a=2,b=5;printf(a=%d,b=%dn,a,b);3以下程序段的输出是 。A. *496 * B. * 496* C. *000496* D.输出格式符不合法int x=496;printf(*%-06d*n,x);4执行语句printf(“The string is: c:toolsbook.txt”);后的输出是 。A. The string is: c:toolsbook.txt B. The string is: c:tools book.txtC. The string is: c:toolsbook.txt D. The string is: c:toolsbook.txt5若有定义:int x,y; char a,b,c;并有以下输入数据(此处代表换行符,代表空格): 12 ABC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是 。A.scanf(“x=%d y=%d”,&x,&y);a=getchar();b=getchar();c=getchar;B.scanf(“%d %d”,&x,&y);a=getchar();b=getchar();c=getchar();C.scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);D.scanf(“%d%d%c%c%c%c%cc”,&x,&y,&a,&a,&b,&b,&c,&c);6以下程序运行后的输出结果是 。#include void main()int a=666,b=888;printf(%dn,a,b);A.错误信息 B.666 C.888 D.666,8887下列程序执行后的输出结果是(小数点后只写一位) 。A. 6 6 6.0 6.0 B. 6 6 6.7 6.7 C. 6 6 6.0 6.7 D. 6 6 6.7 6.0#include void main() double d; float f; long l; int i; i=f=l=d=20/3; printf(%d %ld %f %f n, i,l,f,d);二、填空题1下列程序的输出结果是: 。#include void main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(%dn, d*y);2当输入以下数据时,100 200 300 400 500,下面语句的执行结果为 。#include void main()int a,b,c; scanf(%d%*d%d%d,&a,&b,&c); printf(%d %d %d,a,b,c);三、完善程序题1程序填空:读入一个四位正整数,逆序打印出各位数字。(提示:分别用除法运算符“/”和求余运算符“”分离出正整数的各个位数,程序中变量a1,a2,a3,a4分别存放正整数的千位、百位、十位、个位数字)#includevoid main()int a,a1,a2,a3,a4; scanf(%d,&a); a1= ; a2= ; a3= ; a4= ; printf(%d %d %d %dn,a4,a3,a2,a1);2下面的两个程序是不借助于第三个变量将整型数据a和b中的值交换。法一:利用加减 main() long a,b; scanf(%ld%ld,&a,&b); printf(a=%d,b=%dn,a,b); a=a+b; b= ; a= ; printf(a=%ld,b=%ldn,a,b); 法二:利用乘除 main() long a,b; scanf(%ld%ld,&a,&b); printf(a=%ld,b=%ldn,a,b); a=a*b; b= ; a= ; printf(a=%ld,b=%ldn,a,b); 第5章 选择结构程序设计第5章 选择结构程序设计知识点巩固习题一、选择题1下列运算符中优先级最高的运算符是 。A. ! B. % C. -= D. &2if语句园括号内的表达式 。 A.只能是逻辑表达式 B.只能是关系表达式C.只能是逻辑表达式或关系表达式 D.可用任意表达式3在C语言中,当关系表达式中的关系成立时,则该关系表达式的值为 。A.0 B.1 C.true D.false4下列关于switch语句和break语句的结论中,只有 是正确的。 A.break语句是switch语句中的一部分; B.在switch语句中可以根据需要使用或不使用break语句; C.在switch语句中必须使用break语句; D.以上三个结论有两个是正确的。5对下面三条语句(其中s1和s2为内嵌语句),正确的论断是 。 (1)if(a) s1; else s2; (2)if(a=0)s2; else s1; (3)if(a!=0) s1;else s2;A.三者相互等价 B.(1)和(2)等价,但与(3)不等价C.三者互不等价 D.(1)和(3)等价,但与(2)不等价6为表示关系xyz,应使用的C语言表达式是 。A.(x=y)&(y=z) B.(x=y)AND(y=z)C.(x=y=z) D.(x=y)&(y=z)7设 int x=1, y=1; 表达式(!x|y-)的值是 。A. 0 B. 1 C. 2 D. -18能正确表示a和b同时为正或同时为负的逻辑表达式是 。 A.(a=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b09表达式“10!=9”的值是 。A. true B. F C. 1 D. 010当a的值为5,b的值为4时,逻辑表达式a8的值是 。A. true B. false C. 0 D. 111设有以下语句:int x=3,y=4,z=5; 则下面表达式中值为0的是 。A.x&y B.x|y+z&y-z C.!(xy)&!z|1) D.x=y12以下程序的输出结果是 。A.0 B.1 C.2 D.3#include void main() int a=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(%dn,c);13以下程序的输出结果是 。A.1 B.2 C.3 D.4#include void main()int w=4,x=3,y=2,z=1;printf(%dn,(wx?w:zy?z:x);14以下程序运行后的结果是 。#includevoid main()int i=10; switch(i) case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; printf(%dn,i);A.13 B.12 C.11 D.1415以下程序运行后的结果是 。#includevoid main()int i=0; switch(i) case 0: printf(%d,i); case 2: printf(%d,i);break; default: printf(%d,i);break;A.000 B.022 C.00 D.0二、填空题1以下程序执行后输出结果是 。#includevoid main()int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(%dn,x);2请写出以下程序的输出结果_。#include void main()int a=100;if(a100)printf(%dn,a100);else printf(%dn,a=100);3以下程序的输出结果是 。 #includevoid main()int a,b,c; a=10,b=20; c=(a%b1); printf(%d %d %dn,a,b,c);4以下程序运行后的输出结果是 。 #includevoid main()int a=1,b=3,c=5; if(c=a+b) printf(yesn); else printf(non);5以下程序段的输出结果是_。 #includevoid main()int a=4,b=3,c=5,t=0; if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; printf(%d %d %dn,a,b,c);三、完善程序题1程序填空:以下程序的功能是:输入一个正整数,如它是奇数则输出“yes”,否则输出“no”。#includevoid main()int a; scanf(%d,&a); if( ) printf(yesn); else printf( ); 2程序填空:从键盘输入一个字符,如果它是大写字母,则把它转换成小写字母输出,否则,直接输出。#includevoid main()char ch; scanf(%c,&ch); ch=( )? :ch; printf(ch=%cn,ch);3程序填空:以下程序的功能是:根据输入的x的值,计算z的值。Z=#define Pi 3.1415#includevoid main()float x,z; printf(x=); scanf(%f,&x); if(x0) ; else if( ) z=0;else ; printf(z=%f,z);4程序填空:由键盘输入两个数据,将它们按从小到大排序。#includevoid main()int a,b,temp; scanf(%d,%d,&a,&b); if(ab) ; a=b; ; printf(Two numbers after sorted:%d,%dn,a,b);5程序填空:以下程序判断输入的整数能否被3或7整除.main() int x,f=0;scanf(%d,&x);if( ) ;if(f=1) printf(YESn);else printf(NOn);提高题一、选择题1假定所有变量均已正确定义,下列程序段运行后x的值是 。a=b=c=0; x=35;if(!a) x-; else if(b); if(c) x=3; else x=4;A.34 B.4 C.35 D.32当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 。 A.c=b=a; B.(a=c)|(b=c); C.(a=c)&(b=c); D.a=c=b;3设有说明“int x=1,z=1,y=1,k;”,执行语句“k=x+|+y&+z;”后,变量y的值为 。A.1 B.2 C.3 D.44下面语句序列执行后,x和y的值分别是 。int x=1,y

温馨提示

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

评论

0/150

提交评论