C语言 习题_c语言习题
C语言 习题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言习题”。
第一章 C语言概述
1.1选择题
【题1.1】以下不是C语言的特点的是()A.C语言简洁、紧凑
B.能够编制出功能复杂的程序 C.C语言可以直接对硬件进行操作 D.C语言移植性好
【题1.2】以下不正确的C语言标识符是()。A.ABC B.abc C.a_bc D.ab.c 【题1.3】以下正确的c语言标识符是()。A.%x B.a十b C.a123 D.test!【题1.4】一个c程序的执行是从().A.main()函数开始,直到main()函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一个函数结束 【题1.5】一个C语言程序是由()。A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成【题1.6】一个c程序是由()。A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成【题1.7】C语言派程序的基本单位是()。A.过程 B.函数 c子程序 D.标识符 【题1.8】编辑程序的功能是()。
A.建立并修改程序 B.将c源程序编译成目标程序 C.调试程序 D.命令计算机执行指定的操作
1.2填空题
【题1.9】c语言符号集包括【】。
【题1.10】一个c程序有且仅有一个【】函数。
【题1.11】C程序的基本单位是【】。
【题1.12】一个c派程序有【 】个main()函数和【】二个其他函数。【题1.13】在一个C源程序中,注释部分两侧的分界符分别是【】和【】。【题1.14】结构化设计中的三种基本结构是【】。
【题1.15】在C语言中,输入操作是由库函数【】完成的,输出函数是由库函数【】完成的。
1.3编程题
【题1.16】编写一个程序,在屏幕上输出你的姓名。试着上机编辑、编译、运行你的程序。
第二章 数据类型、运算符与表达式
2.1选择题
【题2.1】以下结果为整数的表达式(设有int i;char c;float f;)().A.i十f B.i*c C.c十f D.i十c十f 【题2.2】以下使i的运算结果为4的表达式是()。A.int i=0,j=0;(i=3,(j十十)十i); B.int i=1,j=0;j=i=((i=3)*2); C.int i=0,j=1;(j==1)?(i=1);(i=3); D.int i=1,j=1;i+=j十=2;【题2.3】设n=10,i=
4、则赋值运算n%=i+1执行后,n的值是().A.0 B.3 C.2 D.1 【题2.4】逗号表达式(a=3*5,a*4),a十15的值为(),a的值为()。
①A.15 B.60 C.30 D.不确定 ②A.60 B.30 C.15 D.90
【题2.5】如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为().A.1 B.2 C.3 D.4 【题2.6】下面不正确的字符串常量是()A)’abc’ B)”12’12” C)”0” D)” ”
【题2.7】在程序中可以用来作为变量名的合法的标识符是:_______ A.)static B)23_b1 C)stu_1t D)#33 【题2.8】若有代数式3ae/bc,则不正确的C语言表达式是()A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3 【题2.9】以下不正确的叙述是()
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)当从键盘输入数据时,对于整形变量只能输入整形数值,对于实型变量只能输入实型数值
【题2.10】以下正确的叙述是().A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是正数还是实数,都能被准确无误的表示 D)在C程序中,%是只能用于正数运算的运算符
【题2.11】已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’;后,c2的值为().A)D B)68 C)不确定的值 D)C 【题2.12】在C语言中,要求运算数必须是整形的运算符是().A)/ B)++ C)!= D)% 【题2.13】若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为().A)7 B)8 C)9 D)10 【题2.14】 在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
A)由用户自己定义
B)均为2个字节
C)是任意的D)由所用的机器的机器字长决定 【题2.15】 若有说明语句: char c=‘72’; 则变量c()。
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法,c的值不确定
【题2.16】 设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为()。
A)int
B)float C)double
D)不确定
【题2.17】设int n=3;则十十n的结果是(),n的结果是()A)2 B)3 C)4 D)5 【题2.18】设有说明: char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为()。
A)float B)char
C)int
D)double.【题2.19】语句(1,2,3,4)的结果是()。
A)1
B)2
C)3
D)4
2.2填空题
【题2.20】表达式10%3的结果是【】
【题2.21】 执行下列语句后,a的值是【】
int a=12;a+=a-=a*a;【题2.22】 定义int x,yl执行y=(x=1,十十x,x十2)5语句后,y的值是【】 【题2.23】 在C语言中的实型变量分为两种类型,他们是【单精度型(或:float型)】和【双精度型(或;double型]】。
【题2.24】 若a、b和c均是int型变量,则计算表达式后,a值为【】,b值为【】,c值为【】。
a=(b=4)+(c=2)【题2.25】 若有定义:char c=’ 10’;则变量c中包含的字符个数为【】。
【题2.26】 若x和n均是int型变量,且x的初值为12,n的初值为5,则计算表达式后x的只为【】。
x%=(n%=2)【题2.27】 C语言中的标识符只能由三种字符组成,它们是【】,【】和【】。
【题2.28】 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘3’的值为【】.【题2.29】 设int a=1,b=2.c=3,d;执行d=!(a十b十c)后,d的结果是【】
第三章 最简单的C程序设计
3.1 选 择 题
【题3.1】以下C程序正确的运行结果是().main(){long y=-43456;printf(“y=%-8ldn”,y);printf(“y=%-08ldn”,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y);} A)y=-43456 B)y=-43456
y=-43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+ 43456 C)y=-43456 D)y=-43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y=-43456 y=+43456 【题3.2】以下C程序正确的运行结果是().main(){long y=23456;printf(“y=%3xn”,y);printf(“y=%8xn”,y);printf(“y=%#8xn”,y);} } A)y = 5ba0 B)y = ︼ ︼ ︼5ba0 y = ︼ ︼ ︼ ︼5ba0 y = ︼ ︼ ︼ ︼ ︼ ︼ ︼5ba0 y = ︼ ︼0x5ba0 y =︼ ︼0x5ba0 C)y = 5ba0 D)y = 5ba0 y = 5ba0 y = ︼ ︼ ︼ ︼5ba0 y = 0x5ba0 y = # # # #5ba0 【题3.3】已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据是,正确的数据输入方式是()。(注:︼表示空格,表示回车)
int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A︼20B B)10︼A︼20︼B C)10A20B D)10A20︼B 【题3.4】已有定义int x;float y;且执行scanf(“%3d%3f”,&x,&y);语句时从第一列开始输入数据12345︼678,则x的值为(),y的值为()。(注:︼表示空格)
【1】A)12345 B)123 C)45 D)345 【2】A)无定植 B)45.000000 C)678.000000 D)123.000000 【题3.5】已有如定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A 和B,当从第一列开始输入数据时,正确的数据输入方式是()。(注:表示回车)
int a1,a2;char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,%c2);A)1020AB B)10︼20 AB C)10︼ ︼20︼ ︼AB D)10︼20AB 【题3.6】已有程序和输入数据的形式,程序中输入语句的正确形式应当为()。
(注:︼表示空格,表示回车)main(){ int a;float f;printf(“nInput number:”);输入语句
printf(“nf=%f,a=%dn”,f,a);} Input number:4.5︼ ︼2 A)scanf(“%d,%f”,&a,&f);B)scanf(“%f,%d”,&f,&a);C)scanf(“%d %f”,&a,&f);
D)scanf(“%f %d”,&f,&a);【题3.7】根据定义和数据的输入方式,输入语句的正确形式为()。
已有定义:float f1,f2;数据的输入方式:4.52 3.5 A)scanf(“%f,%f”,&f1,&f2);B)scanf(“%f%f”,&f1,&f2);C)scanf(“%3.2f%2.1f”,&f1,&f2);D)scanf(“%3.2f,%2.1f”,&f1,&f2);【题3.8】阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为()。
main(){ int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);} A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值
【题3.9】根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()。
main(){ int x;float y;pringf(“enter x,y;”)输入语句 输出语句 } 输入形式 enter x,y:2 3.4 输出形式 x+y=5.40 A)scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);B)scanf(“%d%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);C)scanf(“%d%f”,&x.&y);printf(“nx+y=%6.1f”,x+y);D)scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);【题3.10】以下说法正确的是().A)输入项可以为一个实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);【题3.11】根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为().main(){ char ch1,ch2,ch3;输入语句
printf(“%c%c%c”,&ch1,&ch2,&ch3);} 输入形式:A B C
输出形式:A B scanf(“%c%c%c”,&ch1,&ch2,&ch3);scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);scabf(“%c %c %c”,&ch1,&ch2.&ch3);scanf(“%c%c”,&ch1,&ch2,&ch3);【题 3.12 】有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是()。(注:——表示空格)
A)132《回车》 B)1,3,2《回车》 C)a=1——b=3——c=2《回车》 D)a=1,b=3,c=2《回车》
【题3.13】 以下能正确的定义整形变量a,b,c并为其付初值5的语句是().int a=b=c=5; int a,b,c=5; a=5 ,b=5,c=5;a=b=c=5;【题 3.14】 已知ch是是字符形变量,下面不正确的赋值语句是().ch=`a+b`;ch=`o`;ch=`7`+`9`;ch=5+9;【题 3.15 】 已知ch是是字符形变量,下面正确的赋值语句是().ch= `123`;ch=`xff`;ch=` 8`;ch=””;【题3.16 】 若有以下定义,则正确的赋值语句是().int a,b;float x A)a=1,b=2 B)b++;C)a=b=5 D)b=(int)x;【题 3.17】 设X,Y均为FLOAT变量,则以下不合法的赋值语句是()A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=10;【题3.18】有如下程序,对应正确的数据输入是()。#include main(){ float a,b;scanf(“%f%f”,&a,&b);printf(“a=%f,b=%fn”,a,b);} A.2.04 5.56 B.2.01,5.67 C.A=2.04,B=5.67 D.2.045.67 【题3.19 】以下程序的执行结果是()。
#include main(){ int sum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf(“%dn”,pad);} A.7 B.6 C.5 D.4 【题3.20 】巳知字母A的ASCII码是65,以下程序的执行结果是()。#include main(){ char c1='A',C2='Y';printf(“%d,%dn”,c1,c2);A.A,Y B.65,65 C.65,90 D.65,89 3.2 填空题
【题3.21 】 以下程序的输出结果为【 】.main(){printf(“*%f,%4.3f*n”,3.14,3.1415);} 【题3.22】以下程序的输出结果为【 】.main(){ int x=1,y=2;printf((“x=%d y=%d*sum*=%dn”,x,y,x+y);printf(“10Squared is : %dn”,10*10);} 【题3.23 】假设变量a,b,c为整形, 以下语句借助中间变量把a,b和c中的直进行交换,把b 的直给a, 把c 的直给b, 把a 的直给c,例如,交换前,a=10,b=20,c=30,交换后,a=20,b=30,c=10请填空 【 】;a=b;b=c;【 】.【题3.24 】 假设变量x,为整形变量,则执行下面语句后x的直为【】.x=7;x+=x-=x+x;【题3.25 】以下程序的执行结果是【】。#include main(){ char c='A'+10;printf(“c='%cn”,c);} 【题3.26 】以下程序输入123<cR>后的执行结果是【】.#include main(){ int a,c;char b;scanf(“%d%c%d”,&a,&b,&c);printf(“a=%d,b=%c,c=%dn”,a,b,c);}
【题3.27 】以下程序输入ABC<CR>后的执行结果是【】.#include main(){ char c;scanf(“%3c”,&c);printf(“c=%cn”,c);} 3.3编程题 【题3.28 】“水仙花数”是指一个三位数,它的三个数位数字的立方和这个数的数值相等,编程打印所有的水仙花数。
解:本题适于使用穷举法求解,注意穷举范围为三位数100~999,穷举条件为:三位数的三个数位数字的立方和等于这个数的数值。需要使用循环结构。程序如下:
#include main(){ int d0,d1,d2,n;printf(“The numbers are :”);for(n=100;n