C语言程序设计练习题库
- 格式:doc
- 大小:174.19 KB
- 文档页数:20
高等教育自学考试C语言程序设计(二)课程代号(05772)同步练习题班级学号姓名二O 一六年三月目录第一章C语言概述第二章基本数据类型第三章控制结构第四章运算符和表达式第五章函数第六章数组第七章字符与字符串第八章变量类别与编译预处第九章指针第十章结构体、共用体和枚举类型第十一章文件第一章C语言概述一、单项选择题1.在计算机上可以直接运行的程序是()。
A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序2. 一个C语言程序是由()A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成3. C语言不具有的特点是()A.具有结构化的控制语句B.数据类型丰富C.语法限制不太严格,程序设计自由度大D.在可移植性上,C语言比其他语言差4. 以下叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面5. 以下叙述正确的是()A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别和执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,所以具有其他语言的一切优点二、填空1. 计算机语言的发展经过了、和等阶段。
2. C语言既适合编写,也适合编写应用软件。
标准答案一、单项选择题CADDC二、填空1. 机器语言,汇编语言,高级语言2. 系统软件第二章基本数据类型一、单项选择题1.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%22.属于C语言基本数据类型的是( )A.指针型B.无符号整型C.数组型D.结构型3.C语言的长整型数值在计算机中占用的字节个数是( )A.1B.2C.3D.44.C语言中,″\x3d″在内存中占用的字节数是( )A.1B.2C.4D.55.下列关于C语言的叙述错误的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义6.下列转义字符中错误的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′7.下列标识符中,不是C语言保留字的是( )A. charB. whileC. minD. default8.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default9. 数据-324在二进制文件和文本文件中所占的字节数分别是()A.2,2B.2,4C.4,2D.4,410. 请选出可以作为C语言用户标识符的一组标识符()A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof11.下列运算符优先级最高的是()A.关系运算符B.赋值运算符C.算术运算符D.逻辑运算符12. sizeof(float)是()A.一种函数调用B.一个不合法的表示形式C.一个整型表达式D.一个浮点表达式13. 下列叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面14. 编译C语言程序时,程序中的注释部分将()A.不参加编译,也不会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.参加编译,并会出现在目标程序中15. 下列字符串常量不正确的是()A.'abc' B."12'12" C."0" D." "16. 下列4个选项中,均是合法整型常量的是()A.160 -0xffff 011B.-0xcdf 01ª0xeC.-01 986,012 0668D.-0x48a 2e5 0x17. 以下选项中不属于C语言类型的是()A.signed short int B.unsigned long intC.unsigned int D.long short18. 数值029是一个()A.八进制数B.十六进制数C.十进制数D.非法数19. 在C语言中,要求运算数必须是整型的运算符是()A./ B.++ C.!=D.%20. 当c的值不为0时,以下能将c的值赋给变量a,b 的是()A.c=b=a B.(a=c) || (b=c)C.(a=c) && (b=c) D.a=c=b二、填空1. 表示空类型的保留字是_____________。
C语言基础一:1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x<<02>>B>>23.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) Case).Default7.下列标识符组中,合法的用户标识符为AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( B )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
第1次客观题作业一、单选题(共30题,每题3分)1 .下面表示正确的是__A___。
A.C语言中的逗号是一种运算符B.在C语言中,一行只能有一个语句C.C中的变量不区分大小写D.c中的关键字可以做为变量名2 .字符型常量在内存中存放的是__A____代码值。
A.ASCII B.二进制C.十进制D.八进制3 .以下不正确的C语言标识符是(C )。
A.AB1 B._ab3 C.4ab D.a2_b4 .以下运算符中优先级最低的运算符是_D____。
A.&& B.& C.|| D.=5 .在C语言中,要求运算数必须是整型的运算符是___A___。
A.% B./ C.< D.!6 . C语言程序的基本单位是__C_____。
A.程序行B.语句C.函数D.字符7 .将高级语言编写的程序翻译成目标程序的是___B____程序。
A.解释程序B.编译程序C.汇编程序D.源程序8 .以下选项中,与k=n++完全等价的表达式是__A___。
A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+19 .下列(A )不属于结构化程序设计的循环结构。
A.For B.While C.if-else D.do-while10 .以下叙述中错误的是__A___。
A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识11 .若有输入语句scanf( %d%d%d,&x,&y,&z);则不能使x值为5,y值为6,z值为7的输入是__A____。
A.5,6 ,7 B.5回车换行 6 7 C.5 6 7 D.5,6,712 .若i,j已定义为int类型,则下程序段中内循环体的总的执行次数是( B )。
for (i=3;i>0;i--) for (j=0;j<=4;j++){...}A.12 B.15 C.16 D.2013 .下列选项中,合法的C语言关键字是_D___。
C语言程序设计课程期末练习题一、单项选择题。
把合适的选项编号填写在括号内。
1.不符合C语言规定的复合语句是()。
DA.{} B.{;} C.{x=0;} D.{y=10}2.C语言中的选择类语句有两条,它们是()。
AA.if和switch B.if和else C.switch和case D.else和case3.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。
AA. mainB. MAINC. nameD. function4. 在C语言程序中,多行注释语句使用的开始标记符为()。
BA. //B. /*C. */D. **5. 用于输出表达式值的标准输出函数是()。
CA. scanf()B. print()C. printf()D. output()6. 在printf()函数调用的格式字符串中,每个格式符的先导字符为()。
BA. #B. %C. $D. @7. 由C语言源程序文件编译而成的目标文件的扩展名为( )。
CA. cppB. exeC. objD. C8. 由C语言目标文件连接而成的可执行文件的扩展名为( )。
BA. cppB. exeC. objD. c9.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为()。
A A. warning B. error C. warn D. err10. 在C语言中,表示换行符的转义字符为()。
CA. \fB. \rC. \nD. \m11. 字符串“a+b=12\n”的长度为()。
BA. 6B. 7C. 8D. 912. 要定义a和b为两个整型变量,则使用的定义语句为()。
BA. int a;b;B. int a,b;C. int a b;D. int a:b;13. 下列数值中最大值是()。
CA. 28/8B. 35/13C. 28%8D. 35%514. 下列数值中最小值是()。
DA. 28/8B. 35/3C. 28%8D. 35%315. 已知x的初值为5,则下列各表达式中的最大值为()。
C语言程序设计练习题一、选择题1.以下八进制数写法正确的是()A.0378 B.427 C.0417 D.04192.若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d ”,&a,&b,&c);给a赋值1,给b赋值2, 给c赋值3, 以下输入形式中错误的是(✞代表一个空格符)()A.✞✞✞1,2,3<回车> B.1✞2✞3<回车>C.1,✞✞✞2, ✞✞✞3<回车> D.1,2,3<回车>3.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);4.若w,x,z均为int型变量,则执行以下语句后的输出为。
w=3;z=7;x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",!w>z);printf("%d\n",w&&z);A. 0B. 1C. 0D. 01 1 1 11 1 0 01 1 1 05.分析以下程序, 下列说法正确的是。
main(){int x=5,a=0,b=0;if(x=a+b)printf("* * * *\n");elseprintf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #6.程序段如下:则以下说法中正确的是:()。
C语言程序设计习题及答案C语言基础一:1.下列四组选项中,均不是C语言关健字的选项是( A )。
A)define B)gect C)include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)—0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x〈〈02>〉B>>23。
下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"’ B)'\1011’ C)'\011’ D)'\abc’’\\’ '\’ ’\f’ ’\101’'xf’ ’\A' '\}' 'x1f’4.下面不正确的字符串常量是(A )。
A)'abc’ B)”12’12" C)”0" D)” "5.以下选项中不合法的用户标识符是( A )。
A)abc。
c B)file C)Main D)PRINT6。
C语言提供的合法关键字是( D )。
A) swithB)cherC)Case).Default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del—word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真”的表示是用( C )。
A)true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092’;则该语句( B )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
A)1 B)2 C)8 D)411已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+'6’-’3’后,c2中的值为( A )。
第 2页 共7 页(A )0 (B )1 (C )2(D )311. 以下正确的C语言标识符是( )。
(A )%x(B )a+b(C )a123(D )test !12. 下列字符序列中,不可用作C 语言标识符的是( )。
(A )abc123 (B )no.1 (C )_123_ (D )_ok13. 下列符号常量中非法的是( )。
(A )’\a’(B )’b’(C )’\’(D )’3’14. 在C 语言中,不同的类型数据混合运算时,要先转换成同一类型后进行运算。
设一表达式中包含有int 、long 、unsigned 和char 类型的变量和数据,则表达式最后的运算结果是( )类型数据。
(A )int(B )char(C )unsigned(D )long15. 如下程序的执行结果是( )。
{ int n=1; printf(“%d %d %d \n”,n, n++,n --);} (A )1 1 1 (B )1 0 1(C )1 1 0(D )1 2 116. 有如下程序:int a1,a2; c har c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);正确的输入是( )。
(A )10A 20B<CR> (B )10 A 20 B<CR> (C )10 A20B<CR> (D )10A20 B<CR> 17. 有如下程序: scanf(“a=%d,b=%d,c=%d”,&a,&b, &c);若要求a,b,c 的值分别为1,3,2,正确的输入是( )。
(A )132<CR> (B )1,3,2<CR>(C )a=1,b=3,c=2<CR> (D )a=1 b=3 c=2<CR>18.与数学式子129 x x n对应的C 语言表达式是( )。
C语言程序设计试题_练习题一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是()。
A.ABCB.abcC.a_bcD.ab.c2.C程序是由构成的。
A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数3.以下说法中正确的是:A.在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D.在C语言中,形参是虚拟的,不占存储单元。
4.设n=3;则n++的结果是()。
A.2B.3C.4D.55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。
A.0B.1C.2D.36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。
A.自动(auto)B.静态(tatic)C.外部(e某tern)D.寄存器(regiter)7.在while(某)语句中的某与下面条件表达式等价的是:A.某==0B.某==1C.某!=1D.某!=08.若有以下说明和语句:tructworker{intno;~char某name;}work,某p=&work;则以下引用方法不正确的是()。
A.work.noB.(某p).noC.p->noD.work->no9.以下对二维数组进行正确初始化的是()。
A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.int a[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:A)j某m+iB)i某m+jC)i某m+j-1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)1.#include<tdio.h>main(){inti=16,j,某=6;j=i+++1;某某=i=j;printf(“%d,%d\n”,j,某);}运行结果是:2.#include<tdio.h>#include<math.h>main(){inta=1,b=4,c=2;float某=10.5,y=4.0,z;z=(a+b)/c+qrt((double)y)某1.2/c+某;printf(“%f\n”,z);}运行结果是:3.#include<tdio.h>main(){inta,b,c,d;a=c=0;b=1;d=20;if(a)d=d-10;eleif(!b)if(!c)d=25;eled=15;printf(“d=%d\n”,d);}运行结果:4.main(){inti=10;witch(i){cae9:i+=1;cae10:i+=1;cae11:i+=1;}printf(“%d”,i);}运行结果:5.#include<tdio.h>main(){inta[]={1,2,3,4},i,j,=0;j=1;for(i=3;i>=0;i--){=+a[i]某j;j=j某10;}printf("=%d\n",);}运行结果:6.func(int某){某=20;}main(){int某=10;func(某);printf(“%d”,某);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
一、名词解释(每小题4分,共20分)1. 变量2. 赋值运算3. int4. 数组5. 函数二、单选题(每小题2分,共20分)1. 以下运算符中,表示取余数运算的是( )A. %B. /C. !=D. <=2. C语言中,表示“不等于”、“不相等”的运算符是( )A. ≠B. !=C. < >D. =/=3. C语言中,printf函数中的格式字符%d用来( )A. 输出一个字符串B. 输出单个字符C. 输出十进制整数D. 输出双精度浮点数4. C语言中,要求接受用户从键盘输入的一个英文字符到char型变量ch中,那么,该语句的正确写法是( )A. scanf("%z",ch);B. scanf("%c",ch);C. scanf("%z",&ch);D. scanf("%c",&ch);5. 定义一个用来存放双精度浮点数且名为x的变量的正确语句是( )A. double x;B. float x;C. Double x;D. Float x;6. 判断整数型变量score的取值是否在区间[60,100]的正确写法是( )A. if (score>=60 and score<=100)B. if (score>=60 && score<=100)C. if (score>=60 & score<=100)D. if (60<= score <=100)7. 定义最多能存放30个整数且名为scores的数组的正确语句是( )A. INT scores[30];B. int [30] scores;C. int scores[30];D. INT [30] scores;8. 利用string.h中库函数求字符串s的长度的表达式正确写法是( )A. len(s)B. length(s)C. strLen(s)D. strlen(s)9.利用string.h中库函数判断字符串s1大于等于字符串s2的正确写法是( )A. if(strcmp(s1,s2)>=0)B. if (s1>=s2)C. if(strcmp(s1,s2)≥0)D. if (s1≥s2)10. 以下能输出数字0,1,2,3,4,5,6,7,8,9且每行输出一个数字的正确语句是( )A. for( i=0; i<10; i++ ) { printf("%d",i); }B. for( i=0; i<10; i++ ) { printf("%d\n",i); }C. for( i=0; i<10; i++ ) { printf("%d\n",i+1); }D. for( i=0; i<10; i-- ) { printf("%d\n",i); }三、判断题(每小题2分,共10分)1. C语言中,int可以作为变量名,例如语句:char int;可以定义名为int 的字符型变量。
C语言习题集1-4章练习题一.选择题1、以下叙述中正确的是()。
A、用C程序实现的算法必须要有输入和输出操作B、用C程序实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出2、以下叙述中错误的是()A、用户所定义的标识符允许使用关键字B、用户所定义的标识符应尽量做到“见名知意”C、用户所定义的标识符必须以字母或下划线开头D、用户定义的标识符中,大、小写字母代表不同标识3、以下不正确的C语言标识符是()A、intB、a_1_2C、ab1exeD、_x4、下面的注释那个写法是正确的()A、/*this is a comment*\B、/*this is a comment/* it is error*/C、/*this is a comment*/D、//this one seems like a comment doesn‟t it5、C语言提供的不正确的转义字符是()A、‟\\‟B、‟\‟‟C、‟074‟D、‟\0‟6、字符串常量"ab\\\c\ted\3\76"的长度是()A、9B、10C、16D、87、在定义变量时同时给a、b、c三个整型变量赋初值5的正确语句是()A、int a=b=c=5;B、int a, b, c = 5;C、int a =5 ;b = 5; c =5 ;D、int a =5, b = 5, c =5;8、在C语言中,要求参加运算的数必须时整数的运算符是()A、/B、*C、%D、=9、是C语言提供的合法的数据类型关键字()A、FloatB、signedC、intD、Char10、若int k=7,x=12;则能使值为3的表达式是()A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)11、对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按()方式输入数据。
int k1,k2,k3,k4;scanf(“%d%d”,&k1,&k2);scanf(“%d,%d”,&k3,&k4);A、1020↙B、10 20↙C、10,20 ↙D、10 20↙1020↙10 20↙10,20↙10,20↙12、若定义x为double型变量,则能正确输入x值的语句是()A、scanf(“%f”,x);B、scanf(“%f”,&x);C、scanf(“%lf”,&x);D、scanf(“%5.1f”,&x);13、以下程序片段()main ( ){ int x=0,y=0,z=0;if (x=y+z) printf(“***”);else printf(“###”);}A、有语法错误,不能通过编译B、输出:***C、可以编译,但不能通过连接,所以不能运行D、输出:###14、下述程序的输出结果是()main ( ){ int a=0,b=0,c=0;if (++a>0 | | ++b>0)++c;printf(“%d,%d,%d”,a,b,c);}A、0,0,0B、1,1,1C、1,0,1D、0,1,115、以下程序输出结果是()main ( ){ int x=1,y=0,a=0,b=0;switch(x) {case 1:switch (y) {case 0 : a++ ; break ;case 1 : b++ ; break ;}case 2:a++; b++; break;case 3:a++; b++;}printf(“a=%d,b=%d”,a,b);}A、a=1,b=0B、a=2,b=1C、a=1,b=1D、a=2,b=216、下述程序的输出结果是()main ( ){ int a,b,c;int x=5,y=10;a=(--y==x++) ? –y : ++x ;b=y++ ; c=x ;printf(“%d,%d,%d”,a,b,c);}A、6,9,7B、6,9,6C、7,9,6 D 、7,9,717、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()if (a<b)if (c<d) x=1;elseif (a<c)if (b<d) x=2;else x=3;else x=6;else x=7;A、1B、2C、3D、418、若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是()A、①和②B、②和③C、①和③D、③和④19、以下程序的运行结果是()int main(){int m=5;if(m++>5)printf( “%d\n”,m);elseprintf( “%d\n”,m--);}A、4B、5C、6D、720、两次运行下面的程序,如果从键盘上分别输入7和5,则输出结果是()int main(){int a;scanf("%d",&a);if(a++>6)printf("%d",a);elseprintf("%d\n",a--)}A、7和5B、8和6C、8和5D、7和6二.填空题1、C程序是由构成的,一个C程序中至少包含。
因此,是C 程序的基本单位。
2、C 语言中的标识符只能由、和三种字符组成,且第一个字符必须是。
3、C语言中包含了三种基本的结构,它们分别为:、、。
4、设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为。
5、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:。
6、C语言提供三种逻辑运算符,按优先级高低它们分别是,,。
7、将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式。
8、在C语言中的实型变量分为两种类型,它们是和双精度型。
9、执行以下程序段后,a= ,b= ,c= 。
int x=10,y=9 ;int a,b,c ;a = (x--=y++) ? x-- : y++ ;b = x++ ;c = y ;三.编程题1、输出1000以内所有的水仙花数(水仙花数是指一个正三位数,其各个位数的立方和等于该数本身)。
2、编写一个程序,输入三个数,使其按照从小到大的顺序输出。
循环练习题一.选择题1、C语言中while和do-while循环的主要区别是()A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do–while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句2、以下描述中正确的是()A.由于do -while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。
B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。
D.do-while循环中,根据情况可以省略while3、下面有关for循环的正确描述是()A.for循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来4、对for(表达式1;; 表达式3)可理解为()A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)5、以下叙述正确的是:()A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
6、for(i=0;i<10;i++);结束后,i的值是()A. 9B. 10C. 11D. 127、下面程序的循环次数是():int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5B. 6C. 4D. 死循环,不能确定循环次数8、以下for循环的次数是()for(x=0,y=0;(y=123)&&(x<4);x++);A.是无限循环B.循环次数不定C.4次D.3次9、若i为整型变量,则以下循环执行的次数是()for(i=2;i=0;) printf(“%d”,i--)A.无限次B.0次C.1次D.2次10、若运行以下程序时,从键盘输入2473<CR>,则下面程序的运行结果是()#include<stdio.h>main( ){int c;while((c=getchar( ))!=‟\n‟)switch(c-…2‟){case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;}printf(“\n”);}A.668977 B.668966 C.66778777 D.668876611、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。
#include<stdio.h>main( ){int m=0,n=0;char c;while(()!=‟\n‟){if(c>=‟A‟&&c<=‟Z‟) m++;if(c>‟a‟&&c<=‟z‟) n++;}printf(“%d\n”,m<n?());}A. c==getchar( )B.getchar( )C.c=getchar()D.scanf(“%c”,c)A. n:mB.m:nC.m:mD.n:n12、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。
当输入一对相等的数时结束循环,请选择填空()。
main(){int a,b,t;scanf(“%d,%d”,&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);scanf(“%d,%d”,&a,&b);}}A.!a=bB.a!=bC.a==bD.a=b13、下面程序段的执行结果是()a=1;b=2;c=2;while(a<b<c ) {t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);A.1,2,0B.2,1,0C.1,2,1D.2,1,114、下面程序的输出结果是()main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A. 1B. 9C. 10D. 1515、要使下面程序输出10个整数,则在下画线处填入正确的数是():for(i=0;i<= ;)printf(“%d\n”,i+=2);A. 9B. 10C. 18D. 2016、运行下面程序:main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是():A. 45B. 40C. 34D. 5517、运行下面程序main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0) break;else k--;}k+=11; a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是()A. 21 32B. 21 33C. 11 12D. 10 1118、有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:()A. 3 2 1B. 2 1 0C. 3D. 219、若k为整型变量,则下面while循环执行的次数为:()k=10;while(k==0) k=k-1;A. 0B. 1C. 10D. 无限次20、若i为整型变量,则以下循环执行的次数是()for(i=2;i==0;)printf(“%d”,i--);A.无限次 B. 0次 C. 1次 D. 2次21、以下循环体的执行次数是;()main(){int i,j;for(i=0,j=3;i<=j;i+=2,j--)printf(“%d\n”,i);}A. 3B. 2C. 1D. 022、执行以下程序后,输出结果是:()main(){ int y=10;do { y--;}while(--y);printf(“%d”,y--);}A. -1B. 1C. 8D. 023、以下程序的输出结果是:()main(){ int a,b;for(a=1,b=1;a<=100;a++){if(b>=10) break;if(b%3==1) {b+=3; continue;}}printf(“%d”,a);}A. 101B. 3C. 4D. 524、下列程序段不是死循环的是()A.int I=100 ;while(1){I=I%100+1;if(I>100)break;}B. for(;;)C. int k=0;do{++k;}while(k>=0);D. int s=36; while(s); --s;25、下面程序段的运行结果是()for(x=3;x<6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x); A.**3 B.##3 C.##3 D.**3##4 ##4 **4 **4##5 **5**5 ##5二.填空题1、下面程序的运行结果为:#include<stdio.h>main(){int a=10,y=0;do{a+=2;y+=a;if(y>10) break;}while(a<8);printf("a=%d,y=%d\n",a,y);}2、从键盘输入1 2 3 4 5 -1 回车,则下面程序运行的结果是:main(){ int n,k=0;do{ scanf(“%d”,&n);k+=n;}while(n!=-1);printf(“k=%d,n=%d”,k,n);}3、下面程序的运行结果为:main(){int i,j,s=0;for(i=1,j=5;i<j;i++,j--)s+=i*10+j;printf(“\n%d”,s);}4、下面程序的运行结果是main(){int i=10,s=0;for(;--i;)if(i%3==0)s+=i;s++;printf(“\ns=%d”,s);}5、下面程序的运行结果是main(){int a=2,n=5,s;s=a;for(;--n;)s=s*10+a;printf(“%d”,s);}6、下面的程序运行时,循环体语句“a++”运行的次数为:main(){int i,j,a=0;for(i=0;i<2;i++)for(j=4;j>=0;j--)a++;printf("%d",a);}7、下面的程序运行后,a的值为:main(){ int i,j,a=0;for(i=0;i<2;i++) a++;for(j=4;j>=0;j--) a++;printf("%d",a);}8、下面程序的运行结果为:int i=1,s=3;do{s+=i++;if(s%7==0) continue;else ++i;}while(s<15);printf(“%d”,i);9、当运行以下程序时,从键盘输入China# 回车,则下面程序的运行结果是:#include “stdio.h”main(){ int v1=0,v2=0;char c;while((c=getchar())!=‟#‟){ switch(c){ case …a‟:case …h‟:default:v1++;case …o‟:v2++;}}printf(“%d,%d\n”,v1,v2);}10、以下程序输入一行字符(以回车结束输入),统计其中所有数字字符的个数。