1、C语言程序设计习题第1章 习题一、选择题 1. 关于C语言的源程序的叙述中,错误的是( )。A)C语言的源程序由函数构成 B)main函数可以书写在自定义函数之后C)必须包含有输入语句 D)一行可以书写多个语句 2. 以下说法中正确的是( )。A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分 3. 在一个C语言程序中,main函数的位置( )。A)必须放在最开始 B)必须在系统调用的库函数后面C)必须在最后 D)可以任意4. C语言程序
2、编译时,程序中的注释部分将( )。A)参加编译,并会出现在目标程序中 B)参加编译,但不会出现在目标程序中C)不参加编译,但会出现在目标程序中 D)不参加编译,也不会出现在目标程序中 5. 一个完整的可运行的C源程序是( )。 A)至少要由一个主函数和(或)一个以上的辅函数构成B)由一个且仅由一个主函数和零个以上(含零)的辅函数构成 C)至少要由一个主函数和一个以上的辅函数构成 D)至少由一个且只有一个主函数或多个辅函数构成6. 对于C语言源程序,以下叙述错误的是( )。A)可以有空语句B)函数之间是平等的,在一个函数内部不能定义其它函数C)程序调试时如果没有提示错误,就能得到正确结果D)注释
3、可以出现在在语句的前面7. 一个C语言程序是由( )组成的A)一个主程序和若干子程序 B)若干过程 C)函数 D)若干子程序8. 以下叙述正确的是( )。A)C程序的每行只能写一条语句 B)在对一个C程序进行编译的过程中,可以发现注释中的拼写错误C)C语言本身没有输入、输出语句 C)在C程序中,mian函数必须位于程序的最前面9. 以下叙述不正确的是( )。A)C程序的执行总是从main函数开始 B)一个C源程序必须包含一个main函数C)C语言程序的基本组成单位是函数 D)在编译C程序源程序时,可发现注释中的拼写10. C程序的基本单位是( )。A)子程序 B)程序 C)子过程 D)函数11
4、. 下面关于C语言用户标识符的描述,正确的是( )。A)不能区分大小写 B)用户标识符不能描述常量C)类型名也是用户标识 D)用户标识符可以作为变量名二、填空题1. 一个C语句中至少包含一个( )。2. C语言标识符由 ( )、( )和( )来构造。 3. C程序执行过程生成的3种文件及扩展名为.C、.obj和( )。第2章 习题一、选择题1. 以下选项中不合法的用户标识符是( )A)st.n B)FILEC)MainD)GO2. 下列属于字符型常量的是( )。 A)AA B)”B” C)117 D)x93L3. 以下( )是正确变量名。A)5f B)if C)f.5 D)_f54. char
5、 型变量存放的是( )。A)ASC码值 B)字符本身 C)十进制代码值 D)十六进制代码值5. C语言中最简单的数字类型包括( )。A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型6. 下面叙述正确的是( )。)强制类型转换运算的优先级高于算术运算)若a和b是整型变量,(a+b)+是合法的)”A”*B是合法的)”A”+”B”是合法的7. 不是C语言实型常量的是( )。A)55.0 B)0.0 C)55.5 D)55e2.58. 已知char a=R;则不正确的赋值表达式是( )。A)a=(a+)% 4 B)a+2=3 C)c a+=256-
6、 D)a=0789. 以下选项中属于C语言数据类型的是( )。A)复数型 B)逻辑型 C)双精度型 D)集合型10. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是( )。A)2.0 B)2.25 C)2.1 D)1.5 D)1.5 D)1.5 D)1.511. 设整形变量a为5, 使b不为2的表达式是( )。A)b=(+a)/3 B)b=6-(-a) C)b=a%2 D)b=a/212. 若t为double类型,表达式t=1,t*5,t的值为( )。A)1 B)6.0 C)2.0 D)1.013. 在C语言中,运算对象必须是整型数的运算符是( )。A)% B) C)
7、%和 D)*14. 字符串”abcdtef0g”的长度是( )。 A)9 B)7 C)6 D)4二、填空题1. 的整数可以用十、八和( )三种进位制表示。2. 字符串”ab034x79”的长度为( )。3. 表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为( )。4. 设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的结果类型为 ( )。5. 若k为int型变量且赋值11。请写出运算k+后表达式的值( )。6. 表达式3.5+1/2的计算结果是 ( )。7. 若A、
8、b和c均是int 型变量,则执行下面表达式后,c值为( )。c=(a=5)-(b=2)+a8. 条件”20x30或x-100”的C语言表达式是( )。9. C语言的基本数据类型有整型、实型和( )。10. 若有定义:char c=010;则变量c中包含的字符个数为( )。11. C语言中普通整型变量的类型声明符为( )。第3章 习题一选择题 1. 结构化程序设计不包括( ) A)最优化 B)自顶而下,逐步细化 C) 模拟化设计 D)结构化编码 2. 下面叙述中,( )不是结构化程序设计中的三种基本结构之一A)数据结构 B)选择结构 C)循环结构 D)顺序结构3. 已知:int a,b;用语句s
9、canf(“%d%d”,&a,&b);输入a、b的值时,不能作为输入数据分隔符的是( ) A) , B)空格 C)回车 D)TAB4. 已知:int y;执行语句y=5/2;则变量y的结果是( ) A)2 B)-2 C)2.5 D)2.05. 已知:int y;执行语句y=5%-3;则变量y的结果是( )A)2 B)-2 C)1 D)-1 6. 设int a=2,b=2; 则+a+b的结果是( ) A)2 B)3 C)4 D)57. getchar()函数的功能是从终端输入( )A)一个整型量值 B)一个实型变量值 C)多个字符 D)一个字符8. putchar()函数的功能是向终端输出( )
10、A)多个字符 B)一个字符 C)一个实型变量值 D)一个整型变量表达式9. 已有如下定义和输入语句int a; char c1,c2;scanf(“%d,%c,%c”, &a, &c1, &c2);若要求ac1c2的值分别为10A和B,正确的数据输入是( )A)10AB B)10,A,B C)10A B D)10 AB10. 若有声明和语句:int a=5,b=6;b*=a+1;则b的值为( )A)5 B)6 C)31 D)3611. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是( )A)a=2.2,b=3 B)a=2.2 b=3 C)2.2 3 D)
11、2.2,312. 下列程序的运行结果是( )#include void main( ) int a=2,c=5;printf(a=%d,b=%dn,a,c); A)a=%2,b=%5 B)a=2,b=5 C)a=d, b=d D)a=%d,b=%d二填空题1. 设有以下变量定义,并已赋确定的值, char w; int x; float y; double z; 则表达式w*x+z-y所求得的数据类型是( )2. 若有定义int y=7;float x=2.5,z=4.7;则下面表达式的值为( )x+(int)(y/3*(int)(x+z)/2)%43. 若有声明和语句:int a=25,b=
12、60;b=+a;则b的值是( )三程序分析题(写出程序运行结果)1. #include void main() int a,b,c; a=-1;b=-2; c=+a-b+;printf(%d,c);2. #include void main() int x,y,z;x=1;y=3;z=+x+(+y);printf(%d,z); 第4章 习题一选择题1. 若整型变量a,b,c,d中的值依次为1,4,3,2,则条件表达式ab?a:cd?c:d的值为( )A)1 B)2 C)3 D)42. 若a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是( )A)1 B)0 C)2 D)不知道a的值,不能
13、确定3. 在C语言中,switch语句后一对圆括号中表达式的类型( )A)可以是任何类型 B)只能是int类型C)可以是整型或字符型 D)只能是整型或实型4. 下列运算符的优先级最高的是( )A)关系运算符 B)算术运算符 C)赋值运算符 D)逻辑运算符5. 下列运算符中优先级最低的运算符是( )A)| B)!= C)=10 or a=0 | a=10&a=10 | ab B)(ab)=c C)b+cb11. 表示关系12=x=y的C语言表达式为 ( )A)(12=x)&(x=y) B) (12=x)&(x=y) C) (12=x)|(x=y) D)(12=x)|(xb)&(y=cb)的值为(
14、 )A)0 B)1 C) 5 D)6二填空题 1. C语言中逻辑值 真用( )表示2. C语言中逻辑值假用( )表示 3. 在C语言中,当表达式值为0时表示逻辑值假,当表达式值为( )时表示逻辑值真 4. 设x为int型变量,请写出一个关系表达式( ),用以判断x同时为3和7的倍数时,关系表达式的值为真5. C语言中逻辑运算符优先级按由低到高分别是( )三程序分析题 1. 以下程序的功能是#include void main() char ch;scanf(“%cn”,&ch);ch=( ch=A&ch=Z )?ch+32:ch;printf(“char=%cn”,ch);2. 若int i=
15、10;则执行下列程序后,写出变量i的正确结果switch (i) case 9:i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;3. 有以下程序#include void main() int a=1,b=2,c=3,d=0;if (a=1) if (b!=2) if(c!=3) d=1; else d=2; else if(c!=3) d=3; else d=4; else d=5; printf(“%dn”,d);写出程序运行后的输出结果四程序填空题1. 输入三角形的三条边a,b,c,求三角形的面积 #include “math.h” #includ
16、e “stdio.h” void main( ) float a,b,c,d,t,s; printf(“请输入三角形的三条边:”); scanf(“%f,%f,%f”,&a,&b,&c); if (1) printf(“%f%f%f不能构成三角形!”, a,b,c);else t=(a+b+c)/2;s= (2) printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2fn”, a,b,c,s);五程序设计题1. 请编程序,输入一个4位数字,要求输出这4个数字字符,每个数字间空一个空格如输入1990,应输出1 9 9 0第5章 习题一选择题1. 有以下程序#inclu
17、devoid main()int y=10;while(y-);printf(“y=%dn”,y);程序执行后的输出结果是( )A)y=0 B)y= -1 C)y=1 D)while构成无限循环2. 运行下面程序段的输出结果是( ) int i; for(i=0;i10;i+); printf(“%d”,i);A) 9 B)10 C)8 D)11 3. 设有程序段int k=10;while (k=0) k=k-1;则下面的描述正确的是( )A)while循环执行10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次 4. 关于break语句的描述正确的是( )A)bre
18、ak语句只能用于循环体中 B)break语句可以一次跳到多个嵌套循环体之外C)在循环结构中可以根据需要使用break语句 D)在循环结构中必须使用break语句5. C语句中while 和do-while循环的主要区别是( )A)do-while的循环体至少无条件执行一次 B)while 的循环控制条件比do-while的循环控制条件严格C)do-while 允许从外部转到循环体内 D)do-while的循环体不能是复合语句 6. 对于整型变量x,与while(!x)等价的是( )A)while(x!=0) B)while(x=0) C)while(x!=1) D)while(x)7. 下列d
19、o-while循环的循环次数为( )已知: int i=5;do printf(“%dn”,i-); i-; while (i!=0); A)0 B)1 C)5 D)无限8. 要求以下程序的功能是计算:s= 1+1/2+1/3+1/10#includevoid main() int n; float s; s=1.0; for(n=10;n1;n-) s=s+1/n; printf(%6.4fn,s);程序运行后输出结果错误,导致错误结果的程序行是( ) A)s=1.0; B)for(n=10;n1;n-) C)s=s+1/n; D)printf(%6.4fn,s);9. 下面关于for循环的
20、正确描述是( )A)for循环是先执行循环体语句,后判断循环条件 B)若for循环的循环体中包含多条语句,多条语句必须用括号括起来C)for循环只能用于循环次数已经确定的情况 D)在for循环中,不能用break语句跳出循环体10. 以下程序的输出结果是( )#includevoid main() int i;for(i=1;i6;i+) if(i%2) printf(“#”);continue; printf(“*”); printf(“n”);A) #*#*# B) # C)* D)*#*#*二填空题 1. 若for循环用以下形式表示for(表达式1;表达式2;表达式3) 循环体语句则执行
21、语句for(i=0;i3;i+) printf(“*”);时,表达式3执行( )次 2. 设有如下程序段: int i=0,sum=1; do sum+=i+; while(i0)printf(“%d”,x-);的循环执行次数为( )三程序分析题1. #includevoid main() int x=2; while(x-); printf(“%d”,x);写出程序运行结果2. 当执行下面的程序段后,i、j、k的值分别为( )、( )、( )int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for( ;ab;+b) i+;while(a+c) j+;do k+;w
22、hile(ad+);四程序填空题1. 鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空for(x=1;x=29;x+)y=30-x; if( ) printf(“%d,%dn”,x,y); 2. 下面程序的功能是计算1-3+5-7+-99+101的值,请填空#include void main() int i,t=1,s=0; for(i=1;i=101;i+=2) ;s=s+t; ; printf(“%dn”,s);3. 爱因斯坦的阶梯问题设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶
23、梯顶问至少有多少阶梯#include void main() int a=7; while( ) a+= ( ); printf(Flight of stairs=%dn,a);4. 以下程序的功能是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入请填空#include void main() float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while( ) if(xamax) amax=x;if( ) amin=x;scanf(“%f”,&x);printf(“namax=%fnamin=%fn”,amax,ami
24、n); 五程序设计题1. 设m, n为正整数,且mn,求由m到n的自然数倒数之和2. 请编写一个程序,求序列2/1+3/2+5/3+8/5前20项之和3. 编写程序,打印出所有的对等数对等数是指一个三位数,其各位数字的和与各位数字的积的积等于该数本身例如:144=(1+4+4)*(1*4*4)第6章 习题一选择题1. 已知char s5, c; int b;则调用函数scanf的正确语句是( )A)scanf(“%s%c”, s, c); B)scanf(“%d%c”,&b, c);C)scanf(“%d%c”, b, &c); D)scanf(“%s%c”, s , &c);2. 下列描述中
25、不正确的是( )A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入输出C)可以对整型数组进行整体输入输出D)不能在赋值语句中通过赋值运算符=“对字符型数组进行整体赋值 3. 在int a5=1,3,5;中,数组元素a1的值是( )A)1 B)0 C)3 D)2 4. 若要定义一个具有5个元素的整型数组,以下错误的定义语句是( )A)int a5= 0 B)int b=0,0,0,0,0 C)int c2+3 D)int i=5,di 5. 已知 int a10;则对a数组元素的正确引用是( ) A) a10 B)a3.5 C)a(5) D)a10-106. 以下能对一维数组a进行正
26、确初始化的语句是( )A)int a5=(0,0,0,0,0,) B)int a5=0 C)int a5=1,2,3,4,5,6,7 D)int a=07. 若有定义int a34=1,2,0,1,2,3;则a11的值为( )A)0 B)1,2 C)1 D)38. 若有声明int a54; 则对其数组元素的正确引用是( )A)a3+12 B)a(3)(2) C)a0,2 D)a359. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式10. 若有int a35=2,2,2,6,2,6,2;则数组a共有个元素( ) A)8 B)5 C)3 D)1511. 设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,i,j,s=0; for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij;则执行该程序段后,s的值是( )A)0 B)1 C)2 D)312. 设有如下定义char str8=“Fujian”;则分
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1