C语言习题精华.doc_第1页
C语言习题精华.doc_第2页
C语言习题精华.doc_第3页
C语言习题精华.doc_第4页
C语言习题精华.doc_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

第1部分 概 述练习题一、单项选择题1机器指令是属于( )。 A低级语言B. 高级语言C. 面向问题语言D. 汇编语言2下列语言中不属于面向问题的语言是( )。 A. 高级语言B. 低级语言C. C 语言D. BASIC 语言3高级语言编写的程序称为( )。 A高级程序B. 源程序C. 目标程序D. 编译程序4下列字符中属于键盘符号的是( )。 A. B.nC. tD. b5下列字符中不属于键盘可输入的符号是( )。 A. AB. C. |D. r6下列不正确的转义字符是( )。 A. B.C. 074D. 07下列正确的转义字符是( )。 A. 777B.821C. xhhD. xff8下列正确的转义字符是( )。 A. dddB.xfgC. xffD. %9不是C语言提供的合法关键字是( )。 A. switchB. cherC. caseD. default10C语言提供的合法关键字是( )。 A. nextB. stringC. do caseD. struct11正确的标识符是( )。 A. ?aB. a=2C.a,3D. a_312正确的标识符是( )。 A. int_aB. a-2C.a3*4D. 3xy13不正确的标识符是( )。 A. _a1B. aiC.a2_iD. int14下列说法中正确的是( )。A 由于C源程序是高级语言程序,因此一定要在TC软件中输入B 由于C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C 由于C程序是高级语言程序,因此输入后即可执行D由于C程序是高级语言程序,因此它由命令组成15下列说法中正确的是( )。 A. C语言程序由主函数和0个到多个函数组成 B. C语言程序由主程序和子程序组成 C. C语言程序由子程序组成 D. C语言程序由过程组成16下列说法中错误的是( )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其它函数 C. 任何非主函数可以调用其它任何非主函数 D. 程序可以从任何非主函数开始执行二、填充题1汇编语言属于面向 语言,高级语言属于面向 语言。2用高级语言编写的程序称为 程序,它可以通过 程序翻译一句执行一句的方式执行,也可以通过 程序一次翻译产生 程序,然后执行。3在C语言程序中允许出现的字符集是_ 、 、_和_。4转义字符是由 符号开始的单个字符或若干个字符组成的。5. C语言的程序中有特殊含义的英语单词称为_。6标识符是用户_的一种_,通常用来表示程序中需要辨认的对象。7C语言中,标识符的定义规则是_。8C语言词类主要分为 、 、 、 、 和 等6类。9C语言的语句主要分为 语句、 语句、 语句、 语句、 语句、 语句、 语句和 语句等8类。10C程序是由函数构成的。其中有并且只能有 个主函数。C语言程序的执行总是由 函数开始,并且在 函数中结束。11C语言程序的注释可以出现在程序中的任何地方,它总是以 符号作为开始标记,以 符号作为结束标记。第2部分 基本数据类型和运算练习题一、 单项选择题1下列数据中属于“字符串常量”的是( )。 A”a”B. ABCC. abc0 D. a2下列数据中属于“字符串常量”的是( )。 AABCB. “ABC”C. abc D. a3. 在PC机中,n在内存占用的字节数是( )。A. 1 B. 2 C. 3 D. 44. 在PC机中,”axff” 在内存占用的字节数是( )。A. 5 B. 6 C. 3 D. 45. 字符串”ABC”在内存占用的字节数是( )。A. 3 B. 4 C. 6 D. 86. 字符串”ABCD”在内存占用的字节数是( )。A. 4 B. 6 C. 7 D. 87. 在C语言中,合法的长整型常数是( )。 A. 0L B. 4962710 C. 0.054838743 D. 2.1869e108在C语言中,合法的短整型常数是( )。 A. OL B. 0821 C. 40000 D. 0x2a9.下列数据中不属于“字符常量”的是( )。 A. aB. 160C. 070D. 07010char型常量在内存中存放的是( )。A. ASCII代码值 B. BCD代码值 C. 内码值 D. 十进制代码值11设整型变量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,112设整型变量m,n,a,b,c,d均为1,执行“(m=ab)&(n=ab)”后,m,n的值是( )。A. , B. , C. , D. ,13设a为2,执行下列语句后,b的值不为0.5的是( )。A. b=1.0/a B. b=(float)(1/a)C. b=1/(float)a D. b=1/(a*1.0)14设a为5,执行下列语句后,b的值不为2的是( )。A. b=a/2 B. b=6-(-a)C. b=a%2 D. b=a3?2:215. 执行语句“x=(a=3,b=a-)”后,x,a,b的值依次为( )。A. 3,3,2 B. 3,2,2 C. 3,2,3 D. 2,3,216. int b=0,x=1; 执行语句“if(x+) b=x+1;”后,x,b的值依次为( )。A. 2,3 B. 2,0 C. 3,0 D. 3,217.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( )。A. B. C. 9 D. 1218.设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a的值是( )。A. B. C. 9 D. 1219. int a=4,b=3,c=-2,d=2; 逻辑表达式a0&b&c0的值是( )。 A. 1 B. C. -1 D. 出错20.在以下一组运算符中,优先级最高的运算符是( )。 A. = B. = C. % D. &21.设整型变量i的值为,则计算表达式i-i后表达式的值为( )。 A. B. C. D. 表达式出错22.设整型变量i,j=3; 则计算表达式i=j+j后i,j的值为( )。 A. 4,4 B. 6,6 C. 4,6 D. 6,423.设整型变量a,b,c均为,表达式a+b+c+的结果是( )。A. B. C. D. 表达式出错24.设整型变量i值为,表达式(+i)+(+i)+(+i)的结果是( )。A. B. 12 C. 15 D. 表达式出错25.设整型变量i,j值均为3,执行了“j=i+,j+,+i”后,i,j的值是( )。 A. 3,3B. 5,4C. 4,5D. 6,626.若已定义x和y为double类型,则表达式;x=1,y=x+3/2的值是( )。A. B. C. 2.0 D. 2.527.sizeof(double)的结果值是( )。 A8B. 4C. 2D. 出错28. 表达式“1?(0?3:2):(10?1:0)” 的值是( )。 A. 3B. 2C. 1D. 029.设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为( )。A. 4 B. 3 C. 2 D. 130.设a为整型变量,不能正确表达数学关系:10a15的语言表达式是( )。A. 10a10&a15 D. !(a=15)31.int a=0; if(a=1) a+=10; 结果的值是( )。 A. 0B. 11C. 10D. 出错32.下列表达式中符合语言语法的赋值表达式是( )。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+733.设f是实型变量,下列表达式中不是逗号表达式的是( )。A. f=3.2,1.0 B. f0,f0 D. f=(3.2,1.0)34.下列表达式中,不正确的表达式是( )。 A. a=1,b=1B. y=int(x)C. a=b=5D. i+35.若有以下定义:char a、int b、float c、double d,则表达式a*b+d-c值的类型是( )。A. float B. int C. char D. n; float f=13.8; 执行“n=(int)f)%3”后,n的值是( )。 A. 1B. 4C. 4.333333D. 4.637.用十进制数表示表达式“12|012”的运算结果是( )。 A. B. C. D. 38.设有整型变量a=35,表达式“(x&15)&(x|15)” 的值是( )。 A. 0 B. 1C. 15 D. 3539.设字符型变量a=3,b=6,计算表达式c=(ab)2后c的二进制值是( )。A. 00011100 B. 00000111 C. 00000001 D. 0001010040.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为的是( )。A. a&b B. a=b C. a|b+c&b-c D. !(a=A&ch=Z)?(ch+32):chA. B. a C. Z D. z44.设有整型变量i、j、k,i值为3,j值为6。计算表达式“k=ij3;”后,k的值是( )。A. 06 B. 0177776 C. 066 D. 017776646.设有无符号短整型变量a值为331, 计算表达式“a=(a4)&(04)”后,a的值是( )。A. 0 B. 15 C. 015 D. 017二、填充题1在内存中存储“A”要占用 个字节,存储A要占用 个字节。2C语言中的逻辑值“真”是用 表示的,逻辑值“假”是用 表示。逻辑表达式值为“真”是用 表示的,逻辑表达式值为“假”是用 表示的。3符号常量的定义方法是 。4说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。5无符号基本整型的数据类型符为 ,双精度实型数据类型符为 ,字符型数据类型符为 。6定义变量的完整语句格式是 。7变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。8从变量的存储类型来说, 变量不允许初始化。 变量、 变 量和 变量可以初始化。其中变量如果不进行初始化,则 变量和 变量的初值不确定,而 变量初值为0。9设下列运算符:、+、+、&、b的值为 ,abc的值为 。12.若已知a=10,b=20,则表达式!az)?x+2:x-2,3,2”后x= 。bca15能表述“20X30或X10; A. 不定值 B. 10 C. 1 D. 010设x,y,z,t均为int型变量,则执行以下语句后,t的值为( )。 x=y=z=1; t=+x|+y&+z; A. 不定值 B. 2 C. 1 D. 011启动Turbo C的命令是( )。A. TC B. C C. TURBO-C D. TURBOC12假定所有变量均已正确定义,下列程序段运行后y的值是( )。 int a=0, y=10; if (a=0) y-; else if(a0)y+;else y+=y; A. 20 B. 11 C. 9 D. 013假定所有变量均已正确定义,下列程序段运行后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. 314下面的程序片段所表示的数学函数关系是( )。 y=-1; if(x!=0) if(x0) y=1; else y=0; -1 (x0) 1 (x0) 0 (x0) -1 (x0) 0 (x0) 1 (x0) 0 (x0)15int a=1,x=1; 循环语句while(a10) x+; a+;的循环执行( )。A. 无限次 B. 不确定次 C. 10次 D. 9次16下列语句中,错误的是( )。 A. while(x=y) 5;B. do x+ while(x=10); C. while(0); D. do 2; while (a=b); 17循环语句for(x=0,y=0;(y!=123)|(x0;i+);的循环执行( )。A. 无限次 B. 不确定次 C. 10次 D. 9次19若i、j已定义为int类型,则以下程序段中内循环体的执行次数是( )。 for(i=5;i;i-) for(j=0;j4;j+) A. 20 B. 24 C. 25 D. 3020. int i=1,s=0; while(i100) break; 执行以上程序段后,中放的是( )。A1到101的和 B. 1到100的和C. 1到99的和 D. 以上都不是21. 假定i和j为int型变量,则执行以下语句后j的值为( )。 int i=1; switch(i+)case 1: for(j=0;j9;j+) if (i=1) break;case 2: for(j=1;j10;j+) if (i=2) break;case 3: printf(“i=%dn”,i);A. 0 B. 1 C. 9 D. 1022假定a和b为int型变量,则执行以下语句后b的值为( )。 a=1; b=10; do b-=a; a+; while( b-0); A. 9 B. -2 C. -1 D. 823设x和y均为int型变量,则执行下面的循环后,y的值为( )。 for(y=1,x=1;y=10) break; if(x%2=1) x+=5; continue; x-=3; A. 2 B. 4 C. 6 D. 824在C语言中,下列说法中正确的是( )。A. 不能使用“do语句while(条件)”的循环B. “do语句while(条件)”的循环必须使用“break”语句退出循环C. “do语句while(条件)”的循环中,当条件为非0时将结束循环D. “do语句while(条件)”的循环中,当条件为0时将结束循环25. 在C语言的语句中,用来决定分支流程的表达式是( )。A. 可用任意表达式B. 只能用逻辑表达式或关系表达式C. 只能用逻辑表达式D. 只能用关系表达式26若有以下程序段,sum和i都是整型变量,则不能与该程序段等价的程序段是( )。 A.for(i=2,sum=0;i=10;i+) sum+=i;sum=0;i=2; B.sum=0;i=2;while(i=10) do sum=sum+i;i+; while(i1) sum=sum+i; i-; D.sum=0;i=11; do i-;sum=sum+i; while(i1) 二、填充题1结构化程序设计规定的三种基本结构是 结构、选择结构和 结构。2. 三种循环语句是 价的。3当循环体中的switch语句内有break语句,则只跳出 语句。同样,当switch语句中有循环语句,内有break语句,则只跳出 语句。4循环体中的continue语句是 。5若有定义语句“int a=25,b=14,c=19;”,以下语句的执行结果是 。 if(a+=25&b-=2&c+) printf(“*a=%d,b=%d,c=%dn”,a,b,c); else printf(“*a=%d,b=%d,c=%dn”,a,b,c);6以下两条if语句可合并成一条if语句为 if(ab) printf(“*y=%dn”,y); else printf(“*x=%dn”,x);7设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 。 for(i=0,j=10;i0) i= ; if (n0) j= ; ; printf(“i=%4d,j=%4dn”,i,j); 10下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。 main() int i,x,y=1; scanf(“%d”,&x); for(i=2;i=x/2;i+) if y=0;break; printf(“%dn”,y); 三、程序分析题1 阅读程序,写出运行结果。 main() int a=10,b=4,c=3; if(ab) a=b; if(ac) a=c; printf(“%d,%d,%dn”,a,b,c);2 阅读下列程序,写出程序的输出结果。 main() int x=100,a=10,b=20,ok1=5,ok2=0; if(a0;y-) if(y%3=0) printf(“%d ”,-y); continue;4. 阅读下列程序,写出程序运行的输出结果。 main() int i=5; do switch (i%2) case 4: i-; break; case 6: i-; continue;i-; i-;printf(“i=%d ”,i); while(i0);5 阅读下列程序,当输入为:ab*AB%cd#CD$ 时,写出程序运行的输出结果。 main() char c; while( (c=getchar()!=$) if(A=c & c=Z) putchar(c); else if(a=c & c=z) putchar(c-32); 四、程序设计题1 编一个程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C): C=5(F-32)/92 编一个程序,输入一个整数,输出其符号(若0,输出1,若0,输出-1)。3 编一个程序,输入x的值,按下列公式计算并输出y值; x (x1)y = 2x-1 (1x0 C. strcmp(a,b)0 D. ab14.设有如下定义,则正确的叙述为( )。 char x=“abcdefg”; char y=a,b,c,d,e,f,g; A.数组x和数组y等价 B.数组x和数组y长度相同 C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度15.设有二维数组定义如下,则不正确的元素引用是( ) int a34=1,2,3,4,5,6,7,8,9,10,11,12;A. a23 B. aa001 C. a7 D. a2c-a二、填充题1C语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,但在程序执行过程中,不检查元素下标是否 。下标必须是正整数、0、或者 。2C语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 常量,不能对它进行加、减和赋值运算。3执行“static int b5,a3=1,2,3,4,5,6;”后,b4= ,a12= 。4设有定义语句“static int a34=1,2,3;”,则a11 值为 ,a21的值为 。5. 设有定义语句“static char a10=“abcd”;”,则a3值为 ,a5 值为 。6. char a ; a0=”windows”;scanf(“%s”, );gets(a2);7若在程序中用到“putchar( )”函数时,应在程序开头写上包含命令 ,若在程序中用到“strlen( )”函数时,就大程序开头写上包含命令 。8. 以下程序以每行10个数据的形式输出a数组,请填空。main() int a50,i; printf(“输入50个整数:”); for(i=0;i50;i+) scanf(“%d”, ); for(i=0;i50;i+) if( ) ; printf(%3d”,ai); 9. 下面程序的功能是输出数组s中最大元素的下标,请填空。 main() int k,p; int s=1,-9,7,2,-10,3; for(p=0,k=p;psk) ; printf(“%dn”,k); 10.下面程序在a数组中查找与x值相同的元素所在位置。数据从a1元素开始存放,请填空。#include main() int a11,i,x; printf(“输入10个整数:”); for(i=1;i=10;i+) scanf(“%d”,&ai); printf(“输入要找的数 x :”); scanf(“%d”, ); a0=x; i=10; while(x!= ) ; if( ) printf(“与x值相同的元素位置是:%dn”,i); else printf(“找不到与x值相同的元素!n”);11.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include “string.h” main() int i, j, _ _; int 型k可当char型用 char str=”1234567”; for(i=0,j=strlen(str); _ _;i+,j-) 头尾交换,直到中间。 k=stri;stri=strj;strj=k; 12.以下程序给偶数行的方阵中所有边上的元素和两对角线上的元素置1,其它元素置0。要求对每个元素只置一次值。最后按矩阵形式输出。请填空。 main() int a1010,i,j; for(i=0;i10;i+) a i=1; ai =1; /*两对角线上的元素置1*/ for(i=1;i9;i+) a0 =1; for(i=1;i9;i+) a i=1; for(i=1

温馨提示

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

评论

0/150

提交评论