c语言习题答案
c语言习题(带答案)
一、选择1若有表达式(a)(--x):(++y),则其中与a等价的表达式是A)a==1B)a==0C)a!=1D)a!=02有以下程序段intx,y,z;x=10;y=50;z=30;if(x>y)x=y,y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);程序的输出结果是A)x=10y=50z=10B)x=10y=50z=30C)x=10y=30z=10D)x=50y=30z=503下面的函数调用语句中func函数的实参个数是f(f2(u1,u2),(u3,u4),(u6,max(u7,u8)));A)3B)4C)5D)84 以下叙述中错误的是A)用户定义的函数中可以没有return语句B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达6有以下程序#include<>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={11,12,13,14,15,16,17,18,19,20},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的运行结果是A)11,12,13,14,15,16,17,18,19,20B)12,11,14,13,16,15,18,17,20,19C)20,19,18,17,16,15,14,13,12,11D)20,11,12,13,14,15,16,17,18,198有以下程序main(){ int a=7,b=8,*p,*q,*r;p=&a;q=&b;r=p; p=q;q=r;printf("%d,%d,%d,%d\n",*p,"q,a,b);}程序运行后的输出结果是A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,79 .s1和s2已正确定义并分别指向两个字符串。
C语言练习题(带详解答案)
C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
C语言练习题(带详解答案)
1、编程题1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>int main(void){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);}elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
C语言习题_答案
C语言章节习题目录C语言章节习题 (1)第一章C语言概述 (2)第三章数据类型、运算符和表达式 (3)第四章顺序结构程序设计 (4)第五章选择结构程序设计 (10)第六章循环结构程序设计 (17)第7章数组习题 (25)第8章函数习题 (34)第九章预处理 (41)第十章指针 (42)第一章C语言概述一、选择题:1、一个C程序的执行是从(A)。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C 语言中,每个语句必须以(D)结束.A. 回车符 B。
冒号 C。
逗号 D. 分号3、C 语言规定:在一个源程序中,main函数的位置(C)。
A. 必须在最开始B。
必须在系统调用的库函数的后面C. 可以任意 D。
必须在最后4、一个C 语言程序是由(B).A. 一个主程序和若干子程序组成B。
函数组成C. 若干过程组成D。
若干子程序组成5、下列说法中错误的是(D).A。
主函数可以分为两个部分:主函数说明部分和主函数体B。
主函数可以调用任何非主函数的其他函数C。
任何非主函数可以调用其他任何非主函数D。
程序可以从任何非主函数开始执行6、用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。
A。
生成可执行目标文件 B。
生成目标文件C. 输出运行结果 D。
自动保存源文件二、填空题:1、C 语言只有(37)个关键字和 (9)种控制语句。
2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以(\*) 符号作为开始标记,以(*\)符号作为结束标记。
4、C 语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成的。
5、系统默认的C 语言源程序文件的扩展名是(。
C语言基础练习题(含答案)
第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
BA、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2. 下列字符序列中,不可用作C语言标识符的是()。
BA.abc123 B. C._123_ D._ok 3. 正确的C语言标识符是()。
AA._buy_2 B.2_buy C._buy D.buy4. 请选出可用作C语言用户标识符的一组标识符()。
BA.void B.a3_b3 C.For D.2a define _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
BA.\\ B.\0xAA C.\t D.\06. 不属于C语言关键字的是()。
dA.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。
bA.Float B.signed C.integer D.Char8. 以下不能定义为用户标示符的是()。
bA.scanf B.Void C._3com_ D.int9. 一个C程序是由()。
bA.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
cA.程序行 B.语句 C.函数 D.字符11. 下列说法中,错误的是()。
aA.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的是()。
cA.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。
C语言练习题及答案
综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。
A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A)C)356e39、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。
C语言练习题真答案(汇总版)
0在C语言中,合法的字符常量是( D ).之迟辟智美创作A.'字'B."A"C."ABC"D.'\x41'1下面叙述正确的是(B).A.法式中必需包括有输入语句B.变量按所界说的类型寄存数据C.main函数必需位于文件的开头D.每行只能写一条语句2毛病的叙述是(D).A.一个C语言源法式可由一个或多个函数组成B.若一条语句较长,也可分写在下一行上C.C法式必需包括一个main()函数D.构成C语言源法式的基本单位是算术表达式3(C)是关于C语言数据类型的正确叙述.A.变量必需先界说后使用B.不允许使用空类型C.枚举类型不是基本类型D.数组其实不是构造类型4main( )函数的位置(B).A.必需在自界说函数前面B.可以在自界说函数后面C.必需位于法式的最前面D.必需在自界说函数后面5C语言函数体由(C)括起来.A.< >B.( )C.{ }D.[ ]6(A)是不正确的叙述.A.注释说明只能位于一条语句的后面B.C源法式的基本组成单位是函数C.C源法式可由一个或多个函数组成D.每条语句最后必需有一个分号7一个C语言源法式是由(B).A.一个主法式和若干子法式组成B.函数组成C.若干过程组成D.若干子法式组成8结构化法式设计的三种基本结构是(C).A.函数结构、判断结构、选择结构B.平行结构、嵌套结构、函数结构C.顺序结构、选择结构、循环结构D.判断结构、嵌套结构、循环结构9C源法式的调试是指对源法式进行(C).A.录入与编纂B.查错与编译C.查错与排错D.连接与运行10C语言中,可将一系列语句置于(C)从而构成复合语句.A.一对尖括号"< >"之间B.一对圆括号"( )"之间C.一对花括号"{}"之间D.一对方框号"[ ]"之间11构成C源法式的基本单位是(D).A.语句B.变量C.运算符D.函数12以下叙述中正确的是(A).A.C源法式中注释部份可以呈现在法式中任意合适的处所B.一对花括号"{}"只能作为函数体的定界符C.C源法式编译时注释部份的毛病将被发现D.构成C源法式的基本单位是函数,所有函数名都可以由用户命名13下面叙述正确的是(D).A.每行最多只能写两条语句B.法式中必需含有自界说函数C.main()函数必需位于源法式文件的开头D.所有语句都必需以分号";"结束14下面叙述毛病的是(B).A.若一条语句较长,可分写在下一行或多行上B.构成C语言源法式的基本单位是语句C.C源法式中年夜、小写字母是有区另外D.一个C源法式可由一个或多个函数组成15(A)是关于C语言数据类型的正确叙述.A.枚举类型不是基本类型B.数组不是构造类型C.变量使用前应界说相应的数据类型D.不允许使用空类型16C源法式中main()函数的位置(C).A.必需位于法式的最前面B.必需在系统库函数后面C.可以在自界说函数后面D.必需在自界说函数前面18下面叙述毛病的是(D).A.C源法式可由一个或多个函数组成B.C源法式必需包括一个main()函数C.一个C源法式的执行是从main()函数开始,直到main()函数结束D.注释说明部份只能位于C源法式的最前面20C语言的下列运算符中,优先级最高的运算符是(A).A.++B.+=C.||D.!=21(D)为正确的用户标识符.A.structB.5fC.D._for22C语言基本数据类型包括(B).A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、字符串型23(A)为合法的常量.A.52686LB.E-7C.D.'E12'24(C)为正确的变量名.A.-k15B.intC.k_5D.25(D)为正确的字符常量.A.''\\''B."\24m"C."c"D.'M'26(C)为非法的字符串常量.A." "B."s"C.'efg'D."26'62"27C语言整型数据在内存中的代码是用(C)暗示的.A.原码B.反码C.补码D.BCD码28以下选项中,合法的实型常数是( B ).A.E-3B..2E1C.D.29下列C语言合法的数据类型关键字是(B).A.DoubleB.unsignedC.integerD.Char30Turbo C中,int型数据占用的字节数(B).A.由用户自己界说B.为2个字节C.是任意的D.即是所用计算机的字长31Turbo C中,基本数据类型存储空间长度的排列顺序是(A).A.char<int<long int<float<doubleB.char=int<long int<float<doubleC.char<int<long int=float=doubleD.char=int=long int<float<double32以下叙述中正确的是(A).A.字符常量用一对单撇号' '作为单个字符的定界符B.字符常量和字符串常量一样,都是用双引号括起来C.字符常量存储时,自动在字符后加一个字符结束符号'\0'D.字符常量和字符串常量所分配的内存空间年夜小是一样的33(B)为正确的用户标识符.A.3_rowB.max_atC.unionD.min-534C语言的基本数据类型包括(A).A.整型、实型、字符型B.整型、实型、空类型C.整型、字符型、指针型D.整型、实型、逻辑型35(D)为合法的常量.A.5,326B.C.'b_k'D.1.23E+836(D)为正确的变量名.A.5_proB.caseC.elseD.pro_537(C)为正确的字符常量.A.'bcd'B.'\084'C.'@'D.'165'38(A)为非法的字符串常量.A.'123'B."case"C."056"D." "40已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下法式运行结果是(A).main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2); }A.67,DB.C,DC.C,68D.67,6841若有界说 int m=6; 则正确的赋值表达式是(C).A.m*7B.m*5=8C.m-=m*6D.double(-m)42语句 k=(m=5,n=++m); 运行之后,变量k、m、n的值依次为(D).A.5,5,6B.5,6,5C.6,6,5D.6,6,643语句 x=5%4+(4/5); 运行之后,整型变量x的值为(A).A.1B.2C.3D.044(B)语句符合C语言语法.A.float z=28,int x,y=18;B.int x=25,y=25,z=25;C.int x=25:y=25:z=25;D.int x+y=z;45若有界说int a,x; 则语句a=(x=8,x+8); 运行后,变量a、x的值依次为(A).A.16, 8B.8, 8C.16, 16D.8, 1646若变量 m, n, t已界说且赋予初值,则正确的表达式是(B).A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4)47若有界说:int a,b; float x,则以下不符合C语言语法的表达式是(A).A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b48若有界说:int m=4,n=5;float k;,则以下符合C语言语法的表达式是(B).A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.49若有界说:int a=6; 则语句 a*=a-=a/=3; 运行后,a的值是(B). A.10B.0C.34D.2450下面关于C语言变量的叙述中,毛病的是(A).A.可以用define关键字界说变量B.变量名用年夜小写字母是有区另外C.C语言允许分歧基本类型的变量之间进行混合运算D.C语言中要求对变量作强制界说的主要理由是:便于确定类型和分配空间51若有界说:int a=5,b=2; 则表达式b= (a!=5)的值为(B).A.5B.0C.3D.252逗号表达式 (a=15,a*4),a+15 的值为(B).A.15B.30C.75D.6053若有界说:int b=-15; 则(A)为正确的赋值表达式.A.b+=b*3B.b=*5C.*b=6D.b+10=-554若有界说:int x,a,b; 语句x=(a=2,b=3,a+b); 运行后,x、a、b的值依次为(C).A.2 3 5B.3 2 5C.5 2 3D.5 3 255若有界说:int a,b=5; 语句a=(b/2)+b%2; 运行后,a的值为( B ).A.0B.3C.4D.256(C )语句符合C语言语法.A.int a=2,b+=a;B.int a=b=2,c=5;C.float x=2.3,b,c;D.,int i,j=6;57若有界说:int a=3; 语句a+=a-=a*a; 运行后,a的值为( C ).A.0B.-3C.-12D.-658若有界说 int x=1,y=2,n=3; 则( A )为正确的表达式.A.x=y*3,y=(x+n)/yB.x=nyC.float(y/n)D.(x+y)(y+n)60下列语句中,符合C语言语法的赋值语句是( 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+7;61( A )是正确的叙述.A.与 5/6 等价B.'G' 与"G" 等价C.5/6 与等价D.++3与4 等价62下面叙述中,毛病的是( D ).A.C语言中的表达式求值,是按其运算符的优先级先高后低的次第进行B.自增与自减运算符的结合方向为“自右至左”C.关系运算符的优先级低于算术运算符D.C语言算术运算符不包括模运算符“%”63( C )是正确的叙述.A.表达式"m"+"M" 是合法的B.若变量x, y为整型,则(a+b)++是合法的C.强制类型转换运算的优先级高于算术运算D.表达式 'm' * 'n' 是分歧法的64若有界说 int i=1,j=9; 则表达式 (++j)*(i--) 的值为( B ).A.0B.10C.9D.865设整型变量x为7,使整型变量y不为2的表达式是( A ).A.y=x%3B.y = x/3C.y =(++x)/3D.y=8-(--x)66若已界说 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b的值为( D ).A.0B.3C.1D.267若有界说:int i=5,j=4;则语句 i/=++j; 运行后i的值为( B ).A.10B.1C.D.068若已界说:int a=2,b=2; 则表达式 (a+(b++), b) 的值是( A ).A.2B.3C.4D.669若有界说:int r,x=245; 则语句 r=x/100%9; 运行后r的值为( A ).A.2B.5C.0D.2770若已界说:int i=6,t; 则语句 t=3+(--i); 运行后t的值为( C ).A.9B.7C.8D.571C语言的 % 运算符按运算对象的个数属( C ).A.单目运算符B.四目运算符C.双目运算符D.三目运算符72若已界说:int a=5,b=9,c=6; 则语句 b++; ++c; a=b-c; 运行后a的值为( B ).A.5B.3C.2D.473下面叙述正确的是( B ).A.2/3 与 2%3 等价B.5/(int)4.0 与 5/4 等价C.++2 与 3 等价D.++2与--3 等价74下面叙述毛病的是( A ).A.算术运算符中只有"*"、"/"优先级高于关系运算符B.模运算符"%"是C语言基本的算术运算符C.自加和自减运算符只能用于变量,而不能用于常量或表达式D.算术运算符中不包括"="运算符75下面叙述正确的是( A ).A.C语言中整型与字符型变量的混合运算表达式的结果是整型B.(3+9)++ 是正确表达式C.模运算符"%"两边运算数的数据类型是任意的D."abc"+"xxx"是正确表达式76若有界说:int i=3,j=6; 则表达式(--i)*(j++)的值为( C ).A.18B.15C.12D.1077若有界说:int a,b=6; 语句a=--b; 运行后,a、b的值分别是( C ).A.5 6B.6 5C.5 5D.6 678若有界说:int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后,x的值为( C ).A.6B.8C.7D.380以下法式运行时,若从键盘输入5,则输出结果是(D ). main() { int a; scanf("%d",&a); if(a++>5) printf("%d\n",a); else printf("%d\n",a--); }A.7B.4C.5D.681若已界说float x; 要从键盘输入数据36.582给变量x,则应选用( B )语句.A.scanf("%2.3f",&x) ;B.scanf("%6f",&x) ;C.scanf("%6.3f",&x) ;D.scanf("%5.3f",&x) ;82若已界说double y; 拟从键盘输入一个值赋给变量y,则正确的函数调用是( C ).A.scanf("%d",&y) ;B.scanf("%7.2f",&y) ;C.scanf("%lf",&y) ;D.scanf("%ld",&y) ;83已有界说 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是( D ).A.scanf("%c",&s) ;B.scanf("%d",&s) ;C.scanf("%u",&s) ;D.scanf("%lf",&s) ;84函数putchar( ) 的功能是向终端输出( A ).A.一个字符B.多个字符C.一个关系表达式D.一个实型变量值85若已界说int a=11; 执行以下语句后的输出结果是( B ). printf("a=%d,a=%o,a=%x\n",a,a,a) ;A.a=11, a=11, a=bB.a=11, a=13, a=bC.a=11, a=13, a=cD.a=11, a=12, a=1386若有界说int m=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k); 执行后的输出结果是(C ).A.B.43211232C.4321+123+21D.432+123+0287已有如下界说和输入语句,char c1,c2;int x; scanf("%c%d%c",&c1,&x,&c2); 若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是( A ).A.K9HB.K 9 HC.K9 HD.9KH88以下法式段的运行结果是( B ). int a=1; printf("%d, %d, %d\n", a, ++a, a++);A.3,3,1B.2, 2, 1C.1, 2, 3D.3, 2, 189以下法式的运行结果是( D ).void main(){ int a=65;char c='A';printf("%d+%c=%d\n",a,c,a+c); }A.A+A=AAB.65+A=65AC.65+65=130D.65+A=13090若已界说:int x=7;float y=7.0; 以下语句中能输出正确值的是( B ).A.printf("%d %d",x,y);B.printf("%d %.3f",x,y);C.printf("%.3f %.3f",x,y);D.printf("%.3f %d",x,y);91putchar函数可以向终端输出一个( A ).A.字符或字符型变量值B.整型变量表达式值C.实型变量值D.字符串92若已界说:int a=6;float b=1.5; 要求输出形式为: 6 * 1.50=9.00 ,应选用的正确输出语句是( B ).A.printf("%d * %f=%f",a,b,a*b);B.printf("%d * %.2f=%.2f",a,b,a*b);C.printf("%d * %d=%.2f",a,b,a*b);D.printf("%.2f * %.2f=%.2f",a,b,a*b);93若有界说float x; 要从键盘输入数据6.02赋给x,则应选用(D )语句.A.scanf("%8.2f",&x);B.scanf("%1.2f",&x);C.scanf("%4.2f",&x);D.scanf("%f",&x);94只能向终端输出一个字符的是( D ).A.printf()函数B.scanf()函数C.getchar()函数D.putchar()函数95若有语句 int a; char c; scanf("%3d%c",&a,&c); 为将整数135赋给a,字符'6'赋给c,正确的数据输入方式是(B ).(说明:<CR>代表换行,__代表空格)A.135__6<CR>B.1356<CR>C.135<CR>6<CR>D.135__6__96getchar()函数的功能是获取终端输入的( B ).A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式97若有界说 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( D ).A.printf("a*b=%d\n",a*b);B.printf("a*b=a*b\n");C.printf("%d*%d=a*b\n",a,b);D.printf("%d*%d=%d\n",a,b,a*b);98若有界说:char c1='A',c2='B'; 语句printf("%d+%d=%d",c1,c2,c1+c2);运行后的结果为(D ).(说明:'A'的ASCII码的十进制值为65)A.A+B=131B.65+66=ABC.A+B=ABD.65+66=131100有以下法式: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"); } 当输入:247<回车>,法式的输出结果是( B ).A.689B.6689C.66778D.66887101若已界说 int x=5,y=9,z; 语句 z=x>=y; 运行后z的值为( C ).A.1B..t.C.0D..f.102判定逻辑值为“真”的最准确叙述是( D ).A.1B.年夜于0的数C.非0的整数D.非0的数103若已界说 int x=-16,y=-12,z; 语句z=x<=y; 运行后z的值为( B ). A..t.B.1C..f.D.0104能正确暗示数学关系式 100≤s<300的表达式为( C ).A.(s>=100) & (s<300)B.100<= s<300C.(s>=100) && (s<300)D.(s>=100) and (s<300)105若界说 int a=2,b=3; 则表达式 !a||b 的值为( B ).A.0B.1C.2D.3106若界说 int a=-5,b=-8,c=-12; 则表达式 a>=b||b<c 的值为( D ).A.变量i的值B.变量j的值C.0107下列表达式( C )不能用来判断整型变量x中的值是否为奇数.A.x%2==1B.!(x%2==0)C.!(x%2)D.x%2108若有界说:int a=3,b=2,c=3; 则值为0的表达式是( D ).A.(a-b)==(c/b)B.a>=cC.c-b||a+b&&(b*c-a-c)D.(b*c-a-c)&&(b*c-a-b)109若已界说:int x=4,y=2,z=0; 则表达式 (x-y<=y)|| (y=z)的值是( A ).A.1B.0C.2D.4110若有界说:int a=3,b=2,c=1,k; 则表达式k=a>b>c的值是( A ). A.0B.C.2D.3111以下运算符中优先级最高的是( D ).A.<=B.&&C.||D.!112执行以下语句后,b的值是( A ).int a=5,b=6,c=1,x=2,y=3,z=4;(a=c>x) || (b=y>z);A.0B.1C.-1D.6113x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( B ).A.-20<x<-5B.x>-20 && x<-5C.!(x>-20) && !(x<-5)D.-5<x<-20114若有界说:int a; 则表达式(B )不能用来判断a值为奇数是“真”,偶数是“假”.A.a%2==1B.!(a%2)C.a%2D.!(a%2==0)115若有界说:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=a<b)||(k=c<d); 运行后,k的值为( A ).A.2B.1C.0D.-116若有界说:int x=1,y=2,z=3; 则表达式( A )的值为0.A.!((x<y) && z)B.x>y || x<zC.x<=yD.x|| (y+z && y-z)117若有界说: int a=3,b=5,c=8; 则表达式 !(a-b) || (c-b) 的值为( A ). A.1B.0C.2D.3118若有界说: int a; 且表达式 !a的值为0,则表达式( A )的值为1.A.a!=0B.a==0C.a=0D.!(a<0 || a>0)120以下法式运行后,a的值是( C ).main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1) { b+=3; continue; }b-=5; } }A.101B.100C.8D.7121已界说 double k=3.6; 则正确的赋值表达式是( D ).A.k=double(-3.6)B.k%3C.D.k+=k-=(k=1.2)*(k=3)122已界说 char c = 'A' ; 则正确的赋值表达式是( B ).A.c=\028B.c=(c++)%4C.c+1=66D.c+=127--123已界说 int m ='A'; 则正确的表达式是( C ).A.2*m=m++B.m=int(-3.2)C.m%3D.m=m-m=m-5124设已界说 float a=2.0,b=3.0; 使a值为5.0的表达式是( A ).A.a+= bB.C.D.125若已界说 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为( D ).A.B.C.D.126若已界说int a=3,b=3,x=1,y=2; 表达式(a=y>x)&&(x=b>a) 的值是( B ).A.6B.1C.9D.0127若有界说:int a=2,b=3; float x=5; 则表达式x*b/a的值是( A ). A.B.7C.6D.5128若有界说:int x=8; float y=130;char z='A'; 则表达式x+z%(int)y的值是( C ). [已知'A'的ASCII码的十进制值为65]A.运行时发生毛病信息B.8C.73D.129若已界说:int m=7,n=4; float x=3.0,y=8.0,k; 则执行语句k=m/2+n*x/y;后,变量k的值是( C ).A.3B.4C.D.5130若有界说:float x=2,y=4,h=3; 下列表达式中与计算结果不相符的是( C ).A.(x+y)*h/2B.(x+y)*h*1/2C.(1/2)*(x+y)*hD.h/2*(x+y)131表达式2+sqrt(16.0)/4结果的数据类型是( A ).A.doubleB.intC.charD.void132若有界说:int a=4,b=5,c=6; 则表达式 (1.0*a+b)/c的值是( A ). A.B.1C.4D.133下列运算符中优先级最低的是( A ).A.=B.!C.>D.*134若有界说:float x=3.5,y=3.6; 则表达式( A )的值为6.A.(int)x+(int)yB.x+yC.(int)(x+y)D.int(x+y)135若有界说:int x; char c='A'; 则正确的赋值表达式是(A ).(说明:'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97)A.x=c+32B.x=c+'ABC'C.x=c+'CBA'D.x='ABC'136若有界说:float x=2,y; int a=3; 语句y=1*(x+a)/3; 运行后,y的值为( D ).A.B.0C.D.137若有界说:float x=3.5,y=5.5; 则表达式( B )的值为2.A.(x+y)%7B.(int)(x+y)%7C.int(x+y)%7D.(int)x+y%7138若有界说:int a=6,b=7,k=0,t=1; 语句 (k=a<b) && (t=a==b); 运行后,k、t的值分别是(D ).A.0 0B.1C.0 1D.1 0140以下法式段的运行结果是( D ). int x=3; do{ printf("%3d, ", x-=2 ); }while(!(--x));A.1B.30C.死循环D.1, -2141以下法式运行时,若从键盘输入6,则输出结果是(A ).void main(){int x;scanf("%d",&x);if (x-->6) printf("%d\n",x);else printf("%d\n",--x); }A.4B.5C.6D.3142以下法式的运行结果是( C ).void main(){int m,n=1,t=1;if(t== 0) t=-t;else m=n>=0?7:3;printf("%d\n",m); }A.3B.-C.7D.143对整型变量a,赋值语句 a=(a%3==0?1:0); 与(D )语句不等价.A.if (a%3= =0) a=1; else a=0;B.if (a%3!=0) a=0; else a=1;C.if (a%3) a=0; else a=1;D.if (a%3) a=1; else a=0;144以下法式运行的结果是(B ).void main(){int x,y,z,a;x=y=z=1;a=15;if(!x) a--;else if(y) ;if(z) a=3;else a+=4;printf("%d\n",a); }A.15B.3C.19D.14145若已界说 int a=1,b=2,t=3; 则执行以下法式段后变量a,b,t的值分别为(A ). if(a<b) { t=b; b=a; a=t; }A.a=2,b=1,t=2B.a=2,b=1,t=C.a=2,b=1,t=3D.a=3,b=1,t=2146以下法式段运行后变量k的值为( C ).int a=3,b=2;int k;k=(--a==b++)?a:b+1;A.0B.1C.2D.3147以下法式的运行结果是( C ).void main(){ int n=9;switch(n--){ default: printf("%d ",n++);case 8:case 7: printf("%d ",n);break;case 6: printf("%d ",n++);case 5: printf("%d ",n); } }A.8B.7C.8 9D.8 7148以下法式的运行结果是( C ).void main(){ int n=8;switch(n--){ default: printf("%d ",n++);case 8:case 6: printf("%d ",n);break;case 4: printf("%d ",n++);case 2: printf("%d ",n); } }A.8B.8 6C.7D.8 7149以下法式的运行结果是( D ).void main( ){ int a;if(a=6)printf("%d\n",a);else if(a>6) printf("%d\n",a+2);else printf("%d\n",a+3); }A.运行时发生毛病信息B.9C.8D.6150若有界说:int x=10,y=8,a; 则执行语句a=((--x==y)? x: y);后,变量a的值是( A ).A.8B.9C.10D.0151若有界说: int a=2,b=3,c=1; 则以下法式段的运行结果是( D ). if(a>b)if(a>c) printf("%d ",a);else printf("%d ",b);printf("%d ",c);A.3 1B.2C.3152以下条件语句中(其中s1和s2分别暗示C语言的语句),(D)与其他三条语句不等价.A.if(a) s1; else s2;B.if(a == 0) s2; else s1;C.if(a != 0) s1; else s2;D.if(a == 0) s1; else s2;153以下法式段运行时,若从键盘输入5,则运行结果是(D ).int a,y=10;scanf("%d",&a);if (a>10) y=a+6;printf("%d\n",y+a);A.10B.1C.16D.15154以下法式的运行结果是(B ).void main(){int a,b=2,c=6;a=3;if(a>6) a=a+b;else if(a==6) b=a+c;else a=b+c;printf("%d\n",a); }A.5B.8C.6D.9155若有界说:int x,a; 赋值语句a=(x%3==0)?0:1; 与(B )语句不等价.A.if (x%3!=0) a=1; else a=0;B.if (x%3) a=0; else a=1;C.if (x%3==0) a=0; else a=1;D.if (!(x%3==0)) a=1; else a=0;156以下法式段的运行结果是( C ).int s=15;switch(s/4){case 1: printf("One ");case 2: printf("Two ");case 3: printf("Three ");default: printf("Over "); }A.ThreeB.Two OverC.Three OverD.One Over157以下法式段的运行结果是( C ).int s=15;switch(s/4){default: printf("Over ");case 1: printf("One ");break;case 2: printf("Two "); }A.TwoB.Over TwoC.Over OneD.One158以下法式段运行后x的值为( D ). int a=3,b=6,x; x=(a==b)?a++:--b;A.4B.3C.6D.5160下列法式段中,非死循环的是( A ).A.int i=100; while(1) { i=i%100+1; if(i>=100) break; }B.int k=0; do{ ++k; }while(k>=0);C.int s=10; while(++s%2+s%2) s++;D.for(;;)161若已界说 int a; 不会发生死循环的语句是(C ).A.for( ; ;a+= 2);B.for(a=10; ;a--);C.for( ;(a=getchar())!= '\n'; );D.while(-1) {a++;}162在循环语句的循环体中,break语句的作用是( B ).A.继续执行break语句之后的循环体各语句B.提前结束循环,接着执行该循环后续的语句C.结束本次循环D.暂停法式的运行163以下法式段运行后,循环体中的 n+=3; 语句运行的次数为( A ). int i,j,n=0;for(i=1;i<=3;i++){for(j=1;j<=i;j++){n+=3; printf("%d\n",n); } }A.6次B.9次C.12次D.1次164do…while循环与while循环的主要区别是( D ).A.while循环体至少无条件执行一次,而do…while循环体可能都不执行B.do…while循环体中可使用continue语句,while循环体中不允许呈现continue语句C.do…while循环体中可使用break语句,while循环体中不允许呈现break语句D.do…while循环体至少无条件执行一次,而while循环体可能都不执行165以下法式段运行后,循环体运行的次数为( A ). int i=8,a=0;for ( ;i<8;i++)a+= i;A.0次B.1次C.8次D.无限166以下法式段运行后变量a的值为( C ).int i=1,a=0;for( ;i<3;i++){ continue; a+=i; }A.6B.3C.0D.5167有以下法式:void main(){ int i;for(i=1; i<=3; i++)switch(i){ case 1: printf("%d", i);。
计算机c语言习题(含答案)
1. 有如下程序main(){ int n[5]={0,0,0},i,k=2;for(i=0;i < k;i++) n[i]=n[i]+1;printf("%d\n",n[k]);}该程序的输出结果是 DA、不确定的值B、2C、1D、02. 执行下面的程序后,a的值为__B___main(){ int a,b;for (a=1,b=1;a < 100;a++){if (b > =20) break;if (b%3==1){ b+=3; continue; }b-=5;}}A、7B、8C、9D、103. 下述程序的输出结果是( B )。
#includemain(){int k=0,m=0;int i,j;for(i_O;i<2;i++){for(j:0;j<3;j++)k++:k一=j;}m=i+j;printf(”k=%d,m=%d”,k,m);}A、k=0,m=3B、k=O,m=5C、D)k=l,m=3D、D)k=l,m=54. 以下程序段____C__x=-1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误5. 有如下程序 Bmain(){ int n=9;while(n > 6) {n--;printf("%d",n);}}该程序段的输出结果是A、987B、876C、8765D、98766. 有以下程序main(){ int i, j;for(j=10;j < 11;j++){ for(i=9;i < j; i++)if (!(j%i))break;if(i=j-1)printf("%d",j);}}输出结果是 BA、11B、10C、9D、10 117. 以下程序的输出结果是 Amain( ){ int i;for(i=1;i < 6;i++){ if(i%2){printf("#");continue;}printf("*");}printf("\n");A、#*#*#B、#####C、*****D、*#*#*8. 以下叙述正确的是( D )A、do-while语句构成的循环不能用其它语句构成的循环来代替B、do-while语句构成的循环只能用break语句退出C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。
C语言练习题答案
C语言练习题答案1.已知三角形的三边长为a,b,c,计算三角形面积的公式为:area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。
试编程从键盘输入a,b,c的值(假设a,b,c的值可以保证其构成一个三角形),计算并输出三角形的面积。
**输入格式要求:"%f,%f,%f" 提示信息:"Input a,b,c:"**输出格式要求:"area = %.2f\n"程序运行示例如下:Input a,b,c:3,4,5area = 6.00答案:#include#includeint main(void){float a, b, c, s, area;printf("Input a,b,c:");scanf("%f,%f,%f", &a, &b, &c);s = (a + b + c) / 2;area = sqrt(s*(s - a)*(s - b)*(s - c));printf("area = %.2f\n", area);return 0;}-----------------12.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:输入1234,分离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。
**要求输入提示信息为:无**要求输入格式为: "%d"**要求输出格式为:"%d"程序运行示例如下:1234 此处为输入4321 此处为输出答案:#includeint main(void){int a, b, c, d,e;scanf("%d",&a);b = a/1000;c = a%1000/100;d = a%100/10;e = a%10;a = e*1000+d*100+c*10+b;printf("%d",a);return 0;}--------------23.有关输入输出问题。
C语言习题级答案
选折题1. int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A)。
A、1B、不一定C、3D、22.以下选项中不合法的用户标识符是 BA、DimB、printfC、_123D、A$3. int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是(C)。
A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;C、for(i=1;i<=6;i++)a[i][i]=i;D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;4.以下所列的C语言常量中,错误的是___A___。
A、1.2e0.5B、0xFFC、2LD、'\72'5.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、此说明语句不正确D、数组a中各元素都可得到初值,但其值不一定为06.以下正确的字符串常量是 DA、'abc'B、'A'C、OlympicGamesD、"\\\"7. C语言中,char类型数据占(C)。
A、8个字节B、4个字节C、1个字节D、2个字节8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是____D__。
A、非法的常量B、字符aC、字符eD、字符A9.以下函数的类型是(D)fff(float x){return 5;}A、与参数x的类型相同B、void 类型C、无法确定D、int类型10.以下叙述中正确的是(A)。
C语言习题及答案
{
/***********SPACE***********/
【?】;
while(r==0)
{
printf("*%d",i);
/***********SPACE***********/
【?】;
r=n%i;
}
}
printf("\n");
}
答案:
=======(答案1)=======
A:typedef v1 int;
B:typedef v2=int;
C:typedef int v3;
D:typedef v4: int;
答案:C
第12题(2.0分)题号:654难度:中第6章
以下不能正确定义二维数组的选项是()。
A:int a[2][2]={{1},{2}};
B:int a[][2]={1,2,3,4};
#include <stdio.h>
void main()
{
int m,n,r,p,gcd,lcm;
scanf("%d%d",&m,&n);
if(m<n) {p=m,m=n;n=p;}
p=m*n;
r=m%n;
/***********SPACE***********/
while(【?】)
{
/***********SPACE***********/
C:int a[2][2]={{1},2,3};
D:int a[2][]={{1,2},{3,4}};
答案:D
第13题(2.0分)题号:556难度:中第10章
c语言习题册及答案
第3章课后练习及作业习题指导(参考答案)作业01 C语言基础知识一、选择题1.C语言程序的基本单位是()。
A)函数 B)过程 C)子程序 D)子例程2.下列个选项中,合法的C语言关键字是()。
A)integer B)sin C)string D)void3.下列选项中,不是C语言提供的合法关键字的是()。
A)switch B)cher C)default D)case4.以下选项中合法的用户标识符是()。
A)int B)a# C)5mem D)_2435.C语言程序一行写不下时,应该()。
A)用回车换行 B)在任意空格处换行C)用分号换行 D)用逗号换行6.在C程序中,可以作为用户标识符的一组标识符是()。
A)void define WORD B)as_b3 _224 ElseC)switch —wer case D)4b DO SIG7.在C语言中,下列合法的字符常量是()。
A)’\039 B)’\x76’ C)’ab’ D)’\o’8.以下说法正确的是()。
A)C语言程序是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序是从main()函数开始执行的D)C语言程序中的main()函数必须放在程序的开始部分9.()是构成C语言程序的基本单位A)函数 B)变量 C)子程序 D)语句10.一个C语言程序总是从()开始执行的A)主过程B)主函数 C)子程序 D)主程序11.以下叙述不正确的是()A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main()函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面12.C语言规定:在一个源程序中,main()函数的位置()A)必须在最开始 B)必须在系统调用的库函数的后面C)可以任意 D)必须在最后13.以下叙述正确的是()A)在C程序中,main()函数必须位于程序的最前面B)C程序中的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误14.C语言中标识符只能由字母、数字和下划线3种字符组成,且第一个字符()A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任意一种字符二、填空题1.一个C语言编写的程序是从main函数开始执行的。
C语言习题带答案
基本语句练习1、若有以下程序段 D#include”stdio.h”void main( ){ int a=2,b=5;Printf(“a=%%d,b=%%d\n”,a,b);}其输出结果是()A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d2、以下程序段 Cfloat a=3.1415; printf(“|%6.0f|\n”,a);其输出结果是()A、|3.1415|B、|3.0|C、| 3|D、|3.|3、以下程序段的输出结果是() Cfloat a=57.666; printf(“*%010.2f*\n”,a);A、*0000057.66*B、*57.66*C、*0000057.67*D、*57.57*4、下面语句printf(“|%8.5f|\n”,3461.45); 的输出结果是() CA、|61.45000|B、|3461.450|C、|3461.45000|D、|3461.4500|5、若变量都已经正确说明,则以下程序段: Ca=2; b=3; printf(a>b? ”***a=%d”: “###b=%d”,a,b);A、没有正确的输出格式控制B、输出为:***a=2C、输出为:###b=2D、输出为:***a=2###b=36、执行下列程序时输入1234567,程序的运行结果为() B#include”stdio.h”void main( ){int x, y;scanf(“%2d%2ld”,&x,&y);printf(“%d\n”, x+y);}A、17B、46C、15D、97、已知char a; int b; float c; double d; 则表达式a*b+c-d结果为()型。
AA、doubleB、intC、floatD、char8、根据定义和数据的输入方式,输入语句的正确形式是() B已有定义float f1, f2;数据的输入方式:4.523.5A、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);9、以下程序的输出结果为()*3.140000, 3.142*#include”stdio.h”void main( ){printf( “ *%f, %4.3f*\n”, 3.14, 3.1415);} 10、结构化程序流程图中一般包含3种基本结构,在下述结构中不属于其基本结构的是()。
C语言练习题及参考答案
练习题1及参考答案1. 单项选择题(1)以下并非C语言的特点的是????? 。
A.? C语言简洁和紧凑B. 能够编制出功能复杂的程序C.? C语言可以直接对硬件进行操作D.? C语言移植性好【答】B(2)一个C程序的执行是从????? 。
A.? main()函数开始,直到main()函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D.? main()函数开始,直到最后一个函数结束【答】A(3)在C程序中,main()的位置????? 。
A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D. 必须放在它所调用的函数之后【答】C(4)一个C程序是由????? 。
A. 一个主程序和若干子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成【答】B(5)下列说法正确的是????? 。
A. 在执行C程序时不是从main()函数开始的B.? C程序书写格式限制严格,一行内必须写一个语句C.? C程序书写格式比较自由,一个语句可以分行写在多行上D.? C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C2. 填空题(1)一个C源程序至少有?? ①?? 个main()函数和?? ②?? 个其他函数。
【答】①一? ②若干(2)任何C语句必须以????? 结束。
【答】分号(3)C语言源程序的基本单位是????? 。
【答】函数(4)C编译程序的功能是????? 。
【答】将C源程序编译成目标代码练习题2及参考答案1. 单项选择题(1)以下字符串为标识符的是????? 。
A. _MY????????? ??????B. 2_2222?????? ?????? ??????C. short?????? ?????? ??????D. LINE 5【答】A(2)下列符号可以作为变量名的是????? 。
A. +a????? ?????? ??????B. *p?????? ?????? ?????? ??????C. _DAY????? ?????? ??????D. next day【答】C(3)设c是字符变量,则以下表达式正确的是????? 。
C语言习题答案
习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
(完整版)C语言考试题库及答案
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
C语言课后习题答案
第一章习题答案一、选择题1~5:BDCDA 6~10:DABBB 11~12:CC二、填空题1、main()2、函数首部,函数体3、函数4、编辑、编译、连接、运行5、.cpp、.obj、 .exe6、; 或分号三、编程题#include <stdio.h> /* 包含标准库的信息 */void main() /* 定义名为main 的函数,它不接受参数值 */{ /* main函数的语句都被括在花括号中 */printf("hello, world\n");/* main 函数调用库函数printf 以显示字符序列,其中\n代表换行符 */}第二章习题答案一、选择题1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD二、填空题1、整型,实型,字符型,枚举类型2、13、94、123535145、2,16、2,27、10 20 08、a=149、2,3,110、double第三章习题答案一、选择题1~5:CBBBC 6~10:DDDBB二、填空题1、控制语句,表达式语句,复合语句2、;3、{}4、15、a6、c:dec=120,oct=170,hex=78,ASCII=x7、32767,327678、10,A,109、3 310、(1) 123.456001(2) □□□□□□□ 123.456(3) 123.4560(4) 8765.456700(5) □□□□□□ 8765.457(6) 8765.4567(7) 8765.4567三、编程题1、参考答案:#include <stdio.h>void main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c );printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x, y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5. 2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n); printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}2、参考答案:#include <stdio.h>void main(){float a, b, c, t;printf("please input a,b,c:\n"); scanf ("%f, %f, %f", &a, &b, &c);t=(a+b+c)/3;printf ("averageof %6.2f、%6.2f and %6.2f is %6.2f\n",a,b,c,t);}3、参考答案:#include <stdio.h>main(){int R, d;float s;printf("请输入圆的半径");scanf("%d",&R);d=2*R;c=2*3.14159*R;printf("d=%d,c=%f\n",d,c);}4、参考答案:#include <stdio.h>void main(){int h, f, x, y; /* x为鸡的数量,y为兔的数量 */printf("请输入鸡兔的总头数h,总脚数f:");scanf("%d%d", &h, &f);x=(4*h-f)/2;y=(f-2*h)/2;printf("笼中有鸡%d 只,有兔%d只。
c语言习题答案
printf("%lf\n", sum1);
}
int Factorial(int n)
{
int a, sum2;
sum2 = 1;
for (a = 1; a <= n; a++)
{
输出:兔子和鸡的数目(输出语句为:printf("rabbit=%d,chicken=%d",rabbit,chicken);)
Sample
输入:10 20
输出:
rabbit=0,chicken=10
#include <stdio.h>
int main(void)
# include <stdio.h>
# include <math.h>
int Factorial(int n);
main()
{
double x, y, m;
int i;
double sum1;
scanf("%lf%lf", &x, &y);
printf("****\n");
printf("****\n");
return 0;
}
要求:
按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。
输入:
无。
输出:
指定图形。
#include <stdio.h>
int main()
认真观察-1的八进制和十六进制输出,请想想是为什么。
#include<stdio.h>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.#include <stdio.h>
void main()
{ int i,j;
for (j=10; j<11; j++)
{ for (i=9; i<j; i++)
if (j%i==0) break;
if (i>=j-1) printf(“%d\n”,j);
{
int score;
char grade;
printf("Input score:");
scanf("%d",&score);
if(score>100 || score<0)
printf("data error");
else
{
switch (score/10)
{
case 10:
case 9: grade='A';break;
case 8: grade='B';break;
case 7: grade='C';break;
case 6: grade='D';break;
default: grade='E';
}
printf("score=%d, grade=%c\n",score,grade);
答案:####
9.若程序中有int x=-1; 定义语句,则 while(!x) x*=x; 语句的循环体将执行 次。
答案:0
10.执行for (m=1;m++<=5;); 语句后,变量m的值为 。
答案:7。m++<=5;相当于m<=5; m++;当m=6时,不满足m<=5;,退出循环,但m自增为7,
6.以下关于switch语句的叙述中,错误的是【 B 】。
A.switch语句允许嵌套使用
B.语句中必须有default部分,才能构成完整的switch语句
C.只有与break语句结合使用,switch语句才能实现程序的选择控制
D.语句中各case与后面的常量表达式之间必须有空格
7.下面程序段的内循环体一共需要执行【 C 】次。
e=n%10;
if(a!=0) h=5;
else if (b!=0) h=4;
else if (c!=0) h=3;
else if (d!=0) h=2;
else if (e!=0) h=1;
else h=0;
printf("%ld id a %d-digit number\n",n,h);
习题3
一、单选题
1.下面语句中,错误的是【 B 】。
A.m=c>a<b;
B.int x=y=9;
C.k=x,y>0;
D.w++==--m?0:1;
2.以下程序段的输出结果是【 A 】。
int u=020, v=0x20, w=20;
printf(“%d,%d,%d\n”,u,v,w);
D.a=98,b=765.0,c=4321.0
4.已知 int a=8, b=10, c=16; 执行下面的程序段后a、b、c的值是【 D 】。
if (a>b) c=a; a=b; b=c;
A.8,10,6
B.10,10,16
C.10,16,8
D.10,16,16
5.执行以下程序,输出结果为【 D 】。
#include <stdio.h>
main()
{
int a,b,c,d,e,h;
int n;
printf("Input n:");
scanf("%ld",&n);
a=n/10000;
b=n%10000/1000;
c=n%1000/100;
d=n%100/10;
default: a+=3;
}
printf(“%d\n”,a);
}
答案:19
四、编程题
1.输入一个小于6位的整数,判断它是几位数,并按照相反的顺序(即逆序)输出各位上的数字,例如输入的整数为1357,则输出为7531。
答案:小于6位的整数,则最多是5位数
代码如下:
printf("converse order: %d%d%d%d\n",e,d,c,b);
break;
case 3:printf("order: %d%d%d\n",c,d,e);
printf("converse order: %d%d%d\n",e,d,c);
break;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
}
A.a=98,b=765,c=4321
B.a=98,b=765.000000,c=4321.000000
C.a=98,b=765.0,c=4321.56
答案:a=45, b=56, c=9.340000
2.#include <stdio.h>
void main()
{ int k=2;
if (k++%2==0)
if (k++%3==0)
if (k++%5==0)
printf(“%d\n”,k);
else printf(“%d\n”,++k);
#include <stdio.h>
void main()
{ int a=10,b=0;
if (a==10)
a=a+1;b=b+1;
else
a=a+4;b=b+4;
printf(“%d,%d\n”,a,b);
}
A.11,1
B.14,1
C.14,4
D.有语法错误
A.for(表达式1;0;表达式3){…}
B.for(表达式1;1;表达式3){…}
C.for(表达式1;表达式1;表达式3){…}
D.for(表达式以下正确的描述是【 C 】。
A.continue语句的作用是结束整个循环的执行
B.在for循环中,不能使用break语句跳出循环
}
}
3.输入一行字符,分别统计其中的英文字母、数字、空格和其它字符的个数。
三、读程序写结果
1.#include <stdio.h>
void main()
{
int a,b;
float c;
scanf(“%2d%*3d%4f%2d”,&a,&c,&b);
printf(“a=%d, b=%d, c=%f\n”,a,b,c);
上面程序在运行时输入456789.34567,写出输出结果。
default:printf("no input.\n");
}
}
2.输入某学生的考试成绩,如果在90分以上,输出“A”;80~89分输出“B”;70~79分输出“C”;60~69分输出“D”;60分以下输出“E”。
答案:
代码如下:
#include <stdio.h>
main()
7.已知a、b、c的值分别是1、2、3,则执行下列语句后a和c的值分别是 。
if (a++<b) {b=a;a=c;c=b;} else a=b=c=0;
答案:3,2
8.若有定义char ch; 则执行while ((ch=getchar())!=’E’) printf(“#”); 语句,在输入字符ABCDEF↙(↙表示按回车键)时,输出为 。
case 2:printf("order: %d%d\n",d,e);
printf("converse order: %d%d\n",e,d);
break;
case 1:printf("order: %d\n",e);
printf("converse order: %d\n",e);
}
}
答案:10
6.#include <stdio.h>
void main()
{ int a=0,i;
for (i=1; i<5; i++)
switch (i)
{ case 0:
case 3: a+=1;
case 1:
case 2: a+=2;
答案:x>20 && x<30 || x<-100
5.已知m=1,n=5,则执行if(!m+5>=n) n=1; 后,变量n的值是 。
答案:1
6.在C语言的switch语句中,每个“case”和冒号“:”之间只能是 。
答案:空格符
switch(h)
{
case 5: printf("order: %d%d%d%d%d\n",a,b,c,d,e);