C++练习(1)
(完整word)C语言练习题—基本数据类型和运算
第2章基本数据类型和运算练习题一、单项选择题1.下列数据中属于“字符串常量"的是( ).A."a”B。
{ABC} C. ’abc\0’ D. 'a’2.下列数据中属于“字符串常量”的是( )。
A.ABC B. “ABC” C. ’abc’ D. ’a'3. 在PC机中,’\n’在内存占用的字节数是( ).A。
1 B. 2 C. 3 D. 44. 在PC机中,"a\xff” 在内存占用的字节数是()。
A. 5B. 6 C。
3 D. 45.字符串”ABC"在内存占用的字节数是( ).A. 3 B。
4 C. 6 D。
86.字符串”\”ABCD\”"在内存占用的字节数是()。
A. 4B. 6 C。
7 D. 87。
在C语言中,合法的长整型常数是( )。
A. 0LB.C. 0.D. 2。
1869e108.在C语言中,合法的短整型常数是()。
A。
OL B. 0821 C. 40000 D。
0x2a9。
下列数据中不属于“字符常量”的是( )。
A. ‘\a’B. ‘\160’C。
‘070’D。
07010.char型常量在内存中存放的是()。
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=a>b)&&(n=a〉b)”后,m,n的值是()。
A. 0,0B。
0,1 C. 1,0 D. 1,113.设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。
C语言练习题-选择题(带答案)
C语言练习题-选择题(带答案)1.下列字符序列中,可用作C标识符的一组字符序列是(D)。
A:S.b,um,average,_aboveB:cla,day,lotu_1,2dayC:#md,&12某,month,tudent_n!D:D56,r_1_2,name,_t_12.C语言程序从main()函数开始执行,所以这个函数要写在(C).A:程序文件的开始B:程序文件的最后C:程序文件的任何位置(除别的函数体内)D:它所调用的函数的前面3.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为(B).A:连接、编译B:编译、连接C:连接、运行D:运行4.要调用文件处理函数时,在#include命令行中应包含(C).A:\5.以下数据中,不正确的数值或字符常量是(C)。
A:0B:5LC:o13D:98616.在C语言中,错误的语句是(C).A:a=b=c;B:;C:breakD:b=3某5,a某=4;7.以下标识符中,不能作为合法的C用户定义标识符的是(B)。
A:a3_b3B:voidC:_123D:IF8.一个C语言程序是由(C)组成.A:一个主程序和若干子程序B:函数C:若干过程D:若干子程序9.C语言源程序的基本单位是(B)。
A:过程B:函数C:子程序D:标识符10.已知宏定义#defineN3#defineY(n)((N+1)某n)执行语句z=2某(N+Y(5+1));变量z的值为(B).A:42B:48C:54D:出错第11题C语言文件系统中,整数1008若以ASCII形式存储,则占几个字节(B).A:2B:4C:1D:5第12题正确的自定义标识符是(C).A:ifB:a某bC:IfD:8pq第13题有说明语句chara='\\101';,则变量a(D).A:包含4个字符B:包含2个字符C:包含3个字符D:包含1个字符第14题下面正确的字符常量是(C).A:\第15题在main函数体内部和外部均允许出现的实体是(A).A:预处理命令B:语句C:另一函数的定义D:函数形式参数声明第16题若变量已正确说明为float类型,要通过语句canf(\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(B).A:102233B:10.0,22.0,33.0C:10.022.033.0第17题(B)是C语言提供的合法数据类型关键字.A:FloatB:ignedC:integerD:Char第18题下列选项中,合法的C语言关键字是(D).A:VARB:cherC:integerD:default第19题使用语句canf(\输入变量某,y的值([]代表空格),正确的输入是(C).A:1.25,2.4B:1.25[]2.4C:某=1.25,y=2.4D:某=1.25[]y=2.4第20题宏定义\\的宏替换\应为(A).A:a=某+5某y-3.1;B:a=(某+5)某(y-3.1);C:a=某+5某y-3.1D:a=(某+5)某(y-3.1)答案:A第21题(1.0分)题号:919下述程序段的输出结果是(A).int某=10;inty=某++;printf(\A:11,10B:11,11C:10,10D:10,11答案:A第22题(1.0分)题号:925以下不正确的C语言标识符是(A).A:2yB:a_1_2C:able某eD:_某答案:A第23题(1.0分)题号:914以下所列的C语言常量中,错误的是(B).A:0某ffB:1.2e0.5C:2LD:'\\72'答案:B第24题(1.0分)题号:918下列程序的输出是(B).#includemain(){printf(\A:0B:变量无定义C:-1D:1答案:B第25题(1.0分)题号:930在C程序中,1如果用来表示逻辑值时,应代表(A).A:真B:假C:整数1D:长整型数1答案:A第26题(1.0分)题号:927以下答案中不是C语言最基本数据类型的是(A).A:逻辑型B:整型C:字符型D:实型答案:A第27题(1.0分)题号:922常数的书写格式决定了常数的类型和值,0某1011是(C).A:8进制整型常量B:字符常量C:16进制整型常数D:2进制整型常数答案:C第28题(1.0分)题号:928若某,y均定义为int型,z为double型,以下不合法的canf函数调用语句是(D).A:canf(\\B:canf(\\C:canf(\\D:canf(\\答案:D第29题(1.0分)题号:931以下所列字符常量中,不合法的是(A).A:'\\0某a2'B:'\\65'C:'$'D:'\\某2a'答案:A第30题(1.0分)题号:912若变量都已正确说明,则以下程序段(C).a=2;b=3;printf(a>b\A:没有正确的输出格式控制B:输出为:某某某a=2C:输出为:###b=2D:输出为:某某某a=2###b=3答案:C第31题(1.0分)题号:929以下四个字符序列中,能用作用户自定义的标识符是(A).A:PutcharB:-doubleC:A123-D:int答案:A第32题(1.0分)题号:923下列格式符中,可以用于以8进制形式输出整数的是(C).A:%dB:C:%oD:答案:C第33题(1.0分)题号:936以下叙述中正确的是(D).A:输入项可以是一个实型常量,如:canf(\B:只有格式控制,没有输入项,也能正确输入数据到内存,例如:canf(\ C:当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:canf(\D:当输入数据时,必须指明变量地址,例如:canf(\答案:D第34题(1.0分)题号:926C语言中字符型(char)数据在内存中的存储形式是(D).A:原码B:补码C:反码D:ASCII码答案:D。
C语言期末练习题-1
C语言期末练习题-1一、阅读程序,选择输出结果1.下面程序的运行结果是_______。
b#includeint main( ){ char m ;m = 'B' + 32 ;printf( "%c\n" , m ) ;return 0 ;}2.下面程序的运行结果是_______。
0#includeint main( ){ int x = 3 , y = 5 ;printf( "%d\n" , x / y ) ;return 0 ; }3.下面程序的运行结果是_______。
x=1 y=2 *sum*=310 squared is :100 #includeint main( ){ int x = 1 , y = 2 ;printf( "x=%d y=%d *sum*=%d\n" , x , y , x + y ) ; printf( "10 squared is : %d\n" , 10 * 10 ) ;return 0 ; }4.下面程序的运行结果是_______。
x+y+z=48运行时从键盘输入:25 13 10↙。
#includeint main( ){ int x , y , z ;scanf( "%d%d%d" , &x , &y , &z ) ;printf( "x+y+z=%d\n" , x + y + z ) ;return 0 ; }5.下面程序的运行结果是_______。
55,,A 运行时从键盘输入:55 A B↙。
#includeint main( ){ int k = 0 ; char c1 = 'a' , c2 = 'b' ; scanf("%d%c%c" , &k , &c1 , &c2 ) ; printf( "%d,%c,%c\n" , k , c1 , c2 ) ; return 0 ;}6.下面程序的运行结果是_______。
C语言程序设计实验与习题(1-4)
ffB v vbvv bgbb实验一C程序运行环境及简单程序的运行2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp#include <stdio.h>void main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输入三个整数a、b、c,显示出其中的最大值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语言程序的跟踪调试。
特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。
12习题一一、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B二、综合题绘制NS 算法流程图。
(1)输入10个数,求其中的最大值。
(2)输入3个数,将它们升序排列输出。
(3)输入2个数,求它们的最大公约数。
(4)输入一元二次方程的系数a 、b 、c ,判断其根。
实验二顺序结构程序设计1.阅读程序,尝试写出程序的运行结果,然后输入并调试程序,对照其实际输出与分析的结果是否一致,若不一致,请找出原因。
⑴以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。
c语言选择题(1)
1.以下运算符中优先级最低的是(C)。
A、&&B、|C、||D、&2.不合法的if语句是:(D)A、if(表达式) 语句1 else 语句2B、if(表达式) 语句C、if(表达式1)语句1 else if(表达式2)语句2 else 语句3。
D、if 关系表达式语句1 else 语句23.以下不是无限循环的语句为(D)。
A、while(1){x++;}B、for(;;x++=i);C、for(i=10;;i--) sum+=i;D、for(y=0,x=1;x>++y;x=i++) i=x;4.调用函数时,基本类型变量做函数参数, 实参和对应的形参(B).A、不占用存储单元B、各自占用独立的存储单元C、同名时才能共用存储单元D、共占用一个存储单元5.已知有宏定义#define F(a) a*(a+2),则F(4+3)的值为(D).A、24B、15C、63D、31a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是(D)A、for(i=1;i<11;i++)a[i]=i;B、for(i=1;i<11;i++)a[0]=1;C、for(i=1;i<11;i++)a[i+1]=i;D、for(i=1;i<11;i++)a[i-1]=i;7.若有说明:int a[3][4];则数组a中各元素(A)。
A 、不能得到确定的初值 B、可在程序的编译阶段得到初值0C、可在程序的运行阶段得到初值0D、可在程序的编译或运行阶段得到初值08. 已定义float a; int i;选择正确的输入语句(C).A、scanf("%6.2f%3d", &a,&i);B、scanf("%f%s", &a,&i);C、scanf("%6f%3d",&a,&i);D、scanf("%f%d", a,i);9 执行下面程序段后,k的值是:(B)int k=2;switch(k+1){ case 3:k+=1;case 4:k--;break;case 5:k*=3;case 6:++k;} A、10 B、2 C、28 b D、2711.以下程序段中,能够正确地执行循环的是(B)。
C语言基础练习100题(含答案)
C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio。
h>void main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=11 B) k=11,k=13,k=13C)k=11,k=013,k=0xb D)k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________。
A) ++t;B) n1=(n2=(n3=0));C)k=i=j;D)a=b+c=1;3、下面合法的C语言字符常量是__________。
A)’\t' B)"A" C) 65 D)A4、字符(char)型数据在微机内存中的存储形式是____。
A)反码B)补码C)EBCDIC码D)ASCII 码5、设int a=12,则执行完语句a+=a—=a*a后,a的值是________A)552 B) 264 C)144 D)-2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio。
h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B)20 C) 15 D) 107、下面程序的输出是__________。
#include〈stdio。
h〉void main(){int x=023;printf("%d\n",—-x);}A)17 B) 18 C)23 D)24 8、下面程序的输出是___________。
#include<stdio.h>void main(){char ch1,ch2;ch1='A’+'5'—'3’;ch2=’A'+'6'-’3';printf("%d,%c\n”,ch1,ch2);}A) 67,D B) B,C C)C,D D)不确定的值9、以下程序的输出结果是________。
《C程序设计》作业参考答案(1-4章)
第1章C语言概述习题(P13):1.3 写出一个C程序的构成。
答:C程序由一个main函数和0个或多个自定义函数构成,每个函数的构成如下:函数类型函数名(函数参数列表){说明部分执行部分}1.4 C语言以函数为程序的基本单位,有什么好处?答:一个函数实现一个相对独立的功能,便于实现程序的模块化。
1.5 请参照本章例题,编写一个C程序,输出以下信息:*************************************************Very good!*************************************************答:参照例1.1编程如下# include <stdio.h>void main(){printf("********************************************\n");printf(" Very good!\n");printf("********************************************\n");}1.6 编写一个C程序,输入a、b、c 3个值,输出其中最大者。
答:参照例1.3编程如下法一:修改例1.3的主函数,自定义max函数不变。
# include <stdio.h>void main(){int max(int x,int y); /*函数声明*/int a,b,c,m; /*定义4个变量,m用于存放最大值*/scanf("%d%d%d",&a,&b,&c);/*从键盘上输入3个整数*/m=max(a,b); /*第一次调用max函数求出前两个数的最大值放在m中*/m=max(m,c); /*再调max函数求出m和第三个数的最大数*/printf("max is %d\n",m); /*输出结果*/}int max(int x,int y) /*定义求两个数的最大数的函数max */{int z;if(x>y) z=x;else z=y;return(z);}法二:修改例1.3的主函数和max函数,将max函数改为求3个数的最大数。
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语言语法基础练习题(含答案)
C语言语法基础练习题一、选择题1.C语言基本类型包括( )A) 整型、实型、逻辑型B) 整型、实型、字符型、逻辑型C) 整型、字符型、逻辑型D) 整型、实型、字符型2.2.语言的字符型数据在内存中的存储形式是( )A)原码B)补码C) 反码D) ASCII码3.语言的整型数据在内存中的存储形式是( )A)原码B)补码C) 反码D) ASCII码4.sizeof(float)是。
A) 一个双精度型表达式B) 一个整型表达式C) 一种函数表达式D) 一个不合法的表达式5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为。
A) D B) 68 C) 不确定的值D) C6.以下叙述正确的是。
A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示7.以下叙述不正确的是。
A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值8.下面正确的字符常量是。
A) “c”B) ‘\\’’C) ‘’D) ‘K’9.下列四组选项中,均是合法转义字符的选项是。
A) ‘\”’‘\\’‘\n’B) ‘\’‘\017’‘\”’C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘xlf’10.下列四组选项中,均是不合法的用户标识符的选项是。
A) W P_0 doB) b-a goto intC) float la0 _AD) -123 abc TEMP11.下列四组选项中,均不是C语言关键字的选项是。
重庆理工大学c语言上机考试复习题 (1)
1、根据公式e=1+1/(1!)+1/(2!)+1/(3!)+……。
求e 的近似值,精度要求为10-6。
2、读入10个数,计算它们的和、积、平方和及和的平方。
3、计算并输出1!,2!,3!,4!,……,35!。
4、输入20个数,统计其中正、负和零的个数。
5、利用公式:)12)(12()2(......756653443*12222+-⨯⨯⨯⨯⨯⨯⨯⨯⨯=n n n π计算π的值(取前100项)。
6、利用公式:)12(1)1(......9171513114+⨯-++-+-=n n π计算π的值(省略的项都<10-5)。
7、编程计算0*1+2*3+4*5+……+100*101+101*102之和。
8、编程计算5/6+6/7+7/8+……+99/100+5!+6!+7!之和。
9、编程计算1!-2!+3!-4!+5!-6!之和。
10、编程计算1/(1+2)+2/(2+3)+3/(3+4)+……100/(100+101)之和。
11、编程计算(0+1)/1+(2+3)/3+(3+4)/4+……(99+100)/100之和。
12、求100 ~ 200中能被3或7整除的自然数。
13、统计77到210中偶数的个数。
14、统计7到91中能被3整除的奇数的个数。
15、7到91中有多少能既能被2又能被3整除的数。
16、显示7到100中所有不能被5整除的数,要求每行显示5个数。
17、找出1000之内的所有完数(完数是指:该数的各因子之和正好等于该数本身,例如:6的因子是1,2,3,而6 = 1+2+3,故6是完数)。
18、求2~1000中的所有亲密数对(亲密数对是指:如果a 的因子和等于b ,b 的因子和等于a ,则(a ,b )就是亲密数对)。
19、100元钱买100只鸡,已知公鸡3元1只,母鸡1元1只,小鸡1元3只,编程输出总的方案数以及每种方案中公鸡、母鸡、小鸡的数量。
20、100匹马驮100担货,大马驮3担,中马驮2担,小马驮0.5担,编程求大、中、小马的数量。
C语言第一章习题带答案
练习1-1答案选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$itC.Pxq my->book line# D.str_1 Cpp into2.下面的说法正确的是( C )。
A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。
A.100011 B.01001 C.100110 D.1001014.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16 C.(2A)16 D.576.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)168.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16 C.(D8)16 D.(27)169.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8 C.(60)10 D.都不正确练习2-1答案选择题1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的int类型的常数是( A )。
A.32768 B.0 C.037 D.0Xaf3.下列常数中不能作为C的常量的是( D )。
A.0x45 B.-2 C.3e2 D.05824.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B )。
A.0至255 B.0~65535 C.-32768~32767 D.-256~2555.下面4个选项中,均是合法转义字符的选项是( A )。
C语言经典100题(来自鱼C论坛)
目录(按住ctrl可链接到每一个问题)2【程序1】1~4组成无重复数字的三位数。
(3)2【程序2】企业利润计算(switch) (3)1【程序3】加100是完全平方数 (4)1【程序4】年月日判断是年份的第几天。
(4)1【程序5】三个数,从小到大输出。
(5)1【程序6】用*号输出字母C的图案。
(6)1【程序7】输出特殊图案,请在c环境中运行,看一看,Very Beautiful! (6)1【程序8】题目:输出9*9口诀。
(6)1【程序9】题目:要求输出国际象棋棋盘。
(7)1【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。
(7)1【程序11】(古典问题)兔子问题。
(8)1【程序12】判断1010到200之间的素数。
(8)1【程序13】打印出所有的“水仙花数”。
(9)1【程序14】将一个正整数分解质因数。
(10)1【程序15】利用条件运算符的嵌套完成学习成绩的转换。
(10)1【程序16】求最大公约数和最小公倍数。
(11)1【程序17】输入一行字符,分别统计出其中英文字母、、、、的个数。
(11)1【程序18】求s=a+aa+aaa+aaaa+aa...a的值 (12)1【程序19】完数。
(12)【程序20】小球自由下落。
(13)【程序22】两个乒乓球队进行比赛 (14)【程序23】打印出如下图案(菱形) (15)【程序24】求数列的前20项和,2/1,3/2,5/3,8/5,、、 (16)【程序25】题目:求1+2!+3!+...+20!的和 . (16)【程序26】题目:利用递归方法求5!。
(16)【程序27】利用递归函数调用方式,反向打印字符。
(17)【程序28】五个人问岁数。
(18)【程序29】不多于5位数,求是几位数。
(18)【程序30】一个5位数,判断它是不是回文数。
(19)【程序31】输入星期几的第一个字母来判断一下是星期几。
(19)【程序32】Press any key to change color。
《C语言程序设计》复习题库(1)
复习题库
当n=5时
93.有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它
插入到数组中。
94.将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1。
要求
改为1,4,5,6,8
95.编程先输入某班10个学生某门课的成绩(成绩均为float型数据),
对全班10个学生成绩进行由高到低排序,并打印输出排序结果。
96.从键盘任意输入某班10个学生的成绩,输出最高分并统计出不及格
人数。
97.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的
信息
98.编写函数实现两个整型变量值的交换。
99.用递归调用的方法求n!,要求n由用户输入。
100.从键盘任意输入10个整数并放入一个数组,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。
101.写一个函数,使给定的一个3X3的二维整形数组转置,即行列互换102.写一个函数,将两个字符串连接
103.写一个函数,使输入的一个字符串按反序存放。
104.输入两个实数,用一个函数求出它们之和。
105.有一个一维数组score,内放10个学生成绩,写一个函数求平均成绩。
106.输出所得水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5。
C程序设计课后习题1-3(答案)
C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。
A.main函数的入口 B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。
A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。
A. B.C.Tom B.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check_quality C.sal_ary_tot_al(5)C程序是由(D)组成。
A.若干个过程B.若干子程序C.一个主程序和若干子程序D.若干函数2.填空题(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。
(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。
(3)一个C语言程序至少应包含一个__主函数或main()__。
(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。
(5)函数体用___{______符号开始,用_____}______符号结束。
(6)注释的开始和结束标志分别为__/*____和____*/____。
为增强程序的__可读性___,应该为程序写上清晰的注释。
3.编程题:参考本章例题,编写一个C程序,输出以下信息。
***********************The data is ** 2005-03-23 ***********************程序如下:#include <stdio.h>Void main(){printf(“**********************\n”);printf(“*The data is *\n”);printf(“* 2005-03-23 *\n”);printf(“**********************\n”);}第二章习题1.选择题(1)设int m=10 ,则下列表达式的值不等于零的有(A F)。
c课后习题解答
第6章;类和对象(一)练习题66.1判断题×1.使用class定义的类,其默认的访问权限是公有的,使用struct定义的类,其默认的访问权限是私有的。
×2.类中的成员函数都是公有的,数据成员都是私有的。
×3.定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数。
√4.类定义后,它的成员个数及名称就不会再被改变了。
×5.定义或说明对象时,系统会自动调用构造函数为创建的对象初始化。
如果类中没有定义任何构造函数时,就无法给定义的对象初始化。
√6.定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成员函数是同类对象共享的。
√7.对象成员的表示方法与结构变量成员的表示方法相同。
√8.创建对象时系统自动调用相应的构造函数为对象初始化,没有相应的构造函数时,系统会自动生成。
√9.构造函数是一个其名与类名相同的特殊的成员函数。
×10.析构函数是一个函数体为空的成员函数。
√11.构造函数和析构函数都是系统自动调用的成员函数。
×12.构造函数和析构函数都可以重载。
√13.成员函数与一般函数一样可以重载、内联和设置参数的默认值。
×14.静态成员是指静态对象的成员。
×15.静态数据成员必须在构造函数的成员初始化列表中进行初始化。
√16.静态成员都可以使用类名加作用域运算符的方法来引用。
×17.静态成员函数中引用静态数据成员和非静态数据成员的方式是相同的。
√18.常成员指的是类体内使用const关键字说明的常数据成员和常成员函数。
×19.常数据成员在常成员函数中的值是不允许改变的,而在非常成员函数中是允许改变的。
√20.常对象需要引用常成员函数,而不能引用非常成员函数。
×21.常对象的数据成员都是常数据成员。
√22.友元函数是说明在类体内的非成员函数,它可以访问类中的所有成员。
×23.可以把一个一般函数说明为某类的友元函数,也可以将某类的成员函数说明为另类的友元函数。
C语言程序设计习题与参考答案
习题与参考答案第1章 C语言程序设计基础思考与练习一、填空题1、C程序是由构成的,一个C程序中至少包含。
2、C程序的注释是由和所界定的文字信息组成的。
3、开发一个C程序要经过编辑、、和运行4个环节。
4、C语言中,头文件的扩展名是。
5、C语言源程序的扩展名;经过编译后,生成文件的后缀是;经过连接后,生成文件的扩展名是。
二、简答题1、简述C语言程序的运行步骤。
2、软件编程中的可读性原则一般包括那些内容?3、什么是算法?算法的特点有哪些?4、参照本章例题,编写一个C程序,输出以下内容。
**************************************************Hello,world!**************************************************5、写出算法。
已知圆的半径,求周长和面积。
第1章思考与练习参考答案一、填空题1、函数、一个主函数main()2、/*、*/3、编译、连接4、.h5、.c、.obj、.exe二、简答题1、简述C语言程序的运行步骤。
答:(1)编辑C程序源文件;(2)编译,将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”;(3)连接,将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”连接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”;(4)运行程序。
如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→连接→运行的过程,直到取得预期结果为止。
2、软件编程中的可读性原则一般包括那些内容?答:1.编程规范概要(1)程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。
(2)打算干什么,要简单,直截了当,代码精简,避免垃圾程序。
(3)尽量使用标准库函数和公共函数。
(4)不要随意定义全局变量,尽量使用局部变量。
(完整版)C语言各章练习题
目录第一章程序设计和C语言 (2)第二章最简单的C程序设计 (2)第三章选择结构程序设计 (4)第四章循环结构程序设计 (7)第五章数组 (11)第六章函数 (14)第七章指针 (18)第一章程序设计和C语言一、选择题:1.一个C程序的执行是从( )A、本程序的main函数开始,到main函数结束B、本文件第一个函数开始,到本文件的最后一个函数结束C、本程序的main函数开始,到本文件的最后一个函数结束D、本文件的第一个函数开始,到本文件的main结束2.以下说法不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面3.C语言规定:在一个源程序中,main函数的位置()A、必须在开始B、必须在系统调用的库函数的位置C、可以任意D、必须在最后4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是( )A、program.bak和program.objB、program.obj和program.exeC、program.exl和program.cD、program.bak和prgram.exe第二章最简单的C程序设计一、选择题1.是合法的用户自定义标识符的( )A、ah-spksB、doubleC、<ctrl>D、_myapple2.以下正确的C语言标识符是()A、%xB、a+bC、a123D、test!3.以下不能定义为用户标识符的是( )A、V oidB、b_2C、intD、name4.以下选项中可作为C语言合法整数的是( )A、11010(B)B、0583C、x2b2D、0xafb5.VC++6.0中的短整型数值在计算机中占用的字节个数是( )A、1B、2C、3D、46.设short int型的数据长度为2个字节,则unsigned short 类型数据的取值范围是()P34A、均为2个字节B、0至65535C、-3276至32767D、-256至255 7.以下选项中可作为C语言合法常量的是()(指数E或e前必须有数字,后面必须有整数)A、-80.0B、-080C、-8e1.2D、-80.0e8.在VC++6.0编译环境下,下列式中,值不为4的表达式是()P34,double为8字节A、sizeof(unsigned long)B、sizeof(long)C、sizeof(unsigned int)D、sizeof(double)9.设有说明语句:char a=’\123’;则变量a( )一个ascii字符A、包含1个字符B、包含2个字符C、3个字符D、说明不合法10.设x为一数字字符,则其所对应的十进制数值为()。
C语言考试复习专用三套题附答案(1)
《C语言程序设计》习题集习题一一、语言基础(共20分,每题2分)(二)说明语句char s=‘\t’,使s包含了几个字符?。
A)1 B)2 C)3 D)说明有错(三)设a=6,b=4,则表达式b*=a+3A)3 B)18 C)(四)若给定表达式(m)?a++:a--和等价。
A)m==0 B)m!=0 C)m=0 D)m=1(五)设有说明语句int a[10],则数组a包括了个数组元素。
A)1 B)9 C)10 D)20(六)以下函数test返回值类型为。
test(int x){ printf(“%f\n”,(float)x);}A)int B)float C)void D)不确定或错误二、阅读下列程序,写出运行结果(共18分,每题3分)[程序1]#include <stdio.h>void main( ){ int a=1,b=4,c=2; 运行结果: 1a=(a+b)/c;printf(“%d \n”,--a);}[程序2]void main ( ){ char c1=67; /*‘A’的ASCII码值为65 */if (‘A’ <=c1 && c1<=’Z’) 运行结果: 67,Dprintf(“%d,%c”,c1,c1+1);else printf(“%c”,c1); }[程序3]viod main ( ){ int a=0, n=5; 运行结果: 1,5,4,3,2,0for ( ; ; ){ a++; n--;printf(“%d,”,a);a=n;if (n==0) break;}printf(“%d”,a);}[程序4]main ( ){ int i, j; 运行结果: 1,2,4,8,16,32,64,128,256,512 static int a[10]={1,1,1,1,1,1,1,1,1,1};for (i=0;i<10;i++)for (j=0;j<i;j++)a[i]=a[i]+a[j];for (i=0;i<10;i++)printf(“%d,”,a[i]);}[程序5]int k=2;f (int m) 运行结果: 6,8{ m+=k;k+=m; 5,9printf(“%d,%d \n”,m,k++);}main ( ){ int i=4;for (i++);printf(“%d,%d \n”,i,k); }[程序6]void main ( ){ static int a[10],i; 运行结果: 1 3 5 7 9for (i=0;i<10;i++)a[i]=i+1;for (i=0;i<10;i=i+2)printf(“%d”,*(a+i));}三、阅读分析下列程序,在处填上适当的内容使程序(或函数)完整(共21分,每空3分)(一)以下程序输出所有大写字母和其对应的ASCII码值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22.下列关于while和do … while循环语句的叙述中正确的是( )A.do …while 的循环体至少执行一次B. while的循环体至少执行一次C.do… while的循环体不能是复合语句D.do…while允许从循环体外跳转到循环体内23.设有函数原型说明,void test(int a, int b=7, char *c=”#”)下面的函数调用中存在语法错误的是( )A.test(3)B. test(3,8.2)C. test(6,”*”)D. test(0,0,”*”)24.执行以下程序时,输入一行字符串为:Thank you very much!程序的输出结果为( )#includevoid main(void){char line[100];cin>>line;cout<<LINE<<’\N’;}A.TB.ThankC. Thank you very much!D.Thank you25.下列关于运算符重载的叙述中正确的是( )A. 运算符重载可以改变操作数的个数B.运算符重载可以改变运算符的优先级C.运算符重载可以改变运算符的结合性D.运算符的重载不能改变操作数的个数,也不能改变运算符的优先级和结合性26.定义以下的类:class X{int a;public: X(int x=0){ a=x;}} ;class Y : public X{int b;public:Y(int x=0,int y=0):X(y){b=x;}};在下列选项的说明语句中,存在语法错误的是( )A. X *pa=new Y(1,2)B. X a1= Y(1,3);C. X b2(2,3); Y &a2=b2;D. Y b3(10); X a3(b3);27.设有以下语句:int a=5; int arr[a];const int b=5; int x[b];int c=5; int *p=new int[c];const int d=5; int *p1= new int[d];其中存在语法错误的是( )(A).第一行 (B)第二行(C)第三行 (D) 第四行28.设有说明语句:float a[3][3]={1,2,3,4,5}, *b[3]={0}, (*c)[3]=a, **d=0;以下选项中语法正确的语句是( )A. a[0]=b[0];B.b[0]=c[0];C.c[0]=d[0];D.d[0]=a[0][0];29.下列关于虚函数的描述中正确的是( )(A).虚函数可以是一个static类型的成员函数(B).虚函数可以是一个非成员函数(C).虚函数实现静态多态性(D).基类中采用virtual说明一个虚函数后,派生类中定义相同原型的虚函数时,可不必加virtual说明30.设变量a、b是整型变量,下列switch语句中正确的是( )A.switch(a)B.switch(a+b){ {case a: a++; break case 1: b=a++;break;case b: b++;break case 1: a=++b;} }C. switch(a*a)D. switch(a/10+b){ {case 10,12 :++a; case 3: b=a/10;break;case 14,16: ++b; default: a+=b;} }二:填空题:1.对于switch(e),表达式e只能是整型、()或枚举型表达式2.面向对象程序设计的四大特性是封装性,继承性和( )、( )3.执行以下语句后,a的值为 ( )int a=0, m=3, n=10;a=(m++,m+n);4.在c++中,标识符是以字母或( )开头的,由字母、数字和( )组成的字符序列5.在C++中,类的每一个非静态成员函数都有一个( )指针,该指针指向正在调用成员函数的对象6.[程序](2分)# includeint fun(int x,int y){x=x+y; y=x+y;cout<<”x=”<<X<<<Y<<ENDL;return x+y;}void main(void){int x=5, y=8, z=fun(x,y);cout<<”x=”<<X<<<Y<<ENDL;cout<<”z=”<<Z<<ENDL;}程序输出的第二行是( ),第三行是( )7.[程序] (3分)# include <iostream.h>int f(int m, int &n){static int a=1; int c=2;m+=++a; n+=++c;return m+n;}void main(void){int a=1, b=2;cout<<F(A,B)<<<a<<’\t’<<b<<’\n’;cout<<F(F(A,B),B)<<’\N’;}程序输出的第一行是(),第二行是(),第三行是()8.[程序]# include <iostream.h>void findmax(int *a, int n, int i, int *pk){if(i<N){if(a[i]>a[*pk]) *pk=i;findmax(a,n,i+1,pk);}}void main(void){int a[10]={34,32,23,12,67,54,44,60,33,24}, index =0;findmax(a,10,0,&index);cout<<A[INDEX]<<’\N’;cout<<”Its’ index is:”<<INDEX<<’\N’;}程序输出的第一行是( ),第二行是( )9.[程序]#include <iostream.h>int a=100;int fun(int *a, int &b,int c){static int e;*a+=e++; b++;c+=::a++; e=*a+b+c;return e;}void main(void){int a=10, b=1; c=1;cout<<FUN(&A,B,C)<<<fun(&a,b,c)<<’\n’;cout<<::a+a+b+c<<’\n’;}程序输出的第一行是( ),第二行是( ) 第三行是( ) 10.[程序]#include <iostream.h>#include <string.h>class Base{char str[20];public:Base(char *s=”Base default”){strcpy(str,s);cout<<STR<<ENDL;}};class Inh1:public virtual Base{char str1[20];public:Inh1(char *s1, char *s2): Base(s1){strcpy(str1,s2);cout<<STR1<<ENDL;}};class Inh2: public virtual Base{char str2[20];public:Inh2(char *s1, char *s2): Base(s1){strcpy(str2,s2);cout<<S2<<ENDL;}};class Inh3: public Inh1, public Inh2{char str3[20];public:Inh3(char *s1, char *s2, char *s3, char *s4): Inh1(s1,s2),Inh2(s1,s3) {strcpy(str3,s4);cout<<STR3<<ENDL;}};void main(void){Inh3 a(“class Base”,”class Inh1”,”class Inh2”,”class Inh3”);}程序输出的第二行是( ),第三行是( ),第四行是( ) 11.下面程序的功能是:将二维数组a中的每个元素向右移一列,最后一列移到最左边,并按矩阵形式输出数组a.例如:数组移动前为:1 2 34 5 67 8 9移动后为:3 1 26 4 59 7 8[程序]#include#define ROW 3#define COL 3void fun( ){int i,j, t;for(i=0; i{t=*(*(p+i)+ROW-1);for(j=COL-1;j>0;j--)*(*(p+i)+j)=( )( )=t;}}void main(void){int a[ROW][COL]={1,2,3,4,5,6,7,8,9}; int i,j;fun(a);for( ){for(j=0;j<ROW;j++)cout<<a[i][j]<<“”;cout<<’\n’;}}。